すでにPowerBookG4 12"を利用し始めて3週間ほどたっている。MacOSXへは2度目のアプローチである。前回はOSXがでてすぐであった。今回は、X.2で使い勝手がよい。環境整備、プログラミングのメモをここに置いておく。
readlineの最新のソースをダウンロードして途中でエラーがでるが、コンパイルインストールする。
ATLASとLAPACKをインストールする。
round.cを変更する。そのためにはIEEE754の丸めのモードを変更する方法が重要となる:(PowerBook G4のGCC compilerと
compatible librariesはISO C 99 標準をサポートしており, header
fenv.h
をインクルードする。そして、丸めの関数は
int fesetround (int __rounding_direction)
で与えられる。ただし、__rounding_direction はつぎのうちの一つ:
FE_TONEAREST
FE_UPWARD
FE_DOWNWARD
FE_TOWARDZERO
補足:
int fegetround (void)
はcurrent rounding modeを返す。また、このヘッダーの中にはFP exceptions and FP environments 扱う次のような関数がある。
int feclearexcept (int __excepts)
int fegetexcept (fexcept_t *__flagp, int __excepts)
int feraiseexcept (int __excepts)
int fesetexcept (__const fexcept_t *__flagp, int __excepts)
int fetestexcept (int __excepts)
int fegetenv (fenv_t *__envp)
int feholdexcept (fenv_t *__envp)
int fesetenv (__const fenv_t *__envp)
int feupdateenv (__const fenv_t *__envp)
(Hermann Schichl教授により情報提供を受ける)
もう一つの方法は
#ifdef __ppc__
/* set rounding to round toward - infinity*/
#define rounddn __asm__ ("mtfsfi 7,3") ;
/* set rounding to round toward +infinity*/
#define roundup __asm__ ("mtfsfi 7,2") ;
/* set rounding to round toward nearest */
#define roundnr __asm__ ("mtfsfi 7,0") ;
#endif /* def ppc */
である。これはDavid Wittenberg博士よりお教えいただいた。
若干の方言がある。
がポイントである。
PowerBookG4 12"にはカードスロットがない。そこで、SUNTAC SlipperX miniによりbmobile CFカードを利用することにした。ただし、「MacOS X 10.2で通信カードをご利用いただいた際に通信できない場合の対応CCLファイル」が必要になった。
©Shin'ichi OISHI
このページのURIはhttp://www.oishi.info.waseda.ac.jp/~oishi/osx/mac.html
最終更新 2003/5/16