moodssの数式

目次:

1. この文章について

この文書は、moodssアプリケーションでロードされたモジュールのデータセルから数式を作成するための一般的情報と参考情報を含んでいます。一度作成された式は、moodssの一般ドキュメントで説明されているformulas tablesにて表示されます。
またこの文書は、シンタックス、演算子、関数から構成される式において、使用可能な数式を列挙します。

2. 式

moodssとmoompsの数式は、ユーザーが定義した名前、コメント、データセルで作られた数学的式、数学的演算子、関数、から構成されます。数学的式は数式が中心となっています。

式は、オペランド(データセル、数、数学関数、…)、演算子(+、-、…)、および括弧の組み合わせから構成されます。オペランド、演算子、括弧の間にスペースを使用します。数式の結果を内部で計算される際に無視されます。

例えば、スクリーンショットは、コンピュータで使用されているメモリーを、そのコンピュータ全体が使用可能なメモリーで割り、結果に100を乗算することによって、メモリ使用量のパーセントを計算するために用いる式です。

basic memory usage expression

与えられた結果が0ですが、実際に使用されているメモリーは幾らかあるはずですので、この式には不具合があることに気が付きます。それは、内部の計算エンジン(以下計算機と呼ぶ)がオペランドを整数値として解釈しているからです。
このケースの場合、下に図示されるているように、メモリーオペランドのうちの1つを浮動小数点に変換するために、数学的関数を用いて浮動小数点計算をするのが望ましいでしょう。

floating-point memory usage expression

私達は、今後より多くの式をカバーする予定です。

2.1. オペランド

もしオペランドが整数値(123などの)として解釈が可能ならば整数値として扱われ、その他は浮動小数点数値(12.345などの)として扱われます。
オペランドは、定数としてユーザーにより直接入力されるか(上記のスクリーンショットにある乗数100のように)、またはデータセルのようなどのソースからでも使用できます(使用メモリー使用可能メモリーなど)。

整数と浮動小数点のオペランド内部での変換が必要な場合は自動的に実行されます。演算計算には浮動小数点数が入力されるまで整数を使用し、その後に浮動小数点数を使用します。例えば、5/4の結果は1ですが、5/4.0の結果は1.25になります。
浮動小数点数を、整数値と区別して表示するため、.(ドット)またはeを使用します。例えば、20.0/5.0の結果は、4ではなく、4.0です。

オペランドは、上記の形式で値を返すdouble(127544)などの数学関数の場合もあります。(関数を参照)。

2.2. 演算子

式は下記リストの優先順位に従って評価されます。演算子は優先順位の高い順に上から並べています:

2.3. 関数

厳密に言えば、下記の特定の関数は唯一の引数として1つのデータセル(moodss formulasインターフェースにドラッグアンドドロップ)が必要です。初期ロード時、データセルの値が不明であり未定義の値を返す可能性があるため、formulasのアップデートの際に、内部的にデータセルの値を使用するためです。

Notes:

アップデート時間の違いを返す特別な関数もあります:

以下の数学関数がサポートされています。この関数は特に指定しない限り浮動小数点数で動作します:

2.4. エラー処理

エラー処理は内部計算機により処理され、ほとんどのメッセージ内容は容易に理解できます。しかし、エラーメッセージを慎重に読み、よく考察することが必要です。
Note: エキスパートのために、safe Tclインタプリタ中のexprコマンドがエラーを報告します。

いくつかの典型的エラーメッセージを説明します。

3. 書式

(to be implemented)

4. 高度な使用方法

オペランドの整数値は10進数(通常)、8進数(オペランドの最初の文字が0の場合)、16進数(オペランドの最初の2文字が0xの場合)で指定できます。

浮動小数点は、ANSIに準拠するCコンパイラにより受け入れ可能なすべての方法で指定できます(fFlL接尾辞が許可されていないという点を除く)。例えば、以下全ては有効な浮動小数点です:2.13.6e47.91e+16。もし、数値の解釈が不可能な場合はエラーになります。それは、?で表現されます。

以下の式が有効です:

以下のランダム関数がサポートされています:

最後に、Tcl言語に精通しているユーザーのため、データセルの値を入力した後に、数式のテキストがexprコマンドに直接渡されるので、オペランドとして文字列を含むすべてのexprコマンドの機能を使用することが出来ます。