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

Diff for /OpenXM_contrib2/asir2000/engine/f-itv.c between version 1.6 and 1.7

version 1.6, 2005/01/11 07:12:51 version 1.7, 2009/03/27 14:42:29
Line 1 
Line 1 
 /*  /*
  * $OpenXM: OpenXM_contrib2/asir2000/engine/f-itv.c,v 1.5 2003/10/20 07:18:42 saito Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/f-itv.c,v 1.6 2005/01/11 07:12:51 saito Exp $
 */  */
 #if defined(INTERVAL)  #if defined(INTERVAL)
 #include "ca.h"  #include "ca.h"
Line 7 
Line 7 
 #if defined(PARI)  #if defined(PARI)
 #include "genpari.h"  #include "genpari.h"
 #include "itv-pari.h"  #include "itv-pari.h"
 extern long prec;  long get_pariprec();
 #endif  #endif
   
 void ToBf(Num a, BF *rp)  void ToBf(Num a, BF *rp)
Line 24  void ToBf(Num a, BF *rp)
Line 24  void ToBf(Num a, BF *rp)
                 case N_Q:                  case N_Q:
                         ltop = avma;                          ltop = avma;
                         ritopa_i(NM((Q)a), SGN((Q)a), &pa);                          ritopa_i(NM((Q)a), SGN((Q)a), &pa);
                         pb = cgetr(prec);                          pb = cgetr(get_pariprec());
                         mpaff(pa, pb);                          mpaff(pa, pb);
                         if ( INT((Q)a) ) {                          if ( INT((Q)a) ) {
                                 lbot = avma;                                  lbot = avma;
Line 35  void ToBf(Num a, BF *rp)
Line 35  void ToBf(Num a, BF *rp)
                         } else {                          } else {
                                 patori(pb, &bn);                                  patori(pb, &bn);
                                 ritopa_i(DN((Q)a), 1, &pa);                                  ritopa_i(DN((Q)a), 1, &pa);
                                 pb = cgetr(prec);                                  pb = cgetr(get_pariprec());
                                 mpaff(pa, pb);                                  mpaff(pa, pb);
                                 lbot = avma;                                  lbot = avma;
                                 pb = gerepile(ltop, lbot, pb);                                  pb = gerepile(ltop, lbot, pb);
Line 320  void pwritvf(Itv a, Num e, Itv *c)
Line 320  void pwritvf(Itv a, Num e, Itv *c)
                 pwrnum(0,(Num)a,e,(Num *)c);                  pwrnum(0,(Num)a,e,(Num *)c);
         else if ( !INT(e) ) {          else if ( !INT(e) ) {
 #if defined(PARI) && 0  #if defined(PARI) && 0
                 GEN pa,pe,z;                  gpui_ri((Obj)a,(Obj)c,(Obj *)c);
                 int ltop,lbot;  
   
                 ltop = avma; ritopa(a,&pa); ritopa(e,&pe); lbot = avma;  
                 z = gerepile(ltop,lbot,gpui(pa,pe,prec));  
                 patori(z,c); cgiv(z);  
 #else  #else
                 error("pwritv : can't calculate a fractional power");                  error("pwritv : can't calculate a fractional power");
 #endif  #endif

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

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