[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.31 and 1.36

version 1.31, 2000/12/10 03:12:20 version 1.36, 2007/07/03 22:28:11
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.30 2000/11/19 05:50:30 takayama Exp $ */  /* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.35 2007/07/03 22:05:46 takayama Exp $ */
 #define DEBUG 1  #define DEBUG 1
 Sordinary = false;  Sordinary = false;
 /* If you run this program on openxm version 1.1.2 (FreeBSD),  /* If you run this program on openxm version 1.1.2 (FreeBSD),
Line 46  def Sprint2(s) {
Line 46  def Sprint2(s) {
   
 /* We cannot use load command in the if statement. */  /* We cannot use load command in the if statement. */
 load("lib/minimal/cohom.k");  load("lib/minimal/cohom.k");
   Load_sm1(["k0-tower.sm1","lib/minimal/k0-tower.sm1"],"k0-tower.sm1.loaded");
   Load_sm1(["new.sm1","lib/minimal/new.sm1"],"new.sm1.loaded");
   sm1(" oxNoX ");
   
 def load_tower() {  
   local ppp;  
   if (Boundp("k0-tower.sm1.loaded")) {  
   }else{  
     if (Tag(GetPathName("k0-tower.sm1")) == 0) {  
       ppp = GetPathName("lib/minimal/k0-tower.sm1");  
       sm1(" [(parse) ppp pushfile ] extension ");  
     }else{  
       sm1(" [(parse) (k0-tower.sm1) pushfile ] extension ");  
     }  
     if (Tag(GetPathName("new.sm1")) == 0) {  
       ppp = GetPathName("lib/minimal/new.sm1");  
       sm1(" [(parse) ppp pushfile ] extension ");  
     }else{  
       sm1(" [(parse) (new.sm1) pushfile ] extension ");  
     }  
     sm1(" /k0-tower.sm1.loaded 1 def ");  
   }  
   sm1(" oxNoX ");  
 }  
 load_tower();  
 SonAutoReduce = true;  SonAutoReduce = true;
 def Factor(f) {  def Factor(f) {
    sm1(f, " fctr /FunctionValue set");     sm1(f, " fctr /FunctionValue set");
Line 157  def Max(v) {
Line 139  def Max(v) {
 HelpAdd(["Max",  HelpAdd(["Max",
 ["Max(v) returns the maximal element in v."]]);  ["Max(v) returns the maximal element in v."]]);
   
 def Kernel(f) {  def Kernel(f,v) {
   sm1(" [f] syz /FunctionValue set ");    local ans;
     /* v :  string or ring */
     if (Length(Arglist) < 2) {
       sm1(" [f] syz /ans set ");
     }else{
       sm1(" [f v] syz /ans set ");
     }
     return(ans);
 }  }
 def Syz(f) {  def Syz(f) {
   sm1(" [f] syz /FunctionValue set ");    sm1(" [f] syz /FunctionValue set ");
Line 257  def StoTower() {
Line 246  def StoTower() {
 }  }
   
 def SsetTower(tower) {  def SsetTower(tower) {
 sm1(" [(AvoidTheSameRing)] pushEnv  sm1(" [(AvoidTheSameRing)] pushEnv \
       [ [(AvoidTheSameRing) 0] system_variable        [ [(AvoidTheSameRing) 0] system_variable \
         [(gbListTower) tower (list) dc] system_variable          [(gbListTower) tower (list) dc] system_variable \
       ] pop popEnv ");        ] pop popEnv ");
       /* sm1("(hoge) message show_ring "); */        /* sm1("(hoge) message show_ring "); */
 }  }
Line 369  def NewPolynomialVector(size) {
Line 358  def NewPolynomialVector(size) {
 }  }
   
 def  SturnOffHomogenization() {  def  SturnOffHomogenization() {
   sm1("    sm1(" \
     [(Homogenize)] system_variable 1 eq      [(Homogenize)] system_variable 1 eq \
     { Sverbose {      { Sverbose { \
       (Warning: Homogenization and ReduceLowerTerms options are automatically turned off.) message } { } ifelse        (Warning: Homogenization and ReduceLowerTerms options are automatically turned off.) message } { } ifelse \
       [(Homogenize) 0] system_variable        [(Homogenize) 0] system_variable \
       [(ReduceLowerTerms) 0] system_variable        [(ReduceLowerTerms) 0] system_variable \
     } {  } ifelse      } {  } ifelse \
   ");    ");
 }  }
 /* NOTE!!!  Be careful these changes of global environmental variables.  /* NOTE!!!  Be careful these changes of global environmental variables.
Line 383  def  SturnOffHomogenization() {
Line 372  def  SturnOffHomogenization() {
    after computation and interruption.  August 15, 2000.     after computation and interruption.  August 15, 2000.
 */  */
 def  SturnOnHomogenization() {  def  SturnOnHomogenization() {
   sm1("    sm1(" \
     [(Homogenize)] system_variable 0 eq      [(Homogenize)] system_variable 0 eq \
     { Sverbose {      { Sverbose { \
         (Warning: Homogenization and ReduceLowerTerms options are automatically turned ON.) message } {  } ifelse          (Warning: Homogenization and ReduceLowerTerms options are automatically turned ON.) message } {  } ifelse \
       [(Homogenize) 1] system_variable        [(Homogenize) 1] system_variable \
       [(ReduceLowerTerms) 1] system_variable        [(ReduceLowerTerms) 1] system_variable \
     } {  } ifelse      } {  } ifelse \
   ");    ");
 }  }
   
Line 1020  HelpAdd(["Sminimal",
Line 1009  HelpAdd(["Sminimal",
  "         Sweyl(\"x,y\",[[\"x\",-1,\"y\",-1,\"Dx\",1,\"Dy\",1]]);",   "         Sweyl(\"x,y\",[[\"x\",-1,\"y\",-1,\"Dx\",1,\"Dy\",1]]);",
  "         b = ReParse(a[0]); sm1_pmat(b); ",   "         b = ReParse(a[0]); sm1_pmat(b); ",
  "         IsExact_h(b,[x,y]):",   "         IsExact_h(b,[x,y]):",
  "Note:  a[0] is the V-minimal resolution. a[3] is the Schreyer resolution."]]);   "Note:  a[0] is the V-minimal resolution. a[3] is the Schreyer resolution.",
    " ---> D^{m_3} --b[2]--> D^{m_2} --b[1]--> D^{m_1} --b[0]--> D^{m_0} ",
    "  Here D^{m_i} are the set of row vectors. "
    ]]);
   
 def Sminimal(g,opt) {  def Sminimal(g,opt) {
   local r, freeRes, redundantTable, reducer, maxLevel,    local r, freeRes, redundantTable, reducer, maxLevel,
Line 1487  HelpAdd(["IsSameIdeal_h",
Line 1479  HelpAdd(["IsSameIdeal_h",
  "cf. ReParse"   "cf. ReParse"
 ]]);  ]]);
   
 def ReParse(a) {  /*
   local c;    Output of S* functions may cause a trouble because it uses Schreyer orders.
   if (IsArray(a)) {    In this case, use ReParse().
     c = Map(a,"ReParse");  */
   }else{  
     sm1(a," toString . /c set");  
   }  
   return(c);  
 }  
 HelpAdd(["ReParse",  
 ["Reparse(obj): obj",  
  "It parses the given object in the current ring.",  
  "Outputs from SlaScala, Sschreyer may cause a trouble in other functions,",  
  "because it uses the Schreyer order.",  
  "In this case, ReParse the outputs from these functions.",  
  "cf. IsExaxt_h"  
 ]]);  
   
 def ScheckIfSchreyer(s) {  def ScheckIfSchreyer(s) {
   local ss;    local ss;

Legend:
Removed from v.1.31  
changed lines
  Added in v.1.36

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