units / org.apache.tuweni.units.bigints / BaseUInt384Value

BaseUInt384Value

abstract class BaseUInt384Value<T : UInt384Value<T>> : UInt384Value<T> (source)

Base class for UInt384Value.

This class is abstract as it is not meant to be used directly, but it has no abstract methods. As mentioned in UInt384Value, this is used to create strongly-typed type aliases of UInt384. In other words, this allow to "tag" numbers with the unit of what they represent for the type-system, which can help clarity, but also forbid mixing numbers that are mean to be of different units (the strongly-typed part).

This class implements UInt384Value, but also adds a few operations that take a UInt384 directly, for instance #multiply(UInt384). The rational is that multiplying a given quantity of something by a "raw" number is always meaningful, and return a new quantity of the same thing.

Parameters

- The concrete type of the value.

Functions

add

open fun add(value: T): T
open fun add(value: Long): Topen fun add(value: UInt384): T

Returns a value that is (this + value).

addMod

open fun addMod(value: T, modulus: UInt384): T
open fun addMod(value: Long, modulus: UInt384): T
open fun addMod(value: Long, modulus: Long): Topen fun addMod(value: UInt384, modulus: UInt384): T

Returns a value equivalent to ((this + value) mod modulus).

compareTo

open fun compareTo(other: T): Intopen fun compareTo(other: UInt384): Int

Compare two UInt384 values.

divide

open fun divide(value: T): T
open fun divide(value: Long): Topen fun divide(value: UInt384): T

Returns a value that is (this / value).

equals

open fun equals(other: Any?): Boolean

hashCode

open fun hashCode(): Int

mod

open fun mod(modulus: UInt384): T
open fun mod(modulus: Long): T

multiply

open fun multiply(value: T): T
open fun multiply(value: Long): Topen fun multiply(value: UInt384): T

Returns a value that is (this * value).

multiplyMod

open fun multiplyMod(value: T, modulus: UInt384): T
open fun multiplyMod(value: Long, modulus: UInt384): T
open fun multiplyMod(value: Long, modulus: Long): Topen fun multiplyMod(value: UInt384, modulus: UInt384): T

Returns a value that is ((this * value) mod modulus).

pow

open fun pow(exponent: UInt384): T
open fun pow(exponent: Long): T

subtract

open fun subtract(value: T): T
open fun subtract(value: Long): Topen fun subtract(value: UInt384): T

Returns a value that is (this - value).

toBytes

open fun toBytes(): Bytes48

toMinimalBytes

open fun toMinimalBytes(): Bytes

toString

open fun toString(): String

toUInt384

open fun toUInt384(): UInt384

Inherited Functions

addExact

open fun addExact(value: T): T
open fun addExact(value: Long): T

Returns a value that is (this + value).

bitLength

open fun bitLength(): Int

fitsInt

open fun fitsInt(): Boolean

fitsLong

open fun fitsLong(): Boolean

intValue

open fun intValue(): Int

isZero

open fun isZero(): Boolean

numberOfLeadingZeros

open fun numberOfLeadingZeros(): Int

subtractExact

open fun subtractExact(value: T): T
open fun subtractExact(value: Long): T

Returns a value that is (this - value).

toBigInteger

open fun toBigInteger(): BigInteger

toHexString

open fun toHexString(): String

This value represented as an hexadecimal string.

Note that this representation includes all the 48 underlying bytes, no matter what the integer actually represents (in other words, it can have many leading zeros). For a shorter representation that don't include leading zeros, use #toShortHexString.

toLong

open fun toLong(): Long

toShortHexString

open fun toShortHexString(): String