=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/include/ca.h,v retrieving revision 1.29 retrieving revision 1.32 diff -u -p -r1.29 -r1.32 --- OpenXM_contrib2/asir2000/include/ca.h 2001/10/09 01:36:19 1.29 +++ OpenXM_contrib2/asir2000/include/ca.h 2001/12/25 02:39:03 1.32 @@ -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/include/ca.h,v 1.28 2001/09/17 10:32:41 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.31 2001/12/21 08:23:12 noro Exp $ */ #include @@ -566,12 +566,23 @@ typedef unsigned int ModNum; #endif #define CALLOC(d,e) MALLOC((d)*(e)) -#if (defined(__GNUC__) || defined(vax) || defined(apollo) || defined(alloca) || defined(VISUAL)) +#if !defined(__CYGWIN__) && (defined(__GNUC__) || defined(vax) || defined(apollo) || defined(alloca) || defined(VISUAL)) #define ALLOCA(d) alloca(d) #else #define ALLOCA(d) MALLOC(d) #endif +/* for setjmp/longjmp compatibility */ +#if defined(__CYGWIN__) +#define JMP_BUF sigjmp_buf +#define SETJMP(x) sigsetjmp(x,~0) +#define LONGJMP(x,y) siglongjmp(x,y) +#else +#define JMP_BUF jmp_buf +#define SETJMP(x) setjmp(x) +#define LONGJMP(x,y) longjmp(x,y) +#endif + #define TRUESIZE(type,n,atype) (sizeof(struct type)+MAX((n),0)*sizeof(atype)) #define NALLOC(d) ((N)MALLOC_ATOMIC(TRUESIZE(oN,(d)-1,int))) #define UMALLOC(d) ((UM)MALLOC(TRUESIZE(oUM,d,int))) @@ -1852,7 +1863,7 @@ int berlekampsf(UM p,int df,UM *tab,UM *r); void minipolysf(UM f,UM p,UM mp); int find_rootsf(UM p,int *root); void canzassf(UM f,int d,UM *r); -void sfhensel(int count,P f,V x,GFS *evp,P *sfp,ML *listp); +void sfhensel(int count,P f,V x,int degbound,GFS *evp,P *sfp,ML *listp); int sfberle(VL vl,P f,int count,GFS *ev,DCP *dcp); void sfgcdgen(P f,ML blist,ML *clistp); void sfhenmain2(BM f,UM g0,UM h0,int dy,BM *gp); @@ -1861,7 +1872,7 @@ void sfbmtop(BM f,V x,V y,P *fp); void sfsqfr(P f,DCP *dcp); void sfusqfr(P f,DCP *dcp); void sfbsqfr(P f,V x,V y,DCP *dcp); -void sfbfctr(P f,V x,V y,DCP *dcp); +void sfbfctr(P f,V x,V y,int degbound,DCP *dcp); void sfdtest(P f,ML list,V x,V y,DCP *dcp); int sfdtestmain(VL vl,P lcg,UM lcg0,BM lcy,P csum,ML list, int k,int *in,P *fp,P *cofp);