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

Diff for /OpenXM_contrib2/asir2000/engine/P.c between version 1.7 and 1.8

version 1.7, 2003/06/24 09:49:36 version 1.8, 2003/12/23 10:39:57
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/engine/P.c,v 1.6 2003/06/19 07:08:19 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/P.c,v 1.7 2003/06/24 09:49:36 noro Exp $
 */  */
 #ifndef FBASE  #ifndef FBASE
 #define FBASE  #define FBASE
Line 447  P *r;
Line 447  P *r;
                 } else {                  } else {
                         for ( dc = DC(p), dcr0 = 0; dc; dc = NEXT(dc) ) {                          for ( dc = DC(p), dcr0 = 0; dc; dc = NEXT(dc) ) {
                                 diffp(vl,COEF(dc),v,&t);                                  diffp(vl,COEF(dc),v,&t);
                                   if ( t ) {
                                           NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc); COEF(dcr) = t;
                                   }
                           }
                           if ( !dcr0 )
                                   *r = 0;
                           else {
                                   NEXT(dcr) = 0; MKP(VR(p),dcr0,*r);
                           }
                   }
           }
   }
   
   /* Euler derivation */
   void ediffp(vl,p,v,r)
   VL vl;
   P p;
   V v;
   P *r;
   {
           P t;
           DCP dc,dcr,dcr0;
   
           if ( !p || NUM(p) )
                   *r = 0;
           else {
                   if ( v == VR(p) ) {
                           for ( dc = DC(p), dcr0 = 0;
                                     dc && DEG(dc); dc = NEXT(dc) ) {
                                   MULPQ(COEF(dc),(P)DEG(dc),&t);
                                   if ( t ) {
                                           NEXTDC(dcr0,dcr);
                                           DEG(dcr) = DEG(dc);
                                           COEF(dcr) = t;
                                   }
                           }
                           if ( !dcr0 )
                                   *r = 0;
                           else {
                                   NEXT(dcr) = 0; MKP(v,dcr0,*r);
                           }
                   } else {
                           for ( dc = DC(p), dcr0 = 0; dc; dc = NEXT(dc) ) {
                                   ediffp(vl,COEF(dc),v,&t);
                                 if ( t ) {                                  if ( t ) {
                                         NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc); COEF(dcr) = t;                                          NEXTDC(dcr0,dcr); DEG(dcr) = DEG(dc); COEF(dcr) = t;
                                 }                                  }

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

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