passagemath-singular 10.6.29__cp311-cp311-musllinux_1_2_aarch64.whl → 10.6.31__cp311-cp311-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of passagemath-singular might be problematic. Click here for more details.
- PySingular.cpython-311-aarch64-linux-musl.so +0 -0
- {passagemath_singular-10.6.29.dist-info → passagemath_singular-10.6.31.dist-info}/METADATA +8 -8
- {passagemath_singular-10.6.29.dist-info → passagemath_singular-10.6.31.dist-info}/RECORD +71 -69
- passagemath_singular.libs/{libSingular-4-d894d219.4.1.so → libSingular-4-8add941d.4.1.so} +0 -0
- passagemath_singular.libs/libfactory-4-6907d06f.4.1.so +0 -0
- passagemath_singular.libs/libntl-d58d2536.so.44.0.1 +0 -0
- passagemath_singular.libs/{libomalloc-0-7768d27e.9.6.so → libomalloc-0-c68af0d6.9.6.so} +0 -0
- passagemath_singular.libs/{libpolys-4-2dcf33c7.4.1.so → libpolys-4-f587aa49.4.1.so} +0 -0
- passagemath_singular.libs/libreadline-3f6fb6b3.so.8.2 +0 -0
- passagemath_singular.libs/{libsingular_resources-4-21ad9234.4.1.so → libsingular_resources-4-c24151f0.4.1.so} +0 -0
- sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/fusion_rings/poly_tup_engine.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/fusion_rings/shm_managers.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/letterplace/free_algebra_letterplace.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/letterplace/letterplace_ideal.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.cpython-311-aarch64-linux-musl.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-311-aarch64-linux-musl.so +0 -0
- sage/all__sagemath_singular.py +1 -1
- sage/libs/singular/decl.pxd +1 -1
- sage/libs/singular/function.cpython-311-aarch64-linux-musl.so +0 -0
- sage/libs/singular/groebner_strategy.cpython-311-aarch64-linux-musl.so +0 -0
- sage/libs/singular/option.cpython-311-aarch64-linux-musl.so +0 -0
- sage/libs/singular/polynomial.cpython-311-aarch64-linux-musl.so +0 -0
- sage/libs/singular/ring.cpython-311-aarch64-linux-musl.so +0 -0
- sage/libs/singular/singular.cpython-311-aarch64-linux-musl.so +0 -0
- sage/matrix/matrix_mpolynomial_dense.cpython-311-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/element_polymod.cpython-311-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-311-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/multi_polynomial_libsingular.cpython-311-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/plural.cpython-311-aarch64-linux-musl.so +0 -0
- sage/symbolic/expression.cpython-311-aarch64-linux-musl.so +0 -0
- sage/symbolic/expression.pyx +1 -1
- sage_wheels/bin/ESingular +0 -0
- sage_wheels/bin/Singular +0 -0
- sage_wheels/bin/TSingular +0 -0
- sage_wheels/lib/singular/MOD/cohomo.so +0 -0
- sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
- sage_wheels/lib/singular/MOD/gitfan.so +0 -0
- sage_wheels/lib/singular/MOD/interval.so +0 -0
- sage_wheels/lib/singular/MOD/subsets.so +0 -0
- sage_wheels/lib/singular/MOD/systhreads.so +0 -0
- sage_wheels/libexec/singular/MOD/change_cost +0 -0
- sage_wheels/libexec/singular/MOD/solve_IP +0 -0
- sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
- sage_wheels/share/info/singular.info +8119 -3332
- sage_wheels/share/singular/LIB/assprimeszerodim.lib +21 -35
- sage_wheels/share/singular/LIB/gmspoly.lib +2 -2
- sage_wheels/share/singular/LIB/homolog.lib +41 -3
- sage_wheels/share/singular/LIB/modprimdec.lib +22 -2
- sage_wheels/share/singular/LIB/modstd.lib +1 -2
- sage_wheels/share/singular/LIB/modular.lib +124 -17
- sage_wheels/share/singular/LIB/modules.lib +15 -7
- sage_wheels/share/singular/LIB/ncpreim.lib +2 -2
- sage_wheels/share/singular/LIB/normal.lib +6 -6
- sage_wheels/share/singular/LIB/normaliz.lib +101 -15
- sage_wheels/share/singular/LIB/parallel.lib +28 -14
- sage_wheels/share/singular/LIB/primdec.lib +51 -68
- sage_wheels/share/singular/LIB/primdecint.lib +2 -2
- sage_wheels/share/singular/LIB/random.lib +2 -2
- sage_wheels/share/singular/LIB/resources.lib +7 -6
- sage_wheels/share/singular/LIB/sagbiNormaliz.lib +228 -104
- sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
- sage_wheels/share/singular/LIB/sheafcoh.lib +2 -2
- sage_wheels/share/singular/LIB/sresext.lib +757 -0
- sage_wheels/share/singular/LIB/triang.lib +20 -18
- sage_wheels/share/singular/emacs/hlp-cmpl.el +8 -0
- sage_wheels/share/singular/singular.idx +1160 -1144
- passagemath_singular.libs/libfactory-4-e322c0c6.4.1.so +0 -0
- passagemath_singular.libs/libntl-f4409ed7.so.44.0.1 +0 -0
- passagemath_singular.libs/libreadline-78057fb4.so.8.2 +0 -0
- {passagemath_singular-10.6.29.dist-info → passagemath_singular-10.6.31.dist-info}/WHEEL +0 -0
- {passagemath_singular-10.6.29.dist-info → passagemath_singular-10.6.31.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//// Singular library normaliz.lib
|
|
2
|
-
version="version normaliz.lib 4.
|
|
2
|
+
version="version normaliz.lib 4.4.1.2 July_2025 "; // $Id: 92f0b75c305fabbb45fb0054da4108ddb8c9cb52 $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: normaliz.lib Provides an interface for the use of Normaliz 3.10.0 or
|
|
@@ -464,6 +464,41 @@ static proc getInt(string s, int p)
|
|
|
464
464
|
return(i,p);
|
|
465
465
|
}
|
|
466
466
|
|
|
467
|
+
static proc getBigInt(string s, int p)
|
|
468
|
+
{
|
|
469
|
+
string nst;
|
|
470
|
+
int j,en,sn;
|
|
471
|
+
bigint i;
|
|
472
|
+
|
|
473
|
+
for(;p<=size(s);p++)
|
|
474
|
+
{
|
|
475
|
+
|
|
476
|
+
if(digit(s[p]))
|
|
477
|
+
{
|
|
478
|
+
sn=p; break;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
if(not(sn))
|
|
482
|
+
{
|
|
483
|
+
return(0,-1); // -1 indicates: no number found
|
|
484
|
+
}
|
|
485
|
+
p++;
|
|
486
|
+
for(;p<=size(s);p++)
|
|
487
|
+
{
|
|
488
|
+
if(!digit(s[p]))
|
|
489
|
+
{
|
|
490
|
+
en=p-1; break;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
if(p>size(s))
|
|
494
|
+
{
|
|
495
|
+
en=size(s);
|
|
496
|
+
}
|
|
497
|
+
nst="i="+s[sn,en-sn+1];
|
|
498
|
+
execute(nst);
|
|
499
|
+
return(i,p);
|
|
500
|
+
}
|
|
501
|
+
|
|
467
502
|
|
|
468
503
|
static proc getRational(string s, int p)
|
|
469
504
|
{
|
|
@@ -982,6 +1017,7 @@ static proc runNormaliz(list #)
|
|
|
982
1017
|
}
|
|
983
1018
|
|
|
984
1019
|
Num_Invs=getNuminvs();
|
|
1020
|
+
|
|
985
1021
|
int gens_computed = 0;
|
|
986
1022
|
for( int i = 1; i <= size(Num_Invs); i = i+1){
|
|
987
1023
|
if(Num_Invs[i][1] == "hilbert_basis_elements"){
|
|
@@ -1018,6 +1054,12 @@ RETURN: The function applies Normaliz to the matrix input_mat ofe type nmz_typ
|
|
|
1018
1054
|
The function returns the intmat defined by the file ith suffix gen, provided it has been computed. Otherwise it returns the input_mat.
|
|
1019
1055
|
NOTE: You will find procedures for many applications of Normaliz in this
|
|
1020
1056
|
library, so the explicit call of this procedure may not be necessary.
|
|
1057
|
+
|
|
1058
|
+
The function reads the numerical invariants computed by normaliz. The integers among
|
|
1059
|
+
them are converted to the Singular type int. It may to bee too small for
|
|
1060
|
+
the Hilbert function or the multiplicity, especially if computed for a non-standard grading.
|
|
1061
|
+
To prevent a disaster set the predefined global variable BigNumInvs = 1. Returnung to
|
|
1062
|
+
BigNumInvs = 0 switches this feature off.
|
|
1021
1063
|
SEE ALSO: intclToricRing, normalToricRing, ehrhartRing, intclMonIdeal,
|
|
1022
1064
|
torusInvariants, diagInvariants, finiteDiagInvariants, intersectionValRings,
|
|
1023
1065
|
intersectionValRingIdeals
|
|
@@ -1048,8 +1090,10 @@ static proc getNuminvs()
|
|
|
1048
1090
|
string s;
|
|
1049
1091
|
list num_invs;
|
|
1050
1092
|
int p,sw,v_length,i,dummy_int;
|
|
1093
|
+
bigint DummyInt;
|
|
1051
1094
|
intvec dummy_vec;
|
|
1052
1095
|
string type_inv,name_inv,dummy_bool;
|
|
1096
|
+
int make_big_int;
|
|
1053
1097
|
|
|
1054
1098
|
link in_f=":r "+ getNmzFile() + "."+"inv";
|
|
1055
1099
|
s=read(in_f);
|
|
@@ -1072,23 +1116,46 @@ static proc getNuminvs()
|
|
|
1072
1116
|
{
|
|
1073
1117
|
name_inv="h_vector";
|
|
1074
1118
|
}
|
|
1119
|
+
make_big_int = 0;
|
|
1120
|
+
if(name_inv == "hilbert_series_num" || name_inv == "hilbert_series_cyclo_num"){
|
|
1121
|
+
if(BigNumInvs){
|
|
1122
|
+
make_big_int = 1;
|
|
1123
|
+
}
|
|
1124
|
+
}
|
|
1125
|
+
if(defined(DummyMat)==voice){
|
|
1126
|
+
kill(DummyMat);
|
|
1127
|
+
}
|
|
1128
|
+
bigintmat DummyMat[1][v_length];
|
|
1075
1129
|
if(name_inv!="hilbert_polynomial"
|
|
1076
1130
|
&& name_inv!="hilbert_quasipolynomial")
|
|
1077
1131
|
{
|
|
1078
1132
|
for(i=1;i<=v_length;i++)
|
|
1079
1133
|
{
|
|
1080
|
-
if(i==1)
|
|
1134
|
+
if(i==1 && !make_big_int)
|
|
1081
1135
|
{
|
|
1082
|
-
(
|
|
1083
|
-
|
|
1136
|
+
if(!make_big_int){
|
|
1137
|
+
(dummy_int,p)=getInt(s,p);
|
|
1138
|
+
dummy_vec=dummy_int;
|
|
1139
|
+
}
|
|
1084
1140
|
}
|
|
1085
1141
|
else
|
|
1086
1142
|
{
|
|
1087
|
-
(
|
|
1088
|
-
|
|
1143
|
+
if(!make_big_int){
|
|
1144
|
+
(dummy_int,p)=getInt(s,p);
|
|
1145
|
+
dummy_vec=dummy_vec,dummy_int;
|
|
1146
|
+
}
|
|
1147
|
+
else{
|
|
1148
|
+
(DummyInt,p) = getBigInt(s,p);
|
|
1149
|
+
DummyMat[1,i] = DummyInt;
|
|
1150
|
+
}
|
|
1089
1151
|
}
|
|
1090
1152
|
}
|
|
1091
|
-
|
|
1153
|
+
if(!make_big_int){
|
|
1154
|
+
num_invs=num_invs+list(list(name_inv,dummy_vec,"intvec"));
|
|
1155
|
+
}
|
|
1156
|
+
else{
|
|
1157
|
+
num_invs=num_invs+list(list(name_inv,DummyMat,"bigintvec", v_length));
|
|
1158
|
+
}
|
|
1092
1159
|
}
|
|
1093
1160
|
else
|
|
1094
1161
|
{
|
|
@@ -1100,8 +1167,14 @@ static proc getNuminvs()
|
|
|
1100
1167
|
(sw,p)=nextWord(s,p);
|
|
1101
1168
|
name_inv=s[sw..p-1];
|
|
1102
1169
|
if (name_inv!="hilbert_quasipolynomial_denom") {
|
|
1103
|
-
|
|
1104
|
-
|
|
1170
|
+
if(!BigNumInvs || (name_inv != "multiplicity" && name_inv != "multiplicity_num" && name_inv != "multiplicity_denom")){
|
|
1171
|
+
(dummy_int,p)=getInt(s,p);
|
|
1172
|
+
num_invs=num_invs+list(list(name_inv,dummy_int,"int"));
|
|
1173
|
+
}
|
|
1174
|
+
else {
|
|
1175
|
+
(DummyInt,p)=getBigInt(s,p);
|
|
1176
|
+
num_invs=num_invs+list(list(name_inv,dummy_int,"bigint"));
|
|
1177
|
+
}
|
|
1105
1178
|
}
|
|
1106
1179
|
}
|
|
1107
1180
|
if(type_inv=="boolean")
|
|
@@ -1122,6 +1195,7 @@ static proc getNuminvs()
|
|
|
1122
1195
|
return(num_invs);
|
|
1123
1196
|
}
|
|
1124
1197
|
|
|
1198
|
+
|
|
1125
1199
|
proc showNuminvs()
|
|
1126
1200
|
"USAGE: showNuminvs();
|
|
1127
1201
|
PURPOSE: prints the numerical invariants
|
|
@@ -1168,7 +1242,15 @@ EXAMPLE: example exportNuminvs; shows an example
|
|
|
1168
1242
|
for(i=1;i<=size(Num_Invs);i++)
|
|
1169
1243
|
{
|
|
1170
1244
|
dummy=Num_Invs[i];
|
|
1171
|
-
|
|
1245
|
+
if(dummy[3] != "bigintvec"){
|
|
1246
|
+
s=dummy[3]+" nmz_" + dummy[1] + "=dummy[2]; exportto(Top," + "nmz_" + dummy[1] + ");";
|
|
1247
|
+
}
|
|
1248
|
+
else{
|
|
1249
|
+
s = "bigintmat " + "nmz_" + dummy[1] + "[1][";
|
|
1250
|
+
s = s + string(dummy[4]) + "]";
|
|
1251
|
+
s = s + " = dummy[2]; exportto(Top," + "nmz_" + dummy[1] + ");";
|
|
1252
|
+
}
|
|
1253
|
+
|
|
1172
1254
|
execute(s);
|
|
1173
1255
|
}
|
|
1174
1256
|
Exported_Num_Invs = Num_Invs;
|
|
@@ -1184,7 +1266,8 @@ example
|
|
|
1184
1266
|
nmz_number_extreme_rays;
|
|
1185
1267
|
nmz_rank;
|
|
1186
1268
|
nmz_number_support_hyperplanes;
|
|
1187
|
-
nmz_multiplicity;
|
|
1269
|
+
if (defined(nmz_multiplicity)) {nmz_multiplicity;}
|
|
1270
|
+
else {nmz_multiplicity_num;}
|
|
1188
1271
|
nmz_primary;
|
|
1189
1272
|
}
|
|
1190
1273
|
|
|
@@ -1592,7 +1675,7 @@ RETURN: The toric ring S is the subalgebra of the basering generated by the
|
|
|
1592
1675
|
leading monomials of the elements of I (considered as a list of
|
|
1593
1676
|
polynomials). The function computes the computes the definig binomial
|
|
1594
1677
|
ideal J of S with respect to the generators and returns it, together with
|
|
1595
|
-
J.
|
|
1678
|
+
J. DSee eample.
|
|
1596
1679
|
NOTE: A mathematical remark: the toric ring depends on the list of
|
|
1597
1680
|
monomials given, and not only on the ideal they generate!
|
|
1598
1681
|
This function requires the previous setting of an NmzFilename.
|
|
@@ -2092,13 +2175,13 @@ static proc mod_init()
|
|
|
2092
2175
|
// int GenGen=1; export GenGen; // indicates whether "gen" is generated // no longer used
|
|
2093
2176
|
list Num_Invs; export Num_Invs;
|
|
2094
2177
|
list Exported_Num_Invs; export Exported_Num_Invs;
|
|
2095
|
-
// running normaliz (with options)
|
|
2096
2178
|
|
|
2179
|
+
// options for running normaliz
|
|
2180
|
+
//
|
|
2097
2181
|
// component 1 is name of option
|
|
2098
2182
|
// 2 is default value
|
|
2099
2183
|
// 3 is command line option to be passed to Normaliz
|
|
2100
|
-
// 4
|
|
2101
|
-
// value 2 of 4 indicates "no influence"
|
|
2184
|
+
// 4 is a potential comment pointing to better use
|
|
2102
2185
|
|
|
2103
2186
|
list nmz_options=
|
|
2104
2187
|
list("supp",0,"-s"),
|
|
@@ -2137,4 +2220,7 @@ static proc mod_init()
|
|
|
2137
2220
|
export nmz_options;
|
|
2138
2221
|
list default_options = nmz_options;
|
|
2139
2222
|
export default_options;
|
|
2223
|
+
|
|
2224
|
+
int BigNumInvs = 0;
|
|
2225
|
+
exportto(Top, BigNumInvs);
|
|
2140
2226
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version parallel.lib 4.1.
|
|
2
|
+
version="version parallel.lib 4.4.1.1 Feb_2025 "; // $Id: a5e93aee5a9d3333810fc57b6fd047fa89e9f5b9 $
|
|
3
3
|
category="General purpose";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: parallel.lib An abstraction layer for parallel skeletons
|
|
@@ -91,25 +91,39 @@ EXAMPLE: example parallelWaitN; shows an example"
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
94
|
+
list results;
|
|
95
|
+
if(system("cpu")<=1)
|
|
96
|
+
{
|
|
97
|
+
list tmp;
|
|
98
|
+
int tmp_s;
|
|
99
|
+
for(i=njobs;i>0;i--)
|
|
100
|
+
{
|
|
101
|
+
tmp=args[i];
|
|
102
|
+
tmp_s=size(tmp);
|
|
103
|
+
execute("results[i]="+commands[i]+"(tmp[1..tmp_s]);");
|
|
104
|
+
}
|
|
97
105
|
}
|
|
98
|
-
|
|
99
|
-
|
|
106
|
+
else
|
|
107
|
+
{
|
|
108
|
+
// compute the tasks
|
|
109
|
+
for (i = 1; i <= njobs; i++) {
|
|
110
|
+
task t(i) = commands[i], args[i];
|
|
111
|
+
}
|
|
112
|
+
startTasks(t(1..njobs));
|
|
113
|
+
list indices = waitTasks(list(t(1..njobs)), N, timeout);
|
|
100
114
|
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
// wrap back to saved semaphore
|
|
116
|
+
if (ncores) {
|
|
103
117
|
Resources::resetcores_subtree(semaphore_save);
|
|
104
|
-
|
|
118
|
+
}
|
|
105
119
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
for (i = size(indices); i > 0; i--) {
|
|
120
|
+
// return results
|
|
121
|
+
for (i = size(indices); i > 0; i--) {
|
|
109
122
|
results[indices[i]] = getResult(t(indices[i]));
|
|
110
|
-
|
|
111
|
-
|
|
123
|
+
}
|
|
124
|
+
for (i = 1; i <= njobs; i++) {
|
|
112
125
|
killTask(t(i));
|
|
126
|
+
}
|
|
113
127
|
}
|
|
114
128
|
return(results);
|
|
115
129
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version primdec.lib 4.4.0
|
|
2
|
+
version="version primdec.lib 4.4.1.0 Febv_2025 "; // $Id: 9c0e76a43c07747eb051110c4388a436dd9cd264 $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: primdec.lib Primary Decomposition and Radical of Ideals
|
|
@@ -55,7 +55,7 @@ PROCEDURES:
|
|
|
55
55
|
gcdTest(I);
|
|
56
56
|
zero_decomp(I,..); list of primary ideals and their radicals (I zero dimensional)
|
|
57
57
|
|
|
58
|
-
SEE ALSO: primdecint_lib
|
|
58
|
+
SEE ALSO: primdecint_lib; modprimdec_lib
|
|
59
59
|
KEYWORDS: primary decomposition
|
|
60
60
|
";
|
|
61
61
|
|
|
@@ -1279,14 +1279,11 @@ static proc zeroSp(ideal i)
|
|
|
1279
1279
|
|
|
1280
1280
|
//i has to be a reduced groebner basis
|
|
1281
1281
|
ASSUME(1, dim(i)==0);
|
|
1282
|
-
if (hasQQCoefficient(basering)
|
|
1282
|
+
if (hasQQCoefficient(basering)
|
|
1283
|
+
&& (nvars(basering)*vdim(I)>300))
|
|
1283
1284
|
{
|
|
1284
1285
|
ideal F=modFinduni(i);
|
|
1285
1286
|
}
|
|
1286
|
-
else
|
|
1287
|
-
{
|
|
1288
|
-
ideal F=finduni(i);
|
|
1289
|
-
}
|
|
1290
1287
|
int j,k,l,ready;
|
|
1291
1288
|
list fa;
|
|
1292
1289
|
fa[1]=factorize(F[1],1);
|
|
@@ -1785,7 +1782,7 @@ EXAMPLE: example prepareQuotientring; shows an example
|
|
|
1785
1782
|
}
|
|
1786
1783
|
else
|
|
1787
1784
|
{
|
|
1788
|
-
if (typeof(rl[1]=="cring")
|
|
1785
|
+
if (typeof(rl[1])=="cring")
|
|
1789
1786
|
{
|
|
1790
1787
|
cring p=rl[1];
|
|
1791
1788
|
list rl2=rl[2];
|
|
@@ -2171,15 +2168,6 @@ static proc minAssPrimes_i(int patchPrimaryDecomposition, ideal i, list #)
|
|
|
2171
2168
|
option( set,origOp );
|
|
2172
2169
|
return( ideal(1) );
|
|
2173
2170
|
}
|
|
2174
|
-
//if (dim(i)>0)
|
|
2175
|
-
//{
|
|
2176
|
-
// if(fastIrred(i))
|
|
2177
|
-
// {
|
|
2178
|
-
// setring P0;
|
|
2179
|
-
// option( set,origOp );
|
|
2180
|
-
// return(list(fetch(P,i)));
|
|
2181
|
-
// } // irreducible
|
|
2182
|
-
//}
|
|
2183
2171
|
if( (dim(i) == 0 ) && ( npars(P) == 0) )
|
|
2184
2172
|
{
|
|
2185
2173
|
int di = vdim(i);
|
|
@@ -3275,17 +3263,6 @@ EXAMPLE: example decomp_i; shows an example
|
|
|
3275
3263
|
list fett;
|
|
3276
3264
|
int lauf,di,newtest;
|
|
3277
3265
|
//------------------------------------------------------------------
|
|
3278
|
-
if(!abspri)
|
|
3279
|
-
{
|
|
3280
|
-
if((@wr!=2) && fastIrred(@j)) // #[1] for minAssGTZ
|
|
3281
|
-
{
|
|
3282
|
-
list res=@j,@j;
|
|
3283
|
-
setring @P;
|
|
3284
|
-
option(set,initialOp);
|
|
3285
|
-
return(fetch(gnir,res));
|
|
3286
|
-
}
|
|
3287
|
-
}
|
|
3288
|
-
//------------------------------------------------------------------
|
|
3289
3266
|
//search for a maximal independent set indep,i.e.
|
|
3290
3267
|
//look for subring such that the intersection with the ideal is zero
|
|
3291
3268
|
//j intersected with K[var(indep[3]+1),...,var(nvar] is zero,
|
|
@@ -4072,7 +4049,8 @@ EXAMPLE: example zeroRad; shows an example"
|
|
|
4072
4049
|
|
|
4073
4050
|
option(redSB);
|
|
4074
4051
|
ASSUME(1, dim(I)==0);
|
|
4075
|
-
if (hasQQCoefficient(basering)
|
|
4052
|
+
if (hasQQCoefficient(basering)
|
|
4053
|
+
&& (nvars(basering)*vdim(I)>300))
|
|
4076
4054
|
{
|
|
4077
4055
|
ideal F=modFinduni(I); //F[i] generates I intersected with K[var(i)]
|
|
4078
4056
|
}
|
|
@@ -4293,6 +4271,7 @@ RETURN: ideal, the annihilator of coker(M)
|
|
|
4293
4271
|
NOTE: The output is the ideal of all elements a of the basering R such that
|
|
4294
4272
|
a * R^m is contained in M (m=number of rows of M).
|
|
4295
4273
|
EXAMPLE: example Ann; shows an example
|
|
4274
|
+
KEYWORDS: annihilator of a module
|
|
4296
4275
|
"
|
|
4297
4276
|
{
|
|
4298
4277
|
M=prune(M); //to obtain a small embedding
|
|
@@ -5646,6 +5625,7 @@ NOTE: - Algorithm of Gianni/Trager/Zacharias.
|
|
|
5646
5625
|
- For local and mixed orderings, the decomposition in the
|
|
5647
5626
|
corresponding global ring is returned if the string 'global'
|
|
5648
5627
|
is specified as second argument
|
|
5628
|
+
SEE ALSO: modPrimdecGTZ
|
|
5649
5629
|
EXAMPLE: example primdecGTZE; shows an example
|
|
5650
5630
|
"
|
|
5651
5631
|
{
|
|
@@ -5679,6 +5659,7 @@ NOTE: - Algorithm of Gianni/Trager/Zacharias.
|
|
|
5679
5659
|
- For local and mixed orderings, the decomposition in the
|
|
5680
5660
|
corresponding global ring is returned if the string 'global'
|
|
5681
5661
|
is specified as second argument
|
|
5662
|
+
SEE ALSO: modPrimdecGTZ
|
|
5682
5663
|
EXAMPLE: example primdecGTZ; shows an example
|
|
5683
5664
|
"
|
|
5684
5665
|
{
|
|
@@ -5737,6 +5718,25 @@ static proc primdecGTZ_i(int patchPrimaryDecomposition,ideal i, list #)
|
|
|
5737
5718
|
}
|
|
5738
5719
|
return(li);
|
|
5739
5720
|
}
|
|
5721
|
+
i=simplify(i,2); // erase 0-generators
|
|
5722
|
+
if (ncols(i) >= 1) {
|
|
5723
|
+
if ((i[1]==0)||(i[1]==1))
|
|
5724
|
+
{
|
|
5725
|
+
list L = list(ideal(i[1]), ideal(i[1]) );
|
|
5726
|
+
return(list(L));
|
|
5727
|
+
}
|
|
5728
|
+
}
|
|
5729
|
+
if((ncols(i)==1)&&(attrib(basering,"ring_cf")==0))
|
|
5730
|
+
{
|
|
5731
|
+
list @fac=factorize(i[1],2);
|
|
5732
|
+
list result;
|
|
5733
|
+
for(int @i=size(@fac[1]);@i>0;@i--)
|
|
5734
|
+
{
|
|
5735
|
+
result[@i]=list(ideal(@fac[1][@i]^@fac[2][@i]),
|
|
5736
|
+
ideal(@fac[1][@i]));
|
|
5737
|
+
}
|
|
5738
|
+
return(result);
|
|
5739
|
+
}
|
|
5740
5740
|
|
|
5741
5741
|
if(minpoly!=0)
|
|
5742
5742
|
{
|
|
@@ -6114,10 +6114,23 @@ static proc primdecSY_i(int patchPrimaryDecomposition, ideal i, list #)
|
|
|
6114
6114
|
}
|
|
6115
6115
|
i=simplify(i,2);
|
|
6116
6116
|
|
|
6117
|
-
if ((i
|
|
6117
|
+
if (ncols(i) >= 1) {
|
|
6118
|
+
if ((i[1]==0)||(i[1]==1))
|
|
6119
|
+
{
|
|
6120
|
+
list L = list(ideal(i[1]), ideal(i[1]) );
|
|
6121
|
+
return(list(L));
|
|
6122
|
+
}
|
|
6123
|
+
}
|
|
6124
|
+
if((ncols(i)==1)&&(attrib(basering,"ring_cf")==0))
|
|
6118
6125
|
{
|
|
6119
|
-
list
|
|
6120
|
-
|
|
6126
|
+
list @fac=factorize(i[1],2);
|
|
6127
|
+
list result;
|
|
6128
|
+
for(int @i=size(@fac[1]);@i>0;@i--)
|
|
6129
|
+
{
|
|
6130
|
+
result[@i]=list(ideal(@fac[1][@i]^@fac[2][@i]),
|
|
6131
|
+
ideal(@fac[1][@i]));
|
|
6132
|
+
}
|
|
6133
|
+
return(result);
|
|
6121
6134
|
}
|
|
6122
6135
|
|
|
6123
6136
|
if(minpoly!=0)
|
|
@@ -6252,7 +6265,7 @@ static proc minAssGTZ_i(int patchPrimaryDecomposition, ideal i,list #)
|
|
|
6252
6265
|
int useFac;
|
|
6253
6266
|
|
|
6254
6267
|
// Set input parameters
|
|
6255
|
-
algorithm = "
|
|
6268
|
+
algorithm = "SL"; // Default: GTZ algorithm
|
|
6256
6269
|
facstdOption = "facstd";
|
|
6257
6270
|
if(size(#) > 0)
|
|
6258
6271
|
{
|
|
@@ -6466,11 +6479,15 @@ EXAMPLE: example radical; shows an example
|
|
|
6466
6479
|
def j=imap(s,j);
|
|
6467
6480
|
return(j);
|
|
6468
6481
|
}
|
|
6482
|
+
int j;
|
|
6483
|
+
if(!hasGFCoefficient(basering))
|
|
6484
|
+
{
|
|
6485
|
+
for(j=ncols(i);j>0;j--) { i[j]=sqrfree(i[j],3);}
|
|
6486
|
+
}
|
|
6469
6487
|
if(hasAlgExtensionCoefficient(basering))
|
|
6470
6488
|
{
|
|
6471
6489
|
return(algeRad(i));
|
|
6472
6490
|
}
|
|
6473
|
-
int j;
|
|
6474
6491
|
def P0 = basering;
|
|
6475
6492
|
list Pl=ring_list(P0);
|
|
6476
6493
|
Pl[3]=list(list("dp",1:nvars(P0)),list("C",0));
|
|
@@ -9373,40 +9390,6 @@ EXAMPLE: example primdec; shows an example
|
|
|
9373
9390
|
return(res);
|
|
9374
9391
|
}
|
|
9375
9392
|
|
|
9376
|
-
static proc fastIrred(ideal j)
|
|
9377
|
-
// the ideal is a not zero dimensional GB
|
|
9378
|
-
// return 1 if it is irreducble for sure, 0 otherwise:
|
|
9379
|
-
// substituite indep. variables by random values,
|
|
9380
|
-
/ factor the univariate poly
|
|
9381
|
-
{
|
|
9382
|
-
if (char(basering)!=0) { return(0);}
|
|
9383
|
-
if (npars(basering)!=0) { return(0);}
|
|
9384
|
-
int i;
|
|
9385
|
-
for(i=1;i<=ncols(j);i++)
|
|
9386
|
-
{
|
|
9387
|
-
if(size(factorize(j[i],1))>1) { return(0);} // generators have factors
|
|
9388
|
-
}
|
|
9389
|
-
def savering=basering;
|
|
9390
|
-
// find max. indep. set
|
|
9391
|
-
intvec indep=indepSet(j);
|
|
9392
|
-
int d=0;
|
|
9393
|
-
for(i=1;i<=nvars(basering);i++)
|
|
9394
|
-
{
|
|
9395
|
-
if(indep[i]==1) { d++; j=subst(j,var(i),7 /*random(-5,5)*/);}
|
|
9396
|
-
}
|
|
9397
|
-
def R=changeordTo(savering,"lp");
|
|
9398
|
-
setring R;
|
|
9399
|
-
ideal j=fetch(savering,j);
|
|
9400
|
-
j=std(j);
|
|
9401
|
-
if (dim(j)!=d) {"ZERO";setring savering;return(0);} // zero found
|
|
9402
|
-
list F=factorize(j[1]);
|
|
9403
|
-
if (size(F[1])==2)
|
|
9404
|
-
{
|
|
9405
|
-
if (F[2][2]==1) {setring savering;return(1);} // irreducible
|
|
9406
|
-
}
|
|
9407
|
-
setring savering;
|
|
9408
|
-
return(0); // may be reducible
|
|
9409
|
-
}
|
|
9410
9393
|
////////////////////////////////////////////////////////////////////////////
|
|
9411
9394
|
/*
|
|
9412
9395
|
//Beispiele Wenk-Dipl (in ~/Texfiles/Diplom/Wenk/Examples/)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version primdecint.lib 4.
|
|
2
|
+
version="version primdecint.lib 4.4.1.1 Feb_2025 "; // $Id: c3a7a5c16612ce896fb311ab4e8c3ca7dff29ea4 $
|
|
3
3
|
category = "Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: primdecint.lib primary decomposition of an ideal in the polynomial
|
|
@@ -71,6 +71,7 @@ EXAMPLE: example primdecZ; shows an example
|
|
|
71
71
|
int n = 1;
|
|
72
72
|
ideal TES = 1;
|
|
73
73
|
}
|
|
74
|
+
if (system("cpu")<=1) { n=1; }
|
|
74
75
|
|
|
75
76
|
|
|
76
77
|
if(size(I)==1 && deg(I[1]) == 0)
|
|
@@ -129,7 +130,6 @@ EXAMPLE: example primdecZ; shows an example
|
|
|
129
130
|
{
|
|
130
131
|
p=int(L[1][i + 1]);
|
|
131
132
|
nu=int(L[2][i + 1]);
|
|
132
|
-
//link l(i) = "MPtcp:fork";
|
|
133
133
|
link l(i) = "ssi:fork";
|
|
134
134
|
open(l(i));
|
|
135
135
|
write(l(i), quote(modp(eval(J), eval(p), eval(nu))));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version random.lib 4.1.2.0 Feb_2019 "; // $Id:
|
|
2
|
+
version="version random.lib 4.1.2.0 Feb_2019 "; // $Id: ec617edc25603cabbc227492f80090f5c76c3e7a $
|
|
3
3
|
category="General purpose";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: random.lib Creating Random and Sparse Matrices, Ideals, Polys
|
|
@@ -391,7 +391,7 @@ EXAMPLE: example randomLast; shows an example
|
|
|
391
391
|
"
|
|
392
392
|
{
|
|
393
393
|
ideal i=maxideal(1);
|
|
394
|
-
int k=
|
|
394
|
+
int k=nvars(basering);
|
|
395
395
|
if (k<=1) { return(i);}
|
|
396
396
|
i[k]=0;
|
|
397
397
|
i=randomid(i,size(i),b);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version resources.lib 4.1.2.0 Feb_2019 "; // $Id:
|
|
2
|
+
version="version resources.lib 4.1.2.0 Feb_2019 "; // $Id: cc0371b2cd2ba4822fc7b167ef219c96bb57c506 $
|
|
3
3
|
category="General purpose";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: resources.lib Tools to manage the computational resources
|
|
@@ -30,18 +30,18 @@ PROCEDURES:
|
|
|
30
30
|
/* initialize (lib-)global variables */
|
|
31
31
|
static proc mod_init()
|
|
32
32
|
{
|
|
33
|
-
if(system("cpu")>
|
|
33
|
+
if(system("cpu")>1)
|
|
34
34
|
{
|
|
35
35
|
int sem_cores = semaphore(system("--cpus")-1);
|
|
36
36
|
int NCORES = system("semaphore", "get_value", sem_cores)+1;
|
|
37
37
|
}
|
|
38
38
|
else
|
|
39
39
|
{
|
|
40
|
-
int sem_cores = 0;
|
|
41
|
-
int NCORES =
|
|
40
|
+
int sem_cores = semaphore(0);
|
|
41
|
+
int NCORES = 1;
|
|
42
42
|
}
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
exportto(Resources, sem_cores);
|
|
44
|
+
exportto(Resources, NCORES);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
proc addcores(int n)
|
|
@@ -76,6 +76,7 @@ EXAMPLE: example addcores; shows an example"
|
|
|
76
76
|
|
|
77
77
|
/* adjust and return NCORES */
|
|
78
78
|
NCORES = NCORES+n;
|
|
79
|
+
if (system("cpu")) {system("--cpus",NCORES);}
|
|
79
80
|
return(NCORES);
|
|
80
81
|
}
|
|
81
82
|
example
|