Restructure C++ core into cpp module and package bindings.
Move the pricing engine sources out of src/ into cpp/, add the closed-form engine and pybind wiring, and align tests/build targets with the new project layout. Made-with: Cursor
This commit is contained in:
26
cpp/MonteCarloEngine.hpp
Normal file
26
cpp/MonteCarloEngine.hpp
Normal file
@@ -0,0 +1,26 @@
|
||||
/**
|
||||
* @file MonteCarloEngine.hpp
|
||||
* @brief Monte Carlo pricing using a @ref StochasticProcess and @ref RandomGenerator.
|
||||
*/
|
||||
|
||||
#ifndef QUANTENGINE_MONTECARLOENGINE_HPP
|
||||
#define QUANTENGINE_MONTECARLOENGINE_HPP
|
||||
#include "PricingEngine.hpp"
|
||||
#include "RandomGenerator.hpp"
|
||||
|
||||
/**
|
||||
* @brief Simple path simulation: one Euler/exact step to horizon, average discounted payoff.
|
||||
*/
|
||||
class MonteCarloEngine : public PricingEngine{
|
||||
public:
|
||||
MonteCarloEngine() = default;
|
||||
MonteCarloEngine(int numPaths, std::unique_ptr<StochasticProcess> process, std::shared_ptr<RandomGenerator> rng):
|
||||
numPaths_(numPaths), PricingEngine(std::move(process)), rng_(std::move(rng)) {}
|
||||
double calculate(const Instrument& instrument) const override;
|
||||
private:
|
||||
int numPaths_;
|
||||
std::shared_ptr<RandomGenerator> rng_;
|
||||
};
|
||||
|
||||
|
||||
#endif //QUANTENGINE_MONTECARLOENGINE_HPP
|
||||
Reference in New Issue
Block a user