第 9 章 多項式について
12.4 函数定義に関連する大域変数
compgrind
デフォルト値:[false]
trueであれば,compileによる函数定義の出力が整形表示されます.
functions デフォルト値:[]
利用者が定義した全ての函数名を含むリストです.
macroexpansion デフォルト値:[false]
マクロの効率性に影響を与える機能を制御します.
• falseを設定すると,マクロが呼出されるたびに,マクロの展開を行います
• expandを設定すると,最初の呼出で評価されると,後で呼出す時には展開をしなくても良い
様に,この展開が内部的に記憶され,その後の呼出を早くします. マクロの呼出はgrindと
displayを通常実行しますが,全ての展開を覚えておくには,一層のメモリが必要となります.
• displaceを設定すると,最初に或る特定の呼出が評価され,マクロ展開は呼出に対して代入さ
れます.expandに設定された時よりも,幾らか少ない保存領域を必要とする割には,処理速度 は同程度で,その上,マクロの呼出が記憶されない欠点を持っています.展開はdisplayかgrind が呼出されていれば参照出来ます.
mode checkp デフォルト値:[true]
trueの場合,mode declareは定値変数のモードを検査します.
mode check errorp デフォルト値:[false]
trueであれば,mode declareはエラーを呼びます.
mode check warnp デフォルト値:[true]
trueの場合,モードエラーが記載されます.
savedef
デフォルト値:[true]
trueであれば,利用者函数をtranslate函数で変換しても,元のmaximaのプログラムを残しま
す.その為,大域変数functionsに割当てられた利用者函数名リストから,変換した函数名を削除せ
ずに残します. 又,dispfun函数で函数の定義が表示可能で,函数の編集も出来ます.
falseの場合は,functionsに割当てた利用者函数名リストから該当函数名を削除します.
128 第12章 函数定義 transcompile
デフォルト値:[false]
trueであれば,translate函数は可能なcompile命令に必要な宣言を生成します. compile命令は transcompile:trueを用います.
translate
デフォルト値:[false]
trueであれば,利用者定義函数が自動的にLISP函数に変換されます. 尚,MAXIMAとLISPの 整合性の問題から,変換される前と同じ動作をするとは限らない事に注意して下さい.
変数がmode declareされたCRE表現の場合,rat函数を一つ以上の引数で用いたり,ratvars函数 を使ってはなりません.又,prederror:falseは変換しません.
transrun
デフォルト値:[true]
falseであれば,translate函数で変換されたものではなく,元のmaximaの函数(それらが存在し
ていれば)が実行されます
tr array as ref デフォルト値: [true]
trueであれば,実行コードは配列として変数の値を用います.
tr bound function applyp デフォルト値:[true]
函数として用いようとする変数に値が設定されていれば警告を出します.
tr filek tty messagesp デフォルト値:[false]
translate fileがファイルの変換を行う間に生成されたメッセージをttuに送るかどうかを決め
ます.
false(デフォルト値)であれば,ファイルのtranslateによる変換に関するメッセージはunlispファ イルのみに挿入されます. trueであれば,メッセージはttyに送られ,unlispファイルにも挿入され ます.
tr float can branch complex デフォルト値:[true]
逆三角函数が複素数値を返しても良いかどうかを宣言します.逆三角函数はsqrt,log, acos等です.
例えば,trueの場合,xがfloat(浮動小数点型)であったとしても,acos(x)はany型となります.false にしている時は,xがfloat型で,その時に限って,acos(x)はfloat型となります.
tr function call default デフォルト値:[general]
falseの場合,中断してmevalを呼出す事を意味します.
exprの場合は,引数固定のLISP函数を仮定する事を意味します.
generalの場合,mexprsとmlexprsに対しては利用者定義函数を良くしますが, macrosに対して はそうではありません.尚,変数束縛がcompile函数でコンパイルされたMAXIMAの利用者定義 函数の中で正しい事を保証し,函数f(x)を変換する時に,fが束縛変数であれば,apply(f,[x])を意味 していると仮定し,適切な警告と共にその様に変換します.これを無効にする必要性はありません.
デフォルト設定で,何等の警告メッセージが無ければ,translate函数で変換されたり,compileで コンパイルされた利用者定義函数には元のmaxima函数と完全な互換性がある事を意味します.
tr gen tags
デフォルト値:[false]
trueであれば,translate fileはテキストエディタで用いるtagsファイルを生成します.
tr numer
デフォルト値:[false]
trueであれば,数の属性はそれらによって与えられたアトムに対して用いられます.例えば,%pi.
tr optimize max loop デフォルト値[100]
考えられる形式でtranslate函数でのマクロ展開と最適化工程ループの最大回数を定めます.こ
れはmacro展開エラーを捉える為で,非中断の最適化属性です.
tr semicompile デフォルト値:[false]
trueであれば,translate file函数とcompile函数の出力形式は拡張されたマクロになりますが,LISP コンパイラで機械コードに翻訳されたものではありません.
tr state vars デフォルト値:
[transcompile, tr\_{}semicompile,
tr\_{}warn\_{}undeclared, tr\_{}warn\_{}meval, tr\_{}warn\_{}fexpr, tr\_{}warn\_{}mode, tr\_{}warn\_{}undefined\_{}variable, tr\_{}function\_{}call\_{}default,
tr\_{}array\_{}as\_{}ref,tr\_{}numer]
変換された出力形式に影響を与える大域変数のリストです.この情報は,変換の虫取りを行う時 に便利です.変換されたものと与えられた状況で生成されなければならない物を比較する事で,虫 を追跡する事が可能になります.
130 第12章 函数定義 tr warn bad function calls
デフォルト値:[true]
変換時に不適切な宣言が行われた為,函数の呼出しが生じた場合に警告します.
tr warn fexpr
デフォルト値:[compfile]
任意のfexprが与えられていれば警告します.fexprは通常変換されたプログラム内の出力であっ
てはならず,全ての文法的に正しい特殊なプログラム書式に変換されます.
tr warn meval
デフォルト値:[compfile]
函数mevalが呼び出されると警告します.もし,mevalが呼出されると,変換の問題点を指定します.
tr warn mode デフォルト値:[all]
変数が指定した型に対して適切でない値が指定されていれば警告します.
tr warn undeclared デフォルト値:[compile]
未宣言の変数に関する警告をttyに送るべき時を決めます.
tr warn undefined variable デフォルト値: [all]
未宣言の大域変数があれば警告します.
tr windy
デフォルト値:[true]
助けになる註釈とプログラムのヒントを生成します.
undeclaredwarn デフォルト値:[compfile]
四種類の設定項目があります.
設定 動作
false 警告を表示しません
compfile compfileであれば警告します
translate translateやtranslate:trueであれば警告します all compfileやtranslateであれば警告します
mode declare(h変数i,any)を実行してh変数iが一般のMAXIMAの変数である事を宣言しま す.即ち,float,又はfixnumである事に限定されません.compile函数でコンパイルされる利用者定義 函数中の変数を宣言する特別な動作は全て無効にしなければなりません.