Skip to content

Add opt-in ring far-field evaluation for WASM 0.8.0 - #10

Merged
andrekuehne merged 3 commits into
masterfrom
feat/ring-far-field-evaluator
Sep 27, 2026
Merged

andrekuehne merged 3 commits into
masterfrom
feat/ring-far-field-evaluator

Conversation

@andrekuehne

Copy link
Copy Markdown
Owner

Dense upper-hemisphere grids spend most retained-solve time evaluating far fields. This adds an opt-in ring band-limited evaluator and prepares @necpp-engine/wasm 0.8.0, while keeping existing exact defaults and goldens unchanged.

Set farFieldEvaluator: "ring" when creating a model or array solver, or select evaluator per request. The shared C++ kernel supports free space and PEC ground, falls back to direct evaluation when needed, and works with ordinary fields, worker pools, both embedded normalizations, and packed characterization. Result metadata records evaluator provenance and the analytical truncation bound; packed formats and ABI version 1 remain compatible.

The report in docs/ring-far-field-evaluation.md includes profiling, the tail-bound derivation, native/WASM benchmarks, accuracy, limitations, and reproduction commands. Large-array stateful WASM field evaluations improved 6.76–8.91×. All 154 benchmark comparisons passed the 1e-7 target (largest observed relative error 5.389e-10); all 84 scalar power-closure comparisons agree to nine decimal places.

Validation:

  • Eight native CTest groups, 160 package tests, and TypeScript checking passed.
  • Package manifest, README examples, clean Node/CDN/Vite consumers, and browser worker/packed-handoff checks passed.
  • Rechecked the 0.8.0 package identity, manifest, and consumers; built a local candidate with the release packer.

The version bump updates the lockfile, runtime version export, fixture version metadata, assertions, and changelog. No npm publication or visualizer dependency change is included. The visualizer can use the CI-tested 0.8.0 tarball from this PR/merge workflow using its existing vendoring process.

Share a bounded C++ ring kernel between stateful and worker evaluators, preserve exact defaults, and support embedded fields with explicit provenance. Include native, package, browser, and packaged-consumer coverage plus reproducible native/WASM benchmarks and the integration report.
@andrekuehne
andrekuehne merged commit af99046 into master Sep 27, 2026
12 checks passed
@andrekuehne
andrekuehne deleted the feat/ring-far-field-evaluator branch September 27, 2026 10:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant