UNPKG

@hastom/fixed-point

Version:

Light lib for fixed point math made around native bigint

69 lines (68 loc) 2.61 kB
export declare enum Rounding { ROUND_UP = 0, ROUND_DOWN = 1, ROUND_CEIL = 2, ROUND_FLOOR = 3, ROUND_HALF_UP = 4, ROUND_HALF_DOWN = 5, ROUND_HALF_EVEN = 6, ROUND_HALF_CEIL = 7, ROUND_HALF_FLOOR = 8 } export declare enum Decimals { left = "left", right = "right", min = "min", max = "max", add = "add", sub = "sub" } export type PrecisionResolution = Decimals | number | bigint; export declare class FixedPoint { static min(arg0: FixedPoint, ...args: FixedPoint[]): FixedPoint; static max(arg0: FixedPoint, ...args: FixedPoint[]): FixedPoint; private _base; private _precision; constructor(base: bigint, precision: bigint); get base(): bigint; get precision(): bigint; add(arg: FixedPoint, resultPrecision?: PrecisionResolution): FixedPoint; plus: (arg: FixedPoint, resultPrecision?: PrecisionResolution) => FixedPoint; sub(arg: FixedPoint, resultPrecision?: PrecisionResolution): FixedPoint; minus: (arg: FixedPoint, resultPrecision?: PrecisionResolution) => FixedPoint; mul(arg: FixedPoint, resultPrecision?: PrecisionResolution): FixedPoint; times: (arg: FixedPoint, resultPrecision?: PrecisionResolution) => FixedPoint; multipliedBy: (arg: FixedPoint, resultPrecision?: PrecisionResolution) => FixedPoint; div(arg: FixedPoint, resultPrecision?: PrecisionResolution): FixedPoint; dividedBy: (arg: FixedPoint, resultPrecision?: PrecisionResolution) => FixedPoint; cmp(arg: FixedPoint, comparator: (a: bigint, b: bigint) => boolean): boolean; eq(arg: FixedPoint): boolean; isEqualTo: (arg: FixedPoint) => boolean; gt(arg: FixedPoint): boolean; isGreaterThan: (arg: FixedPoint) => boolean; lt(arg: FixedPoint): boolean; isLessThan: (arg: FixedPoint) => boolean; gte(arg: FixedPoint): boolean; isGreaterThanOrEqualTo: (arg: FixedPoint) => boolean; lte(arg: FixedPoint): boolean; isLessThanOrEqualTo: (arg: FixedPoint) => boolean; neg(): FixedPoint; negated: () => FixedPoint; abs(): FixedPoint; absoluteValue: () => FixedPoint; sqrt(): FixedPoint; squareRoot: () => FixedPoint; isZero(): boolean; isPositive(): boolean; isNegative(): boolean; floor(): FixedPoint; ceil(): FixedPoint; round(mode?: Rounding): FixedPoint; setPrecision(newPrecision: bigint, rounding?: Rounding): void; toPrecision(resultPrecision: number | bigint, rounding?: Rounding): FixedPoint; toString(): string; toJSON(): string; toDecimalString(): string; toDecimal(): number; valueOf(): number; }