[BACK]Return to Q.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2018 / engine

Diff for /OpenXM_contrib2/asir2018/engine/Q.c between version 1.1 and 1.2

version 1.1, 2018/09/19 05:45:07 version 1.2, 2018/09/21 07:06:51
Line 25  void gc_free(void *p,size_t size)
Line 25  void gc_free(void *p,size_t size)
   
 void init_gmpq()  void init_gmpq()
 {  {
   mp_set_memory_functions(Risa_GC_malloc_atomic,gc_realloc,gc_free);    mp_set_memory_functions(Risa_GC_malloc,gc_realloc,gc_free);
   
   mpz_init(ONEMPZ); mpz_set_ui(ONEMPZ,1); MPZTOZ(ONEMPZ,ONE);    mpz_init(ONEMPZ); mpz_set_ui(ONEMPZ,1); MPZTOZ(ONEMPZ,ONE);
   gmp_randinit_default(GMP_RAND);    gmp_randinit_default(GMP_RAND);
Line 161  void mulz(Z n1,Z n2,Z *nr)
Line 161  void mulz(Z n1,Z n2,Z *nr)
   
 void muladdtoz(Z n1,Z n2,Z *nr)  void muladdtoz(Z n1,Z n2,Z *nr)
 {  {
   #if 1
   Z t;    Z t;
   
   if ( n1 && n2 ) {    if ( n1 && n2 ) {
Line 168  void muladdtoz(Z n1,Z n2,Z *nr)
Line 169  void muladdtoz(Z n1,Z n2,Z *nr)
           NEWZ(t); mpz_init(BDY(t)); *nr = t;            NEWZ(t); mpz_init(BDY(t)); *nr = t;
         }          }
         mpz_addmul(BDY(*nr),BDY(n1),BDY(n2));          mpz_addmul(BDY(*nr),BDY(n1),BDY(n2));
           if ( !mpz_sgn(BDY(*nr)) )
             *nr = 0;
     }      }
   #else
     Z t,s;
   
     mulz(n1,n2,&t); addz(*nr,t,&s); *nr = s;
   #endif
 }  }
   
 /* nr += n1*u */  /* nr += n1*u */
Line 185  void mul1addtoz(Z n1,long u,Z *nr)
Line 193  void mul1addtoz(Z n1,long u,Z *nr)
           mpz_addmul_ui(BDY(*nr),BDY(n1),(unsigned long)u);            mpz_addmul_ui(BDY(*nr),BDY(n1),(unsigned long)u);
         else          else
           mpz_submul_ui(BDY(*nr),BDY(n1),(unsigned long)(-u));            mpz_submul_ui(BDY(*nr),BDY(n1),(unsigned long)(-u));
           if ( !mpz_sgn(BDY(*nr)) )
             *nr = 0;
     }      }
 }  }
   

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

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