mod_fx エラーコード
エラーが発見され次第、処理が中断され、エラーコードが返ります。
そのため、複数のエラーを一度に見つけることはできません。
エラーコードを格納する変数を E とすると、Eは要素数3の一次元整数型配列変数となり、
エラーコードは配列要素0〜2によって、3セクションに分けられています。
原則として、
第1セクションにはエラーの有無
第2セクションにはエラーの種類
第3セクションには、数学的エラーが起こった場合の、原因の関数の識別値
が格納されます。
ここでは、要素 0,1,2,3 がそれぞれ a,b,c,d であるようなエラーコードを、便宜上、 a.b.c.d と表すことにします。
第nセクションまでの情報によってエラーの全貌が把握できる場合、第n+1セクション以降の値は無視すればよいです。
例えば、第1セクションが0なら第2以降のセクションは読むまでもありません。
以下、各セクションの表す内容を示します。
< 第1セクション >
0 : エラー無し
1 : エラー有り
< 第2セクション >
1 : 文法エラー
2 : 定義域エラー
3 : 数値的規則エラー
< 第3セクション >
-1 : 0〜61のどれにも当てはまらないエラー
0 : 下記関数以外での0除算エラー
30 : sin
31 : cos
32 : tan
33 : asin
34 : acos
35 : atan
36 : deg2rad
37 : rad2deg
40 : sqrt
41 : pow
42 : log
50 : limit
51 : max
52 : min
53 : abs
54 : floor
55 : int
56 : roundup
57 : round
58 : ceil
60 : perm
61 : combi
例えば、
acos(2) に対してコード 1.2.34
sin)0( に対してコード 1.1.30
5/0 に対してコード 1.2.0
が返ります。
< 例外 >
・limit関数
「最小値」,「最大値」が逆転していてもエラーにはなりません。
逆転している場合はHSP標準のの limitf関数 と同じ動作になります。
すなわち、最大値のチェック → 最小値のチェック の順で処理されます。
(例) limitf(2,4,3) の結果は 3