=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/engine/gfs.c,v retrieving revision 1.12 retrieving revision 1.14 diff -u -p -r1.12 -r1.14 --- OpenXM_contrib2/asir2000/engine/gfs.c 2002/09/27 08:40:49 1.12 +++ OpenXM_contrib2/asir2000/engine/gfs.c 2002/12/18 06:15:40 1.14 @@ -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/engine/gfs.c,v 1.11 2002/09/27 04:24:04 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/engine/gfs.c,v 1.13 2002/09/30 06:13:07 noro Exp $ */ #include "ca.h" #include "inline.h" @@ -944,6 +944,21 @@ int cmpgfs(GFS a,GFS b) } } +void pthrootgfs(GFS a,GFS *b) +{ + Q p; + int e,i; + GFS t,s; + + STOQ(characteristic_sf(),p); + e = extdeg_sf()-1; + t = a; + for ( i = 0; i < e; i++ ) { + pwrgfs(t,p,&s); t = s; + } + *b = t; +} + void randomgfs(GFS *r) { unsigned int t; @@ -1117,7 +1132,12 @@ int _itosf(int n) { int i; + /* XXX */ +#if 0 n %= current_gfs_p; +#else + n %= current_gfs_q; +#endif if ( !n ) return 0; i = !current_gfs_ntoi ? n : current_gfs_ntoi[n];