Opened 9 years ago

Last modified 9 years ago

#491 new bug

Wrong constant factor in absFactorize

Reported by: mlee Owned by: decker
Priority: minor Milestone: 3-2-0 and higher
Component: singular-libs Version: 3-1-6
Keywords: Cc:

Description

                     SINGULAR                                 /  Development
 A Computer Algebra System for Polynomial Computations       /   version 3-1-6
                                                           0<
 by: W. Decker, G.-M. Greuel, G. Pfister, H. Schoenemann     \   Dec 2012
FB Mathematik der Universitaet, D-67653 Kaiserslautern        \
// ** executing /home/q/Spielwiese/new/Singular/LIB/.singularrc
> LIB "absfact.lib";
// ** loaded /home/q/Spielwiese/new/Singular/LIB/absfact.lib (14191,2011-05-04)
> ring R = (0), (x,y), lp;
> short= 0;
> poly p = (5x2+y2);
> def S = absFactorize(p) ;

// 'absFactorize' 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; 
> setring(S);
> short= 0;
> absolute_factors;
[1]:
   _[1]=5 //should be 1
   _[2]=(a)*x+y
[2]:
   1,1
[3]:
   _[1]=(a)
   _[2]=(a^2+5)
[4]:
   2
> kill R;
> ring R = (0), (x,y), lp;
> short= 0;
> poly p = (5x4-5x2y2);
> def S = absFactorize(p) ;
// ** redefining S **

// 'absFactorize' 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; 
> setring(S);
> short= 0;
> absolute_factors;
[1]:
   _[1]=-5 //should be 5
   _[2]=x-y
   _[3]=x+y
   _[4]=x
[2]:
   1,1,1,2
[3]:
   _[1]=(a)
   _[2]=(a)
   _[3]=(a)
   _[4]=(a)
[4]:
   4
>

Change History (3)

comment:1 Changed 9 years ago by gorzel

  1. Strange since the input is homogeneous: Compare the above result with
      absfactorize(subst(p,y,1));
    
  1. What is with this open question:

http://www.singular.uni-kl.de/forum/viewtopic.php?t=2087

  1. I see also another problem with absfactorize. But perhaps it is only lack of clarity with the description in the documentation: http://www.singular.uni-kl.de/Manual/latest/sing_1069.htm#SEC1145

There it is said about the return value:

    absolute_factors[1]: ideal   (the absolute factors)
    absolute_factors[2]: intvec  (the multiplicities)
    absolute_factors[3]: ideal   (the minimal polynomials)
    absolute_factors[4]: int     (total number of nontriv. absolute factors)

 The corresponding entry absolute_factors[3][j] is the minimal polynomial of 
 the field extension over which the factor is minimally defined 
 (its degree is the number of conjugates in the class).

As Wienand said in the forum:http://www.singular.uni-kl.de/forum/viewtopic.php?t=1422

 Note however that the extension field returned by absFactorize is usually not 
 yet the splitting field 
 (this would require additional computations over extension fields):

But does not lead the result of absolute_factors[4] to ambiguities ?

Consider the polynomial x4-x2-1, which is irreducible over Q and has Galois group D_4. This means that Q(a), a4-a2-1 is not the splitting field of x4-x2-1. A splitting field needs a further quadratic extension.

> ring r=0,x,dp;
> poly f = x4-x2-1;
> factorize(f);
[1]:
   _[1]=1
   _[2]=x4-x2-1
[2]:
   1,1
> ring ra = (0,a),x,dp; minpoly = a4-a2-1;
> factorize(x4-x2-1);                     
[1]:
   _[1]=1
   _[2]=x+(-a)
   _[3]=x+(a)
   _[4]=x2+(a2-1)
[2]:
   1,1,1,1

Now call absfactorize:

> setring r;
> LIB "absfact.lib";
> def S = absFactorize(f);                                                            
> setring(S); absolute_factors; 
[1]:
   _[1]=1
   _[2]=x+(-a)
[2]:
   1,1
[3]:
   _[1]=(a)
   _[2]=(a4-a2-1)
[4]:
   4

According to the description, the result says that over the ring ra, the polynomial x4-x2-1 should have four linear factors? This is not true; or should " (its degree is the number of conjugates in the class)." only refer to the splitting field? I did not read the whole article, so I don't know what they intend to say.

comment:2 Changed 9 years ago by mlee

According to the description, the result says that over the ring ra, the polynomial x4-x2-1 should have
four linear factors?

It actually says that over ra, at least one representative of the class of conjugated absolute factors is defined. Now a4-a2-1 has four roots which means, the class x+(-a) represents, has four members.

comment:3 Changed 9 years ago by barakat

Owner: changed from somebody to decker
Note: See TracTickets for help on using tickets.