atmoriです。matx.org復活おめでとうございます(笑)
毎度、ちょこちょこと申し訳無いのですが、ちょっと教えてください。
MaTX Interpreter (matx)
Windows95/NT(Visual C++) version 5.0.5
last modified Fri Jan 28 18:28:19 JST 2000
及び
Linux version 5.0.9
last modified Sat Mar 18 20:33:02 JST 2000
において、
/********************************************************************/
1)スクリプトファイルにおいて、関数外ではif文を数行に分けて書けない。
/********************************************************************/
// test.mm
//--------------------------------------------
a=1;
if (a==1) {
printf("ok\n");
}
//--------------------------------------------
の様なmmファイルを書き、load すると
>>load "test.mm"
"test.mm", line 3: a=1; if (a==1) { , parse error
となり、文法エラーになります。
これは
if (a==1) { printf("1行に書くとok\n"); }
の様に一行に書くか
if (a==1) { //
printf("コメントマークつけてもok\n"); //
}
何故か行末にコメントマークつけるとOKになるようです。
また、全体をFunc void main(){ } でくくってもOKなので関数定義の中では
OKの様です。
forループに関しては数行にわけて書ける様です。
/********************************************************************/
2)ガンマ関数の値がおかしい(精度?)
/********************************************************************/
Γ(x)=gammac(x)と思うのですが、xが非整数の時に値がおかしい
(というより精度が悪い?)様です。
gammac(5.0)=4!=24
gammac(1.0)=1!=1
なので、整数の時は正しいようですが、
gammac(0.5)は√π=1.7724... のはずですが
MaTX では、gammac(0.5) = 2
となります
ちなみにgnuplotで print gamma(0.5)とすると
gnuplot> print gamma(0.5)
1.77245385090552
となります。
以上、よろしくお願い致します。
------------------------------------------------------
atmori
http://www.hoops.ne.jp/~atmori/index.htm
E-mail : smori@digital.artist.ne.jp
-----------------------------------------------------