このマニュアルは既にメンテナンスが終了したバージョンの Ruby を対象としています。 最新版のマニュアルへ

Ruby 2.7.0 リファレンスマニュアル

module BigMath

要約

BigDecimalを使った数学的な機能を提供するモジュールです。

目次

モジュール関数
追加されるメソッド

モジュール関数

exp(x, prec) -> BigDecimal[permalink][rdoc]

x の指数関数を prec で指定した精度で計算します。

x に正の無限大を指定した場合は正の無限大を返します。負の無限大を指定した場合には 0 を返します。NaN を指定した場合には NaNを返します。

[PARAM] x:
計算対象の数値を IntegerBigDecimalFloatRationalオブジェクトのいずれかで指定します。
[PARAM] prec:
計算結果の精度を指定します。
[EXCEPTION] ArgumentError:
x に IntegerBigDecimalFloatRational以外のオブジェクトを指定した場合に発生します。
[EXCEPTION] ArgumentError:
prec に 0 以下の数値が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::exp(BigDecimal('1'), 10) #=> 0.2718281828e1
log(x, prec) -> BigDecimal[permalink][rdoc]

x の自然対数を prec で指定した精度で計算します。

x に無限大を指定した場合は無限大を返します。NaN を指定した場合には NaN を返します。

[PARAM] x:
計算対象の数値を IntegerFloatRationalBigDecimal オブジェクトのいずれかで指定します。
[PARAM] prec:
計算結果の精度を指定します。
[EXCEPTION] Math::DomainError:
x に 0 以下の数値か Complex オブジェクトが指定された場合に発生します。
[EXCEPTION] ArgumentError:
prec に 0 以下の数値が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::log(BigDecimal('2'), 10) #=> 0.693147180559945309417232112588603776354688e0

追加されるメソッド

E(prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]

自然対数の底 e を prec で指定した精度で計算します。

[PARAM] prec:
計算結果の精度。
[EXCEPTION] ArgumentError:
prec に 0 以下が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::E(2)  #=> 0.27e1
puts BigMath::E(4)  #=> 0.2718e1
puts BigMath::E(10) #=> 0.2718281828e1
PI(prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]

円周率を prec で指定した精度で計算します。

[PARAM] prec:
計算結果の精度。
[EXCEPTION] ArgumentError:
prec に 0 以下が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::PI(2)  #=> 0.31415926535897932384671233672993238432e1
puts BigMath::PI(5)  #=> 0.31415926535897932384627534923029509162e1
puts BigMath::PI(10) #=> 0.3141592653589793238462643388813853786957412e1
atan(x, prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]

x の逆正接関数を prec で指定した精度で計算します。単位はラジアンです。 x に無限大や NaN を指定した場合には NaN を返します。

[PARAM] x:
計算対象の BigDecimal オブジェクト。単位はラジアン。
[PARAM] prec:
計算結果の精度。
[EXCEPTION] ArgumentError:
x の絶対値が1以上の場合に発生します。
[EXCEPTION] ArgumentError:
prec に 0 以下が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::atan(BigDecimal('0.5'), 10) #=> 0.463647609000806116214256237466868871528608e0

注意

x の絶対値を 0.9999 のような 1 に近すぎる値にすると計算結果が収束しない可能性があります。

cos(x, prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]

x の余弦関数を prec で指定した精度で計算します。単位はラジアンです。x に無限大や NaN を指定した場合には NaN を返します。

[PARAM] x:
計算対象の BigDecimal オブジェクト。単位はラジアン。
[PARAM] prec:
計算結果の精度。
[EXCEPTION] ArgumentError:
prec に 0 以下が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::cos(BigDecimal('0.5'), 10) #=> 0.8775825618903727161162815826327690580439923e0
sin(x, prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]

x の正弦関数を prec で指定した精度で計算します。単位はラジアンです。x に無限大や NaN を指定した場合には NaN を返します。

[PARAM] x:
計算対象の BigDecimal オブジェクト。単位はラジアン。
[PARAM] prec:
計算結果の精度。
[EXCEPTION] ArgumentError:
prec に 0 以下が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::sin(BigDecimal('0.5'), 10) #=> 0.479425538604203000273287935689073955184741e0
sqrt(x, prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]

x の平方根を prec で指定した精度で計算します。

[PARAM] x:
平方根を求める数。
[PARAM] prec:
計算結果の精度。
[EXCEPTION] FloatDomainError:
x に 0 以下、もしくは NaN が指定された場合に発生します。
[EXCEPTION] ArgumentError:
prec に 0 未満が指定された場合に発生します。
require "bigdecimal/math"

puts BigMath::sqrt(BigDecimal('2'), 10) #=> 0.1414213562373095048666666667e1