組込み関数(MAXNUMとEPS)

maxnum関数
MAXNUM   最大の正の数
 MAXNUMは,これより大きいと桁あふれのエラーになる限界。
 十進モードのとき,MAXNUMの値は1E99。
 2進モードでは,およそ1.8E308。
 10進1000桁モードでは,MAXNUM=1E1008。
<備考> MAXNUMは予約語
<Note> 有理数モードではMAXNUMは未定義(使用すると翻訳時にエラーになる)。

eps関数
EPS(x)
 EPS(x)は,xの前後の数との差の絶対値のうち大きいほう。 ただし,それがEPS(0)より小さいときはEPS(0)。
 EPS関数の値は,指定された数値の前後での数値の'分解能'を意味する。すなわち,これより細かく数値を扱うことができない限度である。
 JISでは定義が明確ではないが,本BASICでは数値変数の精度を基準に定義している。
 本BASICでは有効数字の桁数は15桁なので,1以上10未満の数値xに対して EPS(x) = 1E-14となる。
 EPS(0)は最小の正の数。本BASICでは,EPS(0)=1E-99。これより絶対値の小さい数値を数値変数に代入すると,0になる。
 x≠0のとき,EPS関数を指数・対数を用いて表現すると,
 EPS(x)=MAX(10^(INT(LOG10(ABS(x))-14)),1E-99)
となる。
<Note> arithmetic Nativeのときは, EPS(0)=2^(-1074)≒4.94E-324で, x≠0のとき, EPS(x)MAX(2^(INT(LOG2(ABS(x))-52)),EPS(0))に相当する。

<Note>
10進1000桁モードのとき,EPS(0)=1E-1017。
EPS関数は,有理数モードでは使えない。