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

Diff for /OpenXM_contrib2/asir2000/builtin/gr.c between version 1.5 and 1.6

version 1.5, 2000/05/29 08:54:45 version 1.6, 2000/07/13 05:09:00
Line 1 
Line 1 
 /* $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.4 2000/04/25 04:07:58 noro Exp $ */  /* $OpenXM: OpenXM_contrib2/asir2000/builtin/gr.c,v 1.5 2000/05/29 08:54:45 noro Exp $ */
 #include "ca.h"  #include "ca.h"
 #include "parse.h"  #include "parse.h"
 #include "base.h"  #include "base.h"
Line 714  int m;
Line 714  int m;
                                 dltod(BDY(s),nv,&tdp);                                  dltod(BDY(s),nv,&tdp);
                                 dp_subd(tdp,ps[(int)BDY(r)],&sd);                                  dp_subd(tdp,ps[(int)BDY(r)],&sd);
                                 _dp_mod(sd,m,0,&sdm);                                  _dp_mod(sd,m,0,&sdm);
                                 _mulmd(CO,m,ps[(int)BDY(r)],sdm,&f2);                                  _mulmd(CO,m,sdm,ps[(int)BDY(r)],&f2);
                                 MKNODE(bt,f2,blist); blist = bt;                                  MKNODE(bt,f2,blist); blist = bt;
                                 s = symb_merge(s,dp_dllist(f2),nv);                                  s = symb_merge(s,dp_dllist(f2),nv);
                                 nred++;                                  nred++;
Line 1355  NODE subst;
Line 1355  NODE subst;
         struct oEGT tnf0,tnf1,tnfm0,tnfm1,tpz0,tpz1,tsp0,tsp1,tspm0,tspm1,tnp0,tnp1,tmp0,tmp1;          struct oEGT tnf0,tnf1,tnfm0,tnfm1,tpz0,tpz1,tsp0,tsp1,tspm0,tspm1,tnp0,tnp1,tmp0,tmp1;
         int skip_nf_flag;          int skip_nf_flag;
         double t_0;          double t_0;
           int new_sugar;
         static prev_sugar = -1;          static prev_sugar = -1;
   
         Max_mag = 0;          Max_mag = 0;
Line 1380  NODE subst;
Line 1381  NODE subst;
                 get_eg(&tmp1); add_eg(&eg_mp,&tmp0,&tmp1);                  get_eg(&tmp1); add_eg(&eg_mp,&tmp0,&tmp1);
                 if ( m ) {                  if ( m ) {
                         get_eg(&tspm0);                          get_eg(&tspm0);
                         _dp_sp_mod(psm[l->dp1],psm[l->dp2],m,&h);                          _dp_sp_mod_dup(psm[l->dp1],psm[l->dp2],m,&h);
                           new_sugar = h->sugar;
                         get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1);                          get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1);
                         get_eg(&tnfm0);                          get_eg(&tnfm0);
                         _dp_nf_mod(gall,h,psm,m,0,&nfm);                          _dp_nf_mod_destructive(gall,h,psm,m,0,&nfm);
                         get_eg(&tnfm1); add_eg(&eg_nfm,&tnfm0,&tnfm1);                          get_eg(&tnfm1); add_eg(&eg_nfm,&tnfm0,&tnfm1);
                 } else                  } else
                         nfm = (DP)1;                          nfm = (DP)1;
Line 1402  NODE subst;
Line 1404  NODE subst;
                                 }                                  }
                         } else                          } else
                                 dp_sp(ps[l->dp1],ps[l->dp2],&h);                                  dp_sp(ps[l->dp1],ps[l->dp2],&h);
                           new_sugar = h->sugar;
                         get_eg(&tsp1); add_eg(&eg_sp,&tsp0,&tsp1);                          get_eg(&tsp1); add_eg(&eg_sp,&tsp0,&tsp1);
                         get_eg(&tnf0);                          get_eg(&tnf0);
                         t_0 = get_rtime();                          t_0 = get_rtime();
Line 1460  skip_nf:
Line 1463  skip_nf:
                                 add_eg(&eg_znfm,&tnfm0,&tnfm1);                                  add_eg(&eg_znfm,&tnfm0,&tnfm1);
                         ZR++;                          ZR++;
                         if ( Print || PrintShort ) {                          if ( Print || PrintShort ) {
                                 if ( h && (h->sugar != prev_sugar) ) {                                  if ( new_sugar != prev_sugar ) {
                                         fprintf(asir_out,"[%d]",h->sugar);                                          fprintf(asir_out,"[%d]",new_sugar);
                                         prev_sugar = h->sugar;                                          prev_sugar = new_sugar;
                                 }                                  }
                                 fprintf(asir_out,"."); fflush(asir_out); prev = 0;                                  fprintf(asir_out,"."); fflush(asir_out); prev = 0;
                         }                          }
Line 1508  NODE dlist;
Line 1511  NODE dlist;
                 l->dp2 = QTOS((Q)BDY(pair));                  l->dp2 = QTOS((Q)BDY(pair));
                 if ( m ) {                  if ( m ) {
                         get_eg(&tspm0);                          get_eg(&tspm0);
                         _dp_sp_mod(psm[l->dp1],psm[l->dp2],m,&h);                          _dp_sp_mod_dup(ps[l->dp1],ps[l->dp2],m,&h);
                         get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1);                          get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1);
                         get_eg(&tnfm0);                          get_eg(&tnfm0);
                         _dp_nf_mod(gall,h,psm,m,0,&nfm);                          _dp_nf_mod_destructive(gall,h,ps,m,!Top,&nf);
                         get_eg(&tnfm1); add_eg(&eg_nfm,&tnfm0,&tnfm1);                          get_eg(&tnfm1); add_eg(&eg_nfm,&tnfm0,&tnfm1);
                 } else                  } else
                         nfm = (DP)1;                          nfm = (DP)1;
Line 1593  int m;
Line 1596  int m;
                         get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1); get_eg(&tnfm0);                          get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1); get_eg(&tnfm0);
                         dp_nf_mod(gall,h,ps,m,!Top,&nf);                          dp_nf_mod(gall,h,ps,m,!Top,&nf);
                 } else {                  } else {
                         _dp_sp_mod(ps[l->dp1],ps[l->dp2],m,&h);                          _dp_sp_mod_dup(ps[l->dp1],ps[l->dp2],m,&h);
                         get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1); get_eg(&tnfm0);                          get_eg(&tspm1); add_eg(&eg_spm,&tspm0,&tspm1); get_eg(&tnfm0);
                         _dp_nf_mod(gall,h,ps,m,!Top,&nf);                          _dp_nf_mod_destructive(gall,h,ps,m,!Top,&nf);
                 }                  }
                 get_eg(&tnfm1); add_eg(&eg_nfm,&tnfm0,&tnfm1);                  get_eg(&tnfm1); add_eg(&eg_nfm,&tnfm0,&tnfm1);
                 if ( nf ) {                  if ( nf ) {
Line 1617  int m;
Line 1620  int m;
                                 print_split_eg(&tnfm0,&tnfm1); fflush(asir_out);                                  print_split_eg(&tnfm0,&tnfm1); fflush(asir_out);
                                 fprintf(asir_out,"(%d,%d),nb=%d,nab=%d,rp=%d,sugar=%d",l->dp1,l->dp2,length(g),length(gall),DPPlength(d),pss[nh]);                                  fprintf(asir_out,"(%d,%d),nb=%d,nab=%d,rp=%d,sugar=%d",l->dp1,l->dp2,length(g),length(gall),DPPlength(d),pss[nh]);
                                 printdl(psh[nh]); fprintf(asir_out,"\n"); fflush(asir_out);                                  printdl(psh[nh]); fprintf(asir_out,"\n"); fflush(asir_out);
                           } else if ( PrintShort ) {
                                   fprintf(asir_out,"+"); fflush(asir_out);
                         }                          }
                         prev = 1;                          prev = 1;
                 } else {                  } else {
                         add_eg(&eg_znfm,&tnfm0,&tnfm1);                          add_eg(&eg_znfm,&tnfm0,&tnfm1);
                         ZR++;                          ZR++;
                         if ( Print ) {                          if ( Print || PrintShort ) {
                                 fprintf(asir_out,"."); fflush(asir_out); prev = 0;                                  fprintf(asir_out,"."); fflush(asir_out); prev = 0;
                         }                          }
                 }                  }
         }          }
         if ( Print )          if ( Print || PrintShort )
                 fprintf(asir_out,"gb_mod done\n");                  fprintf(asir_out,"gb_mod done\n");
         return g;          return g;
 }  }

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

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