maxima-init.macは、Maximaがスタートする時自動的にロードされるファイルです。
自分のMaxima環境をカスタマイズするために
maxima-init.macを使うことができます。
maxima-init.macは、もし存在するなら、
関数file_searchが検索する任意のディレクトリで大丈夫ですが、
通常は、
maxima_userdirで名付けらたディレクトリの中に置かれます。
これは、maxima-init.macファイルの例です:
setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
showtime:all;
この例では、setup_autoloadは、Maximaに
もし関数(ultraspherical,
assoc_legendre_p)のいずれかがコールされて、まだ定義されていなかったら、
指定されたファイル(specfun.mac)をロードするように命じます。
このように、関数をコールする前にファイルをロードすることを覚えておく必要はありません。
文showtime: allは、Maximaにshowtime変数を設定することを命じます。
maxima-init.macファイルは、
他の任意の割り当てやMaxima文を含むことができます。
ユーザーは、時間のかかる計算を^C (control-C)文字で止めることができます。 デフォルトの動作は、計算を止めて、別のユーザープロンプトを印字することでです。 この場合、止められた計算の再開することはできません。
もし
:lisp (setq *debugger-hook* nil)
を実行することによって、
Lisp変数*debugger-hook*がnilに設定されているなら、
^Cを受け取ると、Maximaは、Lispデバッガに入り、
ユーザーは、Lisp環境を検査するためにデバッガを使うことができます。
止められた計算は、Lispデバッガの中で、
continueを入力することで、再開することができます。
(計算を完了まで走らせる以外に)
LispデバッガからMaximaに戻る方法は、
Lispのバージョンそれぞれで異なります。
Unixシステム上では、文字^Z (control-Z)は、
Maximaが完全に止まるようにし、
制御は、シェルスクリプトに戻ります。
fgコマンドは、Maximaが
止められた点から再開するようにします。
Maximaは、システムフィーチャと数学式に適用されるフィーチャの、
2つの異なるタイプのフィーチャを理解します。
See also
システムフィーチャについての情報に関しては、statusも参照してください。
数学的フィーチャについての情報に関しては、
featuresとfeaturepも参照してください。
featureそれ自身は、関数名でも変数名でもありません。
現在のデータベースの中の事実に基づいて
オブジェクトaが
フィーチャfを持つかどうか
を決定しようとします。
もしそうなら、trueを返し、そうでなければfalseを返します。
featurepは、
fもfの否定も確立できない時は、
falseを返すことに注意してください。
featurepは、引数を評価します。
declareとfeaturesも参照してください。
(%i1) declare (j, even)$ (%i2) featurep (j, integer); (%o2) true
maxima_tempdirは、Maximaが一時的なファイルを生成するディレクトリを
指名します。
特に、プロットのための一時ファイルが
maxima_tempdirに生成されます。
maxima_tempdirの初期値は、
もしMaximaが置くことができるなら、ユーザーのホームディレクトリです;
そうでなければ、Maximaは適切なディレクトリについて推量します。
maxima_tempdirは、ディレクトリを指名する文字列に割り当てられます。
maxima_userdirは、
Maximaが、MaximaやLispファイルを見つけるために検索するディレクトリを指名します。
(Maximaは、他のディレクトリも検索します;
file_search_maximaとfile_search_lispは、完全なリストです。)
maxima_userdirの初期値は、
もしMaximaが置くことができなら、
ユーザーのホームディレクトリのサブディレクトリです;
そうでなければ、Maximaは適切なディレクトリについて推量します。
maxima_userdirは、ディレクトリを指名する文字列に割り当てられます。
しかしながら、
maxima_userdirへの割り当ては、自動的には
file_search_maximaとfile_search_lispを変えません;
それらの変数は、別々に変更しなければいけません。
Maximaの記憶装置とスタックマネージメントの状態の描写を印字します。
roomは、同じ名前のLisp関数をコールします。
room ()は、適度の描写を印字します。
room (true)は、言葉数の多い描写を印字します。
room (false)は、簡潔な描写を印字します。
keywordがシンボルfeatureの時、itemがシステムフィーチャのリスト上に追加されます。
sstatus (keyword, item)が実行された後、
status (feature, item)はtrueを返します。
もしkeywordがシンボルnofeatureなら、
itemはシステムフィーチャのリストから削除されます。
これはパッケージ作者が、搭載したフィーチャの追跡をするのに役に立つかもしれません。
statusも参照してください。
feature) ¶feature, item) ¶いくつかのシステム依存のフィーチャの存在と不在についての情報を返す。
status (feature)は、システムフィーチャのリストを返します。
これらは、Lispのバージョン、オペレーティングシステムのタイプなどを含みます。
リストは、1つのLispタイプからもう1つに変わるかもしれません。
status (feature, item)は、
もしitemがstatus (feature)が返す項目のリスト上にあるなら、
trueを返し、そうでなければ、falseを返します。
statusは、引数itemをクォートします。
クォート-クォート演算子''は、クォーテーションに優先されます。
名前が、ハイフンのように特殊文字を含むフィーチャは、
文字列引数として与えられなければいけません。例えば、
status (feature, "ansi-cl")。
sstatusも参照してください。
変数featuresは、
数式に適用される
フィーチャのリストを含みます。
もっと情報を知るには、featuresとfeaturepを参照してください。
別のプロセスとしてcommandを実行します。
コマンドは実行のためデフォルトのシェルに渡されます。
systemは、オペレーティングシステムすべてではサポートされませんが、
一般にUnixとUnixライクな環境では存在します。
_hist.outが、
xgraphを使ってバーグラフとしてプロットしたい頻度のリストだと仮定します。
(%i1) (with_stdout("_hist.out",
for i:1 thru length(hist) do (
print(i,hist[i]))),
system("xgraph -bar -brw .7 -nl < _hist.out"));
プロットをバックグラウンドで(Maximaに制御を戻すように)させるようにし、終了した後、一次ファルを削除するようにするためには、以下のようにします:
system("(xgraph -bar -brw .7 -nl < _hist.out; rm -f _hist.out)&")
出力行%o1, %o2, %o3, …を計算するために使った
時間のリストを秒で返します。
返された時間は、内部計算時間のMaximaの概算であって、経過時間ではありません。
timeは、出力行変数にだけ適用されます;
他の変数に関して、timeはunknownを返します。
Maximaに出力行それぞれに計算時間と経過時間を印字させるには、
showtime: trueを設定してください。
引数なしのtimedate()は現在時刻と日付を表す文字列を返します。
文字列は、フォーマットYYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZを持ちます。
ここで、欄は、年、月、日、時、分、秒、時間と分のタイムゾーンオフセットです。
timedate(T)は
フォーマットYYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZの文字列として
時刻Tを返します。
Tは
absolute_real_timeが返すような
1990年1月1日の真夜中以来の秒数として解釈されます。
例:
引数なしのtimedate()は現在時刻と日付を表す文字列を返します。
(%i1) d : timedate ();
(%o1) 2010-06-08 04:08:09+01:00
(%i2) print ("timedate reports current time", d) $
timedate reports current time 2010-06-08 04:08:09+01:00
引数ありのtimedateは引数を表す文字列を返します。
(%i1) timedate (0); (%o1) 1900-01-01 01:00:00+01:00 (%i2) timedate (absolute_real_time () - 7*24*3600); (%o2) 2010-06-01 04:19:51+01:00
協定世界時で1900年1月1日の深夜以来の 秒数を返します。 戻り値は整数です。
elapsed_real_timeとelapsed_run_timeも参照してください。
例:
(%i1) absolute_real_time (); (%o1) 3385045277 (%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600); (%o2) 2007.265612087104
Maximaがもっとも最近スタートしたか再スタートして以来の (1秒の小数を含む)秒数を返します。 戻り値は浮動小数点数です。
absolute_real_timeとelapsed_run_timeも参照してください。
例:
(%i1) elapsed_real_time (); (%o1) 2.559324 (%i2) expand ((a + b)^500)$ (%i3) elapsed_real_time (); (%o3) 7.552087
Maximaがもっとも最近スタートしたか再スタートして以来 Maximaが計算に費やした (1秒の小数を含む)秒数の概算を返します。 戻り値は浮動小数点数です。
absolute_real_timeとelapsed_real_timeも参照してください。
例:
(%i1) elapsed_run_time (); (%o1) 0.04 (%i2) expand ((a + b)^500)$ (%i3) elapsed_run_time (); (%o3) 1.26