Spec-Zone.ru › Go

Пакет math

  • import "math"
  • Обзор
  • Указатель
  • Примеры
  • Подкаталоги

Обзор

Пакет math предоставляет основные константы и математические функции.

Этот пакет не гарантирует побитово идентичные результаты на разных архитектурах.

Указатель

  • Константы
  • func Abs(x float64) float64
  • func Acos(x float64) float64
  • func Acosh(x float64) float64
  • func Asin(x float64) float64
  • func Asinh(x float64) float64
  • func Atan(x float64) float64
  • func Atan2(y, x float64) float64
  • func Atanh(x float64) float64
  • func Cbrt(x float64) float64
  • func Ceil(x float64) float64
  • func Copysign(f, sign float64) float64
  • func Cos(x float64) float64
  • func Cosh(x float64) float64
  • func Dim(x, y float64) float64
  • func Erf(x float64) float64
  • func Erfc(x float64) float64
  • func Erfcinv(x float64) float64
  • func Erfinv(x float64) float64
  • func Exp(x float64) float64
  • func Exp2(x float64) float64
  • func Expm1(x float64) float64
  • func FMA(x, y, z float64) float64
  • func Float32bits(f float32) uint32
  • func Float32frombits(b uint32) float32
  • func Float64bits(f float64) uint64
  • func Float64frombits(b uint64) float64
  • func Floor(x float64) float64
  • func Frexp(f float64) (frac float64, exp int)
  • func Gamma(x float64) float64
  • func Hypot(p, q float64) float64
  • func Ilogb(x float64) int
  • func Inf(sign int) float64
  • func IsInf(f float64, sign int) bool
  • func IsNaN(f float64) (is bool)
  • func J0(x float64) float64
  • func J1(x float64) float64
  • func Jn(n int, x float64) float64
  • func Ldexp(frac float64, exp int) float64
  • func Lgamma(x float64) (lgamma float64, sign int)
  • func Log(x float64) float64
  • func Log10(x float64) float64
  • func Log1p(x float64) float64
  • func Log2(x float64) float64
  • func Logb(x float64) float64
  • func Max(x, y float64) float64
  • func Min(x, y float64) float64
  • func Mod(x, y float64) float64
  • func Modf(f float64) (integer float64, fractional float64)
  • func NaN() float64
  • func Nextafter(x, y float64) (r float64)
  • func Nextafter32(x, y float32) (r float32)
  • func Pow(x, y float64) float64
  • func Pow10(n int) float64
  • func Remainder(x, y float64) float64
  • func Round(x float64) float64
  • func RoundToEven(x float64) float64
  • func Signbit(x float64) bool
  • func Sin(x float64) float64
  • func Sincos(x float64) (sin, cos float64)
  • func Sinh(x float64) float64
  • func Sqrt(x float64) float64
  • func Tan(x float64) float64
  • func Tanh(x float64) float64
  • func Trunc(x float64) float64
  • func Y0(x float64) float64
  • func Y1(x float64) float64
  • func Yn(n int, x float64) float64

Примеры

Abs
Acos
Acosh
Asin
Asinh
Atan
Atan2
Atanh
Cbrt
Ceil
Copysign
Cos
Cosh
Dim
Exp
Exp2
Expm1
Floor
Log
Log10
Log2
Mod
Modf
Pow
Pow10
Remainder
Round
RoundToEven
Sin
Sincos
Sinh
Sqrt
Tan
Tanh
Trunc

Файлы пакета

abs.go acosh.go asin.go asinh.go atan.go atan2.go atanh.go bits.go cbrt.go const.go copysign.go dim.go dim_asm.go erf.go erfinv.go exp.go exp2_noasm.go exp_amd64.go exp_asm.go expm1.go floor.go floor_asm.go fma.go frexp.go gamma.go hypot.go hypot_asm.go j0.go j1.go jn.go ldexp.go lgamma.go log.go log10.go log1p.go log_asm.go logb.go mod.go modf.go nextafter.go pow.go pow10.go remainder.go signbit.go sin.go sincos.go sinh.go sqrt.go stubs.go tan.go tanh.go trig_reduce.go unsafe.go

Константы

Математические константы.

const (
    E   = 2.71828182845904523536028747135266249775724709369995957496696763 // https://oeis.org/A001113
    Pi  = 3.14159265358979323846264338327950288419716939937510582097494459 // https://oeis.org/A000796
    Phi = 1.61803398874989484820458683436563811772030917980576286213544862 // https://oeis.org/A001622

    Sqrt2   = 1.41421356237309504880168872420969807856967187537694807317667974 // https://oeis.org/A002193
    SqrtE   = 1.64872127070012814684865078781416357165377610071014801157507931 // https://oeis.org/A019774
    SqrtPi  = 1.77245385090551602729816748334114518279754945612238712821380779 // https://oeis.org/A002161
    SqrtPhi = 1.27201964951406896425242246173749149171560804184009624861664038 // https://oeis.org/A139339

    Ln2    = 0.693147180559945309417232121458176568075500134360255254120680009 // https://oeis.org/A002162
    Log2E  = 1 / Ln2
    Ln10   = 2.30258509299404568401799145468436420760110148862877297603332790 // https://oeis.org/A002392
    Log10E = 1 / Ln10
)

Предельные значения с плавающей точкой. Max — наибольшее конечное значение, представимое данным типом. SmallestNonzero — наименьшее положительное ненулевое значение, представимое данным типом.

const (
    MaxFloat32             = 0x1p127 * (1 + (1 - 0x1p-23)) // 3.40282346638528859811704183484516925440e+38
    SmallestNonzeroFloat32 = 0x1p-126 * 0x1p-23            // 1.401298464324817070923729583289916131280e-45

    MaxFloat64             = 0x1p1023 * (1 + (1 - 0x1p-52)) // 1.79769313486231570814527423731704356798070e+308
    SmallestNonzeroFloat64 = 0x1p-1022 * 0x1p-52            // 4.9406564584124654417656879286822137236505980e-324
)

Предельные значения целых чисел.

const (
    MaxInt    = 1<<(intSize-1) - 1  // MaxInt32 or MaxInt64 depending on intSize.
    MinInt    = -1 << (intSize - 1) // MinInt32 or MinInt64 depending on intSize.
    MaxInt8   = 1<<7 - 1            // 127
    MinInt8   = -1 << 7             // -128
    MaxInt16  = 1<<15 - 1           // 32767
    MinInt16  = -1 << 15            // -32768
    MaxInt32  = 1<<31 - 1           // 2147483647
    MinInt32  = -1 << 31            // -2147483648
    MaxInt64  = 1<<63 - 1           // 9223372036854775807
    MinInt64  = -1 << 63            // -9223372036854775808
    MaxUint   = 1<<intSize - 1      // MaxUint32 or MaxUint64 depending on intSize.
    MaxUint8  = 1<<8 - 1            // 255
    MaxUint16 = 1<<16 - 1           // 65535
    MaxUint32 = 1<<32 - 1           // 4294967295
    MaxUint64 = 1<<64 - 1           // 18446744073709551615
)

func Abs

func Abs(x float64) float64

Abs возвращает абсолютное значение x.

Особые случаи:

Abs(±Inf) = +Inf
Abs(NaN) = NaN

Пример

Код:

x := math.Abs(-2)
fmt.Printf("%.1f\n", x)

y := math.Abs(2)
fmt.Printf("%.1f\n", y)

Вывод:

2.0
2.0

func Acos

func Acos(x float64) float64

Acos возвращает арккосинус x в радианах.

Особый случай:

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

Пример

Код:

fmt.Printf("%.2f", math.Acos(1))

Вывод:

0.00

func Acosh

func Acosh(x float64) float64

Acosh возвращает обратный гиперболический косинус x.

Особые случаи:

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

Пример

Код:

fmt.Printf("%.2f", math.Acosh(1))

Вывод:

0.00

func Asin

func Asin(x float64) float64

Asin возвращает арксинус x в радианах.

Особые случаи:

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

Пример

Код:

fmt.Printf("%.2f", math.Asin(0))

Вывод:

0.00

func Asinh

func Asinh(x float64) float64

Asinh возвращает обратный гиперболический синус x.

Особые случаи:

Asinh(±0) = ±0
Asinh(±Inf) = ±Inf
Asinh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Asinh(0))

Вывод:

0.00

func Atan

func Atan(x float64) float64

Atan возвращает арктангенс x в радианах.

Особые случаи:

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

Пример

Код:

fmt.Printf("%.2f", math.Atan(0))

Вывод:

0.00

func Atan2

func Atan2(y, x float64) float64

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

Пример

Код:

fmt.Printf("%.2f", math.Atan2(0, 0))

Вывод:

0.00

func Atanh

func Atanh(x float64) float64

Atanh возвращает обратный гиперболический тангенс x.

Особые случаи:

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

Пример

Код:

fmt.Printf("%.2f", math.Atanh(0))

Вывод:

0.00

func Cbrt

func Cbrt(x float64) float64

Cbrt возвращает кубический корень из x.

Особые случаи:

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

Пример

Код:

fmt.Printf("%.2f\n", math.Cbrt(8))
fmt.Printf("%.2f\n", math.Cbrt(27))

Вывод:

2.00
3.00

func Ceil

func Ceil(x float64) float64

Ceil возвращает наименьшее целое значение, большее или равное x.

Особые случаи:

Ceil(±0) = ±0
Ceil(±Inf) = ±Inf
Ceil(NaN) = NaN

Пример

Код:

c := math.Ceil(1.49)
fmt.Printf("%.1f", c)

Вывод:

2.0

func Copysign

func Copysign(f, sign float64) float64

Copysign возвращает значение с модулем f и знаком sign.

Пример

Код:

fmt.Printf("%.2f", math.Copysign(3.2, -1))

Вывод:

-3.20

func Cos

func Cos(x float64) float64

Cos возвращает косинус аргумента x, заданного в радианах.

Особые случаи:

Cos(±Inf) = NaN
Cos(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Cos(math.Pi/2))

Вывод:

0.00

func Cosh

func Cosh(x float64) float64

Cosh возвращает гиперболический косинус x.

Особые случаи:

Cosh(±0) = 1
Cosh(±Inf) = +Inf
Cosh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Cosh(0))

Вывод:

1.00

func Dim

func Dim(x, y float64) float64

Dim возвращает максимум из x-y и 0.

Особые случаи:

Dim(+Inf, +Inf) = NaN
Dim(-Inf, -Inf) = NaN
Dim(x, NaN) = Dim(NaN, x) = NaN

Пример

Код:

fmt.Printf("%.2f\n", math.Dim(4, -2))
fmt.Printf("%.2f\n", math.Dim(-4, 2))

Вывод:

6.00
0.00

func Erf

func Erf(x float64) float64

Erf возвращает функцию ошибок от x.

Особые случаи:

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

func Erfc

func Erfc(x float64) float64

Erfc возвращает дополнительную функцию ошибок от x.

Особые случаи:

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

func Erfcinv 1.10

func Erfcinv(x float64) float64

Erfcinv возвращает обратное значение функции Erfc(x).

Особые случаи:

Erfcinv(0) = +Inf
Erfcinv(2) = -Inf
Erfcinv(x) = NaN if x < 0 or x > 2
Erfcinv(NaN) = NaN

func Erfinv 1.10

func Erfinv(x float64) float64

Erfinv возвращает обратную функцию ошибок от x.

Особые случаи:

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

func Exp

func Exp(x float64) float64

Exp возвращает e**x — экспоненту от x по основанию e.

Особые случаи:

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

Очень большие значения приводят к переполнению и дают 0 или +Inf. Очень малые значения приводят к потере значимости и дают 1.

Пример

Код:

fmt.Printf("%.2f\n", math.Exp(1))
fmt.Printf("%.2f\n", math.Exp(2))
fmt.Printf("%.2f\n", math.Exp(-1))

Вывод:

2.72
7.39
0.37

func Exp2

func Exp2(x float64) float64

Exp2 возвращает 2**x — экспоненту от x по основанию 2.

Особые случаи совпадают с Exp.

Пример

Код:

fmt.Printf("%.2f\n", math.Exp2(1))
fmt.Printf("%.2f\n", math.Exp2(-3))

Вывод:

2.00
0.12

func Expm1

func Expm1(x float64) float64

Expm1 возвращает e**x - 1 — экспоненту от x по основанию e минус 1. При x, близком к нулю, результат точнее, чем у Exp(x) - 1.

Особые случаи:

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

Очень большие значения приводят к переполнению и дают -1 или +Inf.

Пример

Код:

fmt.Printf("%.6f\n", math.Expm1(0.01))
fmt.Printf("%.6f\n", math.Expm1(-1))

Вывод:

0.010050
-0.632121

func FMA 1.14

func FMA(x, y, z float64) float64

FMA возвращает x * y + z, вычисленное с единственным округлением. (То есть FMA возвращает результат слитого умножения-сложения x, y и z.)

func Float32bits

func Float32bits(f float32) uint32

Float32bits возвращает двоичное представление f в формате IEEE 754; знаковый бит f и результат находятся в одной и той же битовой позиции. Float32bits(Float32frombits(x)) == x.

func Float32frombits

func Float32frombits(b uint32) float32

Float32frombits возвращает число с плавающей точкой, соответствующее двоичному представлению b в формате IEEE 754; знаковый бит b и результат находятся в одной и той же битовой позиции. Float32frombits(Float32bits(x)) == x.

func Float64bits

func Float64bits(f float64) uint64

Float64bits возвращает двоичное представление f в формате IEEE 754; знаковый бит f и результат находятся в одной и той же битовой позиции. Float64bits(Float64frombits(x)) == x.

func Float64frombits

func Float64frombits(b uint64) float64

Float64frombits возвращает число с плавающей точкой, соответствующее двоичному представлению b в формате IEEE 754; знаковый бит b и результат находятся в одной и той же битовой позиции. Float64frombits(Float64bits(x)) == x.

func Floor

func Floor(x float64) float64

Floor возвращает наибольшее целое значение, меньшее или равное x.

Особые случаи:

Floor(±0) = ±0
Floor(±Inf) = ±Inf
Floor(NaN) = NaN

Пример

Код:

c := math.Floor(1.51)
fmt.Printf("%.1f", c)

Вывод:

1.0

func Frexp

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

Frexp раскладывает f на нормализованную дробь и целую степень двойки. Функция возвращает frac и exp, удовлетворяющие равенству f == frac × 2**exp, причем абсолютное значение frac принадлежит интервалу [½, 1).

Особые случаи:

Frexp(±0) = ±0, 0
Frexp(±Inf) = ±Inf, 0
Frexp(NaN) = NaN, 0

func Gamma

func Gamma(x float64) float64

Gamma возвращает гамма-функцию от x.

Особые случаи:

Gamma(+Inf) = +Inf
Gamma(+0) = +Inf
Gamma(-0) = -Inf
Gamma(x) = NaN for integer x < 0
Gamma(-Inf) = NaN
Gamma(NaN) = NaN

func Hypot

func Hypot(p, q float64) float64

Hypot возвращает Sqrt(p*p + q*q), избегая ненужного переполнения и потери значимости.

Особые случаи:

Hypot(±Inf, q) = +Inf
Hypot(p, ±Inf) = +Inf
Hypot(NaN, q) = NaN
Hypot(p, NaN) = NaN

func Ilogb

func Ilogb(x float64) int

Ilogb возвращает двоичный показатель степени x в виде целого числа.

Особые случаи:

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

func Inf

func Inf(sign int) float64

Inf возвращает положительную бесконечность, если sign >= 0, и отрицательную бесконечность, если sign < 0.

func IsInf

func IsInf(f float64, sign int) bool

IsInf сообщает, является ли f бесконечностью, в соответствии со значением sign. Если sign > 0, IsInf сообщает, является ли f положительной бесконечностью. Если sign < 0, IsInf сообщает, является ли f отрицательной бесконечностью. Если sign == 0, IsInf сообщает, является ли f любой из бесконечностей.

func IsNaN

func IsNaN(f float64) (is bool)

IsNaN сообщает, является ли f значением «не число» (NaN) по стандарту IEEE 754.

func J0

func J0(x float64) float64

J0 возвращает функцию Бесселя первого рода нулевого порядка.

Особые случаи:

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

func J1

func J1(x float64) float64

J1 возвращает функцию Бесселя первого рода первого порядка.

Особые случаи:

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

func Jn

func Jn(n int, x float64) float64

Jn возвращает функцию Бесселя первого рода порядка n.

Особые случаи:

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

func Ldexp

func Ldexp(frac float64, exp int) float64

Ldexp — обратная функция к Frexp. Она возвращает frac × 2**exp.

Особые случаи:

Ldexp(±0, exp) = ±0
Ldexp(±Inf, exp) = ±Inf
Ldexp(NaN, exp) = NaN

func Lgamma

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

Lgamma возвращает натуральный логарифм и знак (-1 или +1) значения Gamma(x).

Особые случаи:

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

func Log

func Log(x float64) float64

Log возвращает натуральный логарифм x.

Особые случаи:

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

Пример

Код:

x := math.Log(1)
fmt.Printf("%.1f\n", x)

y := math.Log(2.7183)
fmt.Printf("%.1f\n", y)

Вывод:

0.0
1.0

func Log10

func Log10(x float64) float64

Log10 возвращает десятичный логарифм x. Особые случаи совпадают с таковыми для Log.

Пример

Код:

fmt.Printf("%.1f", math.Log10(100))

Вывод:

2.0

func Log1p

func Log1p(x float64) float64

Log1p возвращает натуральный логарифм числа 1 плюс аргумент x. При x, близком к нулю, результат точнее, чем у Log(1 + x).

Особые случаи:

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

func Log2

func Log2(x float64) float64

Log2 возвращает двоичный логарифм x. Особые случаи совпадают с таковыми для Log.

Пример

Код:

fmt.Printf("%.1f", math.Log2(256))

Вывод:

8.0

func Logb

func Logb(x float64) float64

Logb возвращает двоичный показатель степени x.

Особые случаи:

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

func Max

func Max(x, y float64) float64

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.

func Min

func Min(x, y float64) float64

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.

func Mod

func Mod(x, y float64) float64

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

Пример

Код:

c := math.Mod(7, 4)
fmt.Printf("%.1f", c)

Вывод:

3.0

func Modf

func Modf(f float64) (integer float64, fractional float64)

Modf возвращает целую и дробную части числа f с плавающей точкой, сумма которых равна f. Знак обеих частей совпадает со знаком f.

Особые случаи:

Modf(±Inf) = ±Inf, NaN
Modf(NaN) = NaN, NaN

Пример

Код:

int, frac := math.Modf(3.14)
fmt.Printf("%.2f, %.2f\n", int, frac)

int, frac = math.Modf(-2.71)
fmt.Printf("%.2f, %.2f\n", int, frac)

Вывод:

3.00, 0.14
-2.00, -0.71

func NaN

func NaN() float64

NaN возвращает значение «не число» (NaN) по стандарту IEEE 754.

func Nextafter

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

Nextafter возвращает следующее представимое значение float64 после x в направлении y.

Особые случаи:

Nextafter(x, y)   = x when x == y
Nextafter(0, y)   = ±SmallestNonzeroFloat64 towards y, for y ≠ 0
Nextafter(NaN, y) = NaN
Nextafter(x, NaN) = NaN

func Nextafter32 1.4

func Nextafter32(x, y float32) (r float32)

Nextafter32 возвращает следующее представимое значение float32 после x в направлении y.

Особые случаи:

Nextafter32(x, y)   = x when x == y
Nextafter32(0, y)   = ±SmallestNonzeroFloat32 towards y, for y ≠ 0
Nextafter32(NaN, y) = NaN
Nextafter32(x, NaN) = NaN

func Pow

func Pow(x, y float64) float64

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

Пример

Код:

c := math.Pow(2, 3)
fmt.Printf("%.1f", c)

Вывод:

8.0

func Pow10

func Pow10(n int) float64

Pow10 возвращает 10**n — экспоненту от n по основанию 10.

Особые случаи:

Pow10(n) =    0 for n < -323
Pow10(n) = +Inf for n > 308

Пример

Код:

c := math.Pow10(2)
fmt.Printf("%.1f", c)

Вывод:

100.0

func Remainder

func Remainder(x, y float64) float64

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

Пример

Код:

fmt.Printf("%.1f", math.Remainder(100, 30))

Вывод:

10.0

func Round 1.10

func Round(x float64) float64

Round возвращает ближайшее целое число, округляя половинные значения от нуля.

Особые случаи:

Round(±0) = ±0
Round(±Inf) = ±Inf
Round(NaN) = NaN

Пример

Код:

p := math.Round(10.5)
fmt.Printf("%.1f\n", p)

n := math.Round(-10.5)
fmt.Printf("%.1f\n", n)

Вывод:

11.0
-11.0

func RoundToEven 1.10

func RoundToEven(x float64) float64

RoundToEven возвращает ближайшее целое число, округляя половинные значения до ближайшего четного.

Особые случаи:

RoundToEven(±0) = ±0
RoundToEven(±Inf) = ±Inf
RoundToEven(NaN) = NaN

Пример

Код:

u := math.RoundToEven(11.5)
fmt.Printf("%.1f\n", u)

d := math.RoundToEven(12.5)
fmt.Printf("%.1f\n", d)

Вывод:

12.0
12.0

func Signbit

func Signbit(x float64) bool

Signbit сообщает, является ли x отрицательным числом или отрицательным нулем.

func Sin

func Sin(x float64) float64

Sin возвращает синус аргумента x, заданного в радианах.

Особые случаи:

Sin(±0) = ±0
Sin(±Inf) = NaN
Sin(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Sin(math.Pi))

Вывод:

0.00

func Sincos

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

Sincos возвращает Sin(x), Cos(x).

Особые случаи:

Sincos(±0) = ±0, 1
Sincos(±Inf) = NaN, NaN
Sincos(NaN) = NaN, NaN

Пример

Код:

sin, cos := math.Sincos(0)
fmt.Printf("%.2f, %.2f", sin, cos)

Вывод:

0.00, 1.00

func Sinh

func Sinh(x float64) float64

Sinh возвращает гиперболический синус x.

Особые случаи:

Sinh(±0) = ±0
Sinh(±Inf) = ±Inf
Sinh(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Sinh(0))

Вывод:

0.00

func Sqrt

func Sqrt(x float64) float64

Sqrt возвращает квадратный корень из x.

Особые случаи:

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

Пример

Код:

const (
    a = 3
    b = 4
)
c := math.Sqrt(a*a + b*b)
fmt.Printf("%.1f", c)

Вывод:

5.0

func Tan

func Tan(x float64) float64

Tan возвращает тангенс аргумента x, заданного в радианах.

Особые случаи:

Tan(±0) = ±0
Tan(±Inf) = NaN
Tan(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f", math.Tan(0))

Вывод:

0.00

func Tanh

func Tanh(x float64) float64

Tanh возвращает гиперболический тангенс x.

Особые случаи:

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

Пример

Код:

fmt.Printf("%.2f", math.Tanh(0))

Вывод:

0.00

func Trunc

func Trunc(x float64) float64

Trunc возвращает целую часть x.

Особые случаи:

Trunc(±0) = ±0
Trunc(±Inf) = ±Inf
Trunc(NaN) = NaN

Пример

Код:

fmt.Printf("%.2f\n", math.Trunc(math.Pi))
fmt.Printf("%.2f\n", math.Trunc(-1.2345))

Вывод:

3.00
-1.00

func Y0

func Y0(x float64) float64

Y0 возвращает функцию Бесселя второго рода нулевого порядка.

Особые случаи:

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

func Y1

func Y1(x float64) float64

Y1 возвращает функцию Бесселя второго рода первого порядка.

Особые случаи:

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

func Yn

func Yn(n int, x float64) float64

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

Подкаталоги

Имя Краткое описание
..
big Пакет big реализует арифметику произвольной точности (большие числа).
bits Пакет bits реализует функции подсчета и манипулирования битами для предопределенных беззнаковых целочисленных типов.
cmplx Пакет cmplx предоставляет основные константы и математические функции для комплексных чисел.
rand Пакет rand реализует генераторы псевдослучайных чисел, подходящие для таких задач, как моделирование, но их не следует использовать для задач, связанных с безопасностью.
v2 Пакет rand реализует генераторы псевдослучайных чисел, подходящие для таких задач, как моделирование, но их не следует использовать для задач, связанных с безопасностью.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/math/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API