[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.20 and 1.21

version 1.20, 2020/12/04 08:09:33 version 1.21, 2021/10/08 07:27:05
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2018/engine/Q.c,v 1.19 2020/10/06 06:31:19 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2018/engine/Q.c,v 1.20 2020/12/04 08:09:33 noro Exp $ */
 #include "ca.h"  #include "ca.h"
 #include "gmp.h"  #include "gmp.h"
 #include "base.h"  #include "base.h"
Line 97  void dnq(Q q,Z *r)
Line 97  void dnq(Q q,Z *r)
 int sgnq(Q q)  int sgnq(Q q)
 {  {
   if ( !q ) return 0;    if ( !q ) return 0;
   else if ( q->z ) return mpz_sgn(BDY((Z)q));    else if ( q->z ) {
   else return mpz_sgn(mpq_numref(BDY(q)));     int sgn;
      sgn = mpz_sgn(BDY((Z)q));
      return sgn;
     } else return mpz_sgn(mpq_numref(BDY(q)));
 }  }
   
 Q mpqtozq(mpq_t a)  Q mpqtozq(mpq_t a)
Line 793  void lgp(P p,Z *g,Z *l)
Line 796  void lgp(P p,Z *g,Z *l)
   
   if ( NUM(p) ) {    if ( NUM(p) ) {
     if ( ((Q)p)->z ) {      if ( ((Q)p)->z ) {
       MPZTOZ(BDY((Z)p),*g);        absz((Z)p,g);
       *l = ONE;        *l = ONE;
     } else {      } else {
       MPZTOZ(mpq_numref(BDY((Q)p)),*g);        MPZTOZ(mpq_numref(BDY((Q)p)),g1); absz(g1,g);
       MPZTOZ(mpq_denref(BDY((Q)p)),*l);        MPZTOZ(mpq_denref(BDY((Q)p)),*l);
     }      }
   } else {    } else {

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

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