要約
複素数演算をサポートするモジュールです。
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