module CMath

要約

複素数演算をサポートするモジュールです。

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]

z の逆余弦関数の値をラジアンで返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
acos!(x) -> Float[permalink][rdoc]

実数 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]

z の逆双曲線余弦関数の値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
acosh!(x) -> Float[permalink][rdoc]

実数 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]

z の逆正弦関数の値をラジアンで返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
asin!(x) -> Float[permalink][rdoc]

実数 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]

z の逆双曲線正弦関数の値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
asinh!(x) -> Float[permalink][rdoc]

実数 x の逆双曲線正弦関数の値を返します。Math.#asinh のエイリアスです。

[PARAM] x:
実数
[EXCEPTION] TypeError:
x に数値以外を指定した場合に発生します。
[EXCEPTION] RangeError:
x に実数以外の数値を指定した場合に発生します。

[SEE_ALSO] Math.#asinh

atan(z) -> Float | Complex[permalink][rdoc]

z の逆正接関数の値をラジアンで返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
atan!(x) -> Float[permalink][rdoc]

実数 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]

y / x の逆正接関数の値を返します。

[PARAM] y:
数値
[PARAM] x:
数値
[EXCEPTION] TypeError:
引数のどちらかに数値以外を指定した場合に発生します。
atan2!(y, x) -> Float[permalink][rdoc]

実数 y / x の逆正接関数の値を返します。Math.#atan2 のエイリアスです。

[PARAM] y:
実数。
[PARAM] x:
実数。
[RETURN]
返される値の範囲は [-π, π] です。
[EXCEPTION] TypeError:
引数のどちらかに数値以外を指定した場合に発生します。
[EXCEPTION] RangeError:
引数のどちらかに数値以外を指定した場合に発生します。

[SEE_ALSO] Math.#atan2

atanh(z) -> Float | Complex[permalink][rdoc]

z の逆双曲線正接関数の値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
atanh!(x) -> Float[permalink][rdoc]

実数 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]

z の立方根の内、主値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。


require "cmath"
CMath.cbrt(-8)# => (1.0000000000000002+1.7320508075688772i)

[SEE_ALSO] Complex#**

cbrt!(x) -> Float[permalink][rdoc]

実数 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]

z の余弦関数の値を返します。

[PARAM] z:
数値(ラジアンで与えます)
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
cos!(x) -> Float[permalink][rdoc]

実数 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]

z の双曲線余弦関数の値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
cosh!(x) -> Float[permalink][rdoc]

実数 x の双曲線余弦関数の値を返します。Math.#cosh のエイリアスです。

[PARAM] x:
実数
[EXCEPTION] TypeError:
x に数値以外を指定した場合に発生します。
[EXCEPTION] RangeError:
x に実数以外の数値を指定した場合に発生します。

[SEE_ALSO] Math.#cosh

exp(z) -> Float | Complex[permalink][rdoc]

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]

実数 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]
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]
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]

z の常用対数を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
log10!(x) -> Float[permalink][rdoc]

実数 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]

2 を底とする z の対数 (binary logarithm) を返します。

[PARAM] z:
真数を指定します。
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
log2!(x) -> Float[permalink][rdoc]

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]

z の正弦関数の値を返します。

[PARAM] z:
数値(ラジアンで与えます)
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
sin!(x) -> Float[permalink][rdoc]

実数 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]

z の双曲線正弦関数の値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
sinh!(x) -> Float[permalink][rdoc]

実数 x の双曲線正弦関数の値を返します。Math.#sinh のエイリアスです。

[PARAM] x:
実数
[EXCEPTION] TypeError:
x に数値以外を指定した場合に発生します。
[EXCEPTION] RangeError:
x に実数以外の数値を指定した場合に発生します。

[SEE_ALSO] Math.#sinh

sqrt(z) -> Float | Complex[permalink][rdoc]

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]

実数 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]

z の正接関数の値を返します。

[PARAM] z:
数値(ラジアンで与えます)
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
tan!(x) -> Float[permalink][rdoc]

実数 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]

z の双曲線正接関数の値を返します。

[PARAM] z:
数値
[EXCEPTION] TypeError:
z に数値以外を指定した場合に発生します。
tanh!(x) -> Float[permalink][rdoc]

実数 x の双曲線正接関数の値を返します。Math.#tanh のエイリアスです。

[PARAM] x:
実数
[EXCEPTION] TypeError:
x に数値以外を指定した場合に発生します。
[EXCEPTION] RangeError:
x に実数以外の数値を指定した場合に発生します。

[SEE_ALSO] Math.#tanh