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