[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.18 and 1.20

version 1.18, 2020/10/04 03:14:09 version 1.20, 2020/12/04 08:09:33
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2018/engine/Q.c,v 1.17 2020/01/09 01:47:41 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2018/engine/Q.c,v 1.19 2020/10/06 06:31:19 noro Exp $ */
 #include "ca.h"  #include "ca.h"
 #include "gmp.h"  #include "gmp.h"
 #include "base.h"  #include "base.h"
Line 392  int cmpz(Z q1,Z q2)
Line 392  int cmpz(Z q1,Z q2)
     else if ( sgn < 0 ) return -1;      else if ( sgn < 0 ) return -1;
     else return 0;      else return 0;
   }    }
     /* XXX */
     return 0;
 }  }
   
 void gcdz(Z n1,Z n2,Z *nq)  void gcdz(Z n1,Z n2,Z *nq)
Line 669  void pwrq(Q n1,Q n,Q *nr)
Line 671  void pwrq(Q n1,Q n,Q *nr)
         nm[0] = mpq_denref(BDY(n1))[0];          nm[0] = mpq_denref(BDY(n1))[0];
         dn[0] = mpq_numref(BDY(n1))[0];          dn[0] = mpq_numref(BDY(n1))[0];
       }        }
         if ( mpz_sgn(dn)<0 ) {
           mpz_neg(nm,nm);
           mpz_neg(dn,dn);
         }
     } else {      } else {
       if ( n1->z ) {        if ( n1->z ) {
         nm[0] = BDY((Z)n1)[0];          nm[0] = BDY((Z)n1)[0];
Line 2267  int generic_gauss_elim_hensel64(MAT mat,MAT *nmmat,Z *
Line 2273  int generic_gauss_elim_hensel64(MAT mat,MAT *nmmat,Z *
           for ( j = 0, bi = b[i], wi = wc[i]; j < ri; j++ )            for ( j = 0, bi = b[i], wi = wc[i]; j < ri; j++ )
             wi[j] = mpz_fdiv_ui(bi[j],md);              wi[j] = mpz_fdiv_ui(bi[j],md);
         /* wc = A^(-1)wc; wc is not normalized */          /* wc = A^(-1)wc; wc is not normalized */
         solve_by_lu_mod64(w,rank,md,wc,ri,0);          solve_by_lu_mod64(w,rank,md,(mp_limb_signed_t **)wc,ri,0);
         /* x += q*wc */          /* x += q*wc */
         for ( i = 0; i < rank; i++ )          for ( i = 0; i < rank; i++ )
           for ( j = 0, wi = wc[i]; j < ri; j++ )            for ( j = 0, wi = wc[i]; j < ri; j++ )

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.20

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