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

Diff for /OpenXM_contrib2/asir2018/builtin/dp.c between version 1.13 and 1.14

version 1.13, 2019/09/05 08:49:43 version 1.14, 2019/09/13 09:02:49
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/asir2018/builtin/dp.c,v 1.12 2019/09/04 05:32:10 noro Exp $   * $OpenXM: OpenXM_contrib2/asir2018/builtin/dp.c,v 1.13 2019/09/05 08:49:43 noro Exp $
 */  */
 #include "ca.h"  #include "ca.h"
 #include "base.h"  #include "base.h"
Line 277  struct ftab dp_supp_tab[] = {
Line 277  struct ftab dp_supp_tab[] = {
   
   {"dpm_ltod",Pdpm_ltod,2},    {"dpm_ltod",Pdpm_ltod,2},
   {"dpm_dptodpm",Pdpm_dptodpm,2},    {"dpm_dptodpm",Pdpm_dptodpm,2},
   {"dpm_dtol",Pdpm_dtol,3},    {"dpm_dtol",Pdpm_dtol,2},
   
   /* criteria */    /* criteria */
   {"dp_cri1",Pdp_cri1,2},    {"dp_cri1",Pdp_cri1,2},
Line 1124  void Pdpm_dtol(NODE arg,LIST *rp)
Line 1124  void Pdpm_dtol(NODE arg,LIST *rp)
   Obj s;    Obj s;
   
   a = (DPM)ARG0(arg);    a = (DPM)ARG0(arg);
     if ( !a ) {
      MKLIST(*rp,0);
      return;
     }
   for ( vl = 0, nd = BDY((LIST)ARG1(arg)), nv = 0; nd; nd = NEXT(nd), nv++ ) {    for ( vl = 0, nd = BDY((LIST)ARG1(arg)), nv = 0; nd; nd = NEXT(nd), nv++ ) {
     if ( !vl ) {      if ( !vl ) {
       NEWVL(vl); tvl = vl;        NEWVL(vl); tvl = vl;
Line 1134  void Pdpm_dtol(NODE arg,LIST *rp)
Line 1138  void Pdpm_dtol(NODE arg,LIST *rp)
   }    }
   if ( vl )    if ( vl )
     NEXT(tvl) = 0;      NEXT(tvl) = 0;
    n = ZTOS((Q)ARG2(arg));    for ( t = BDY(a), n = 0; t; t = NEXT(t) )
       if ( t->pos > n ) n = t->pos;
    w = (MP *)CALLOC(n,sizeof(MP));     w = (MP *)CALLOC(n,sizeof(MP));
    for ( t = BDY(a), len = 0; t; t = NEXT(t) ) len++;     for ( t = BDY(a), len = 0; t; t = NEXT(t) ) len++;
    wa = (DMM *)MALLOC(len*sizeof(DMM));     wa = (DMM *)MALLOC(len*sizeof(DMM));
Line 1142  void Pdpm_dtol(NODE arg,LIST *rp)
Line 1147  void Pdpm_dtol(NODE arg,LIST *rp)
    for ( i = len-1; i >= 0; i-- ) {     for ( i = len-1; i >= 0; i-- ) {
      NEWMP(m); m->dl = wa[i]->dl; C(m) = C(wa[i]);       NEWMP(m); m->dl = wa[i]->dl; C(m) = C(wa[i]);
      pos = wa[i]->pos;       pos = wa[i]->pos;
      NEXT(m) = w[pos];       NEXT(m) = w[pos-1];
      w[pos] = m;       w[pos-1] = m;
    }     }
   nd = 0;    nd = 0;
   for ( i = n-1; i >= 0; i-- ) {    for ( i = n-1; i >= 0; i-- ) {

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

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