Class NumericalIntegrator
java.lang.Object
com.github.gbenroscience.math.numericalmethods.NumericalIntegrator
- Author:
- GBEMIRO Production-grade high-performance integrator for Java/Android. Uses MethodHandles for ultra-fast reflection-based function evaluation. Thread-safe parallel execution with function cloning. Features: - Auto-detection of singularities (poles, log blows-up, narrow spikes) - Optimal coordinate transformations (linear, logarithmic, semi-infinite) - Deep scan for hidden pathological behavior - Optional parallel evaluation on multi-core systems (thread-safe) - Strict timeout enforcement (1.5-5 seconds configurable) - 15+ digit accuracy for smooth functions, 3-6 digits for singular - Ultra-fast function evaluation via MethodHandles (2x faster than try-catch) Accuracy: 15-16 digits (smooth), 5-6 digits (log singularities), 3-4 digits (power laws)
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final int -
Constructor Summary
ConstructorsConstructorDescriptionNumericalIntegrator(double xLower, double xUpper) NumericalIntegrator(Function function, MethodHandle gaussianHandle, double xLower, double xUpper, String[] vars, int[] slots) -
Method Summary
Modifier and TypeMethodDescriptiondoubleCompute definite integral of f from a to b.booleanstatic voidvoidsetParallelSum(boolean parallelSum) voidsetTimeoutMs(long timeoutMs)
-
Field Details
-
GAUSSIAN_STRATEGY
public static final int GAUSSIAN_STRATEGY- See Also:
-
THIS_STRATEGY
public static final int THIS_STRATEGY- See Also:
-
-
Constructor Details
-
NumericalIntegrator
public NumericalIntegrator(double xLower, double xUpper) -
NumericalIntegrator
public NumericalIntegrator(Function function, MethodHandle gaussianHandle, double xLower, double xUpper, String[] vars, int[] slots)
-
-
Method Details
-
setParallelSum
public void setParallelSum(boolean parallelSum) -
isParallelSum
public boolean isParallelSum() -
setTimeoutMs
public void setTimeoutMs(long timeoutMs) -
integrate
Compute definite integral of f from a to b. Handles singularities, oscillations, and pathological functions.- Parameters:
f- Function to integrate- Returns:
- ∫[a,b] f(x) dx
- Throws:
TimeoutException- if computation exceeds timeout
-
main
-