Skip to content

Add multi-dimensional integration (Phase 3)#5

Merged
gvonness-apolitical merged 1 commit intomainfrom
phase-3-cubature
Feb 26, 2026
Merged

Add multi-dimensional integration (Phase 3)#5
gvonness-apolitical merged 1 commit intomainfrom
phase-3-cubature

Conversation

@gvonness-apolitical
Copy link
Contributor

Summary

  • Tensor product rules: TensorProductRule with mixed-order and isotropic constructors, CubatureRule flat node storage with integrate() and integrate_box()
  • Smolyak sparse grids: SparseGrid::clenshaw_curtis(dim, level) using combination technique with quantised point merging
  • Genz-Malik adaptive cubature: degree-7/5 embedded rule pair, h-adaptive BinaryHeap subdivision, fourth-difference split axis selection, 1D delegation
  • Monte Carlo / quasi-Monte Carlo: Sobol (gray-code, 40 dims, Joe-Kuo direction numbers), Halton (100 primes), plain MC (Xoshiro256++ PRNG, Welford variance)

136 unit tests + 28 doc tests, zero clippy warnings.

Test plan

  • cargo test — 164 tests pass
  • cargo clippy -- -W clippy::all — zero warnings
  • cargo fmt --check — clean

Tensor product rules, Smolyak sparse grids, Genz-Malik adaptive
cubature, and Monte Carlo / quasi-Monte Carlo (Sobol, Halton).
@gvonness-apolitical gvonness-apolitical merged commit 3b08e64 into main Feb 26, 2026
0 of 6 checks passed
@gvonness-apolitical gvonness-apolitical deleted the phase-3-cubature branch February 26, 2026 14:50
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