Real 組込みオブジェクト

この章では組込み変数領域が初めから備えている Real 組込みオブジェクトを定義する。

Real オブジェクトは、スクリプトで扱われる実数を表すオブジェクトである。

Real のメンバ

prototype
Number.prototype を準プロトタイプとするオブジェクト。
name
文字列オブジェクト "Real"

Real の内部メンバ

$prototype
Type.prototype

Real オブジェクトのプロパティ

Real オブジェクトは以下のプロパティを持つ。ただし、 Real.prototype やその準プロトタイプのプロパティが スクリプトの実行によって変更された場合は、この限りではない。

$get$abs メソッド
Math$abs メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の結果を返す:
  1. v の表す値が 0 以上なら、[[v]]
  2. v の表す値が負なら、引数に反数演算を行った結果
$get$abs2 メソッド
Math$abs2 メソッド
次の関数生成式を評価して得られるような関数オブジェクト: @{ @this * @this }
Math$re メソッド
Math$conj メソッド
次の関数生成式を評価して得られるような関数オブジェクト: @{ @this }
Math$im メソッド
次の関数生成式を評価して得られるような関数オブジェクト: @{ 0 }
$get$arg メソッド
Math$arg メソッド
次の関数生成式を評価して得られるような関数オブジェクト: @{ Math.atan[@this, 0] }
$get$sign メソッド
Math$sign メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v と整数 0 を表す Integer オブジェクトに対して比較演算 $equal を行い、その結果が初期の Boolean.true ならば [[整数 0 を表す Integer オブジェクト]] を返す。
  2. v の表す値が正なら、[[整数 1 を表す Integer オブジェクト]] を返す。
  3. v の表す値が負なら、[[整数 −1 を表す Integer オブジェクト]] を返す。
$get$exp メソッド
Math$exp メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[1 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[1 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[ev の値を表す Float オブジェクト]] を返す。ただし、結果の相対精度は v の絶対精度とする。
$get$log メソッド
Math$log メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. 実数の比較によって v < 0 ならば、[[NaN オブジェクト]] を返す。
  2. 実数の比較によって v = 0 ならば、[[負の無限大を表す Infinity オブジェクト]] を返す。
  3. v が 1 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  4. v が 1 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  5. さもなくば、[[logev の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は v の相対精度とする。
$get$sin メソッド
Math$sin メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[sinv の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は 2 ap(v) + log102 と ap(v) − log10|cosv| の最小値とする。
$get$cos メソッド
Math$cos メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[1 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[1 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[cosv の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は 2 ap(v) + log102 と ap(v) − log10|sinv| の最小値とする。
$get$tan メソッド
Math$tan メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. 実数の比較によって、(2 n + 1/2) π を表す絶対精度が無限大の Float オブジェクトと v とを比較した結果が 「=」となるような整数 n が存在するならば、[[正の無限大を表す Infinity オブジェクト]] を返す。
  4. 実数の比較によって、(2 n + 3/2) π を表す絶対精度が無限大の Float オブジェクトと v とを比較した結果が 「=」となるような整数 n が存在するならば、[[負の無限大を表す Infinity オブジェクト]] を返す。
  5. さもなくば、引数を v として、[[tanv の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) + 2 log10|cosv| とする。
$get$asin メソッド
Math$asin メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. 引数が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. 引数が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. |v| > 1 ならば、[[NaN オブジェクト]] を返す。
  4. [[sin−1v の値を表す Float オブジェクト]] を返す。ただし、−π / 2 ≤ sin−1vπ / 2 であって、結果の絶対精度は (ap(v) − log104) / 2 と ap(v) + log10(1 − v2) / 2 の最大値とする。
$get$acos メソッド
Math$acos メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. 引数が 1 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. 引数が 1 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. |v| > 1 ならば、[[NaN オブジェクト]] を返す。
  4. [[cos−1v の値を表す Float オブジェクト]] を返す。ただし、0 ≤ cos−1vπ であって、結果の絶対精度は (ap(v) − log104) / 2 と ap(v) + log10(1 − v2) / 2 の最大値とする。
$get$atan メソッド
Math$atan メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[tan−1v の値を表す Float オブジェクト]] を返す。ただし、−π / 2 < tan−1v < π / 2 であって、結果の絶対精度は ap(v) + log10(1 + v2) とする。
$get$sinh メソッド
Math$sinh メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[sinhv の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) − log10(coshv) とする。
$get$cosh メソッド
Math$cosh メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[1 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[1 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[coshv の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は 2 ap(v) + log102 と ap(v) − log10|sinhv| の最小値とする。
$get$tanh メソッド
Math$tanh メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[tanhv の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) + 2 log10(coshv) とする。
$get$asinh メソッド
Math$asinh メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. さもなくば、[[sinh−1v の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) + log10(v2 + 1) / 2 とする。
$get$acosh メソッド
Math$acosh メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 1 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 1 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. v < 1 ならば、[[NaN オブジェクト]] を返す。
  4. [[cosh−1v の値を表す Float オブジェクト]] を返す。ただし、0 ≤ cosh−1v であって、結果の絶対精度は (ap(v) − log102) / 2 と ap(v) + log10(v2 − 1) / 2 の最大値とする。
$get$atanh メソッド
Math$atanh メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. v が 0 を表す Integer オブジェクトならば、[[0 を表す Integer オブジェクト]] を返す。
  2. v が 0 を表す Rational オブジェクトならば、[[0 を表す Integer オブジェクトまたは Rational オブジェクト]] を返す。
  3. 実数の比較によって、整数 1 を表す Integer オブジェクトと v とを比較する。 その結果が「=」ならば、同様に整数 0 を表す Integer オブジェクトと v とを比較する。そしてその結果が「<」ならば [[正の無限大を表す Infinity オブジェクト]] を返し、さもなくば [[NaN オブジェクト]] を返す。
  4. 実数の比較によって、整数 −1 を表す Integer オブジェクトと v とを比較する。 その結果が「=」ならば、同様に整数 0 を表す Integer オブジェクトと v とを比較する。そしてその結果が「>」ならば [[負の無限大を表す Infinity オブジェクト]] を返し、さもなくば [[NaN オブジェクト]] を返す。
  5. [[tanh−1v の値を表す Float オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) + log10(1 − v2) とする。
$get$floor メソッド
Math$floor メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. ap(v) ≥ 0 ならば、[[v 以下の最大の整数を表す Integer オブジェクト]] を返す。
  2. [[NaN オブジェクト]] を返す。
$get$ceil メソッド
Math$ceil メソッド
0-ary メソッド。Real オブジェクト v を @this 値として関数として呼びだされると、次の動作を行う:
  1. ap(v) ≥ 0 ならば、[[v 以上の最小の整数を表す Integer オブジェクト]] を返す。
  2. [[NaN オブジェクト]] を返す。

上記各メソッドの呼出しにおいて、@this 値が Real オブジェクトでない場合の結果は規定しない。

上記計算における e や ap 等の定義は Math での定義に従う。

Real の関数としての呼出し

Real は関数として呼出し可能であり、 関数として呼出されると新しい UnsupportedOperationError のインスタンスを投げる。

© 2006-2007 Magicant