Rand Stats

Math::NIntegrate

zef:antononcube
Changes of the Raku package "Math::NIntegrate".

0.0.10 2026-10-18
    - Implemented Quasi Monte Carlo rules and strategies
        - Both crude and adaptive
    - Implemented Double Exponential rule (1D only)

0.0.9 2026-10-15
    - Implemented Adaptive Monte Carlo integration strategy
    - Performance improvements of Multidimensional rule
        - ≈ 1.5 times speed up with Rakudo
        - ≈ 3.5 times speed up with Rakupp / Raku++

0.0.8 2026-10-13
    - Performance related implementations and refactoring using Infinite variable transform
        - Not hooked-up yet in main integration process; only profiled and documented
    - Unit cube rescaling strategy decorator implementation for numeric ranges (finite and infinite)
        - For example: , 
        - Can provide between 1.5 to 5 times speedup for both 1D and nD integrals

0.0.7 2026-10-10
    - Performance related implementations and refactoring:
        - ≈ 5 times speed up on multidimensional crude Monte Carlo integration
        - ≈ 4.5 times speed up for Cartesian rules
        - ≈ 2 times speed up for one-dimensional integrals

0.0.6 2026-10-07
    - Performance related refactoring, ≈ 25% speed-up
    - MonteCarlo strategy improvements: better error handling, processing partitioning and random seed options
    - Implemented Romberg quadrature for TrapezoidalRule
    - Grammar and interpreter enhancements to:
        - Take a list of integers a value for the "partitioning" option
        - Process "romberg-quadrature" option

0.0.5 2026-10-05
    - Fixed a bug in the handling of integrals with range (-Inf, Inf)
    - Implemented max-points stopping criteria for the Global-Adaptive and Local-Adaptive strategies
        - Not working properly yet for MultiDimensionalRule

0.0.4 2026-10-05
    - Streamlined computations with user defined integration rules and strategies
    - Implemented (crude) Monte-Carlo strategy
    - Integrals can have functional boundaries
        - I.e. this works: nintegrate({$^x + $^y}, ['x', 0, 1], ['y', {$^x.sqrt}, {$^x}])

0.0.3 2026-10-02
    - Process user specified "singular points" given in the range specs
      - For example:
      - nintegrate({1/(1-$^x).abs.sqrt}, )
      - nintegrate({1/($^x + $^y).abs.sqrt}, , )
    - Fixes for both concise- and multi-component Cartesian rule specifications
    - Facilitation of stepping away from singular points during integrand evaluation
    - Special representation methods -- gist, Hash, Str -- for strategies and rules

0.0.2 2026-10-01
    - Implemented LocalAdaptive integration strategy
      - Related region division implementation and grammar/interpreter extensions.

0.0.1 2026-09-28
    - First version with:
        - GlobalAdaptive integration strategy
            - Can be given an integration monitor routine as an argument.
        - The integration rules:
            - Cartesian, ClenshawCurtis, GaussKronrod, MonteCarlo, MultiDimensional, NewtonCotes, Trapezoidal
        - Singularity handler by Iri, Moriguti, & Takesawa ("IMT rule").
        - Comprehensive integrator spec parsing and interpretation
        - Kahaner integrator tests
        - CLI script