Opened 14 years ago

Closed 13 years ago

#107 closed bug (fixed)

bug in extgcd

Reported by: gorzel Owned by: hannes
Priority: major Milestone: 3-1-1
Component: singular-kernel Version:
Keywords: extgcd Cc:

Description

Several inconsistencies with extgcd

1.) gcd and extgcd should give the same normalize gcd

> ring r=0,x,dp;
> poly f = 2x+2;
> poly g = x2-1;

> gcd(f,g);
x+1            // OK

> extgcd(f,g);
[1]:
   2x+2       // Not normalized
[2]:
   1
[3]:
   0

It should better be:

> extgcd(f,g);
[1]:
   x+1
[2]:
   1/2
[3]:
   0

2.) In a ring with parameter, the the gcd is same for gcd and extgcd,

(if the polynomials are independent of the parameter),

but the result for the factors is wrong

> ring rt=(0,t),x,dp;
> poly f = 2x+2;
> poly g = x2-1;
> gcd(f,g);
x+1
> extgcd(f,g);
[1]:
   x+1    // OK
[2]:
   0      // <-- BUG, has to be 1/2 
[3]:
   0

3.) If the polynomial depends on a parameter, it is not accepted as input,

although it is univariate.

> poly ft = tx+t;
> gcd(ft,g);
x+1
> extgcd(ft,g);                      // BUG
   ? not univariate
   ? error occurred in STDIN line 13: `extgcd(ft,g);`
> univariate(ft);
1

Change History (2)

comment:1 Changed 14 years ago by seelisch

Milestone: Release 3-1-0Release following release 3-1-0

comment:2 Changed 13 years ago by hannes

Resolution: fixed
Status: newclosed

1.) extgcd tries to avoid rational (in the case of a non-constatnt gcd) 2.) fixed 3.) polynomials in k(a)[x] are not univariate

Note: See TracTickets for help on using tickets.