Opened 12 years ago

Closed 12 years ago

#334 closed bug (fixed)

Singular crashes when I try to calculate the radical of an ideal.

Reported by: klooster@… Owned by: seelisch
Priority: major Milestone: 3-1-4 and higher
Component: singular-libs Version: 3-1-0
Keywords: primdec.radical Cc:

Description

(See attachment)

Attachments (2)

SingBug.sing (1.6 KB) - added by klooster@… 12 years ago.
Input/output
SingBug.Debug.out.txt (8.7 KB) - added by Oleksandr 12 years ago.
output of Singularg (recent trunk version)

Download all attachments as: .zip

Change History (5)

Changed 12 years ago by klooster@…

Attachment: SingBug.sing added

Input/output

Changed 12 years ago by Oleksandr

Attachment: SingBug.Debug.out.txt added

output of Singularg (recent trunk version)

comment:1 Changed 12 years ago by seelisch

Owner: changed from somebody to seelisch

comment:2 Changed 12 years ago by gorzel

  1. The essence of the crash is the following bug:
>  ring Ra = (0,a),x,dp;
>  poly f0 = a*(a2+a+1);
>  poly f1 = a*(a2+a+1) +1;
>  ring ra = (0,a),x,dp;
>  minpoly = a2+a+1;
>  imap(Ra,f1);
1
>  imap(Ra,f0);
Singular : signal 11 (v: 3130/ 14215 ):
current line:>> imap(Ra,f0);<<
Segment fault/Bus error occurred at 2b7d5ebff260 because of 10246 (r:1305549581)
please inform the authors
trying to restart...

2.) Altough, I guess, it is not too difficult to fix this bug, it seems that the

proc radical is limited for computations for rings (in char 0 ?) without algebraic extension. (The minpoly is not just "forgotten" but it can not be set in the implementation since some variables are moved to parameters.) Or, will the result always be correct when the coefficients of intemediate results are finally reduced by the minpoly?

3.) @klooster: Despite this unsolved question yet, Singular can easily compute the radical:

(I have simplified the code a little bit.)

> LIB "linalg.lib";
> ring R=(0,a),(x,y,z),dp;
> minpoly = a2+a+1;
> poly f1=x3+y3+z3;
> matrix m[3][3]=1,0,1,1,0,a,1,1,0;
> matrix v[3][1]=x2,y2,z2;
> map phir=R,(-det(m)*inverse(m)*v);
> poly f2=phir(f1);
> option(redSB);
> facstd(jacob(f2));
[1]:
   _[1]=z
   _[2]=x-y
[2]:
   _[1]=z
   _[2]=x+y
[3]:
   _[1]=y
   _[2]=x2+(-a-2)*z2
[4]:
   _[1]=x
   _[2]=y2+(a-1)*z2

comment:3 Changed 12 years ago by seelisch

Resolution: fixed
Status: newclosed

fixed with revision 14234 (fix in longalg.cc)

Note: See TracTickets for help on using tickets.