=================================================================== RCS file: /home/cvs/OpenXM/src/k097/lib/minimal/minimal.k,v retrieving revision 1.21 retrieving revision 1.24 diff -u -p -r1.21 -r1.24 --- OpenXM/src/k097/lib/minimal/minimal.k 2000/08/01 03:42:35 1.21 +++ OpenXM/src/k097/lib/minimal/minimal.k 2000/08/02 03:23:36 1.24 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.20 2000/07/31 02:25:34 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/lib/minimal/minimal.k,v 1.23 2000/08/01 08:51:03 takayama Exp $ */ #define DEBUG 1 Sordinary = false; /* If you run this program on openxm version 1.1.2 (FreeBSD), @@ -239,8 +239,11 @@ def SresolutionFrameWithTower(g,opt) { } } } - }else{ + } else if (IsNull(opt)){ + } else { Println("Warning: option should be given by an array."); + Println(opt); + Println("--------------------------------------------"); } } @@ -962,7 +965,7 @@ HelpAdd(["Sminimal", def Sminimal(g,opt) { local r, freeRes, redundantTable, reducer, maxLevel, minRes, seq, maxSeq, level, betti, q, bases, dr, - betti_levelplus, newbases, i, j,qq, tminRes; + betti_levelplus, newbases, i, j,qq, tminRes,bettiTable, ansSminimal; if (Length(Arglist) < 2) { opt = null; } @@ -975,6 +978,9 @@ def Sminimal(g,opt) { freeRes = r[0]; redundantTable = r[1]; reducer = r[2]; + bettiTable = SbettiTable(redundantTable); + Println("Betti numbers are ------"); + sm1_pmat(bettiTable); minRes = SnewArrayOfFormat(freeRes); seq = 0; maxSeq = SgetMaxSeq(redundantTable); @@ -1028,8 +1034,20 @@ def Sminimal(g,opt) { } } tminRes = Stetris(minRes,redundantTable); - return([SpruneZeroRow(tminRes), tminRes, - [ minRes, redundantTable, reducer,r[3],r[4]],r[0],r[5]]); + ansSminimal = [SpruneZeroRow(tminRes), tminRes, + [ minRes, redundantTable, reducer,r[3],r[4]],r[0],r[5]]; + Println("------------ Note -----------------------------"); + Println("To get shift vectors, use Reparse and SgetShifts(resmat,w)"); + Println("To get initial of the complex, use Reparse and Sinit_w(resmat,w)"); + Println("0: minimal resolution, 3: Schreyer resolution "); + Println("------------ Resolution Summary --------------"); + Print("Betti numbers : "); + Println(Map(ansSminimal[0],"Length")); + Print("Betti numbers of the Schreyer frame: "); + Println(Map(ansSminimal[3],"Length")); + Println("-----------------------------------------------"); + + return(ansSminimal); /* r[4] is the redundantTable_ordinary */ /* r[0] is the freeResolution */ /* r[5] is the skelton */ @@ -1500,3 +1518,17 @@ HelpAdd(["Sinit_w", " c=Sinit_w(b,w); c:" ]]); +/* This method does not work, because we have zero rows. + Think about it later. */ +def SbettiTable(rtable) { + local ans,i,j,pp; + ans = SnewArrayOfFormat(rtable); + for (i=0; i