passagemath-singular 10.6.30__cp313-cp313-musllinux_1_2_aarch64.whl → 10.6.31rc2__cp313-cp313-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.

Files changed (73) hide show
  1. PySingular.cpython-313-aarch64-linux-musl.so +0 -0
  2. {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc2.dist-info}/METADATA +7 -7
  3. {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc2.dist-info}/RECORD +70 -68
  4. passagemath_singular.libs/{libSingular-4-d894d219.4.1.so → libSingular-4-dfbeac15.4.1.so} +0 -0
  5. passagemath_singular.libs/libfactory-4-6907d06f.4.1.so +0 -0
  6. passagemath_singular.libs/libntl-d58d2536.so.44.0.1 +0 -0
  7. passagemath_singular.libs/{libomalloc-0-7768d27e.9.6.so → libomalloc-0-c68af0d6.9.6.so} +0 -0
  8. passagemath_singular.libs/{libpolys-4-2dcf33c7.4.1.so → libpolys-4-f587aa49.4.1.so} +0 -0
  9. passagemath_singular.libs/libreadline-3f6fb6b3.so.8.2 +0 -0
  10. passagemath_singular.libs/{libsingular_resources-4-21ad9234.4.1.so → libsingular_resources-4-c24151f0.4.1.so} +0 -0
  11. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-313-aarch64-linux-musl.so +0 -0
  12. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-313-aarch64-linux-musl.so +0 -0
  13. sage/algebras/fusion_rings/poly_tup_engine.cpython-313-aarch64-linux-musl.so +0 -0
  14. sage/algebras/fusion_rings/shm_managers.cpython-313-aarch64-linux-musl.so +0 -0
  15. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-313-aarch64-linux-musl.so +0 -0
  16. sage/algebras/letterplace/free_algebra_letterplace.cpython-313-aarch64-linux-musl.so +0 -0
  17. sage/algebras/letterplace/letterplace_ideal.cpython-313-aarch64-linux-musl.so +0 -0
  18. sage/algebras/quatalg/quaternion_algebra_cython.cpython-313-aarch64-linux-musl.so +0 -0
  19. sage/algebras/quatalg/quaternion_algebra_element.cpython-313-aarch64-linux-musl.so +0 -0
  20. sage/libs/singular/decl.pxd +1 -1
  21. sage/libs/singular/function.cpython-313-aarch64-linux-musl.so +0 -0
  22. sage/libs/singular/groebner_strategy.cpython-313-aarch64-linux-musl.so +0 -0
  23. sage/libs/singular/option.cpython-313-aarch64-linux-musl.so +0 -0
  24. sage/libs/singular/polynomial.cpython-313-aarch64-linux-musl.so +0 -0
  25. sage/libs/singular/ring.cpython-313-aarch64-linux-musl.so +0 -0
  26. sage/libs/singular/singular.cpython-313-aarch64-linux-musl.so +0 -0
  27. sage/matrix/matrix_mpolynomial_dense.cpython-313-aarch64-linux-musl.so +0 -0
  28. sage/rings/function_field/element_polymod.cpython-313-aarch64-linux-musl.so +0 -0
  29. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-313-aarch64-linux-musl.so +0 -0
  30. sage/rings/polynomial/multi_polynomial_libsingular.cpython-313-aarch64-linux-musl.so +0 -0
  31. sage/rings/polynomial/plural.cpython-313-aarch64-linux-musl.so +0 -0
  32. sage/symbolic/expression.cpython-313-aarch64-linux-musl.so +0 -0
  33. sage/symbolic/expression.pyx +1 -1
  34. sage_wheels/bin/ESingular +0 -0
  35. sage_wheels/bin/Singular +0 -0
  36. sage_wheels/bin/TSingular +0 -0
  37. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  38. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  39. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  40. sage_wheels/lib/singular/MOD/interval.so +0 -0
  41. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  42. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  43. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  44. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  45. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  46. sage_wheels/share/info/singular.info +8119 -3332
  47. sage_wheels/share/singular/LIB/assprimeszerodim.lib +21 -35
  48. sage_wheels/share/singular/LIB/gmspoly.lib +2 -2
  49. sage_wheels/share/singular/LIB/homolog.lib +41 -3
  50. sage_wheels/share/singular/LIB/modprimdec.lib +22 -2
  51. sage_wheels/share/singular/LIB/modstd.lib +1 -2
  52. sage_wheels/share/singular/LIB/modular.lib +124 -17
  53. sage_wheels/share/singular/LIB/modules.lib +15 -7
  54. sage_wheels/share/singular/LIB/ncpreim.lib +2 -2
  55. sage_wheels/share/singular/LIB/normal.lib +6 -6
  56. sage_wheels/share/singular/LIB/normaliz.lib +101 -15
  57. sage_wheels/share/singular/LIB/parallel.lib +28 -14
  58. sage_wheels/share/singular/LIB/primdec.lib +51 -68
  59. sage_wheels/share/singular/LIB/primdecint.lib +2 -2
  60. sage_wheels/share/singular/LIB/random.lib +2 -2
  61. sage_wheels/share/singular/LIB/resources.lib +7 -6
  62. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +228 -104
  63. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  64. sage_wheels/share/singular/LIB/sheafcoh.lib +2 -2
  65. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  66. sage_wheels/share/singular/LIB/triang.lib +20 -18
  67. sage_wheels/share/singular/emacs/hlp-cmpl.el +8 -0
  68. sage_wheels/share/singular/singular.idx +1160 -1144
  69. passagemath_singular.libs/libfactory-4-e322c0c6.4.1.so +0 -0
  70. passagemath_singular.libs/libntl-f4409ed7.so.44.0.1 +0 -0
  71. passagemath_singular.libs/libreadline-78057fb4.so.8.2 +0 -0
  72. {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc2.dist-info}/WHEEL +0 -0
  73. {passagemath_singular-10.6.30.dist-info → passagemath_singular-10.6.31rc2.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: 0162ca730506c26c2300f08ea75b597ca25d42ca $
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
- if(system("cpu")>0)
56
+ /* call modular() */
57
+ // TODO: write deleteUnluckyPrimes_zeroRadical()
58
+ if(exactness)
57
59
  {
58
- /* call modular() */
59
- // TODO: write deleteUnluckyPrimes_zeroRadical()
60
- if(exactness)
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
- ideal F=zeroRadP(I);
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
- if (system("cpu")>0)
245
- {
246
- /* call modular() */
247
- if(exactness)
248
- {
249
- ideal F = modular("Assprimeszerodim::modpSpecialAlgDep",
250
- list(I, f, d, a),
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
- ideal F=modpSpecialAlgDep(I,f,d,a);
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: 264cf0a57042ad73de9f7a4d323de57c3f4bdca1 $
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("noredSB");
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: 3755d88b9200ca6640a2db98b0067769fed4ec9a $
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
- weightR=attrib(m2t,"isHomog");
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
- weightR=attrib(resl[k],"isHomog");
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: c157e2206dcf892b94c2ab104249b53dca2f15df $
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: 49bcd8b8463c6dab12a3bac756f807885c0472e7 $
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.0.0 Dec_2020 "; // $Id: e3c81f6b38861e00f9a7575e74ef097b2ba98a32 $
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
- list primes;
269
- int p = pmax;
270
- int i;
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
- if (j < n)
357
+ }
358
+ else
359
+ {
360
+ int j;
361
+ for (i = 1; i <= n; i++)
292
362
  {
293
- primes = primes+primeList(n-j, p);
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
- return(primes);
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
- return(result);
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
- for (i = chunks; i > 0; i--)
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
- startTasks(t(1..chunks));
386
- waitAllTasks(t(1..chunks));
387
- def result = getResult(t(chunks));
388
- for (i = chunks-1; i > 0; i--)
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: f041236f3424a3f877c78d1b38553570372af682 $
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
- a=R.reso[i];
491
- R.dd[i]=nongradedMatrix(a);
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
- mydeg=R.dd[i-1].source.grading;
500
- R.dd[i]=resMatrix(a,mydeg,R.dd[i-1].source);
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: 6e8ad12f315e785ef78646924a92982d37221d62 $
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("redSB");
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: 76a6039ff3cbeb86af5b829fd9dea81803cb208f $
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("redSB");
7384
- option("returnSB");
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 == 1)
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("redSB");
7764
- option("returnSB");
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);