=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/fff,v retrieving revision 1.3 retrieving revision 1.6 diff -u -p -r1.3 -r1.6 --- OpenXM_contrib2/asir2000/lib/fff 2000/08/22 05:04:21 1.3 +++ OpenXM_contrib2/asir2000/lib/fff 2001/09/03 07:01:09 1.6 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/lib/fff,v 1.2 2000/08/21 08:31:41 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/lib/fff,v 1.5 2001/05/09 01:41:42 noro Exp $ */ /* fff : Univariate factorizer over a finite field. @@ -112,6 +112,7 @@ def sqfr_ff(F) F2 = ugcd(F,F1); /* FLAT = H/gcd(H,H') : square free part of H */ FLAT = sdiv(F,F2); + FLAT /= LCOEF(FLAT); I = 0; /* square free factorization of H */ while ( deg(FLAT,V) ) { @@ -126,6 +127,7 @@ def sqfr_ff(F) FLAT1 = simp_ff(1); else FLAT1 = ugcd(F,FLAT); + FLAT1 /= LCOEF(FLAT1); G = sdiv(FLAT,FLAT1); FLAT = FLAT1; L = cons([G,I],L); @@ -467,7 +469,7 @@ def lnf_insert(P,L,V) def c_z_ff(F,E) { Type = field_type_ff(); - if ( Type == 1 || Type == 3 ) + if ( Type == 1 || Type == 3 || Type == 4 || Type == 5 ) return c_z_lm(F,E); else return c_z_gf2n(F,E); @@ -498,7 +500,7 @@ def find_root_ff(P) def c_z_one_ff(F,E) { Type = field_type_ff(); - if ( Type == 1 || Type == 3 ) + if ( Type == 1 || Type == 3 || Type == 4 || Type == 5 ) return c_z_one_lm(F,E); else return c_z_one_gf2n(F,E);