Louis . Granboulan on Sat, 31 Jan 1998 17:34:30 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Small patch concerning small bugs. |
* In arith1.c (isprime_proto) avma may be restored too early. * In bibli1.c (lindep) MAX may have been defined in some header file. * In gp_rl.c Extern declarations should be declared with "extern". *** src/basemath/arith1.c Sun Dec 14 16:32:00 1997 --- src/basemath/arith1.c Thu Dec 18 16:31:14 1997 *************** *** 1321,1332 **** static long isprime_proto(GEN x,long k) { ! long av=avma; ! x=absi(x); avma=av; ! if (gcmpgs(x,3)<=0) return !gcmp1(x); ! if (!mpodd(x)) return 0; ! return millerrabin(x,k); } GEN --- 1321,1334 ---- static long isprime_proto(GEN x,long k) { ! long av=avma, res; ! x=absi(x); ! if (gcmpgs(x,3)<=0) { res = !gcmp1(x); avma=av; return res; } ! if (!mpodd(x)) { avma=av; return 0; } ! res = millerrabin(x,k); ! avma=av; ! return res; } GEN *** src/basemath/bibli1.c Mon Dec 15 22:47:28 1997 --- src/basemath/bibli1.c Tue Dec 16 18:43:13 1997 *************** *** 1859,1877 **** } #define quazero(x) ( gcmp0(x) || ( typ(x)==t_REAL && expo(x) < EXP ) ) ! #define MAX 50 GEN lindep(GEN x, long prec) { ! GEN b[MAX],be[MAX],bn[MAX],m[MAX][MAX],c1,c2,c3,px,py,pxy; GEN re,im,p3,p4,p5,p6,p7,r,f,em; ! long qzer[MAX]; long av1,tetpil,i,j,fl,i1; long av = avma, lx = lg(x), tx = typ(x), n = lx-1; const long EXP = - bit_accuracy(prec) + 2*n; if (! is_vec_t(tx)) err(typeer,"lindep"); ! if (lx>=MAX) err(talker,"more than 50 numbers in lindep"); if (lx<=2) return cgetg(1,t_VEC); re=greal(x); im=gimag(x); px=sqscal(re); py=sqscal(im); pxy=gscal(re,im); --- 1859,1879 ---- } #define quazero(x) ( gcmp0(x) || ( typ(x)==t_REAL && expo(x) < EXP ) ) ! #define MAXhastad 50 ! #define ERRhastad "more than " #MAXhastad " numbers in lindep" GEN lindep(GEN x, long prec) { ! GEN b[MAXhastad],be[MAXhastad],bn[MAXhastad],m[MAXhastad][MAXhastad], ! c1,c2,c3,px,py,pxy; GEN re,im,p3,p4,p5,p6,p7,r,f,em; ! long qzer[MAXhastad]; long av1,tetpil,i,j,fl,i1; long av = avma, lx = lg(x), tx = typ(x), n = lx-1; const long EXP = - bit_accuracy(prec) + 2*n; if (! is_vec_t(tx)) err(typeer,"lindep"); ! if (lx>=MAXhastad) err(talker,ERRhastad); if (lx<=2) return cgetg(1,t_VEC); re=greal(x); im=gimag(x); px=sqscal(re); py=sqscal(im); pxy=gscal(re,im); *************** *** 1962,1968 **** p4=gauss(gtrans(p5),p3); tetpil=avma; return gerepile(av,tetpil,gtrans(p4)); } ! #undef MAX GEN algdep0(GEN x, long n, long bit, long prec) --- 1964,1970 ---- p4=gauss(gtrans(p5),p3); tetpil=avma; return gerepile(av,tetpil,gtrans(p4)); } ! #undef MAXhastad GEN algdep0(GEN x, long n, long bit, long prec) *** src/gp/gp_rl.c Sun Dec 14 16:32:00 1997 --- src/gp/gp_rl.c Tue Dec 16 18:16:29 1997 *************** *** 13,24 **** #ifdef READLINE BEGINEXTERN #include <readline.h> ! char **pari_completion(char *text, int start, int end); ! char *filename_completion_function(char *text,int state); ! char *username_completion_function(char *text,int state); ! int rl_completion_query_items; ! int rl_bind_key_in_map (); ENDEXTERN void print_fun_list(char **matches, int nbli); --- 13,24 ---- #ifdef READLINE BEGINEXTERN #include <readline.h> ! extern char **pari_completion(char *text, int start, int end); ! extern char *filename_completion_function(char *text,int state); ! extern char *username_completion_function(char *text,int state); ! extern int rl_completion_query_items; ! extern int rl_bind_key_in_map (); ENDEXTERN void print_fun_list(char **matches, int nbli); -----------