.. _program_listing_file_include_diffeq.hpp: Program Listing for File diffeq.hpp =================================== |exhale_lsh| :ref:`Return to documentation for file ` (``include/diffeq.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once // Core concepts and base classes #include #include #include #include #include // ODE integrator implementations (organized by method type) #include // Simple Euler method #include // Heun's method #include // Classic 4th order Runge-Kutta #include // RK23 (adaptive, Bogacki-Shampine) #include // RK45 (adaptive, Dormand-Prince) #include // DOP853 (8th order, high accuracy) #include // BDF (multistep, stiff systems) - SciPy-compatible #include // LSODA (automatic stiff/non-stiff switching) // SDE (Stochastic Differential Equation) integrators (organized by method type) #include // SDE base infrastructure #include // Basic SDE solver (strong order 0.5) #include // Milstein method with Lévy area (strong order 1.0) #include // Stochastic Runge-Kutta method (strong order 1.0) #include // Implicit method for stiff SDEs #include // SRA base implementation #include // SRA1 variant for additive noise #include // SRA2 variant for additive noise #include // Stability-optimized SRA #include // SRI base implementation #include // SRIW1 variant for general SDEs #include // Stability-optimized SRI // Modern async and signal processing components (standard C++ only) #include // Async integration with std::future #include // Generic signal processing #include // Unified interface for all domains // Standard parallelism library integration examples // Note: Use standard libraries (std::execution, OpenMP, TBB, Thrust) instead of custom parallel classes // See docs/STANDARD_PARALLELISM.md and examples/standard_parallelism_demo.cpp for integration examples namespace diffeq { // Re-export core functionality using core::TimeoutIntegrator; using core::IntegrationResult; using core::IntegrationTimeoutException; using core::make_timeout_integrator; using core::integrate_with_timeout; // Note: ParallelTimeoutIntegrator was removed in favor of composable architecture // Use make_builder(base).with_timeout().with_parallel().build() instead // Re-export composable integration facilities using core::composable::IntegratorDecorator; using core::composable::TimeoutDecorator; using core::composable::ParallelDecorator; using core::composable::OutputDecorator; using core::composable::SignalDecorator; using core::composable::IntegratorBuilder; using core::composable::make_builder; using core::composable::with_timeout_only; using core::composable::with_parallel_only; using core::composable::TimeoutConfig; using core::composable::TimeoutResult; using core::composable::ParallelConfig; using core::composable::OutputConfig; using core::composable::OutputMode; using core::composable::SignalConfig; // Re-export integrator classes for convenience // Note: Integrators are already in diffeq namespace, no need to re-export // Re-export SDE integrators // Note: SDE integrators are already in diffeq namespace, no need to re-export // Common type aliases for system_state concept template using VectorState = std::vector; template using ArrayState = std::array; // Default scalar types for can_be_time concept using DefaultScalar = double; using DefaultTime = double; }