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
15pub mod acceleration;
243pub mod autotuning;
244pub mod common;
245pub mod error;
246pub use common::IntegrateFloat;
247pub use error::{IntegrateError, IntegrateResult};
248
249pub mod amr_advanced;
251pub mod error_estimation;
252pub mod parallel_optimization;
253pub mod performance_monitor;
254
255pub 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#[cfg(test)]
266pub mod mode_tests;
267
268pub mod bvp;
270pub mod bvp_collocation;
271pub mod bvp_extended;
272pub mod clenshaw_curtis;
273pub mod cubature;
274pub mod dae;
275pub mod gaussian;
276pub mod lebedev;
277pub mod memory;
278pub mod monte_carlo;
279#[cfg(feature = "parallel")]
280pub mod monte_carlo_parallel;
281pub mod newton_cotes;
282
283pub mod ode;
285
286pub mod symplectic;
288
289pub mod pde;
291
292pub mod symbolic;
294
295pub mod autodiff;
297
298pub mod specialized;
300
301pub mod geometric;
303
304pub mod analysis;
306
307pub mod visualization;
309
310pub mod distributed;
312
313pub mod dde;
315
316pub mod qmc;
319pub mod quad;
320pub mod quad_vec;
321pub mod romberg;
322pub mod scheduling;
323pub mod sparse_grid;
324pub mod tanhsinh;
325pub mod utils;
326pub mod verification;
327
328pub use acceleration::{AcceleratorOptions, AitkenAccelerator, AndersonAccelerator};
330pub use autotuning::{
331 AlgorithmTuner, AutoTuner, GpuInfo, HardwareDetector, HardwareInfo, SimdFeature, TuningProfile,
332};
333pub use bvp::{solve_bvp, solve_bvp_auto, BVPOptions, BVPResult};
334pub use bvp_collocation::{solve_bvp_collocation, CollocationBVPOptions, CollocationBVPResult};
335pub use bvp_extended::{
336 solve_bvp_extended, solve_multipoint_bvp, BoundaryConditionType as BVPBoundaryConditionType,
337 ExtendedBoundaryConditions, MultipointBVP, RobinBC,
338};
339pub use cubature::{cubature, nquad, Bound, CubatureOptions, CubatureResult};
340pub use dae::{
341 bdf_implicit_dae, bdf_implicit_with_index_reduction, bdf_semi_explicit_dae,
342 bdf_with_index_reduction, create_block_ilu_preconditioner, create_block_jacobi_preconditioner,
343 estimate_dae_index, find_consistent_initial_conditions, krylov_bdf_implicit_dae,
344 krylov_bdf_semi_explicit_dae, radau_iia_dae, solve_higher_index_dae, solve_implicit_dae,
345 solve_ivp_dae, solve_semi_explicit_dae, DAEIndex, DAEOptions, DAEResult, DAEStructure, DAEType,
346 DummyDerivativeReducer, ImplicitDAESystem, PantelidesReducer, ProjectionMethod,
347};
348pub use dde::{
350 solve_dde, DDEOptions, DDEResult, DDESystem, DelayType, MultiDelayDDE, SimpleConstantDDE,
351 StateDependentDDE,
352};
353pub use lebedev::{lebedev_integrate, lebedev_rule, LebedevOrder, LebedevRule};
354pub use memory::{
355 BlockingStrategy, CacheAwareAlgorithms, CacheFriendlyMatrix, CacheLevel, DataLayoutOptimizer,
356 MatrixLayout, MemoryPool, MemoryPrefetch, MemoryUsage, PooledBuffer,
357};
358pub use monte_carlo::{
359 importance_sampling, monte_carlo, monte_carlo_parallel, ErrorEstimationMethod,
360 MonteCarloOptions, MonteCarloResult,
361};
362#[cfg(feature = "parallel")]
363pub use monte_carlo_parallel::{
364 adaptive_parallel_monte_carlo, parallel_monte_carlo, ParallelMonteCarloOptions,
365};
366pub use newton_cotes::{newton_cotes, newton_cotes_integrate, NewtonCotesResult, NewtonCotesType};
367pub use ode::{
369 solve_ivp, solve_ivp_with_events, terminal_event, EventAction, EventDirection, EventSpec,
370 MassMatrix, MassMatrixType, ODEMethod, ODEOptions, ODEOptionsWithEvents, ODEResult,
371 ODEResultWithEvents,
372};
373pub use pde::elliptic::{EllipticOptions, EllipticResult, LaplaceSolver2D, PoissonSolver2D};
375pub use pde::finite_difference::{
376 first_derivative, first_derivative_matrix, second_derivative, second_derivative_matrix,
377 FiniteDifferenceScheme,
378};
379pub use pde::finite_element::{
380 BoundaryNodeInfo, ElementType, FEMOptions, FEMPoissonSolver, FEMResult, Point, Triangle,
381 TriangularMesh,
382};
383pub use pde::method_of_lines::{
384 MOL2DResult, MOL3DResult, MOLHyperbolicResult, MOLOptions, MOLParabolicSolver1D,
385 MOLParabolicSolver2D, MOLParabolicSolver3D, MOLResult, MOLWaveEquation1D,
386};
387pub use pde::spectral::spectral_element::{
388 QuadElement, SpectralElementMesh2D, SpectralElementOptions, SpectralElementPoisson2D,
389 SpectralElementResult,
390};
391pub use pde::spectral::{
392 chebyshev_inverse_transform, chebyshev_points, chebyshev_transform, legendre_diff2_matrix,
393 legendre_diff_matrix, legendre_inverse_transform, legendre_points, legendre_transform,
394 ChebyshevSpectralSolver1D, FourierSpectralSolver1D, LegendreSpectralSolver1D, SpectralBasis,
395 SpectralOptions, SpectralResult,
396};
397pub use pde::{
398 BoundaryCondition, BoundaryConditionType, BoundaryLocation, Domain, PDEError, PDEResult,
399 PDESolution, PDESolverInfo, PDEType,
400};
401pub use pde::fd_solvers::{
403 cfl_heat_1d, cfl_heat_2d, cfl_wave_1d, cfl_wave_2d, solve_heat_1d, solve_heat_2d,
404 solve_poisson_2d as fd_solve_poisson_2d, solve_wave_1d, solve_wave_2d, CFLAnalysis,
405 EllipticIterativeMethod, FDBoundaryCondition, Heat2DResult, HeatResult, PoissonResult,
406 TimeSteppingMethod, Wave2DResult, WaveResult,
407};
408pub use pde::fem_1d::{
409 mark_for_refinement, solve_steady_1d, solve_transient_1d, FEM1DBoundaryCondition,
410 FEM1DElementType, FEM1DSteadyOptions, FEM1DSteadyResult, FEM1DTransientOptions,
411 FEM1DTransientResult, Mesh1D, RefinementIndicator,
412};
413pub use pde::mol_enhanced::{
414 mol_advection_1d, mol_advection_diffusion_1d, mol_diffusion_1d, mol_reaction_diffusion,
415 AdvectionScheme, MOLBoundaryCondition, MOLEnhancedOptions, MOLEnhancedResult,
416 MOLTimeIntegrator, ReactionDiffusionResult, ReactionDiffusionSystem, StencilOrder,
417};
418pub use pde::spectral_enhanced::{
419 chebyshev_collocation_points, chebyshev_diff2_matrix as chebyshev_diff2_matrix_enhanced,
420 chebyshev_diff_matrix as chebyshev_diff_matrix_enhanced, chebyshev_diffusion_1d,
421 chebyshev_nonlinear_bvp, chebyshev_poisson_1d, dealias_23, dealias_23_2d, fourier_advection_1d,
422 fourier_diff2_matrix, fourier_diff_matrix, fourier_diffusion_1d, map_chebyshev_to_interval,
423 scale_chebyshev_diff, SpectralBasisType, SpectralEnhancedOptions, SpectralEnhancedResult,
424};
425pub use symbolic::{
427 detect_conservation_laws, generate_jacobian, higher_order_to_first_order, simplify,
428 ConservationEnforcer, ConservationLaw, FirstOrderSystem, HigherOrderODE, SymbolicExpression,
429 SymbolicJacobian, Variable,
430};
431pub use autodiff::{
433 compress_jacobian, compute_sensitivities, detect_sparsity, forward_gradient, forward_jacobian,
434 reverse_gradient, reverse_jacobian, Dual, DualVector, ForwardAD, ParameterSensitivity,
435 ReverseAD, SensitivityAnalysis, SparseJacobian, SparsePattern, TapeNode,
436};
437pub use specialized::{
439 DealiasingStrategy,
441 FinanceMethod,
443 FinancialOption,
444 FluidBoundaryCondition,
445 FluidState,
446 FluidState3D,
447 GPUMultiBodyQuantumSolver,
449 GPUQuantumSolver,
450 Greeks,
451 HarmonicOscillator,
452 HydrogenAtom,
453 JumpProcess,
454 LESolver,
455 NavierStokesParams,
456 NavierStokesSolver,
457 OptionStyle,
458 OptionType,
459 ParticleInBox,
461 QuantumAnnealer,
462 QuantumPotential,
463 QuantumState,
464 RANSModel,
465 RANSSolver,
466 RANSState,
467 SGSModel,
468 SchrodingerMethod,
469 SchrodingerSolver,
470 SpectralNavierStokesSolver,
478 StochasticPDESolver,
479 VolatilityModel,
480};
481pub use geometric::{
483 ABCFlow,
484 AngularMomentumInvariant2D,
485 CircularFlow2D,
486 ConservationChecker,
487 ConstrainedIntegrator,
488 DiscreteGradientIntegrator,
489 DivergenceFreeFlow,
490 DoubleGyre,
491 EnergyInvariant,
492 EnergyMomentumIntegrator,
493 EnergyPreservingMethod,
494 ExponentialMap,
495 GLn,
496 GeometricInvariant,
497 Gln,
498 HamiltonianFlow,
499 HeisenbergAlgebra,
500 HeisenbergGroup,
501 IncompressibleFlow,
502 LieAlgebra,
503 LieGroupIntegrator,
505 LieGroupMethod,
506 LinearMomentumInvariant,
507 ModifiedMidpointIntegrator,
508 MomentumPreservingMethod,
509 MultiSymplecticIntegrator,
510 SE3Integrator,
511 SLn,
512 SO3Integrator,
513 Se3,
514 Sln,
515 So3,
516 Sp2n,
517 SplittingIntegrator,
518 StreamFunction,
519 StructurePreservingIntegrator,
521 StructurePreservingMethod,
522 StuartVortex,
523 TaylorGreenVortex,
524 VariationalIntegrator,
525 VolumeChecker,
526 VolumePreservingIntegrator,
528 VolumePreservingMethod,
529 SE3,
530 SO3,
531};
532pub use analysis::advanced::{
534 BifurcationPointData, ContinuationAnalyzer, FixedPointData, MonodromyAnalyzer, MonodromyResult,
535 PeriodicStabilityType,
536};
537pub use analysis::{
538 BasinAnalysis,
539 BifurcationAnalyzer,
540 BifurcationPoint,
541 BifurcationType,
542 ContinuationResult,
544 FixedPoint,
545 PeriodicOrbit,
546 StabilityAnalyzer,
547 StabilityResult,
548 StabilityType,
549};
550pub use visualization::{
552 AttractorStability,
554 BifurcationDiagram,
555 ColorScheme,
557 HeatMapPlot,
563 OutputFormat,
565 ParameterExplorationPlot,
566 PhaseSpace3D,
567 PhaseSpacePlot,
569 PlotMetadata,
570 PlotStatistics,
571 RealTimeBifurcationPlot,
572 SensitivityPlot,
573 SurfacePlot,
575 VectorFieldPlot,
576};
577pub use amr_advanced::{
579 AMRAdaptationResult, AdaptiveCell, AdaptiveMeshLevel, AdvancedAMRManager,
580 CurvatureRefinementCriterion, FeatureDetectionCriterion, GeometricLoadBalancer,
581 GradientRefinementCriterion, LoadBalancer, MeshHierarchy, RefinementCriterion,
582};
583pub use error_estimation::{
584 AdvancedErrorEstimator, DefectCorrector, ErrorAnalysisResult, ErrorDistribution,
585 RichardsonExtrapolator, SolutionQualityMetrics, SpectralErrorIndicator,
586};
587pub use parallel_optimization::{
588 LoadBalancingStrategy, NumaTopology, ParallelExecutionStats, ParallelOptimizer, ParallelTask,
589 VectorOperation, VectorizedComputeTask, WorkStealingConfig, WorkStealingStats,
590};
591pub use performance_monitor::{
592 ConvergenceAnalysis as PerfConvergenceAnalysis, OptimizationRecommendation,
593 PerformanceAnalyzer, PerformanceBottleneck, PerformanceMetrics, PerformanceProfiler,
594 PerformanceReport,
595};
596pub use advanced_memory_optimization::{
598 AccessPattern, AdvancedMemoryOptimizer, CacheStrategy, L1CacheBuffer, L2CacheBuffer,
599 L3CacheBuffer, MemoryHierarchyManager, MemoryLayout, MemoryTier, MemoryType, NumaPlacement,
600 OptimizedMemoryRegion, PrefetchStrategy, ZeroCopyBuffer, ZeroCopyBufferPool,
601};
602pub use advanced_simd_acceleration::{
603 AdvancedSimdAccelerator, Avx512Support, MixedPrecisionOperation, PrecisionLevel,
604 SimdCapabilities, SveSupport, VectorizationStrategies,
605};
606pub use gpu_advanced_acceleration::{
607 AdvancedGPUAccelerator, AdvancedGPUMemoryPool, GpuDeviceInfo,
608 LoadBalancingStrategy as GpuLoadBalancingStrategy, MemoryBlock, MemoryBlockType,
609 MultiGpuConfiguration, RealTimeGpuMonitor,
610};
611pub use realtime_performance_adaptation::{
612 AdaptationStrategy, AlgorithmSwitchRecommendation, AnomalyAnalysisResult, AnomalySeverity,
613 AnomalyType, OptimizationRecommendations, PerformanceAnalysis, PerformanceAnomaly,
614 PerformanceBottleneck as AdaptivePerformanceBottleneck,
615 PerformanceMetrics as AdaptivePerformanceMetrics, PerformanceTrend, RealTimeAdaptiveOptimizer,
616};
617pub use neural_rl_step_control::{
623 DeepQNetwork, Experience, NetworkWeights, NeuralRLStepController, PrioritizedExperienceReplay,
624 RLEvaluationResults, StateFeatureExtractor, StepSizePrediction, TrainingConfiguration,
625 TrainingResult,
626};
627pub use clenshaw_curtis::{
629 quad_cc, quad_cc_tol, ClenshawCurtisOptions, ClenshawCurtisResult, ClenshawCurtisRule,
630};
631pub use ode::methods::rosenbrock::{rosenbrock_method, RosenbrockVariant};
632pub use ode::methods::symplectic::{
634 create_stepper as create_symplectic_stepper, solve_hamiltonian, EnergyMonitor,
635 HamiltonianSystem as SymplecticHamiltonianSystem, SeparableSystem as SymplecticSeparableSystem,
636 StormerVerletODE, SymplecticMethod, SymplecticODEResult, SymplecticStepper, VelocityVerletODE,
637 Yoshida4, Yoshida6, Yoshida8,
638};
639pub use ode::events::{
641 CrossingDirection, DetectedEvent, EventDef, EventDetector, EventResponse, RootFindingMethod,
642};
643pub use pde::implicit::{
644 ADIResult, BackwardEuler1D, CrankNicolson1D, ImplicitMethod, ImplicitOptions, ImplicitResult,
645 ADI2D,
646};
647pub use qmc::{qmc_quad, qmc_quad_parallel, Faure, Halton, QMCQuadResult, RandomGenerator, Sobol};
648pub use quad::{quad, simpson, trapezoid};
649pub use quad_vec::{quad_vec, NormType, QuadRule, QuadVecOptions, QuadVecResult};
650pub use sparse_grid::{
651 sparse_grid_quad, SparseGridOptions, SparseGridResult, SparseGridRuleFamily,
652};
653pub use symplectic::{
654 position_verlet, symplectic_euler, symplectic_euler_a, symplectic_euler_b, velocity_verlet,
655 CompositionMethod, GaussLegendre4, GaussLegendre6, HamiltonianFn, HamiltonianSystem,
656 SeparableHamiltonian, StormerVerlet, SymplecticIntegrator, SymplecticResult,
657};
658pub use tanhsinh::{nsum, tanhsinh, TanhSinhOptions, TanhSinhResult};
659pub use verification::{
660 polynomial_solution, trigonometric_solution_2d, ConvergenceAnalysis, ErrorAnalysis,
661 ExactSolution, MMSODEProblem, MMSPDEProblem, PDEType as VerificationPDEType,
662 PolynomialSolution, TrigonometricSolution2D,
663};
664pub use distributed::{
666 BoundaryConditions as DistributedBoundaryConditions,
668 BoundaryData,
669 BoundaryExchanger,
671 Checkpoint,
673 CheckpointConfig,
674 CheckpointGlobalState,
675 CheckpointManager,
676 CheckpointStatistics,
677 ChunkCheckpoint,
678 ChunkDistributor,
680 ChunkId,
681 ChunkResult,
682 ChunkResultStatus,
683 Communicator,
684 ComputeNode,
686 DistributedConfig,
687 DistributedError,
688 DistributedMessage,
689 DistributedMetrics,
690 DistributedODEResult,
692 DistributedODESolver,
693 DistributedODESolverBuilder,
694 DistributedResult,
695 FaultToleranceCoordinator,
696 FaultToleranceMode,
697 JobId,
698 LoadBalancer as DistributedLoadBalancer,
699 LoadBalancerConfig,
700 LoadBalancerStatistics,
701 LoadBalancingStrategy as DistributedLoadBalancingStrategy,
702 MessageChannel,
703 NodeBuilder,
704 NodeCapabilities,
705 NodeId,
706 NodeInfo,
707 NodeManager,
708 NodePerformance,
709 NodeStatus,
710 RecoveryAction,
711 ResourceMonitor,
712 SyncBarrier,
713 WorkChunk,
714};
715
716#[cfg(test)]
717mod tests {
718 #[test]
719 fn it_works() {
720 assert_eq!(2 + 2, 4);
721 }
722}