[QuantLibAddin-cvs] QuantLibAddin/qlo couponvectors.cpp,1.5,1.6
Brought to you by:
ericehlers,
nando
|
From: Ferdinando A. <na...@us...> - 2006-06-21 12:50:24
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv23007/qlo Modified Files: couponvectors.cpp Log Message: extended flow analysis Index: couponvectors.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/couponvectors.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** couponvectors.cpp 18 Jun 2006 19:47:14 -0000 1.5 --- couponvectors.cpp 21 Jun 2006 12:50:21 -0000 1.6 *************** *** 27,30 **** --- 27,31 ---- #include <ql/CashFlows/fixedratecoupon.hpp> + #include <ql/CashFlows/floatingratecoupon.hpp> #include <ql/CashFlows/parcoupon.hpp> *************** *** 49,59 **** cf.push_back(c->accrualPeriod()); cf.push_back(c->rate()); ! ! boost::shared_ptr<QuantLib::ParCoupon> floatingCoupon = ! boost::dynamic_pointer_cast<QuantLib::ParCoupon>(cashflows[i]); if (floatingCoupon!=0) { cf.push_back(floatingCoupon->fixingDays()); cf.push_back(floatingCoupon->fixingDate().serialNumber()); cf.push_back(floatingCoupon->indexFixing()); cf.push_back(floatingCoupon->spread()); } else { --- 50,68 ---- cf.push_back(c->accrualPeriod()); cf.push_back(c->rate()); ! ! boost::shared_ptr<QuantLib::FloatingRateCoupon> floatingCoupon = ! boost::dynamic_pointer_cast<QuantLib::FloatingRateCoupon>( ! cashflows[i]); if (floatingCoupon!=0) { cf.push_back(floatingCoupon->fixingDays()); cf.push_back(floatingCoupon->fixingDate().serialNumber()); + cf.push_back(floatingCoupon->gearing()); cf.push_back(floatingCoupon->indexFixing()); + convAdj = floatingCoupon->rate()- floatingCoupon->spread(); + convAdj -= floatingCoupon->gearing()* + floatingCoupon->indexFixing(); + if (floatingCoupon->gearing()!=0) + covAdj/floatingCoupon->gearing(); + cf.push_back(convAdj); cf.push_back(floatingCoupon->spread()); } else { *************** *** 62,65 **** --- 71,76 ---- cf.push_back(0.0); cf.push_back(0.0); + cf.push_back(0.0); + cf.push_back(0.0); } |