Skip to content

refactor/engines#13

Open
ChronoInferna wants to merge 19 commits intomainfrom
refactor/engines
Open

refactor/engines#13
ChronoInferna wants to merge 19 commits intomainfrom
refactor/engines

Conversation

@ChronoInferna
Copy link
Copy Markdown
Owner

This pull request introduces a major refactor of the codebase to improve modularity, clarity, and support for advanced Monte Carlo simulation techniques. The core logic has been reorganized into more focused components, new abstractions have been introduced for payoffs, estimators, and variance reduction strategies, and support for control variates and antithetic variates has been added. Additionally, the codebase now uses a more organized folder structure and includes new engine and strategy abstractions.

Key changes:

1. Major Refactor and Architectural Improvements

  • Split monolithic headers into smaller, focused modules (e.g., Estimator.hpp, Manager.hpp, PathGenerator.hpp, Payoff.hpp, RandomGenerator.hpp, StochasticProcess.hpp, NumericalScheme.hpp, VarianceReductionStrategy.hpp removed; new files like core/types.hpp, engine/engine.hpp, estimator/control_variate_estimator.hpp added). [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
  • Introduced a new engine abstraction (Engine class in engine/engine.hpp) to manage strategies and parallel execution.
  • Added a new estimator for control variates (ControlVariateEstimator in estimator/control_variate_estimator.hpp).

2. Variance Reduction and Payoff Abstractions

  • Implemented variance reduction strategies, including antithetic variates and a framework for control variates. [1] [2]
  • Refined the payoff abstraction to support flexible payoff calculations.

3. Core Types and Concepts

  • Centralized core types (Path, Normals, Payoffs) in a new core/types.hpp file for consistency across modules.
  • Improved concepts for stochastic processes, numerical schemes, random generators, and payoffs for better compile-time checks and extensibility. [1] [2] [3] [4]

4. Documentation and Metadata

  • Updated the changelog for version 0.2.0 with a detailed summary of new features, fixes, and refactors.
  • Updated .cz.yaml to reflect the new version.
  • Removed obsolete or redundant documentation (cmake/README.md).

These changes make the codebase more modular and maintainable, and lay the groundwork for advanced simulation features and multi-threaded execution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant