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

Diff for /OpenXM_contrib2/asir2000/engine/E.c between version 1.4 and 1.6

version 1.4, 2001/04/20 02:27:52 version 1.6, 2001/05/02 09:03:53
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/E.c,v 1.3 2000/08/22 05:04:03 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/engine/E.c,v 1.5 2001/04/20 03:10:36 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
   
Line 516  Q n,m,m2,*nr;
Line 516  Q n,m,m2,*nr;
         }          }
 }  }
   
   /*
           extract d-homogeneous part with respect to vl - {v}
   */
   
   void exthpc_generic(vl,p,d,v,pr)
   VL vl;
   P p;
   int d;
   V v;
   P *pr;
   {
           P w,x,t,t1,a,xd;
           V v0;
           DCP dc;
   
           if ( d < 0 || !p )
                   *pr = 0;
           else if ( NUM(p) )
                   if ( d == 0 )
                           *pr = p;
                   else
                           *pr = 0;
           else if ( v == VR(p) )
                   exthpc(vl,v,p,d,pr);
           else {
                   v0 = VR(p);
                   for ( MKV(v0,x), dc = DC(p), w = 0; dc; dc = NEXT(dc) ) {
                           exthpc_generic(vl,COEF(dc),d-QTOS(DEG(dc)),v,&t);
                           pwrp(vl,x,DEG(dc),&xd);
                           mulp(vl,xd,t,&t1); addp(vl,w,t1,&a); w = a;
                   }
                   *pr = w;
           }
   }
   
 void exthp(vl,p,d,pr)  void exthp(vl,p,d,pr)
 VL vl;  VL vl;
 P p;  P p;
Line 772  int dbound(v,f)
Line 807  int dbound(v,f)
 V v;  V v;
 P f;  P f;
 {  {
         int m;          int m,t;
         DCP dc;          DCP dc;
   
         if ( !f )          if ( !f )
Line 780  P f;
Line 815  P f;
         else if ( v != VR(f) )          else if ( v != VR(f) )
                 return homdeg(f);                  return homdeg(f);
         else {          else {
                 for ( dc = DC(f), m = 0; dc; dc = NEXT(dc) )                  for ( dc = DC(f), m = 0; dc; dc = NEXT(dc) ) {
                         m = MAX(m,homdeg(COEF(dc)));                          t = homdeg(COEF(dc));
                           m = MAX(m,t);
                   }
                 return ( m );                  return ( m );
         }          }
 }  }
Line 789  P f;
Line 826  P f;
 int homdeg(f)  int homdeg(f)
 P f;  P f;
 {  {
         int m;          int m,t;
         DCP dc;          DCP dc;
   
         if ( !f )          if ( !f )
Line 797  P f;
Line 834  P f;
         else if ( NUM(f) )          else if ( NUM(f) )
                 return( 0 );                  return( 0 );
         else {          else {
                 for ( dc = DC(f), m = 0; dc; dc = NEXT(dc) )                  for ( dc = DC(f), m = 0; dc; dc = NEXT(dc) ) {
                         m = MAX(m,QTOS(DEG(dc))+homdeg(COEF(dc)));                          t = QTOS(DEG(dc))+homdeg(COEF(dc));
                           m = MAX(m,t);
                   }
                 return ( m );                  return ( m );
         }          }
 }  }
Line 806  P f;
Line 845  P f;
 int minhomdeg(f)  int minhomdeg(f)
 P f;  P f;
 {  {
         int m;          int m,t;
         DCP dc;          DCP dc;
   
         if ( !f )          if ( !f )
Line 814  P f;
Line 853  P f;
         else if ( NUM(f) )          else if ( NUM(f) )
                 return( 0 );                  return( 0 );
         else {          else {
                 for ( dc = DC(f), m = homdeg(f); dc; dc = NEXT(dc) )                  for ( dc = DC(f), m = homdeg(f); dc; dc = NEXT(dc) ) {
                         m = MIN(m,QTOS(DEG(dc))+minhomdeg(COEF(dc)));                          t = QTOS(DEG(dc))+minhomdeg(COEF(dc));
                           m = MIN(m,t);
                   }
                 return ( m );                  return ( m );
         }          }
 }  }

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

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