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

Diff for /OpenXM_contrib2/asir2000/parse/puref.c between version 1.8 and 1.10

version 1.8, 2005/10/05 08:57:25 version 1.10, 2014/09/19 01:26:00
Line 45 
Line 45 
  * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,   * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE,
  * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.   * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE.
  *   *
  * $OpenXM: OpenXM_contrib2/asir2000/parse/puref.c,v 1.7 2004/08/18 00:50:37 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/parse/puref.c,v 1.9 2013/02/15 07:05:49 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
Line 284  void derivr(VL vl,Obj a,V v,Obj *b)
Line 284  void derivr(VL vl,Obj a,V v,Obj *b)
         }          }
 }  }
   
   void simple_derivr(VL vl,Obj a,V v,Obj *b)
   {
           Obj r,s,t,u,nm,dn;
   
           if ( !a || NUM(a) )
                   *b = 0;
           else
                   switch ( OID(a) ) {
                           case O_P:
                                   pderivr(vl,a,v,b); break;
                           case O_R:
                                   nm = (Obj)NM((R)a); dn = (Obj)DN((R)a);
                                   /* (nm/dn)' = nm'/dn - dn'/dn*nm/dn */
                                   pderivr(vl,nm,v,&s); divr(vl,s,dn,&u); reductr(vl,u,&t);
                                   pderivr(vl,dn,v,&s); divr(vl,s,dn,&u); reductr(vl,u,&s); mulr(vl,s,a,&u);
                                   subr(vl,t,u,&s); reductr(vl,s,b);
                                   break;
                           default:
                                   error("simple_derivr : invalid argument");
           }
   }
   
 int obj_is_dependent(Obj a,V v)  int obj_is_dependent(Obj a,V v)
 {  {
         if ( !a || OID(a) <= O_N ) return 0;          if ( !a || OID(a) <= O_N ) return 0;
Line 628  void devalins(PFINS ins,Obj *rp)
Line 650  void devalins(PFINS ins,Obj *rp)
                 }                  }
                 MKReal(d,r); *rp = (Obj)r;                  MKReal(d,r); *rp = (Obj)r;
         }          }
   }
   
   extern int evalef;
   
   void simplify_elemfunc_ins(PFINS ins,Obj *rp)
   {
           V v;
           P t;
   
     if ( evalef )
       evalins(ins,0,rp);
     else {
             instov(ins,&v); MKV(v,t); *rp = (Obj)t;
     }
 }  }
   
 void simplify_ins(PFINS ins,Obj *rp)  void simplify_ins(PFINS ins,Obj *rp)

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.10

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