math

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Jul 14, 2022 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

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

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

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

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