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

Diff for /OpenXM_contrib2/asir2000/engine/bf.c between version 1.11 and 1.12

version 1.11, 2015/08/06 23:41:52 version 1.12, 2015/08/20 08:42:07
Line 1 
Line 1 
 /*  /*
  * $OpenXM: OpenXM_contrib2/asir2000/engine/bf.c,v 1.10 2015/08/06 09:12:29 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/bf.c,v 1.11 2015/08/06 23:41:52 noro Exp $
  */   */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 32  Num tobf(Num a,int prec)
Line 32  Num tobf(Num a,int prec)
   mpq_t q;    mpq_t q;
   BF d;    BF d;
   N nm,dn;    N nm,dn;
     C c;
     Num re,im;
   int sgn;    int sgn;
   
   if ( !a ) {    if ( !a ) {
Line 67  Num tobf(Num a,int prec)
Line 69  Num tobf(Num a,int prec)
       MPFRTOBF(r,d);        MPFRTOBF(r,d);
       return (Num)d;        return (Num)d;
       break;        break;
       case N_C:
         re = tobf(((C)a)->r,prec); im = tobf(((C)a)->i,prec);
         NEWC(c); c->r = re; c->i = im;
         return (Num)c;
         break;
     default:      default:
       error("tobf : invalid argument");        error("tobf : invalid argument");
       break;        break;
Line 132  void addbf(Num a,Num b,Num *c)
Line 139  void addbf(Num a,Num b,Num *c)
     MPFRTOBF(r,d);      MPFRTOBF(r,d);
     *c = (Num)d;      *c = (Num)d;
   }    }
     if ( !cmpbf(*c,0) ) *c = 0;
 }  }
   
 void subbf(Num a,Num b,Num *c)  void subbf(Num a,Num b,Num *c)
Line 193  void subbf(Num a,Num b,Num *c)
Line 201  void subbf(Num a,Num b,Num *c)
     MPFRTOBF(r,d);      MPFRTOBF(r,d);
     *c = (Num)d;      *c = (Num)d;
   }    }
     if ( !cmpbf(*c,0) ) *c = 0;
 }  }
   
 void mulbf(Num a,Num b,Num *c)  void mulbf(Num a,Num b,Num *c)
Line 252  void mulbf(Num a,Num b,Num *c)
Line 261  void mulbf(Num a,Num b,Num *c)
     MPFRTOBF(r,d);      MPFRTOBF(r,d);
     *c = (Num)d;      *c = (Num)d;
   }    }
     if ( !cmpbf(*c,0) ) *c = 0;
 }  }
   
 void divbf(Num a,Num b,Num *c)  void divbf(Num a,Num b,Num *c)
Line 308  void divbf(Num a,Num b,Num *c)
Line 318  void divbf(Num a,Num b,Num *c)
     MPFRTOBF(r,d);      MPFRTOBF(r,d);
     *c = (Num)d;      *c = (Num)d;
   }    }
     if ( !cmpbf(*c,0) ) *c = 0;
 }  }
   
 void pwrbf(Num a,Num b,Num *c)  void pwrbf(Num a,Num b,Num *c)
Line 367  void pwrbf(Num a,Num b,Num *c)
Line 378  void pwrbf(Num a,Num b,Num *c)
     MPFRTOBF(r,d);      MPFRTOBF(r,d);
     *c = (Num)d;      *c = (Num)d;
   }    }
     if ( !cmpbf(*c,0) ) *c = 0;
 }  }
   
 void chsgnbf(Num a,Num *c)  void chsgnbf(Num a,Num *c)
Line 393  int cmpbf(Num a,Num b)
Line 405  int cmpbf(Num a,Num b)
   GQ q;    GQ q;
   
   if ( !a ) {    if ( !a ) {
     if ( !b || (NID(b)<=N_A) )      if ( !b ) return 0;
       else if ((NID(b)<=N_A) )
       return (*cmpnumt[NID(b)])(a,b);        return (*cmpnumt[NID(b)])(a,b);
     else      else
       return -mpfr_sgn(((BF)a)->body);        return -mpfr_sgn(((BF)a)->body);

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.12

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