Opened 10 years ago

# Wrong constant factor in absFactorize

Reported by: Owned by: mlee decker minor 3-2-0 and higher singular-libs 3-1-6

### 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";
> 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;
:
_=5 //should be 1
_=(a)*x+y
:
1,1
:
_=(a)
_=(a^2+5)
:
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;
:
_=-5 //should be 5
_=x-y
_=x+y
_=x
:
1,1,1,2
:
_=(a)
_=(a)
_=(a)
_=(a)
:
4
>
```

### comment:1 Changed 10 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:
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: ideal   (the absolute factors)
absolute_factors: intvec  (the multiplicities)
absolute_factors: ideal   (the minimal polynomials)
absolute_factors: int     (total number of nontriv. absolute factors)

The corresponding entry absolute_factors[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 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
_=x4-x2-1
:
1,1
> ring ra = (0,a),x,dp; minpoly = a4-a2-1;
> factorize(x4-x2-1);
:
_=1
_=x+(-a)
_=x+(a)
_=x2+(a2-1)
:
1,1,1,1
```

Now call absfactorize:

```> setring r;
> LIB "absfact.lib";
> def S = absFactorize(f);
> setring(S); absolute_factors;
:
_=1
_=x+(-a)
:
1,1
:
_=(a)
_=(a4-a2-1)
:
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 10 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 10 years ago by barakat

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