[QuantLibAddin-cvs] QuantLibAddin/qlo date.cpp, 1.1, 1.2 date.hpp, 1.3, 1.4
Brought to you by:
ericehlers,
nando
|
From: Ferdinando A. <na...@us...> - 2007-01-05 19:46:17
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv1910/qlo Modified Files: date.cpp date.hpp Log Message: new IMM functions Index: date.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/date.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** date.cpp 28 Nov 2006 19:54:22 -0000 1.1 --- date.cpp 5 Jan 2007 19:46:06 -0000 1.2 *************** *** 18,34 **** #include <qlo/date.hpp> namespace QuantLibAddin { ! std::vector<QuantLib::Date> qlNextIMMdates( ! const QuantLib::Date& d, ! const std::vector<bool>& mainCycle) { QuantLib::Size n = mainCycle.size(); ! std::vector<QuantLib::Date> results(n); ! results[0] = QuantLib::Date::nextIMMdate(d, mainCycle[0]); for (QuantLib::Size i=1; i<n; ++i) ! results[i] = QuantLib::Date::nextIMMdate( ! results[i-1]+1*QuantLib::Days, mainCycle[i]); ! return results; } --- 18,66 ---- #include <qlo/date.hpp> + #include <ql/settings.hpp> + + using QuantLib::Date; + using QuantLib::Days; + using std::vector; + using std::string; namespace QuantLibAddin { ! vector<Date> qlNextIMMdates(const Date& date, ! const vector<bool>& mainCycle) { ! Date d = (date == Date() ? ! Date(QuantLib::Settings::instance().evaluationDate()) : ! date); ! vector<Date> out(1, Date::nextIMMdate(d, mainCycle[0])); ! QuantLib::Size n = mainCycle.size(); ! if (n==0) return out; ! out.reserve(n); for (QuantLib::Size i=1; i<n; ++i) ! out.push_back(Date::nextIMMdate(out[i-1]+1*Days, mainCycle[i])); ! return out; ! } ! ! vector<string> qlNextIMMcodes(const Date& date, ! const vector<bool>& mainCycle) { ! vector<Date> immDates = qlNextIMMdates(date, mainCycle); ! vector<string> out; ! QuantLib::Size n = mainCycle.size(); ! if (n==0) return out; ! out.reserve(n); ! for (QuantLib::Size i=1; i<n; ++i) ! out.push_back(Date::IMMcode(immDates[i])); ! ! //Date d = (date == Date() ? ! // Date(QuantLib::Settings::instance().evaluationDate()) : ! // date); ! //vector<string> out(1, Date::nextIMMcode(d, mainCycle[0])); ! ! //QuantLib::Size n = mainCycle.size(); ! //if (n==0) return out; ! //out.reserve(n); ! //for (QuantLib::Size i=1; i<n; ++i) ! // out.push_back(Date::nextIMMcode(out[i-1], mainCycle[i])); ! return out; } Index: date.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/date.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** date.hpp 28 Nov 2006 19:54:22 -0000 1.3 --- date.hpp 5 Jan 2007 19:46:07 -0000 1.4 *************** *** 35,38 **** --- 35,42 ---- std::vector<QuantLib::Date> qlNextIMMdates(const QuantLib::Date& d, const std::vector<bool>& mainCycle); + + std::vector<std::string> qlNextIMMcodes(const QuantLib::Date& d, + const std::vector<bool>& mainCycle); + } |