ILE COBOL 解説書


中間結果の精度の計算

コンパイラーはアルゴリズムを使用して、中間結果用に確保された整数桁および小数桁の数を判別します。

以下に、中間結果用に確保される整数桁および小数桁の数をコンパイラーが判別する方法について説明します。 その中で次の省略語を使用します。

i
中間結果用に確保される整数桁の数。

d
中間結果用に確保される小数桁の数。

ROUNDED
ROUNDED オプションを使用する場合、より正確にするために、もう 1 つの整数または小数が、 必要であれば付け加えられることがあります。 最終結果だけが丸められます。中間結果は丸められません。 正確に丸めることができる最大桁数は 62 桁です。

dmax
特定のステートメントの中で、次のうちの最大のもの。

inner-dmax
関数の inner-dmax は次のうちの最大のものです。

outer-dmax
関数結果が、それ自身の評価の外側にある演算に対して、 どのような結果をもたらすかを決定する数 (たとえば、 その関数が算術式中のオペランドである、または他の関数への引数である場合)。

op1
生成された算術ステートメントの最初のオペランド。 除算では、op1 は除数です。

op2
生成された算術ステートメントの 2 番目のオペランド。 除算では、op2 は被除数です。

i1、i2
op1 と op2 のそれぞれの整数桁の数。

d1、d2
op1 または op2 用にそれぞれ定義された小数桁の数。

ir
生成された算術ステートメントまたは演算の処理から得られる中間結果フィールド。 中間結果は、ir1、ir2 等で表されます。 後続の中間結果が同じメモリー・ロケーションを共用することもあります。

COMPUTE ステートメントを使って、算術式での中間結果の使用方法を以下に示します。 この場合、次のステートメントは、

  COMPUTE Y = A + B * C - D / E + F ** G

以下のように置き換えられます。

F ** G
ir1 が生成される
MULTIPLY B BY C ir2 が生成される
DIVIDE E INTO D ir3 が生成される
ADD A TO ir2 ir4 が生成される
SUBTRACT ir3 FROM ir4 ir5 が生成される
ADD ir5 TO ir1 Y が生成される


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]