=================================================================== RCS file: /home/cvs/OpenXM/src/k097/lib/minimal/minimal-note-ja.txt,v retrieving revision 1.4 retrieving revision 1.10 diff -u -p -r1.4 -r1.10 --- OpenXM/src/k097/lib/minimal/minimal-note-ja.txt 2000/06/09 08:04:54 1.4 +++ OpenXM/src/k097/lib/minimal/minimal-note-ja.txt 2000/08/01 08:51:02 1.10 @@ -1,4 +1,4 @@ -$OpenXM: OpenXM/src/k097/lib/minimal/minimal-note-ja.txt,v 1.3 2000/06/08 08:37:53 takayama Exp $ +$OpenXM: OpenXM/src/k097/lib/minimal/minimal-note-ja.txt,v 1.9 2000/07/30 02:26:25 takayama Exp $ SpairAndReduction() : 与えられた pair を reduction する. @@ -544,8 +544,183 @@ In(10)=reductionTable : In(11)=bases: [ %[null] , [ 0 , y^2 , -x ] , [ -y , x , 1 ] ] In(12)= これは, [3, 2, 1] の元のうち, 2,1 がもとまっている. -[ 2 ] の計算に 0 番目が必要でこれがまだない. +最後の [ 2 ] の計算に 0 番目が必要でこれがまだない. +要するに 1 番目と 3 番目を消す operator [1, 0, -y^2] + [ y^3 , 0 , -x^2 ] + [ 0 , y^2 , -x ] + [ y , -x , 0 ] +の reduction が必要. +----------------------------------------- +June 11, 2000 (Tue), 20:05 +V-strict かどうかをチェックする関数を書きたい. +安全に ring (schreyer order) を定義する関数が欲しい. +安全に parse する関数も欲しい. +ベクトルと es 表現の変換関数もいる. +AvoidTheSameRing == 1 なら, schreyer の gbList も変更できないように +すべきか? +関連変数: +needWarningForAvoidTheSameRing +isTheSameRing() : ring が同じか check. pointer でなく中身までみる. +see poly4.c. ここのコメントは参考になる. +3.If Schreyer = 1, then the system always generates a new ring. +define_ring に gbList も渡せるの? +==> set_up_ring@ を見る. grep set_up_ring ==> +primitive.c KsetUpRing() grep KsetUpRing ==> +keyword gbListTower が使えるが, list で与えないといけない. +list に変換するのは, (list) dc. + +tparse の必要なわけ? +?? おもいだせない. + +ring_def で ring (schreyer order) を定義すると, 計算のときの +order も tower でやってくれるの? +多分 NO. +grep ppAdd *.c ==> +poly2.c + checkRing(f,g); + + while (f != POLYNULL && g != POLYNULL) { + /*printf("%s + %s\n",POLYToString(f,'*',1),POLYToString(g,'*',1));*/ + checkRing2(f,g); /* for debug */ + gt = (*mmLarger)(f,g); + + mmLarger は変えてないように見える. checkRing はマクロ. + +mmLarger_tower は + if (!(f->m->ringp->schreyer) || !(g->m->ringp->schreyer)) + return(mmLarger_matrix(f,g)); +となってるので mmLarger_tower を default にしておけば心配ないように見える. + +ring_def は正しく動く? + +TODO: +関数の仕様: ( new.sm1 または complex.sm1 においとく ) + mmLarger は tower に変えてしまう. + 変数名, weight vector, シフトベクトル m を与えると ring (with schreyer order) + を作る. ==> weyl, weyl + parser はとくに作る必要がないように見えるが...(tparse) ==> name + ベクトル <---> es 表現 cf. toVectors, [(toe_) f] gbext ==> name + 適切な homogenization 関数 ==> homogenize + ord_w の schreyer 版 ==> ord_w + init の schreyer 版 ==> init + gb_h, syz_h の対応版 ==> [ ii vv ww m] syz_h + resolution から shift vector を計算する関数. + + 結果の check をする assert 関数も必要. + +上の シフトベクトル対応版の関数は当分 new.sm1 へ. そのあと complex.sm1 へ. + +cohom.sm1 の interface 関数は cohom.k へ. +Help key word は (Cohom.deRham) みたいに, . でくぎって書く. + +---------------------- +エラーの原因がようやくわかる: June 14, 19:00 +Schreyer frame の段階で syz に 1 があると strategy が +はたらかない. + +test13() GKZ の minimal free resolution. 2 度実行すると変. +grade が変更されると, 変なことがおきるので, +ScheckIfSchreyer() 関数で, これを scheck することにした. + sm1(" (report) (mmLarger) switch_function /ss set "); +はまだやめとく. matrix になってるので. + +------------------------------------------ +June 15, 2000 +TODO: +1.if (IdenfityIntegerAndUniversalNumber) のとき --- default + lt, gt, eq で integer と universalNumber の比較ができるようにする. + rational との比較も可能にする. + +2. sm1_push_int0 に対応することを, sm1 の側でやる. + マクロ名 obj to_int --> Done. + weight_vector の universalNumber ==> まだ. エラーをださないのがこわい. + s_weight_vector + weightv + ord_w + toVectors + define_ring + init + gkz + +------------- +Schreyer skelton がどうして 1 を要素にもつかしらべる. + +June 24 (Sat), 22:30 at Posthouse (Heathrow) www.posthouse-hotels.com +Sevilla 滞在, Mega もようやくおわり minimal resolution の check に戻る. +resol1.c に次の line を加えた. + /* If isConstant(sv.a) is added, (x^3 - y^2 z^2) deRham stops + with an error. I've not yet understood the reason. + At Posthouse at Heathrow. June 24, 2000 */ + if (isConstant(sv.b)) { + s->deleted = 1; + } + ===> おかしいので削除. + +isConstant(sv.a) がないと, こんどは, +Sminimal([x^2+y^2,x*y]); がエラーでとまる. +(x,y の weight は -1). +LaScala-Stillman の論文をもう一度ながめよう. + +commit すべき: misc/mega2000 (cvs-misc add) Done. + OpenXM/src/kan96xx Done. + OpenXM/src/k097/lib/minimal Done. + +July 26. + resol.c の schreyerSkelton0 で, skelton が minimal になるように + コードを挿入. + テストは + cd src/k097/lib/minimal + k0 + load["minimal.k"];; + Sweyl("x,y",[["x",-1,"y",-1,"Dx",1,"Dy",1]]); + Sminimal([x^2+y^2,x*y]); + で. + + LaScala-Stillman の論文逆で i e_j となる. + (order.c mmLarger_tower()) + + テスト 2. + cd src/k097/lib/minimal + k0 + load["minimal-test.k"];; + v: + Sminimal(v); + + test11(); /* a = test_ann3("x^3-y^2*z^2"); */ + test14(); /* gkz (1,2,3) */ + +July 30. Removed unnecessary code. + 例: + Sminimal("x^3-y^2"); + test12() ( x^3-y^2 z^2) + test15() GKZ 1,2,3 with a check. + test15b() toric + test15c() (u,v) = (-1,1) + +August 1. + (u,v)-minimal のテストコードをいれた. + IsExact_h で 変数 c の値がかわる. 原因不明. + c=Sinit_w(b,w); + Println("Resolution (b)----"); + sm1_pmat(b); + Println("Initial (c)----"); + sm1_pmat(c); cc=c; + Println("Exactness of the resolution ---"); + Println(IsExact_h(b,v)); /* IsExact_h breaks the variable c. + THIS BUG SHOULD BE FIXED. */ + このあとなぜか, c が b の値にかわってしまう. + なお def IsExact(c,...) と定義されており, この c を別の変数名に + 変えればこの問題はおきない. + Println("Why is the initial c rewritten by b? (buggy) ");sm1_pmat(c[0]); + + ===> complex.sm1 の isExact_h (isExact) で popVariables を忘れてただけ. + + betti 数は, 行列の消去をやるまでわからないの? + SbettiTable(). + + Sminimal は [(Homogenize_vec) 0] system_variable にするようで, + これが cohomology の計算には邪魔.