@vessel-dsp/runtime 0.3.1 → 0.4.1

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.
package/README.md CHANGED
@@ -4,7 +4,7 @@ Headless real time MNA simulation runtime and solver console for compiled Vessel
4
4
 
5
5
  ## Install
6
6
 
7
- `@vessel-dsp/runtime` 0.3.1 is on npm. Use runtime 0.2.1 or later (0.3.0 adds the packaged worklet): 0.2.0 cannot load a program inside an AudioWorklet (`structuredClone` is not defined there).
7
+ `@vessel-dsp/runtime` 0.4.1 is on npm. Use runtime 0.2.1 or later (0.3.0 adds the packaged worklet): 0.2.0 cannot load a program inside an AudioWorklet (`structuredClone` is not defined there).
8
8
 
9
9
 
10
10
  ```bash
@@ -57,7 +57,9 @@ The previous version of this example constructed `new ReferenceRuntime(program,
57
57
  - `maxNewtonIterations` (default `DEFAULT_NEWTON_MAX_ITERATIONS`): CPU versus accuracy knob. Samples that exhaust it are held and counted in telemetry, never silently interpolated.
58
58
  - `realtimeBudget`: opt in admission gate; omitted means no gating.
59
59
  - `inputSourceOhms` (default 0): series impedance of whatever drives the input jack. A console setting, not a program one. A fuzz face driven from an ideal source renders at constant maximum harshness; a guitar source is several kOhm.
60
- - `oversample` (default 1): integer sub samples per host sample. Zero order hold output (last sub sample wins); no band limiting decimator is implemented.
60
+ - `oversample` (default 1): integer sub samples per host sample. A power of two of 2 or more solves the circuit at `sampleRate * oversample` behind a band-limited half-band FIR cascade: one 2x stage per factor of two, interpolating on the way up and decimating on the way down, with a fixed per-stage prototype (41 taps at Kaiser beta 6.0, then 29 at 7.0, then 21 at 6.0; stages past the table reuse the last entry). Coefficients depend on the stage only, never on the circuit. The cascade is linear phase and delays the output by 19.5 / 26.25 / 28.625 host samples at 2x / 4x / 8x (0.41 / 0.55 / 0.60 ms at 48 kHz), read back by `oversampleLatency()` (`null` before `prepare()`); `hostSampleRate()` reports the host rate. Any other factor (3, 5, ...) keeps the held path: the input sample is held flat across the sub samples and the last sub sample is the output, latency 0. Factor 1 executes the same operations in the same order as before.
61
+
62
+ At `oversample` 2 or more, a standard audio-pass Newton solve of a nonlinear block starts from a self-selecting extrapolation (order 0, 1 or 2) of the block's last three converged solutions, chosen after every converged solve by scoring the three candidates against the solution in tolerance units and used only after a solve that took at most two iterations; a non-converged solve breaks the chain, and `prepare()` clears it. **At the default factor 1 the predictor does not run:** nothing seeds and nothing records, and every solve starts from the previous solution, as in runtime 0.3.1 (it ran at every factor in 0.4.0; 0.4.1 gated it because at factor 1 it bought 2.9 % / 10.1 % fewer iterations across the pedal / amp corpus while moving `boss-dm-2` by 6.2 % of its cold-start peak). The factor is fixed by `prepare()`, so there is no switch mid run. There is no knob: it changes which iterate inside the convergence tolerance is accepted, not the tolerance.
61
63
 
62
64
  `process(input: Float64Array): Float64Array` renders one block and returns a new array. Any block length is accepted. `reset()` clears reactive state. `telemetry()` returns per run solver census: samples, non converged, stalled, solved but flagged, per block Newton census, non finite, peak iterations, operating point failures, `operatingPointSupplyAmps`, `renderedSupplyPeakAmps` (null until a sample renders), total iterations, last failure.
63
65
 
@@ -98,7 +100,9 @@ What it does not do: no mutation of the caller `Program` (two runtimes from one
98
100
 
99
101
  `V2WasmEngine` is the compiled C++/WASM console for the same programs. It ships in this package: `bun run --cwd packages/runtime build:wasm` (needs `em++`) writes `v2_dsp.cjs` plus `v2_dsp.wasm` to the gitignored `src/wasm/`, `build` copies them to `dist/wasm/`, and `prepack` does both, so the published tarball always carries a freshly built console. The 0.2.0 tarball is about 1.0 MB packed (3.1 MB unpacked): 2.1 MB of wasm plus about 15 KB of glue.
100
102
 
101
- `V2WasmEngine.create(program?)` loads the glue from the package's own `dist/wasm/` — no path to configure — and optionally loads a program. `prepare({ sampleRate, maxNewtonIterations, inputSourceOhms })` (rate defaults to 48000), `processSample` / `processBlock` on `Float32Array`s, `getControl` beside `setControl`, `getSupplies`/`setSupply` with the same validation and `RuntimeError` behaviour as the reference console, and schedule telemetry (`getScheduleTelemetry`: solves, fallbacks, kernel solves, repivoted, abandoned, dropped blocks — a healthy packet reads zero fallbacks and zero abandoned blocks).
103
+ `V2WasmEngine.create(program?)` loads the glue from the package's own `dist/wasm/` — no path to configure — and optionally loads a program. `prepare({ sampleRate, maxNewtonIterations, inputSourceOhms, oversample })` (rate defaults to 48000, `oversample` to 1, validated as on the reference console and running the same half-band cascade, latency and held-path rules), `hostSampleRate()` / `oversampleLatency()` with the reference console's names and `null`-before-`prepare()` semantics, `processSample` / `processBlock` on `Float32Array`s, `getControl` beside `setControl`, `getSupplies`/`setSupply` with the same validation and `RuntimeError` behaviour as the reference console, schedule telemetry (`getScheduleTelemetry`: solves, fallbacks, kernel solves, repivoted, abandoned, dropped blocks — a healthy packet reads zero fallbacks and zero abandoned blocks), and Newton start predictor telemetry (`getPredictorTelemetry`: `seedsUsed`, `oneIterationSolves`, `totalIterations` since `prepare()`/`reset()`; `getPredictorOrder(blockIdx)`: the order 0/1/2 the block's next solve seeds from, -1 for a bad index). The console runs the same predictor as the reference, behind the same `oversample > 1` gate, and makes the same order decision sample for sample; at `oversample` 1 `seedsUsed` and `oneIterationSolves` stay 0 and `getPredictorOrder` reads 0.
104
+
105
+ Native exports (the glue's `_v2_engine_*` functions) changed in runtime 0.4.0: `v2_engine_prepare` is now `(handle, sampleRate, maxNewtonIterations, inputSourceOhms, oversample)` — the `oversample` argument was added to the existing export, not shipped beside it, so a host calling the glue directly must pass it (the wrapper does). New exports: `v2_engine_get_host_sample_rate`, `v2_engine_get_oversample_latency` (doubles, -1 before prepare), `v2_engine_get_predictor_seeds`, `v2_engine_get_one_iteration_solves`, `v2_engine_get_total_iterations` (doubles), `v2_engine_get_predictor_order(handle, blockIdx)` (int32), and the test-only `v2_resample_*` / `v2_testonly_resample_*` getters the package's own tests use.
102
106
 
103
107
  A host that cannot dynamically import the glue — an `AudioWorkletGlobalScope` bundles it statically and has no `fetch` — instantiates the module from pre-fetched bytes and passes it as the second argument: `V2WasmEngine.create(program, mod)`, where `mod` comes from the glue factory called with `{ wasmBinary }` read from `@vessel-dsp/runtime/wasm/v2_dsp.wasm`. See the Runtime guide for both paths end to end; on a biased BJT stage the two consoles agree sample by sample to about 1e-7.
104
108
 
@@ -1,4 +1,4 @@
1
- import type { ClockLawParams, ControlId, DelayLengthSpec, Program } from "@vessel-dsp/compiler";
1
+ import type { ClockLawParams, ControlId, DelayLengthSpec, Program, SparseSchedule } from "@vessel-dsp/compiler";
2
2
  import { type RealtimeBudget } from "./admission";
3
3
  import type { SupplyAddress, SupplyInfo } from "./supply";
4
4
  /**
@@ -234,6 +234,20 @@ export declare class ReferenceRuntime {
234
234
  * correct at the sub-sample rate. `hostSampleRate()` is the rate a caller passed in.
235
235
  */
236
236
  private oversample;
237
+ /**
238
+ * Band-limited resampling around the solver, one 2x half-band stage per
239
+ * entry, cascaded for 4x and 8x. Empty unless `oversample` is a power of
240
+ * two greater than 1; any other factor keeps the legacy hold-and-last
241
+ * path below. Built fresh (zero state) in `prepare()`, so the filter
242
+ * state never leaks across renders and block splits stay bit-identical.
243
+ */
244
+ private resampleUp;
245
+ private resampleDown;
246
+ /** Scratch for the sub-sample streams, sized to `oversample` in `prepare()`. */
247
+ private resampleBufA;
248
+ private resampleBufB;
249
+ /** Total resampler group delay in host samples (0 on the legacy path). */
250
+ private resampleLatencyHost;
237
251
  private readonly positions;
238
252
  private readonly lastShiftedSample;
239
253
  /**
@@ -474,6 +488,50 @@ export declare class ReferenceRuntime {
474
488
  * samples 4800 of 4800 -> 22.
475
489
  */
476
490
  private readonly unproductiveUntilSample;
491
+ /**
492
+ * Per block, the last three converged sub-sample solutions and the extrapolation order
493
+ * that would have predicted the newest of them best, for the Newton start predictor.
494
+ *
495
+ * **The start of a Newton solve is a guess, and the previous solution is only the
496
+ * cheapest guess, not the best one.** At 4x oversampling the circuit moves a quarter as
497
+ * far per solve, and a quadratic extrapolation of the last three solutions lands inside
498
+ * the convergence tolerance on most sub-samples, so the first Newton step is already the
499
+ * answer and the check that follows it is the whole solve: one iteration where the
500
+ * previous-solution start needs two (one step, one check). Measured 2026-10-09 on the six
501
+ * profile packets at os4 (`docs/spikes/2026-10-09-newton-iteration-budget.md`): iterations
502
+ * per host sample fall 38-47 % on the pedals with every converged solution within 0.02
503
+ * tolerance units of the full-Newton solution from the same state.
504
+ *
505
+ * **The order is chosen by the block's own history, not by a constant.** After every
506
+ * converged solve the three candidate starts the history could have produced (order 0 =
507
+ * the previous solution, 1 = linear, 2 = quadratic) are scored against the solution just
508
+ * reached, in tolerance units, and the best one is used for the next solve -- but only
509
+ * when that solve took at most two iterations (the floor: one step and one check). A
510
+ * solve that needed more was hunting across a knee, and there a closer start is not a
511
+ * cheaper one (`recordNewtonSolution` has the measurement). On a hard edge the
512
+ * extrapolations overshoot the clipping knee and score worse than the previous solution,
513
+ * so the next solve starts exactly where it always did; on a signal it cannot predict it
514
+ * costs nothing. A non-converged solve breaks the chain (no history to extrapolate from).
515
+ *
516
+ * Only the start moves. The convergence test, the limiter histories, the relaxation rule
517
+ * and the fold reseed (which reads the caller's `start`, the previous solution) are
518
+ * untouched, so what converges is still the circuit's equations at the shipped
519
+ * tolerances -- a different first iterate, the same fixed point.
520
+ *
521
+ * **It runs only when `prepare()` was given `oversample > 1`; at factor 1 (the default)
522
+ * it neither seeds nor records, so the ring stays empty and the solve is the one runtime
523
+ * 0.3.1 ran.** It shipped in 0.4.0 at every factor and was gated here in 0.4.1 because at
524
+ * factor 1 it buys little and moves the output more than that saving is worth: iterations
525
+ * fall 2.9 % across the pedal corpus and 10.1 % across the amps (1 kHz 0.1 V, cap 64),
526
+ * against `boss-dm-2` moving 6.2 % of its cold-start peak (0.5-0.8 % of the settled peak)
527
+ * and `boss-mt-2` stalling the WASM console permanently from 2.752 s of two-tone drive
528
+ * (it does not stall with the predictor off). Above 1 it stays on for every factor, the
529
+ * held path included (iterations on the profile packets: 2x -6..-15 %, 3x 0..-1 %, 4x
530
+ * -39..-47 %, 5x/6x -8..-24 %, 8x -44..-50 %; output movement at most 6e-6 relative RMS).
531
+ * The factor is fixed by `prepare()` (which also clears the ring), so there is no mid-run
532
+ * switch to reason about.
533
+ */
534
+ private readonly newtonStartHistory;
477
535
  private readonly blockNewtonCensus;
478
536
  private totalIterations;
479
537
  private nonFiniteSamples;
@@ -689,10 +747,23 @@ export declare class ReferenceRuntime {
689
747
  * multiplier spends the most where it buys least, so the factor belongs with whoever
690
748
  * knows the packet -- `report-newton-deadline` computes the stiffness signal.
691
749
  *
692
- * **What it does not do.** Decimation here is zero-order: the last sub-sample of each
693
- * host sample is the output. That is what the 47-to-50 measurement was taken with. A
694
- * band-limiting decimator is a real improvement for broadband content and is *not*
695
- * implemented, because a single 1 kHz tone cannot justify a filter choice.
750
+ * **What it does.** At a power-of-two factor (2, 4, 8, ...), each
751
+ * host sample is band-limited interpolated up by cascaded half-band
752
+ * FIR 2x stages, solved at the sub-sample rate, and FIR-decimated
753
+ * back to one host sample per input sample. The interpolation
754
+ * removes the input hold's sinc droop and the decimation removes
755
+ * folded harmonics, so a 48 kHz host at 4x renders like a true
756
+ * 192 kHz simulation of the band-limited host signal. The filters
757
+ * are linear-phase, designed in `prepare()` from the stage alone
758
+ * (never the circuit), with their state carried across `process()`
759
+ * calls; the total group delay in host samples is reported by
760
+ * `oversampleLatency()`.
761
+ *
762
+ * **What it does not do.** At factor 1, or a factor that is not a
763
+ * power of two, decimation here is zero-order: the last
764
+ * sub-sample of each host sample is the output. That is what the
765
+ * 47-to-50 measurement was taken with. A band-limiting decimator
766
+ * for non-power-of-two factors is not implemented.
696
767
  */
697
768
  readonly oversample?: number;
698
769
  }): void;
@@ -832,8 +903,49 @@ export declare class ReferenceRuntime {
832
903
  * smallest dropped disagreement is `boss-aw-2` at `9.8e+3`. Dense is not
833
904
  * assumed right -- `tw-1` diverges on 61 samples densely while converging
834
905
  * sparsely -- the gate only fires where the replay demonstrably collapses.
906
+ *
907
+ * A validating shipped order is still replaced when the value-aware candidate
908
+ * reaches the audio-agreement bar (1e-9) an order of magnitude more cleanly
909
+ * without meaningful fill cost -- the refinement in `SCHEDULE_REFINEMENT_BAR`.
910
+ * Bar-clean ties keep shipped even when the audios differ: the
911
+ * operating-point replay cannot adjudicate audio-time divergence (`boss-os-2`
912
+ * replays 3.4e-10 shipped vs 2.5e-13 candidate while the audios differ 1000x),
913
+ * so the rule only moves past the bar it can measure, never on a tie.
914
+ * Measured adopters: `boss-sd-1` (1.8e-9 to 4.2e-13, audio 6.9e-8 to
915
+ * 6.5e-12).
835
916
  */
836
917
  private settlePivotOrders;
918
+ /**
919
+ * Adopt a value-aware replacement order for a block, from settle or from
920
+ * the mid-run re-pivot, with one shared bookkeeping shape.
921
+ *
922
+ * The replacement's slots are a superset of the shipped filled pattern
923
+ * whose extra cells no stamp writes (see `computeNumericRepivot`), so the
924
+ * pattern-sized matrix refresh keeps reading correct zeros and neither
925
+ * `clearPairs` nor the selective-copy machinery needs a rebuild -- the
926
+ * same reason a dropped block, which does change the refresh, sets
927
+ * `clearPairs` to null where this does not.
928
+ */
929
+ private adoptRepivotedSchedule;
930
+ /**
931
+ * The mid-run half of the pivot-guard contract: at the consecutive-trip
932
+ * limit, re-pivot once from the current matrix instead of abandoning.
933
+ *
934
+ * Takes the stamped matrix and rhs snapshotted before the dense fallback
935
+ * destroyed them, plus the fallback's answer, and returns whether a
936
+ * value-aware order was adopted. Adoption needs the rescue standard --
937
+ * replay within `SCHEDULE_VALIDATION_TOL` of the dense answer on this
938
+ * matrix -- the same bar a collapse rescue clears at settle, because this
939
+ * is a rescue: the shipped order demonstrably does not suit this
940
+ * operating region. A refusal (null candidate, tripped replay, or a
941
+ * disagreeing replay) returns false and the caller abandons exactly as
942
+ * before, with the reason naming the refusal. Either outcome lands in
943
+ * the plan row, so a mid-run adoption is as visible as a settle one.
944
+ *
945
+ * Structured for direct unit testing (pure inputs, boolean verdict): the
946
+ * corpus never trips the guard, so no corpus run exercises this path.
947
+ */
948
+ private adoptMidRunRepivot;
837
949
  /**
838
950
  * Which blocks took the static schedule and which kept the dense solve, and how often the
839
951
  * pivot guard sent a solve back to the dense path.
@@ -866,6 +978,28 @@ export declare class ReferenceRuntime {
866
978
  readonly scheduleFallbacks: number;
867
979
  };
868
980
  process(input: Float64Array): Float64Array;
981
+ /**
982
+ * One host sample through the legacy path: the input held flat across the
983
+ * sub-samples, the last sub-sample kept. Bit-identical to the behaviour
984
+ * before the band-limited resampler existed, which is what makes factor 1
985
+ * (and non-power-of-two factors) cost nothing and change nothing.
986
+ */
987
+ private processHeldSample;
988
+ /**
989
+ * One host sample through the band-limited path: half-band interpolate up
990
+ * by 2 per stage, solve each sub-sample, FIR-decimate back to one host
991
+ * sample. The resampler state lives on the stages across `process()`
992
+ * calls, so any block split renders bit-identically to one long call;
993
+ * the group delay this adds is reported by `oversampleLatency()`.
994
+ */
995
+ private processResampledSample;
996
+ /**
997
+ * One sub-sample solve at the solver rate: every block stepped once at
998
+ * `t = elapsedSamples / sampleRate`, returning the output jack's value.
999
+ * Shared by the held and the resampled paths, so factor 1 executes the
1000
+ * same operations in the same order as before the resampler existed.
1001
+ */
1002
+ private solveSubSample;
869
1003
  /**
870
1004
  * The rate the caller passed to `prepare`, as opposed to the solver's sub-sample rate.
871
1005
  *
@@ -873,6 +1007,15 @@ export declare class ReferenceRuntime {
873
1007
  * know what it asked for -- to size a buffer, or to report -- wants this one.
874
1008
  */
875
1009
  hostSampleRate(): number | null;
1010
+ /**
1011
+ * The resampler's total group delay in **host** samples, or `null` before
1012
+ * `prepare()`. Zero when the resampler is bypassed (factor 1, or a factor
1013
+ * that is not a power of two and keeps the legacy path): the held path
1014
+ * adds no latency by construction. At 2x/4x/8x this is 19.5/26.25/28.625
1015
+ * host samples for the stage-specific half-band cascade -- a real, reported
1016
+ * latency the caller must absorb or declare, not a hidden one.
1017
+ */
1018
+ oversampleLatency(): number | null;
876
1019
  private processBlock;
877
1020
  /**
878
1021
  * The composition interpreter (board-p3 row 4): a data-driven graph of
@@ -1048,6 +1191,19 @@ export declare class ReferenceRuntime {
1048
1191
  */
1049
1192
  private solveBySourceStepping;
1050
1193
  private clearLimiterHistories;
1194
+ /**
1195
+ * The Newton start `newtonStartHistory` selects for this block, or `null` to start from
1196
+ * the caller's previous solution (order 0, or a chain too short for the chosen order).
1197
+ * The returned array is the block's reused scratch: read it before the next solve.
1198
+ */
1199
+ private predictedNewtonStart;
1200
+ /**
1201
+ * Record a finished standard-pass solve: on convergence, score the three candidate
1202
+ * starts the history could have produced against the solution just reached (one fused
1203
+ * pass, no allocation) and keep the best order for the next solve, then rotate the
1204
+ * solution into the history ring; on failure, break the chain.
1205
+ */
1206
+ private recordNewtonSolution;
1051
1207
  private snapshotLimiterHistories;
1052
1208
  private restoreLimiterHistories;
1053
1209
  /** Advance reactive memory. Trapezoidal, so it carries both across and through. */
@@ -1077,4 +1233,66 @@ export declare class ReferenceRuntime {
1077
1233
  private advanceOpAmpRawState;
1078
1234
  private applyStamp;
1079
1235
  }
1236
+ /**
1237
+ * Pivot guard floor: a pivot below this absolute value sends the solve back
1238
+ * to the dense path.
1239
+ *
1240
+ * This is deliberately ABSOLUTE, not relative, and that is a measured
1241
+ * position rather than a default. A relative guard (`|pivot| < tau *
1242
+ * max|gathered|`) was implemented and reverted 2026-10-08: at tau 1e-12 it
1243
+ * dropped healthy `boss-ce-5` to dense outright; at 1e-14 it gratuitously
1244
+ * re-pivoted `boss-ch-1`; at 1e-16 it abandoned `boss-dd-3b` and
1245
+ * `mxr-blue-box`, dropped `boss-tw-1` (losing its 0.8x budget fix) and
1246
+ * `mxr-dyna-comp`'s rescue, regressed `boss-nf-1` audio 1000x (7.0e-11 to
1247
+ * 7.7e-05), and put 528k fallback solves onto `moogerfooger-mf-102` for no
1248
+ * audio change. The census behind it: healthy `ce-5`/`ch-1`/carbon-copy
1249
+ * bottom out at 1.0-2.5e-15 while fatal `aw-2` sits at 7.7e-15 -- magnitude
1250
+ * alone cannot separate a healthy late-order gmin pivot from a fatal one,
1251
+ * only a replay against dense can, which is the settle gate's job, not this
1252
+ * one's. So this floor catches exactly what it can judge -- collapse -- and
1253
+ * the re-pivot-once below handles the shape that collapse takes mid-run.
1254
+ * See `docs/spikes/2026-10-08-numeric-pivoting.md`.
1255
+ *
1256
+ * Exported for the unit tests alongside the replay: the trip formula is
1257
+ * load-bearing and the corpus never trips it, so only a synthetic matrix
1258
+ * pins it.
1259
+ */
1260
+ export declare const SCHEDULE_PIVOT_FLOOR = 1e-18;
1261
+ /**
1262
+ * Whether a validating shipped order should be replaced by the numeric
1263
+ * candidate: the refinement half of `settlePivotOrders`, extracted pure so
1264
+ * both consoles and the unit tests share the exact predicate.
1265
+ *
1266
+ * Adopt only when the shipped order is above the audio-agreement bar while
1267
+ * the candidate reaches it, by an order of magnitude, without meaningful
1268
+ * fill cost. The shipped-side floor matters as much as the candidate-side
1269
+ * bar: without it, bar-clean ties with a 1000x replay gap (`trainwreck`,
1270
+ * `fender-5e3`, `vox-ac15`) churn schedules -- and lose their generated
1271
+ * kernels on the C++ console -- for zero audio gain, and `hiwatt-dr103`
1272
+ * adopts on one console but not the other from libm-level matrix noise.
1273
+ * Every input is an operating-point-replay disagreement or a slot/op count
1274
+ * -- no audio renders, no per-packet gates.
1275
+ */
1276
+ export declare function shouldRefinePivotOrder(input: {
1277
+ readonly shippedDisagreement: number;
1278
+ readonly candidateDisagreement: number;
1279
+ readonly shippedOps: number;
1280
+ readonly shippedSlots: number;
1281
+ readonly candidateOps: number;
1282
+ readonly candidateSlots: number;
1283
+ }): boolean;
1284
+ /**
1285
+ * Replay a schedule against one stamped matrix.
1286
+ *
1287
+ * Returns `false` without finishing when a pivot has collapsed below
1288
+ * `SCHEDULE_PIVOT_FLOOR`, which is the caller's signal to run the dense solve
1289
+ * for this iteration instead. Nothing the caller still needs is destroyed on
1290
+ * the way: `matrix` is only read (the gather copies out of it), `rhs` is
1291
+ * copied into the schedule's own buffer, and `out` is a scratch buffer the
1292
+ * dense fallback overwrites in full.
1293
+ *
1294
+ * Exported for the unit tests: the trip formula is load-bearing and the
1295
+ * corpus never trips it, so only a synthetic matrix pins the boundary.
1296
+ */
1297
+ export declare function runSparseSchedule(schedule: SparseSchedule, matrix: number[][], rhs: readonly number[], values: Float64Array, scratchRhs: Float64Array, factors: Float64Array, out: number[]): boolean;
1080
1298
  //# sourceMappingURL=reference-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reference-runtime.d.ts","sourceRoot":"","sources":["../src/reference-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reference-runtime.d.ts","sourceRoot":"","sources":["../src/reference-runtime.ts"],"names":[],"mappings":"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"}