[BACK]Return to dp-supp.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib2 / asir2000 / builtin

Diff for /OpenXM_contrib2/asir2000/builtin/dp-supp.c between version 1.11 and 1.12

version 1.11, 2000/12/13 05:37:29 version 1.12, 2001/02/21 07:10:17
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/builtin/dp-supp.c,v 1.10 2000/12/11 02:00:40 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2000/builtin/dp-supp.c,v 1.11 2000/12/13 05:37:29 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 839  DP *rp;
Line 839  DP *rp;
         int *wb;          int *wb;
         int hmag;          int hmag;
         int sugar,psugar;          int sugar,psugar;
           int fcoef;
   
         if ( !g ) {          if ( !g ) {
                 *rp = 0; return;                  *rp = 0; return;
Line 847  DP *rp;
Line 848  DP *rp;
         wb = (int *)ALLOCA(n*sizeof(int));          wb = (int *)ALLOCA(n*sizeof(int));
         for ( i = 0, l = b; i < n; l = NEXT(l), i++ )          for ( i = 0, l = b; i < n; l = NEXT(l), i++ )
                 wb[i] = QTOS((Q)BDY(l));                  wb[i] = QTOS((Q)BDY(l));
         hmag = multiple*HMAG(g);  
           /* check whether polys have coeffs in finite fields */
           fcoef = 0;
           for ( i = 0; i < n; i++ )
                   if ( has_fcoef(ps[wb[i]]) ) {
                           fcoef = 1;
                           break;
                   }
           if ( has_fcoef(g) )
                   fcoef = 1;
   
           if ( !fcoef )
                   hmag = multiple*HMAG(g);
         sugar = g->sugar;          sugar = g->sugar;
   
         for ( d = 0; g; ) {          for ( d = 0; g; ) {
                 for ( u = 0, i = 0; i < n; i++ ) {                  for ( u = 0, i = 0; i < n; i++ ) {
                         if ( dp_redble(g,p = ps[wb[i]]) ) {                          if ( dp_redble(g,p = ps[wb[i]]) ) {
Line 867  DP *rp;
Line 881  DP *rp;
                 if ( u ) {                  if ( u ) {
                         g = u;                          g = u;
                         if ( d ) {                          if ( d ) {
                                 if ( multiple && HMAG(d) > hmag ) {                                  if ( !fcoef && multiple && HMAG(d) > hmag ) {
                                         dp_ptozp2(d,g,&t,&u); d = t; g = u;                                          dp_ptozp2(d,g,&t,&u); d = t; g = u;
                                         hmag = multiple*HMAG(d);                                          hmag = multiple*HMAG(d);
                                 }                                  }
                         } else {                          } else {
                                 if ( multiple && HMAG(g) > hmag ) {                                  if ( !fcoef && multiple && HMAG(g) > hmag ) {
                                         dp_ptozp(g,&t); g = t;                                          dp_ptozp(g,&t); g = t;
                                         hmag = multiple*HMAG(g);                                          hmag = multiple*HMAG(g);
                                 }                                  }

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

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