Posted By:
lakshmanan_sundaram
Posted On:
Monday, August 17, 2009 04:12 AM
class TermStructIRSens { public: TermStructIRSens(const FSparam &fsp, TermStructIR *tsir); ~TermStructIRSens(); RetCode getErrCode() const; const CDSString& getErrMsg() const; // FS factor access FsGrpType getFsGrpType() const; FSFactorGrp *getFSFactorGrp() const; FSFactorGrp *getSens0FSFactorGrp() const; FSFactorTSIR *getSens0FSFactor(TsSensGrpType sensType) const; void clearDependentFSFactor(TermStructIR *tsir); // base/sens curve access int getNumFSTenor() const; int getNumSensCurve() const; int getParallelIndex() const; TermStructIRCurve *getBaseCurve() const; TermStructIRCurve *getFSTenorCurve() const;
More>>
class TermStructIRSens {
public:
TermStructIRSens(const FSparam &fsp, TermStructIR *tsir);
~TermStructIRSens();
RetCode getErrCode() const;
const CDSString& getErrMsg() const;
// FS factor access
FsGrpType getFsGrpType() const;
FSFactorGrp *getFSFactorGrp() const;
FSFactorGrp *getSens0FSFactorGrp() const;
FSFactorTSIR *getSens0FSFactor(TsSensGrpType sensType) const;
void clearDependentFSFactor(TermStructIR *tsir);
// base/sens curve access
int getNumFSTenor() const;
int getNumSensCurve() const;
int getParallelIndex() const;
TermStructIRCurve *getBaseCurve() const;
TermStructIRCurve *getFSTenorCurve() const;
void setFSTenorCurve(TermStructIRCurve * fsTenorCurve);
TermStructIRCurve *getSens0Curve(TsSensGrpType sensType, int idx) const;
TermStructIRCurve *getSensCurve(TsSensGrpType sensType, int idx) const;
// match checking
Bool match(const Date &date, const FSparam &fsp) const;
// as of date and valuation date
const Date &getAsOfDate() const;
const Date &getValDate() const;
void setValDate(const Date& date);
// template and input PointInfos
TStemplateIR *getTStemplateIR() const;
int getNumInput() const;
PointInfo *getInput(int idx) const;
FSparam & getFSparam() { return _fsp ; }
FSBpaCurve * getFSBpaCurve() const;
FwdRiskFS * getFwdRiskFS() const;
const TermStructIR *getTSIR() { return _tsir;};
Bool useAltSens() { return _useAltSens;}
void setAltSens(Bool flag) { _useAltSens = flag;}
void dumpQuadCurve( const char *mode);
private:
FSBpaCurve * _fsBpaCurve;
FwdRiskFS * _fwdRiskFS;
FSparam _fsp; // local copy FS parameter
TermStructIR *_tsir; // TSIR pointer
TStemplateIR *_tst; // local copy of template
Date _asOfDate; // As Of Date
Date _valDate; // Valuation Date
FsGrpType _fsGrpType; // FS group type
FSFactorGrp *_fsGrp; // FS factor pointer
FSFactorGrp *_sens0FsGrp; // sens0 FSFactor pointer
int _numSensCurve; // number of sens curves
int _numSens0Curve; // number of sens 0 curves
int _parallelIndex; // index of parallel perturbation
TermStructIRCurve *_baseCurve; // base curve
TermStructIRCurve *_fsTenorCurve; // fs tenor curve
TermStructIRCurve **_sensCurveGrp[TSSG_NUM_GRP]; // sens curves
TermStructIRCurve **_sens0CurveGrp[TSSG_NUM_GRP]; // sens 0 curves
double _perturbAmt; // perturbation amount
Bool _needOverrideInput; // flag for override mkt input with implied yield
Bool _useAltSens;
// FS factor geneartion
void buildFSTenorCurve();
void buildSens0FSFactor();
void buildFSFactor();
// sens curve generation
TermStructIRCurve **getSensCurveGrp(TsSensGrpType sensType);
TermStructIRCurve **getSens0CurveGrp(TsSensGrpType sensType);
void buildSensCurve(TsSensGrpType sensType, int idx, Bool isSens0);
}
<<Less