package
1.23.0
Repository: https://github.com/shogo82148/std.git
Documentation: pkg.go.dev

# Packages

bigパッケージは任意精度算術(大きな数)を実装します。 以下の数値型がサポートされています: Int 符号付き整数 Rat 有理数 Float 浮動小数点数 [Int]、[Rat]、または [Float] のゼロ値は0に対応します。したがって、新しい 値は通常の方法で宣言でき、さらなる初期化なしで0を示します: var x Int // &xは値0の*Intです var r = &Rat{} // rは値0の*Ratです y := new(Float) // yは値0の*Floatです あるいは、新しい値は以下の形式のファクトリ関数で割り当てて初期化することができます: func NewT(v V) *T 例えば、[NewInt](x)はint64引数xの値に設定された*[Int] を返し、 [NewRat](a, b)はaとbがint64値である分数a/bに設定された*[Rat] を返し、 [NewFloat](f)はfloat64引数fに初期化された*[Float] を返します。 より柔軟性を提供するために、明示的なセッターが提供されています。例えば: var z1 Int z1.SetUint64(123) // z1 := 123 z2 := new(Rat).SetFloat64(1.25) // z2 := 5/4 z3 := new(Float).SetInt(z1) // z3 := 123.0 セッター、数値演算、および述語は、以下の形式のメソッドとして表現されます: func (z *T) SetV(v V) *T // z = v func (z *T) Unary(x *T) *T // z = unary x func (z *T) Binary(x, y *T) *T // z = x binary y func (x *T) Pred() P // p = pred(x) Tは [Int]、[Rat]、または [Float] のいずれかです。単項および二項演算の場合、 結果はレシーバ(通常その場合はzと名付けられます。以下参照)であり、 それがオペランドxまたはyのいずれかであれば、安全に上書き(およびそのメモリの再利用)が可能です。 算術式は通常、個々のメソッド呼び出しのシーケンスとして書かれ、 各呼び出しが操作に対応します。レシーバは結果を示し、 メソッドの引数は操作のオペランドです。 例えば、*Int値a、b、cが与えられた場合、次の呼び出し c.Add(a, b) これは、a + bの和を計算し、結果をcに格納します。これにより、 以前にcに格納されていた値は上書きされます。特に指定がない限り、 操作はパラメータのエイリアシングを許可するため、次のように書いても問題ありません。 sum.Add(sum, x) これにより、値xがsumに累積されます。 (常にレシーバ経由で結果値を渡すことにより、メモリの使用を はるかによく制御できます。各結果に新たにメモリを割り当てる代わりに、 操作は結果値に割り当てられたスペースを再利用し、 そのプロセスで新しい結果でその値を上書きすることができます。) 表記法の規則:APIで一貫して名前が付けられている入力メソッドパラメータ(レシーバを含む) は、その使用法を明確にするためです。入力オペランドは通常、x、y、a、bなどと名付けられますが、 zとは名付けられません。結果を指定するパラメータはzと名付けられます(通常はレシーバ)。 例えば、(*Int).Addの引数はxとyと名付けられています。 そして、レシーバが結果の格納先を指定するため、それはzと呼ばれます: func (z *Int) Add(x, y *Int) *Int この形式のメソッドは、単純な呼び出しチェーンを可能にするため、通常、受け取ったレシーバも返します。 結果値を渡す必要がないメソッド(例えば、[Int.Sign])は、単に結果を返します。 この場合、レシーバは通常、最初のオペランドで、xと名付けられます: func (x *Int) Sign() int さまざまなメソッドが文字列と対応する数値との間の変換をサポートしており、その逆も可能です: *[Int]、*[Rat]、および*[Float] の値は、値の(デフォルトの)文字列表現のためのStringerインターフェースを実装しますが、 また、さまざまなサポートされている形式で文字列から値を初期化するためのSetStringメソッドも提供します (それぞれのSetStringのドキュメンテーションを参照してください)。 最後に、*[Int]、*[Rat]、および*[Float] は、スキャンのための [fmt.Scanner] を満たし、 (*Ratを除いて)フォーマットされた印刷のためのFormatterインターフェースを満たします。 */.
bitsパッケージは、事前に宣言された符号なし整数型のためのビットカウントと操作 関数を実装します。 このパッケージの関数は、パフォーマンス向上のためにコンパイラによって直接実装される可能性があります。 そのような関数の場合、このパッケージのコードは使用されません。 どの関数がコンパイラによって実装されるかは、アーキテクチャとGoのリリースによります。.
cmplxパッケージは、複素数の基本的な定数と数学関数を提供します。 特殊なケースの処理は、C99標準の付録G IEC 60559互換の複素数演算に準拠しています。.
randパッケージは、シミュレーションなどのタスクに適した擬似乱数生成器を実装しますが、 セキュリティに敏感な作業には使用しないでください。 乱数は[Source]によって生成され、通常は [Rand] でラップされます。 これらの型は一度に1つのゴルーチンで使用する必要があります:複数のゴルーチン間で共有するには何らかの同期が必要です。 トップレベルの関数、たとえば [Float64] や [Int] などは、 複数のゴルーチンによる並行使用に対して安全です。 このパッケージの出力は、どのようにシードされていても容易に予測可能かもしれません。 セキュリティに敏感な作業に適したランダムな数値については、crypto/randパッケージを参照してください。.

# Functions

Absはxの絶対値を返します。 特殊な場合は以下のようになります: Abs(±Inf) = +Inf Abs(NaN) = NaN.
Acosは、xのarccosine(ラジアン単位)を返します。 特殊な場合は以下です: Acos(x) = NaN if x < -1 or x > 1.
Acoshはxの逆双曲線余弦を返します。 特殊な場合は以下の通りです: Acosh(+Inf) = +Inf Acosh(x) = NaN if x < 1 Acosh(NaN) = NaN.
Asinは、xの弧度法におけるアークサインを返します。 特別なケースは次のとおりです: Asin(±0) = ±0 Asin(x) = NaN if x < -1 or x > 1.
Asinhはxの逆双曲線正弦を返します。 特殊なケースは: Asinh(±0) = ±0 Asinh(±Inf) = ±Inf Asinh(NaN) = NaN.
Atanはxのアークタンジェント(ラジアン)を返します。 特殊なケースは以下の通りです: Atan(±0) = ±0 Atan(±Inf) = ±Pi/2.
Atan2は、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はxの逆双曲線正接を返します。 特別な場合は次のとおりです: Atanh(1) = +Inf Atanh(±0) = ±0 Atanh(-1) = -Inf Atanh(x) = NaN if x < -1 or x > 1 Atanh(NaN) = NaN.
Cbrtはxの立方根を返します。 特殊なケースは次の通りです: Cbrt(±0) = ±0 Cbrt(±Inf) = ±Inf Cbrt(NaN) = NaN.
Ceil(天井)は、x以上の最小の整数値を返します。 特別なケースは: Ceil(±0) = ±0 Ceil(±Inf) = ±Inf Ceil(NaN) = NaN.
Copysign は f の絶対値と sign の符号を持つ値を返す。.
Cosは、ラジアンの引数xの余弦を返します。 特殊な場合は: Cos(±Inf) = NaN Cos(NaN) = NaN.
Coshはxの双曲線余弦を返します。 特殊なケースは以下の通りです: Cosh(±0) = 1 Cosh(±Inf) = +Inf Cosh(NaN) = NaN.
Dim関数は、x-yまたは0のうちの大きい方を返します。 特別なケースは以下の通りです: Dim(+Inf, +Inf) = NaN Dim(-Inf, -Inf) = NaN Dim(x, NaN) = Dim(NaN, x) = NaN.
Erfはxの誤差関数を返します。 特殊なケースは以下の通りです: Erf(+Inf) = 1 Erf(-Inf) = -1 Erf(NaN) = NaN.
Erfcはxの補完誤差関数を返します。 特別なケースは以下の通りです: Erfc(+Inf) = 0 Erfc(-Inf) = 2 Erfc(NaN) = NaN.
Erfcinvは [Erfc](x)の逆関数を返します。 特殊な場合は以下の通りです: Erfcinv(0) = +Inf Erfcinv(2) = -Inf Erfcinv(x) = NaN if x < 0 or x > 2 Erfcinv(NaN) = NaN.
Erfinvはxの逆誤差関数を返します。 特殊なケースは以下の通りです: Erfinv(1) = +Inf Erfinv(-1) = -Inf Erfinv(x) = NaN if x < -1 or x > 1 Erfinv(NaN) = NaN.
Expはe**x、つまりxの自然対数の底eによる指数関数です。 特殊な場合は次の通りです: Exp(+Inf) = +Inf Exp(NaN) = NaN 非常に大きな値は0または+Infにオーバーフローします。 非常に小さい値は1にアンダーフローします。.
Exp2はxの2の累乗(2**x)を返します。 特殊なケースは [Exp] と同じです。.
Expm1はxの自然対数e**x - 1を返します。 xがほぼゼロの場合、 [Exp](x) - 1よりも精度が高くなります。 特殊なケースは以下の通りです: Expm1(+Inf) = +Inf Expm1(-Inf) = -1 Expm1(NaN) = NaN 非常に大きな値は-1または+Infにオーバーフローします。.
Float32bitsは、fのIEEE 754バイナリ表現を返します。 fの符号ビットと結果は同じビット位置にあります。 Float32bits(Float32frombits(x)) == x.
Float32frombitsは、符号ビットの位置が同じであるように IEEE 754バイナリ表現bに対応する浮動小数点数を返します。 Float32frombits(Float32bits(x))== x。.
Float64bitsは、fのIEEE 754バイナリ表現を返します。 fの符号ビットと結果が同じビット位置になります。 また、Float64bits(Float64frombits(x)) == x となります。.
Float64frombitsは、IEEE 754のバイナリ表現bに対応する浮動小数点数を返します。bの符号ビットと結果は同じビット位置にあります。 Float64frombits(Float64bits(x)) == x.
Floorはx以下の最大の整数値を返します。 特殊なケースは次の通りです: Floor(±0) = ±0 Floor(±Inf) = ±Inf Floor(NaN) = NaN.
FMAは、一度の丸めのみを使用して計算されたx * y + zを返します。 (つまり、FMAはx、y、およびzの融合乗算-加算結果を返します。).
Frexpは、fを正規化された分数と2の整数冪に分解します。 それは、f == frac × 2**expを満たすfracとexpを返します。 fracの絶対値は[½, 1)の範囲にあります。 特殊な場合は以下の通りです: Frexp(±0) = ±0, 0 Frexp(±Inf) = ±Inf, 0 Frexp(NaN) = NaN, 0.
Gammaはxのガンマ関数を返します。 特殊な場合は以下の通りです: Gamma(+Inf) = +Inf Gamma(+0) = +Inf Gamma(-0) = -Inf Gamma(x) = NaN for integer x < 0 Gamma(-Inf) = NaN Gamma(NaN) = NaN.
Hypotは [Sqrt](p*p + q*q) を返します。不必要なオーバーフローやアンダーフローを避けるように注意します。 特殊な場合は以下の通りです: Hypot(±Inf, q) = +Inf Hypot(p, ±Inf) = +Inf Hypot(NaN, q) = NaN Hypot(p, NaN) = NaN.
Ilogbはxのバイナリ指数を整数として返します。 特殊なケースは以下の通りです: Ilogb(±Inf) = MaxInt32 Ilogb(0) = MinInt32 Ilogb(NaN) = MaxInt32.
signが0以上の場合、正の無限大を返し、signが0より小さい場合は負の無限大を返します。.
IsInfは、fが無限大であるかどうかをsignに基づいて報告します。 sign > 0の場合、fが正の無限大であるかどうかを報告します。 sign < 0の場合、fが負の無限大であるかどうかを報告します。 sign == 0の場合、fがどちらかの無限大であるかどうかを報告します。.
IsNaNは、fがIEEE 754の"非数"値であるかどうかを報告します。.
J0は第1種のゼロ次ベッセル関数を返します。 特殊な場合は次の通りです: J0(±Inf) = 0 J0(0) = 1 J0(NaN) = NaN.
J1は第1種の1次ベッセル関数を返します。 特殊なケースは以下の通りです: J1(±Inf) = 0 J1(NaN) = NaN.
Jnは、第一種ベッセル関数のn次の順序を返します。 特殊なケースは次の通りです: Jn(n, ±Inf) = 0 Jn(n, NaN) = NaN.
Ldexpは [Frexp] の逆です。 それはfrac × 2 ** expを返します。 特別なケースは以下の通りです: Ldexp(±0, exp) = ±0 Ldexp(±Inf, exp) = ±Inf Ldexp(NaN, exp) = NaN.
Lgammaは [Gamma](x)の自然対数と符号(-1または+1)を返します。 特殊なケースは以下の通りです: Lgamma(+Inf) = +Inf Lgamma(0) = +Inf Lgamma(-integer) = +Inf Lgamma(-Inf) = -Inf Lgamma(NaN) = NaN.
Logはxの自然対数を返します。 特別なケースは以下の通りです: Log(+Inf) = +Inf Log(0) = -Inf Log(x < 0) = NaN Log(NaN) = NaN.
Log10 は x の 10 を底とする対数(常用対数)を返します。 特殊な場合は [Log] と同じです。.
Log1pは引数xの1を加えたものの自然対数を返します。 xがゼロに近い場合、 [Log](1 + x)よりも正確です。 特殊な場合は次のとおりです: Log1p(+Inf) = +Inf Log1p(±0) = ±0 Log1p(-1) = -Inf Log1p(x < -1) = NaN Log1p(NaN) = NaN.
Log2 は x の二進対数を返します。 特殊な場合は [Log] と同じです。.
Logbはxの二進指数を返します。 特殊なケースは次の通りです: Logb(±Inf) = +Inf Logb(0) = -Inf Logb(NaN) = NaN.
Maxはxとyのうち大きい方を返します。 特殊なケースは以下の通りです: Max(x, +Inf) = Max(+Inf, x) = +Inf Max(x, NaN) = Max(NaN, x) = NaN Max(+0, ±0) = Max(±0, +0) = +0 Max(-0, -0) = -0 なお、これはNaNと+Infの場合に組み込み関数maxとは異なります。.
Min関数は、xとyのうち小さい方を返します。 特殊な場合は以下の通りです: Min(x, -Inf) = Min(-Inf, x) = -Inf Min(x, NaN) = Min(NaN, x) = NaN Min(-0, ±0) = Min(±0, -0) = -0 注意:これは、NaNと-Infを引数にして呼び出すと、組み込みのmin関数とは異なる結果になります。.
Modはx/yの浮動小数点の余りを返します。 結果の絶対値はyより小さく、符号はxと一致します。 特殊なケースは次のとおりです: Mod(±Inf, y) = NaN Mod(NaN, y) = NaN Mod(x, 0) = NaN Mod(x, ±Inf) = x Mod(x, NaN) = NaN.
Modfは整数部分と小数部分の浮動小数点数を返します。両方の値はfと同じ符号を持ちます。 特殊なケースは以下の通りです: Modf(±Inf) = ±Inf, NaN Modf(NaN) = NaN, NaN.
NaNはIEEE 754の「非数値」を返します。.
Nextafterはxからyに向かって次の表現可能なfloat64値を返します。 特別な場合は以下の通りです: Nextafter(x, x) = x Nextafter(NaN, y) = NaN Nextafter(x, NaN) = NaN.
Nextafter32はxからyの方向に次に表現可能なfloat32値を返します。 特殊なケースは以下の通りです: Nextafter32(x, x) = x Nextafter32(NaN, y) = NaN Nextafter32(x, NaN) = NaN.
Powはx**y、yのxを底とした指数を返します。 特殊な場合は以下の通りです: 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はnの10のn乗、つまり10の指数nを返します。 特別な場合は以下の通りです: Pow10(n) = 0 for n < -323 Pow10(n) = +Inf for n > 308.
Remainderはx/yのIEEE 754浮動小数点余りを返します。 特殊なケースは以下の通りです: Remainder(±Inf, y) = NaN Remainder(NaN, y) = NaN Remainder(x, 0) = NaN Remainder(x, ±Inf) = x Remainder(x, NaN) = NaN.
Roundは、最も近い整数を返します。半の場合はゼロから離れます。 特殊なケースは次の通りです: Round(±0) = ±0 Round(±Inf) = ±Inf Round(NaN) = NaN.
RoundToEvenは、最も近い整数を返し、丸めの際に引き分けを偶数に丸めます。 特別なケースは以下の通りです: RoundToEven(±0) = ±0 RoundToEven(±Inf) = ±Inf RoundToEven(NaN) = NaN.
Signbitはxが負または負のゼロかどうかを報告します。.
Sinは、ラジアンの引数xの正弦を返します。 特殊なケースは次の通りです: Sin(±0) = ±0 Sin(±Inf) = NaN Sin(NaN) = NaN.
SincosはSin(x), Cos(x)を返します。 特殊なケースは以下の通りです: Sincos(±0) = ±0, 1 Sincos(±Inf) = NaN, NaN Sincos(NaN) = NaN, NaN.
Sinhはxの双曲線正弦を返します。 特殊なケースは以下の通りです: Sinh(±0) = ±0 Sinh(±Inf) = ±Inf Sinh(NaN) = NaN.
Sqrtはxの平方根を返します。 特殊な場合は次の通りです: Sqrt(+Inf) = +Inf Sqrt(±0) = ±0 Sqrt(x < 0) = NaN Sqrt(NaN) = NaN.
Tanはラジアンの引数xの正接(タンジェント)を返します。 特殊なケースは以下の通りです: Tan(±0) = ±0 Tan(±Inf) = NaN Tan(NaN) = NaN.
Tanhはxの双曲線正接を返します。 特殊な場合は次のとおりです: Tanh(±0) = ±0 Tanh(±Inf) = ±1 Tanh(NaN) = NaN.
Truncはxの整数値を返します。 特殊なケースは以下の通りです: Trunc(±0) = ±0 Trunc(±Inf) = ±Inf Trunc(NaN) = NaN.
Y0は第二種ベッセル関数のゼロ次の値を返します。 特殊なケースは以下の通りです: Y0(+Inf) = 0 Y0(0) = -Inf Y0(x < 0) = NaN Y0(NaN) = NaN.
Y1は第2種ベッセル関数の1次の値を返します。 特殊な場合は以下の通りです: Y1(+Inf) = 0 Y1(0) = -Inf Y1(x < 0) = NaN Y1(NaN) = NaN.
Ynは第二種ベッセル関数のn番目の順序を返します。 特殊な場合は次の通りです: Yn(n, +Inf) = 0 Yn(n ≥ 0, 0) = -Inf Yn(n < 0, 0) = +Inf if n is odd, -Inf if n is even Yn(n, x < 0) = NaN Yn(n, NaN) = NaN.

# Constants

数学定数。.
数学定数。.
数学定数。.
数学定数。.
数学定数。.
浮動小数点の制限値。 Max はその型で表現可能な最大の有限値です。 SmallestNonzero はその型で表現可能な最小の正の0以外の値です。.
浮動小数点の制限値。 Max はその型で表現可能な最大の有限値です。 SmallestNonzero はその型で表現可能な最小の正の0以外の値です。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
整数の上限値。.
数学定数。.
数学定数。.
浮動小数点の制限値。 Max はその型で表現可能な最大の有限値です。 SmallestNonzero はその型で表現可能な最小の正の0以外の値です。.
浮動小数点の制限値。 Max はその型で表現可能な最大の有限値です。 SmallestNonzero はその型で表現可能な最小の正の0以外の値です。.
数学定数。.
数学定数。.
数学定数。.
数学定数。.