要約
複素数演算をサポートするモジュールです。
Math モジュールの複素数版です。同名のメソッドを複素数対応します。従来の計算結果が必要な場合は、「メソッド名!」の形式で呼び出します。
require "cmath"
# 複素数の範囲の立方根(の主値)= exp(1/3 πi)
CMath.cbrt(-1) # => (0.5000000000000001+0.8660254037844386i)
# 実数の範囲の立方根
Math.cbrt(-1) # => -1.0
include CMath
# レシーバー無しで使える
cbrt(-1) # => (0.5000000000000001+0.8660254037844386i)
# cbrt! は Math.cbrt のエイリアス
cbrt!(-1) # => -1.0
目次
- モジュール関数
継承しているメソッド
モジュール関数
acos(z) -> Float | Complex
[permalink][rdoc][edit]-
z の逆余弦関数の値をラジアンで返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
acos!(x) -> Float
[permalink][rdoc][edit]-
実数 x の逆余弦関数の値をラジアンで返します。Math.#acos のエイリアスです。
- [PARAM] x:
- -1.0 <= x <= 1 の範囲内の実数
- [RETURN]
- 返される値の範囲は [0, +π] です。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] Math::DomainError:
- x に範囲外の実数を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#acos
acosh(z) -> Float | Complex
[permalink][rdoc][edit]-
z の逆双曲線余弦関数の値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
acosh!(x) -> Float
[permalink][rdoc][edit]-
実数 x の逆双曲線余弦関数の値を返します。Math.#acosh のエイリアスです。
- [PARAM] x:
- x >= 1 の範囲の実数。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] Math::DomainError:
- x に範囲外の実数を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#acosh
asin(z) -> Float | Complex
[permalink][rdoc][edit]-
z の逆正弦関数の値をラジアンで返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
asin!(x) -> Float
[permalink][rdoc][edit]-
実数 x の逆正弦関数の値をラジアンで返します。Math.#asin のエイリアスです。
- [PARAM] x:
- -1.0 <= x <= 1 の範囲内の実数。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] Math::DomainError:
- x に範囲外の実数を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#asin
asinh(z) -> Float | Complex
[permalink][rdoc][edit]-
z の逆双曲線正弦関数の値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
asinh!(x) -> Float
[permalink][rdoc][edit]-
実数 x の逆双曲線正弦関数の値を返します。Math.#asinh のエイリアスです。
- [PARAM] x:
- 実数
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#asinh
atan(z) -> Float | Complex
[permalink][rdoc][edit]-
z の逆正接関数の値をラジアンで返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
atan!(x) -> Float
[permalink][rdoc][edit]-
実数 x の逆正接関数の値をラジアンで返します。Math.#atan のエイリアスです。
- [PARAM] x:
- 実数。
- [RETURN]
- 返される値の範囲は [-π/2, +π/2] です。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#atan
atan2(y, x) -> Float | Complex
[permalink][rdoc][edit]-
y / x の逆正接関数の値を返します。
- [PARAM] y:
- 数値
- [PARAM] x:
- 数値
- [EXCEPTION] TypeError:
- 引数のどちらかに数値以外を指定した場合に発生します。
atan2!(y, x) -> Float
[permalink][rdoc][edit]-
実数 y / x の逆正接関数の値を返します。Math.#atan2 のエイリアスです。
- [PARAM] y:
- 実数。
- [PARAM] x:
- 実数。
- [RETURN]
- 返される値の範囲は [-π, π] です。
- [EXCEPTION] TypeError:
- 引数のどちらかに数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- 引数のどちらかに数値以外を指定した場合に発生します。
[SEE_ALSO] Math.#atan2
atanh(z) -> Float | Complex
[permalink][rdoc][edit]-
z の逆双曲線正接関数の値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
atanh!(x) -> Float
[permalink][rdoc][edit]-
実数 x の逆双曲線正接関数の値を返します。Math.#atanh のエイリアスです。
- [PARAM] x:
- -1 < x < 1 の実数。
- [RETURN]
- 実数。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] Math::DomainError:
- x に範囲外の実数を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#atanh
cbrt(z) -> Float | Complex
[permalink][rdoc][edit]-
z の立方根の内、主値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
require "cmath" CMath.cbrt(-8)# => (1.0000000000000002+1.7320508075688772i)
[SEE_ALSO] Complex#**
cbrt!(x) -> Float
[permalink][rdoc][edit]-
実数 x の立方根を返します。Math.#cbrt のエイリアスです。
- [PARAM] x:
- 実数
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
require "cmath" CMath.cbrt!(8.0)# => 2.0 CMath.cbrt!(-8.0) # => -2.0
[SEE_ALSO] Math.#cbrt
cos(z) -> Float | Complex
[permalink][rdoc][edit]-
z の余弦関数の値を返します。
- [PARAM] z:
- 数値(ラジアンで与えます)
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
cos!(x) -> Float
[permalink][rdoc][edit]-
実数 x の余弦関数の値を返します。Math.#cos のエイリアスです。
- [PARAM] x:
- 実数(ラジアンで与えます)
- [RETURN]
- [-1, 1] の実数
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
require "cmath" CMath.cos!(0 * Math::PI / 4) # => 1.0 CMath.cos!(1 * Math::PI / 4) # => 0.7071067811865476 CMath.cos!(4 * Math::PI / 4) # => -1.0
[SEE_ALSO] Math.#cos
cosh(z) -> Float | Complex
[permalink][rdoc][edit]-
z の双曲線余弦関数の値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
cosh!(x) -> Float
[permalink][rdoc][edit]-
実数 x の双曲線余弦関数の値を返します。Math.#cosh のエイリアスです。
- [PARAM] x:
- 実数
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#cosh
exp(z) -> Float | Complex
[permalink][rdoc][edit]-
z の指数関数(Math::E の z 乗)の値を返します。
- [PARAM] z:
- Math::E を z 乗する数を指定します。
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
require "cmath" CMath.exp(Complex(0, 0))# => (1.0+0.0i) CMath.exp(Complex(0, Math::PI)) # => (-1.0+1.2246063538223773e-16i) CMath.exp(Complex(0, Math::PI / 2.0)) # => (6.123031769111886e-17+1.0i)
exp!(x) -> Float
[permalink][rdoc][edit]-
実数 x の指数関数(Math::E の x 乗)の値を返します。 Math.#exp のエイリアスです。
- [PARAM] x:
- Math::E を x 乗する数を実数で指定します。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
require "cmath" CMath.exp!(0) # => 1 CMath.exp!(0.5) # => Math.sqrt(Math::E) CMath.exp!(1) # => Math::E CMath.exp!(2) # => Math::E ** 2
[SEE_ALSO] Math.#exp
log(z) -> Float | Complex
[permalink][rdoc][edit]log(z, b) -> Float | Complex
-
z の対数を返します。
- [PARAM] z:
- 真数を指定します。
- [PARAM] b:
- 底を指定します。省略した場合は自然対数を計算します。
- [EXCEPTION] TypeError:
- 引数のどちらかに数値以外を指定した場合に発生します。
require "cmath" CMath.log(Complex(0, 0)) # => -Infinity+0.0i CMath.log(0) # => -Infinity
log!(x) -> Float
[permalink][rdoc][edit]log!(x, b) -> Float
-
実数 x の対数を返します。Math.#log のエイリアスです。
- [PARAM] x:
- 真数を正の実数で指定します。
- [PARAM] b:
- 底を指定します。省略した場合は自然対数を計算します。
- [EXCEPTION] Math::DomainError:
- x が負の数である場合に発生します。
- [EXCEPTION] TypeError:
- 引数のどちらかに数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- 引数のどちらかに実数以外の数値を指定した場合に発生します。
require "cmath" CMath.log!(Math::E) # => 1.0 CMath.log!(1) # => 0.0 CMath.log!(100, 10) # => 2.0 CMath.log!(-1.0)# => Math::DomainError
[SEE_ALSO] Math.#log
log10(z) -> Float | Complex
[permalink][rdoc][edit]-
z の常用対数を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
log10!(x) -> Float
[permalink][rdoc][edit]-
実数 x の常用対数を返します。Math.#log10 のエイリアスです。
- [PARAM] x:
- 真数を正の実数で指定します。
- [EXCEPTION] Math::DomainError:
- x が負の数である場合に発生します。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#log10
log2(z) -> Float | Complex
[permalink][rdoc][edit]-
2 を底とする z の対数 (binary logarithm) を返します。
- [PARAM] z:
- 真数を指定します。
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
log2!(x) -> Float
[permalink][rdoc][edit]-
2 を底とする実数 x の対数 (binary logarithm) を返します。 Math.#log2のエイリアスです。
- [PARAM] x:
- 真数を正の実数で指定します。
- [EXCEPTION] Math::DomainError:
- x が負の数である場合に発生します。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#log2
sin(z) -> Float | Complex
[permalink][rdoc][edit]-
z の正弦関数の値を返します。
- [PARAM] z:
- 数値(ラジアンで与えます)
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
sin!(x) -> Float
[permalink][rdoc][edit]-
実数 x の正弦関数の値を返します。Math.#sin のエイリアスです。
- [PARAM] x:
- 実数(ラジアンで与えます)
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
require "cmath" CMath.sin!(0 * Math::PI / 4) # => 0.0 CMath.sin!(1 * Math::PI / 4) # => 0.7071067811865475 CMath.sin!(2 * Math::PI / 4) # => 1.0
[SEE_ALSO] Math.#sin
sinh(z) -> Float | Complex
[permalink][rdoc][edit]-
z の双曲線正弦関数の値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
sinh!(x) -> Float
[permalink][rdoc][edit]-
実数 x の双曲線正弦関数の値を返します。Math.#sinh のエイリアスです。
- [PARAM] x:
- 実数
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#sinh
sqrt(z) -> Float | Complex
[permalink][rdoc][edit]-
z の平方根を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
require "cmath" CMath.sqrt(-1) # => (0+1.0i) CMath.sqrt(1)# => 1.0 CMath.sqrt(Complex(0, 8))# => (2.0+2.0i)
sqrt!(x) -> Float
[permalink][rdoc][edit]-
実数 x の平方根を返します。Math.#sqrt のエイリアスです。
- [PARAM] x:
- 正の実数
- [EXCEPTION] Math::DomainError:
- x が負の数である場合に発生します。
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
require "cmath" CMath.sqrt!(4.0) # => 2.0 CMath.sqrt!(9.0) # => 3.0
[SEE_ALSO] Math.#sqrt
tan(z) -> Float | Complex
[permalink][rdoc][edit]-
z の正接関数の値を返します。
- [PARAM] z:
- 数値(ラジアンで与えます)
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
tan!(x) -> Float
[permalink][rdoc][edit]-
実数 x の正接関数の値を返します。Math.#tan のエイリアスです。
- [PARAM] x:
- 実数(ラジアンで与えます)
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
require "cmath" CMath.tan!(0 * Math::PI / 4) # => 0.0 CMath.tan!(1 * Math::PI / 4) # => 1.0 CMath.tan!(4 * Math::PI / 4) # => 0.0
[SEE_ALSO] Math.#tan
tanh(z) -> Float | Complex
[permalink][rdoc][edit]-
z の双曲線正接関数の値を返します。
- [PARAM] z:
- 数値
- [EXCEPTION] TypeError:
- z に数値以外を指定した場合に発生します。
tanh!(x) -> Float
[permalink][rdoc][edit]-
実数 x の双曲線正接関数の値を返します。Math.#tanh のエイリアスです。
- [PARAM] x:
- 実数
- [EXCEPTION] TypeError:
- x に数値以外を指定した場合に発生します。
- [EXCEPTION] RangeError:
- x に実数以外の数値を指定した場合に発生します。
[SEE_ALSO] Math.#tanh