Help us shape the future of Go! Take the 2026 Go Developer Survey

math

package
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 22, 2018 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package math provides integer math utilities.

Package bigfloat provides the implementation of a few additional operations for the standard library big.Float type.

Index

Constants

This section is empty.

Variables

View Source
var (
	MaxBig256 = new(big.Int).Set(tt256m1)

	MaxBig63 = new(big.Int).Sub(tt63, big.NewInt(1))
)

Functions

func BigMax

func BigMax(x, y *big.Int) *big.Int

BigMax returns the larger of x or y.

func BigMin

func BigMin(x, y *big.Int) *big.Int

BigMin returns the smaller of x or y.

func BigPow

func BigPow(a, b int64) *big.Int

BigPow returns a ** b as a big integer.

func Byte

func Byte(bigint *big.Int, padlength, n int) byte

Byte returns the byte at position n, with the supplied padlength in Little-Endian encoding. n==0 returns the MSB Example: bigint '5', padlength 32, n=31 => 5

func Exp

func Exp(base, exponent *big.Int) *big.Int

Exp implements exponentiation by squaring. Exp returns a newly-allocated big integer and does not change base or exponent. The result is truncated to 256 bits.

Courtesy @karalabe and @chfast

func ExpFloat added in v0.0.6

func ExpFloat(z *big.Float) *big.Float

Exp returns a big.Float representation of exp(z). Precision is the same as the one of the argument. The function returns +Inf when z = +Inf, and 0 when z = -Inf.

func FirstBitSet

func FirstBitSet(v *big.Int) int

FirstBitSet returns the index of the first 1 bit in v, counting from LSB.

func Log added in v0.0.6

func Log(z *big.Float) *big.Float

Log returns a big.Float representation of the natural logarithm of z. Precision is the same as the one of the argument. The function panics if z is negative, returns -Inf when z = 0, and +Inf when z = +Inf

func MustParseBig256

func MustParseBig256(s string) *big.Int

MustParseBig parses s as a 256 bit big integer and panics if the string is invalid.

func PaddedBigBytes

func PaddedBigBytes(bigint *big.Int, n int) []byte

PaddedBigBytes encodes a big integer as a big-endian byte slice. The length of the slice is at least n bytes.

func ParseBig256

func ParseBig256(s string) (*big.Int, bool)

ParseBig256 parses s as a 256 bit integer in decimal or hexadecimal syntax. Leading zeros are accepted. The empty string parses as zero.

func Pow added in v0.0.6

func Pow(z *big.Float, w *big.Float) *big.Float

Pow returns a big.Float representation of z**w. Precision is the same as the one of the first argument. The function panics when z is negative.

func ReadBits

func ReadBits(bigint *big.Int, buf []byte)

ReadBits encodes the absolute value of bigint as big-endian bytes. Callers must ensure that buf has enough space. If buf is too short the result will be incomplete.

func S256

func S256(x *big.Int) *big.Int

S256 interprets x as a two's complement number. x must not exceed 256 bits (the result is undefined if it does) and is not modified.

S256(0)        = 0
S256(1)        = 1
S256(2**255)   = -2**255
S256(2**256-1) = -1

func Sqrt added in v0.0.6

func Sqrt(z *big.Float) *big.Float

Sqrt returns a big.Float representation of the square root of z. Precision is the same as the one of the argument. The function panics if z is negative, returns ±0 when z = ±0, and +Inf when z = +Inf.

func U256

func U256(x *big.Int) *big.Int

U256 encodes as a 256 bit two's complement number. This operation is destructive.

Types

type HexOrDecimal256

type HexOrDecimal256 big.Int

HexOrDecimal256 marshals big.Int as hex or decimal.

func (*HexOrDecimal256) MarshalText

func (i *HexOrDecimal256) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*HexOrDecimal256) UnmarshalText

func (i *HexOrDecimal256) UnmarshalText(input []byte) error

UnmarshalText implements encoding.TextUnmarshaler.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL