Real 組込みオブジェクトこの章では組込み変数領域が初めから備えている
Real 組込みオブジェクトを定義する。
Real
オブジェクトは、スクリプトで扱われる実数を表すオブジェクトである。
Real のメンバprototypeNumber.prototype
を準プロトタイプとするオブジェクト。name"Real"Real の内部メンバ$prototypeType.prototypeReal オブジェクトのプロパティReal オブジェクトは以下のプロパティを持つ。ただし、
Real.prototype やその準プロトタイプのプロパティが
スクリプトの実行によって変更された場合は、この限りではない。
$get$abs メソッドMath$abs メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の結果を返す:
$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 メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトに対して比較演算 $equal
を行い、その結果が初期の Boolean.true ならば [[整数 0 を表す Integer
オブジェクト]] を返す。Integer
オブジェクト]] を返す。Integer
オブジェクト]] を返す。$get$exp メソッドMath$exp メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[1
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[1
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float オブジェクト]] を返す。ただし、結果の相対精度は
v の絶対精度とする。$get$log メソッドMath$log メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
NaN オブジェクト]] を返す。Infinity オブジェクト]] を返す。Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float オブジェクト]]
を返す。ただし、結果の絶対精度は v の相対精度とする。$get$sin メソッドMath$sin メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float オブジェクト]]
を返す。ただし、結果の絶対精度は 2 ap(v) + log102 と
ap(v) − log10|cosv| の最小値とする。$get$cos メソッドMath$cos メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[1
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[1
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float オブジェクト]]
を返す。ただし、結果の絶対精度は 2 ap(v) + log102 と
ap(v) − log10|sinv| の最小値とする。$get$tan メソッドMath$tan メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float オブジェクトと v とを比較した結果が
「=」となるような整数 n が存在するならば、[[正の無限大を表す
Infinity オブジェクト]] を返す。Float オブジェクトと v とを比較した結果が
「=」となるような整数 n が存在するならば、[[負の無限大を表す
Infinity オブジェクト]] を返す。Float オブジェクト]] を返す。ただし、結果の絶対精度は
ap(v) + 2 log10|cosv| とする。$get$asin メソッドMath$asin メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0 を表す
Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0 を表す
Integer オブジェクトまたは Rational オブジェクト]]
を返す。NaN オブジェクト]]
を返す。Float
オブジェクト]] を返す。ただし、−π / 2 ≤
sin−1v ≤ π / 2
であって、結果の絶対精度は (ap(v) − log104) / 2 と
ap(v) + log10(1 − v2) / 2
の最大値とする。$get$acos メソッドMath$acos メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0 を表す
Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0 を表す
Integer オブジェクトまたは Rational オブジェクト]]
を返す。NaN オブジェクト]]
を返す。Float
オブジェクト]] を返す。ただし、0
≤ cos−1v ≤ π
であって、結果の絶対精度は (ap(v) − log104) / 2 と
ap(v) + log10(1 − v2) / 2
の最大値とする。$get$atan メソッドMath$atan メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、−π / 2 <
tan−1v < π / 2
であって、結果の絶対精度は ap(v) +
log10(1 + v2) とする。$get$sinh メソッドMath$sinh メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、結果の絶対精度は
ap(v) − log10(coshv) とする。$get$cosh メソッドMath$cosh メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[1
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[1
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、結果の絶対精度は
2 ap(v) + log102 と
ap(v) − log10|sinhv| の最小値とする。$get$tanh メソッドMath$tanh メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、結果の絶対精度は
ap(v) + 2 log10(coshv) とする。$get$asinh メソッドMath$asinh メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) +
log10(v2 + 1) / 2 とする。$get$acosh メソッドMath$acosh メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。NaN オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、0 ≤ cosh−1v
であって、結果の絶対精度は (ap(v) − log102) / 2 と
ap(v) + log10(v2 − 1) / 2
の最大値とする。$get$atanh メソッドMath$atanh メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクトならば、[[0
を表す Integer オブジェクト]] を返す。Rational オブジェクトならば、[[0
を表す Integer オブジェクトまたは Rational
オブジェクト]] を返す。Integer オブジェクトと v とを比較する。
その結果が「=」ならば、同様に整数 0 を表す Integer オブジェクトと
v とを比較する。そしてその結果が「<」ならば [[正の無限大を表す
Infinity オブジェクト]] を返し、さもなくば [[NaN
オブジェクト]] を返す。Integer オブジェクトと v とを比較する。
その結果が「=」ならば、同様に整数 0 を表す Integer オブジェクトと
v とを比較する。そしてその結果が「>」ならば [[負の無限大を表す
Infinity オブジェクト]] を返し、さもなくば [[NaN
オブジェクト]] を返す。Float
オブジェクト]] を返す。ただし、結果の絶対精度は ap(v) +
log10(1 − v2) とする。$get$floor メソッドMath$floor メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクト]] を返す。NaN オブジェクト]] を返す。$get$ceil メソッドMath$ceil メソッドReal オブジェクト v を @this
値として関数として呼びだされると、次の動作を行う:
Integer オブジェクト]] を返す。NaN オブジェクト]] を返す。上記各メソッドの呼出しにおいて、@this 値が Real
オブジェクトでない場合の結果は規定しない。
上記計算における e や ap 等の定義は Math での定義に従う。
Real の関数としての呼出しReal は関数として呼出し可能であり、
関数として呼出されると新しい
UnsupportedOperationError
のインスタンスを投げる。