|
1 |
| -Binary files src/Olinux-x86_64/alglin1.o and b/Olinux-x86_64/alglin1.o differ |
2 |
| -Only in src/Olinux-x86_64: libpari-gmp.so.2.5.5 |
3 | 1 | diff -ru src/src/basemath/alglin1.c b/src/basemath/alglin1.c
|
4 |
| ---- src/src/basemath/alglin1.c 2014-01-09 15:43:35.847263581 +0100 |
5 |
| -+++ b/src/basemath/alglin1.c 2014-01-09 15:55:47.903649326 +0100 |
6 |
| -@@ -2412,6 +2412,7 @@ |
| 2 | +--- src/src/basemath/alglin1.c 2014-01-29 18:00:27.000000000 +0100 |
| 3 | ++++ b/src/basemath/alglin1.c 2014-02-09 01:54:37.676725196 +0100 |
| 4 | +@@ -247,6 +247,7 @@ |
7 | 5 | a = RgM_shallowcopy(a);
|
8 | 6 | for (i=1; i<nbco; i++)
|
9 | 7 | {
|
10 | 8 | + int garbage = 0; /* Only gerepile() once per loop iteration */
|
11 | 9 | for(k=i; k<=nbco; k++)
|
12 | 10 | {
|
13 |
| - gcoeff(a,k,i) = modii(gcoeff(a,k,i), p); |
14 |
| -@@ -2435,7 +2436,7 @@ |
| 11 | + gcoeff(a,k,i) = ff->red(E,gcoeff(a,k,i)); |
| 12 | +@@ -271,7 +272,7 @@ |
15 | 13 | for (j=i+1; j<=nbco; j++)
|
16 | 14 | {
|
17 |
| - gcoeff(a,j,k) = Fp_sub(gcoeff(a,j,k), Fp_mul(m,gcoeff(a,j,i),p),p); |
| 15 | + gcoeff(a,j,k) = ff->add(E, gcoeff(a,j,k), ff->mul(E,m,gcoeff(a,j,i))); |
18 | 16 | - if (low_stack(lim, stack_lim(av,1)))
|
19 | 17 | + if (low_stack(lim, stack_lim(av,1)) && (garbage++ == 0))
|
20 | 18 | {
|
21 | 19 | if(DEBUGMEM>1) pari_warn(warnmem,"det. col = %ld",i);
|
22 |
| - gerepileall(av,2, &a,&x); |
23 |
| -@@ -2994,6 +2995,7 @@ |
| 20 | + gerepileall(av,4, &a,&x,&q,&m); |
| 21 | +@@ -3721,6 +3722,7 @@ |
24 | 22 | a = RgM_shallowcopy(a);
|
25 | 23 | for (i=1; i<nbco; i++)
|
26 | 24 | {
|
27 | 25 | + int garbage = 0; /* Only gerepile() once per loop iteration */
|
28 | 26 | k = pivot(a, data, i, NULL);
|
29 | 27 | if (k > nbco) return gerepilecopy(av, gcoeff(a,i,i));
|
30 | 28 | if (k != i)
|
31 |
| -@@ -3013,7 +3015,7 @@ |
| 29 | +@@ -3740,7 +3742,7 @@ |
32 | 30 | for (j=i+1; j<=nbco; j++)
|
33 | 31 | {
|
34 | 32 | gcoeff(a,j,k) = gsub(gcoeff(a,j,k), gmul(m,gcoeff(a,j,i)));
|
35 |
| -- if (low_stack(lim, stack_lim(av,1))) |
36 |
| -+ if (low_stack(lim, stack_lim(av,1)) && (garbage++ == 0)) |
| 33 | +- if (low_stack(lim, stack_lim(av,3))) |
| 34 | ++ if (low_stack(lim, stack_lim(av,3)) && (garbage++ == 0)) |
37 | 35 | {
|
38 | 36 | if(DEBUGMEM>1) pari_warn(warnmem,"det. col = %ld",i);
|
39 | 37 | gerepileall(av,2, &a,&x);
|
40 |
| -@@ -3063,6 +3065,7 @@ |
| 38 | +@@ -3791,6 +3793,7 @@ |
41 | 39 | {
|
42 | 40 | GEN ci, ck, m;
|
43 | 41 | int diveuc = (gequal1(pprec)==0);
|
44 | 42 | + int garbage = 0; /* Only gerepile() once per loop iteration */
|
45 | 43 |
|
46 | 44 | p = gcoeff(a,i,i);
|
47 | 45 | if (gequal0(p))
|
48 |
| -@@ -3099,7 +3102,7 @@ |
| 46 | +@@ -3827,7 +3830,7 @@ |
49 | 47 | GEN p1 = gsub(gmul(p,gel(ck,j)), gmul(m,gel(ci,j)));
|
50 | 48 | if (diveuc) p1 = mydiv(p1,pprec);
|
51 | 49 | gel(ck,j) = gerepileupto(av2, p1);
|
|
0 commit comments