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