math

package
v1.14.12 Latest Latest
Warning

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

Go to latest
Published: Nov 19, 2024 License: GPL-3.0 Imports: 4 Imported by: 6,789

Documentation

Overview

Package math provides integer math utilities.

Index

Constants

This section is empty.

Variables

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

Various big integer limit values.

Functions

func BigPow added in v1.6.0

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

BigPow returns a ** b as a big integer.

func MustParseBig256 added in v1.6.0

func MustParseBig256(s string) *big.Int

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

func MustParseUint64 added in v1.6.0

func MustParseUint64(s string) uint64

MustParseUint64 parses s as an integer and panics if the string is invalid.

func PaddedBigBytes added in v1.6.0

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 added in v1.6.0

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 ParseUint64 added in v1.6.0

func ParseUint64(s string) (uint64, bool)

ParseUint64 parses s as an integer in decimal or hexadecimal syntax. Leading zeros are accepted. The empty string parses as zero.

func ReadBits added in v1.6.0

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 SafeAdd added in v1.6.0

func SafeAdd(x, y uint64) (uint64, bool)

SafeAdd returns x+y and checks for overflow.

func SafeMul added in v1.6.0

func SafeMul(x, y uint64) (uint64, bool)

SafeMul returns x*y and checks for overflow.

func SafeSub added in v1.6.0

func SafeSub(x, y uint64) (uint64, bool)

SafeSub returns x-y and checks for overflow.

func U256 added in v1.6.0

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

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

func U256Bytes added in v1.9.14

func U256Bytes(n *big.Int) []byte

U256Bytes converts a big Int into a 256bit EVM number. This operation is destructive.

Types

type Decimal256 added in v1.9.23

type Decimal256 big.Int

Decimal256 unmarshals big.Int as a decimal string. When unmarshalling, it however accepts either "0x"-prefixed (hex encoded) or non-prefixed (decimal)

func NewDecimal256 added in v1.9.23

func NewDecimal256(x int64) *Decimal256

NewDecimal256 creates a new Decimal256

func (*Decimal256) MarshalText added in v1.9.23

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

MarshalText implements encoding.TextMarshaler.

func (*Decimal256) String added in v1.9.23

func (i *Decimal256) String() string

String implements Stringer.

func (*Decimal256) UnmarshalText added in v1.9.23

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

UnmarshalText implements encoding.TextUnmarshaler.

type HexOrDecimal256 added in v1.6.0

type HexOrDecimal256 big.Int

HexOrDecimal256 marshals big.Int as hex or decimal.

func NewHexOrDecimal256 added in v1.9.0

func NewHexOrDecimal256(x int64) *HexOrDecimal256

NewHexOrDecimal256 creates a new HexOrDecimal256

func (*HexOrDecimal256) MarshalText added in v1.6.0

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

MarshalText implements encoding.TextMarshaler.

func (*HexOrDecimal256) UnmarshalJSON added in v1.11.2

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

UnmarshalJSON implements json.Unmarshaler.

It is similar to UnmarshalText, but allows parsing real decimals too, not just quoted decimal strings.

func (*HexOrDecimal256) UnmarshalText added in v1.6.0

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

UnmarshalText implements encoding.TextUnmarshaler.

type HexOrDecimal64 added in v1.6.0

type HexOrDecimal64 uint64

HexOrDecimal64 marshals uint64 as hex or decimal.

func (HexOrDecimal64) MarshalText added in v1.6.0

func (i HexOrDecimal64) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler.

func (*HexOrDecimal64) UnmarshalJSON added in v1.11.2

func (i *HexOrDecimal64) UnmarshalJSON(input []byte) error

UnmarshalJSON implements json.Unmarshaler.

It is similar to UnmarshalText, but allows parsing real decimals too, not just quoted decimal strings.

func (*HexOrDecimal64) UnmarshalText added in v1.6.0

func (i *HexOrDecimal64) 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