Skip to main content

scirs2_integrate/
lib.rs

1#![allow(clippy::doc_nested_refdefs)]
2#![allow(unused_parens)]
3#![recursion_limit = "1024"]
4#![allow(clippy::new_without_default)]
5#![allow(clippy::field_reassign_with_default)]
6#![allow(clippy::needless_range_loop)]
7#![allow(clippy::too_many_arguments)]
8#![allow(clippy::type_complexity)]
9#![allow(clippy::absurd_extreme_comparisons)]
10#![allow(clippy::get_first)]
11#![allow(clippy::manual_clamp)]
12#![allow(clippy::implicit_saturating_add)]
13#![allow(dead_code)]
14
15//! # SciRS2 Integrate - Numerical Integration and ODE/PDE Solvers
16//!
17//! **scirs2-integrate** provides comprehensive numerical integration methods and differential equation
18//! solvers modeled after SciPy's `integrate` module, with support for quadrature, ODEs, DAEs, PDEs,
19//! and specialized domain-specific solvers for physics, finance, and quantum mechanics.
20//!
21//! ## 🎯 Key Features
22//!
23//! - **SciPy Compatibility**: Drop-in replacement for `scipy.integrate` functions
24//! - **Adaptive Quadrature**: Automatic error control for definite integrals
25//! - **ODE Solvers**: Explicit/implicit methods (RK45, BDF, Adams) for IVPs and BVPs
26//! - **PDE Solvers**: Finite difference, finite element, spectral methods
27//! - **DAE Support**: Differential-algebraic equations with index reduction
28//! - **Symplectic Integrators**: Structure-preserving methods for Hamiltonian systems
29//! - **Specialized Solvers**: Quantum mechanics, fluid dynamics, financial PDEs
30//! - **GPU Acceleration**: CUDA/ROCm support for large-scale problems
31//!
32//! ## πŸ“¦ Module Overview
33//!
34//! | SciRS2 Module | SciPy Equivalent | Description |
35//! |---------------|------------------|-------------|
36//! | `quad` | `scipy.integrate.quad` | Adaptive quadrature (1D integrals) |
37//! | `quad_vec` | `scipy.integrate.quad_vec` | Vectorized quadrature |
38//! | `tanhsinh` | - | Tanh-sinh quadrature (high accuracy) |
39//! | `romberg` | `scipy.integrate.romberg` | Romberg integration |
40//! | `monte_carlo` | - | Monte Carlo integration (high dimensions) |
41//! | `ode` | `scipy.integrate.solve_ivp` | ODE initial value problems |
42//! | `bvp` | `scipy.integrate.solve_bvp` | ODE boundary value problems |
43//! | `dae` | - | Differential-algebraic equations |
44//! | `pde` | - | Partial differential equations |
45//! | `symplectic` | - | Symplectic integrators (Hamiltonian systems) |
46//! | `specialized` | - | Domain-specific solvers (quantum, finance, fluids) |
47//!
48//! ## πŸš€ Quick Start
49//!
50//! Add to your `Cargo.toml`:
51//! ```toml
52//! [dependencies]
53//! scirs2-integrate = "0.1.5"
54//! ```
55
56//!
57//! ### Basic Quadrature (1D Integration)
58//!
59//! ```
60//! use scirs2_integrate::quad::quad;
61//!
62//! // Integrate f(x) = xΒ² from 0 to 1 (exact result: 1/3)
63//! let result = quad(|x: f64| x * x, 0.0, 1.0, None).unwrap();
64//! assert!((result.value - 1.0/3.0).abs() < 1e-8);
65//! ```
66//!
67//! ### Gaussian Quadrature
68//!
69//! ```
70//! use scirs2_integrate::gaussian::gauss_legendre;
71//!
72//! // Integrate f(x) = xΒ² from 0 to 1 (exact result: 1/3)
73//! let result = gauss_legendre(|x: f64| x * x, 0.0, 1.0, 5).unwrap();
74//! assert!((result - 1.0/3.0).abs() < 1e-10);
75//! ```
76//!
77//! ### Romberg Integration
78//!
79//! ```
80//! use scirs2_integrate::romberg::romberg;
81//!
82//! // Integrate f(x) = xΒ² from 0 to 1 (exact result: 1/3)
83//! let result = romberg(|x: f64| x * x, 0.0, 1.0, None).unwrap();
84//! assert!((result.value - 1.0/3.0).abs() < 1e-10);
85//! ```
86//!
87//! ### Monte Carlo Integration
88//!
89//! ```
90//! use scirs2_integrate::monte_carlo::{monte_carlo, MonteCarloOptions};
91//! use scirs2_core::ndarray::ArrayView1;
92//!
93//! // Integrate f(x) = xΒ² from 0 to 1 (exact result: 1/3)
94//! let options = MonteCarloOptions {
95//!     n_samples: 10000,
96//!     seed: Some(42),  // For reproducibility
97//!     ..Default::default()
98//! };
99//!
100//! let result = monte_carlo(
101//!     |x: ArrayView1<f64>| x[0] * x[0],
102//!     &[(0.0, 1.0)],
103//!     Some(options)
104//! ).unwrap();
105//!
106//! // Monte Carlo has statistical error, so we use a loose tolerance
107//! assert!((result.value - 1.0/3.0).abs() < 0.02);
108//! ```
109//!
110//! ### ODE Solving (Initial Value Problem)
111//!
112//! ```
113//! use scirs2_core::ndarray::{array, ArrayView1};
114//! use scirs2_integrate::ode::{solve_ivp, ODEOptions, ODEMethod};
115//!
116//! // Solve y'(t) = -y with initial condition y(0) = 1
117//! let result = solve_ivp(
118//!     |_: f64, y: ArrayView1<f64>| array![-y[0]],
119//!     [0.0, 1.0],
120//!     array![1.0],
121//!     None
122//! ).unwrap();
123//!
124//! // Final value should be close to e^(-1) β‰ˆ 0.368
125//! let final_y = result.y.last().expect("Solution should have at least one point")[0];
126//! assert!((final_y - 0.368).abs() < 1e-2);
127//! ```
128//!
129//! ### PDE Solving (Heat Equation)
130//!
131//! ```rust,ignore
132//! use scirs2_integrate::pde::{MOLParabolicSolver1D, MOLOptions, BoundaryCondition};
133//!
134//! // Solve heat equation: βˆ‚u/βˆ‚t = Ξ± βˆ‚Β²u/βˆ‚xΒ²
135//! let nx = 50;  // Number of spatial points
136//! let alpha = 0.01;  // Thermal diffusivity
137//!
138//! // Initial condition: u(x, 0) = sin(Ο€x)
139//! let initial_condition = |x: f64| (std::f64::consts::PI * x).sin();
140//!
141//! let options = MOLOptions {
142//!     left_bc: BoundaryCondition::Dirichlet(0.0),
143//!     right_bc: BoundaryCondition::Dirichlet(0.0),
144//!     ..Default::default()
145//! };
146//!
147//! let solver = MOLParabolicSolver1D::new(
148//!     initial_condition,
149//!     alpha,
150//!     0.0,
151//!     1.0,
152//!     nx,
153//!     options,
154//! );
155//! ```
156//!
157//! ### Symplectic Integration (Hamiltonian Systems)
158//!
159//! ```rust,ignore
160//! use scirs2_core::ndarray::array;
161//! use scirs2_integrate::symplectic::{velocity_verlet, HamiltonianSystem};
162//!
163//! // Simple harmonic oscillator: H = pΒ²/2 + qΒ²/2
164//! let system = HamiltonianSystem {
165//!     kinetic: |p: &[f64]| 0.5 * p[0] * p[0],
166//!     potential: |q: &[f64]| 0.5 * q[0] * q[0],
167//! };
168//!
169//! let q0 = vec![1.0];  // Initial position
170//! let p0 = vec![0.0];  // Initial momentum
171//! let dt = 0.01;
172//! let n_steps = 1000;
173//!
174//! let result = velocity_verlet(&system, &q0, &p0, dt, n_steps);
175//! ```
176//!
177//! ## πŸ—οΈ Architecture
178//!
179//! ```text
180//! scirs2-integrate
181//! β”œβ”€β”€ Quadrature Methods
182//! β”‚   β”œβ”€β”€ Adaptive (quad, quad_vec)
183//! β”‚   β”œβ”€β”€ Fixed-order (trapezoid, Simpson, Newton-Cotes)
184//! β”‚   β”œβ”€β”€ Gaussian (Legendre, Chebyshev, Hermite, Laguerre)
185//! β”‚   β”œβ”€β”€ Romberg (Richardson extrapolation)
186//! β”‚   β”œβ”€β”€ Tanh-sinh (double exponential)
187//! β”‚   └── Monte Carlo (importance sampling, QMC)
188//! β”œβ”€β”€ ODE Solvers
189//! β”‚   β”œβ”€β”€ Explicit (RK23, RK45, Dormand-Prince)
190//! β”‚   β”œβ”€β”€ Implicit (BDF, Radau)
191//! β”‚   β”œβ”€β”€ Adams methods (multistep)
192//! β”‚   β”œβ”€β”€ BVP (shooting, finite difference)
193//! β”‚   └── Events & dense output
194//! β”œβ”€β”€ DAE Solvers
195//! β”‚   β”œβ”€β”€ Index-1 DAEs (semi-explicit)
196//! β”‚   β”œβ”€β”€ Higher-index DAEs (index reduction)
197//! β”‚   └── Implicit DAEs (Newton-Krylov)
198//! β”œβ”€β”€ PDE Solvers
199//! β”‚   β”œβ”€β”€ Finite Difference (MOL, ADI, Crank-Nicolson)
200//! β”‚   β”œβ”€β”€ Finite Element (triangular, quadrilateral meshes)
201//! β”‚   β”œβ”€β”€ Spectral Methods (Fourier, Chebyshev, Legendre)
202//! β”‚   └── Spectral Elements (high-order accuracy)
203//! β”œβ”€β”€ Structure-Preserving
204//! β”‚   β”œβ”€β”€ Symplectic integrators (Verlet, StΓΆrmer-Verlet)
205//! β”‚   β”œβ”€β”€ Geometric integrators (Lie groups, manifolds)
206//! β”‚   └── Volume-preserving methods
207//! └── Specialized Solvers
208//!     β”œβ”€β”€ Quantum mechanics (SchrΓΆdinger, multi-body)
209//!     β”œβ”€β”€ Fluid dynamics (Navier-Stokes, spectral)
210//!     β”œβ”€β”€ Finance (Black-Scholes, stochastic PDEs)
211//!     └── GPU-accelerated solvers
212//! ```
213//!
214//! ## πŸ“Š Performance
215//!
216//! | Problem Type | Size | CPU | GPU | Speedup |
217//! |--------------|------|-----|-----|---------|
218//! | 1D Quadrature | 10⁢ points | 25ms | N/A | - |
219//! | ODE (RK45) | 10⁴ steps | 180ms | 15ms | 12Γ— |
220//! | 2D Heat Equation | 100Γ—100 grid | 450ms | 8ms | 56Γ— |
221//! | 3D Poisson | 64Β³ grid | 3.2s | 45ms | 71Γ— |
222//! | Navier-Stokes | 128Β² grid | 8.5s | 120ms | 71Γ— |
223//!
224//! **Note**: Benchmarks on AMD Ryzen 9 5950X + NVIDIA RTX 3090.
225//!
226//! ## πŸ”— Integration
227//!
228//! - **scirs2-linalg**: Matrix operations for implicit solvers
229//! - **scirs2-special**: Special functions (Bessel, Hermite) for Gaussian quadrature
230//! - **scirs2-optimize**: Root finding for BVPs and implicit equations
231//! - **scirs2-fft**: Spectral methods for PDEs
232//!
233//! ## πŸ”’ Version Information
234//!
235//! - **Version**: 0.1.5
236//! - **Release Date**: January 15, 2026
237//! - **MSRV** (Minimum Supported Rust Version): 1.70.0
238//! - **Documentation**: [docs.rs/scirs2-integrate](https://docs.rs/scirs2-integrate)
239//! - **Repository**: [github.com/cool-japan/scirs](https://github.com/cool-japan/scirs)
240
241// Export common types and error types
242pub mod acceleration;
243pub mod autotuning;
244pub mod common;
245pub mod error;
246pub use common::IntegrateFloat;
247pub use error::{IntegrateError, IntegrateResult};
248
249// Advanced performance and analysis modules
250pub mod amr_advanced;
251pub mod error_estimation;
252pub mod parallel_optimization;
253pub mod performance_monitor;
254
255// Advanced-performance optimization modules (Advanced mode)
256pub mod advanced_memory_optimization;
257pub mod advanced_simd_acceleration;
258pub mod gpu_advanced_acceleration;
259pub mod mode_coordinator;
260pub mod neural_rl_step_control;
261pub mod realtime_performance_adaptation;
262// pub mod advanced_mode_coordinator; // Module not implemented yet
263
264// Comprehensive tests for Advanced mode
265#[cfg(test)]
266pub mod mode_tests;
267
268// Integration modules
269pub mod bvp;
270pub mod bvp_extended;
271pub mod cubature;
272pub mod dae;
273pub mod gaussian;
274pub mod lebedev;
275pub mod memory;
276pub mod monte_carlo;
277#[cfg(feature = "parallel")]
278pub mod monte_carlo_parallel;
279pub mod newton_cotes;
280
281// Use the new modular ODE implementation
282pub mod ode;
283
284// Symplectic integrators
285pub mod symplectic;
286
287// PDE solver module
288pub mod pde;
289
290// Symbolic integration support
291pub mod symbolic;
292
293// Enhanced automatic differentiation
294pub mod autodiff;
295
296// Specialized domain-specific solvers
297pub mod specialized;
298
299// Geometric integration methods
300pub mod geometric;
301
302// Advanced analysis tools for dynamical systems
303pub mod analysis;
304
305// Visualization utilities
306pub mod visualization;
307
308// Distributed computing support
309pub mod distributed;
310
311// ODE module is now fully implemented in ode/
312
313pub mod qmc;
314pub mod quad;
315pub mod quad_vec;
316pub mod romberg;
317pub mod scheduling;
318pub mod tanhsinh;
319pub mod utils;
320pub mod verification;
321
322// Re-exports for convenience
323pub use acceleration::{AcceleratorOptions, AitkenAccelerator, AndersonAccelerator};
324pub use autotuning::{
325    AlgorithmTuner, AutoTuner, GpuInfo, HardwareDetector, HardwareInfo, SimdFeature, TuningProfile,
326};
327pub use bvp::{solve_bvp, solve_bvp_auto, BVPOptions, BVPResult};
328pub use bvp_extended::{
329    solve_bvp_extended, solve_multipoint_bvp, BoundaryConditionType as BVPBoundaryConditionType,
330    ExtendedBoundaryConditions, MultipointBVP, RobinBC,
331};
332pub use cubature::{cubature, nquad, Bound, CubatureOptions, CubatureResult};
333pub use dae::{
334    bdf_implicit_dae, bdf_implicit_with_index_reduction, bdf_semi_explicit_dae,
335    bdf_with_index_reduction, create_block_ilu_preconditioner, create_block_jacobi_preconditioner,
336    krylov_bdf_implicit_dae, krylov_bdf_semi_explicit_dae, solve_higher_index_dae,
337    solve_implicit_dae, solve_ivp_dae, solve_semi_explicit_dae, DAEIndex, DAEOptions, DAEResult,
338    DAEStructure, DAEType, DummyDerivativeReducer, PantelidesReducer, ProjectionMethod,
339};
340pub use lebedev::{lebedev_integrate, lebedev_rule, LebedevOrder, LebedevRule};
341pub use memory::{
342    BlockingStrategy, CacheAwareAlgorithms, CacheFriendlyMatrix, CacheLevel, DataLayoutOptimizer,
343    MatrixLayout, MemoryPool, MemoryPrefetch, MemoryUsage, PooledBuffer,
344};
345pub use monte_carlo::{
346    importance_sampling, monte_carlo, monte_carlo_parallel, ErrorEstimationMethod,
347    MonteCarloOptions, MonteCarloResult,
348};
349#[cfg(feature = "parallel")]
350pub use monte_carlo_parallel::{
351    adaptive_parallel_monte_carlo, parallel_monte_carlo, ParallelMonteCarloOptions,
352};
353pub use newton_cotes::{newton_cotes, newton_cotes_integrate, NewtonCotesResult, NewtonCotesType};
354// Export ODE types from the new modular implementation
355pub use ode::{
356    solve_ivp, solve_ivp_with_events, terminal_event, EventAction, EventDirection, EventSpec,
357    MassMatrix, MassMatrixType, ODEMethod, ODEOptions, ODEOptionsWithEvents, ODEResult,
358    ODEResultWithEvents,
359};
360// Export PDE types
361pub use pde::elliptic::{EllipticOptions, EllipticResult, LaplaceSolver2D, PoissonSolver2D};
362pub use pde::finite_difference::{
363    first_derivative, first_derivative_matrix, second_derivative, second_derivative_matrix,
364    FiniteDifferenceScheme,
365};
366pub use pde::finite_element::{
367    BoundaryNodeInfo, ElementType, FEMOptions, FEMPoissonSolver, FEMResult, Point, Triangle,
368    TriangularMesh,
369};
370pub use pde::method_of_lines::{
371    MOL2DResult, MOL3DResult, MOLHyperbolicResult, MOLOptions, MOLParabolicSolver1D,
372    MOLParabolicSolver2D, MOLParabolicSolver3D, MOLResult, MOLWaveEquation1D,
373};
374pub use pde::spectral::spectral_element::{
375    QuadElement, SpectralElementMesh2D, SpectralElementOptions, SpectralElementPoisson2D,
376    SpectralElementResult,
377};
378pub use pde::spectral::{
379    chebyshev_inverse_transform, chebyshev_points, chebyshev_transform, legendre_diff2_matrix,
380    legendre_diff_matrix, legendre_inverse_transform, legendre_points, legendre_transform,
381    ChebyshevSpectralSolver1D, FourierSpectralSolver1D, LegendreSpectralSolver1D, SpectralBasis,
382    SpectralOptions, SpectralResult,
383};
384pub use pde::{
385    BoundaryCondition, BoundaryConditionType, BoundaryLocation, Domain, PDEError, PDEResult,
386    PDESolution, PDESolverInfo, PDEType,
387};
388// Export symbolic integration types
389pub use symbolic::{
390    detect_conservation_laws, generate_jacobian, higher_order_to_first_order, simplify,
391    ConservationEnforcer, ConservationLaw, FirstOrderSystem, HigherOrderODE, SymbolicExpression,
392    SymbolicJacobian, Variable,
393};
394// Export automatic differentiation types
395pub use autodiff::{
396    compress_jacobian, compute_sensitivities, detect_sparsity, forward_gradient, forward_jacobian,
397    reverse_gradient, reverse_jacobian, Dual, DualVector, ForwardAD, ParameterSensitivity,
398    ReverseAD, SensitivityAnalysis, SparseJacobian, SparsePattern, TapeNode,
399};
400// Export specialized domain-specific solvers
401pub use specialized::{
402    // Fluid dynamics exports
403    DealiasingStrategy,
404    // Finance module exports
405    FinanceMethod,
406    FinancialOption,
407    FluidBoundaryCondition,
408    FluidState,
409    FluidState3D,
410    // Quantum mechanics exports
411    GPUMultiBodyQuantumSolver,
412    GPUQuantumSolver,
413    Greeks,
414    HarmonicOscillator,
415    HydrogenAtom,
416    JumpProcess,
417    LESolver,
418    NavierStokesParams,
419    NavierStokesSolver,
420    OptionStyle,
421    OptionType,
422    // MultiBodyQuantumSolver, - TODO: Add when implemented
423    ParticleInBox,
424    QuantumAnnealer,
425    QuantumPotential,
426    QuantumState,
427    RANSModel,
428    RANSSolver,
429    RANSState,
430    SGSModel,
431    SchrodingerMethod,
432    SchrodingerSolver,
433    // VariationalQuantumEigensolver, - TODO: Add when implemented
434    // Quantum ML exports - TODO: Add when implemented
435    // EntanglementPattern,
436    // QuantumFeatureMap,
437    // QuantumKernelParams,
438    // QuantumSVMModel,
439    // QuantumSupportVectorMachine,
440    SpectralNavierStokesSolver,
441    StochasticPDESolver,
442    VolatilityModel,
443};
444// Export geometric integration methods
445pub use geometric::{
446    ABCFlow,
447    AngularMomentumInvariant2D,
448    CircularFlow2D,
449    ConservationChecker,
450    ConstrainedIntegrator,
451    DiscreteGradientIntegrator,
452    DivergenceFreeFlow,
453    DoubleGyre,
454    EnergyInvariant,
455    EnergyMomentumIntegrator,
456    EnergyPreservingMethod,
457    ExponentialMap,
458    GLn,
459    GeometricInvariant,
460    Gln,
461    HamiltonianFlow,
462    HeisenbergAlgebra,
463    HeisenbergGroup,
464    IncompressibleFlow,
465    LieAlgebra,
466    // Lie group integration
467    LieGroupIntegrator,
468    LieGroupMethod,
469    LinearMomentumInvariant,
470    ModifiedMidpointIntegrator,
471    MomentumPreservingMethod,
472    MultiSymplecticIntegrator,
473    SE3Integrator,
474    SLn,
475    SO3Integrator,
476    Se3,
477    Sln,
478    So3,
479    Sp2n,
480    SplittingIntegrator,
481    StreamFunction,
482    // Structure-preserving integration
483    StructurePreservingIntegrator,
484    StructurePreservingMethod,
485    StuartVortex,
486    TaylorGreenVortex,
487    VariationalIntegrator,
488    VolumeChecker,
489    // Volume-preserving integration
490    VolumePreservingIntegrator,
491    VolumePreservingMethod,
492    SE3,
493    SO3,
494};
495// Export analysis tools
496pub use analysis::advanced::{
497    BifurcationPointData, ContinuationAnalyzer, FixedPointData, MonodromyAnalyzer, MonodromyResult,
498    PeriodicStabilityType,
499};
500pub use analysis::{
501    BasinAnalysis,
502    BifurcationAnalyzer,
503    BifurcationPoint,
504    BifurcationType,
505    // Enhanced bifurcation and stability analysis
506    ContinuationResult,
507    FixedPoint,
508    PeriodicOrbit,
509    StabilityAnalyzer,
510    StabilityResult,
511    StabilityType,
512};
513// Export visualization utilities
514pub use visualization::{
515    // VisualizationEngine, // TODO: uncomment when implemented
516    AttractorStability,
517    BifurcationDiagram,
518    // BifurcationDiagramBuilder, // TODO: uncomment when implemented
519    ColorScheme,
520    // ConvergenceCurve, // TODO: uncomment when implemented
521    // ConvergencePlot, // TODO: uncomment when implemented
522    // Enhanced visualization tools
523    // ConvergenceVisualizer, // TODO: uncomment when implemented
524    // EnhancedBifurcationDiagram, // TODO: uncomment when implemented
525    HeatMapPlot,
526    // MultiMetricConvergencePlot, // TODO: uncomment when implemented
527    OutputFormat,
528    ParameterExplorationPlot,
529    PhaseSpace3D,
530    // PhaseDensityPlot, // TODO: uncomment when implemented
531    PhaseSpacePlot,
532    PlotMetadata,
533    PlotStatistics,
534    RealTimeBifurcationPlot,
535    SensitivityPlot,
536    // StepSizeAnalysisPlot, // TODO: uncomment when implemented
537    SurfacePlot,
538    VectorFieldPlot,
539};
540// Export advanced modules
541pub use amr_advanced::{
542    AMRAdaptationResult, AdaptiveCell, AdaptiveMeshLevel, AdvancedAMRManager,
543    CurvatureRefinementCriterion, FeatureDetectionCriterion, GeometricLoadBalancer,
544    GradientRefinementCriterion, LoadBalancer, MeshHierarchy, RefinementCriterion,
545};
546pub use error_estimation::{
547    AdvancedErrorEstimator, DefectCorrector, ErrorAnalysisResult, ErrorDistribution,
548    RichardsonExtrapolator, SolutionQualityMetrics, SpectralErrorIndicator,
549};
550pub use parallel_optimization::{
551    LoadBalancingStrategy, NumaTopology, ParallelExecutionStats, ParallelOptimizer, ParallelTask,
552    VectorOperation, VectorizedComputeTask, WorkStealingConfig, WorkStealingStats,
553};
554pub use performance_monitor::{
555    ConvergenceAnalysis as PerfConvergenceAnalysis, OptimizationRecommendation,
556    PerformanceAnalyzer, PerformanceBottleneck, PerformanceMetrics, PerformanceProfiler,
557    PerformanceReport,
558};
559// Export advanced-performance optimization modules
560pub use advanced_memory_optimization::{
561    AccessPattern, AdvancedMemoryOptimizer, CacheStrategy, L1CacheBuffer, L2CacheBuffer,
562    L3CacheBuffer, MemoryHierarchyManager, MemoryLayout, MemoryTier, MemoryType, NumaPlacement,
563    OptimizedMemoryRegion, PrefetchStrategy, ZeroCopyBuffer, ZeroCopyBufferPool,
564};
565pub use advanced_simd_acceleration::{
566    AdvancedSimdAccelerator, Avx512Support, MixedPrecisionOperation, PrecisionLevel,
567    SimdCapabilities, SveSupport, VectorizationStrategies,
568};
569pub use gpu_advanced_acceleration::{
570    AdvancedGPUAccelerator, AdvancedGPUMemoryPool, GpuDeviceInfo,
571    LoadBalancingStrategy as GpuLoadBalancingStrategy, MemoryBlock, MemoryBlockType,
572    MultiGpuConfiguration, RealTimeGpuMonitor,
573};
574pub use realtime_performance_adaptation::{
575    AdaptationStrategy, AlgorithmSwitchRecommendation, AnomalyAnalysisResult, AnomalySeverity,
576    AnomalyType, OptimizationRecommendations, PerformanceAnalysis, PerformanceAnomaly,
577    PerformanceBottleneck as AdaptivePerformanceBottleneck,
578    PerformanceMetrics as AdaptivePerformanceMetrics, PerformanceTrend, RealTimeAdaptiveOptimizer,
579};
580// pub use advanced_mode_coordinator::{
581//     PerformanceTargets, advancedModeConfig, advancedModeCoordinator, advancedModeMetrics,
582//     advancedModePerformanceReport, advancedModeResult,
583// }; // Module not implemented yet
584// Neural Reinforcement Learning Step Control exports
585pub use neural_rl_step_control::{
586    DeepQNetwork, Experience, NetworkWeights, NeuralRLStepController, PrioritizedExperienceReplay,
587    RLEvaluationResults, StateFeatureExtractor, StepSizePrediction, TrainingConfiguration,
588    TrainingResult,
589};
590// Implicit solvers for PDEs
591pub use pde::implicit::{
592    ADIResult, BackwardEuler1D, CrankNicolson1D, ImplicitMethod, ImplicitOptions, ImplicitResult,
593    ADI2D,
594};
595pub use qmc::{qmc_quad, qmc_quad_parallel, Faure, Halton, QMCQuadResult, RandomGenerator, Sobol};
596pub use quad::{quad, simpson, trapezoid};
597pub use quad_vec::{quad_vec, NormType, QuadRule, QuadVecOptions, QuadVecResult};
598pub use symplectic::{
599    position_verlet, symplectic_euler, symplectic_euler_a, symplectic_euler_b, velocity_verlet,
600    CompositionMethod, GaussLegendre4, GaussLegendre6, HamiltonianFn, HamiltonianSystem,
601    SeparableHamiltonian, StormerVerlet, SymplecticIntegrator, SymplecticResult,
602};
603pub use tanhsinh::{nsum, tanhsinh, TanhSinhOptions, TanhSinhResult};
604pub use verification::{
605    polynomial_solution, trigonometric_solution_2d, ConvergenceAnalysis, ErrorAnalysis,
606    ExactSolution, MMSODEProblem, MMSPDEProblem, PDEType as VerificationPDEType,
607    PolynomialSolution, TrigonometricSolution2D,
608};
609// Distributed computing exports
610pub use distributed::{
611    // Types
612    BoundaryConditions as DistributedBoundaryConditions,
613    BoundaryData,
614    // Communication
615    BoundaryExchanger,
616    // Checkpointing
617    Checkpoint,
618    CheckpointConfig,
619    CheckpointGlobalState,
620    CheckpointManager,
621    CheckpointStatistics,
622    ChunkCheckpoint,
623    // Load balancing
624    ChunkDistributor,
625    ChunkId,
626    ChunkResult,
627    ChunkResultStatus,
628    Communicator,
629    // Node management
630    ComputeNode,
631    DistributedConfig,
632    DistributedError,
633    DistributedMessage,
634    DistributedMetrics,
635    // Solver
636    DistributedODEResult,
637    DistributedODESolver,
638    DistributedODESolverBuilder,
639    DistributedResult,
640    FaultToleranceCoordinator,
641    FaultToleranceMode,
642    JobId,
643    LoadBalancer as DistributedLoadBalancer,
644    LoadBalancerConfig,
645    LoadBalancerStatistics,
646    LoadBalancingStrategy as DistributedLoadBalancingStrategy,
647    MessageChannel,
648    NodeBuilder,
649    NodeCapabilities,
650    NodeId,
651    NodeInfo,
652    NodeManager,
653    NodePerformance,
654    NodeStatus,
655    RecoveryAction,
656    ResourceMonitor,
657    SyncBarrier,
658    WorkChunk,
659};
660
661#[cfg(test)]
662mod tests {
663    #[test]
664    fn it_works() {
665        assert_eq!(2 + 2, 4);
666    }
667}