[BACK]Return to minimal.k CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097 / lib / minimal

Diff for /OpenXM/src/k097/lib/minimal/minimal.k between version 1.3 and 1.4

version 1.3, 2000/05/04 06:55:28 version 1.4, 2000/05/04 11:05:20
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.2 2000/05/03 07:50:38 takayama Exp $ */  /* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.3 2000/05/04 06:55:28 takayama Exp $ */
 #define DEBUG 1  #define DEBUG 1
 /* #define ORDINARY 1 */  /* #define ORDINARY 1 */
   /* If you run this program on openxm version 1.1.2 (FreeBSD),
      make a symbolic link by the command
      ln -s /usr/bin/cpp /lib/cpp
   */
 /* Test sequences.  /* Test sequences.
    Use load["minimal.k"];;     Use load["minimal.k"];;
   
Line 367  def SnewArrayOfFormat(p) {
Line 371  def SnewArrayOfFormat(p) {
      return(null);       return(null);
   }    }
 }  }
   def ScopyArray(a) {
     local n, i,ans;
     n = Length(a);
     ans = NewArray(n);
     for (i=0; i<n; i++) {
       ans[i] = a[i];
     }
     return(ans);
   }
 def SminOfStrategy(a) {  def SminOfStrategy(a) {
   local n,i,ans,tt;    local n,i,ans,tt;
   ans = 100000; /* very big number */    ans = 100000; /* very big number */
Line 409  def SlaScala(g) {
Line 422  def SlaScala(g) {
   local rf, tower, reductionTable, skel, redundantTable, bases,    local rf, tower, reductionTable, skel, redundantTable, bases,
         strategy, maxOfStrategy, height, level, n, i,          strategy, maxOfStrategy, height, level, n, i,
         freeRes,place, f, reducer,pos, redundant_seq,bettiTable,freeResV,ww,          freeRes,place, f, reducer,pos, redundant_seq,bettiTable,freeResV,ww,
         redundantTable_ordinary, redundant_seq_ordinary;          redundantTable_ordinary, redundant_seq_ordinary,
           reductionTable_tmp;
   /* extern WeightOfSweyl; */    /* extern WeightOfSweyl; */
   ww = WeightOfSweyl;    ww = WeightOfSweyl;
   Print("WeghtOfSweyl="); Println(WeightOfSweyl);    Print("WeghtOfSweyl="); Println(WeightOfSweyl);
Line 430  def SlaScala(g) {
Line 444  def SlaScala(g) {
   while (strategy <= maxOfStrategy) {    while (strategy <= maxOfStrategy) {
     for (level = 0; level < height; level++) {      for (level = 0; level < height; level++) {
       n = Length(reductionTable[level]);        n = Length(reductionTable[level]);
       for (i=0; i<n; i++) {        reductionTable_tmp = ScopyArray(reductionTable[level]);
         while (SthereIs(reductionTable_tmp,strategy)) {
           i = SnextI(reductionTable_tmp,strategy,redundantTable,
                      skel,level,freeRes);
           Println([level,i]);
           reductionTable_tmp[i] = -200000;
         if (reductionTable[level,i] == strategy) {          if (reductionTable[level,i] == strategy) {
            Print("Processing "); Print([level,i]);             Print("Processing "); Print([level,i]);
            Print("   Strategy = "); Println(strategy);             Print("   Strategy = "); Println(strategy);
Line 502  def SlaScala(g) {
Line 521  def SlaScala(g) {
   }    }
   return([freeResV, redundantTable,reducer,bettiTable,redundantTable_ordinary]);    return([freeResV, redundantTable,reducer,bettiTable,redundantTable_ordinary]);
 }  }
   
   def SthereIs(reductionTable_tmp,strategy) {
     local n,i;
     n = Length(reductionTable_tmp);
     for (i=0; i<n; i++) {
       if (reductionTable_tmp[i] == strategy) {
         return(true);
       }
     }
     return(false);
   }
   
   def SnextI(reductionTable_tmp,strategy,redundantTable,
                                     skel,level,freeRes)
   {
      local ii,n,p,myindex,i,j,bases;
      n = Length(reductionTable_tmp);
      if (level == 0) {
        for (ii=0; ii<n; ii++) {
          if (reductionTable_tmp[ii] == strategy) {
             return(ii);
           }
         }
      }else{
        for (ii=0; ii<n; ii++) {
          if (reductionTable_tmp[ii] == strategy) {
            p = skel[level,ii];
            myindex = p[0];
            i = myindex[0]; j = myindex[1];
            bases = freeRes[level-1];
            if (IsNull(bases[i]) || IsNull(bases[j])) {
   
            }else{
              return(ii);
            }
          }
        }
      }
      Println(reductionTable_tmp);
      Error("SnextI: bases[i] or bases[j] is null for all combinations.");
   }
   
   
   
 def SsetBettiTable(freeRes,g) {  def SsetBettiTable(freeRes,g) {
   local level,i, n,bases,ans;    local level,i, n,bases,ans;

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

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