util

package
v0.0.0-...-84d53aa Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2019 License: GPL-3.0 Imports: 3 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Uint128Bytes defines the number of bytes for Uint128 type.
	Uint128Bytes = 16

	// Uint128Bits defines the number of bits for Uint128 type.
	Uint128Bits = 128
)

Variables

View Source
var (
	// ErrUint128Overflow indicates the value is greater than uint128 maximum value 2^128.
	ErrUint128Overflow = errors.New("uint128: overflow")

	// ErrUint128Underflow indicates the value is smaller then uint128 minimum value 0.
	ErrUint128Underflow = errors.New("uint128: underflow")

	// ErrUint128InvalidBytesSize indicates the bytes size is not equal to Uint128Bytes.
	ErrUint128InvalidBytesSize = errors.New("uint128: invalid bytes")

	// ErrUint128InvalidString indicates the string is not valid when converted to uin128.
	ErrUint128InvalidString = errors.New("uint128: invalid string to uint128")
)

Functions

This section is empty.

Types

type Uint128

type Uint128 struct {
	// contains filtered or unexported fields
}

Uint128 defines uint128 type, based on big.Int.

For arithmetic operations, use uint128.Int.Add()/Sub()/Mul()/Div()/etc. For example, u1.Add(u1.Int, u2.Int) sets u1 to u1 + u2.

func NewUint128

func NewUint128() *Uint128

NewUint128 returns a new Uint128 struct with default value.

func NewUint128FromBigInt

func NewUint128FromBigInt(Big *big.Int) (*Uint128, error)

NewUint128FromBigInt returns a new Uint128 struct with given value and have a check.

func NewUint128FromFixedSizeByteSlice

func NewUint128FromFixedSizeByteSlice(bytes []byte) (*Uint128, error)

NewUint128FromFixedSizeByteSlice returns a new Uint128 struct with given fixed size byte slice.

func NewUint128FromInt

func NewUint128FromInt(i int64) (*Uint128, error)

NewUint128FromInt returns a new Uint128 struct with given value and have a check.

func NewUint128FromString

func NewUint128FromString(str string) (*Uint128, error)

NewUint128FromString returns a new Uint128 struct with given value and have a check.

func NewUint128FromUint

func NewUint128FromUint(i uint64) *Uint128

NewUint128FromUint returns a new Uint128 with given value

func Uint128Zero

func Uint128Zero() *Uint128

Uint128Zero zero of uint128

func (*Uint128) Add

func (u *Uint128) Add(x *Uint128) (*Uint128, error)

Add returns u + x

func (*Uint128) BigInt

func (u *Uint128) BigInt() *big.Int

BigInt returns the big int representation of x.

func (*Uint128) Bytes

func (u *Uint128) Bytes() []byte

Bytes absolute value of u as a big-endian byte slice.

func (*Uint128) Cmp

func (u *Uint128) Cmp(x *Uint128) int

Cmp compares u and x and returns:

-1 if u <  x
 0 if u == x
+1 if u >  x

func (*Uint128) DeepCopy

func (u *Uint128) DeepCopy() *Uint128

DeepCopy returns a deep copy of u

func (*Uint128) Div

func (u *Uint128) Div(x *Uint128) (*Uint128, error)

Div returns u / x

func (*Uint128) Exp

func (u *Uint128) Exp(x *Uint128) (*Uint128, error)

Exp returns u^x

func (*Uint128) FromFixedSizeByteSlice

func (u *Uint128) FromFixedSizeByteSlice(bytes []byte) error

FromFixedSizeByteSlice converts Big-Endian fixed size bytes to Uint128.

func (*Uint128) FromFixedSizeBytes

func (u *Uint128) FromFixedSizeBytes(bytes [16]byte) (*Uint128, error)

FromFixedSizeBytes converts Big-Endian fixed size bytes to Uint128.

func (*Uint128) Mul

func (u *Uint128) Mul(x *Uint128) (*Uint128, error)

Mul returns u * x

func (*Uint128) MulWithRat

func (u *Uint128) MulWithRat(x *big.Rat) (*Uint128, error)

MulWithRat multiply uin128 with big.Rat

func (*Uint128) String

func (u *Uint128) String() string

String returns the string representation of x.

func (*Uint128) Sub

func (u *Uint128) Sub(x *Uint128) (*Uint128, error)

Sub returns u - x

func (*Uint128) ToFixedSizeByteSlice

func (u *Uint128) ToFixedSizeByteSlice() ([]byte, error)

ToFixedSizeByteSlice converts Uint128 to Big-Endian fixed size byte slice.

func (*Uint128) ToFixedSizeBytes

func (u *Uint128) ToFixedSizeBytes() ([16]byte, error)

ToFixedSizeBytes converts Uint128 to Big-Endian fixed size bytes.

func (*Uint128) Uint64

func (u *Uint128) Uint64() uint64

Uint64 returns the uint64 representation of x. If x cannot be represented in a uint64, the result is undefined.

func (*Uint128) Validate

func (u *Uint128) Validate() error

Validate returns error if u is not a valid uint128, otherwise returns nil.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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