SIMATH-4.6
SIMATH-4.6をbuildする[2003.01.26]
数論用ツールとして、既にpari/gp, asir, KASHを使っている。
今回は、JANT研究集会で紹介されたことがあるツールSIMATHをbuildしてみる。
現在、SIMATHは、東京都立大学理学部の中村 憲教授のグループによって、開発(64bit化など)/保守されている。
- SIMATH-4.6.tar.gzを展開する。
$ tar zxf SIMATH-4.6.tar.gz
- ./configureする。SIMATHのインストールディレクトリは、/usr/local/simathとする。
$ cd SIMATH-4.6
$ ./configure --prefix=/usr/local
- ./smconfig.hの MAX_BLOCK_NUMBER(1BLOCK=128KB,デフォルト値64)をメモリ容量に合わせて調整する。
- ./Makefile.flagsおよびMakefileを必要に応じて編集する。
Makefile.flagsで、CFLAGS="-m486 -O2"とCFLAGS_BIN="-m486 -O2"を指定する。
各Makefileで、GNU makeを使うために、makeを$(MAKE)に修正する。
./packages/SMif/Makefile
./packages/Makefile
./simcalc/Makefile
./sources/Makefile
./Makefile
- GNU make(gmake)を指定して、makeする。
$ MAKE=gmake gmake
- installする。
$ sudo bash
# MAKE=gmake gmake install
上書きインストールする場合は、gmake SIMATH_installとする。
# MAKE=gmake gmake SIMATH_install
- /usr/local/bin上にbinaryのsymbolic linkを作成する。
# MAKE=gmake gmake links
# exit
- make cleanする。
$ MAKE=gmake gmake clean
$ cd ~
SIMATHを起動するには、SMとする。
また、SIMath Calculatorを起動するには、simcalcとする。
simcalcで、100!と楕円曲線 y^2=x^3-25x のMordel-Weil群の基底とねじれ点群を計算してみると、以下のようになる。
bash-2.05a$ simcalc
***** ****
***** ****
****
*********** ***** ***************** *********** *********** **** ***********
*********** ***** ***************** *********** *********** **** ***********
*** **** **** **** **** **** **** *** **** **** ****
*********** **** **** **** **** **** *********** **** ****
*********** **** **** **** **** **** *********** **** ****
*** **** **** **** **** **** **** *** *** **** **** ****
*********** ***** ***** ***** ***** *********** ************ ***** ***********
*********** ***** ***** ***** ***** *********** ************ ***** ***********
version 4.5, 15 Mar 2000
Type "?help" for more information.
Type "?helpfunc" for more information about functions in simcalc.
Type "?NEW" for information about new functions in simcalc.
> 100!
simcalc in free(): warning: junk pointer, too high to make sense.
@ = 93326215443944152681699238856266700490715968264381621468592963895
21759999322991560894146397615651828625369792082722375825118521091686400000000
0000000000000000
> E=EC(0,0,0,-25,0)
simcalc in free(): warning: junk pointer, too high to make sense.
E = EC(-25, 0)
> basismwg(E)
basis : PT(-4, 6, 1)
simcalc in free(): warning: junk pointer, too high to make sense.
@ = 1
> tors(E,3)
structure: Z/2Z x Z/2Z
generators: PT(0, 0, 1)
PT(5, 0, 1)
torsion points: PT(5, 0, 1)
PT(0, 0, 1)
PT(-5, 0, 1)
PT(0, 1, 0)
simcalc in free(): warning: junk pointer, too high to make sense.
@ = 4
>
B Y E
*** # GCs: 8 GC time: 0.02 s # collected cells: 455166 ***
*** # blocks: 1 block size: 65535 # free cells: 14743 ***
*** total CPU time: 3.43 s ***
bash-2.05a$
SIMATHを起動すると、以下のようになる。
bash-2.05a$ SM
**************************
* *
* S I M A T H *
* *
**************************
Version 4.6 started at 21:26:46
no source library
current object library: /usr/local/simath/lib/libexample.a
current file name: gcd
(N)AME: (e,E)dit (p)re (o)bj (c)omp (C)comp
object: (a)r name (d)ir ar(+)obj ar(-)obj (r)anlib
USR-SRC: (A)R NAME (D)IR AR(*)SRC AR(_)SRC (S)ELECT
SM-SRC: E(X)TRACT (~,@,.)
(!) ($) (?) (P)RINT (H)ELP (R)UN (Q)UIT
< Q
SM terminated at 21:27:07
bash-2.05a$
参考文献
- [1]"SIMATH Manual: An Introduction to the Compter Algebra System SIMATH and the calculator SIMCALC".
- [2]Horst G. Zimmer, "SIMATH - a computer algebra system for number theoretic applications".
- [3]Horst G. Zimmer, "Basic Algorithms for elliptic curves".
- [4]Tetsushi Matsui, Mizuko Abe, Daisuke Kobayashi, Ken Nakamula, "SIMATH - Recent Developments in TMU", 6 May, 2002.
- [5]佐藤 篤, "コンピュータによる楕円曲線の計算", 整数論セミナー(2002.01.07 於 東北大学理学研究科)配布資料に加筆修正, 2002.11.20.
Last Update: 2005.06.12 |
H.Nakao |