Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


数学用の呼び出し可能サービスの使用

ほとんどの COBOL 組み込み関数には、同じ結果を得るのに使用できる、対応する数学用の呼び出し可能サービスがあります。

デフォルト・オプション ARITH(COMPAT) を使用してコンパイルすると、COBOL 浮動小数点組み込み関数は長精度 (64 ビット) の結果を戻します。オプション ARITH(EXTEND) を使用してコンパイルすると、COBOL 浮動小数点組み込み関数 (RANDOM は例外) は拡張精度 (128 ビット) の結果を戻します。

例えば (以下の表の最初の行を考慮します)、ARITH(COMPAT) を使用してコンパイルした場合、CEESDACS は ACOS と同じ結果を戻します。 ARITH(EXTEND) を使用してコンパイルした場合は、CEESQACS が ACOS と同じ結果を戻します。

表 1. 演算組み込み関数と呼び出し可能サービスの互換性
COBOL 組み込み関数 対応する長精度言語環境プログラム呼び出し可能サービス 対応する拡張精度言語環境プログラム呼び出し可能サービス 組み込み関数と呼び出し可能サービスで結果が同じか
ACOS CEESDACS CEESQACS はい
ASIN CEESDASN CEESQASN はい
ATAN CEESDATN CEESQATN はい
COS CEESDCOS CEESQCOS はい
LOG CEESDLOG CEESQLOG はい
LOG10 CEESDLG1 CEESQLG1 はい
RANDOM1 CEERAN0 なし いいえ
REM CEESDMOD CEESQMOD はい
SIN CEESDSIN CEESQSIN はい
SQRT CEESDSQT CEESQSQT はい
TAN CEESDTAN CEESQTAN はい
  1. RANDOM は、ARITH(EXTEND) を使用してコンパイルし、31 ビットの引数を渡した場合でも、長精度 (64 ビット) 浮動小数点結果を戻します。

RANDOM 組み込み関数と CEERAN0 サービスはともに、0 から 1 の範囲の乱数を生成します。ただし、それぞれが独自のアルゴリズムを使用するため、RANDOM と CEERAN0 は同じシードから異なる乱数を生成します。

同じ結果をもたらす関数であっても、組み込み関数と言語環境プログラム呼び出し可能サービスの使用法は異なります。 組み込み関数の引数に要求されるデータ型に関する規則の方が、制限が緩くなっています。数字組み込み関数の場合には、任意の数値データ型の引数を使用することができます。しかし、CALL ステートメントを使用して言語環境プログラム呼び出し可能サービスを呼び出す場合は、パラメーターをそのサービスで必要な数値データ型 (通常は COMP-1 または COMP-2) と一致させなければなりません。

組み込み関数と言語環境プログラム呼び出し可能サービスのエラー処理は異なる場合があります。 言語環境プログラムの数学サービスを呼び出すときに明示的なフィードバック・トークンを渡す場合は、それぞれの呼び出しの後でそのフィードバック・コードを検査し、エラーを処理するための明示的なアクションを取らなければなりません。 しかし、フィードバック・トークンを使用して明示的に OMITTED を呼び出した場合は、トークンを検査する必要はありません。エラーがあれば、言語環境プログラムが自動的にエラーを通知します。

関連参照
ARITH


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)