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

Diff for /OpenXM_contrib2/asir2000/include/ca.h between version 1.84 and 1.86

version 1.84, 2013/07/31 00:38:12 version 1.86, 2014/01/07 06:22:08
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_contrib2/asir2000/include/ca.h,v 1.83 2013/06/13 18:03:14 ohara Exp $   * $OpenXM: OpenXM_contrib2/asir2000/include/ca.h,v 1.85 2013/12/20 02:02:24 noro Exp $
 */  */
 #include <stdio.h>  #include <stdio.h>
 #include <stdlib.h>  #include <stdlib.h>
   #include <gmp.h>
   
 #if defined(hpux)  #if defined(hpux)
 #include <netinet/in.h>  #include <netinet/in.h>
Line 78 
Line 79 
 typedef caddr_t pointer;  typedef caddr_t pointer;
 #endif  #endif
   
   
 typedef void * pointer;  typedef void * pointer;
   
 #if defined(sun)  #if defined(sun)
Line 136  typedef void * pointer;
Line 138  typedef void * pointer;
 #define N_R 1  #define N_R 1
 #define N_A 2  #define N_A 2
 #define N_B 3  #define N_B 3
 #define N_C 4  #define N_NEXT_B    (N_B)
 #define N_M 5  #if defined(INTERVAL)
 #define N_LM 6  #define N_Quad  (N_NEXT_B+1)
 #define N_GF2N 7  #define N_IP    (N_NEXT_B+2)
 #define N_GFPN 8  #define N_IntervalDouble        (N_NEXT_B+3)
 #define N_GFS 9  #define N_IntervalQuad  (N_NEXT_B+4)
 #define N_GFSN 10  #define N_IntervalBigFloat      (N_NEXT_B+5)
 #define N_DA 11  #define N_PRE_C N_IntervalBigFloat
   #define N_BASE (N_NEXT_B+5)
   #else
   #define N_BASE N_NEXT_B
   #endif
   #define N_C (N_BASE+1)
   #define N_M (N_BASE+2)
   #define N_LM (N_BASE+3)
   #define N_GF2N (N_BASE+4)
   #define N_GFPN (N_BASE+5)
   #define N_GFS (N_BASE+6)
   #define N_GFSN (N_BASE+7)
   #define N_DA (N_BASE+8)
   #define N_GZ (N_BASE+9)
   #define N_GQ (N_BASE+10)
   
 #define ORD_REVGRADLEX 0  #define ORD_REVGRADLEX 0
 #define ORD_GRADLEX 1  #define ORD_GRADLEX 1
Line 264  typedef struct oDAlg {
Line 280  typedef struct oDAlg {
         struct oQ *dn;          struct oQ *dn;
 } *DAlg;  } *DAlg;
   
   typedef struct oGZ {
           short id;
           char nid;
           char pad;
           mpz_t body;
   } *GZ;
   
   typedef struct oGQ {
           short id;
           char nid;
           char pad;
           mpq_t body;
   } *GQ;
   
 typedef struct oNum {  typedef struct oNum {
         short id;          short id;
         char nid;          char nid;
Line 803  bzero((char *)(q)->b,(w)*sizeof(unsigned int)))
Line 832  bzero((char *)(q)->b,(w)*sizeof(unsigned int)))
 ((q).b=(unsigned int *)ALLOCA((w)*sizeof(unsigned int)))  ((q).b=(unsigned int *)ALLOCA((w)*sizeof(unsigned int)))
   
 /* cell allocators */  /* cell allocators */
   #define NEWGZ(q) ((q)=(GZ)MALLOC(sizeof(struct oGZ)),OID(q)=O_N,NID(q)=N_GZ)
   #define NEWGQ(q) ((q)=(GQ)MALLOC(sizeof(struct oGQ)),OID(q)=O_N,NID(q)=N_GQ)
 #define NEWQ(q) ((q)=(Q)MALLOC(sizeof(struct oQ)),OID(q)=O_N,NID(q)=N_Q)  #define NEWQ(q) ((q)=(Q)MALLOC(sizeof(struct oQ)),OID(q)=O_N,NID(q)=N_Q)
 #define NEWMQ(q) ((q)=(MQ)MALLOC_ATOMIC(sizeof(struct oMQ)),OID(q)=O_N,NID(q)=N_M)  #define NEWMQ(q) ((q)=(MQ)MALLOC_ATOMIC(sizeof(struct oMQ)),OID(q)=O_N,NID(q)=N_M)
 #define NEWGFS(q) ((q)=(GFS)MALLOC_ATOMIC(sizeof(struct oGFS)),OID(q)=O_N,NID(q)=N_GFS)  #define NEWGFS(q) ((q)=(GFS)MALLOC_ATOMIC(sizeof(struct oGFS)),OID(q)=O_N,NID(q)=N_GFS)
Line 2642  void addnbp(VL vl,NBP p1,NBP p2, NBP *rp);
Line 2673  void addnbp(VL vl,NBP p1,NBP p2, NBP *rp);
 void mulnbp(VL vl,NBP p1,NBP p2, NBP *rp);  void mulnbp(VL vl,NBP p1,NBP p2, NBP *rp);
 void pwrnbp(VL vl,NBP p1,Q n, NBP *rp);  void pwrnbp(VL vl,NBP p1,Q n, NBP *rp);
 int compnbp(VL vl,NBP p1,NBP p2);  int compnbp(VL vl,NBP p1,NBP p2);
   
   #define WORDSIZE_IN_N(a) (ABS((a)->_mp_size)*GMP_LIMB_BITS/32)
   
   #define MPZTOGZ(g,q) \
   (!mpz_sgn(g)?((q)=0):(NEWGZ(q),BDY(q)[0]=(g)[0],(q)))
   #define MPQTOGQ(g,q) \
   (!mpq_sgn(g)?((q)=0):(NEWGQ(q),BDY(q)[0]=(g)[0],(q)))
   
   #define INTMPQ(a) (!mpz_cmp_ui(mpq_numref(a),1))
   
   #define UNIGZ(a) ((a)&&NID(a)==N_GZ&&!mpz_cmp_ui(BDY(a),1))
   #define MUNIGZ(a) ((a)&&NID(a)==N_GZ&&!mpz_cmp_si(BDY(a),-1))
   
   #define INTGQ(a) ((a)&&NID(a)==N_GQ&&!mpz_cmp_ui(mpq_denref(BDY(a)),1))
   
   #define UNIGQ(a) \
   ((a)&&NID(a)==N_GQ&&!mpz_cmp_ui(mpq_numref(BDY(a)),1)&&!mpz_cmp_ui(mpq_denref(BDY(a)),1))
   #define MUNIGQ(a) \
   ((a)&&NID(a)==N_GQ&&!mpz_cmp_si(mpq_numref(BDY(a)),-1)&&!mpz_cmp_ui(mpq_denref(BDY(a)),1))
   
   #define MPZTOMPQ(z,q) \
   (mpq_init(q),mpq_numref(q)[0] = (z)[0],mpz_set_ui(mpq_denref(q),1))
   
   extern mpz_t ONEMPZ;
   extern GZ ONEGZ;
   
   void *gc_realloc(void *p,size_t osize,size_t nsize);
   void gc_free(void *p,size_t size);
   void init_gmpq();
   GQ mpqtogzq(mpq_t a);
   GQ qtogq(Q a);
   Q gqtoq(GQ a);
   GZ ztogz(Q a);
   Q gztoz(GZ a);
   P ptogp(P a);
   P gptop(P a);
   void addgz(GZ n1,GZ n2,GZ *nr);
   void subgz(GZ n1,GZ n2,GZ *nr);
   void mulgz(GZ n1,GZ n2,GZ *nr);
   void divgz(GZ n1,GZ n2,GZ *nq);
   void chsgngz(GZ n,GZ *nr);
   void pwrgz(GZ n1,Q n,GZ *nr);
   int cmpgz(GZ q1,GZ q2);
   void gcdgz(GZ n1,GZ n2,GZ *nq);
   void gcdvgz(VECT v,GZ *q);
   void addgq(GQ n1,GQ n2,GQ *nr);
   void subgq(GQ n1,GQ n2,GQ *nr);
   void mulgq(GQ n1,GQ n2,GQ *nr);
   void divgq(GQ n1,GQ n2,GQ *nq);
   void chsgngq(GQ n,GQ *nr);
   void pwrgq(GQ n1,Q n,GQ *nr);
   int cmpgq(GQ n1,GQ n2);
   void mkgwc(int k,int l,GZ *t);
   void gz_ptozp(P p,int sgn,GQ *c,P *pr);
   void gz_lgp(P p,GZ *g,GZ *l);
   void gz_qltozl(GQ *w,int n,GZ *dvr);

Legend:
Removed from v.1.84  
changed lines
  Added in v.1.86

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