新しいコンパイラーは、数学組み込み関数 (SIN または COS など) を評価するため、および浮動小数点指数のために、言語環境プログラムで用意されているルーチンを呼び出します。 これらのルーチンは、OS PL/I V2R3 ライブラリーで用意されているルーチ ンよりも正確であるため、最後の桁が異なる結果を生成することがありま す。
この違いの例として、三角法の教科書の巻末に記載されているような表を 作成する次のプログラムについて見てみましょう。
trigtab: proc options(main);
dcl degrees fixed dec(5,1);
dcl minutes fixed dec(3,1);
do degrees = 0 to 359;
put skip edit( degrees ) ( f(5) );
do minutes = 0 to .9 by .1;
put edit( sind(degrees+minutes) ) ( f(9,4) );
end;
end;
end;
このプログラムの出力は次のようになります。
0 0.0000 0.0017 0.0035 0.0052 0.0070 ...
1 0.0175 0.0192 0.0209 0.0227 0.0244 ...
作成される表は、使用する数学ライブラリーによって異なりますが、その場合で も 5 種類の値しかありません。 例えば、言語環境プログラムより前の数学ライブラリーを使用している従来のコンパイラーでは、140.1 の結果は 0.6414 になりますが、言語環境プログラムの数学ライブラリーを使用している従来のコンパイラーでは、結果は 0.6415 になります。 新しいコンパイラーでは言語環境プログラムの数学ライブラリーのみが使用されるため、新しいコンパイラーでも結果は 0.6415 になります。