import "math"

mathパッケージは、基本的な定数と数学関数を提供します。

パッケージファイル

acosh.go asin.go asin_decl.go asinh.go atan.go atan2.go atan2_decl.go atan_decl.go atanh.go bits.go cbrt.go const.go copysign.go erf.go exp.go exp2.go exp2_decl.go exp_decl.go exp_port.go expm1.go expm1_decl.go fabs.go fabs_decl.go fdim.go fdim_decl.go floor.go floor_decl.go fmod.go fmod_decl.go frexp.go frexp_decl.go gamma.go hypot.go hypot_decl.go hypot_port.go j0.go j1.go jn.go ldexp.go ldexp_decl.go lgamma.go log.go log10.go log10_decl.go log1p.go log1p_decl.go log_decl.go logb.go modf.go modf_decl.go nextafter.go pow.go pow10.go remainder.go remainder_decl.go signbit.go sin.go sin_decl.go sincos.go sincos_decl.go sinh.go sqrt.go sqrt_decl.go sqrt_port.go tan.go tan_decl.go tanh.go unsafe.go

定数

数学用定数です。参照: http://www.research.att.com/~njas/sequences/Axxxxxx

const (
    E   = 2.71828182845904523536028747135266249775724709369995957496696763 // A001113
    Pi  = 3.14159265358979323846264338327950288419716939937510582097494459 // A000796
    Phi = 1.61803398874989484820458683436563811772030917980576286213544862 // A001622

    Sqrt2   = 1.41421356237309504880168872420969807856967187537694807317667974 // A002193
    SqrtE   = 1.64872127070012814684865078781416357165377610071014801157507931 // A019774
    SqrtPi  = 1.77245385090551602729816748334114518279754945612238712821380779 // A002161
    SqrtPhi = 1.27201964951406896425242246173749149171560804184009624861664038 // A139339

    Ln2    = 0.693147180559945309417232121458176568075500134360255254120680009 // A002162
    Log2E  = 1 / Ln2
    Ln10   = 2.30258509299404568401799145468436420760110148862877297603332790 // A002392
    Log10E = 1 / Ln10
)

浮動小数点の限界値。Maxはその型によって表せられる最大の有限値です。Minはその型によって表せられる最小でゼロ以外の値です。

const (
    MaxFloat32 = 3.40282346638528859811704183484516925440e+38  /* 2**127 * (2**24 - 1) / 2**23 */
    MinFloat32 = 1.401298464324817070923729583289916131280e-45 /* 1 / 2**(127 - 1 + 23) */

    MaxFloat64 = 1.797693134862315708145274237317043567981e+308 /* 2**1023 * (2**53 - 1) / 2**52 */
    MinFloat64 = 4.940656458412465441765687928682213723651e-324 /* 1 / 2**(1023 - 1 + 52) */
)

整数の限界値。

const (
    MaxInt8   = 1<<7 - 1
    MinInt8   = -1 << 7
    MaxInt16  = 1<<15 - 1
    MinInt16  = -1 << 15
    MaxInt32  = 1<<31 - 1
    MinInt32  = -1 << 31
    MaxInt64  = 1<<63 - 1
    MinInt64  = -1 << 63
    MaxUint8  = 1<<8 - 1
    MaxUint16 = 1<<16 - 1
    MaxUint32 = 1<<32 - 1
    MaxUint64 = 1<<64 - 1
)

Acos関数

func Acos(x float64) float64

Acosは、xのアークコサインを返します。

特殊ケース:

Acos(x) = NaN if x < -1 or x > 1

Acosh関数

func Acosh(x float64) float64

Acosh(x)は、xの逆ハイパボリックコサインを計算します。

特殊ケース:

Acosh(x) = NaN if x < 1
Acosh(NaN) = NaN

Asin関数

func Asin(x float64) float64

Asinは、xのアークサインを返します。

特殊ケース:

Asin(±0) = ±0
Asin(x) = NaN if x < -1 or x > 1

Asinh関数

func Asinh(x float64) float64

Asinh(x)は、xの逆ハイパボリックサインを計算します。

特殊ケース:

Asinh(+Inf) = +Inf
Asinh(-Inf) = -Inf
Asinh(NaN) = NaN

Atan関数

func Atan(x float64) float64

Atanは、xのアークタンジェントを返します。

特殊ケース:

Atan(±0) = ±0
Atan(±Inf) = ±Pi/2

Atan2関数

func Atan2(y, x float64) float64

Atan2は、戻り値の四半部を決定するため、2つの符号を使用してy/xのアークタンジェントを返します。

特殊ケース(順に):

Atan2(y, NaN) = NaN
Atan2(NaN, x) = NaN
Atan2(+0, x>=0) = +0
Atan2(-0, x>=0) = -0
Atan2(+0, x<=-0) = +Pi
Atan2(-0, x<=-0) = -Pi
Atan2(y>0, 0) = +Pi/2
Atan2(y<0, 0) = -Pi/2
Atan2(+Inf, +Inf) = +Pi/4
Atan2(-Inf, +Inf) = -Pi/4
Atan2(+Inf, -Inf) = 3Pi/4
Atan2(-Inf, -Inf) = -3Pi/4
Atan2(y, +Inf) = 0
Atan2(y>0, -Inf) = +Pi
Atan2(y<0, -Inf) = -Pi
Atan2(+Inf, x) = +Pi/2
Atan2(-Inf, x) = -Pi/2

Atanh関数

func Atanh(x float64) float64

Atanh(x)は、xの逆ハイパボリックタンジェントを計算します。

特殊ケース:

Atanh(x) = NaN if x < -1 or x > 1
Atanh(1) = +Inf
Atanh(-1) = -Inf
Atanh(NaN) = NaN

Cbrt関数

func Cbrt(x float64) float64

Cbrtは、引数の平方根を返します。

特殊ケース:

Cbrt(±0) = ±0
Cbrt(±Inf) = ±Inf
Cbrt(NaN) = NaN

Ceil関数

func Ceil(x float64) float64

Ceilは、x以上で最小値となる整数を返します。

特殊ケース:

Ceil(+Inf) = +Inf
Ceil(-Inf) = -Inf
Ceil(NaN) = NaN

Copysign関数

func Copysign(x, y float64) float64

Copysign(x, y)は、絶対値がx、符号がyと等しい値を返します。

Cos関数

func Cos(x float64) float64

Cosは、xのコサインを返します。

Cosh関数

func Cosh(x float64) float64

Coshは、xのハイパボリックコサインを返します。

Erf関数

func Erf(x float64) float64

Erf(x)は、xの誤差関数を返します。

特殊ケース:

Erf(+Inf) = 1
Erf(-Inf) = -1
Erf(NaN) = NaN

Erfc関数

func Erfc(x float64) float64

Erfc(x)は、xの相補誤差関数を返します。

特殊ケース:

Erfc(+Inf) = 0
Erfc(-Inf) = 2
Erfc(NaN) = NaN

Exp関数

func Exp(x float64) float64

Expは、e**x、ベースeをx値で累乗した値を返します。

特殊ケース:

Exp(+Inf) = +Inf
Exp(NaN) = NaN

極めて大きい数はオーバフローを起こし、0または+Infになります。極めて小さい値はアンダーフローを起こし、1となります。

Exp2関数

func Exp2(x float64) float64

Exp2は、2**x、ベース2をx値で累乗した値を返します。

特殊ケースはExpと同じです。

Expm1関数

func Expm1(x float64) float64

Expm1は、e**x、ベースeを(x – 1)で累乗した値を返します。これは、xがゼロに近いときはExp(x) – 1より正確です。

特殊ケース:

Expm1(+Inf) = +Inf
Expm1(-Inf) = -1
Expm1(NaN) = NaN

極めて大きい数はオーバフローを起こし、-1または+Infになります。

Fabs関数

func Fabs(x float64) float64

Fabsは、xの絶対値を返します。

特殊ケース:

Fabs(+Inf) = +Inf
Fabs(-Inf) = +Inf
Fabs(NaN) = NaN

Fdim関数

func Fdim(x, y float64) float64

Fdimは、x-yと0の大きい方を返します。

Float32bits関数

func Float32bits(f float32) uint32

Float32bitsは、fのIEEE 754バイナリ表現を返します。

Float32frombits関数

func Float32frombits(b uint32) float32

Float32frombitsは、bをIEEE 754バイナリ表現とみなし、その浮動小数点の値を返します。

Float64bits関数

func Float64bits(f float64) uint64

Float64bitsは、fのIEEE 754バイナリ表現を返します。

Float64frombits関数

func Float64frombits(b uint64) float64

Float64frombitsは、bをIEEE 754バイナリ表現とみなし、その浮動小数点の値を返します。

Floor関数

func Floor(x float64) float64

Floorは、x以下で最大値となる整数を返します。

特殊ケース:

Floor(+Inf) = +Inf
Floor(-Inf) = -Inf
Floor(NaN) = NaN

Fmax関数

func Fmax(x, y float64) float64

Fmaxは、xとyの大きい方を返します。

Fmin関数

func Fmin(x, y float64) float64

Fminは、xとyの小さい方を返します。

Fmod関数

func Fmod(x, y float64) float64

Fmodは、x/yの浮動小数点の余りを返します。返される値の絶対値はyより小さく、符号はxと同じです。

特殊ケース:

if x is not finite, Fmod returns NaN
if y is 0 or NaN, Fmod returns NaN

Frexp関数

func Frexp(f float64) (frac float64, exp int)

Frexpは、fを正規化された小数と、2の累乗である整数に分割します。返されるfracとexpは、f == frac × 2**expを満たし、fracの絶対値は½~1の範囲です。

Gamma関数

func Gamma(x float64) float64

Gamma(x)は、xのガンマ関数を返します。

特殊ケース:

Gamma(Inf) = Inf
Gamma(-Inf) = -Inf
Gamma(NaN) = NaN

極めて大きい数はオーバフローを起こし、+Infになります。マイナスの整数値は±Infと等しくなります。

Hypot関数

func Hypot(p, q float64) float64

Hypotは、Sqrt(p*p + q*q)を計算します。不用意にオーバフローおよびアンダーフローを起こさないようにしてください。

特殊ケース:

Hypot(p, q) = +Inf if p or q is infinite
Hypot(p, q) = NaN if p or q is NaN

Ilogb関数

func Ilogb(x float64) int

Ilogb(x)は、ゼロ以外であるxのバイナリ指数を整数値で返します。

特殊ケース:

Ilogb(±Inf) = MaxInt32
Ilogb(0) = MinInt32
Ilogb(NaN) = MaxInt32

Inf関数

func Inf(sign int) float64

Infは、sign >= 0のとき正の無限大を、sign < 0のとき負の無限大を返します。

IsInf関数

func IsInf(f float64, sign int) bool

IsInfは、fがsignと一致する無限大であるかを返します。sign > 0のときはfが正の無限大かを返し、sign < 0のときはfが負の無限大かを返します。sign == 0のときはどちらかの無限大であるかを返します。

IsNaN関数

func IsNaN(f float64) (is bool)

IsNaNは、fがIEEE 754の「not-a-number:値ではない」かを返します。

J0関数

func J0(x float64) float64

J0は、オーダ0の第一種ベッセル関数を返します。

特殊ケース:

J0(±Inf) = 0
J0(0) = 1
J0(NaN) = NaN

J1関数

func J1(x float64) float64

J1は、オーダ1の第一種ベッセル関数を返します。

特殊ケース:

J1(±Inf) = 0
J1(NaN) = NaN

Jn関数

func Jn(n int, x float64) float64

Jnは、オーダnの第一種ベッセル関数を返します。

特殊ケース:

Jn(n, ±Inf) = 0
Jn(n, NaN) = NaN

Ldexp関数

func Ldexp(frac float64, exp int) float64

Ldexpは、Frexpの逆です。これはfrac × 2**expを返します。

Lgamma関数

func Lgamma(x float64) (lgamma float64, sign int)

Lgammaは、Gamma(x)の自然対数と、符号(-1または+1)を返します。

特殊ケース:

Lgamma(+Inf) = +Inf
Lgamma(0) = +Inf
Lgamma(-integer) = +Inf
Lgamma(-Inf) = -Inf
Lgamma(NaN) = NaN

Log関数

func Log(x float64) float64

Logは、xの自然対数を返します。

特殊ケース:

Log(+Inf) = +Inf
Log(0) = -Inf
Log(x < 0) = NaN
Log(NaN) = NaN

Log10関数

func Log10(x float64) float64

Log10は、xの常用対数を返します。特殊ケースはLogと同じです。

Log1p関数

func Log1p(x float64) float64

Log1pは、x+1の自然対数を返します。これは、xがゼロに近いときはLog(1 + x)より正確です。

特殊ケース:

Log1p(+Inf) = +Inf
Log1p(-1) = -Inf
Log1p(x < -1) = NaN
Log1p(NaN) = NaN

Log2関数

func Log2(x float64) float64

Log2は、xのバイナリ対数を返します。特殊ケースはLogと同じです。

Logb関数

func Logb(x float64) float64

Logb(x)は、ゼロではないxのバイナリ指数を返します。

特殊ケース:

Logb(±Inf) = +Inf
Logb(0) = -Inf
Logb(NaN) = NaN

Modf関数

func Modf(f float64) (int float64, frac float64)

Modfは、合計するとfと同じ値になる、整数と浮動小数点の値を返します。2つの値ともfと同じ符号を持ちます。

特殊ケース:

Modf(+Inf) = +Inf, NaN
Modf(-Inf) = -Inf, NaN
Modf(NaN) = NaN, NaN

NaN関数

func NaN() float64

NaNは、IEEE 754の「not-a-number:値ではない」値を返します。

Nextafter関数

func Nextafter(x, y float64) (r float64)

Nextafterは、yに向かう方向でxの次の浮動小数点表現を返します。x == yのときは、xが返されます。

特殊ケース:

Nextafter(NaN, y) = NaN
Nextafter(x, NaN) = NaN

Pow関数

func Pow(x, y float64) float64

Powは、x**y、ベースxをy値で累乗した値を返します。

特殊ケース (順番に):

Pow(x, ±0) = 1 for any x
Pow(1, y) = 1 for any y
Pow(x, 1) = x for any x
Pow(NaN, y) = NaN
Pow(x, NaN) = NaN
Pow(±0, y) = ±Inf for y an odd integer < 0
Pow(±0, -Inf) = +Inf
Pow(±0, +Inf) = +0
Pow(±0, y) = +Inf for finite y < 0 and not an odd integer
Pow(±0, y) = ±0 for y an odd integer > 0
Pow(±0, y) = +0 for finite y > 0 and not an odd integer
Pow(-1, ±Inf) = 1
Pow(x, +Inf) = +Inf for |x| > 1
Pow(x, -Inf) = +0 for |x| > 1
Pow(x, +Inf) = +0 for |x| < 1
Pow(x, -Inf) = +Inf for |x| < 1
Pow(+Inf, y) = +Inf for y > 0
Pow(+Inf, y) = +0 for y < 0
Pow(-Inf, y) = Pow(-0, -y)
Pow(x, y) = NaN for finite x < 0 and finite non-integer y

Pow10関数

func Pow10(e int) float64

Pow10は、10**e、ベース10をe値で累乗した値を返します。

Remainder関数

func Remainder(x, y float64) float64

Remainderは、x/yのIEEE 754浮動小数点の余りを返します。

特殊ケース:

Remainder(x, NaN) = NaN
Remainder(NaN, y) = NaN
Remainder(Inf, y) = NaN
Remainder(x, 0) = NaN
Remainder(x, Inf) = x

Signbit関数

func Signbit(x float64) bool

Signbitは、xが負の数か、もしくは負のゼロ値のときにtrueを返します。

Sin関数

func Sin(x float64) float64

Sinは、xのサインを返します。

Sincos関数

func Sincos(x float64) (sin, cos float64)

Sincos(x)は、Sin(x)、Cos(x)を返します。

特殊ケース:

Sincos(+Inf) = NaN, NaN
Sincos(-Inf) = NaN, NaN
Sincos(NaN) = NaN, NaN

Sinh関数

func Sinh(x float64) float64

Sinhは、xのハイパボリックサインを返します。

Sqrt関数

func Sqrt(x float64) float64

Sqrtは、xの平方根を返します。

特殊ケース:

Sqrt(+Inf) = +Inf
Sqrt(±0) = ±0
Sqrt(x < 0) = NaN
Sqrt(NaN) = NaN

Tan関数

func Tan(x float64) float64

Tanは、xのタンジェントを返します。

Tanh関数

func Tanh(x float64) float64

Tanhは、xのハイパボリックタンジェントを計算します。

Trunc関数

func Trunc(x float64) float64

Truncは、xの整数値を返します。

特殊ケース:

Trunc(+Inf) = +Inf
Trunc(-Inf) = -Inf
Trunc(NaN) = NaN

Y0関数

func Y0(x float64) float64

Y0は、オーダ0の第2種ベッセル関数を返します。

特殊ケース:

Y0(+Inf) = 0
Y0(0) = -Inf
Y0(x < 0) = NaN
Y0(NaN) = NaN

Y1関数

func Y1(x float64) float64

Y1は、オーダ1の第2種ベッセル関数を返します。

特殊ケース:

Y1(+Inf) = 0
Y1(0) = -Inf
Y1(x < 0) = NaN
Y1(NaN) = NaN

Yn関数

func Yn(n int, x float64) float64

Ynは、オーダnの第2種ベッセル関数を返します。

特殊ケース:

Yn(n, +Inf) = 0
Yn(n > 0, 0) = -Inf
Yn(n < 0, 0) = +Inf if n is odd, -Inf if n is even
Y1(n, x < 0) = NaN
Y1(n, NaN) = NaN