passagemath-singular 10.6.30__cp310-cp310-musllinux_1_2_aarch64.whl → 10.6.31rc1__cp310-cp310-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.
- PySingular.cpython-310-aarch64-linux-gnu.so +0 -0
- {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc1.dist-info}/METADATA +7 -7
- {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc1.dist-info}/RECORD +68 -66
- passagemath_singular.libs/{libSingular-4-d894d219.4.1.so → libSingular-4-faaf7d34.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-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/poly_tup_engine.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/fusion_rings/shm_managers.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/free_algebra_element_letterplace.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/free_algebra_letterplace.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/letterplace/letterplace_ideal.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_cython.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/algebras/quatalg/quaternion_algebra_element.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/decl.pxd +1 -1
- sage/libs/singular/function.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/groebner_strategy.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/option.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/polynomial.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/ring.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/libs/singular/singular.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/matrix/matrix_mpolynomial_dense.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/multi_polynomial_libsingular.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/rings/polynomial/plural.cpython-310-aarch64-linux-gnu.so +0 -0
- sage/symbolic/expression.cpython-310-aarch64-linux-gnu.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.30.dist-info → passagemath_singular-10.6.31rc1.dist-info}/WHEEL +0 -0
- {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc1.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version assprimeszerodim.lib 4.4.0.7 Jan_2025 "; // $Id:
|
|
2
|
+
version="version assprimeszerodim.lib 4.4.0.7 Jan_2025 "; // $Id: ef1e7451637c24425c1196163d51fd098220dd2b $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: assprimeszerodim.lib associated primes of a zero-dimensional ideal
|
|
@@ -53,26 +53,19 @@ EXAMPLE: example zeroRadical; shows an example
|
|
|
53
53
|
I = modStd(I, exactness);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
|
|
56
|
+
/* call modular() */
|
|
57
|
+
// TODO: write deleteUnluckyPrimes_zeroRadical()
|
|
58
|
+
if(exactness)
|
|
57
59
|
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
{
|
|
62
|
-
ideal F = modular("Assprimeszerodim::zeroRadP", list(I),
|
|
63
|
-
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
64
|
-
pTest_zeroRadical, finalTest_zeroRadical);
|
|
65
|
-
}
|
|
66
|
-
else
|
|
67
|
-
{
|
|
68
|
-
ideal F = modular("Assprimeszerodim::zeroRadP", list(I),
|
|
69
|
-
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
70
|
-
pTest_zeroRadical);
|
|
71
|
-
}
|
|
60
|
+
ideal F = modular("Assprimeszerodim::zeroRadP", list(I),
|
|
61
|
+
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
62
|
+
pTest_zeroRadical, finalTest_zeroRadical);
|
|
72
63
|
}
|
|
73
64
|
else
|
|
74
65
|
{
|
|
75
|
-
|
|
66
|
+
ideal F = modular("Assprimeszerodim::zeroRadP", list(I),
|
|
67
|
+
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
68
|
+
pTest_zeroRadical);
|
|
76
69
|
}
|
|
77
70
|
|
|
78
71
|
/* compute the squarefree parts */
|
|
@@ -241,27 +234,20 @@ EXAMPLE: example assPrimes; shows an example
|
|
|
241
234
|
I = J;
|
|
242
235
|
kill J;
|
|
243
236
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
252
|
-
pTest_assPrimes, finalTest_assPrimes);
|
|
253
|
-
}
|
|
254
|
-
else
|
|
255
|
-
{
|
|
256
|
-
ideal F = modular("Assprimeszerodim::modpSpecialAlgDep",
|
|
257
|
-
list(I, f, d, a),
|
|
258
|
-
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
259
|
-
pTest_assPrimes);
|
|
260
|
-
}
|
|
237
|
+
/* call modular() */
|
|
238
|
+
if(exactness)
|
|
239
|
+
{
|
|
240
|
+
ideal F = modular("Assprimeszerodim::modpSpecialAlgDep",
|
|
241
|
+
list(I, f, d, a),
|
|
242
|
+
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
243
|
+
pTest_assPrimes, finalTest_assPrimes);
|
|
261
244
|
}
|
|
262
245
|
else
|
|
263
246
|
{
|
|
264
|
-
|
|
247
|
+
ideal F = modular("Assprimeszerodim::modpSpecialAlgDep",
|
|
248
|
+
list(I, f, d, a),
|
|
249
|
+
Modstd::primeTest_std, Modular::deleteUnluckyPrimes_default,
|
|
250
|
+
pTest_assPrimes);
|
|
265
251
|
}
|
|
266
252
|
|
|
267
253
|
/* compute the components */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version gmspoly.lib 4.1.2.0 Feb_2019 "; // $Id:
|
|
2
|
+
version="version gmspoly.lib 4.1.2.0 Feb_2019 "; // $Id: b27adbe7809d78a2fbdb3361179238f229630648 $
|
|
3
3
|
category="Singularities";
|
|
4
4
|
|
|
5
5
|
info="
|
|
@@ -180,7 +180,7 @@ static proc vfiltmat(matrix B,int d)
|
|
|
180
180
|
attrib(V0,"isSB",1);
|
|
181
181
|
V1=B*matrix(V1)-var(1)^d*diff(matrix(V1),var(1));
|
|
182
182
|
}
|
|
183
|
-
option(
|
|
183
|
+
option(noredSB);
|
|
184
184
|
|
|
185
185
|
B=lift(V0,B*matrix(V)-var(1)^d*diff(matrix(V),var(1)));
|
|
186
186
|
list l=eigenvals(B);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version homolog.lib 4.3.1.3 Feb_2023 "; // $Id:
|
|
2
|
+
version="version homolog.lib 4.3.1.3 Feb_2023 "; // $Id: edb4d3f6872be2a174b59bb155ac537334344b34 $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: homolog.lib Procedures for Homological Algebra
|
|
@@ -435,6 +435,30 @@ example
|
|
|
435
435
|
printlevel = p;
|
|
436
436
|
}
|
|
437
437
|
///////////////////////////////////////////////////////////////////////////////
|
|
438
|
+
static proc get_weight(vector t, intvec shifts)
|
|
439
|
+
{
|
|
440
|
+
int n = nrows(t);
|
|
441
|
+
for (int i = 1; i <= n; i++)
|
|
442
|
+
{
|
|
443
|
+
if (t[i] != 0)
|
|
444
|
+
{
|
|
445
|
+
return( deg(t[i]) + shifts[i]);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
return(-1);
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
static proc get_list_of_weights(module M)
|
|
452
|
+
{
|
|
453
|
+
int r = ncols(M);
|
|
454
|
+
intvec shifts = attrib(M, "isHomog");
|
|
455
|
+
intvec weights = 0:r;
|
|
456
|
+
for (int i = 1; i <= r; i++)
|
|
457
|
+
{
|
|
458
|
+
weights[i] = get_weight(M[i], shifts);
|
|
459
|
+
}
|
|
460
|
+
return(weights);
|
|
461
|
+
}
|
|
438
462
|
|
|
439
463
|
proc Ext_R (intvec v, module M, list #)
|
|
440
464
|
"USAGE: Ext_R(v,M[,p]); v int resp. intvec , M module, p int
|
|
@@ -606,7 +630,14 @@ EXAMPLE: example Ext_R; shows an example
|
|
|
606
630
|
if ((typeof(attrib(m2t,"isHomog"))!="string" ) && (withWeight))
|
|
607
631
|
{
|
|
608
632
|
// ------------- compute weights for dual -----------------------------
|
|
609
|
-
|
|
633
|
+
if (k == 0)
|
|
634
|
+
{
|
|
635
|
+
weightR = attrib(m2t, "isHomog");
|
|
636
|
+
}
|
|
637
|
+
else
|
|
638
|
+
{
|
|
639
|
+
weightR = get_list_of_weights(resl[k]);
|
|
640
|
+
}
|
|
610
641
|
// --------------------------------------------------------------------
|
|
611
642
|
// *** set correct weights (at this writing, shift in resolution
|
|
612
643
|
// *** is not considered when defining the weights for the
|
|
@@ -663,7 +694,14 @@ EXAMPLE: example Ext_R; shows an example
|
|
|
663
694
|
m1 = transpose(resl[k]);
|
|
664
695
|
if ((typeof(attrib(m1t,"isHomog"))!="string" ) && (withWeight)) {
|
|
665
696
|
// ------------- compute weights for dual -----------------------------
|
|
666
|
-
|
|
697
|
+
if (k == 1)
|
|
698
|
+
{
|
|
699
|
+
weightR = attrib(resl[k], "isHomog");
|
|
700
|
+
}
|
|
701
|
+
else
|
|
702
|
+
{
|
|
703
|
+
weightR = get_list_of_weights(resl[k - 1]);
|
|
704
|
+
}
|
|
667
705
|
// ------------------------------------------------------------------
|
|
668
706
|
// *** set correct weights (at this writing, shift in resolution
|
|
669
707
|
// *** is not considered when defining the weights for the
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version modprimdec.lib 4.4.0.7 Jan_2014 "; //$Id:
|
|
2
|
+
version="version modprimdec.lib 4.4.0.7 Jan_2014 "; //$Id: 9573497bec1b34b20ed6b267445b396a2739f9e0 $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: modprimdec.lib Primary Decomposition via Modular Methods
|
|
@@ -1107,9 +1107,29 @@ EXAMPLE: example primdecGTZ_wrapper; shows an example
|
|
|
1107
1107
|
return(li);
|
|
1108
1108
|
}
|
|
1109
1109
|
|
|
1110
|
+
i=simplify(i,2); // erase 0-generators
|
|
1111
|
+
if (ncols(i) >= 1) {
|
|
1112
|
+
if ((i[1]==0)||(i[1]==1))
|
|
1113
|
+
{
|
|
1114
|
+
list L = list(ideal(i[1]), ideal(i[1]) );
|
|
1115
|
+
return(list(L));
|
|
1116
|
+
}
|
|
1117
|
+
}
|
|
1118
|
+
if((ncols(i)==1)&&(attrib(basering,"ring_cf")==0)) // handle principal ideal
|
|
1119
|
+
{
|
|
1120
|
+
list @fac=factorize(i[1],2);
|
|
1121
|
+
list result;
|
|
1122
|
+
for(int @i=size(@fac[1]);@i>0;@i--)
|
|
1123
|
+
{
|
|
1124
|
+
result[@i]=list(ideal(@fac[1][@i]^@fac[2][@i]),
|
|
1125
|
+
ideal(@fac[1][@i]));
|
|
1126
|
+
}
|
|
1127
|
+
return(result);
|
|
1128
|
+
}
|
|
1129
|
+
|
|
1110
1130
|
if(minpoly!=0)
|
|
1111
1131
|
{
|
|
1112
|
-
return(algeDeco(i,0));
|
|
1132
|
+
return(Primdec::algeDeco(i,0));
|
|
1113
1133
|
}
|
|
1114
1134
|
return(Primdec::convList(decomp_parallel(i, exactness, mod_only)));
|
|
1115
1135
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version modstd.lib 4.3.0.1 Mar_2022 "; // $Id:
|
|
2
|
+
version="version modstd.lib 4.3.0.1 Mar_2022 "; // $Id: f61b67b01efbf6f676552231c956f9e079dc9c20 $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: modstd.lib Groebner bases of ideals/modules using modular methods
|
|
@@ -43,7 +43,6 @@ NOTE: The procedure computes a standard basis of I (over the rational
|
|
|
43
43
|
SEE ALSO: modular
|
|
44
44
|
EXAMPLE: example modStd; shows an example"
|
|
45
45
|
{
|
|
46
|
-
if (system("--cpus")<1) { return(groebner(I)); }
|
|
47
46
|
/* read optional parameter */
|
|
48
47
|
int exactness = 1;
|
|
49
48
|
if (size(#) > 0)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version modular.lib 4.
|
|
2
|
+
version="version modular.lib 4.4.1.1 Feb_2025 "; // $Id: 46167e43bde95cf43e83f5255177ca733f180d56 $
|
|
3
3
|
category="General purpose";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: modular.lib An abstraction layer for modular techniques
|
|
@@ -128,6 +128,8 @@ EXAMPLE: example modular; shows an example"
|
|
|
128
128
|
int ncores_available;
|
|
129
129
|
while (1)
|
|
130
130
|
{
|
|
131
|
+
if(system("cpu")>1)
|
|
132
|
+
{
|
|
131
133
|
// compute list of primes
|
|
132
134
|
if (nAllPrimes == 0)
|
|
133
135
|
{
|
|
@@ -211,6 +213,68 @@ EXAMPLE: example modular; shows an example"
|
|
|
211
213
|
|
|
212
214
|
// finalTest
|
|
213
215
|
if (finalTest(Command, Arguments, result)) break;
|
|
216
|
+
}
|
|
217
|
+
else
|
|
218
|
+
{
|
|
219
|
+
// compute list of primes
|
|
220
|
+
nNewPrimes = 3;
|
|
221
|
+
primes = primeList(nNewPrimes, pmax);
|
|
222
|
+
pmax = primes[size(primes)]-1;
|
|
223
|
+
nAllPrimes = nAllPrimes+nNewPrimes;
|
|
224
|
+
|
|
225
|
+
// do computation modulo several primes
|
|
226
|
+
for (i = size(primes); i > 0; i--)
|
|
227
|
+
{
|
|
228
|
+
modresults[i]=Modular::modp(primes[i]);
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
// delete unlucky primes
|
|
232
|
+
indices = deleteUnluckyPrimes(modresults);
|
|
233
|
+
indices = sort(indices)[1];
|
|
234
|
+
for (i = size(indices); i > 1; i--)
|
|
235
|
+
{
|
|
236
|
+
if (indices[i] == indices[i-1])
|
|
237
|
+
{
|
|
238
|
+
indices = delete(indices, i);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
for (i = size(indices); i > 0; i--)
|
|
242
|
+
{
|
|
243
|
+
modresults = delete(modresults, indices[i]);
|
|
244
|
+
primes = delete(primes, indices[i]);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// lift result
|
|
248
|
+
if (N == 1)
|
|
249
|
+
{
|
|
250
|
+
result_lift = chinrem_recursive(modresults, primes);
|
|
251
|
+
}
|
|
252
|
+
else
|
|
253
|
+
{
|
|
254
|
+
result_lift = chinrem_recursive(list(result_lift)+modresults,
|
|
255
|
+
list(N)+primes);
|
|
256
|
+
}
|
|
257
|
+
modresults = list();
|
|
258
|
+
for (i = size(primes); i > 0; i--)
|
|
259
|
+
{
|
|
260
|
+
N = N*primes[i];
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// apply farey
|
|
264
|
+
result = farey_parallel(result_lift, N);
|
|
265
|
+
|
|
266
|
+
// pTest
|
|
267
|
+
p = prime(random(pmax div 2, pmax-1));
|
|
268
|
+
while (!Modular::primeTest(p, Arguments))
|
|
269
|
+
{
|
|
270
|
+
if (p <= 2) { ERROR("no more primes"); }
|
|
271
|
+
p = prime(random(p div 2, p-1));
|
|
272
|
+
}
|
|
273
|
+
if (!pTest(Command, Arguments, result, p)) { continue; }
|
|
274
|
+
|
|
275
|
+
// finalTest
|
|
276
|
+
if (finalTest(Command, Arguments, result)) break;
|
|
277
|
+
}
|
|
214
278
|
}
|
|
215
279
|
|
|
216
280
|
/* kill exported data */
|
|
@@ -265,9 +329,11 @@ static proc chinrem_recursive(list modresults, list moduli)
|
|
|
265
329
|
|
|
266
330
|
static proc primeList(int n, int pmax)
|
|
267
331
|
{
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
332
|
+
list primes;
|
|
333
|
+
int p = pmax;
|
|
334
|
+
int i;
|
|
335
|
+
if (system("cpu")>1)
|
|
336
|
+
{
|
|
271
337
|
for (i = 1; i <= n; i++)
|
|
272
338
|
{
|
|
273
339
|
if (p < 2)
|
|
@@ -288,11 +354,28 @@ static proc primeList(int n, int pmax)
|
|
|
288
354
|
}
|
|
289
355
|
killTask(t(i));
|
|
290
356
|
}
|
|
291
|
-
|
|
357
|
+
}
|
|
358
|
+
else
|
|
359
|
+
{
|
|
360
|
+
int j;
|
|
361
|
+
for (i = 1; i <= n; i++)
|
|
292
362
|
{
|
|
293
|
-
|
|
363
|
+
if (p < 2)
|
|
364
|
+
{ ERROR("no more primes"); }
|
|
365
|
+
p = prime(p);
|
|
366
|
+
if (Modular::primeList_task(p))
|
|
367
|
+
{
|
|
368
|
+
j++;
|
|
369
|
+
primes[j]=p;
|
|
370
|
+
}
|
|
371
|
+
p--;
|
|
294
372
|
}
|
|
295
|
-
|
|
373
|
+
}
|
|
374
|
+
if (j < n)
|
|
375
|
+
{
|
|
376
|
+
primes = primes+primeList(n-j, p);
|
|
377
|
+
}
|
|
378
|
+
return(primes);
|
|
296
379
|
}
|
|
297
380
|
|
|
298
381
|
static proc primeList_task(int p)
|
|
@@ -342,7 +425,6 @@ static proc finalTest_default(string command, alias list args,
|
|
|
342
425
|
|
|
343
426
|
static proc farey_parallel(def farey_arg, bigint farey_N)
|
|
344
427
|
{
|
|
345
|
-
if(system("cpu")==0) { return(farey(farey_arg,farey_N)); }
|
|
346
428
|
arg_type = typeof(farey_arg);
|
|
347
429
|
if (arg_type != "bigint" && arg_type != "ideal" && arg_type != "module"
|
|
348
430
|
&& arg_type != "matrix" && arg_type != "list")
|
|
@@ -350,6 +432,8 @@ static proc farey_parallel(def farey_arg, bigint farey_N)
|
|
|
350
432
|
int i;
|
|
351
433
|
if (arg_type == "list")
|
|
352
434
|
{
|
|
435
|
+
if(system("cpu")>1)
|
|
436
|
+
{
|
|
353
437
|
int size_farey_arg = size(farey_arg);
|
|
354
438
|
for (i = size_farey_arg; i > 0; i--)
|
|
355
439
|
{
|
|
@@ -363,7 +447,16 @@ static proc farey_parallel(def farey_arg, bigint farey_N)
|
|
|
363
447
|
result[i] = getResult(t(i));
|
|
364
448
|
killTask(t(i));
|
|
365
449
|
}
|
|
366
|
-
|
|
450
|
+
}
|
|
451
|
+
else
|
|
452
|
+
{
|
|
453
|
+
int size_farey_arg = size(farey_arg);
|
|
454
|
+
for (i = size_farey_arg; i > 0; i--)
|
|
455
|
+
{
|
|
456
|
+
result[i] = Modular::farey_parallel(farey_arg[i], farey_N);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
return(result);
|
|
367
460
|
}
|
|
368
461
|
if (arg_type == "bigint" || arg_type == "matrix")
|
|
369
462
|
{ return(farey(farey_arg, farey_N)); }
|
|
@@ -373,22 +466,36 @@ static proc farey_parallel(def farey_arg, bigint farey_N)
|
|
|
373
466
|
// return(farey(farey_arg,farey_N));
|
|
374
467
|
//}
|
|
375
468
|
exportto(Modular, farey_arg);
|
|
376
|
-
exportto(Modular, farey_N);
|
|
469
|
+
if (defined(farey_N)>1) {exportto(Modular, farey_N);}
|
|
377
470
|
int size_arg = ncols(farey_arg);
|
|
378
471
|
int chunks = par_range(size_arg);
|
|
379
472
|
intvec range;
|
|
380
|
-
|
|
473
|
+
if(system("cpu")>1)
|
|
381
474
|
{
|
|
475
|
+
for (i = chunks; i > 0; i--)
|
|
476
|
+
{
|
|
382
477
|
range = par_range(size_arg, i);
|
|
383
478
|
task t(i) = "Modular::farey_task", list(range);
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
479
|
+
}
|
|
480
|
+
startTasks(t(1..chunks));
|
|
481
|
+
waitAllTasks(t(1..chunks));
|
|
482
|
+
def result = getResult(t(chunks));
|
|
483
|
+
for (i = chunks-1; i > 0; i--)
|
|
484
|
+
{
|
|
390
485
|
result = getResult(t(i)), result;
|
|
391
486
|
killTask(t(i));
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
else
|
|
490
|
+
{
|
|
491
|
+
def result;
|
|
492
|
+
range = par_range(size_arg, chunks);
|
|
493
|
+
result = Modular::farey_task(range);
|
|
494
|
+
for (i = chunks-1; i > 0; i--)
|
|
495
|
+
{
|
|
496
|
+
range = par_range(size_arg, i);
|
|
497
|
+
result = Modular::farey_task(range),result;
|
|
498
|
+
}
|
|
392
499
|
}
|
|
393
500
|
kill farey_arg;
|
|
394
501
|
kill farey_N;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
///////////////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version modules.lib 4.1.2.0 Feb_2019 "; // $Id:
|
|
2
|
+
version="version modules.lib 4.1.2.0 Feb_2019 "; // $Id: c75205a956e2064a09eb3d8f6805d5eed9e904fc $
|
|
3
3
|
category="Commutative Algebra";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: modules.lib Modules
|
|
@@ -486,18 +486,26 @@ matrix a=R.reso[1];
|
|
|
486
486
|
R.dd[1]=makeMatrix(a);
|
|
487
487
|
if(!(R.dd[1].ishomogeneous)){
|
|
488
488
|
R.isgraded=0;
|
|
489
|
-
for(int i=2;i<=(size(R.reso)+1);i++)
|
|
490
|
-
|
|
491
|
-
|
|
489
|
+
for(int i=2;i<=(size(R.reso)+1);i++)
|
|
490
|
+
{
|
|
491
|
+
if(size(module(a))>0)
|
|
492
|
+
{
|
|
493
|
+
a=R.reso[i];
|
|
494
|
+
R.dd[i]=nongradedMatrix(a);
|
|
495
|
+
}
|
|
492
496
|
}
|
|
493
497
|
|
|
494
498
|
}
|
|
495
499
|
else{
|
|
496
500
|
R.isgraded=1;
|
|
497
|
-
for(int i=2;i<=(size(R.reso));i++)
|
|
501
|
+
for(int i=2;i<=(size(R.reso));i++)
|
|
502
|
+
{
|
|
498
503
|
a=R.reso[i];
|
|
499
|
-
|
|
500
|
-
|
|
504
|
+
if(size(module(a))>0)
|
|
505
|
+
{
|
|
506
|
+
mydeg=R.dd[i-1].source.grading;
|
|
507
|
+
R.dd[i]=resMatrix(a,mydeg,R.dd[i-1].source);
|
|
508
|
+
}
|
|
501
509
|
}
|
|
502
510
|
}
|
|
503
511
|
R.over=M.over;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/////////////////////////////////////////////////////////////////////
|
|
2
|
-
version="version ncpreim.lib 4.1.2.0 Feb_2019 "; // $Id:
|
|
2
|
+
version="version ncpreim.lib 4.1.2.0 Feb_2019 "; // $Id: f12c1cc4074988e006ec2eaea73e2a69d604427f $
|
|
3
3
|
category="Noncommutative";
|
|
4
4
|
info="
|
|
5
5
|
LIBRARY: ncpreim.lib Non-commutative elimination and preimage computations
|
|
@@ -124,7 +124,7 @@ EXAMPLE: example admissibleSub; shows examples
|
|
|
124
124
|
M = simplify(M,2); // get rid of double entries in v
|
|
125
125
|
intvec opt = option(get);
|
|
126
126
|
attrib(M,"isSB",1);
|
|
127
|
-
option(
|
|
127
|
+
option(redSB);
|
|
128
128
|
J = NF(I,M);
|
|
129
129
|
option(set,opt);
|
|
130
130
|
for (i=1; i<=ncols(I); i++)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//////////////////////////////////////////////////////////////////////////////
|
|
2
2
|
//////////////////////////////////////////////////////////////////////////////
|
|
3
|
-
version="version normal.lib 4.3.2.10 Nov_2023 "; // $Id:
|
|
3
|
+
version="version normal.lib 4.3.2.10 Nov_2023 "; // $Id: 3046fde492a13a76f318c7c627e4fea52f9fd221 $
|
|
4
4
|
category="Commutative Algebra";
|
|
5
5
|
info="
|
|
6
6
|
LIBRARY: normal.lib Normalization of Affine Rings
|
|
@@ -7380,8 +7380,8 @@ EXAMPLE: example modNormal; shows an example
|
|
|
7380
7380
|
int d = dim(I);
|
|
7381
7381
|
ideal IMin = IM[2];
|
|
7382
7382
|
qring Q = I; // We work in the quotient by the groebner base of the ideal I
|
|
7383
|
-
option(
|
|
7384
|
-
option(
|
|
7383
|
+
option(redSB);
|
|
7384
|
+
option(returnSB);
|
|
7385
7385
|
ideal I = fetch(R, I);
|
|
7386
7386
|
attrib(I, "isSB", 1);
|
|
7387
7387
|
ideal IMin = fetch(R, IMin);
|
|
@@ -7446,7 +7446,7 @@ EXAMPLE: example modNormal; shows an example
|
|
|
7446
7446
|
maxModularTime=0;
|
|
7447
7447
|
totalModularTime = timer;
|
|
7448
7448
|
if (k==1) {sh=0;} else {sh=1;}
|
|
7449
|
-
if (ncores
|
|
7449
|
+
if (ncores <= 1)
|
|
7450
7450
|
{
|
|
7451
7451
|
for(j = (k-1)*n2+1+sh; j <= k*n2+1; j++)
|
|
7452
7452
|
{
|
|
@@ -7760,8 +7760,8 @@ EXAMPLE: example locNormal; shows an example
|
|
|
7760
7760
|
int d = dim(I);
|
|
7761
7761
|
ideal IMin = IM[2];
|
|
7762
7762
|
qring Q = I; // We work in the quotient by the groebner base of the ideal I
|
|
7763
|
-
option(
|
|
7764
|
-
option(
|
|
7763
|
+
option(redSB);
|
|
7764
|
+
option(returnSB);
|
|
7765
7765
|
ideal I = fetch(R, I);
|
|
7766
7766
|
attrib(I, "isSB", 1);
|
|
7767
7767
|
ideal IMin = fetch(R, IMin);
|