Previous: Interrupts, Up: Runtime Environment   [Contents][Index]

32.3 Functions and Variables for Runtime Environment

宣言: feature

Maximaは、システムフィーチャと数学式に適用されるフィーチャの、 2つの異なるタイプのフィーチャを理解します。 See also システムフィーチャについての情報に関しては、statusも参照してください。 数学的フィーチャについての情報に関しては、 featuresfeaturepも参照してください。

featureそれ自身は、関数名でも変数名でもありません。

関数: featurep (a, f)

現在のデータベースの中の事実に基づいて オブジェクトaが フィーチャfを持つかどうか を決定しようとします。 もしそうなら、trueを返し、そうでなければfalseを返します。

featurepは、 ffの否定も確立できない時は、 falseを返すことに注意してください。

featurepは、引数を評価します。

declarefeaturesも参照してください。

(%i1) declare (j, even)$
(%i2) featurep (j, integer);
(%o2)                           true
システム変数: maxima_tempdir

maxima_tempdirは、Maximaが一時的なファイルを生成するディレクトリを 指名します。 特に、プロットのための一時ファイルが maxima_tempdirに生成されます。

maxima_tempdirの初期値は、 もしMaximaが置くことができるなら、ユーザーのホームディレクトリです; そうでなければ、Maximaは適切なディレクトリについて推量します。

maxima_tempdirは、ディレクトリを指名する文字列に割り当てられます。

システム変数: maxima_userdir

maxima_userdirは、 Maximaが、MaximaやLispファイルを見つけるために検索するディレクトリを指名します。 (Maximaは、他のディレクトリも検索します; file_search_maximafile_search_lispは、完全なリストです。)

maxima_userdirの初期値は、 もしMaximaが置くことができなら、 ユーザーのホームディレクトリのサブディレクトリです; そうでなければ、Maximaは適切なディレクトリについて推量します。

maxima_userdirは、ディレクトリを指名する文字列に割り当てられます。 しかしながら、 maxima_userdirへの割り当ては、自動的には file_search_maximafile_search_lispを変えません; それらの変数は、別々に変更しなければいけません。

関数: room ()
関数: room (true)
関数: room (false)

Maximaの記憶装置とスタックマネージメントの状態の描写を印字します。 roomは、同じ名前のLisp関数をコールします。

関数: sstatus (keyword, item)

keywordがシンボルfeatureの時、itemがシステムフィーチャのリスト上に追加されます。 sstatus (keyword, item)が実行された後、 status (feature, item)trueを返します。 もしkeywordがシンボルnofeatureなら、 itemはシステムフィーチャのリストから削除されます。 これはパッケージ作者が、搭載したフィーチャの追跡をするのに役に立つかもしれません。

statusも参照してください。

関数: status (feature)
関数: status (feature, item)

いくつかのシステム依存のフィーチャの存在と不在についての情報を返す。

sstatusも参照してください。

変数featuresは、 数式に適用される フィーチャのリストを含みます。 もっと情報を知るには、featuresfeaturepを参照してください。

関数: system (command)

別のプロセスとして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)&")
関数: time (%o1, %o2, %o3, …)

出力行%o1, %o2, %o3, …を計算するために使った 時間のリストを秒で返します。 返された時間は、内部計算時間のMaximaの概算であって、経過時間ではありません。 timeは、出力行変数にだけ適用されます; 他の変数に関して、timeunknownを返します。

Maximaに出力行それぞれに計算時間と経過時間を印字させるには、 showtime: trueを設定してください。

関数: timedate ()
関数: timedate (T)

引数なしのtimedate()は現在時刻と日付を表す文字列を返します。 文字列は、フォーマットYYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZを持ちます。 ここで、欄は、年、月、日、時、分、秒、時間と分のタイムゾーンオフセットです。

timedate(T)は フォーマットYYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZの文字列として 時刻Tを返します。 Tabsolute_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
関数: absolute_real_time ()

協定世界時で1900年1月1日の深夜以来の 秒数を返します。 戻り値は整数です。

elapsed_real_timeelapsed_run_timeも参照してください。

例:

(%i1) absolute_real_time ();
(%o1)                      3385045277
(%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
(%o2)                   2007.265612087104
関数: elapsed_real_time ()

Maximaがもっとも最近スタートしたか再スタートして以来の (1秒の小数を含む)秒数を返します。 戻り値は浮動小数点数です。

absolute_real_timeelapsed_run_timeも参照してください。

例:

(%i1) elapsed_real_time ();
(%o1)                       2.559324
(%i2) expand ((a + b)^500)$
(%i3) elapsed_real_time ();
(%o3)                       7.552087
関数: elapsed_run_time ()

Maximaがもっとも最近スタートしたか再スタートして以来 Maximaが計算に費やした (1秒の小数を含む)秒数の概算を返します。 戻り値は浮動小数点数です。

absolute_real_timeelapsed_real_timeも参照してください。

例:

(%i1) elapsed_run_time ();
(%o1)                         0.04
(%i2) expand ((a + b)^500)$
(%i3) elapsed_run_time ();
(%o3)                         1.26

Previous: Interrupts, Up: Runtime Environment   [Contents][Index]