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