Opened 6 years ago
Closed 6 years ago
#806 closed bug (fixed)
Crash with absFactorize
Reported by: | gorzel | Owned by: | somebody |
---|---|---|---|
Priority: | major | Milestone: | 4-2-0 and higher |
Component: | dontKnow | Version: | 4-1-0 |
Keywords: | absFactorize, factorize | Cc: |
Description
We check (online) the geometric irreducibility of a two cuspidal quartic using absFactorize*:
> LIB "absfact.lib"; // ** loaded /usr/local/bin/../share/singular/LIB/absfact.lib (4.0.0.0,Jun_2013) > ring r0 = 0,(x,y),dp; > poly H = x^3-21*x^2*y-42*x*y^2-19*y^3+3*x^2+12*x*y+12*y^2+9*x+18*y+27;
With absFactorizeBCG the result is correct:
> def S = absFactorizeBCG(H); setring S; absolute_factors; // 'absFactorizeBCG' created a ring, in which a list absolute_factors (the // absolute factors) is stored. // To access the list of absolute factors, type (if the name S was assigned // to the return value): // setring(S); absolute_factors; [1]: _[1]=-1 _[2]=-x3+21*x2y+42*xy2+19*y3-3*x2-12*xy-12*y2-9*x-18*y-27 [2]: 1,1 [3]: _[1]=(a) _[2]=(a) [4]: 1
But with absFactorize Singular 4-0-1 ... 4-1-0 crashes:
> setring r0; > kill S; > def S = absFactorize(H); setring S; absolute_factors; Singular : signal 11 (v: 4103): current line:>> list p_facts = factorize(p);<< Segment fault/Bus error occurred at 7ffec36864a0 because of 10206 (r:1502891066) please inform the authors trying to restart... ? size(`def`) failed ? expected size(`bigint`) ? expected size(`number`) ? expected size(`resolution`) ? expected size(`string`) ? expected size(`poly`) ? expected size(`vector`) ? expected size(`ideal`) ? expected size(`module`) ? expected size(`matrix`) ? expected size(`intvec`) ? expected size(`intmat`) ? expected size(`list`) ? expected size(`ring`) ? error occurred in or before absfact.lib::smallestProperSimpleFactor line 92: ` int s = size(p_facts[1]);` ? expected int-expression. type 'help int;' ? leaving absfact.lib::smallestProperSimpleFactor Auf Wiedersehen.
Take a look at the proc smallestProperSimpleFactor of absfact.lib (analyzed with Singular 4-0-1):
The input and the internal basering just before the crash with factorize is:
p = x3-21*x2y-42*xy2-19*y3+3*x2+12*xy+12*y2+9*x+18*y+27 ring MPq = (0,a),(x,y),(dp(2),C); minpoly = (a^3-12/19*a^2-18/19*a-27/19); Singular : signal 11 (v: 4010): current line:>> factorize(p);<< Segment fault/Bus error occurred at 7fff29f17790 because of 10202 (r:1502746365) please inform the authors trying to restart...
If the minimal polynomial were reducible over Q, then it is well known that Singular crashes, but this minimal polynomial is irreducible. (Also checked with gp/pari, the Galois group is S_3.)
> ring ra = 0,a,dp; > poly mipo = a3-12/19a2-18/19a-27/19; > factorize (mipo); [1]: _[1]=1/19 _[2]=19a3-12a2-18a-27 [2]: 1,1
The given polynomial F is irreducible over this number field, too. If we try factorize on the Toplevel with the same ring MPq as in smallestProperSimpleFactor, then no crash occurs:
> ring raxy = (0,a),(x,y),dp; minpoly = a3-12/19a2-18/19a-27/19; > poly H = x3-21*x2y-42*xy2-19*y3+3*x2+12*xy+12*y2+9*x+18*y+27; > factorize (H); [1]: _[1]=1 _[2]=x3-21*x2y-42*xy2-19*y3+3*x2+12*xy+12*y2+9*x+18*y+27 [2]: 1,1
Very strange.
fixed with commit 02ce734e9d185d5657e351e31822276cb42351a4