General-purpose Monte Carlo model for path samples. More...
#include <ql/methods/montecarlo/montecarlomodel.hpp>
Public Types | |
typedef MC< RNG > | mc_traits |
typedef RNG | rng_traits |
typedef MC< RNG >::path_generator_type | path_generator_type |
typedef MC< RNG >::path_pricer_type | path_pricer_type |
typedef path_generator_type::sample_type | sample_type |
typedef path_pricer_type::result_type | result_type |
typedef S | stats_type |
Public Member Functions | |
MonteCarloModel (const ext::shared_ptr< path_generator_type > &pathGenerator, const ext::shared_ptr< path_pricer_type > &pathPricer, const stats_type &sampleAccumulator, bool antitheticVariate, const ext::shared_ptr< path_pricer_type > &cvPathPricer=ext::shared_ptr< path_pricer_type >(), result_type cvOptionValue=result_type(), const ext::shared_ptr< path_generator_type > &cvPathGenerator=ext::shared_ptr< path_generator_type >()) | |
void | addSamples (Size samples) |
const stats_type & | sampleAccumulator () const |
General-purpose Monte Carlo model for path samples.
The template arguments of this class correspond to available policies for the particular model to be instantiated—i.e., whether it is single- or multi-asset, or whether it should use pseudo-random or low-discrepancy numbers for path generation. Such decisions are grouped in trait classes so as to be orthogonal—see mctraits.hpp for examples.
The constructor accepts two safe references, i.e. two smart pointers, one to a path generator and the other to a path pricer. In case of control variate technique the user should provide the additional control option, namely the option path pricer and the option value.