27 const std::vector<Time>& exerciseTimes)
28 : rateTimes_(rateTimes), exerciseTimes_(exerciseTimes),
29 rateIndex_(exerciseTimes.size()),
30 evolution_(rateTimes, exerciseTimes) {
32 for (
Size i=0; i<exerciseTimes.size(); ++i) {
33 while (j < rateTimes.size() && rateTimes[j] < exerciseTimes[i])
67 std::vector<Real>&
results)
const {
78 std::unique_ptr<MarketModelBasisSystem>
80 return std::unique_ptr<MarketModelBasisSystem>(
new SwapBasisSystem(*
this));
Curve state for market-model simulations
virtual Rate forwardRate(Size i) const =0
virtual Rate coterminalSwapRate(Size i) const =0
Market-model evolution description.
void values(const CurveState &, std::vector< Real > &results) const override
std::vector< Size > rateIndex_
Size numberOfExercises() const override
void nextStep(const CurveState &) override
std::vector< Size > numberOfFunctions() const override
std::valarray< bool > isExerciseTime() const override
std::vector< Time > rateTimes_
const EvolutionDescription & evolution() const override
std::vector< Time > exerciseTimes_
EvolutionDescription evolution_
std::unique_ptr< MarketModelBasisSystem > clone() const override
SwapBasisSystem(const std::vector< Time > &rateTimes, const std::vector< Time > &exerciseTimes)
std::size_t Size
size of a container