Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
projectedvariatepathgeneratorfactory.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2020 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file projectedvariatepathgeneratorfactory.hpp
20 \brief path generator factory that builds a projected path generator
21 \ingroup methods
22*/
23
24#pragma once
25
29
30namespace QuantExt {
31
33public:
34 ProjectedVariatePathGeneratorFactory(const std::vector<Size>& stateProcessProjection,
35 const QuantLib::ext::shared_ptr<MultiPathVariateGeneratorBase>& variateGenerator)
36 : stateProcessProjection_(stateProcessProjection), variateGenerator_(variateGenerator) {}
37 QuantLib::ext::shared_ptr<MultiPathGeneratorBase> build(const SequenceType s,
38 const QuantLib::ext::shared_ptr<StochasticProcess>& process,
39 const TimeGrid& timeGrid, const BigNatural seed,
40 const SobolBrownianGenerator::Ordering ordering,
41 const SobolRsg::DirectionIntegers directionIntegers) override {
42 return QuantLib::ext::make_shared<ProjectedVariateMultiPathGenerator>(process, timeGrid, stateProcessProjection_,
44 }
45
46private:
47 const std::vector<Size> stateProcessProjection_;
48 const QuantLib::ext::shared_ptr<MultiPathVariateGeneratorBase> variateGenerator_;
49};
50
51} // namespace QuantExt
Base class for path generator factories.
QuantLib::ext::shared_ptr< MultiPathGeneratorBase > build(const SequenceType s, const QuantLib::ext::shared_ptr< StochasticProcess > &process, const TimeGrid &timeGrid, const BigNatural seed, const SobolBrownianGenerator::Ordering ordering, const SobolRsg::DirectionIntegers directionIntegers) override
const QuantLib::ext::shared_ptr< MultiPathVariateGeneratorBase > variateGenerator_
ProjectedVariatePathGeneratorFactory(const std::vector< Size > &stateProcessProjection, const QuantLib::ext::shared_ptr< MultiPathVariateGeneratorBase > &variateGenerator)
multi path generators returning the generating N(0,1) variates, this is very much in parallel to the ...
base class and standard implementation for path generator factories
multi path generator projecting variates from another variate generator