@c9up/atom 0.1.12 → 0.1.14

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk.js","sourceRoot":"","sources":["../src/bulk.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,8 @@
3
3
  * The Rust engine is preferred (NAPI in Node, WASM in browser), with a
4
4
  * pure TypeScript BigInt fallback for unsupported platforms.
5
5
  */
6
+ export type { BulkDivOptions, BulkStddevOptions } from "./bulk.js";
7
+ export { Bulk, BulkColumn, BulkScalar, bulk } from "./bulk.js";
6
8
  export type { AtomContext, AtomContextOptions } from "./context.js";
7
9
  export { configureAtomContext, getAtomContext, resetAtomContext, withAtomContext, } from "./context.js";
8
10
  export type { BetweenOptions, DecimalInput, DecimalSafeParseResult, DecimalScaled, DivOptions, MedianOptions, PowOptions, QuantizeOptions, RoundMode, SqrtOptions, StddevOptions, ToMinorUnitsOptions, } from "./Decimal.js";
@@ -10,6 +12,7 @@ export { Decimal } from "./Decimal.js";
10
12
  export type { MoneyFormatOptions, MoneyOptions, MoneyRoundingOptions, } from "./Money.js";
11
13
  export { Money, money } from "./Money.js";
12
14
  export { isNativeAvailable } from "./native.js";
15
+ import { bulk as bulkFn } from "./bulk.js";
13
16
  import type { MedianOptions, StddevOptions } from "./Decimal.js";
14
17
  import { Decimal, type DecimalInput } from "./Decimal.js";
15
18
  import { money } from "./Money.js";
@@ -36,6 +39,15 @@ declare function stddevFn(...args: [Iterable<DecimalInput>, StddevOptions?] | De
36
39
  export declare const Atom: {
37
40
  /** Construct a `Decimal` from a string / number / bigint / Decimal. Alias for `Decimal.from`. */
38
41
  decimal: typeof decimal;
42
+ /**
43
+ * Plan a computation and run it in one crossing.
44
+ *
45
+ * For chains of dependent operations — a schedule, a rate solver, a
46
+ * statistic over a column — where the cost is the boundary rather than the
47
+ * arithmetic. Not for a lone sum: below about three operations per element a
48
+ * plain loop wins.
49
+ */
50
+ bulk: typeof bulkFn;
39
51
  /** Exact sum of N values. Empty input → `Decimal('0')`. */
40
52
  sum: typeof sumFn;
41
53
  /** Arithmetic mean of N values. Throws on empty input. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACN,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,eAAe,GACf,MAAM,cAAc,CAAC;AACtB,YAAY,EACX,cAAc,EACd,YAAY,EACZ,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,SAAS,EACT,WAAW,EACX,aAAa,EACb,mBAAmB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACX,kBAAkB,EAClB,YAAY,EACZ,oBAAoB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGhD,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAEpD;AA4LD,iBAAS,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,OAAO,CAE1E;AAED,iBAAS,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,OAAO,CAE1E;AAED,iBAAS,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,OAAO,CAE1E;AAED,iBAAS,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,OAAO,CAE1E;AAED,iBAAS,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,OAAO,EAAE,CAE7E;AAED,iBAAS,QAAQ,CAChB,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,YAAY,EAAE,GAChE,OAAO,CAGT;AAED,iBAAS,QAAQ,CAChB,GAAG,IAAI,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC,GAAG,YAAY,EAAE,GAChE,OAAO,CAGT;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI;IAChB,iGAAiG;;IAEjG,2DAA2D;;IAE3D,0DAA0D;;IAE1D,kKAAkK;;IAElK;;;;;;;;OAQG;;IAEH;;;;;OAKG;;IAEH,mDAAmD;;IAEnD,kDAAkD;;IAElD,8EAA8E;yBACzD,MAAM,YAAY,IAAI,CAAC,eAAe;IAE3D,gDAAgD;;CAEhD,CAAC;AAEF,eAAO,MAAM,GAAG,cAAQ,CAAC;AACzB,eAAO,MAAM,GAAG,cAAQ,CAAC;AACzB,eAAO,MAAM,MAAM,iBAAW,CAAC;AAC/B,eAAO,MAAM,IAAI,eAAS,CAAC;AAC3B,eAAO,MAAM,MAAM,iBAAW,CAAC;AAC/B,eAAO,MAAM,GAAG,cAAQ,CAAC;AACzB,eAAO,MAAM,GAAG,cAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,10 +3,12 @@
3
3
  * The Rust engine is preferred (NAPI in Node, WASM in browser), with a
4
4
  * pure TypeScript BigInt fallback for unsupported platforms.
5
5
  */
6
+ export { Bulk, BulkColumn, BulkScalar, bulk } from "./bulk.js";
6
7
  export { configureAtomContext, getAtomContext, resetAtomContext, withAtomContext, } from "./context.js";
7
8
  export { Decimal } from "./Decimal.js";
8
9
  export { Money, money } from "./Money.js";
9
10
  export { isNativeAvailable } from "./native.js";
11
+ import { bulk as bulkFn } from "./bulk.js";
10
12
  import { defaultPrecision, defaultRoundMode } from "./context.js";
11
13
  import { Decimal } from "./Decimal.js";
12
14
  import { money } from "./Money.js";
@@ -43,20 +45,27 @@ function resolveValues(args) {
43
45
  return head;
44
46
  return args.map(toDecimalValue);
45
47
  }
48
+ /**
49
+ * Exact sum — through the engine's BATCH entry point, not a fold.
50
+ *
51
+ * The result is identical either way; the cost is not. Every `plus` from
52
+ * JavaScript serialises both operands, crosses into the native engine and
53
+ * comes back with a string, and that crossing is where the time goes — around
54
+ * a microsecond an operation, against nanoseconds for the arithmetic itself.
55
+ * `Decimal.sum` hands the whole list over once, so summing a column of a
56
+ * hundred thousand figures costs one crossing rather than a hundred thousand.
57
+ *
58
+ * Nothing changed for callers: this is what `Atom.sum` always meant.
59
+ */
46
60
  function sumImpl(values) {
47
- let total = Decimal.zero();
48
- for (const value of values) {
49
- total = total.plus(value);
50
- }
51
- return total;
61
+ return Decimal.sum(values);
52
62
  }
53
63
  function avgImpl(values) {
54
- let total = Decimal.zero();
55
- let count = 0;
56
- for (const value of values) {
57
- total = total.plus(value);
58
- count++;
59
- }
64
+ // Materialised so the count and the batch see the same values: an iterable
65
+ // consumed by one is not there for the other.
66
+ const list = [...values];
67
+ const total = Decimal.sum(list);
68
+ const count = list.length;
60
69
  if (count === 0) {
61
70
  throw new Error("Atom.avg requires at least one value");
62
71
  }
@@ -139,11 +148,10 @@ function stddevImpl(values, options = {}) {
139
148
  throw new Error("Atom.stddev sample mode requires at least two values");
140
149
  }
141
150
  const mean = avgImpl(list);
142
- let sumSquares = Decimal.zero();
143
- for (const value of list) {
144
- const diff = value.minus(mean);
145
- sumSquares = sumSquares.plus(diff.times(diff));
146
- }
151
+ // diff²` is a dot product of the deviations with themselves: one
152
+ // crossing, where the fold made two per value a multiply and an add.
153
+ const deviations = list.map((value) => value.minus(mean));
154
+ const sumSquares = Decimal.dot(deviations, deviations);
147
155
  const variance = sumSquares.div(String(divisor), {
148
156
  precision: precision + 8,
149
157
  });
@@ -215,6 +223,15 @@ function stddevFn(...args) {
215
223
  export const Atom = {
216
224
  /** Construct a `Decimal` from a string / number / bigint / Decimal. Alias for `Decimal.from`. */
217
225
  decimal,
226
+ /**
227
+ * Plan a computation and run it in one crossing.
228
+ *
229
+ * For chains of dependent operations — a schedule, a rate solver, a
230
+ * statistic over a column — where the cost is the boundary rather than the
231
+ * arithmetic. Not for a lone sum: below about three operations per element a
232
+ * plain loop wins.
233
+ */
234
+ bulk: bulkFn,
218
235
  /** Exact sum of N values. Empty input → `Decimal('0')`. */
219
236
  sum: sumFn,
220
237
  /** Arithmetic mean of N values. Throws on empty input. */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ /**
2
+ * Run a bulk program over a resident column buffer.
3
+ *
4
+ * `values` holds every column laid end to end, `rows` values each, followed by
5
+ * the scalar literals the program refers to by absolute index. `program` is
6
+ * six-word bytecode. Returns the scalars the program emitted, in order.
7
+ *
8
+ * An overflow of the 128-bit working width is reported with a message opening
9
+ * `[ATOM_BULK_OVERFLOW]`, which is the caller's signal to re-run the same
10
+ * program on the BigInt executor rather than to give up: the fast path is
11
+ * allowed to be too narrow, never to be wrong.
12
+ */
13
+ export declare function runBulk(values: BigInt64Array, rows: number, program: Int32Array): Array<string>;
1
14
  export declare function add(a: string, b: string): string;
2
15
  export declare function sub(a: string, b: string): string;
3
16
  export declare function mul(a: string, b: string): string;
@@ -5,5 +18,15 @@ export declare function div(a: string, b: string, precision: number): string;
5
18
  export declare function rem(a: string, b: string): string;
6
19
  export declare function pow(a: string, exp: number, precision: number): string;
7
20
  export declare function sqrt(a: string, precision: number): string;
21
+ /**
22
+ * Batch addition — one crossing for the whole list.
23
+ *
24
+ * `Vec<String>` rather than a stream of calls, because the crossing IS the
25
+ * cost: parsing and formatting a decimal is cheap, and doing it once per
26
+ * pair from JavaScript is what makes a long fold expensive.
27
+ */
28
+ export declare function sum(values: Array<string>): string;
29
+ /** Batch `Σ aᵢ·bᵢ` — the shape of every valuation, in one crossing. */
30
+ export declare function dot(a: Array<string>, b: Array<string>): string;
8
31
  export declare function cmp(a: string, b: string): number;
9
32
  //# sourceMappingURL=generated.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAE/E,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAEnE,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"generated.d.ts","sourceRoot":"","sources":["../../src/native/generated.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;GAWG;AAEH,MAAM,CAAC,OAAO,UAAU,OAAO,CAC9B,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,UAAU,GACjB,KAAK,CAAC,MAAM,CAAC,CAAC;AAEjB,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAE7E,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;AAE1D,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAE/E,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;AAEnE;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAE3D,uEAAuE;AAEvE,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;AAExE,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC"}
Binary file
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@c9up/atom",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Atom — exact decimal arithmetic for the Ream ecosystem (TypeScript + Rust N-API)",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -26,14 +26,15 @@
26
26
  "wasm"
27
27
  ],
28
28
  "devDependencies": {
29
- "@biomejs/biome": "^2.4.10",
30
- "@types/node": "^22.19.15",
31
- "@vitest/coverage-v8": "^4.1.2",
32
- "typescript": "^6.0.2",
33
- "vitest": "^4.1.2"
29
+ "@biomejs/biome": "^2.5.12",
30
+ "@types/node": "^22.20.1",
31
+ "@vitest/coverage-v8": "4.1.11",
32
+ "typescript": "^6.0.3",
33
+ "vitest": "4.1.11"
34
34
  },
35
+ "//engines": "Node 24, not 22, because AsyncLocalStorage sits on the request hot path — the container resolves through it, HttpContext is it, and the emitter reads it on every event. Node 24 backs it with AsyncContextFrame by default, and measured on that exact pattern (one context per request, six async boundaries, several reads) it costs 0.61 us per request instead of 1.55 us: 2.5x, on every request, for free. Before 24 the same mechanism existed only behind an experimental flag, and a framework cannot base its performance on a flag the application has to remember to pass. This is NOT 'track the current LTS' — security fixes still land in 22 until 2027, npm 11 is irrelevant under pnpm, and node:sqlite is not what atlas uses.",
35
36
  "engines": {
36
- "node": ">=22.0.0"
37
+ "node": ">=24.0.0"
37
38
  },
38
39
  "publishConfig": {
39
40
  "access": "public"
@@ -52,8 +53,9 @@
52
53
  "test:rust": "cargo test -p atom-engine",
53
54
  "test:napi": "node scripts/verify-napi.mjs",
54
55
  "bench": "pnpm build && node scripts/bench.mjs",
55
- "build:wasm": "wasm-pack build --target web crates/atom-engine-wasm --out-dir ../../wasm",
56
+ "build:wasm": "wasm-pack build --target web crates/atom-engine-wasm --out-dir ../../wasm && node scripts/clean-wasm-pack-meta.mjs",
56
57
  "lint": "biome check src/ tests/",
57
- "test:coverage": "vitest run --coverage"
58
+ "test:coverage": "vitest run --coverage",
59
+ "bench:bulk": "pnpm build && node scripts/bench-bulk.mjs"
58
60
  }
59
61
  }
@@ -0,0 +1,98 @@
1
+ // What bulk is for, and what it is not for — the measurements that decided the
2
+ // design, kept runnable so a change that undoes them is visible.
3
+ //
4
+ // pnpm bench:bulk [rows]
5
+ import { performance } from 'node:perf_hooks'
6
+ import { createRequire } from 'node:module'
7
+ import { Atom, Bulk, Decimal, isNativeAvailable, sum } from '../dist/index.js'
8
+
9
+ const native = createRequire(import.meta.url)('../index.linux-x64-gnu.node')
10
+ const ROWS = Number(process.argv[2] ?? 200_000)
11
+
12
+ const time = (label, runs, fn) => {
13
+ fn()
14
+ const start = performance.now()
15
+ for (let i = 0; i < runs; i++) fn()
16
+ const ms = (performance.now() - start) / runs
17
+ console.log(` ${label.padEnd(42)} ${ms.toFixed(3).padStart(10)} ms`)
18
+ return ms
19
+ }
20
+
21
+ console.log(`native engine: ${isNativeAvailable()}`)
22
+
23
+ // --- 1. the crossing itself -------------------------------------------------
24
+ // A typed array crosses as a pointer, so the cost must not follow the size.
25
+ console.log('\n1. Crossing cost against buffer size')
26
+ const noop = Int32Array.from([1, 0, 0, 0, 0, 0, 40, 0, 0, 0, 0, 0])
27
+ for (const size of [1_000, 1_000_000, 10_000_000]) {
28
+ const buffer = new BigInt64Array(size).fill(1n)
29
+ time(`runBulk over ${size.toLocaleString('en-US')} values`, 200, () =>
30
+ native.runBulk(buffer, 1, noop),
31
+ )
32
+ }
33
+
34
+ // --- 2. a chain of dependent operations -------------------------------------
35
+ // The shape bulk exists for: a schedule, where every step reads the last.
36
+ console.log('\n2. A 2160-step schedule (360 rows x 6 operations)')
37
+ const STEPS = 2160
38
+ const viaBulk = time(`bulk ${STEPS} operations, one crossing`, 100, () => {
39
+ const plan = new Bulk()
40
+ let running = plan.of('1000.00')
41
+ const payment = plan.of('12.50')
42
+ for (let i = 0; i < STEPS; i++) running = running.plus(payment)
43
+ return plan.run({ balance: running })
44
+ })
45
+ const viaCalls = time(`napi ${STEPS} operations, ${STEPS} crossings`, 100, () => {
46
+ let x = '1000.00'
47
+ for (let i = 0; i < STEPS; i++) x = native.add(x, '12.50')
48
+ return x
49
+ })
50
+ const viaDecimal = time(`Decimal ${STEPS} operations`, 100, () => {
51
+ let x = new Decimal('1000.00')
52
+ for (let i = 0; i < STEPS; i++) x = x.plus('12.50')
53
+ return x
54
+ })
55
+ console.log(` -> against one call per operation : ${(viaCalls / viaBulk).toFixed(0)}x`)
56
+ console.log(` -> against Decimal : ${(viaDecimal / viaBulk).toFixed(0)}x`)
57
+
58
+ // --- 3. a column reduction --------------------------------------------------
59
+ // The shape bulk is NOT for: one operation per element, where a plain loop wins
60
+ // and crossing at all is the mistake. Kept here so that stays visible.
61
+ console.log(`\n3. A column reduction over ${ROWS.toLocaleString('en-US')} values`)
62
+ const quantities = Array.from({ length: ROWS }, (_, i) => `${(i % 1000) + 1}.0000`)
63
+ const prices = Array.from({ length: ROWS }, (_, i) => `10.${String((i % 97) * 100).padStart(4, '0')}`)
64
+ const minor = new BigInt64Array(2 * ROWS)
65
+ for (let i = 0; i < ROWS; i++) {
66
+ minor[i] = BigInt(((i % 1000) + 1) * 10_000)
67
+ minor[ROWS + i] = BigInt(100_000 + (i % 97) * 100)
68
+ }
69
+
70
+ const bulkDot = time('bulk column.dot(column)', 10, () =>
71
+ Atom.bulk((b) => ({ total: b.column(quantities).dot(b.column(prices)) })),
72
+ )
73
+ const decimalDot = time('Decimal.dot (strings)', 10, () => Decimal.dot(quantities, prices))
74
+ const publicSum = time('sum() over one column', 10, () => sum(quantities))
75
+ const plainJs = time('a plain for over a BigInt64Array', 10, () => {
76
+ let total = 0n
77
+ for (let i = 0; i < ROWS; i++) total += minor[i] * minor[ROWS + i]
78
+ return total
79
+ })
80
+ console.log(` -> bulk against Decimal.dot : ${(decimalDot / bulkDot).toFixed(1)}x`)
81
+ console.log(` -> bulk against a plain loop: ${(plainJs / bulkDot).toFixed(2)}x <- below 1 means do not cross`)
82
+ console.log(` (sum() shown for scale: ${publicSum.toFixed(1)} ms)`)
83
+
84
+ // --- 4. taking the data in ---------------------------------------------------
85
+ // Where the time actually goes once the engine is cheap: turning what the
86
+ // database handed over into integers. A column already held as minor units
87
+ // skips all of it.
88
+ console.log(`\n4. Taking ${ROWS.toLocaleString('en-US')} values into a plan`)
89
+ const cents = quantities.map((value) => BigInt(Math.round(Number(value) * 10_000)))
90
+ const asStrings = time('column(decimal strings)', 10, () => {
91
+ const plan = new Bulk()
92
+ return plan.run({ total: plan.column(quantities).sum() })
93
+ })
94
+ const asMinor = time('minorUnits(bigints, 4)', 10, () => {
95
+ const plan = new Bulk()
96
+ return plan.run({ total: plan.minorUnits(cents, 4).sum() })
97
+ })
98
+ console.log(` -> minor units against decimal strings: ${(asStrings / asMinor).toFixed(1)}x`)
@@ -0,0 +1,32 @@
1
+ import { existsSync, rmSync } from 'node:fs'
2
+ import { dirname, join } from 'node:path'
3
+ import { fileURLToPath } from 'node:url'
4
+
5
+ // Removes the package metadata `wasm-pack` writes into its output directory.
6
+ //
7
+ // `wasm-pack build` treats its out-dir as a publishable package of its own and
8
+ // scaffolds one: a `package.json`, and a `.gitignore` whose entire content is
9
+ // `*`. Ours is not a package — it is a directory inside this one, listed in
10
+ // `files`.
11
+ //
12
+ // The `.gitignore` is the damaging half. npm honours a .gitignore nested INSIDE
13
+ // a published directory even when `files` lists that directory, so a single `*`
14
+ // silently strips every artifact from the tarball — the built .js and .wasm, and
15
+ // the committed .d.ts stub with them. The package then publishes green and every
16
+ // browser consumer gets the engine-missing error. Measured here: with the file
17
+ // present `npm pack --dry-run` reports zero wasm/ entries, without it, two.
18
+ //
19
+ // Runs right after wasm-pack, before anything packs.
20
+
21
+ const wasmDir = join(dirname(fileURLToPath(import.meta.url)), '..', 'wasm')
22
+
23
+ // Only what wasm-pack scaffolds. The artifacts and the committed .d.ts stay.
24
+ const generated = ['.gitignore', 'package.json', 'README.md', 'LICENSE']
25
+
26
+ for (const name of generated) {
27
+ const path = join(wasmDir, name)
28
+ if (existsSync(path)) {
29
+ rmSync(path)
30
+ console.log(`[wasm] removed generated wasm/${name}`)
31
+ }
32
+ }
@@ -1,5 +1,5 @@
1
1
  import { copyFileSync, existsSync } from 'node:fs'
2
- import { dirname, join } from 'node:path'
2
+ import { dirname, join, resolve } from 'node:path'
3
3
  import { arch, env, platform } from 'node:process'
4
4
  import { fileURLToPath } from 'node:url'
5
5
 
@@ -20,16 +20,24 @@ const hostSuffixMap = {
20
20
  'darwin-x64': 'darwin-x64', 'darwin-arm64': 'darwin-arm64', 'win32-x64': 'win32-x64-msvc',
21
21
  }
22
22
 
23
+ // Cargo writes its artifacts under CARGO_TARGET_DIR when that is set — a
24
+ // shared cache, a CI mount — so they are not under this package's `target/` at
25
+ // all. A relative value is resolved against the directory cargo ran in, which
26
+ // is this package root.
27
+ const targetDir = env.CARGO_TARGET_DIR
28
+ ? resolve(root, env.CARGO_TARGET_DIR)
29
+ : join(root, 'target')
30
+
23
31
  const triple = env.CARGO_BUILD_TARGET ?? ''
24
32
  let suffix, os, releaseDir
25
33
  if (triple) {
26
34
  const entry = tripleMap[triple]
27
35
  if (!entry) throw new Error(`${TAG} unsupported CARGO_BUILD_TARGET: ${triple}`)
28
36
  suffix = entry.suffix; os = entry.os
29
- releaseDir = join(root, 'target', triple, 'release')
37
+ releaseDir = join(targetDir, triple, 'release')
30
38
  } else {
31
39
  suffix = hostSuffixMap[`${platform}-${arch}`]; os = platform
32
- releaseDir = join(root, 'target', 'release')
40
+ releaseDir = join(targetDir, 'release')
33
41
  if (!suffix) throw new Error(`${TAG} unsupported platform/arch: ${platform}-${arch}`)
34
42
  }
35
43
 
@@ -1,3 +1,4 @@
1
+ import { execFileSync } from 'node:child_process'
1
2
  import { existsSync, readFileSync, statSync } from 'node:fs'
2
3
  import { dirname, join } from 'node:path'
3
4
  import { fileURLToPath, pathToFileURL } from 'node:url'
@@ -34,7 +35,8 @@ await wasm.default({
34
35
  module_or_path: readFileSync(join(wasmDir, 'atom_engine_wasm_bg.wasm')),
35
36
  })
36
37
 
37
- for (const fn of ['add', 'sub', 'mul', 'div', 'rem', 'pow', 'sqrt', 'cmp']) {
38
+ for (const fn of ['add', 'sub', 'mul', 'div', 'rem', 'pow', 'sqrt', 'cmp',
39
+ 'sum', 'dot', 'runBulk']) {
38
40
  if (typeof wasm[fn] !== 'function') {
39
41
  throw new Error(`[atom:wasm] invalid exports: missing ${fn}()`)
40
42
  }
@@ -46,6 +48,24 @@ if (wasm.add('1.2', '3.4') !== '4.6') {
46
48
  if (wasm.pow('2', -2, 18) !== '0.25') {
47
49
  throw new Error('[atom:wasm] pow smoke test failed')
48
50
  }
51
+ // The bulk VM, exercised rather than merely exported: a browser build that
52
+ // carries the opcode table but computes something else is the failure this
53
+ // gate exists to catch. Quantities 1.50 and 2.25 against prices 10.00 and
54
+ // 4.00 — the same program as the engine's own dot-product test.
55
+ {
56
+ const values = new BigInt64Array([150n, 225n, 1000n, 400n])
57
+ const program = new Int32Array([
58
+ 0, 0, 0, 0, 2, 0, // LOAD_C c0 <- column 0, scale 2
59
+ 0, 1, 1, 0, 2, 0, // LOAD_C c1 <- column 1, scale 2
60
+ 23, 0, 0, 1, 0, 0, // DOT_CC s0 <- c0 . c1
61
+ 40, 0, 0, 0, 0, 0, // OUT_S s0
62
+ ])
63
+ const [total] = wasm.runBulk(values, 2, program)
64
+ if (total !== '24') {
65
+ throw new Error(`[atom:wasm] runBulk smoke test failed: got ${total}, want 24`)
66
+ }
67
+ }
68
+
49
69
  if (wasm.sqrt('2', 6) !== '1.414213') {
50
70
  throw new Error('[atom:wasm] sqrt smoke test failed')
51
71
  }
@@ -53,4 +73,31 @@ if (wasm.cmp('1.20', '1.2') !== 0) {
53
73
  throw new Error('[atom:wasm] cmp smoke test failed')
54
74
  }
55
75
 
56
- console.log('[atom:wasm] browser artifacts present and functional')
76
+ // Present on disk is NOT the same question as present in the package, and it is
77
+ // the weaker one. `wasm-pack` writes a `.gitignore` of `*` into its out-dir, and
78
+ // npm honours a .gitignore nested inside a published directory even when `files`
79
+ // lists that directory — so every check above, smoke tests included, can pass
80
+ // while the tarball ships nothing. That is exactly how 0.1.12 went out.
81
+ //
82
+ // So ask the packer. `--ignore-scripts` keeps this from re-entering
83
+ // prepublishOnly, which is what invoked us.
84
+ const packed = JSON.parse(
85
+ execFileSync('npm', ['pack', '--dry-run', '--json', '--ignore-scripts'], {
86
+ cwd: join(here, '..'),
87
+ encoding: 'utf-8',
88
+ stdio: ['ignore', 'pipe', 'ignore'],
89
+ }),
90
+ )[0]
91
+
92
+ const shipped = new Set(packed.files.map((f) => f.path))
93
+ for (const name of required) {
94
+ if (!shipped.has(`wasm/${name}`)) {
95
+ throw new Error(
96
+ `[atom:wasm] wasm/${name} is on disk but NOT in the tarball — something is excluding it ` +
97
+ `(a .gitignore or .npmignore nested in wasm/ will do this even though "wasm" is in package.json files). ` +
98
+ `Run \`node scripts/clean-wasm-pack-meta.mjs\` after wasm-pack.`,
99
+ )
100
+ }
101
+ }
102
+
103
+ console.log(`[atom:wasm] browser artifacts present, functional, and in the tarball (${shipped.size} files)`)
package/src/Decimal.ts CHANGED
@@ -124,6 +124,64 @@ export class Decimal {
124
124
  return value instanceof Decimal;
125
125
  }
126
126
 
127
+ /**
128
+ * Add a whole batch in ONE crossing of the native boundary.
129
+ *
130
+ * **This exists for the crossing, not for the arithmetic.** Parsing and
131
+ * adding a decimal is cheap; doing it from JavaScript one pair at a time is
132
+ * not, because every call serialises both operands to strings, crosses into
133
+ * Rust and comes back with a third. Folding `plus` over a hundred thousand
134
+ * values pays that toll a hundred thousand times for work the engine does
135
+ * in one pass — measured at roughly a microsecond per operation, which is
136
+ * where a multi-year portfolio rebuild spends almost all of its time.
137
+ *
138
+ * Exactly equal to folding {@link plus} over the same values, by
139
+ * construction and by test: decimal addition is exact and associative, and
140
+ * every value is raised to the common scale rather than rounded to it.
141
+ *
142
+ * An empty batch is zero — the additive identity, and the only answer that
143
+ * keeps `sum(a) + sum(b) === sum([...a, ...b])` true when one side is
144
+ * empty.
145
+ */
146
+ static sum(values: Iterable<DecimalInput>): Decimal {
147
+ const parts = [...values].map(normalizeInput);
148
+ const native = tryNativeAtom();
149
+ if (native) return new Decimal(native.sum(parts));
150
+ // The fallback folds, because the TypeScript engine has no boundary to
151
+ // cross and therefore nothing to save by batching.
152
+ return new Decimal(parts.reduce((total, part) => addTs(total, part), "0"));
153
+ }
154
+
155
+ /**
156
+ * The sum of pairwise products — `Σ aᵢ·bᵢ` — in one crossing.
157
+ *
158
+ * The shape of every valuation in this ecosystem: a quantity times a price,
159
+ * added up. Two crossings per position become one for the whole book.
160
+ *
161
+ * Throws on mismatched lengths rather than stopping at the shorter list: a
162
+ * quantity list and a price list of different lengths is a caller's bug,
163
+ * and valuing the first n positions would return a plausible figure for a
164
+ * portfolio nobody holds.
165
+ */
166
+ static dot(a: Iterable<DecimalInput>, b: Iterable<DecimalInput>): Decimal {
167
+ const left = [...a].map(normalizeInput);
168
+ const right = [...b].map(normalizeInput);
169
+ if (left.length !== right.length) {
170
+ throw new Error(
171
+ `Mismatched batch lengths: ${left.length} and ${right.length}`,
172
+ );
173
+ }
174
+ const native = tryNativeAtom();
175
+ if (native) return new Decimal(native.dot(left, right));
176
+ return new Decimal(
177
+ left.reduce(
178
+ (total, value, index) =>
179
+ addTs(total, mulTs(value, right[index] as string)),
180
+ "0",
181
+ ),
182
+ );
183
+ }
184
+
127
185
  static zero(): Decimal {
128
186
  return new Decimal("0");
129
187
  }