22#ifndef quantlib_forward_rate_euler_constrained_evolver_hpp
23#define quantlib_forward_rate_euler_constrained_evolver_hpp
33 class BrownianGenerator;
34 class BrownianGeneratorFactory;
43 Size initialStep = 0);
47 const std::vector<Size>& endIndexOfSwapRate)
override;
49 const std::valarray<bool>& isConstraintActive)
override;
53 const std::vector<Size>&
numeraires()
const override;
61 void setForwards(
const std::vector<Real>& forwards);
Constrained market-model evolver.
Curve state for market-model simulations
Curve state for Libor market models
std::vector< Size > startIndexOfSwapRate_
std::vector< Real > drifts1_
std::vector< Rate > rateConstraints_
std::vector< Rate > displacements_
Real advanceStep() override
std::vector< std::vector< Real > > covariances_
Real startNewPath() override
std::vector< Rate > forwards_
const CurveState & currentState() const override
void setForwards(const std::vector< Real > &forwards)
std::vector< Real > brownians_
std::vector< Rate > logForwards_
Size currentStep() const override
std::vector< std::vector< Real > > fixedDrifts_
std::vector< std::vector< Real > > variances_
void setConstraintType(const std::vector< Size > &startIndexOfSwapRate, const std::vector< Size > &endIndexOfSwapRate) override
call once
std::vector< Size > alive_
std::vector< Rate > initialLogForwards_
ext::shared_ptr< MarketModel > marketModel_
void setThisConstraint(const std::vector< Rate > &rateConstraints, const std::valarray< bool > &isConstraintActive) override
call before each path
std::vector< Real > initialDrifts_
std::vector< Size > numeraires_
std::vector< Real > correlatedBrownians_
std::vector< Size > endIndexOfSwapRate_
const std::vector< Size > & numeraires() const override
std::vector< LMMDriftCalculator > calculators_
ext::shared_ptr< BrownianGenerator > generator_
LMMCurveState curveState_
std::valarray< bool > isConstraintActive_
void setInitialState(const CurveState &) override
std::size_t Size
size of a container
Drift computation for Libor market model.