Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > cmathライブラリ > CMathモジュール

module CMath

クラスの継承リスト: CMath < Math

要約

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

Math モジュールの複素数版です。同名のメソッドを複素数対応します。 従来の計算結果が必要な場合は、「メソッド名!」の形式で呼び出します。

例:

require "cmath"
CMath.sqrt(-9)  # => (0+3.0i)
CMath.sqrt!(4)  # => 2.0

目次

モジュール関数
acos acos! acosh acosh! asin asin! asinh asinh! atan atan! atan2 atan2! atanh atanh! cbrt cbrt! cos cos! cosh cosh! exp exp! log log! log10 log10! log2 log2! sin sin! sinh sinh! sqrt sqrt! tan tan! tanh tanh!

モジュール関数

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

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

[PARAM] 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:
数値
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:
数値
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:
数値
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:
数値
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:
数値
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:
数値
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:
数値
require "cmath"
CMath.cbrt(-8)    # => (1.0000000000000002+1.7320508075688772i)

[注意] 1.9.2 以下では負の実数を引数に与えると、主値以外の立方根(実数解)を 返すバグがあります。

[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:
数値
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:
数値
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 乗する数を指定します。

例:

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:
底を指定します。省略した場合は自然対数を計算します。

例:

require "cmath"
CMath.log(Complex(0, 0)) # => -Infinity+0.0i
CMath.log(0)             # => -Infinity

[注意] 1.9.2 以下では z に 0+0i を与えると Math::DomainError が発 生するバグがあります。

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]

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

[PARAM] x:
数値
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:
真数を指定します。
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:
数値
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:
数値
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:
数値

例:

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:
数値
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:
数値
tanh!(x) -> Float[permalink][rdoc]

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

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

[SEE_ALSO] Math.#tanh