Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv21122/qlo
Modified Files:
couponvectors.cpp couponvectors.hpp swaptionvolstructure.cpp
swaptionvolstructure.hpp
Log Message:
work in progress ...
Index: couponvectors.hpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/couponvectors.hpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** couponvectors.hpp 28 Aug 2006 15:56:17 -0000 1.20
--- couponvectors.hpp 5 Sep 2006 07:49:04 -0000 1.21
***************
*** 2,5 ****
--- 2,6 ----
/*
Copyright (C) 2006 Ferdinando Ametrano
+ Copyright (C) 2006 Giorgio Facchinetti
Copyright (C) 2005 Aurelien Chanudet
Index: couponvectors.cpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/couponvectors.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -C2 -d -r1.27 -r1.28
*** couponvectors.cpp 28 Aug 2006 15:56:17 -0000 1.27
--- couponvectors.cpp 5 Sep 2006 07:49:04 -0000 1.28
***************
*** 3,6 ****
--- 3,7 ----
Copyright (C) 2006 Ferdinando Ametrano
Copyright (C) 2006 Eric Ehlers
+ Copyright (C) 2006 Giorgio Facchinetti
Copyright (C) 2005 Aurelien Chanudet
Index: swaptionvolstructure.cpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/swaptionvolstructure.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** swaptionvolstructure.cpp 5 Sep 2006 07:25:38 -0000 1.17
--- swaptionvolstructure.cpp 5 Sep 2006 07:49:04 -0000 1.18
***************
*** 4,7 ****
--- 4,8 ----
Copyright (C) 2006 Silvia Frasson
Copyright (C) 2006 Mario Pucci
+ Copyright (C) 2006 Giorgio Facchinetti
This file is part of QuantLib, a free-software/open-source library
***************
*** 25,29 ****
#include <ql/Volatilities/swaptionconstantvol.hpp>
#include <ql/Volatilities/swaptionvolcube.hpp>
! #include <ql/Volatilities/swaptionvolcubebysabr.hpp>
namespace QuantLibAddin {
--- 26,30 ----
#include <ql/Volatilities/swaptionconstantvol.hpp>
#include <ql/Volatilities/swaptionvolcube.hpp>
!
namespace QuantLibAddin {
***************
*** 146,152 ****
//beta = QuantLib::Null<double>();
//maxError = 1E-4;
!
! libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>(
! new QuantLib::SwaptionVolatilityCubeBySabr(atmVol,
expiries,
lengths,
--- 147,152 ----
//beta = QuantLib::Null<double>();
//maxError = 1E-4;
! libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>(
! new QuantLib::SwaptionVolatilityCubeBySabr(atmVol,
expiries,
lengths,
***************
*** 167,170 ****
--- 167,207 ----
true,
maxTolerance));
+ const boost::shared_ptr<QuantLib::SwaptionVolatilityCubeBySabr>
+ volCube = boost::dynamic_pointer_cast<QuantLib::SwaptionVolatilityCubeBySabr>(libraryObject_);
+ sparseSabrParameters_=volCube->sparseSabrParameters();
+ denseSabrParameters_=volCube->denseSabrParameters();
+ }
+
+
+ std::vector<std::vector<boost::any> > getSabrParameters(QuantLib::Matrix & sabrParameters)
+ {
+ std::vector<std::vector<boost::any> > sparseSabrParameters;
+ QuantLib::Size numberOfColumn = 9;
+
+ std::vector<boost::any> headings(numberOfColumn);
+ headings[0]=std::string("Swap Lenght");
+ headings[1]=std::string("Expiriy");
+
+ headings[2]=std::string("Alpha");
+ headings[3]=std::string("Beta");
+ headings[4]=std::string("Nu");
+ headings[5]=std::string("Rho");
+ headings[6]=std::string("Forward");
+ headings[7]=std::string("Error");
+ headings[8]=std::string("Max Error");
+
+
+ sparseSabrParameters.push_back(headings);
+
+ for(QuantLib::Size i=0; i<sabrParameters.rows(); i++)
+ {
+ std::vector<boost::any> par(numberOfColumn, std::string("N/A"));
+ for(QuantLib::Size j=0; j<sabrParameters.columns(); j++)
+ {
+ par[j] = sabrParameters[i][j];
+ }
+ sparseSabrParameters.push_back(par);
+ }
+ return sparseSabrParameters;
}
Index: swaptionvolstructure.hpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/swaptionvolstructure.hpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** swaptionvolstructure.hpp 5 Sep 2006 07:26:45 -0000 1.15
--- swaptionvolstructure.hpp 5 Sep 2006 07:49:04 -0000 1.16
***************
*** 4,7 ****
--- 4,8 ----
Copyright (C) 2006 Silvia Frasson
Copyright (C) 2006 Mario Pucci
+ Copyright (C) 2006 Giorgio Facchinetti
This file is part of QuantLib, a free-software/open-source library
***************
*** 23,26 ****
--- 24,28 ----
#include <oh/objhandler.hpp>
#include <ql/swaptionvolstructure.hpp>
+ #include <ql/Volatilities/swaptionvolcubebysabr.hpp>
#include <qlo/termstructures.hpp>
#include <ql/Volatilities/swaptionvolmatrix.hpp>
***************
*** 76,80 ****
const boost::shared_ptr<QuantLib::Xibor>& iborIndexShortTenor);
};
!
class SwaptionVolatilityCubeBySabr : public SwaptionVolatilityStructure {
public:
--- 78,84 ----
const boost::shared_ptr<QuantLib::Xibor>& iborIndexShortTenor);
};
!
! std::vector<std::vector<boost::any> > getSabrParameters(QuantLib::Matrix & sabrParameters);
!
class SwaptionVolatilityCubeBySabr : public SwaptionVolatilityStructure {
public:
***************
*** 95,99 ****
--- 99,119 ----
double beta = QuantLib::Null<double>(),
double maxTolerance = 1E-4);
+
+ const std::vector<std::vector<boost::any> > getSparseSabrParameters()
+ {
+ return getSabrParameters(sparseSabrParameters_);
+ }
+ const std::vector<std::vector<boost::any> > getDenseSabrParameters()
+ {
+ return getSabrParameters(denseSabrParameters_);
+ }
+ protected:
+ QuantLib::Matrix sparseSabrParameters_;
+ QuantLib::Matrix denseSabrParameters_;
+
};
+
+
+
}
|