Real
組込みオブジェクトこの章では組込み変数領域が初めから備えている
Real
組込みオブジェクトを定義する。
Real
オブジェクトは、スクリプトで扱われる実数を表すオブジェクトである。
Real
のメンバprototype
Number.prototype
を準プロトタイプとするオブジェクト。name
"Real"
Real
の内部メンバ$prototype
Type.prototype
Real
オブジェクトのプロパティ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
のインスタンスを投げる。