22#ifndef quantlib_pathwise_accounting_engine_hpp
23#define quantlib_pathwise_accounting_engine_hpp
36 class LogNormalFwdRateEuler;
48 ext::shared_ptr<LogNormalFwdRateEuler> evolver,
50 ext::shared_ptr<MarketModel>
52 Real initialNumeraireValue);
59 ext::shared_ptr<LogNormalFwdRateEuler>
evolver_;
77 std::vector<std::vector<MarketModelPathwiseMultiProduct::CashFlow> >
81 std::vector<Matrix>
V_;
119 ext::shared_ptr<LogNormalFwdRateEuler> evolver,
121 ext::shared_ptr<MarketModel>
123 const std::vector<std::vector<Matrix> >& VegaBumps,
124 Real initialNumeraireValue);
127 std::vector<Real>& errors,
154 std::vector<std::vector<MarketModelPathwiseMultiProduct::CashFlow> >
158 std::vector<Matrix>
V_;
200 ext::shared_ptr<LogNormalFwdRateEuler> evolver,
202 ext::shared_ptr<MarketModel>
204 const std::vector<std::vector<Matrix> >& VegaBumps,
205 Real initialNumeraireValue);
209 std::vector<Real>& errors,
214 std::vector<Real>& errors,
245 std::vector<std::vector<MarketModelPathwiseMultiProduct::CashFlow> >
249 std::vector<Matrix>
V_;
cloning proxy to an underlying object
Statistics analysis of N-dimensional (sequence) data.
Matrix used in linear algebra.
Engine collecting cash flows along a market-model simulation for doing pathwise computation of Deltas...
std::vector< Real > deflatorAndDerivatives_
ext::shared_ptr< LogNormalFwdRateEuler > evolver_
std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > cashFlowsGenerated_
std::vector< std::vector< Size > > numberCashFlowsThisIndex_
Matrix StepsDiscountsSquared_
Real initialNumeraireValue_
void multiplePathValues(SequenceStatisticsInc &stats, Size numberOfPaths)
std::vector< Real > currentForwards_
ext::shared_ptr< MarketModel > pseudoRootStructure_
std::vector< Size > numberCashFlowsThisStep_
std::vector< Real > numerairesHeld_
std::vector< Matrix > totalCashFlowsThisIndex_
Size numberCashFlowTimes_
std::vector< Real > lastForwards_
std::vector< std::vector< Size > > cashFlowIndicesThisStep_
Real singlePathValues(std::vector< Real > &values)
Clone< MarketModelPathwiseMultiProduct > product_
std::vector< MarketModelPathwiseDiscounter > discounters_
Engine collecting cash flows along a market-model simulation for doing pathwise computation of Deltas...
std::vector< Real > fullDerivatives_
void multiplePathValues(std::vector< Real > &means, std::vector< Real > &errors, Size numberOfPaths)
std::vector< Real > deflatorAndDerivatives_
ext::shared_ptr< LogNormalFwdRateEuler > evolver_
std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > cashFlowsGenerated_
std::vector< std::vector< Size > > numberCashFlowsThisIndex_
Matrix StepsDiscountsSquared_
Real initialNumeraireValue_
std::vector< Real > currentForwards_
std::vector< RatePseudoRootJacobian > jacobianComputers_
ext::shared_ptr< MarketModel > pseudoRootStructure_
std::vector< Size > numberCashFlowsThisStep_
std::vector< Size > numeraires_
std::vector< Real > numerairesHeld_
std::vector< Real > stepsDiscounts_
std::vector< Matrix > totalCashFlowsThisIndex_
Size numberCashFlowTimes_
std::vector< Matrix > jacobiansThisPaths_
std::vector< Real > lastForwards_
std::vector< std::vector< Size > > cashFlowIndicesThisStep_
Real singlePathValues(std::vector< Real > &values)
Clone< MarketModelPathwiseMultiProduct > product_
std::vector< MarketModelPathwiseDiscounter > discounters_
Engine collecting cash flows along a market-model simulation for doing pathwise computation of Deltas...
std::vector< Real > fullDerivatives_
void multiplePathValues(std::vector< Real > &means, std::vector< Real > &errors, Size numberOfPaths)
Use to get vegas with respect to VegaBumps.
std::vector< Real > deflatorAndDerivatives_
ext::shared_ptr< LogNormalFwdRateEuler > evolver_
void multiplePathValuesElementary(std::vector< Real > &means, std::vector< Real > &errors, Size numberOfPaths)
Use to get vegas with respect to pseudo-root-elements.
std::vector< std::vector< MarketModelPathwiseMultiProduct::CashFlow > > cashFlowsGenerated_
std::vector< std::vector< Size > > numberCashFlowsThisIndex_
Matrix StepsDiscountsSquared_
std::vector< std::vector< Matrix > > vegaBumps_
Real initialNumeraireValue_
Size numberElementaryVegas_
std::vector< std::vector< Matrix > > jacobiansThisPaths_
std::vector< std::vector< Matrix > > elementary_vegas_ThisPath_
std::vector< Real > currentForwards_
ext::shared_ptr< MarketModel > pseudoRootStructure_
std::vector< Size > numberCashFlowsThisStep_
std::vector< Size > numeraires_
std::vector< Real > numerairesHeld_
std::vector< Real > stepsDiscounts_
std::vector< Matrix > totalCashFlowsThisIndex_
std::vector< RatePseudoRootJacobianAllElements > jacobianComputers_
Size numberCashFlowTimes_
std::vector< Real > lastForwards_
std::vector< std::vector< Size > > cashFlowIndicesThisStep_
Real singlePathValues(std::vector< Real > &values)
Clone< MarketModelPathwiseMultiProduct > product_
std::vector< MarketModelPathwiseDiscounter > discounters_
cloning proxy to an underlying object
std::size_t Size
size of a container
Statistics tools for sequence (vector, list, array) samples.