[BACK]Return to ca.h CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2018 / include

Diff for /OpenXM_contrib2/asir2018/include/ca.h between version 1.1 and 1.4

version 1.1, 2018/09/19 06:00:58 version 1.4, 2018/09/28 08:20:29
Line 45 
Line 45 
  * 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: OpenXM_contrib2/asir2018/include/ca.h,v 1.3 2018/09/24 22:26:43 noro Exp $
 */  */
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
Line 771  typedef unsigned int ModNum;
Line 771  typedef unsigned int ModNum;
 #define COEF(p) ((p)->c)  #define COEF(p) ((p)->c)
 #define DEG(p) ((p)->d)  #define DEG(p) ((p)->d)
 #define CONT(a) ((a)->cont)  #define CONT(a) ((a)->cont)
 #define UDEG(f) QTOS(DEG(DC(f)))  #define UDEG(f) ZTOS(DEG(DC(f)))
 #define UCOEF(f) (COEF(DC(f)))  #define UCOEF(f) (COEF(DC(f)))
 #define LC(f) (NUM(f)?(f):COEF(DC(f)))  #define LC(f) (NUM(f)?(f):COEF(DC(f)))
   
Line 978  if(!(r)){NEWDMM(r);(c)=(r);}else{NEWDMM(NEXT(c));(c)=N
Line 978  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 STOQ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_si(BDY(q),n)))  #define STOZ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_si(BDY(q),n)))
 #define UTOQ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_ui(BDY(q),n)))  #define UTOZ(n,q) ((!(n))?((q)=0):(NEWZ(q),mpz_set_ui(BDY(q),n)))
   
 /* for initializing static object */  /* for initializing static object */
 #define STOQ0(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))
 #define STOLM0(n,q) (OID(q)=O_N,NID(q)=N_LM,mpz_init(BDY(q)),mpz_set_si(BDY(q),n))  #define STOLM0(n,q) (OID(q)=O_N,NID(q)=N_LM,mpz_init(BDY(q)),mpz_set_si(BDY(q),n))
   
 #define QTOS(q) (!(q)?0:((q)->z==1?mpz_get_si(BDY((Z)q)):(error("QTOS : invalid argument"),0)))  #define ZTOS(q) (!(q)?0:((q)->z==1?mpz_get_si(BDY((Z)q)):(error("ZTOS : invalid argument"),0)))
 #define LMTOS(q) (!(q)?0:mpz_get_si(BDY(q)))  #define LMTOS(q) (!(q)?0:mpz_get_si(BDY(q)))
   
 #define UTOMQ(a,b) ((a)?(NEWMQ(b),CONT(b)=(unsigned int)(a),(b)):((b)=0))  #define UTOMQ(a,b) ((a)?(NEWMQ(b),CONT(b)=(unsigned int)(a),(b)):((b)=0))
Line 2518  int compnbp(VL vl,NBP p1,NBP p2);
Line 2518  int compnbp(VL vl,NBP p1,NBP p2);
 #define MPQTOQ(g,q) (!mpq_sgn(g)?((q)=0):(NEWQ(q),BDY(q)[0]=(g)[0],(q)))  #define MPQTOQ(g,q) (!mpq_sgn(g)?((q)=0):(NEWQ(q),BDY(q)[0]=(g)[0],(q)))
   
 #define INTMPQ(a)  (!mpz_cmp_ui(mpq_denref(a),1))  #define INTMPQ(a)  (!mpz_cmp_ui(mpq_denref(a),1))
 #define INTQ(a) ((a)&&NUM(a)&&((Q)a)->z==1)  #define INTQ(a) ((a)&&NUM(a)&&RATN(a)&&((Q)a)->z==1)
 #define UNIQ(a) (INTQ(a)&&!mpz_cmp_si(BDY((Z)a),1))  #define UNIQ(a) (INTQ(a)&&!mpz_cmp_si(BDY((Z)a),1))
 #define MUNIQ(a) (INTQ(a)&&!mpz_cmp_si(BDY((Z)a),-1))  #define MUNIQ(a) (INTQ(a)&&!mpz_cmp_si(BDY((Z)a),-1))
   
Line 2530  void *gc_realloc(void *p,size_t osize,size_t nsize);
Line 2530  void *gc_realloc(void *p,size_t osize,size_t nsize);
 void gc_free(void *p,size_t size);  void gc_free(void *p,size_t size);
 void init_gmpq();  void init_gmpq();
 Q mpqtozq(mpq_t a);  Q mpqtozq(mpq_t a);
   
   unsigned long mul64(unsigned long a,unsigned long b,unsigned long *c);
   unsigned long mod64(unsigned long u,unsigned long l,unsigned long b);
   unsigned long mulmod64(unsigned long a,unsigned long b,unsigned long m);
   unsigned long muladdmod64(unsigned long a,unsigned long b,unsigned long c,unsigned long m);
   unsigned long invmod64(unsigned long a,unsigned long m);
   
 void addz(Z n1,Z n2,Z *nr);  void addz(Z n1,Z n2,Z *nr);
 void subz(Z n1,Z n2,Z *nr);  void subz(Z n1,Z n2,Z *nr);
 void mulz(Z n1,Z n2,Z *nr);  void mulz(Z n1,Z n2,Z *nr);

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>