Logo
Reference manual - version ored_version
GaussianCamCG Class Reference
Inheritance diagram for GaussianCamCG:

Public Member Functions

 GaussianCamCG (const Handle< CrossAssetModel > &cam, const Size paths, const std::vector< std::string > &currencies, const std::vector< Handle< YieldTermStructure > > &curves, const std::vector< Handle< Quote > > &fxSpots, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< InterestRateIndex > > > &irIndices, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > &infIndices, const std::vector< std::string > &indices, const std::vector< std::string > &indexCurrencies, const std::set< Date > &simulationDates, const QuantLib::ext::shared_ptr< IborFallbackConfig > &iborFallbackConfig=QuantLib::ext::make_shared< IborFallbackConfig >(IborFallbackConfig::defaultConfig()), const std::vector< Size > &projectedStateProcessIndices={}, const std::vector< std::string > &conditionalExpectationModelStates={}, const std::vector< Date > &stickyCloseOutDates={}, const Size timeStepsPerYear=1)
const Date & referenceDate () const override
std::size_t npv (const std::size_t amount, const Date &obsdate, const std::size_t filter, const std::optional< long > &memSlot, const std::set< std::size_t > addRegressors, const std::optional< std::set< std::size_t > > &overwriteRegressors) const override
std::set< std::size_t > npvRegressors (const Date &obsdate, const std::optional< std::set< std::string > > &relevantCurrencies) const override
std::size_t numeraire (const Date &s) const override
std::size_t fwdCompAvg (const bool isAvg, const std::string &indexInput, const Date &obsdate, const Date &start, const Date &end, const Real spread, const Real gearing, const Integer lookback, const Natural rateCutoff, const Natural fixingDays, const bool includeSpread, const Real cap, const Real floor, const bool nakedOption, const bool localCapFloor) const override
QuantLib::Size size () const override
Real getDirectFxSpotT0 (const std::string &forCcy, const std::string &domCcy) const override
Real getDirectDiscountT0 (const Date &paydate, const std::string &currency) const override
void useStickyCloseOutDates (const bool b) const override
const Handle< CrossAssetModel > & cam () const
std::size_t getInterpolatedUnderlyingPath (const Date &d, const Size indexNo) const
std::size_t getInterpolatedIrState (const Date &d, const Size ccyIndex) const
Public Member Functions inherited from ModelCGImpl
 ModelCGImpl (const ModelCG::Type type, const DayCounter &dayCounter, const Size size, const std::vector< std::string > &currencies, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< InterestRateIndex > > > &irIndices, const std::vector< std::pair< std::string, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > &infIndices, const std::vector< std::string > &indices, const std::vector< std::string > &indexCurrencies, const std::set< Date > &simulationDates, const QuantLib::ext::shared_ptr< IborFallbackConfig > &iborFallbackConfig)
Real actualTimeFromReference (const Date &d) const override
const std::string & baseCcy () const override
const std::vector< std::string > & currencies () const override
std::size_t dt (const Date &d1, const Date &d2) const override
std::size_t pay (const std::size_t amount, const Date &obsdate, const Date &paydate, const std::string &currency) const override
std::size_t discount (const Date &obsdate, const Date &paydate, const std::string &currency) const override
std::size_t eval (const std::string &index, const Date &obsdate, const Date &fwddate, const bool returnMissingMissingAsNull=false, const bool ignoreTodaysFixing=false) const override
std::size_t fxSpotT0 (const std::string &forCcy, const std::string &domCcy) const override
std::size_t barrierProbability (const std::string &index, const Date &obsdate1, const Date &obsdate2, const std::size_t barrier, const bool above) const override
Real extractT0Result (const RandomVariable &value) const override
ModelCG::Type type () const override
std::size_t cgVersion () const override
const std::vector< std::vector< std::size_t > > & randomVariates () const override
Public Member Functions inherited from ModelCG
 ModelCG (const QuantLib::Size n)
QuantLib::ext::shared_ptr< QuantExt::ComputationGraph > computationGraph ()
virtual Size trainingSamples () const
virtual void toggleTrainingPaths () const
virtual Real extractT0Result (const QuantExt::RandomVariable &value) const =0
virtual void resetNPVMem ()
const std::map< std::string, QuantLib::ext::any > & additionalResults () const
void calculate () const override
std::set< ModelCG::ModelParameter > & modelParameters () const
std::set< ModelCG::ModelParameter > & cachedParameters () const
std::size_t addModelParameter (const ModelCG::ModelParameter &p, const std::function< double(void)> &f) const
std::tuple< QuantLib::Date, QuantLib::Date, std::size_t, std::size_t > getInterpolationWeights (const QuantLib::Date &d, const std::set< Date > &knownDates) const
std::tuple< std::size_t, std::size_t, std::size_t, std::size_t > getInterpolationWeights (const double t, const QuantLib::TimeGrid &knownTimes) const

Protected Member Functions

virtual std::size_t getFutureBarrierProb (const std::string &index, const Date &obsdate1, const Date &obsdate2, const std::size_t barrier, const bool above) const override
void performCalculations () const override
std::size_t getIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
std::size_t getIrIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
std::size_t getInfIndexValue (const Size indexNo, const Date &d, const Date &fwd=Null< Date >()) const override
std::size_t getDiscount (const Size idx, const Date &s, const Date &t) const override
std::size_t getFxSpot (const Size idx) const override
Date adjustForStickyCloseOut (const Date &d) const
Protected Member Functions inherited from ModelCGImpl
void performCalculations () const override

Protected Attributes

Handle< CrossAssetModel > cam_
std::vector< Handle< YieldTermStructure > > curves_
std::vector< Handle< Quote > > fxSpots_
Size timeStepsPerYear_
std::vector< Size > projectedStateProcessIndices_
std::vector< Date > stickyCloseOutDates_
Date referenceDate_
std::set< Date > effectiveSimulationDates_
TimeGrid timeGrid_
std::vector< Size > positionInTimeGrid_
std::map< Date, std::vector< std::size_t > > underlyingPaths_
std::map< Date, std::vector< std::size_t > > irStates_
std::map< Date, std::vector< std::pair< std::size_t, std::size_t > > > infStates_
std::vector< std::vector< std::size_t > > underlyingPathsOnFullTimeGrid_
std::vector< std::vector< std::size_t > > irStatesOnFullTimeGrid_
std::vector< std::vector< std::pair< std::size_t, std::size_t > > > infStatesOnFullTimeGrid_
std::vector< Size > indexPositionInProcess_
std::vector< Size > infIndexPositionInProcess_
std::vector< Size > currencyPositionInProcess_
std::vector< Size > irIndexPositionInCam_
std::vector< Size > infIndexPositionInCam_
std::vector< Size > currencyPositionInCam_
std::vector< Size > eqIndexInCam_
bool conditionalExpectationUseIr_
bool conditionalExpectationUseInf_
bool conditionalExpectationUseAsset_
std::size_t underlyingPathsCgVersion_ = 0
bool useStickyCloseOutDates_ = false
Protected Attributes inherited from ModelCGImpl
ModelCG::Type type_
DayCounter dayCounter_
std::vector< std::string > currencies_
std::vector< std::string > indexCurrencies_
std::set< Date > simulationDates_
QuantLib::ext::shared_ptr< IborFallbackConfigiborFallbackConfig_
std::vector< std::pair< IndexInfo, QuantLib::ext::shared_ptr< InterestRateIndex > > > irIndices_
std::vector< std::pair< IndexInfo, QuantLib::ext::shared_ptr< ZeroInflationIndex > > > infIndices_
std::vector< IndexInfoindices_
std::vector< std::vector< size_t > > randomVariates_
Protected Attributes inherited from ModelCG
std::map< std::string, QuantLib::ext::any > additionalResults_
QuantLib::ext::shared_ptr< QuantExt::ComputationGraph > g_
std::set< ModelCG::ModelParametermodelParameters_
std::set< ModelCG::ModelParametercachedParameters_

Additional Inherited Members

Public Types inherited from ModelCG
enum class  Type { MC , FD }

Member Function Documentation

◆ referenceDate()

const Date & referenceDate ( ) const
overridevirtual

Implements ModelCG.

◆ npv()

std::size_t npv ( const std::size_t amount,
const Date & obsdate,
const std::size_t filter,
const std::optional< long > & memSlot,
const std::set< std::size_t > addRegressors,
const std::optional< std::set< std::size_t > > & overwriteRegressors ) const
overridevirtual

Implements ModelCG.

◆ npvRegressors()

std::set< std::size_t > npvRegressors ( const Date & obsdate,
const std::optional< std::set< std::string > > & relevantCurrencies ) const
overridevirtual

Implements ModelCG.

◆ numeraire()

std::size_t numeraire ( const Date & s) const
overridevirtual

Implements ModelCG.

◆ fwdCompAvg()

std::size_t fwdCompAvg ( const bool isAvg,
const std::string & indexInput,
const Date & obsdate,
const Date & start,
const Date & end,
const Real spread,
const Real gearing,
const Integer lookback,
const Natural rateCutoff,
const Natural fixingDays,
const bool includeSpread,
const Real cap,
const Real floor,
const bool nakedOption,
const bool localCapFloor ) const
overridevirtual

Implements ModelCG.

◆ size()

QuantLib::Size size ( ) const
overridevirtual

Reimplemented from ModelCG.

◆ getDirectFxSpotT0()

Real getDirectFxSpotT0 ( const std::string & forCcy,
const std::string & domCcy ) const
overridevirtual

Implements ModelCG.

◆ getDirectDiscountT0()

Real getDirectDiscountT0 ( const Date & paydate,
const std::string & currency ) const
overridevirtual

Implements ModelCG.

◆ useStickyCloseOutDates()

void useStickyCloseOutDates ( const bool b) const
overridevirtual

Reimplemented from ModelCG.

◆ getFutureBarrierProb()

virtual std::size_t getFutureBarrierProb ( const std::string & index,
const Date & obsdate1,
const Date & obsdate2,
const std::size_t barrier,
const bool above ) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getIndexValue()

std::size_t getIndexValue ( const Size indexNo,
const Date & d,
const Date & fwd = Null< Date >() ) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getIrIndexValue()

std::size_t getIrIndexValue ( const Size indexNo,
const Date & d,
const Date & fwd = Null< Date >() ) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getInfIndexValue()

std::size_t getInfIndexValue ( const Size indexNo,
const Date & d,
const Date & fwd = Null< Date >() ) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getDiscount()

std::size_t getDiscount ( const Size idx,
const Date & s,
const Date & t ) const
overrideprotectedvirtual

Implements ModelCGImpl.

◆ getFxSpot()

std::size_t getFxSpot ( const Size idx) const
overrideprotectedvirtual

Implements ModelCGImpl.