=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/lib/fff,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM_contrib2/asir2000/lib/fff 2000/08/22 05:04:21 1.3 +++ OpenXM_contrib2/asir2000/lib/fff 2003/10/20 00:58:47 1.7 @@ -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.6 2001/09/03 07:01:09 noro Exp $ */ /* fff : Univariate factorizer over a finite field. @@ -56,6 +56,9 @@ 99/06/11 noro 99/07/27 noro */ +module fff $ + /* Empty for now. It will be used in a future. */ +endmodule $ #include "defs.h" @@ -112,6 +115,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 +130,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 +472,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 +503,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);