Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv7886/qlo
Modified Files:
enumclassctors.cpp enumclassctors.hpp pricingengines.cpp
typefactory.hpp
Log Message:
use same signature for all pricing engine constructors
Index: pricingengines.cpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/pricingengines.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** pricingengines.cpp 29 Jun 2006 15:02:31 -0000 1.8
--- pricingengines.cpp 10 Jul 2006 11:24:57 -0000 1.9
***************
*** 30,34 ****
PricingEngine::PricingEngine(const std::string &engineID)
{
! libraryObject_ = Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID);
}
--- 30,34 ----
PricingEngine::PricingEngine(const std::string &engineID)
{
! libraryObject_ = Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, 1);
}
Index: enumclassctors.cpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/enumclassctors.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** enumclassctors.cpp 4 Jul 2006 17:07:56 -0000 1.4
--- enumclassctors.cpp 10 Jul 2006 11:24:57 -0000 1.5
***************
*** 65,121 ****
}
! /* *** PricingEngine - without timesteps *** */
! boost::shared_ptr<QuantLib::PricingEngine> AB_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticBarrierEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> AC_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticCliquetEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ACGAPA_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticContinuousGeometricAveragePriceAsianEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ADA_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticDigitalAmericanEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ADGAPA_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticDiscreteGeometricAveragePriceAsianEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ADE_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticDividendEuropeanEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> AE_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticEuropeanEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> AP_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticPerformanceEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> BAWA_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::BaroneAdesiWhaleyApproximationEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> I_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::IntegralEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> BSA_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::BjerksundStenslandApproximationEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> PE_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine>();
}
! boost::shared_ptr<QuantLib::PricingEngine> SE_Engine() {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::StulzEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> FE_Engine() {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
--- 65,121 ----
}
! /* *** PricingEngine - timesteps ignored *** */
! boost::shared_ptr<QuantLib::PricingEngine> AB_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticBarrierEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> AC_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticCliquetEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ACGAPA_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticContinuousGeometricAveragePriceAsianEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ADA_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticDigitalAmericanEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ADGAPA_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticDiscreteGeometricAveragePriceAsianEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> ADE_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticDividendEuropeanEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> AE_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticEuropeanEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> AP_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::AnalyticPerformanceEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> BAWA_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::BaroneAdesiWhaleyApproximationEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> I_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::IntegralEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> BSA_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::BjerksundStenslandApproximationEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> PE_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine>();
}
! boost::shared_ptr<QuantLib::PricingEngine> SE_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
new QuantLib::StulzEngine);
}
! boost::shared_ptr<QuantLib::PricingEngine> FE_Engine(const long& timeSteps) {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
***************
*** 124,128 ****
QuantLib::VanillaOption::results>(underlyingEngine));
}
! boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine() {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
--- 124,128 ----
QuantLib::VanillaOption::results>(underlyingEngine));
}
! boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine(const long& timeSteps) {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
***************
*** 132,136 ****
QuantLib::VanillaOption::results>(underlyingEngine));
}
! boost::shared_ptr<QuantLib::PricingEngine> QE_Engine() {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
--- 132,136 ----
QuantLib::VanillaOption::results>(underlyingEngine));
}
! boost::shared_ptr<QuantLib::PricingEngine> QE_Engine(const long& timeSteps) {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
***************
*** 139,143 ****
QuantLib::VanillaOption::results>(underlyingEngine));
}
! boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine() {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
--- 139,143 ----
QuantLib::VanillaOption::results>(underlyingEngine));
}
! boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine(const long& timeSteps) {
boost::shared_ptr<QuantLib::VanillaOption::engine>
underlyingEngine(new QuantLib::AnalyticEuropeanEngine);
***************
*** 150,154 ****
}
! /* *** PricingEngine - with timesteps *** */
boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
--- 150,154 ----
}
! /* *** PricingEngine - timesteps required *** */
boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps) {
return boost::shared_ptr<QuantLib::PricingEngine> (
Index: enumclassctors.hpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/enumclassctors.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** enumclassctors.hpp 4 Jul 2006 17:07:56 -0000 1.4
--- enumclassctors.hpp 10 Jul 2006 11:24:57 -0000 1.5
***************
*** 58,81 ****
const double &strikeIncrement);
! /* *** PricingEngine - without timesteps *** */
! boost::shared_ptr<QuantLib::PricingEngine> AB_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> AC_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> ACGAPA_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> ADA_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> ADGAPA_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> ADE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> AE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> AP_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> BAWA_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> I_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> BSA_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> PE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> SE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> FE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> QE_Engine();
! boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine();
! /* *** PricingEngine - with timesteps *** */
boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps);
boost::shared_ptr<QuantLib::PricingEngine> CRR_Engine(const long& timeSteps);
--- 58,81 ----
const double &strikeIncrement);
! /* *** PricingEngine - timesteps ignored *** */
! boost::shared_ptr<QuantLib::PricingEngine> AB_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> AC_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> ACGAPA_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> ADA_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> ADGAPA_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> ADE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> AE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> AP_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> BAWA_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> I_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> BSA_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> PE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> SE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> FE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> QE_Engine(const long& timeSteps);
! boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine(const long& timeSteps);
! /* *** PricingEngine - timesteps required *** */
boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps);
boost::shared_ptr<QuantLib::PricingEngine> CRR_Engine(const long& timeSteps);
Index: typefactory.hpp
===================================================================
RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** typefactory.hpp 4 Jul 2006 17:07:56 -0000 1.16
--- typefactory.hpp 10 Jul 2006 11:24:57 -0000 1.17
***************
*** 138,143 ****
/* *** PricingEngine *** */
! typedef boost::shared_ptr<QuantLib::PricingEngine>(*PricingEngineConstructor1)();
! typedef boost::shared_ptr<QuantLib::PricingEngine>(*PricingEngineConstructor2)(
const long&);
--- 138,142 ----
/* *** PricingEngine *** */
! typedef boost::shared_ptr<QuantLib::PricingEngine>(*PricingEngineConstructor)(
const long&);
***************
*** 146,159 ****
private RegistryManager<QuantLib::PricingEngine, EnumClassRegistry> {
public:
- boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID) {
- PricingEngineConstructor1 pricingEngineConstructor =
- getType<std::string, PricingEngineConstructor1>(engineID);
- return pricingEngineConstructor();
- }
boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID,
const long& timeSteps) {
QL_REQUIRE(timeSteps>0, "timeSteps must be positive"); // FIXME move this validation into QL
! PricingEngineConstructor2 pricingEngineConstructor =
! getType<std::string, PricingEngineConstructor2>(engineID);
return pricingEngineConstructor(timeSteps);
}
--- 145,153 ----
private RegistryManager<QuantLib::PricingEngine, EnumClassRegistry> {
public:
boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID,
const long& timeSteps) {
QL_REQUIRE(timeSteps>0, "timeSteps must be positive"); // FIXME move this validation into QL
! PricingEngineConstructor pricingEngineConstructor =
! getType<std::string, PricingEngineConstructor>(engineID);
return pricingEngineConstructor(timeSteps);
}
***************
*** 214,219 ****
};
-
-
/* *** YieldTermStructure *** */
typedef boost::shared_ptr<QuantLib::YieldTermStructure>(*YieldTermStructureConstructor)(
--- 208,211 ----
|