version 1.5, 2018/10/01 05:49:06 |
version 1.9, 2019/08/21 00:37:47 |
|
|
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. |
* |
* |
* $OpenXM: OpenXM_contrib2/asir2018/include/ca.h,v 1.4 2018/09/28 08:20:29 noro Exp $ |
* $OpenXM: OpenXM_contrib2/asir2018/include/ca.h,v 1.8 2019/03/28 06:46:03 ohara Exp $ |
*/ |
*/ |
#include <stdio.h> |
#include <stdio.h> |
#include <stdlib.h> |
#include <stdlib.h> |
Line 535 typedef struct oDMM { |
|
Line 535 typedef struct oDMM { |
|
struct oDMM *next; |
struct oDMM *next; |
} *DMM; |
} *DMM; |
|
|
|
typedef struct oDMMstack { |
|
int rank,ordtype; |
|
DMM *in; |
|
struct oDMMstack *next; |
|
} *DMMstack; |
|
|
typedef struct oDL { |
typedef struct oDL { |
int td; |
int td; |
int d[1]; |
int d[1]; |
Line 896 bzero((char *)(q)->b,(w)*sizeof(unsigned int))) |
|
Line 902 bzero((char *)(q)->b,(w)*sizeof(unsigned int))) |
|
#define NEWVL(vl) ((vl)=(VL)MALLOC(sizeof(struct oVL))) |
#define NEWVL(vl) ((vl)=(VL)MALLOC(sizeof(struct oVL))) |
#define NEWMP(m) ((m)=(MP)MALLOC(sizeof(struct oMP))) |
#define NEWMP(m) ((m)=(MP)MALLOC(sizeof(struct oMP))) |
#define NEWDMM(m) ((m)=(DMM)MALLOC(sizeof(struct oDMM))) |
#define NEWDMM(m) ((m)=(DMM)MALLOC(sizeof(struct oDMM))) |
|
#define NEWDMMstack(m) ((m)=(DMMstack)MALLOC(sizeof(struct oDMMstack))) |
#define NEWDLBUCKET(a) ((a)=(DLBUCKET)MALLOC(sizeof(struct oDLBUCKET))) |
#define NEWDLBUCKET(a) ((a)=(DLBUCKET)MALLOC(sizeof(struct oDLBUCKET))) |
#define NEWDPP(a) ((a)=(DP_pairs)MALLOC(sizeof(struct dp_pairs))) |
#define NEWDPP(a) ((a)=(DP_pairs)MALLOC(sizeof(struct dp_pairs))) |
|
|
Line 978 if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N |
|
Line 985 if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N |
|
#define DUPZ(p,q) (NEWZ(q),BDY(q)=BDY(p)) |
#define DUPZ(p,q) (NEWZ(q),BDY(q)=BDY(p)) |
#define DUPQ(p,q) (NEWQ(q),BDY(q)=BDY(p)) |
#define DUPQ(p,q) (NEWQ(q),BDY(q)=BDY(p)) |
|
|
#define STOZ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_si(BDY(q),n))) |
#define STOZ(n,q) ((!(n))?(void)((q)=0):(NEWZ(q),mpz_set_si(BDY(q),n))) |
#define UTOZ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_ui(BDY(q),n))) |
#define UTOZ(n,q) ((!(n))?(void)((q)=0):(NEWZ(q),mpz_set_ui(BDY(q),n))) |
|
|
/* for initializing static object */ |
/* for initializing static object */ |
#define STOZ0(n,q) (OID(q)=O_N,NID(q)=N_Q,(q)->z=1,mpz_init(BDY(q)),mpz_set_si(BDY(q),n)) |
#define STOZ0(n,q) (OID(q)=O_N,NID(q)=N_Q,(q)->z=1,mpz_init(BDY(q)),mpz_set_si(BDY(q),n)) |
Line 1021 if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N |
|
Line 1028 if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N |
|
#define UNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==1)) |
#define UNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==1)) |
#define MUNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==-1)) |
#define MUNIMQ(q) ((q)&&NUM(q)&&SFF(q)&&(CONT((MQ)q)==-1)) |
#define EVENZ(n) ((!(n))||(INT(n)&&mpz_tstbit(((Z)(n))->body,0)==0)) |
#define EVENZ(n) ((!(n))||(INT(n)&&mpz_tstbit(((Z)(n))->body,0)==0)) |
|
#define UNIMPZ(q) (mpz_cmp_si(q,1)==0) |
|
#define MUNIMPZ(q) (mpz_cmp_si(q,-1)==0) |
|
|
/* special macros for private memory management */ |
/* special macros for private memory management */ |
|
|
Line 2619 void nd_det(int mod,MAT f,P *rp); |
|
Line 2628 void nd_det(int mod,MAT f,P *rp); |
|
void nd_gr(LIST f,LIST v,int m,int homo,int retdp,int f4,struct order_spec *ord,LIST *rp); |
void nd_gr(LIST f,LIST v,int m,int homo,int retdp,int f4,struct order_spec *ord,LIST *rp); |
void nd_gr_postproc(LIST f,LIST v,int m,struct order_spec *ord,int do_check,LIST *rp); |
void nd_gr_postproc(LIST f,LIST v,int m,struct order_spec *ord,int do_check,LIST *rp); |
void nd_gr_recompute_trace(LIST f,LIST v,int m,struct order_spec *ord,LIST tlist,LIST *rp); |
void nd_gr_recompute_trace(LIST f,LIST v,int m,struct order_spec *ord,LIST tlist,LIST *rp); |
void nd_gr_trace(LIST f,LIST v,int trace,int homo,int f4,struct order_spec *ord,LIST *rp); |
void nd_gr_trace(LIST f,LIST v,int trace,int homo,int retdp,int f4,struct order_spec *ord,LIST *rp); |
void nd_nf_p(Obj f,LIST g,LIST v,int m,struct order_spec *ord,Obj *rp); |
void nd_nf_p(Obj f,LIST g,LIST v,int m,struct order_spec *ord,Obj *rp); |
void obj_algtodalg(Obj obj,Obj *r); |
void obj_algtodalg(Obj obj,Obj *r); |
void obj_dalgtoalg(Obj obj,Obj *r); |
void obj_dalgtoalg(Obj obj,Obj *r); |
Line 2694 void lmtolf(LM f,Z *b); |
|
Line 2703 void lmtolf(LM f,Z *b); |
|
mp_limb_t get_lprime64(int index); |
mp_limb_t get_lprime64(int index); |
mp_limb_t **almat64(int,int); |
mp_limb_t **almat64(int,int); |
mp_limb_t remqi64(Q n,mp_limb_t m); |
mp_limb_t remqi64(Q n,mp_limb_t m); |
|
int generic_gauss_elim64(MAT mat,MAT *nm,Z *dn,int **rindp,int **cindp); |
|
int generic_gauss_elim_mod64(mp_limb_t **mat,int row,int col,mp_limb_t md,int *colstat); |
#endif |
#endif |
|
|
#if defined(VISUAL) || defined(__MINGW32__) |
#if defined(VISUAL) || defined(__MINGW32__) |