要約
BigDecimalを使った数学的な機能を提供するモジュールです。
目次
モジュール関数
exp(x, prec) -> BigDecimal[permalink][rdoc]-
x の指数関数を prec で指定した精度で計算します。
x に正の無限大を指定した場合は正の無限大を返します。負の無限大を指定した場合には 0 を返します。NaN を指定した場合には NaNを返します。
- [PARAM] x:
- 計算対象の数値を Fixnum、Bignum、BigDecimal、 Float、Rationalオブジェクトのいずれかで指定します。
- [PARAM] prec:
- 計算結果の精度を指定します。
- [EXCEPTION] ArgumentError:
- x に Fixnum、Bignum、BigDecimal、 Float、Rational以外のオブジェクトを指定した場合に発生します。
- [EXCEPTION] ArgumentError:
- prec に 0 以下の数値が指定された場合に発生します。
例:
require "bigdecimal/math" puts BigMath::exp(BigDecimal.new('1'), 10) #=> 0.2718281828E1 log(x, prec) -> BigDecimal[permalink][rdoc]-
x の自然対数を prec で指定した精度で計算します。
x に無限大を指定した場合は無限大を返します。NaN を指定した場合には NaN を返します。
- [PARAM] x:
- 計算対象の数値を Fixnum、Bignum、Float、 Rational、BigDecimal オブジェクトのいずれかで指定します。
- [PARAM] prec:
- 計算結果の精度を指定します。
- [EXCEPTION] Math::DomainError:
- x に 0 以下の数値か Complex オブジェクトが指定された場合に発生します。
- [EXCEPTION] ArgumentError:
- prec に 0 以下の数値が指定された場合に発生します。
例:
require "bigdecimal/math" puts BigMath::log(BigDecimal.new('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(10) #=> 0.271828182845904523536028752390026306410273E1
PI(prec) -> BigDecimal[permalink][rdoc] [added by bigdecimal/math]-
円周率を prec で指定した精度で計算します。
- [PARAM] prec:
- 計算結果の精度。
- [EXCEPTION] ArgumentError:
- prec に 0 以下が指定された場合に発生します。
例:
require "bigdecimal/math" puts BigMath::PI(10) #=> 0.314159265359224236485984067E1
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.new('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.new('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.new('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.new('2'), 10) #=> 0.14142135623730950488016883515E1