@danielsimonjr/mathts-core 0.18.1 → 0.20.0

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.
Files changed (43) hide show
  1. package/README.md +30 -5
  2. package/dist/collection.d.ts +35 -23
  3. package/dist/collection.d.ts.map +1 -1
  4. package/dist/index.d.ts +3 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1348 -1534
  7. package/dist/internal.d.ts +3 -2
  8. package/dist/internal.d.ts.map +1 -1
  9. package/dist/internal.js +1021 -1514
  10. package/dist/numeric/rng.d.ts +88 -0
  11. package/dist/numeric/rng.d.ts.map +1 -0
  12. package/dist/numeric/strides.d.ts +18 -0
  13. package/dist/numeric/strides.d.ts.map +1 -0
  14. package/dist/object.d.ts +20 -2
  15. package/dist/object.d.ts.map +1 -1
  16. package/dist/shared.d.ts +19 -0
  17. package/dist/shared.d.ts.map +1 -1
  18. package/dist/switch.d.ts +2 -4
  19. package/dist/switch.d.ts.map +1 -1
  20. package/dist/types/bignumber.d.ts +7 -0
  21. package/dist/types/bignumber.d.ts.map +1 -1
  22. package/dist/types/complex.d.ts +20 -18
  23. package/dist/types/complex.d.ts.map +1 -1
  24. package/dist/types/fraction.d.ts +5 -0
  25. package/dist/types/fraction.d.ts.map +1 -1
  26. package/dist/types/si-dimension-vector.d.ts +62 -7
  27. package/dist/types/si-dimension-vector.d.ts.map +1 -1
  28. package/dist/types/unit/Unit.d.ts.map +1 -1
  29. package/dist/types/unit/index.d.ts +1 -1
  30. package/dist/types/unit/index.d.ts.map +1 -1
  31. package/dist/types/unit/unit-table.d.ts +8 -2
  32. package/dist/types/unit/unit-table.d.ts.map +1 -1
  33. package/dist/types/unit/unit-types.d.ts +10 -0
  34. package/dist/types/unit/unit-types.d.ts.map +1 -1
  35. package/dist/types/unit.d.ts +1 -1
  36. package/dist/types/unit.d.ts.map +1 -1
  37. package/dist/unit-Dul_E1rh.js +5946 -0
  38. package/dist/wasm-as-header.d.ts +17 -0
  39. package/dist/wasm-as-header.d.ts.map +1 -0
  40. package/dist/wasm-loader.d.ts +33 -1
  41. package/dist/wasm-loader.d.ts.map +1 -1
  42. package/package.json +6 -5
  43. package/dist/chunk-36FOYJAP.js +0 -6091
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Seeded pseudo-random number generation (Mulberry32) and Box–Muller normal pairs.
3
+ *
4
+ * Mulberry32 is a small, fast 32-bit PRNG with period 2^32. It is **not**
5
+ * cryptographically secure — use only for reproducible simulation and sampling.
6
+ *
7
+ * Reference: Tommy Ettinger,
8
+ * https://gist.github.com/tommyettinger/46a874533244883189143505d203312c
9
+ */
10
+ /**
11
+ * Create a Mulberry32 PRNG seeded with `seed`.
12
+ *
13
+ * Returns a closure that yields uniformly distributed floats in [0, 1) on
14
+ * each call. The seed is coerced with `seed | 0`. Separate calls with the
15
+ * same seed do not share state.
16
+ *
17
+ * @param seed - Integer seed (coerced with `| 0`).
18
+ * @returns A function that returns the next U[0, 1) sample.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const rng = mulberry32(42);
23
+ * rng(); // 0.6011037519201636
24
+ * ```
25
+ */
26
+ export declare function mulberry32(seed: number): () => number;
27
+ /**
28
+ * Generate a pair of independent N(0, 1) samples from two U(0, 1) inputs via
29
+ * the Box–Muller transform.
30
+ *
31
+ * @param u1 - First uniform in [0, 1); clamped away from 0 internally.
32
+ * @param u2 - Second uniform in [0, 1).
33
+ * @returns Two independent standard normal samples.
34
+ *
35
+ * @example
36
+ * ```ts
37
+ * const [z0, z1] = boxMuller(0.3, 0.7);
38
+ * Number.isFinite(z0); // true
39
+ * boxMuller(0, 0.5); // u1 === 0 is clamped; result is not NaN
40
+ * ```
41
+ */
42
+ export declare function boxMuller(u1: number, u2: number): [number, number];
43
+ /**
44
+ * Instance-scoped Mulberry32 stream with optional string seeds, Box–Muller normals,
45
+ * integer draws, and splittable child streams.
46
+ */
47
+ export interface SeededRng {
48
+ /** Next U[0, 1) from this stream. Does not touch the normal spare. */
49
+ next(): number;
50
+ /**
51
+ * Integer in `[0, maxExclusive)`.
52
+ *
53
+ * @throws {RangeError} When `maxExclusive` is not an integer in `[1, 4294967296]`.
54
+ */
55
+ nextInt(maxExclusive: number): number;
56
+ /**
57
+ * N(0, 1) via {@link boxMuller}. The second sample of the pair is cached on this
58
+ * instance only. `next`, `nextInt`, and `fork` do not read or clear that cache.
59
+ */
60
+ normal(): number;
61
+ /**
62
+ * Child stream fixed by this instance's coerced seed and `label`.
63
+ * Does not advance this stream and does not read this stream's normal spare.
64
+ */
65
+ fork(label: string | number): SeededRng;
66
+ /** Int32 seed actually used. Not the evolving PRNG state. */
67
+ readonly seed: number;
68
+ }
69
+ /**
70
+ * Create a forkable Mulberry32 stream. Number seeds use `seed | 0` (same as {@link mulberry32}).
71
+ * String seeds are FNV-1a 32 over UTF-8. Not cryptographically secure.
72
+ *
73
+ * @param seed - Integer (coerced with `| 0`) or string (hashed to int32).
74
+ * @returns A frozen {@link SeededRng} instance.
75
+ * @throws {TypeError} When `seed` is neither a number nor a string.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * import { createSeededRng } from '@danielsimonjr/mathts-core';
80
+ *
81
+ * const rng = createSeededRng(42);
82
+ * rng.next(); // 0.6011037519201636
83
+ * rng.fork('a').next(); // 0.668102843221277
84
+ * createSeededRng('a').seed; // -468965076
85
+ * ```
86
+ */
87
+ export declare function createSeededRng(seed: number | string): SeededRng;
88
+ //# sourceMappingURL=rng.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rng.d.ts","sourceRoot":"","sources":["../../src/numeric/rng.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CAUrD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMlE;AAmDD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,sEAAsE;IACtE,IAAI,IAAI,MAAM,CAAC;IACf;;;;OAIG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC;;;OAGG;IACH,MAAM,IAAI,MAAM,CAAC;IACjB;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACxC,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA+BD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Row-major stride vectors for dense tensor layouts.
3
+ */
4
+ /**
5
+ * Row-major strides for a shape array: the last axis has stride 1, and each
6
+ * earlier stride is the product of all later axis sizes.
7
+ *
8
+ * @param shape - Tensor dimensions (any rank, including rank 0).
9
+ * @returns Stride per axis in the same order as `shape`.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * rowMajorStrides([2, 3, 4]); // [12, 4, 1]
14
+ * rowMajorStrides([]); // []
15
+ * ```
16
+ */
17
+ export declare function rowMajorStrides(shape: readonly number[]): number[];
18
+ //# sourceMappingURL=strides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strides.d.ts","sourceRoot":"","sources":["../../src/numeric/strides.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAQlE"}
package/dist/object.d.ts CHANGED
@@ -6,23 +6,37 @@ import { hasOwnProperty } from './shared.js';
6
6
  *
7
7
  * Can clone any primitive type, array, and object.
8
8
  * If x has a function clone, this function will be invoked to clone the object.
9
+ * An own `__proto__` key (as `JSON.parse` produces) is skipped so the result keeps the
10
+ * ordinary object prototype; every other key, including `name`, `length` and `constructor`,
11
+ * is copied as data.
9
12
  *
10
13
  * @param x
11
14
  * @return clone
15
+ * @example
16
+ * clone({ a: 1, name: 'x' }) // => { a: 1, name: 'x' }
17
+ * clone(JSON.parse('{"a":1,"__proto__":{"polluted":true}}')) // => { a: 1 }
12
18
  */
13
19
  export declare function clone<T>(x: T): T;
14
20
  /**
15
- * Apply map to all properties of an object
21
+ * Apply map to all properties of an object.
22
+ * Skips an own `__proto__` key (see {@link isPrototypeKey}); every other key is mapped.
23
+ *
16
24
  * @param object
17
25
  * @param callback
18
26
  * @return Returns a copy of the object with mapped properties
27
+ * @example
28
+ * mapObject({ a: 1, name: 2 }, (v) => v * 2) // => { a: 2, name: 4 }
19
29
  */
20
30
  export declare function mapObject<T, U>(object: Record<string, T>, callback: (value: T) => U): Record<string, U>;
21
31
  /**
22
- * Extend object a with the properties of object b
32
+ * Extend object a with the properties of object b.
33
+ * Skips an own `__proto__` key on `b` (see {@link isPrototypeKey}); every other key is copied.
34
+ *
23
35
  * @param a
24
36
  * @param b
25
37
  * @return a
38
+ * @example
39
+ * extend({ a: 1 }, { b: 2, name: 3 }) // => { a: 1, b: 2, name: 3 }
26
40
  */
27
41
  export declare function extend<T extends Record<string, unknown>, U extends Record<string, unknown>>(a: T, b: U): T & U;
28
42
  /**
@@ -42,8 +56,12 @@ export declare function deepExtend<T>(a: T, b: unknown): T;
42
56
  export declare function deepStrictEqual(a: unknown, b: unknown): boolean;
43
57
  /**
44
58
  * Recursively flatten a nested object.
59
+ * Skips an own `__proto__` key, so a `__proto__` object is not walked (see {@link isPrototypeKey}).
60
+ *
45
61
  * @param nestedObject
46
62
  * @return Returns the flattened object
63
+ * @example
64
+ * deepFlatten({ a: { b: 1 }, c: 2 }) // => { b: 1, c: 2 }
47
65
  */
48
66
  export declare function deepFlatten(nestedObject: Record<string, unknown>): Record<string, unknown>;
49
67
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAwChC;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACxB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAUnB;AAED;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzF,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,CAAC,GAAG,CAAC,CAQP;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,CA8DjD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CA6C/D;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1F;AAmBD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAgB3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,CAAC,GACrB,IAAI,CAqBN;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAiBrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnD,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,KAAK,EAAE,OAAO,GACb,CAAC,CAyBH;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,GACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../src/object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAkC,MAAM,aAAa,CAAC;AAE7E;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAwChC;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,CAAC,EAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GACxB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAUnB;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzF,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,GACH,CAAC,GAAG,CAAC,CAQP;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,CA4DjD;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CA6C/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1F;AAmBD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAgB3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,CAAC,GACrB,IAAI,CAqBN;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GACtB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAiBrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnD,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,EACvB,KAAK,EAAE,OAAO,GACb,CAAC,CAyBH;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAAE,EACpB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,GACnD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,MAAM,EAAE,GACnB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAYzB"}
package/dist/shared.d.ts CHANGED
@@ -9,6 +9,25 @@
9
9
  * @param property
10
10
  */
11
11
  export declare function hasOwnProperty(object: unknown, property: string): boolean;
12
+ /**
13
+ * True for every name that lives on `Object.prototype` or `Function.prototype`.
14
+ *
15
+ * Use it where a walker reads `target[key]` and then recurses or assigns into the result
16
+ * (`deepExtend`), or stores a key in a lookup table that is also read with `in` (unit names): for
17
+ * these keys the read returns a shared builtin (`Object`, `Function.prototype.call`, ...), so a
18
+ * write would reach every object in the realm. It also matches ordinary data keys such as `name`,
19
+ * `length` and `constructor`, so a shallow copy must use {@link isPrototypeKey} instead.
20
+ */
21
+ export declare function isPollutingKey(prop: string): boolean;
22
+ /**
23
+ * True for the one key that a plain `target[key] = value` cannot store as data: `__proto__` runs
24
+ * the `Object.prototype` setter and replaces the target's `[[Prototype]]`.
25
+ *
26
+ * The shallow copiers (`clone`, `mapObject`, `extend`, `deepFlatten`) write into an object they
27
+ * own and never read through the key, so this is the only key they must skip; `name`, `length`,
28
+ * `constructor` and the other names {@link isPollutingKey} also matches are copied as data.
29
+ */
30
+ export declare function isPrototypeKey(prop: string): boolean;
12
31
  /**
13
32
  * True when `text` ends with `search`. (Equivalent to `String.prototype.endsWith`;
14
33
  * kept as a named helper so relocated modules read the same as their mathjs origin.)
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAGe,OAAO,EAAE,KAAG,IAO5C,CAAC;AAEL,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACnC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,gBAAgB,CA2BlB"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzE;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG9D;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,YAGe,OAAO,EAAE,KAAG,IAO5C,CAAC;AAEL,mFAAmF;AACnF,MAAM,WAAW,gBAAgB;IAC/B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CACrB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACnC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAE;IAAE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,gBAAgB,CA2BlB"}
package/dist/switch.d.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  /**
2
- * Transpose a 2D array. Private helper used only by `core/src/collection.ts`'s
3
- * `_reduce` (Bucket B slice 2 canonical) — mirrors `expression/src/utils/switch.ts`
4
- * / `functions/src/utils/switch.ts`, which remain in place unchanged for now
5
- * (not part of this slice's named scope). Not exported from `internal.ts`.
2
+ * Transpose a 2D array. Used by `core/src/collection.ts` `_reduce` and by
3
+ * `functions` `mapSlices` (imported from `@danielsimonjr/mathts-core/internal`).
6
4
  * @private
7
5
  */
8
6
  export declare function _switch<T>(mat: T[][]): T[][];
@@ -1 +1 @@
1
- {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAa5C"}
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAa5C"}
@@ -337,6 +337,13 @@ export declare class BigNumber implements MathTSValue {
337
337
  hypot(other: BigNumber): BigNumber;
338
338
  /** Reduce angle to [-PI, PI] range */
339
339
  private _reduceAngle;
340
+ /**
341
+ * Alternating even-power Taylor loop: term ← −term·x²/denom(n), stop when sum is stable.
342
+ * @param initialTerm - seed for the running term (also the first series contribution path for sin)
343
+ * @param initialSum - partial sum before the n = 1 step
344
+ * @param denom - factorial-style divisor; n only runs to precision + 20 so products stay in safe integer range
345
+ */
346
+ private _alternatingEvenTaylor;
340
347
  /** Taylor series for sin(x), assumes x is in [-PI, PI] */
341
348
  private _sinTaylor;
342
349
  /** Taylor series for cos(x), assumes x is in [-PI, PI] */
@@ -1 +1 @@
1
- {"version":3,"file":"bignumber.d.ts","sourceRoot":"","sources":["../../src/types/bignumber.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bignumber.d.ts","sourceRoot":"","sources":["../../src/types/bignumber.ts"],"names":[],"mappings":"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"}
@@ -153,16 +153,6 @@ export declare class Complex implements IComplex {
153
153
  * Cosine: cos(a + bi) = cos(a)cosh(b) - i·sin(a)sinh(b)
154
154
  */
155
155
  cos(): Complex;
156
- /**
157
- * Tangent: tan(x+iy) = (sin 2x + i sinh 2y) / (cos 2x + cosh 2y)
158
- *
159
- * Closed form — no intermediate `sin`/`cos` Complex allocations.
160
- */
161
- tan(): Complex;
162
- /**
163
- * Cotangent: cot(x+iy) = (sin 2x − i sinh 2y) / (cosh 2y − cos 2x)
164
- */
165
- cot(): Complex;
166
156
  /**
167
157
  * Secant: sec(z) = 1 / cos(z)
168
158
  */
@@ -179,14 +169,6 @@ export declare class Complex implements IComplex {
179
169
  * Hyperbolic cosine: cosh(z) = (e^z + e^(-z)) / 2
180
170
  */
181
171
  cosh(): Complex;
182
- /**
183
- * Hyperbolic tangent: tanh(x+iy) = (sinh 2x + i sin 2y) / (cosh 2x + cos 2y)
184
- */
185
- tanh(): Complex;
186
- /**
187
- * Hyperbolic cotangent: coth(x+iy) = (sinh 2x − i sin 2y) / (cosh 2x − cos 2y)
188
- */
189
- coth(): Complex;
190
172
  /**
191
173
  * Hyperbolic secant: sech(z) = 1 / cosh(z)
192
174
  */
@@ -271,6 +253,26 @@ export declare class Complex implements IComplex {
271
253
  */
272
254
  sign(): Complex;
273
255
  }
256
+ export interface Complex {
257
+ /**
258
+ * Tangent: tan(x+iy) = (sin 2x + i sinh 2y) / (cos 2x + cosh 2y)
259
+ *
260
+ * Closed form — no intermediate `sin`/`cos` Complex allocations.
261
+ */
262
+ tan(): Complex;
263
+ /**
264
+ * Cotangent: cot(x+iy) = (sin 2x − i sinh 2y) / (cosh 2y − cos 2x)
265
+ */
266
+ cot(): Complex;
267
+ /**
268
+ * Hyperbolic tangent: tanh(x+iy) = (sinh 2x + i sin 2y) / (cosh 2x + cos 2y)
269
+ */
270
+ tanh(): Complex;
271
+ /**
272
+ * Hyperbolic cotangent: coth(x+iy) = (sinh 2x − i sin 2y) / (cosh 2x − cos 2y)
273
+ */
274
+ coth(): Complex;
275
+ }
274
276
  /**
275
277
  * Imaginary unit constant: i = √(-1)
276
278
  */
@@ -1 +1 @@
1
- {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../src/types/complex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"complex.d.ts","sourceRoot":"","sources":["../../src/types/complex.ts"],"names":[],"mappings":"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"}
@@ -72,6 +72,10 @@ export declare class Fraction implements IFraction {
72
72
  numerator: bigint;
73
73
  denominator: bigint;
74
74
  };
75
+ /**
76
+ * Shared add/subtract core: same-denominator or cross-multiply, with a bigint combiner.
77
+ */
78
+ private addSub;
75
79
  /**
76
80
  * Addition: a/b + c/d = (ad + bc) / bd
77
81
  */
@@ -169,6 +173,7 @@ export declare class Fraction implements IFraction {
169
173
  * Ceiling: smallest integer ≥ this
170
174
  */
171
175
  ceil(): Fraction;
176
+ private truncBound;
172
177
  /**
173
178
  * Round to nearest integer
174
179
  */
@@ -1 +1 @@
1
- {"version":3,"file":"fraction.d.ts","sourceRoot":"","sources":["../../src/types/fraction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fraction.d.ts","sourceRoot":"","sources":["../../src/types/fraction.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,7 @@
9
9
  * 5 LUMINOUS_INTENSITY, 6 AMOUNT_OF_SUBSTANCE,
10
10
  * 7 ANGLE, 8 BIT, 9 SOLID_ANGLE
11
11
  *
12
- * The 7-vector used by dimensional analysis (BIPM base quantities, and the
13
- * order UPT's Buckingham routine uses) is
12
+ * The 7-vector used by dimensional analysis (BIPM base quantities) is
14
13
  *
15
14
  * [L, M, T, I, Θ, N, J]
16
15
  *
@@ -21,15 +20,44 @@
21
20
  * @packageDocumentation
22
21
  */
23
22
  import type { Dimensions } from './unit-definitions.js';
23
+ import { Fraction } from './fraction.js';
24
24
  /** Length of a `Unit` exponent vector. */
25
25
  export declare const UNIT_DIMENSION_LENGTH = 10;
26
26
  /** Length of the SI base-dimension tuple `[L, M, T, I, Θ, N, J]`. */
27
27
  export declare const SI_DIMENSION_LENGTH = 7;
28
28
  /**
29
- * SI base-dimension tuple in the order length, mass, time, current,
30
- * temperature, amount, luminosity.
29
+ * SI base-dimension tuple in BIPM order `[L, M, T, I, Θ, N, J]`, with exact
30
+ * rational exponents.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { Unit, toSiDimensionVector } from '@danielsimonjr/mathts-core';
35
+ * const [L, M, T] = toSiDimensionVector(new Unit(1, 'N').dimensions);
36
+ * // L.equals(new Fraction(1, 1n)), M.equals(new Fraction(1, 1n)), T.equals(new Fraction(-2, 1n))
37
+ * ```
38
+ */
39
+ export type SiDimensionVector = readonly [
40
+ Fraction,
41
+ Fraction,
42
+ Fraction,
43
+ Fraction,
44
+ Fraction,
45
+ Fraction,
46
+ Fraction
47
+ ];
48
+ /**
49
+ * One component of the 7-vector accepted by {@link fromSiDimensionVector}.
50
+ *
51
+ * Callers that still pass number tuples (`[1, 1, -2, 0, 0, 0, 0]`) keep working:
52
+ * a finite `number` is converted with {@link Fraction.fromNumber} (integers as
53
+ * `n/1`). A {@link Fraction} is used as-is. Either is then reduced with
54
+ * {@link Fraction.toNumber} for `Unit.dimensions` (`number[]`).
55
+ *
56
+ * This alias is the public input type of that converter. {@link SiDimensionVector}
57
+ * itself is always seven {@link Fraction}s; there is no `toSiDimensionNumbers`
58
+ * helper — use `vec.map((f) => f.toNumber())`.
31
59
  */
32
- export type SiDimensionVector = readonly [number, number, number, number, number, number, number];
60
+ export type SiDimensionExponent = number | Fraction;
33
61
  /** Options for {@link toSiDimensions} and {@link toSiDimensionVector}. */
34
62
  export interface SiDimensionOptions {
35
63
  /**
@@ -43,7 +71,23 @@ export interface SiDimensionOptions {
43
71
  */
44
72
  export declare function toSiDimensions(vector: readonly number[], options?: SiDimensionOptions): Dimensions;
45
73
  /**
46
- * Map a length-10 unit exponent vector onto `[L, M, T, I, Θ, N, J]`.
74
+ * Map a length-10 unit exponent vector onto exact `[L, M, T, I, Θ, N, J]`.
75
+ *
76
+ * Non-integer components use {@link Fraction.fromNumber} with default
77
+ * `maxDenominator` `1000000n` (last continued-fraction convergent at or below
78
+ * that denominator). Values whose simplest denominator exceeds that cap become
79
+ * the last in-cap convergent: `1e-7` (= 1/10_000_000) is `0/1`. `NaN` and
80
+ * `Infinity` throw (same contract as `Fraction.fromNumber`). `-0` normalizes
81
+ * to `0/1`.
82
+ *
83
+ * @example
84
+ * ```ts
85
+ * import { toSiDimensionVector, Fraction } from '@danielsimonjr/mathts-core';
86
+ * const vec = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
87
+ * vec[2] = 0.5; // time exponent 1/2 (e.g. sqrt Hz style)
88
+ * const [, , T] = toSiDimensionVector(vec);
89
+ * T.equals(new Fraction(1n, 2n)); // true
90
+ * ```
47
91
  */
48
92
  export declare function toSiDimensionVector(vector: readonly number[], options?: SiDimensionOptions): SiDimensionVector;
49
93
  /**
@@ -53,6 +97,17 @@ export declare function toSiDimensionVector(vector: readonly number[], options?:
53
97
  export declare function fromSiDimensions(dimensions: Dimensions): number[];
54
98
  /**
55
99
  * Map `[L, M, T, I, Θ, N, J]` onto a length-10 unit exponent vector.
100
+ *
101
+ * Each exponent may be a `number` or {@link Fraction}; values are converted
102
+ * with {@link Fraction.toNumber} for `Unit`'s `number[]` storage.
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * import { fromSiDimensionVector, toSiDimensionVector, Fraction } from '@danielsimonjr/mathts-core';
107
+ * const ten = fromSiDimensionVector([1, 1, -2, 0, 0, 0, 0]);
108
+ * const rational = toSiDimensionVector(ten);
109
+ * // Need numeric components for arithmetic? rational.map((f) => f.toNumber())
110
+ * ```
56
111
  */
57
- export declare function fromSiDimensionVector(vector: readonly number[]): number[];
112
+ export declare function fromSiDimensionVector(vector: readonly SiDimensionExponent[]): number[];
58
113
  //# sourceMappingURL=si-dimension-vector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"si-dimension-vector.d.ts","sourceRoot":"","sources":["../../src/types/si-dimension-vector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,0CAA0C;AAC1C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAElG,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA8BD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAYZ;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,iBAAiB,CAGnB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAyBjE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAezE"}
1
+ {"version":3,"file":"si-dimension-vector.d.ts","sourceRoot":"","sources":["../../src/types/si-dimension-vector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAc,MAAM,eAAe,CAAC;AAErD,0CAA0C;AAC1C,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,qEAAqE;AACrE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,GAAG,SAAS;IACvC,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD,0EAA0E;AAC1E,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAuDD;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,UAAU,CAYZ;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,MAAM,EAAE,EACzB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,iBAAiB,CAWnB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,EAAE,CAyBjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAqBtF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Unit.d.ts","sourceRoot":"","sources":["../../../src/types/unit/Unit.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAcV,eAAe,EAQhB,MAAM,iBAAiB,CAAC;AAqIzB,eAAO,MAAM,eAAe,6DAigF3B,CAAC"}
1
+ {"version":3,"file":"Unit.d.ts","sourceRoot":"","sources":["../../../src/types/unit/Unit.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAcV,eAAe,EAQhB,MAAM,iBAAiB,CAAC;AAgJzB,eAAO,MAAM,eAAe,6DA4oF3B,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { UnitConstructor } from './unit-types.js';
2
2
  export { createUnitClass } from './Unit.js';
3
3
  export { unitDependencies } from './dependencies.js';
4
- export type * from './unit-types.js';
4
+ export type { BigNumberValue, ComplexValue, ComplexConstructor, BigNumberConstructor, FractionConstructor, FractionValue, Numeric, PrefixDef, PrefixTable, BaseUnitDef, UnitDef, UnitComponent, UnitSystemEntry, UnitSystem, UnitJSON, ConverterFn, TypeConverters, ParseOptions, UnitFormatOptions, CreateUnitOptions, CreateUnitDefObject, UnitConfig, SubtractScalar, ScalarBinaryOp, ScalarUnaryOp, UnitDependencies, UnitInstance, UnitConstructor, } from './unit-types.js';
5
5
  export { UNIT_EXACT_SCALE, PI_EXACT_SCALE, LN2_EXACT_SCALE, NAMED_IRRATIONALS, namedIrrationalScale, irrationalPower, isRationalScale, decimalExactScale, exactScaleOf, binaryExactScale, ratioExactScale, multiplyExactScales, divideExactScales, powerExactScale, addExactScales, exactScalesEqual, exactScaleToNumber, clearExactScaleNumberCache, exactScaleNumberCacheSize, formatExactScale, readScaleExpression, } from './exact-scale.js';
6
6
  export type { ExactScale, IrrationalName, IrrationalPowers } from './exact-scale.js';
7
7
  export { NAMED_SCALES, UNIT_ROWS, UNIT_ROW_ALIASES, namedExactScale, readUnitScale, getUnitRow, unitRowExactScale, unitRowValue, unitRowExactOffset, UNIT_PREFIX_SETS, unitPrefixExactScale, getUnitPrefix, } from './unit-table.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/unit/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,mBAAmB,iBAAiB,CAAC;AACrC,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1F,qEAAqE;AACrE,eAAO,MAAM,IAAI,EAAE,eAEC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/unit/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,YAAY,EACV,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,SAAS,EACT,WAAW,EACX,WAAW,EACX,OAAO,EACP,aAAa,EACb,eAAe,EACf,UAAU,EACV,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EACL,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE1F,qEAAqE;AACrE,eAAO,MAAM,IAAI,EAAE,eAEC,CAAC"}
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * Scale expressions: factors joined by `*`, optionally `/` and the
13
13
  * denominator's factors (everything after the first `/` is the denominator);
14
- * each factor is a decimal literal, `pi`, or a name in {@link NAMED_SCALES},
14
+ * each factor is a decimal literal, `pi`, `ln2`, or a name in {@link NAMED_SCALES},
15
15
  * with an optional integer power `^n`.
16
16
  *
17
17
  * Sources: the SI Brochure (9th ed., 2019); NIST SP 811 (2008) Appendix B and
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import { type ExactScale } from './exact-scale.js';
26
26
  /** The base-dimension keys a row may name (the `BASE_UNITS` of the Unit class). */
27
- export type UnitBaseKey = 'MASS' | 'LENGTH' | 'TIME' | 'CURRENT' | 'TEMPERATURE' | 'LUMINOUS_INTENSITY' | 'AMOUNT_OF_SUBSTANCE' | 'FORCE' | 'SURFACE' | 'VOLUME' | 'ENERGY' | 'POWER' | 'PRESSURE' | 'ELECTRIC_CHARGE' | 'ELECTRIC_CAPACITANCE' | 'ELECTRIC_POTENTIAL' | 'ELECTRIC_RESISTANCE' | 'ELECTRIC_INDUCTANCE' | 'ELECTRIC_CONDUCTANCE' | 'MAGNETIC_FLUX' | 'MAGNETIC_FLUX_DENSITY' | 'FREQUENCY' | 'ANGLE' | 'BIT' | 'SOLID_ANGLE';
27
+ export type UnitBaseKey = 'MASS' | 'LENGTH' | 'TIME' | 'CURRENT' | 'TEMPERATURE' | 'LUMINOUS_INTENSITY' | 'AMOUNT_OF_SUBSTANCE' | 'FORCE' | 'SURFACE' | 'VOLUME' | 'ENERGY' | 'POWER' | 'PRESSURE' | 'ELECTRIC_CHARGE' | 'ELECTRIC_CAPACITANCE' | 'ELECTRIC_POTENTIAL' | 'ELECTRIC_RESISTANCE' | 'ELECTRIC_INDUCTANCE' | 'ELECTRIC_CONDUCTANCE' | 'MAGNETIC_FLUX' | 'MAGNETIC_FLUX_DENSITY' | 'FREQUENCY' | 'ANGLE' | 'BIT' | 'SOLID_ANGLE' | 'NONE' | 'VELOCITY' | 'VISCOSITY' | 'KINEMATIC_VISCOSITY' | 'ACOUSTIC_IMPEDANCE' | 'SPECTRAL_FLUX_DENSITY' | 'LUMINOUS_FLUX' | 'ILLUMINANCE' | 'MOLAR_CONCENTRATION';
28
28
  /** The prefix-set keys a row may name (the `PREFIXES` of the Unit class). */
29
29
  export type UnitPrefixSetKey = 'NONE' | 'SHORT' | 'LONG' | 'SHORTLONG' | 'SQUARED' | 'CUBIC' | 'BINARY_SHORT' | 'BINARY_LONG' | 'BTU' | 'SHORT_UP_ONLY';
30
30
  /** One built-in unit. */
@@ -43,6 +43,12 @@ export interface UnitRow {
43
43
  readonly reciprocal?: true;
44
44
  /** The value is the imaginary unit times the scale (reactive power, VAR). */
45
45
  readonly imaginary?: true;
46
+ /**
47
+ * The unit counts cycles (turns), not radians. `1 Hz` is still `1/s` (the SI
48
+ * definition); converting it to `rad/s` multiplies by 2π per cycle. Absent
49
+ * means the unit is not a cycle count (`cycle` is already 2π radians).
50
+ */
51
+ readonly cycles?: true;
46
52
  }
47
53
  /** One prefix: the factor `radix^power`, and whether `toBest` may pick it. */
48
54
  export interface UnitPrefix {
@@ -1 +1 @@
1
- {"version":3,"file":"unit-table.d.ts","sourceRoot":"","sources":["../../../src/types/unit/unit-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,KAAK,UAAU,EAKhB,MAAM,kBAAkB,CAAC;AAE1B,mFAAmF;AACnF,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,QAAQ,GACR,MAAM,GACN,SAAS,GACT,aAAa,GACb,oBAAoB,GACpB,qBAAqB,GACrB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,UAAU,GACV,iBAAiB,GACjB,sBAAsB,GACtB,oBAAoB,GACpB,qBAAqB,GACrB,qBAAqB,GACrB,sBAAsB,GACtB,eAAe,GACf,uBAAuB,GACvB,WAAW,GACX,OAAO,GACP,KAAK,GACL,aAAa,CAAC;AAElB,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,OAAO,GACP,MAAM,GACN,WAAW,GACX,SAAS,GACT,OAAO,GACP,cAAc,GACd,aAAa,GACb,KAAK,GACL,eAAe,CAAC;AAEpB,yBAAyB;AACzB,MAAM,WAAW,OAAO;IACtB,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,mCAAmC;IACnC,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC;IAC1B,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;CAC9B;AA8CD,KAAK,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAwBtD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAiBzE,CAAC;AAEH,oDAAoD;AACpD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAEnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAKhF;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAyBxD,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAyKtD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA2H5D,CAAC;AAIH,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAOpE;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED,mEAAmE;AACnE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAK5D;AAED,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAGtE;AAED,sFAAsF;AACtF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG7D;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAIvE"}
1
+ {"version":3,"file":"unit-table.d.ts","sourceRoot":"","sources":["../../../src/types/unit/unit-table.ts"],"names":[],"mappings":"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"}
@@ -61,6 +61,8 @@ export interface UnitDef {
61
61
  offset: number;
62
62
  dimensions?: number[];
63
63
  reciprocal?: boolean;
64
+ /** Turns counted by one of this unit. A cycle-counting unit (Hz, rpm) has 1; absent means 0. */
65
+ cycles?: number;
64
66
  /** The exact scale to SI, from the unit table. Absent for a `createUnit` unit and for VAR. */
65
67
  exact?: ExactScale;
66
68
  /** The exact `offset`, present whenever `exact` is. */
@@ -117,6 +119,14 @@ export interface CreateUnitDefObject {
117
119
  offset?: number;
118
120
  baseName?: string;
119
121
  aliases?: string[];
122
+ /**
123
+ * Exact scale of one of this unit, to SI, as a scale expression (`'0.1'`,
124
+ * `'ln2'`, `'lbf/inch^2'`, `'1852/3600'`). Same grammar as the built-in unit
125
+ * table: decimals, `pi`, `ln2`, named scales, and built-in unit names. When
126
+ * set, this is the unit's exact scale and the double it rounds to; `definition`
127
+ * still supplies the dimension. Without it a `createUnit` unit has no exact scale.
128
+ */
129
+ exact?: string;
120
130
  }
121
131
  /** Config object the Unit factory reads (`config` dep + `on('config')`). */
122
132
  export interface UnitConfig {