Module orca_whirlpool.internal.utils.q64_fixed_point_math

Expand source code
import math
from decimal import Decimal


class Q64FixedPointMath:
    @staticmethod
    def int_to_x64int(num: int) -> int:
        return num * 2**64

    @staticmethod
    def x64int_to_int(num: int) -> int:
        return num // 2**64

    @staticmethod
    def x64int_to_decimal(num: int) -> Decimal:
        shift_64 = Decimal(2)**64
        return Decimal(num) / shift_64

    @staticmethod
    def decimal_to_x64int(num: Decimal) -> int:
        shift_64 = Decimal(2)**64
        return math.floor(num * shift_64)

Classes

class Q64FixedPointMath
Expand source code
class Q64FixedPointMath:
    @staticmethod
    def int_to_x64int(num: int) -> int:
        return num * 2**64

    @staticmethod
    def x64int_to_int(num: int) -> int:
        return num // 2**64

    @staticmethod
    def x64int_to_decimal(num: int) -> Decimal:
        shift_64 = Decimal(2)**64
        return Decimal(num) / shift_64

    @staticmethod
    def decimal_to_x64int(num: Decimal) -> int:
        shift_64 = Decimal(2)**64
        return math.floor(num * shift_64)

Static methods

def decimal_to_x64int(num: decimal.Decimal) ‑> int
Expand source code
@staticmethod
def decimal_to_x64int(num: Decimal) -> int:
    shift_64 = Decimal(2)**64
    return math.floor(num * shift_64)
def int_to_x64int(num: int) ‑> int
Expand source code
@staticmethod
def int_to_x64int(num: int) -> int:
    return num * 2**64
def x64int_to_decimal(num: int) ‑> decimal.Decimal
Expand source code
@staticmethod
def x64int_to_decimal(num: int) -> Decimal:
    shift_64 = Decimal(2)**64
    return Decimal(num) / shift_64
def x64int_to_int(num: int) ‑> int
Expand source code
@staticmethod
def x64int_to_int(num: int) -> int:
    return num // 2**64