@hazae41/fixed 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var hexane = require('@hazae41/hexane');
|
|
4
4
|
var index = require('../../libs/bigint/index.cjs');
|
|
5
5
|
|
|
6
6
|
class ZeroHexFixedInit {
|
|
@@ -34,7 +34,7 @@ class Fixed {
|
|
|
34
34
|
static from(from) {
|
|
35
35
|
if (from instanceof Fixed) return from;
|
|
36
36
|
if (typeof from.value === "bigint") return new Fixed(from.value, from.decimals);
|
|
37
|
-
return new Fixed(
|
|
37
|
+
return new Fixed(hexane.ZeroHexString.toBigInt(from.value), from.decimals);
|
|
38
38
|
}
|
|
39
39
|
static fromBigInt(value) {
|
|
40
40
|
return new Fixed(value, 0);
|
|
@@ -43,10 +43,10 @@ class Fixed {
|
|
|
43
43
|
return new Fixed(init.value, init.decimals);
|
|
44
44
|
}
|
|
45
45
|
static fromZeroHexInit(init) {
|
|
46
|
-
return new Fixed(
|
|
46
|
+
return new Fixed(hexane.ZeroHexString.toBigInt(init.value), init.decimals);
|
|
47
47
|
}
|
|
48
48
|
static fromZeroHexString(value) {
|
|
49
|
-
return new Fixed(
|
|
49
|
+
return new Fixed(hexane.ZeroHexString.toBigInt(value), 0);
|
|
50
50
|
}
|
|
51
51
|
static fromDecimalString(text) {
|
|
52
52
|
const [whole = "0", decimal = "0"] = text.split(".");
|
|
@@ -57,13 +57,13 @@ class Fixed {
|
|
|
57
57
|
return this.value;
|
|
58
58
|
}
|
|
59
59
|
toZeroHexString() {
|
|
60
|
-
return
|
|
60
|
+
return hexane.ZeroHexString.fromBigInt(this.value);
|
|
61
61
|
}
|
|
62
62
|
toBigIntInit() {
|
|
63
63
|
return new BigIntFixedInit(this.value, this.decimals);
|
|
64
64
|
}
|
|
65
65
|
toZeroHexInit() {
|
|
66
|
-
return new ZeroHexFixedInit(
|
|
66
|
+
return new ZeroHexFixedInit(hexane.ZeroHexString.fromBigInt(this.value), this.decimals);
|
|
67
67
|
}
|
|
68
68
|
toDecimalString() {
|
|
69
69
|
const raw = this.value.toString().padStart(this.decimals, "0");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../../src/mods/fixed/index.ts"],"sourcesContent":["import { ZeroHexString } from \"@hazae41/hex\"\nimport { BigInts } from \"libs/bigint/index.js\"\n\nexport type FixedInit<D extends number = number> =\n | ZeroHexFixedInit<D>\n | BigIntFixedInit<D>\n\nexport interface ZeroHexFixedInit<D extends number = number> {\n readonly value: ZeroHexString,\n readonly decimals: D\n}\n\nexport class ZeroHexFixedInit<D extends number = number> {\n\n constructor(\n readonly value: ZeroHexString,\n readonly decimals: D\n ) { }\n\n}\n\nexport interface BigIntFixedInit<D extends number = number> {\n readonly value: bigint,\n readonly decimals: D\n}\n\nexport class BigIntFixedInit<D extends number = number> {\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) { }\n\n}\n\nexport namespace Fixed {\n\n export type From<D extends number = number> =\n | BigIntFixedInit<D>\n | ZeroHexFixedInit<D>\n\n}\n\nexport class Fixed<D extends number = number> implements BigIntFixedInit {\n\n readonly tens: bigint\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) {\n this.tens = BigInts.tensOf(decimals)\n }\n\n static unit<D extends number = number>(decimals: D) {\n return new Fixed(BigInts.tensOf(decimals), decimals)\n }\n\n static from<D extends number = number>(from: Fixed.From<D>) {\n if (from instanceof Fixed)\n return from\n if (typeof from.value === \"bigint\")\n return new Fixed(from.value, from.decimals)\n return new Fixed(ZeroHexString.toBigInt(from.value), from.decimals)\n }\n\n static fromBigInt(value: bigint) {\n return new Fixed(value, 0)\n }\n\n static fromBigIntInit<D extends number>(init: BigIntFixedInit<D>) {\n return new Fixed(init.value, init.decimals)\n }\n\n static fromZeroHexInit<D extends number>(init: ZeroHexFixedInit<D>) {\n return new Fixed(ZeroHexString.toBigInt(init.value), init.decimals)\n }\n\n static fromZeroHexString(value: ZeroHexString) {\n return new Fixed(ZeroHexString.toBigInt(value), 0)\n }\n\n static fromDecimalString(text: string) {\n const [whole = \"0\", decimal = \"0\"] = text.split(\".\")\n\n const value = BigInt(whole + decimal)\n\n return new Fixed(value, decimal.length)\n }\n\n toBigInt() {\n return this.value\n }\n\n toZeroHexString() {\n return ZeroHexString.fromBigInt(this.value)\n }\n\n toBigIntInit() {\n return new BigIntFixedInit(this.value, this.decimals)\n }\n\n toZeroHexInit() {\n return new ZeroHexFixedInit(ZeroHexString.fromBigInt(this.value), this.decimals)\n }\n\n toDecimalString() {\n const raw = this.value.toString().padStart(this.decimals, \"0\")\n\n const whole = raw.slice(0, raw.length - this.decimals).replaceAll(\"0\", \" \").trimStart().replaceAll(\" \", \"0\")\n const decimal = raw.slice(raw.length - this.decimals).replaceAll(\"0\", \" \").trimEnd().replaceAll(\" \", \"0\")\n\n if (!decimal)\n return (whole || \"0\")\n\n return `${whole || \"0\"}.${decimal}`\n }\n\n toString() {\n return this.toDecimalString()\n }\n\n toJSON() {\n return this.toZeroHexInit()\n }\n\n as(decimals: number) {\n return new Fixed(this.value, decimals)\n }\n\n move<D extends number>(decimals: D): Fixed<D> {\n if (this.decimals > decimals)\n return new Fixed(this.value / BigInts.tensOf(this.decimals - decimals), decimals)\n if (this.decimals < decimals)\n return new Fixed(this.value * BigInts.tensOf(decimals - this.decimals), decimals)\n return new Fixed(this.value, decimals)\n }\n\n add(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) + (vy * (tr / ty)), dr)\n }\n\n sub(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) - (vy * (tr / ty)), dr)\n }\n\n mul(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = dx + dy\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed(vx * vy, dr)\n }\n\n div(other: Fixed) {\n const dx = this.decimals\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * ty) / vy, dx)\n }\n\n floor() {\n return new Fixed(this.value - (this.value % this.tens), this.decimals)\n }\n\n ceil() {\n return new Fixed(this.value + (this.tens - (this.value % this.tens)), this.decimals)\n }\n\n round() {\n return new Fixed(this.value + (this.tens / 2n) - ((this.value + (this.tens / 2n)) % this.tens), this.decimals)\n }\n\n}\n"],"names":["ZeroHexFixedInit","constructor","decimals","value","BigIntFixedInit","Fixed","tens","BigInts","tensOf","unit","from","ZeroHexString","toBigInt","fromBigInt","fromBigIntInit","init","fromZeroHexInit","fromZeroHexString","fromDecimalString","text","whole","decimal","split","BigInt","length","toZeroHexString","toBigIntInit","toZeroHexInit","toDecimalString","raw","toString","padStart","slice","replaceAll","trimStart","trimEnd","toJSON","as","move","add","other","dx","dy","dr","Math","max","tr","tx","ty","vx","vy","sub","mul","div","floor","ceil","round"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../../src/mods/fixed/index.ts"],"sourcesContent":["import { ZeroHexString } from \"@hazae41/hexane\"\nimport { BigInts } from \"libs/bigint/index.js\"\n\nexport type FixedInit<D extends number = number> =\n | ZeroHexFixedInit<D>\n | BigIntFixedInit<D>\n\nexport interface ZeroHexFixedInit<D extends number = number> {\n readonly value: ZeroHexString,\n readonly decimals: D\n}\n\nexport class ZeroHexFixedInit<D extends number = number> {\n\n constructor(\n readonly value: ZeroHexString,\n readonly decimals: D\n ) { }\n\n}\n\nexport interface BigIntFixedInit<D extends number = number> {\n readonly value: bigint,\n readonly decimals: D\n}\n\nexport class BigIntFixedInit<D extends number = number> {\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) { }\n\n}\n\nexport namespace Fixed {\n\n export type From<D extends number = number> =\n | BigIntFixedInit<D>\n | ZeroHexFixedInit<D>\n\n}\n\nexport class Fixed<D extends number = number> implements BigIntFixedInit {\n\n readonly tens: bigint\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) {\n this.tens = BigInts.tensOf(decimals)\n }\n\n static unit<D extends number = number>(decimals: D) {\n return new Fixed(BigInts.tensOf(decimals), decimals)\n }\n\n static from<D extends number = number>(from: Fixed.From<D>) {\n if (from instanceof Fixed)\n return from\n if (typeof from.value === \"bigint\")\n return new Fixed(from.value, from.decimals)\n return new Fixed(ZeroHexString.toBigInt(from.value), from.decimals)\n }\n\n static fromBigInt(value: bigint) {\n return new Fixed(value, 0)\n }\n\n static fromBigIntInit<D extends number>(init: BigIntFixedInit<D>) {\n return new Fixed(init.value, init.decimals)\n }\n\n static fromZeroHexInit<D extends number>(init: ZeroHexFixedInit<D>) {\n return new Fixed(ZeroHexString.toBigInt(init.value), init.decimals)\n }\n\n static fromZeroHexString(value: ZeroHexString) {\n return new Fixed(ZeroHexString.toBigInt(value), 0)\n }\n\n static fromDecimalString(text: string) {\n const [whole = \"0\", decimal = \"0\"] = text.split(\".\")\n\n const value = BigInt(whole + decimal)\n\n return new Fixed(value, decimal.length)\n }\n\n toBigInt() {\n return this.value\n }\n\n toZeroHexString() {\n return ZeroHexString.fromBigInt(this.value)\n }\n\n toBigIntInit() {\n return new BigIntFixedInit(this.value, this.decimals)\n }\n\n toZeroHexInit() {\n return new ZeroHexFixedInit(ZeroHexString.fromBigInt(this.value), this.decimals)\n }\n\n toDecimalString() {\n const raw = this.value.toString().padStart(this.decimals, \"0\")\n\n const whole = raw.slice(0, raw.length - this.decimals).replaceAll(\"0\", \" \").trimStart().replaceAll(\" \", \"0\")\n const decimal = raw.slice(raw.length - this.decimals).replaceAll(\"0\", \" \").trimEnd().replaceAll(\" \", \"0\")\n\n if (!decimal)\n return (whole || \"0\")\n\n return `${whole || \"0\"}.${decimal}`\n }\n\n toString() {\n return this.toDecimalString()\n }\n\n toJSON() {\n return this.toZeroHexInit()\n }\n\n as(decimals: number) {\n return new Fixed(this.value, decimals)\n }\n\n move<D extends number>(decimals: D): Fixed<D> {\n if (this.decimals > decimals)\n return new Fixed(this.value / BigInts.tensOf(this.decimals - decimals), decimals)\n if (this.decimals < decimals)\n return new Fixed(this.value * BigInts.tensOf(decimals - this.decimals), decimals)\n return new Fixed(this.value, decimals)\n }\n\n add(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) + (vy * (tr / ty)), dr)\n }\n\n sub(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) - (vy * (tr / ty)), dr)\n }\n\n mul(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = dx + dy\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed(vx * vy, dr)\n }\n\n div(other: Fixed) {\n const dx = this.decimals\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * ty) / vy, dx)\n }\n\n floor() {\n return new Fixed(this.value - (this.value % this.tens), this.decimals)\n }\n\n ceil() {\n return new Fixed(this.value + (this.tens - (this.value % this.tens)), this.decimals)\n }\n\n round() {\n return new Fixed(this.value + (this.tens / 2n) - ((this.value + (this.tens / 2n)) % this.tens), this.decimals)\n }\n\n}\n"],"names":["ZeroHexFixedInit","constructor","decimals","value","BigIntFixedInit","Fixed","tens","BigInts","tensOf","unit","from","ZeroHexString","toBigInt","fromBigInt","fromBigIntInit","init","fromZeroHexInit","fromZeroHexString","fromDecimalString","text","whole","decimal","split","BigInt","length","toZeroHexString","toBigIntInit","toZeroHexInit","toDecimalString","raw","toString","padStart","slice","replaceAll","trimStart","trimEnd","toJSON","as","move","add","other","dx","dy","dr","Math","max","tr","tx","ty","vx","vy","sub","mul","div","floor","ceil","round"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../src/mods/fixed/index.ts"],"sourcesContent":["import { ZeroHexString } from \"@hazae41/hex\"\nimport { BigInts } from \"libs/bigint/index.js\"\n\nexport type FixedInit<D extends number = number> =\n | ZeroHexFixedInit<D>\n | BigIntFixedInit<D>\n\nexport interface ZeroHexFixedInit<D extends number = number> {\n readonly value: ZeroHexString,\n readonly decimals: D\n}\n\nexport class ZeroHexFixedInit<D extends number = number> {\n\n constructor(\n readonly value: ZeroHexString,\n readonly decimals: D\n ) { }\n\n}\n\nexport interface BigIntFixedInit<D extends number = number> {\n readonly value: bigint,\n readonly decimals: D\n}\n\nexport class BigIntFixedInit<D extends number = number> {\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) { }\n\n}\n\nexport namespace Fixed {\n\n export type From<D extends number = number> =\n | BigIntFixedInit<D>\n | ZeroHexFixedInit<D>\n\n}\n\nexport class Fixed<D extends number = number> implements BigIntFixedInit {\n\n readonly tens: bigint\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) {\n this.tens = BigInts.tensOf(decimals)\n }\n\n static unit<D extends number = number>(decimals: D) {\n return new Fixed(BigInts.tensOf(decimals), decimals)\n }\n\n static from<D extends number = number>(from: Fixed.From<D>) {\n if (from instanceof Fixed)\n return from\n if (typeof from.value === \"bigint\")\n return new Fixed(from.value, from.decimals)\n return new Fixed(ZeroHexString.toBigInt(from.value), from.decimals)\n }\n\n static fromBigInt(value: bigint) {\n return new Fixed(value, 0)\n }\n\n static fromBigIntInit<D extends number>(init: BigIntFixedInit<D>) {\n return new Fixed(init.value, init.decimals)\n }\n\n static fromZeroHexInit<D extends number>(init: ZeroHexFixedInit<D>) {\n return new Fixed(ZeroHexString.toBigInt(init.value), init.decimals)\n }\n\n static fromZeroHexString(value: ZeroHexString) {\n return new Fixed(ZeroHexString.toBigInt(value), 0)\n }\n\n static fromDecimalString(text: string) {\n const [whole = \"0\", decimal = \"0\"] = text.split(\".\")\n\n const value = BigInt(whole + decimal)\n\n return new Fixed(value, decimal.length)\n }\n\n toBigInt() {\n return this.value\n }\n\n toZeroHexString() {\n return ZeroHexString.fromBigInt(this.value)\n }\n\n toBigIntInit() {\n return new BigIntFixedInit(this.value, this.decimals)\n }\n\n toZeroHexInit() {\n return new ZeroHexFixedInit(ZeroHexString.fromBigInt(this.value), this.decimals)\n }\n\n toDecimalString() {\n const raw = this.value.toString().padStart(this.decimals, \"0\")\n\n const whole = raw.slice(0, raw.length - this.decimals).replaceAll(\"0\", \" \").trimStart().replaceAll(\" \", \"0\")\n const decimal = raw.slice(raw.length - this.decimals).replaceAll(\"0\", \" \").trimEnd().replaceAll(\" \", \"0\")\n\n if (!decimal)\n return (whole || \"0\")\n\n return `${whole || \"0\"}.${decimal}`\n }\n\n toString() {\n return this.toDecimalString()\n }\n\n toJSON() {\n return this.toZeroHexInit()\n }\n\n as(decimals: number) {\n return new Fixed(this.value, decimals)\n }\n\n move<D extends number>(decimals: D): Fixed<D> {\n if (this.decimals > decimals)\n return new Fixed(this.value / BigInts.tensOf(this.decimals - decimals), decimals)\n if (this.decimals < decimals)\n return new Fixed(this.value * BigInts.tensOf(decimals - this.decimals), decimals)\n return new Fixed(this.value, decimals)\n }\n\n add(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) + (vy * (tr / ty)), dr)\n }\n\n sub(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) - (vy * (tr / ty)), dr)\n }\n\n mul(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = dx + dy\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed(vx * vy, dr)\n }\n\n div(other: Fixed) {\n const dx = this.decimals\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * ty) / vy, dx)\n }\n\n floor() {\n return new Fixed(this.value - (this.value % this.tens), this.decimals)\n }\n\n ceil() {\n return new Fixed(this.value + (this.tens - (this.value % this.tens)), this.decimals)\n }\n\n round() {\n return new Fixed(this.value + (this.tens / 2n) - ((this.value + (this.tens / 2n)) % this.tens), this.decimals)\n }\n\n}\n"],"names":["ZeroHexFixedInit","constructor","decimals","value","BigIntFixedInit","Fixed","tens","BigInts","tensOf","unit","from","ZeroHexString","toBigInt","fromBigInt","fromBigIntInit","init","fromZeroHexInit","fromZeroHexString","fromDecimalString","text","whole","decimal","split","BigInt","length","toZeroHexString","toBigIntInit","toZeroHexInit","toDecimalString","raw","toString","padStart","slice","replaceAll","trimStart","trimEnd","toJSON","as","move","add","other","dx","dy","dr","Math","max","tr","tx","ty","vx","vy","sub","mul","div","floor","ceil","round"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/mods/fixed/index.ts"],"sourcesContent":["import { ZeroHexString } from \"@hazae41/hexane\"\nimport { BigInts } from \"libs/bigint/index.js\"\n\nexport type FixedInit<D extends number = number> =\n | ZeroHexFixedInit<D>\n | BigIntFixedInit<D>\n\nexport interface ZeroHexFixedInit<D extends number = number> {\n readonly value: ZeroHexString,\n readonly decimals: D\n}\n\nexport class ZeroHexFixedInit<D extends number = number> {\n\n constructor(\n readonly value: ZeroHexString,\n readonly decimals: D\n ) { }\n\n}\n\nexport interface BigIntFixedInit<D extends number = number> {\n readonly value: bigint,\n readonly decimals: D\n}\n\nexport class BigIntFixedInit<D extends number = number> {\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) { }\n\n}\n\nexport namespace Fixed {\n\n export type From<D extends number = number> =\n | BigIntFixedInit<D>\n | ZeroHexFixedInit<D>\n\n}\n\nexport class Fixed<D extends number = number> implements BigIntFixedInit {\n\n readonly tens: bigint\n\n constructor(\n readonly value: bigint,\n readonly decimals: D\n ) {\n this.tens = BigInts.tensOf(decimals)\n }\n\n static unit<D extends number = number>(decimals: D) {\n return new Fixed(BigInts.tensOf(decimals), decimals)\n }\n\n static from<D extends number = number>(from: Fixed.From<D>) {\n if (from instanceof Fixed)\n return from\n if (typeof from.value === \"bigint\")\n return new Fixed(from.value, from.decimals)\n return new Fixed(ZeroHexString.toBigInt(from.value), from.decimals)\n }\n\n static fromBigInt(value: bigint) {\n return new Fixed(value, 0)\n }\n\n static fromBigIntInit<D extends number>(init: BigIntFixedInit<D>) {\n return new Fixed(init.value, init.decimals)\n }\n\n static fromZeroHexInit<D extends number>(init: ZeroHexFixedInit<D>) {\n return new Fixed(ZeroHexString.toBigInt(init.value), init.decimals)\n }\n\n static fromZeroHexString(value: ZeroHexString) {\n return new Fixed(ZeroHexString.toBigInt(value), 0)\n }\n\n static fromDecimalString(text: string) {\n const [whole = \"0\", decimal = \"0\"] = text.split(\".\")\n\n const value = BigInt(whole + decimal)\n\n return new Fixed(value, decimal.length)\n }\n\n toBigInt() {\n return this.value\n }\n\n toZeroHexString() {\n return ZeroHexString.fromBigInt(this.value)\n }\n\n toBigIntInit() {\n return new BigIntFixedInit(this.value, this.decimals)\n }\n\n toZeroHexInit() {\n return new ZeroHexFixedInit(ZeroHexString.fromBigInt(this.value), this.decimals)\n }\n\n toDecimalString() {\n const raw = this.value.toString().padStart(this.decimals, \"0\")\n\n const whole = raw.slice(0, raw.length - this.decimals).replaceAll(\"0\", \" \").trimStart().replaceAll(\" \", \"0\")\n const decimal = raw.slice(raw.length - this.decimals).replaceAll(\"0\", \" \").trimEnd().replaceAll(\" \", \"0\")\n\n if (!decimal)\n return (whole || \"0\")\n\n return `${whole || \"0\"}.${decimal}`\n }\n\n toString() {\n return this.toDecimalString()\n }\n\n toJSON() {\n return this.toZeroHexInit()\n }\n\n as(decimals: number) {\n return new Fixed(this.value, decimals)\n }\n\n move<D extends number>(decimals: D): Fixed<D> {\n if (this.decimals > decimals)\n return new Fixed(this.value / BigInts.tensOf(this.decimals - decimals), decimals)\n if (this.decimals < decimals)\n return new Fixed(this.value * BigInts.tensOf(decimals - this.decimals), decimals)\n return new Fixed(this.value, decimals)\n }\n\n add(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) + (vy * (tr / ty)), dr)\n }\n\n sub(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = Math.max(dx, dy)\n const tr = BigInts.tensOf(dr)\n\n const tx = this.tens\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * (tr / tx)) - (vy * (tr / ty)), dr)\n }\n\n mul(other: Fixed) {\n const dx = this.decimals\n const dy = other.decimals\n\n const dr = dx + dy\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed(vx * vy, dr)\n }\n\n div(other: Fixed) {\n const dx = this.decimals\n const ty = other.tens\n\n const vx = this.value\n const vy = other.value\n\n return new Fixed((vx * ty) / vy, dx)\n }\n\n floor() {\n return new Fixed(this.value - (this.value % this.tens), this.decimals)\n }\n\n ceil() {\n return new Fixed(this.value + (this.tens - (this.value % this.tens)), this.decimals)\n }\n\n round() {\n return new Fixed(this.value + (this.tens / 2n) - ((this.value + (this.tens / 2n)) % this.tens), this.decimals)\n }\n\n}\n"],"names":["ZeroHexFixedInit","constructor","decimals","value","BigIntFixedInit","Fixed","tens","BigInts","tensOf","unit","from","ZeroHexString","toBigInt","fromBigInt","fromBigIntInit","init","fromZeroHexInit","fromZeroHexString","fromDecimalString","text","whole","decimal","split","BigInt","length","toZeroHexString","toBigIntInit","toZeroHexInit","toDecimalString","raw","toString","padStart","slice","replaceAll","trimStart","trimEnd","toJSON","as","move","add","other","dx","dy","dr","Math","max","tr","tx","ty","vx","vy","sub","mul","div","floor","ceil","round"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ZeroHexString } from '@hazae41/
|
|
1
|
+
import { ZeroHexString } from '@hazae41/hexane';
|
|
2
2
|
|
|
3
3
|
type FixedInit<D extends number = number> = ZeroHexFixedInit<D> | BigIntFixedInit<D>;
|
|
4
4
|
interface ZeroHexFixedInit<D extends number = number> {
|
|
@@ -36,7 +36,7 @@ declare class Fixed<D extends number = number> implements BigIntFixedInit {
|
|
|
36
36
|
static fromDecimalString(text: string): Fixed<number>;
|
|
37
37
|
toBigInt(): bigint;
|
|
38
38
|
toZeroHexString(): `0x${string}` & {
|
|
39
|
-
readonly [
|
|
39
|
+
readonly [k: _hazae41_hexane.ZeroHexSymbol]: true;
|
|
40
40
|
};
|
|
41
41
|
toBigIntInit(): BigIntFixedInit<D>;
|
|
42
42
|
toZeroHexInit(): ZeroHexFixedInit<D>;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@hazae41/fixed",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.2",
|
|
5
5
|
"description": "Fixed-point numbers in idiomatic TypeScript",
|
|
6
6
|
"homepage": "https://github.com/hazae41/fixed",
|
|
7
7
|
"repository": "github:hazae41/fixed",
|
|
@@ -45,6 +45,6 @@
|
|
|
45
45
|
"unit-tested"
|
|
46
46
|
],
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@hazae41/
|
|
48
|
+
"@hazae41/hexane": "^1.0.11"
|
|
49
49
|
}
|
|
50
50
|
}
|