#![allow(clippy::doc_nested_refdefs)]
#![allow(unused_parens)]
#![recursion_limit = "1024"]
#![allow(clippy::new_without_default)]
#![allow(clippy::field_reassign_with_default)]
#![allow(clippy::needless_range_loop)]
#![allow(clippy::too_many_arguments)]
#![allow(clippy::type_complexity)]
#![allow(clippy::absurd_extreme_comparisons)]
#![allow(clippy::get_first)]
#![allow(clippy::manual_clamp)]
#![allow(clippy::implicit_saturating_add)]
#![allow(dead_code)]
pub mod acceleration;
pub mod autotuning;
pub mod common;
pub mod error;
pub use common::IntegrateFloat;
pub use error::{IntegrateError, IntegrateResult};
pub mod amr_advanced;
pub mod error_estimation;
pub mod parallel_optimization;
pub mod performance_monitor;
pub mod advanced_memory_optimization;
pub mod advanced_simd_acceleration;
pub mod gpu_advanced_acceleration;
pub mod mode_coordinator;
pub mod neural_rl_step_control;
pub mod realtime_performance_adaptation;
#[cfg(test)]
pub mod mode_tests;
pub mod bvp;
pub mod bvp_collocation;
pub mod bvp_extended;
pub mod clenshaw_curtis;
pub mod cubature;
pub mod dae;
pub mod gaussian;
pub mod lebedev;
pub mod memory;
pub mod monte_carlo;
#[cfg(feature = "parallel")]
pub mod monte_carlo_parallel;
pub mod newton_cotes;
pub mod ode;
pub mod symplectic;
pub mod pde;
pub mod symbolic;
pub mod autodiff;
pub mod specialized;
pub mod geometric;
pub mod analysis;
pub mod visualization;
pub mod distributed;
pub mod dde;
pub mod qmc;
pub mod quad;
pub mod quad_vec;
pub mod romberg;
pub mod scheduling;
pub mod sparse_grid;
pub mod tanhsinh;
pub mod utils;
pub mod verification;
pub mod amr;
pub mod dg_advanced;
pub mod pimc;
pub mod pinn;
pub mod polynomial_chaos;
pub mod uncertainty;
pub use acceleration::{AcceleratorOptions, AitkenAccelerator, AndersonAccelerator};
pub use autotuning::{
AlgorithmTuner, AutoTuner, GpuInfo, HardwareDetector, HardwareInfo, SimdFeature, TuningProfile,
};
pub use bvp::{solve_bvp, solve_bvp_auto, BVPOptions, BVPResult};
pub use bvp_collocation::{solve_bvp_collocation, CollocationBVPOptions, CollocationBVPResult};
pub use bvp_extended::{
solve_bvp_extended, solve_multipoint_bvp, BoundaryConditionType as BVPBoundaryConditionType,
ExtendedBoundaryConditions, MultipointBVP, RobinBC,
};
pub use cubature::{cubature, nquad, Bound, CubatureOptions, CubatureResult};
pub use dae::{
bdf_implicit_dae, bdf_implicit_with_index_reduction, bdf_semi_explicit_dae,
bdf_with_index_reduction, create_block_ilu_preconditioner, create_block_jacobi_preconditioner,
estimate_dae_index, find_consistent_initial_conditions, krylov_bdf_implicit_dae,
krylov_bdf_semi_explicit_dae, radau_iia_dae, solve_higher_index_dae, solve_implicit_dae,
solve_ivp_dae, solve_semi_explicit_dae, DAEIndex, DAEOptions, DAEResult, DAEStructure, DAEType,
DummyDerivativeReducer, ImplicitDAESystem, PantelidesReducer, ProjectionMethod,
};
pub use dde::{
solve_dde, DDEOptions, DDEResult, DDESystem, DelayType, MultiDelayDDE, SimpleConstantDDE,
StateDependentDDE,
};
pub use lebedev::{lebedev_integrate, lebedev_rule, LebedevOrder, LebedevRule};
pub use memory::{
BlockingStrategy, CacheAwareAlgorithms, CacheFriendlyMatrix, CacheLevel, DataLayoutOptimizer,
MatrixLayout, MemoryPool, MemoryPrefetch, MemoryUsage, PooledBuffer,
};
pub use monte_carlo::{
importance_sampling, monte_carlo, monte_carlo_parallel, ErrorEstimationMethod,
MonteCarloOptions, MonteCarloResult,
};
#[cfg(feature = "parallel")]
pub use monte_carlo_parallel::{
adaptive_parallel_monte_carlo, parallel_monte_carlo, ParallelMonteCarloOptions,
};
pub use newton_cotes::{newton_cotes, newton_cotes_integrate, NewtonCotesResult, NewtonCotesType};
pub use ode::{
solve_ivp, solve_ivp_with_events, terminal_event, EventAction, EventDirection, EventSpec,
MassMatrix, MassMatrixType, ODEMethod, ODEOptions, ODEOptionsWithEvents, ODEResult,
ODEResultWithEvents,
};
pub use pde::elliptic::{EllipticOptions, EllipticResult, LaplaceSolver2D, PoissonSolver2D};
pub use pde::finite_difference::{
first_derivative, first_derivative_matrix, second_derivative, second_derivative_matrix,
FiniteDifferenceScheme,
};
pub use pde::finite_element::{
BoundaryNodeInfo, ElementType, FEMOptions, FEMPoissonSolver, FEMResult, Point, Triangle,
TriangularMesh,
};
pub use pde::method_of_lines::{
MOL2DResult, MOL3DResult, MOLHyperbolicResult, MOLOptions, MOLParabolicSolver1D,
MOLParabolicSolver2D, MOLParabolicSolver3D, MOLResult, MOLWaveEquation1D,
};
pub use pde::spectral::spectral_element::{
QuadElement, SpectralElementMesh2D, SpectralElementOptions, SpectralElementPoisson2D,
SpectralElementResult,
};
pub use pde::spectral::{
chebyshev_inverse_transform, chebyshev_points, chebyshev_transform, legendre_diff2_matrix,
legendre_diff_matrix, legendre_inverse_transform, legendre_points, legendre_transform,
ChebyshevSpectralSolver1D, FourierSpectralSolver1D, LegendreSpectralSolver1D, SpectralBasis,
SpectralOptions, SpectralResult,
};
pub use pde::{
BoundaryCondition, BoundaryConditionType, BoundaryLocation, Domain, PDEError, PDEResult,
PDESolution, PDESolverInfo, PDEType,
};
pub use pde::fd_solvers::{
cfl_heat_1d, cfl_heat_2d, cfl_wave_1d, cfl_wave_2d, solve_heat_1d, solve_heat_2d,
solve_poisson_2d as fd_solve_poisson_2d, solve_wave_1d, solve_wave_2d, CFLAnalysis,
EllipticIterativeMethod, FDBoundaryCondition, Heat2DResult, HeatResult, PoissonResult,
TimeSteppingMethod, Wave2DResult, WaveResult,
};
pub use pde::fem_1d::{
mark_for_refinement, solve_steady_1d, solve_transient_1d, FEM1DBoundaryCondition,
FEM1DElementType, FEM1DSteadyOptions, FEM1DSteadyResult, FEM1DTransientOptions,
FEM1DTransientResult, Mesh1D, RefinementIndicator,
};
pub use pde::mol_enhanced::{
mol_advection_1d, mol_advection_diffusion_1d, mol_diffusion_1d, mol_reaction_diffusion,
AdvectionScheme, MOLBoundaryCondition, MOLEnhancedOptions, MOLEnhancedResult,
MOLTimeIntegrator, ReactionDiffusionResult, ReactionDiffusionSystem, StencilOrder,
};
pub use pde::spectral_enhanced::{
chebyshev_collocation_points, chebyshev_diff2_matrix as chebyshev_diff2_matrix_enhanced,
chebyshev_diff_matrix as chebyshev_diff_matrix_enhanced, chebyshev_diffusion_1d,
chebyshev_nonlinear_bvp, chebyshev_poisson_1d, dealias_23, dealias_23_2d, fourier_advection_1d,
fourier_diff2_matrix, fourier_diff_matrix, fourier_diffusion_1d, map_chebyshev_to_interval,
scale_chebyshev_diff, SpectralBasisType, SpectralEnhancedOptions, SpectralEnhancedResult,
};
pub use symbolic::{
detect_conservation_laws, generate_jacobian, higher_order_to_first_order, simplify,
ConservationEnforcer, ConservationLaw, FirstOrderSystem, HigherOrderODE, SymbolicExpression,
SymbolicJacobian, Variable,
};
pub use autodiff::{
compress_jacobian, compute_sensitivities, detect_sparsity, forward_gradient, forward_jacobian,
reverse_gradient, reverse_jacobian, Dual, DualVector, ForwardAD, ParameterSensitivity,
ReverseAD, SensitivityAnalysis, SparseJacobian, SparsePattern, TapeNode,
};
pub use specialized::{
DealiasingStrategy,
FinanceMethod,
FinancialOption,
FluidBoundaryCondition,
FluidState,
FluidState3D,
GPUMultiBodyQuantumSolver,
GPUQuantumSolver,
Greeks,
HarmonicOscillator,
HydrogenAtom,
JumpProcess,
LESolver,
NavierStokesParams,
NavierStokesSolver,
OptionStyle,
OptionType,
ParticleInBox,
QuantumAnnealer,
QuantumPotential,
QuantumState,
RANSModel,
RANSSolver,
RANSState,
SGSModel,
SchrodingerMethod,
SchrodingerSolver,
SpectralNavierStokesSolver,
StochasticPDESolver,
VolatilityModel,
};
pub use geometric::{
ABCFlow,
AngularMomentumInvariant2D,
CircularFlow2D,
ConservationChecker,
ConstrainedIntegrator,
DiscreteGradientIntegrator,
DivergenceFreeFlow,
DoubleGyre,
EnergyInvariant,
EnergyMomentumIntegrator,
EnergyPreservingMethod,
ExponentialMap,
GLn,
GeometricInvariant,
Gln,
HamiltonianFlow,
HeisenbergAlgebra,
HeisenbergGroup,
IncompressibleFlow,
LieAlgebra,
LieGroupIntegrator,
LieGroupMethod,
LinearMomentumInvariant,
ModifiedMidpointIntegrator,
MomentumPreservingMethod,
MultiSymplecticIntegrator,
SE3Integrator,
SLn,
SO3Integrator,
Se3,
Sln,
So3,
Sp2n,
SplittingIntegrator,
StreamFunction,
StructurePreservingIntegrator,
StructurePreservingMethod,
StuartVortex,
TaylorGreenVortex,
VariationalIntegrator,
VolumeChecker,
VolumePreservingIntegrator,
VolumePreservingMethod,
SE3,
SO3,
};
pub use analysis::advanced::{
BifurcationPointData, ContinuationAnalyzer, FixedPointData, MonodromyAnalyzer, MonodromyResult,
PeriodicStabilityType,
};
pub use analysis::{
BasinAnalysis,
BifurcationAnalyzer,
BifurcationPoint,
BifurcationType,
ContinuationResult,
FixedPoint,
PeriodicOrbit,
StabilityAnalyzer,
StabilityResult,
StabilityType,
};
pub use visualization::{
AttractorStability,
BifurcationDiagram,
ColorScheme,
HeatMapPlot,
OutputFormat,
ParameterExplorationPlot,
PhaseSpace3D,
PhaseSpacePlot,
PlotMetadata,
PlotStatistics,
RealTimeBifurcationPlot,
SensitivityPlot,
SurfacePlot,
VectorFieldPlot,
};
pub use amr_advanced::{
AMRAdaptationResult, AdaptiveCell, AdaptiveMeshLevel, AdvancedAMRManager,
CurvatureRefinementCriterion, FeatureDetectionCriterion, GeometricLoadBalancer,
GradientRefinementCriterion, LoadBalancer, MeshHierarchy, RefinementCriterion,
};
pub use error_estimation::{
AdvancedErrorEstimator, DefectCorrector, ErrorAnalysisResult, ErrorDistribution,
RichardsonExtrapolator, SolutionQualityMetrics, SpectralErrorIndicator,
};
pub use parallel_optimization::{
LoadBalancingStrategy, NumaTopology, ParallelExecutionStats, ParallelOptimizer, ParallelTask,
VectorOperation, VectorizedComputeTask, WorkStealingConfig, WorkStealingStats,
};
pub use performance_monitor::{
ConvergenceAnalysis as PerfConvergenceAnalysis, OptimizationRecommendation,
PerformanceAnalyzer, PerformanceBottleneck, PerformanceMetrics, PerformanceProfiler,
PerformanceReport,
};
pub use advanced_memory_optimization::{
AccessPattern, AdvancedMemoryOptimizer, CacheStrategy, L1CacheBuffer, L2CacheBuffer,
L3CacheBuffer, MemoryHierarchyManager, MemoryLayout, MemoryTier, MemoryType, NumaPlacement,
OptimizedMemoryRegion, PrefetchStrategy, ZeroCopyBuffer, ZeroCopyBufferPool,
};
pub use advanced_simd_acceleration::{
AdvancedSimdAccelerator, Avx512Support, MixedPrecisionOperation, PrecisionLevel,
SimdCapabilities, SveSupport, VectorizationStrategies,
};
pub use gpu_advanced_acceleration::{
AdvancedGPUAccelerator, AdvancedGPUMemoryPool, GpuDeviceInfo,
LoadBalancingStrategy as GpuLoadBalancingStrategy, MemoryBlock, MemoryBlockType,
MultiGpuConfiguration, RealTimeGpuMonitor,
};
pub use realtime_performance_adaptation::{
AdaptationStrategy, AlgorithmSwitchRecommendation, AnomalyAnalysisResult, AnomalySeverity,
AnomalyType, OptimizationRecommendations, PerformanceAnalysis, PerformanceAnomaly,
PerformanceBottleneck as AdaptivePerformanceBottleneck,
PerformanceMetrics as AdaptivePerformanceMetrics, PerformanceTrend, RealTimeAdaptiveOptimizer,
};
pub use neural_rl_step_control::{
DeepQNetwork, Experience, NetworkWeights, NeuralRLStepController, PrioritizedExperienceReplay,
RLEvaluationResults, StateFeatureExtractor, StepSizePrediction, TrainingConfiguration,
TrainingResult,
};
pub use clenshaw_curtis::{
quad_cc, quad_cc_tol, ClenshawCurtisOptions, ClenshawCurtisResult, ClenshawCurtisRule,
};
pub use ode::methods::rosenbrock::{rosenbrock_method, RosenbrockVariant};
pub use ode::methods::symplectic::{
create_stepper as create_symplectic_stepper, solve_hamiltonian, EnergyMonitor,
HamiltonianSystem as SymplecticHamiltonianSystem, SeparableSystem as SymplecticSeparableSystem,
StormerVerletODE, SymplecticMethod, SymplecticODEResult, SymplecticStepper, VelocityVerletODE,
Yoshida4, Yoshida6, Yoshida8,
};
pub use ode::events::{
CrossingDirection, DetectedEvent, EventDef, EventDetector, EventResponse, RootFindingMethod,
};
pub use pde::implicit::{
ADIResult, BackwardEuler1D, CrankNicolson1D, ImplicitMethod, ImplicitOptions, ImplicitResult,
ADI2D,
};
pub use qmc::{qmc_quad, qmc_quad_parallel, Faure, Halton, QMCQuadResult, RandomGenerator, Sobol};
pub use quad::{quad, simpson, trapezoid};
pub use quad_vec::{quad_vec, NormType, QuadRule, QuadVecOptions, QuadVecResult};
pub use sparse_grid::{
sparse_grid_quad, SparseGridOptions, SparseGridResult, SparseGridRuleFamily,
};
pub use symplectic::{
position_verlet, symplectic_euler, symplectic_euler_a, symplectic_euler_b, velocity_verlet,
CompositionMethod, GaussLegendre4, GaussLegendre6, HamiltonianFn, HamiltonianSystem,
SeparableHamiltonian, StormerVerlet, SymplecticIntegrator, SymplecticResult,
};
pub use tanhsinh::{nsum, tanhsinh, TanhSinhOptions, TanhSinhResult};
pub use verification::{
polynomial_solution, trigonometric_solution_2d, ConvergenceAnalysis, ErrorAnalysis,
ExactSolution, MMSODEProblem, MMSPDEProblem, PDEType as VerificationPDEType,
PolynomialSolution, TrigonometricSolution2D,
};
pub use distributed::{
BoundaryConditions as DistributedBoundaryConditions,
BoundaryData,
BoundaryExchanger,
Checkpoint,
CheckpointConfig,
CheckpointGlobalState,
CheckpointManager,
CheckpointStatistics,
ChunkCheckpoint,
ChunkDistributor,
ChunkId,
ChunkResult,
ChunkResultStatus,
Communicator,
ComputeNode,
DistributedConfig,
DistributedError,
DistributedMessage,
DistributedMetrics,
DistributedODEResult,
DistributedODESolver,
DistributedODESolverBuilder,
DistributedResult,
FaultToleranceCoordinator,
FaultToleranceMode,
JobId,
LoadBalancer as DistributedLoadBalancer,
LoadBalancerConfig,
LoadBalancerStatistics,
LoadBalancingStrategy as DistributedLoadBalancingStrategy,
MessageChannel,
NodeBuilder,
NodeCapabilities,
NodeId,
NodeInfo,
NodeManager,
NodePerformance,
NodeStatus,
RecoveryAction,
ResourceMonitor,
SyncBarrier,
WorkChunk,
};
#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}