quantlibaddin-cvs Mailing List for QuantLibAddin (Page 50)
Brought to you by:
ericehlers,
nando
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(51) |
Jun
(320) |
Jul
(210) |
Aug
(272) |
Sep
(169) |
Oct
(232) |
Nov
(138) |
Dec
(109) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(101) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Eric E. <eri...@us...> - 2006-07-03 10:27:27
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv18546/qlo Modified Files: termstructures.cpp Log Message: comment out code not presently used Index: termstructures.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/termstructures.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** termstructures.cpp 27 Jun 2006 09:54:19 -0000 1.12 --- termstructures.cpp 3 Jul 2006 10:27:21 -0000 1.13 *************** *** 48,65 **** } ! QuantLib::Cubic naturalCubic( ! QuantLib::CubicSpline::SecondDerivative, 0.0, ! QuantLib::CubicSpline::SecondDerivative, 0.0, ! false); ! QuantLib::Cubic cubic1( ! QuantLib::CubicSpline::SecondDerivative, 0.0, ! QuantLib::CubicSpline::FirstDerivative, 0.0, ! false); ! QuantLib::Cubic monotoneCubic( ! QuantLib::CubicSpline::SecondDerivative, 0.0, ! QuantLib::CubicSpline::FirstDerivative, 0.0, ! true); libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>( --- 48,65 ---- } ! //QuantLib::Cubic naturalCubic( ! // QuantLib::CubicSpline::SecondDerivative, 0.0, ! // QuantLib::CubicSpline::SecondDerivative, 0.0, ! // false); ! //QuantLib::Cubic cubic1( ! // QuantLib::CubicSpline::SecondDerivative, 0.0, ! // QuantLib::CubicSpline::FirstDerivative, 0.0, ! // false); ! //QuantLib::Cubic monotoneCubic( ! // QuantLib::CubicSpline::SecondDerivative, 0.0, ! // QuantLib::CubicSpline::FirstDerivative, 0.0, ! // true); libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>( |
|
From: Eric E. <eri...@us...> - 2006-07-03 07:11:05
|
Update of /cvsroot/quantlibaddin/QuantLibAddin In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv1250 Modified Files: todo.csv Log Message: Index: todo.csv =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/todo.csv,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** todo.csv 29 Jun 2006 10:47:32 -0000 1.23 --- todo.csv 3 Jul 2006 07:11:00 -0000 1.24 *************** *** 1,14 **** "project","subproject","task","status","hours","priority","comp date","comment" ,,,,,,, ! "QLA","Enumerations","implement autogeneration of source code for ECs","in progress",2,,, ! "QLA","Enumerations","remove PricingEngine, StrikedTypePayoff from EC and implement as normal objects","in progress",4,,, ! "QLA","Enumerations","transfer Calendar, DayCounter, Currency from ET -> EC","in progress",2,,, ! "QLA","Enumerations","implement EuriborXX as EC","in progress",2,,, "QLA","Enumerations","port gensrc EnumerationMember functionality from ETs -> ECs","in progress",4,,, "QLA","Enumerations","extend support for mixing ECs/Objects e.g. Calendar/JointCalendar, Index/EuriborXX","in progress",2,,, ! "QLA","Enumerations","remove Create<> code from QLO ctors Create<> code to appear only in autogenerated Addin code","cancelled",0,,,"this is required when QLO classes wrap ECs" "QLA","Enumerations","ET ctors use explicit ctors instead of default i.e. use ""HongKong::HKEx"" not ""HongKong""","in progress",0,,, ! "QLA","Enumerations","QLO ctors which switch on ETs implement for YieldTermStructure, LinearInterpolation, PricingEngine(?)","in progress",4,,,"done for 2D interpolation" "QLA","Enumerations","port ET/EC registry from QuantLibXL to ObjectHandler","on hold","- -",,,"requires redesign to allow multiple XLLs to share global Registry" "QLA","Enumerations","rename Enumerations->Enumerated Types (ETs), Complex Types->Enumerated Classes (ECs)","done",0,,"29/06/2006", ,,,,,,, --- 1,15 ---- "project","subproject","task","status","hours","priority","comp date","comment" ,,,,,,, ! ,,,,,,, "QLA","Enumerations","port gensrc EnumerationMember functionality from ETs -> ECs","in progress",4,,, + "QLA","Enumerations","transfer Calendar, DayCounter, Currency from ET -> EC","in progress",2,,, "QLA","Enumerations","extend support for mixing ECs/Objects e.g. Calendar/JointCalendar, Index/EuriborXX","in progress",2,,, ! "QLA","Enumerations","implement EuriborXX as EC","in progress",2,,, "QLA","Enumerations","ET ctors use explicit ctors instead of default i.e. use ""HongKong::HKEx"" not ""HongKong""","in progress",0,,, ! "QLA","Enumerations","QLO ctors which switch on ETs implement for YieldTermStructure, Extrapolator, PricingEngine(?)","in progress",4,,,"done for Extrapolator, PricingEngine" "QLA","Enumerations","port ET/EC registry from QuantLibXL to ObjectHandler","on hold","- -",,,"requires redesign to allow multiple XLLs to share global Registry" + "QLA","Enumerations","remove Create<> code from QLO ctors Create<> code to appear only in autogenerated Addin code","cancelled",0,,,"this is required when QLO classes wrap ECs" + "QLA","Enumerations","implement autogeneration of source code for ECs","done",2,,02/07/2006, + "QLA","Enumerations","remove PricingEngine, StrikedTypePayoff from EC and implement as normal objects","done",4,,"30/06/2006", "QLA","Enumerations","rename Enumerations->Enumerated Types (ETs), Complex Types->Enumerated Classes (ECs)","done",0,,"29/06/2006", ,,,,,,, *************** *** 33,37 **** ,,"raise exception if trigger parameter has value of #ERR!/#NULL!",,,,, ,,"calculate memory usage of repository",,,,, ! ,,"count the number of functions available in the addin",,,,, ,,"when input vector passed to loop function convert inputs on each loop iteration and catch exceptions one-by-one",,,,, ,,"Object to hold reference to CallingRange so we can support Object->isOrphaned() etc.",,,,, --- 34,38 ---- ,,"raise exception if trigger parameter has value of #ERR!/#NULL!",,,,, ,,"calculate memory usage of repository",,,,, ! ,,"count the number of functions available in the addin",,,,,"can you get this from the help file?" ,,"when input vector passed to loop function convert inputs on each loop iteration and catch exceptions one-by-one",,,,, ,,"Object to hold reference to CallingRange so we can support Object->isOrphaned() etc.",,,,, |
|
From: Eric E. <eri...@us...> - 2006-07-02 15:50:33
|
Update of /cvsroot/quantlibaddin/QuantLibAddin In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv6411 Modified Files: QuantLibObjects.vcproj QuantLibObjects_vc8.vcproj Log Message: autogenerate source for enumerated classes Index: QuantLibObjects_vc8.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/QuantLibObjects_vc8.vcproj,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** QuantLibObjects_vc8.vcproj 29 Jun 2006 16:52:12 -0000 1.25 --- QuantLibObjects_vc8.vcproj 2 Jul 2006 15:50:25 -0000 1.26 *************** *** 327,336 **** <Files> <Filter ! Name="Autogenerated" > <File RelativePath="qlo\enumtyperegistry.cpp" > </File> <File RelativePath="qlo\vo_bonds.cpp" --- 327,360 ---- <Files> <Filter ! Name="Enumerations" > + <File + RelativePath="qlo\enumclassregistry.cpp" + > + </File> <File RelativePath="qlo\enumtyperegistry.cpp" > </File> + <File + RelativePath="qlo\enumclassctors.cpp" + > + </File> + <File + RelativePath="qlo\enumclassctors.hpp" + > + </File> + <File + RelativePath="qlo\typefactory.hpp" + > + </File> + <File + RelativePath="qlo\typeregistry.hpp" + > + </File> + </Filter> + <Filter + Name="ValueObjects" + > <File RelativePath="qlo\vo_bonds.cpp" *************** *** 815,822 **** </File> <File - RelativePath="qlo\enumclassregistry.cpp" - > - </File> - <File RelativePath="qlo\exercise.cpp" > --- 839,842 ---- *************** *** 863,874 **** </File> <File - RelativePath="qlo\typefactory.hpp" - > - </File> - <File - RelativePath="qlo\typeregistry.hpp" - > - </File> - <File RelativePath="qlo\utilities.cpp" > --- 883,886 ---- Index: QuantLibObjects.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/QuantLibObjects.vcproj,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** QuantLibObjects.vcproj 29 Jun 2006 16:52:12 -0000 1.18 --- QuantLibObjects.vcproj 2 Jul 2006 15:50:25 -0000 1.19 *************** *** 332,340 **** <Files> <Filter ! Name="Autogenerated" Filter=""> <File RelativePath="qlo\enumtyperegistry.cpp"> </File> <File RelativePath="qlo\vo_bonds.cpp"> --- 332,359 ---- <Files> <Filter ! Name="Enumerations" Filter=""> <File + RelativePath="qlo\enumclassregistry.cpp"> + </File> + <File RelativePath="qlo\enumtyperegistry.cpp"> </File> + <File + RelativePath="qlo\enumclassctors.cpp"> + </File> + <File + RelativePath="qlo\enumclassctors.hpp"> + </File> + <File + RelativePath="qlo\typefactory.hpp"> + </File> + <File + RelativePath="qlo\typeregistry.hpp"> + </File> + </Filter> + <Filter + Name="ValueObjects" + Filter=""> <File RelativePath="qlo\vo_bonds.cpp"> *************** *** 705,711 **** </File> <File - RelativePath="qlo\enumclassregistry.cpp"> - </File> - <File RelativePath="qlo\conversions.cpp"> </File> --- 724,727 ---- *************** *** 747,756 **** </File> <File - RelativePath="qlo\typefactory.hpp"> - </File> - <File - RelativePath="qlo\typeregistry.hpp"> - </File> - <File RelativePath="qlo\utilities.cpp"> </File> --- 763,766 ---- |
|
From: Eric E. <eri...@us...> - 2006-07-02 15:50:32
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv6411/qlo Modified Files: .cvsignore Added Files: enumclassctors.cpp enumclassctors.hpp Removed Files: enumclassregistry.cpp Log Message: autogenerate source for enumerated classes Index: .cvsignore =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/.cvsignore,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** .cvsignore 29 Jun 2006 16:52:12 -0000 1.11 --- .cvsignore 2 Jul 2006 15:50:26 -0000 1.12 *************** *** 8,11 **** --- 8,12 ---- stamp-h1 enumtyperegistry.cpp + enumclassregistry.cpp qladdin.hpp vo_bonds.*pp --- enumclassregistry.cpp DELETED --- --- NEW FILE: enumclassctors.cpp --- /* Copyright (C) 2005 Plamen Neykov Copyright (C) 2006 Eric Ehlers This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email qua...@li... The license is also available online at http://quantlib.org/html/license.html This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #include <qlo/enumclassctors.hpp> namespace QuantLibAddin { /* *** StrikedTypePayoff - strike only *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff( const QuantLib::Option::Type& optionType, const double &strike) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::PlainVanillaPayoff(optionType, strike)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> ASSETORNOTHING_Payoff( const QuantLib::Option::Type& optionType, const double &strike) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::AssetOrNothingPayoff(optionType, strike)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> PERCENTAGESTRIKE_Payoff( const QuantLib::Option::Type& optionType, const double &moneyness) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::PercentageStrikePayoff(optionType, moneyness)); } /* *** StrikedTypePayoff - strike & strikeIncrement *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff( const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::SuperSharePayoff(optionType, strike, strikeIncrement)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> CASHORNOTHING_Payoff( const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::CashOrNothingPayoff(optionType, strike, strikeIncrement)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> GAP_Payoff( const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::GapPayoff(optionType, strike, strikeIncrement)); } /* *** 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); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::ForwardEngine<QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); } boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine() { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::ForwardPerformanceEngine <QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); } boost::shared_ptr<QuantLib::PricingEngine> QE_Engine() { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::QuantoEngine<QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); } boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine() { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); boost::shared_ptr<QuantLib::ForwardVanillaOption::engine> forwardEngine( new QuantLib::ForwardEngine<QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::QuantoEngine<QuantLib::ForwardVanillaOption::arguments, QuantLib::ForwardVanillaOption::results>(forwardEngine)); } /* *** PricingEngine - with timesteps *** */ boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::AdditiveEQPBinomialTree>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> CRR_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::CoxRossRubinstein>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> FDA_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::FDAmericanEngine(timeSteps, timeSteps-1)); } boost::shared_ptr<QuantLib::PricingEngine> FDE_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::FDEuropeanEngine(timeSteps, timeSteps-1)); } boost::shared_ptr<QuantLib::PricingEngine> FDB_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::FDBermudanEngine(timeSteps, timeSteps-1)); } boost::shared_ptr<QuantLib::PricingEngine> JR_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::JarrowRudd>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> LR_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::LeisenReimer>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> TIAN_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::Tian>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> TRI_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::Trigeorgis>(timeSteps)); } /* *** Extrapolator - 1D *** */ boost::shared_ptr<QuantLib::Extrapolator> LinearInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::LinearInterpolation( xBegin, xEnd, yBegin)); } boost::shared_ptr<QuantLib::Extrapolator> BackwardFlatInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::BackwardFlatInterpolation( xBegin, xEnd, yBegin)); } boost::shared_ptr<QuantLib::Extrapolator> ForwardFlatInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::ForwardFlatInterpolation( xBegin, xEnd, yBegin)); } /* *** Extrapolator - 2D *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::BilinearInterpolation( xBegin, xEnd, yBegin, yEnd, zData)); } boost::shared_ptr<QuantLib::Extrapolator> BicubicSpline_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::BicubicSpline( xBegin, xEnd, yBegin, yEnd, zData)); } } --- NEW FILE: enumclassctors.hpp --- /* Copyright (C) 2005 Plamen Neykov Copyright (C) 2006 Eric Ehlers This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email qua...@li... The license is also available online at http://quantlib.org/html/license.html This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #ifndef qla_enumclassctors_hpp #define qla_enumclassctors_hpp #include <qlo/typefactory.hpp> #include <ql/option.hpp> #include <ql/Instruments/payoffs.hpp> #include <ql/Instruments/quantoforwardvanillaoption.hpp> #include <ql/PricingEngines/all.hpp> #include <ql/Math/backwardflatinterpolation.hpp> #include <ql/Math/forwardflatinterpolation.hpp> #include <ql/Math/linearinterpolation.hpp> #include <ql/Math/bilinearinterpolation.hpp> #include <ql/Math/bicubicsplineinterpolation.hpp> namespace QuantLibAddin { /* *** StrikedTypePayoff - strike only *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff( const QuantLib::Option::Type& optionType, const double &strike); boost::shared_ptr<QuantLib::StrikedTypePayoff> ASSETORNOTHING_Payoff( const QuantLib::Option::Type& optionType, const double &strike); boost::shared_ptr<QuantLib::StrikedTypePayoff> PERCENTAGESTRIKE_Payoff( const QuantLib::Option::Type& optionType, const double &moneyness); /* *** StrikedTypePayoff - strike & strikeIncrement *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff( const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement); boost::shared_ptr<QuantLib::StrikedTypePayoff> CASHORNOTHING_Payoff( const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement); boost::shared_ptr<QuantLib::StrikedTypePayoff> GAP_Payoff( const QuantLib::Option::Type& optionType, const double &strike, 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); boost::shared_ptr<QuantLib::PricingEngine> FDA_Engine(const long& timeSteps); boost::shared_ptr<QuantLib::PricingEngine> FDE_Engine(const long& timeSteps); boost::shared_ptr<QuantLib::PricingEngine> FDB_Engine(const long& timeSteps); boost::shared_ptr<QuantLib::PricingEngine> JR_Engine(const long& timeSteps); boost::shared_ptr<QuantLib::PricingEngine> LR_Engine(const long& timeSteps); boost::shared_ptr<QuantLib::PricingEngine> TIAN_Engine(const long& timeSteps); boost::shared_ptr<QuantLib::PricingEngine> TRI_Engine(const long& timeSteps); /* *** Extrapolator - 1D *** */ boost::shared_ptr<QuantLib::Extrapolator> LinearInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin); boost::shared_ptr<QuantLib::Extrapolator> BackwardFlatInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin); boost::shared_ptr<QuantLib::Extrapolator> ForwardFlatInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin); /* *** Extrapolator - 2D *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData); boost::shared_ptr<QuantLib::Extrapolator> BicubicSpline_Extrapolator( dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData); } #endif |
|
From: Eric E. <eri...@us...> - 2006-07-02 15:50:31
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv6411/gensrc/metadata Added Files: enumclasses.xml enumtypes.xml Removed Files: enumerations.xml Log Message: autogenerate source for enumerated classes --- enumerations.xml DELETED --- --- NEW FILE: enumtypes.xml --- <root> <enumTypeCopyright> Copyright (C) 2005 Plamen Neykov Copyright (C) 2005, 2006 Eric Ehlers Copyright (C) 2006 Katiuscia Manzoni Copyright (C) 2006 Ferdinando Ametrano </enumTypeCopyright> <Enumerations> <Enumeration> <type>QuantLib::PriceType</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Bid</string> <value>QuantLib::Bid</value> </EnumerationDefinition> <EnumerationDefinition> <string>Ask</string> <value>QuantLib::Ask</value> </EnumerationDefinition> <EnumerationDefinition> <string>Last</string> <value>QuantLib::Last</value> </EnumerationDefinition> <EnumerationDefinition> <string>Close</string> <value>QuantLib::Close</value> </EnumerationDefinition> <EnumerationDefinition> <string>Mid</string> <value>QuantLib::Mid</value> </EnumerationDefinition> <EnumerationDefinition> <string>Mid Equivalent</string> <value>QuantLib::MidEquivalent</value> </EnumerationDefinition> <EnumerationDefinition> <string>Mid Robust</string> <value>QuantLib::MidRobust</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Position::Type</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Long</string> <value>QuantLib::Position::Long</value> </EnumerationDefinition> <EnumerationDefinition> <string>Short</string> <value>QuantLib::Position::Short</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Average::Type</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Arithmetic</string> <value>QuantLib::Average::Arithmetic</value> </EnumerationDefinition> <EnumerationDefinition> <string>Geometric</string> <value>QuantLib::Average::Geometric</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Barrier::Type</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>DownIn</string> <value>QuantLib::Barrier::DownIn</value> </EnumerationDefinition> <EnumerationDefinition> <string>DownOut</string> <value>QuantLib::Barrier::DownOut</value> </EnumerationDefinition> <EnumerationDefinition> <string>UpIn</string> <value>QuantLib::Barrier::UpIn</value> </EnumerationDefinition> <EnumerationDefinition> <string>UpOut</string> <value>QuantLib::Barrier::UpOut</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::BusinessDayConvention</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Following</string> <value>QuantLib::Following</value> </EnumerationDefinition> <EnumerationDefinition> <string>Modified Following</string> <value>QuantLib::ModifiedFollowing</value> </EnumerationDefinition> <EnumerationDefinition> <string>Preceding</string> <value>QuantLib::Preceding</value> </EnumerationDefinition> <EnumerationDefinition> <string>Modified Preceding</string> <value>QuantLib::ModifiedPreceding</value> </EnumerationDefinition> <EnumerationDefinition> <string>Month End Reference</string> <value>QuantLib::MonthEndReference</value> </EnumerationDefinition> <EnumerationDefinition> <string>Unadjusted Month End</string> <value>QuantLib::MonthEndReference</value> </EnumerationDefinition> <EnumerationDefinition> <string>Unadjusted</string> <value>QuantLib::Unadjusted</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Calendar</type> <constructor>false</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Argentina</string> <value>QuantLib::Argentina()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Argentina::Merval</string> <value>QuantLib::Argentina(QuantLib::Argentina::Merval)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Australia</string> <value>QuantLib::Australia()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Brazil</string> <value>QuantLib::Brazil()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Canada</string> <value>QuantLib::Canada()</value> </EnumerationDefinition> <EnumerationDefinition> <string>China</string> <value>QuantLib::China()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CzechRepublic</string> <value>QuantLib::CzechRepublic()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CzechRepublic::PSE</string> <value>QuantLib::CzechRepublic(QuantLib::CzechRepublic::PSE)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Denmark</string> <value>QuantLib::Denmark()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Finland</string> <value>QuantLib::Finland()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Germany</string> <value>QuantLib::Germany()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Germany::Eurex</string> <value>QuantLib::Germany(QuantLib::Germany::Eurex)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Germany::FrankfurtStockExchange</string> <value>QuantLib::Germany(QuantLib::Germany::FrankfurtStockExchange)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Germany::Settlement</string> <value>QuantLib::Germany(QuantLib::Germany::Settlement)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Germany::Xetra</string> <value>QuantLib::Germany(QuantLib::Germany::Xetra)</value> </EnumerationDefinition> <EnumerationDefinition> <string>HongKong</string> <value>QuantLib::HongKong()</value> </EnumerationDefinition> <EnumerationDefinition> <string>HongKong::HKEx</string> <value>QuantLib::HongKong(QuantLib::HongKong::HKEx)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Hungary</string> <value>QuantLib::Hungary()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Iceland</string> <value>QuantLib::Iceland()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Iceland::ICEX</string> <value>QuantLib::Iceland(QuantLib::Iceland::ICEX)</value> </EnumerationDefinition> <EnumerationDefinition> <string>India</string> <value>QuantLib::India()</value> </EnumerationDefinition> <EnumerationDefinition> <string>India::NSE</string> <value>QuantLib::India(QuantLib::India::NSE)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Indonesia</string> <value>QuantLib::Indonesia()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Indonesia::BEJ</string> <value>QuantLib::Indonesia(QuantLib::Indonesia::BEJ)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Italy</string> <value>QuantLib::Italy()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Italy::Exchange</string> <value>QuantLib::Italy(QuantLib::Italy::Exchange)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Italy::Settlement</string> <value>QuantLib::Italy(QuantLib::Italy::Settlement)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Japan</string> <value>QuantLib::Japan()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Mexico</string> <value>QuantLib::Mexico()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Mexico::BMV</string> <value>QuantLib::Mexico(QuantLib::Mexico::BMV)</value> </EnumerationDefinition> <EnumerationDefinition> <string>NewZealand</string> <value>QuantLib::NewZealand()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Norway</string> <value>QuantLib::Norway()</value> </EnumerationDefinition> <EnumerationDefinition> <string>NullCalendar</string> <value>QuantLib::NullCalendar()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Poland</string> <value>QuantLib::Poland()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SaudiArabia</string> <value>QuantLib::SaudiArabia()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Singapore</string> <value>QuantLib::Singapore()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Singapore::SGX</string> <value>QuantLib::Singapore(QuantLib::Singapore::SGX)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Slovakia</string> <value>QuantLib::Slovakia()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Slovakia::BSSE</string> <value>QuantLib::Slovakia(QuantLib::Slovakia::BSSE)</value> </EnumerationDefinition> <EnumerationDefinition> <string>SouthAfrica</string> <value>QuantLib::SouthAfrica()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SouthKorea</string> <value>QuantLib::SouthKorea()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SouthKorea::KRX</string> <value>QuantLib::SouthKorea(QuantLib::SouthKorea::KRX)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Sweden</string> <value>QuantLib::Sweden()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Switzerland</string> <value>QuantLib::Switzerland()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Taiwan</string> <value>QuantLib::Taiwan()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Taiwan::TSEC</string> <value>QuantLib::Taiwan(QuantLib::Taiwan::TSEC)</value> </EnumerationDefinition> <EnumerationDefinition> <string>TARGET</string> <value>QuantLib::TARGET()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Turkey</string> <value>QuantLib::Turkey()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Ukraine</string> <value>QuantLib::Ukraine()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Ukraine::USE</string> <value>QuantLib::Ukraine(QuantLib::Ukraine::USE)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedKingdom</string> <value>QuantLib::UnitedKingdom()</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedKingdom::Exchange</string> <value>QuantLib::UnitedKingdom(QuantLib::UnitedKingdom::Exchange)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedKingdom::Metals</string> <value>QuantLib::UnitedKingdom(QuantLib::UnitedKingdom::Metals)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedKingdom::Settlement</string> <value>QuantLib::UnitedKingdom(QuantLib::UnitedKingdom::Settlement)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedStates</string> <value>QuantLib::UnitedStates()</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedStates::GovernmentBond</string> <value>QuantLib::UnitedStates(QuantLib::UnitedStates::GovernmentBond)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedStates::NERC</string> <value>QuantLib::UnitedStates(QuantLib::UnitedStates::NERC)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedStates::NYSE</string> <value>QuantLib::UnitedStates(QuantLib::UnitedStates::NYSE)</value> </EnumerationDefinition> <EnumerationDefinition> <string>UnitedStates::Settlement</string> <value>QuantLib::UnitedStates(QuantLib::UnitedStates::Settlement)</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::CapFloor::Type</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Cap</string> <value>QuantLib::CapFloor::Cap</value> </EnumerationDefinition> <EnumerationDefinition> <string>Floor</string> <value>QuantLib::CapFloor::Floor</value> </EnumerationDefinition> <EnumerationDefinition> <string>Collar</string> <value>QuantLib::CapFloor::Collar</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Settlement::Type</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Cash</string> <value>QuantLib::Settlement::Cash</value> </EnumerationDefinition> <EnumerationDefinition> <string>Physical</string> <value>QuantLib::Settlement::Physical</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Compounding</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Simple</string> <value>QuantLib::Simple</value> </EnumerationDefinition> <EnumerationDefinition> <string>Compounded</string> <value>QuantLib::Compounded</value> </EnumerationDefinition> <EnumerationDefinition> <string>Continuous</string> <value>QuantLib::Continuous</value> </EnumerationDefinition> <EnumerationDefinition> <string>SimpleThenCompounded</string> <value>QuantLib::SimpleThenCompounded</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Currency</type> <constructor>false</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>ARS</string> <value>QuantLib::ARSCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ATS</string> <value>QuantLib::ATSCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>AUD</string> <value>QuantLib::AUDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>BDT</string> <value>QuantLib::BDTCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>BEF</string> <value>QuantLib::BEFCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>BGL</string> <value>QuantLib::BGLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>BRL</string> <value>QuantLib::BRLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>BYR</string> <value>QuantLib::BYRCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CAD</string> <value>QuantLib::CADCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CHF</string> <value>QuantLib::CHFCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CLP</string> <value>QuantLib::CLPCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CNY</string> <value>QuantLib::CNYCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>COP</string> <value>QuantLib::COPCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CYP</string> <value>QuantLib::CYPCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>CZK</string> <value>QuantLib::CZKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>DEM</string> <value>QuantLib::DEMCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>DKK</string> <value>QuantLib::DKKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>EEK</string> <value>QuantLib::EEKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ESP</string> <value>QuantLib::ESPCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>EUR</string> <value>QuantLib::EURCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>FIM</string> <value>QuantLib::FIMCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>FRF</string> <value>QuantLib::FRFCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>GBP</string> <value>QuantLib::GBPCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>GRD</string> <value>QuantLib::GRDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>HKD</string> <value>QuantLib::HKDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>HUF</string> <value>QuantLib::HUFCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>IEP</string> <value>QuantLib::IEPCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ILS</string> <value>QuantLib::ILSCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>INR</string> <value>QuantLib::INRCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>IQD</string> <value>QuantLib::IQDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>IRR</string> <value>QuantLib::IRRCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ISK</string> <value>QuantLib::ISKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ITL</string> <value>QuantLib::ITLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>JPY</string> <value>QuantLib::JPYCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>KRW</string> <value>QuantLib::KRWCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>KWD</string> <value>QuantLib::KWDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>LTL</string> <value>QuantLib::LTLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>LUF</string> <value>QuantLib::LUFCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>LVL</string> <value>QuantLib::LVLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>MTL</string> <value>QuantLib::MTLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>MXN</string> <value>QuantLib::MXNCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>NLG</string> <value>QuantLib::NLGCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>NOK</string> <value>QuantLib::NOKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>NPR</string> <value>QuantLib::NPRCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>NZD</string> <value>QuantLib::NZDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>PKR</string> <value>QuantLib::PKRCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>PLN</string> <value>QuantLib::PLNCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>PTE</string> <value>QuantLib::PTECurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ROL</string> <value>QuantLib::ROLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SAR</string> <value>QuantLib::SARCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SEK</string> <value>QuantLib::SEKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SGD</string> <value>QuantLib::SGDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SIT</string> <value>QuantLib::SITCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>SKK</string> <value>QuantLib::SKKCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>THB</string> <value>QuantLib::THBCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>TRL</string> <value>QuantLib::TRLCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>TTD</string> <value>QuantLib::TTDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>TWD</string> <value>QuantLib::TWDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>USD</string> <value>QuantLib::USDCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>VEB</string> <value>QuantLib::VEBCurrency()</value> </EnumerationDefinition> <EnumerationDefinition> <string>ZAR</string> <value>QuantLib::ZARCurrency()</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::DayCounter</type> <constructor>false</constructor> <EnumerationDefinitions> <!-- ISDA 2000 Definition Annex Article 4 Section 4.16--> <!-- (a) --> <EnumerationDefinition> <string>1/1</string> <value>QuantLib::OneDayCounter()</value> </EnumerationDefinition> <!-- (b) --> <EnumerationDefinition> <string>Actual/Actual::ISDA</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISDA)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Actual/Actual</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISDA)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Actual/365</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISDA)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Act/365</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISDA)</value> </EnumerationDefinition> <EnumerationDefinition> <string>A/365</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISDA)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Act/Act</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISDA)</value> </EnumerationDefinition> <!-- (c) --> <EnumerationDefinition> <string>Actual/365 (Fixed)</string> <value>QuantLib::Actual365Fixed()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Act/365 (Fixed)</string> <value>QuantLib::Actual365Fixed()</value> </EnumerationDefinition> <EnumerationDefinition> <string>A/365 (Fixed)</string> <value>QuantLib::Actual365Fixed()</value> </EnumerationDefinition> <EnumerationDefinition> <string>A/365F</string> <value>QuantLib::Actual365Fixed()</value> </EnumerationDefinition> <!-- (d) --> <EnumerationDefinition> <string>Actual/360</string> <value>QuantLib::Actual360()</value> </EnumerationDefinition> <EnumerationDefinition> <string>Act/360</string> <value>QuantLib::Actual360()</value> </EnumerationDefinition> <EnumerationDefinition> <string>A/360</string> <value>QuantLib::Actual360()</value> </EnumerationDefinition> <!-- (e) --> <EnumerationDefinition> <string>30/360::BondBasis</string> <value>QuantLib::Thirty360(QuantLib::Thirty360::BondBasis)</value> </EnumerationDefinition> <EnumerationDefinition> <string>30/360</string> <value>QuantLib::Thirty360(QuantLib::Thirty360::BondBasis)</value> </EnumerationDefinition> <EnumerationDefinition> <string>360/360</string> <value>QuantLib::Thirty360(QuantLib::Thirty360::BondBasis)</value> </EnumerationDefinition> <!-- (f) --> <EnumerationDefinition> <string>30/360::EurobondBasis</string> <value>QuantLib::Thirty360(QuantLib::Thirty360::EurobondBasis)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Thirty360::EurobondBasis</string> <value>QuantLib::Thirty360(QuantLib::Thirty360::EurobondBasis)</value> </EnumerationDefinition> <!-- NON-ISDA --> <EnumerationDefinition> <string>Actual/Actual::ISMA</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISMA)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Actual/Actual::Bond</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::ISMA)</value> </EnumerationDefinition> <!-- NON-ISDA --> <EnumerationDefinition> <string>Actual/Actual::AFB</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::AFB)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Actual/Actual::Euro</string> <value>QuantLib::ActualActual(QuantLib::ActualActual::AFB)</value> </EnumerationDefinition> <!-- NON-ISDA --> <EnumerationDefinition> <string>30/360::Italian</string> <value>QuantLib::Thirty360(QuantLib::Thirty360::Italian)</value> </EnumerationDefinition> <!-- NON-ISDA QuantLib specific --> <EnumerationDefinition> <string>Simple</string> <value>QuantLib::SimpleDayCounter()</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Frequency</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Once</string> <value>QuantLib::Once</value> </EnumerationDefinition> <EnumerationDefinition> <string>Annual</string> <value>QuantLib::Annual</value> </EnumerationDefinition> <EnumerationDefinition> <string>Semiannual</string> <value>QuantLib::Semiannual</value> </EnumerationDefinition> <EnumerationDefinition> <string>Every4Month</string> <value>QuantLib::EveryFourthMonth</value> </EnumerationDefinition> <EnumerationDefinition> <string>Quarterly</string> <value>QuantLib::Quarterly</value> </EnumerationDefinition> <EnumerationDefinition> <string>Bimonthly</string> <value>QuantLib::Bimonthly</value> </EnumerationDefinition> <EnumerationDefinition> <string>Monthly</string> <value>QuantLib::Monthly</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::Option::Type</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Call</string> <value>QuantLib::Option::Call</value> </EnumerationDefinition> <EnumerationDefinition> <string>Put</string> <value>QuantLib::Option::Put</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::TimeUnit</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>Days</string> <value>QuantLib::Days</value> </EnumerationDefinition> <EnumerationDefinition> <string>Months</string> <value>QuantLib::Months</value> </EnumerationDefinition> <EnumerationDefinition> <string>Weeks</string> <value>QuantLib::Weeks</value> </EnumerationDefinition> <EnumerationDefinition> <string>Years</string> <value>QuantLib::Years</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::CubicSpline::BoundaryCondition</type> <constructor>false</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>NotAKnot</string> <value>QuantLib::CubicSpline::BoundaryCondition(QuantLib::CubicSpline::NotAKnot)</value> </EnumerationDefinition> <EnumerationDefinition> <string>FirstDerivative</string> <value>QuantLib::CubicSpline::BoundaryCondition(QuantLib::CubicSpline::FirstDerivative)</value> </EnumerationDefinition> <EnumerationDefinition> <string>SecondDerivative</string> <value>QuantLib::CubicSpline::BoundaryCondition(QuantLib::CubicSpline::SecondDerivative)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Periodic</string> <value>QuantLib::CubicSpline::BoundaryCondition(QuantLib::CubicSpline::Periodic)</value> </EnumerationDefinition> <EnumerationDefinition> <string>Lagrange</string> <value>QuantLib::CubicSpline::BoundaryCondition(QuantLib::CubicSpline::Lagrange)</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::JointCalendarRule</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>JoinHolidays</string> <value>QuantLib::JoinHolidays</value> </EnumerationDefinition> <EnumerationDefinition> <string>JoinBusinessDays</string> <value>QuantLib::JoinBusinessDays</value> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> </Enumerations> </root> --- NEW FILE: enumclasses.xml --- <root> <enumClassCopyright> Copyright (C) 2005 Plamen Neykov Copyright (C) 2005, 2006 Eric Ehlers Copyright (C) 2006 Katiuscia Manzoni Copyright (C) 2006 Ferdinando Ametrano </enumClassCopyright> <Enumerations> <Enumeration> <type>QuantLib::Extrapolator</type> <EnumerationDefinitions> <EnumerationDefinition> <string>Linear</string> <value>LinearInterpolation_Extrapolator</value> <libraryClass>QuantLib::LinearInterpolation</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>BackwardFlat</string> <value>BackwardFlatInterpolation_Extrapolator</value> <libraryClass>QuantLib::BackwardFlatInterpolation</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>ForwardFlat</string> <value>ForwardFlatInterpolation_Extrapolator</value> <libraryClass>QuantLib::ForwardFlatInterpolation</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>BiLinear</string> <value>BilinearInterpolation_Extrapolator</value> <libraryClass>QuantLib::BilinearInterpolation</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>BiCubic</string> <value>BicubicSpline_Extrapolator</value> <libraryClass>QuantLib::BicubicSpline</libraryClass> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::PricingEngine</type> <EnumerationDefinitions> <EnumerationDefinition> <string>AB</string> <value>AB_Engine</value> <libraryClass>QuantLib::AnalyticBarrierEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>AC</string> <value>AC_Engine</value> <libraryClass>QuantLib::AnalyticCliquetEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>ACGAPA</string> <value>ACGAPA_Engine</value> <libraryClass>QuantLib::AnalyticContinuousGeometricAveragePriceAsianEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>ADA</string> <value>ADA_Engine</value> <libraryClass>QuantLib::AnalyticDigitalAmericanEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>ADGAPA</string> <value>ADGAPA_Engine</value> <libraryClass>QuantLib::AnalyticDiscreteGeometricAveragePriceAsianEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>ADE</string> <value>ADE_Engine</value> <libraryClass>QuantLib::AnalyticDividendEuropeanEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>AE</string> <value>AE_Engine</value> <libraryClass>QuantLib::AnalyticEuropeanEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>AP</string> <value>AP_Engine</value> <libraryClass>QuantLib::AnalyticPerformanceEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>BAWA</string> <value>BAWA_Engine</value> <libraryClass>QuantLib::BaroneAdesiWhaleyApproximationEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>AEQPB</string> <value>AEQPB_Engine</value> <libraryClass>QuantLib::AdditiveEQPBinomialTree</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>CRR</string> <value>CRR_Engine</value> <libraryClass>QuantLib::CoxRossRubinstein</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>I</string> <value>I_Engine</value> <libraryClass>QuantLib::IntegralEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>FDA</string> <value>FDA_Engine</value> <libraryClass>QuantLib::FDAmericanEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>FDE</string> <value>FDE_Engine</value> <libraryClass>QuantLib::FDEuropeanEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>FDB</string> <value>FDB_Engine</value> <libraryClass>QuantLib::FDBermudanEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>JR</string> <value>JR_Engine</value> <libraryClass>QuantLib::JarrowRudd</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>LR</string> <value>LR_Engine</value> <libraryClass>QuantLib::LeisenReimer</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>TIAN</string> <value>TIAN_Engine</value> <libraryClass>QuantLib::Tian</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>TRI</string> <value>TRI_Engine</value> <libraryClass>QuantLib::Trigeorgis</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>BSA</string> <value>BSA_Engine</value> <libraryClass>QuantLib::BjerksundStenslandApproximationEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>PE</string> <value>PE_Engine</value> <libraryClass>QuantLib::PricingEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>SE</string> <value>SE_Engine</value> <libraryClass>QuantLib::StulzEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>FE</string> <value>FE_Engine</value> <libraryClass>QuantLib::ForwardEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>FPE</string> <value>FPE_Engine</value> <libraryClass>QuantLib::ForwardPerformanceEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>QE</string> <value>QE_Engine</value> <libraryClass>QuantLib::QuantoEngine</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>QFE</string> <value>QFE_Engine</value> <libraryClass>QuantLib::QuantoForwardEngine</libraryClass> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> <Enumeration> <type>QuantLib::StrikedTypePayoff</type> <EnumerationDefinitions> <EnumerationDefinition> <string>AssetOrNothing</string> <value>ASSETORNOTHING_Payoff</value> <libraryClass>QuantLib::AssetOrNothingPayoff</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>CashOrNothing</string> <value>CASHORNOTHING_Payoff</value> <libraryClass>QuantLib::CashOrNothingPayoff</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>Gap</string> <value>GAP_Payoff</value> <libraryClass>QuantLib::GapPayoff</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>PercentageStrike</string> <value>PERCENTAGESTRIKE_Payoff</value> <libraryClass>QuantLib::PercentageStrikePayoff</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>Vanilla</string> <value>VANILLA_Payoff</value> <libraryClass>QuantLib::PlainVanillaPayoff</libraryClass> </EnumerationDefinition> <EnumerationDefinition> <string>SuperShare</string> <value>SUPERSHARE_Payoff</value> <libraryClass>QuantLib::SuperSharePayoff</libraryClass> </EnumerationDefinition> </EnumerationDefinitions> </Enumeration> </Enumerations> </root> |
|
From: Eric E. <eri...@us...> - 2006-07-02 15:50:30
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv6411/gensrc Modified Files: Makefile.vc gensrc.vcproj gensrc_vc8.vcproj Log Message: autogenerate source for enumerated classes Index: Makefile.vc =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/Makefile.vc,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Makefile.vc 26 Jun 2006 21:31:02 -0000 1.14 --- Makefile.vc 2 Jul 2006 15:50:26 -0000 1.15 *************** *** 15,19 **** metadata\date.xml \ metadata\daycounter.xml \ ! metadata\enumerations.xml \ metadata\exercise.xml \ metadata\forwardrateagreement.xml \ --- 15,20 ---- metadata\date.xml \ metadata\daycounter.xml \ ! metadata\enumclasses.xml \ ! metadata\enumtypes.xml \ metadata\exercise.xml \ metadata\forwardrateagreement.xml \ Index: gensrc_vc8.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/gensrc_vc8.vcproj,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** gensrc_vc8.vcproj 29 Jun 2006 16:52:12 -0000 1.14 --- gensrc_vc8.vcproj 2 Jul 2006 15:50:26 -0000 1.15 *************** *** 84,88 **** </File> <File ! RelativePath="metadata\enumerations.xml" > </File> --- 84,92 ---- </File> <File ! RelativePath="metadata\enumclasses.xml" ! > ! </File> ! <File ! RelativePath="metadata\enumtypes.xml" > </File> Index: gensrc.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/gensrc.vcproj,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** gensrc.vcproj 29 Jun 2006 16:52:12 -0000 1.9 --- gensrc.vcproj 2 Jul 2006 15:50:26 -0000 1.10 *************** *** 58,62 **** </File> <File ! RelativePath="metadata\enumerations.xml"> </File> <File --- 58,65 ---- </File> <File ! RelativePath="metadata\enumclasses.xml"> ! </File> ! <File ! RelativePath="metadata\enumtypes.xml"> </File> <File |
|
From: Eric E. <eri...@us...> - 2006-06-30 18:07:00
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv30161/qlo Modified Files: typefactory.hpp Log Message: refactor getType() function Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** typefactory.hpp 30 Jun 2006 17:29:34 -0000 1.12 --- typefactory.hpp 30 Jun 2006 18:06:57 -0000 1.13 *************** *** 31,51 **** class RegistryManager { protected: ! void* getType(const std::string& id) { ! TypeMapPtr type_map = getTypeMap(); ! std::string idUpper = QuantLib::uppercase(id); ! for (TypeMap::iterator i = type_map->begin(); i != type_map->end(); i++) ! if (QuantLib::uppercase(i->first) == idUpper) return i->second; ! throw ObjHandler::Exception("Unknown id for Type: " + id); ! } ! ! // alternative to getType - on failure return null pointer ! // instead of throwing exception ! T *checkType(const std::string& id) { TypeMapPtr type_map = getTypeMap(); std::string idUpper = QuantLib::uppercase(id); for (TypeMap::iterator i = type_map->begin(); i != type_map->end(); i++) if (QuantLib::uppercase(i->first) == idUpper) ! return static_cast<T*>(i->second); ! return 0; } private: --- 31,45 ---- class RegistryManager { protected: ! template<typename ConstructorSignature> ! ConstructorSignature getType(const std::string& id, bool failIfNotFound = true) { TypeMapPtr type_map = getTypeMap(); std::string idUpper = QuantLib::uppercase(id); for (TypeMap::iterator i = type_map->begin(); i != type_map->end(); i++) if (QuantLib::uppercase(i->first) == idUpper) ! return static_cast<ConstructorSignature>(i->second); ! if (failIfNotFound) ! throw ObjHandler::Exception("Unknown id for Type: " + id); ! else ! return 0; } private: *************** *** 64,76 **** }; template<typename T> class Create : private RegistryManager<T, EnumTypeRegistry> { public: T operator()(const std::string& id) { ! return *(static_cast<T*>(this->getType(id))); } ! using RegistryManager<T, EnumTypeRegistry>::checkType; }; template<> class Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> > : --- 58,79 ---- }; + /* *** Enumerated Types *** */ template<typename T> class Create : private RegistryManager<T, EnumTypeRegistry> { public: T operator()(const std::string& id) { ! return *(getType<T*>(id)); } ! using RegistryManager<T, EnumTypeRegistry>::getType; }; + /* *** Enumerated Classes *** */ + + /* *** StrikedTypePayoff *** */ + typedef boost::shared_ptr<QuantLib::StrikedTypePayoff>(*StrikedTypePayoffConstructor1)( + const QuantLib::Option::Type&, const double&); + typedef boost::shared_ptr<QuantLib::StrikedTypePayoff>(*StrikedTypePayoffConstructor2)( + const QuantLib::Option::Type&, const double&, const double&); + template<> class Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> > : *************** *** 81,88 **** const QuantLib::Option::Type& optionType, const double& strike) { ! boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&) = ! (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&)) ! getType(payoffID); ! return ctor(optionType, strike); } boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()( --- 84,90 ---- const QuantLib::Option::Type& optionType, const double& strike) { ! StrikedTypePayoffConstructor1 strikedTypePayoffConstructor = ! getType<StrikedTypePayoffConstructor1>(payoffID); ! return strikedTypePayoffConstructor(optionType, strike); } boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()( *************** *** 91,123 **** const double& strike, const double& strikeIncrement) { ! boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&, const double&) = ! (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&, const double&)) ! getType(payoffID); ! return ctor(optionType, strike, strikeIncrement); } }; template<> class Create<boost::shared_ptr<QuantLib::PricingEngine> > : 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 ! boost::shared_ptr<QuantLib::PricingEngine>(*ctor)(const long&) = ! (boost::shared_ptr<QuantLib::PricingEngine>(*)(const long&)) getType(engineID); ! return ctor(timeSteps); ! } ! boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID) { ! boost::shared_ptr<QuantLib::PricingEngine>(*ctor)() = ! (boost::shared_ptr<QuantLib::PricingEngine>(*)()) getType(engineID); ! return ctor(); } }; typedef const std::vector<double>::const_iterator dbl_itr; ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor1D)( dbl_itr&, dbl_itr&, dbl_itr&); ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor2D)( dbl_itr&, dbl_itr&, dbl_itr&, dbl_itr&, const QuantLib::Matrix&); --- 93,130 ---- const double& strike, const double& strikeIncrement) { ! StrikedTypePayoffConstructor2 strikedTypePayoffConstructor = ! getType<StrikedTypePayoffConstructor2>(payoffID); ! return strikedTypePayoffConstructor(optionType, strike, strikeIncrement); } }; + /* *** PricingEngine *** */ + typedef boost::shared_ptr<QuantLib::PricingEngine>(*PricingEngineConstructor1)(); + typedef boost::shared_ptr<QuantLib::PricingEngine>(*PricingEngineConstructor2)( + const long&); + template<> class Create<boost::shared_ptr<QuantLib::PricingEngine> > : private RegistryManager<QuantLib::PricingEngine, EnumClassRegistry> { public: + boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID) { + PricingEngineConstructor1 pricingEngineConstructor = + getType<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<PricingEngineConstructor2>(engineID); ! return pricingEngineConstructor(timeSteps); } }; + /* *** Extrapolator *** */ typedef const std::vector<double>::const_iterator dbl_itr; ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor1)( dbl_itr&, dbl_itr&, dbl_itr&); ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor2)( dbl_itr&, dbl_itr&, dbl_itr&, dbl_itr&, const QuantLib::Matrix&); *************** *** 129,134 **** const std::string& extrapolatorID, dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { ! ExtrapolatorConstructor1D extrapolatorConstructor = ! static_cast<ExtrapolatorConstructor1D>(getType(extrapolatorID)); return extrapolatorConstructor(xBegin, xEnd, yBegin); } --- 136,141 ---- const std::string& extrapolatorID, dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { ! ExtrapolatorConstructor1 extrapolatorConstructor = ! getType<ExtrapolatorConstructor1>(extrapolatorID); return extrapolatorConstructor(xBegin, xEnd, yBegin); } *************** *** 137,142 **** dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { ! ExtrapolatorConstructor2D extrapolatorConstructor = ! static_cast<ExtrapolatorConstructor2D>(getType(extrapolatorID)); return extrapolatorConstructor(xBegin, xEnd, yBegin, yEnd, zData); } --- 144,149 ---- dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { ! ExtrapolatorConstructor2 extrapolatorConstructor = ! getType<ExtrapolatorConstructor2>(extrapolatorID); return extrapolatorConstructor(xBegin, xEnd, yBegin, yEnd, zData); } |
|
From: Eric E. <eri...@us...> - 2006-06-30 17:29:38
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv16181/qlo Modified Files: typefactory.hpp Log Message: implement using directive for checkType() Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** typefactory.hpp 30 Jun 2006 14:12:05 -0000 1.11 --- typefactory.hpp 30 Jun 2006 17:29:34 -0000 1.12 *************** *** 53,63 **** static TypeMapPtr type_map; if(!type_map) { ! QL_REQUIRE( ! RegistryClass::instance().getAllTypesMap().find(typeid(T).name()) != ! RegistryClass::instance().getAllTypesMap().end(), "Error retrieving Enumeration from Registry - the type '" << typeid(T).name() << "' is not available!"); ! type_map = ! RegistryClass::instance().getAllTypesMap().find(typeid(T).name())->second; } return type_map; --- 53,62 ---- static TypeMapPtr type_map; if(!type_map) { ! AllTypeMap::const_iterator i = ! RegistryClass::instance().getAllTypesMap().find(typeid(T).name()); ! QL_REQUIRE(i != RegistryClass::instance().getAllTypesMap().end(), "Error retrieving Enumeration from Registry - the type '" << typeid(T).name() << "' is not available!"); ! type_map = i->second; } return type_map; *************** *** 71,77 **** return *(static_cast<T*>(this->getType(id))); } ! T *checkType(const std::string& id) { ! return RegistryManager<T, EnumTypeRegistry>::checkType(id); ! } }; --- 70,74 ---- return *(static_cast<T*>(this->getType(id))); } ! using RegistryManager<T, EnumTypeRegistry>::checkType; }; |
|
From: Eric E. <eri...@us...> - 2006-06-30 14:12:08
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv1747/qlo Modified Files: enumclassregistry.cpp interpolation.cpp interpolation.hpp typefactory.hpp Log Message: implement LinearInterpolation as Enumerated Class Index: interpolation.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/interpolation.hpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** interpolation.hpp 27 Jun 2006 09:53:43 -0000 1.14 --- interpolation.hpp 30 Jun 2006 14:12:05 -0000 1.15 *************** *** 26,35 **** namespace QuantLibAddin { - enum LinearInterpolationType { - Linear, - BackwardFlat, - ForwardFlat - }; - class Extrapolator : public ObjHandler::LibraryObject<QuantLib::Extrapolator> { --- 26,29 ---- *************** *** 40,44 **** class LinearInterpolation : public Interpolation { public: ! LinearInterpolation(const LinearInterpolationType t, const std::vector<double>& x, const std::vector<double>& y); --- 34,38 ---- class LinearInterpolation : public Interpolation { public: ! LinearInterpolation(const std::string &linearInterpolationType, const std::vector<double>& x, const std::vector<double>& y); Index: interpolation.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/interpolation.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** interpolation.cpp 27 Jun 2006 09:53:43 -0000 1.11 --- interpolation.cpp 30 Jun 2006 14:12:05 -0000 1.12 *************** *** 30,34 **** LinearInterpolation::LinearInterpolation( ! const LinearInterpolationType t, const std::vector<double>& x, const std::vector<double>& y) : x_(x), y_(y) --- 30,34 ---- LinearInterpolation::LinearInterpolation( ! const std::string &linearInterpolationType, const std::vector<double>& x, const std::vector<double>& y) : x_(x), y_(y) *************** *** 36,63 **** QL_REQUIRE(x.size()==y.size(), "unmatched x/y"); ! switch (t) { ! case Linear: ! libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>( ! new QuantLib::LinearInterpolation(x_.begin(), ! x_.end(), ! y_.begin())); ! break; ! case BackwardFlat: ! libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>( ! new QuantLib::BackwardFlatInterpolation(x_.begin(), ! x_.end(), ! y_.begin())); ! break; ! case ForwardFlat: ! libraryObject_ = boost::shared_ptr<QuantLib::Extrapolator>( ! new QuantLib::ForwardFlatInterpolation(x_.begin(), ! x_.end(), ! y_.begin())); ! break; ! default: ! QL_FAIL("Unknown LinearInterpolationType"); ! } ! ! } --- 36,41 ---- QL_REQUIRE(x.size()==y.size(), "unmatched x/y"); ! libraryObject_ = Create<boost::shared_ptr<QuantLib::Extrapolator> >() ! (linearInterpolationType, x_.begin(), x_.end(), y_.begin()); } Index: enumclassregistry.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/enumclassregistry.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** enumclassregistry.cpp 29 Jun 2006 16:52:12 -0000 1.3 --- enumclassregistry.cpp 30 Jun 2006 14:12:05 -0000 1.4 *************** *** 23,26 **** --- 23,29 ---- #include <ql/Instruments/quantoforwardvanillaoption.hpp> #include <ql/PricingEngines/all.hpp> + #include <ql/Math/backwardflatinterpolation.hpp> + #include <ql/Math/forwardflatinterpolation.hpp> + #include <ql/Math/linearinterpolation.hpp> #include <ql/Math/bilinearinterpolation.hpp> #include <ql/Math/bicubicsplineinterpolation.hpp> *************** *** 38,42 **** namespace QuantLibAddin { ! /* *** StrikedTypePayoff - one input*** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff( const QuantLib::Option::Type& optionType, --- 41,45 ---- namespace QuantLibAddin { ! /* *** StrikedTypePayoff - strike only *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff( const QuantLib::Option::Type& optionType, *************** *** 57,61 **** new QuantLib::PercentageStrikePayoff(optionType, moneyness)); } ! /* *** StrikedTypePayoff - two inputs*** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff( const QuantLib::Option::Type& optionType, --- 60,64 ---- new QuantLib::PercentageStrikePayoff(optionType, moneyness)); } ! /* *** StrikedTypePayoff - strike & strikeIncrement *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff( const QuantLib::Option::Type& optionType, *************** *** 80,84 **** } ! /* *** PricingEngine - no timesteps *** */ boost::shared_ptr<QuantLib::PricingEngine> AB_Engine() { return boost::shared_ptr<QuantLib::PricingEngine> ( --- 83,87 ---- } ! /* *** PricingEngine - without timesteps *** */ boost::shared_ptr<QuantLib::PricingEngine> AB_Engine() { return boost::shared_ptr<QuantLib::PricingEngine> ( *************** *** 165,169 **** } ! /* *** PricingEngine - timesteps *** */ boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( --- 168,172 ---- } ! /* *** PricingEngine - with timesteps *** */ boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( *************** *** 203,212 **** } ! /* *** Extrapolator *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( ! const std::vector<double>::const_iterator& xBegin, ! const std::vector<double>::const_iterator& xEnd, ! const std::vector<double>::const_iterator& yBegin, ! const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( --- 206,231 ---- } ! /* *** Extrapolator - 1D *** */ ! boost::shared_ptr<QuantLib::Extrapolator> LinearInterpolation_Extrapolator( ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { ! return boost::shared_ptr<QuantLib::Extrapolator>( ! new QuantLib::LinearInterpolation( ! xBegin, xEnd, yBegin)); ! } ! boost::shared_ptr<QuantLib::Extrapolator> BackwardFlatInterpolation_Extrapolator( ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { ! return boost::shared_ptr<QuantLib::Extrapolator>( ! new QuantLib::BackwardFlatInterpolation( ! xBegin, xEnd, yBegin)); ! } ! boost::shared_ptr<QuantLib::Extrapolator> ForwardFlatInterpolation_Extrapolator( ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { ! return boost::shared_ptr<QuantLib::Extrapolator>( ! new QuantLib::ForwardFlatInterpolation( ! xBegin, xEnd, yBegin)); ! } ! /* *** Extrapolator - 2D *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( *************** *** 215,222 **** } boost::shared_ptr<QuantLib::Extrapolator> BicubicSpline_Extrapolator( ! const std::vector<double>::const_iterator& xBegin, ! const std::vector<double>::const_iterator& xEnd, ! const std::vector<double>::const_iterator& yBegin, ! const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( --- 234,238 ---- } boost::shared_ptr<QuantLib::Extrapolator> BicubicSpline_Extrapolator( ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( *************** *** 267,270 **** --- 283,289 ---- REG_ENUM(QuantLib::Extrapolator, + MAP("Linear", LinearInterpolation_Extrapolator); + MAP("BackwardFlat", BackwardFlatInterpolation_Extrapolator); + MAP("ForwardFlat", ForwardFlatInterpolation_Extrapolator); MAP("BiLinear", BilinearInterpolation_Extrapolator); MAP("BiCubic", BicubicSpline_Extrapolator); Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** typefactory.hpp 30 Jun 2006 13:28:26 -0000 1.10 --- typefactory.hpp 30 Jun 2006 14:12:05 -0000 1.11 *************** *** 119,128 **** }; ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor)( ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const QuantLib::Matrix&); template<> --- 119,127 ---- }; ! typedef const std::vector<double>::const_iterator dbl_itr; ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor1D)( ! dbl_itr&, dbl_itr&, dbl_itr&); ! typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor2D)( ! dbl_itr&, dbl_itr&, dbl_itr&, dbl_itr&, const QuantLib::Matrix&); template<> *************** *** 132,142 **** boost::shared_ptr<QuantLib::Extrapolator> operator() ( const std::string& extrapolatorID, ! const std::vector<double>::const_iterator& xBegin, ! const std::vector<double>::const_iterator& xEnd, ! const std::vector<double>::const_iterator& yBegin, ! const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { ! ExtrapolatorConstructor extrapolatorConstructor = ! static_cast<ExtrapolatorConstructor>(getType(extrapolatorID)); return extrapolatorConstructor(xBegin, xEnd, yBegin, yEnd, zData); } --- 131,145 ---- boost::shared_ptr<QuantLib::Extrapolator> operator() ( const std::string& extrapolatorID, ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin) { ! ExtrapolatorConstructor1D extrapolatorConstructor = ! static_cast<ExtrapolatorConstructor1D>(getType(extrapolatorID)); ! return extrapolatorConstructor(xBegin, xEnd, yBegin); ! } ! boost::shared_ptr<QuantLib::Extrapolator> operator() ( ! const std::string& extrapolatorID, ! dbl_itr& xBegin, dbl_itr& xEnd, dbl_itr& yBegin, dbl_itr& yEnd, const QuantLib::Matrix& zData) { ! ExtrapolatorConstructor2D extrapolatorConstructor = ! static_cast<ExtrapolatorConstructor2D>(getType(extrapolatorID)); return extrapolatorConstructor(xBegin, xEnd, yBegin, yEnd, zData); } |
|
From: Eric E. <eri...@us...> - 2006-06-30 14:12:08
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv1747/gensrc/metadata Modified Files: enumerations.xml interpolation.xml Log Message: implement LinearInterpolation as Enumerated Class Index: enumerations.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/enumerations.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** enumerations.xml 29 Jun 2006 10:14:44 -0000 1.15 --- enumerations.xml 30 Jun 2006 14:12:03 -0000 1.16 *************** *** 58,80 **** </Enumeration> - <Enumeration> - <type>QuantLibAddin::LinearInterpolationType</type> - <constructor>true</constructor> - <EnumerationDefinitions> - <EnumerationDefinition> - <string>Linear</string> - <value>QuantLibAddin::Linear</value> - </EnumerationDefinition> - <EnumerationDefinition> - <string>BackwardFlat</string> - <value>QuantLibAddin::BackwardFlat</value> - </EnumerationDefinition> - <EnumerationDefinition> - <string>ForwardFlat</string> - <value>QuantLibAddin::ForwardFlat</value> - </EnumerationDefinition> - </EnumerationDefinitions> - </Enumeration> - <Enumeration documentationOnly='true'> <type>QuantLib::Extrapolator</type> --- 58,61 ---- Index: interpolation.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/interpolation.xml,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** interpolation.xml 29 Jun 2006 10:14:44 -0000 1.16 --- interpolation.xml 30 Jun 2006 14:12:03 -0000 1.17 *************** *** 194,198 **** <ParameterList> <Parameters> ! <Parameter name='type' enumeration='QuantLibAddin::LinearInterpolationType'> <type>string</type> <tensorRank>scalar</tensorRank> --- 194,198 ---- <ParameterList> <Parameters> ! <Parameter name='linearInterpolationType'> <type>string</type> <tensorRank>scalar</tensorRank> |
|
From: Eric E. <eri...@us...> - 2006-06-30 13:28:30
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv15639/qlo Modified Files: typefactory.hpp Log Message: validation for timeSteps Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** typefactory.hpp 29 Jun 2006 16:52:12 -0000 1.9 --- typefactory.hpp 30 Jun 2006 13:28:26 -0000 1.10 *************** *** 83,101 **** const std::string& payoffID, const QuantLib::Option::Type& optionType, ! const double& input1) { boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&) = (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&)) getType(payoffID); ! return ctor(optionType, input1); } boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()( const std::string& payoffID, const QuantLib::Option::Type& optionType, ! const double& input1, ! const double& input2) { boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&, const double&) = (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&, const double&)) getType(payoffID); ! return ctor(optionType, input1, input2); } }; --- 83,101 ---- const std::string& payoffID, const QuantLib::Option::Type& optionType, ! const double& strike) { boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&) = (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&)) getType(payoffID); ! return ctor(optionType, strike); } boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()( const std::string& payoffID, const QuantLib::Option::Type& optionType, ! const double& strike, ! const double& strikeIncrement) { boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&, const double&) = (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&, const double&)) getType(payoffID); ! return ctor(optionType, strike, strikeIncrement); } }; *************** *** 106,110 **** public: boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID, ! const long& timeSteps) { boost::shared_ptr<QuantLib::PricingEngine>(*ctor)(const long&) = (boost::shared_ptr<QuantLib::PricingEngine>(*)(const long&)) getType(engineID); --- 106,111 ---- 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 boost::shared_ptr<QuantLib::PricingEngine>(*ctor)(const long&) = (boost::shared_ptr<QuantLib::PricingEngine>(*)(const long&)) getType(engineID); *************** *** 118,121 **** --- 119,129 ---- }; + typedef boost::shared_ptr<QuantLib::Extrapolator>(*ExtrapolatorConstructor)( + const std::vector<double>::const_iterator&, + const std::vector<double>::const_iterator&, + const std::vector<double>::const_iterator&, + const std::vector<double>::const_iterator&, + const QuantLib::Matrix&); + template<> class Create<boost::shared_ptr<QuantLib::Extrapolator> > : *************** *** 129,145 **** const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { ! boost::shared_ptr<QuantLib::Extrapolator>(*ctor)( ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const QuantLib::Matrix&) = ! (boost::shared_ptr<QuantLib::Extrapolator>(*)( ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const std::vector<double>::const_iterator&, ! const QuantLib::Matrix&)) getType(extrapolatorID); ! return ctor(xBegin, xEnd, yBegin, yEnd, zData); } }; --- 137,143 ---- const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { ! ExtrapolatorConstructor extrapolatorConstructor = ! static_cast<ExtrapolatorConstructor>(getType(extrapolatorID)); ! return extrapolatorConstructor(xBegin, xEnd, yBegin, yEnd, zData); } }; |
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25490/qlo Modified Files: .cvsignore asianoption.cpp asianoption.hpp barrieroption.cpp barrieroption.hpp cliquetoption.cpp cliquetoption.hpp dividendvanillaoption.cpp dividendvanillaoption.hpp enumclassregistry.cpp europeanoption.cpp europeanoption.hpp forwardvanillaoption.cpp forwardvanillaoption.hpp quantoforwardvanillaoption.cpp quantoforwardvanillaoption.hpp quantovanillaoption.cpp quantovanillaoption.hpp typefactory.hpp vanillaoption.cpp vanillaoption.hpp Added Files: payoffs.cpp payoffs.hpp Log Message: implement separate class for StrikedTypePayoff Index: dividendvanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/dividendvanillaoption.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** dividendvanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 --- dividendvanillaoption.cpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 27,39 **** DividendVanillaOption::DividendVanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const std::vector < QuantLib::Date > ÷ndDates, const std::vector < double > ÷nds, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::DividendVanillaOption>( new QuantLib::DividendVanillaOption( --- 27,35 ---- DividendVanillaOption::DividendVanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const std::vector < QuantLib::Date > ÷ndDates, const std::vector < double > ÷nds, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::DividendVanillaOption>( new QuantLib::DividendVanillaOption( Index: quantoforwardvanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantoforwardvanillaoption.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** quantoforwardvanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 --- quantoforwardvanillaoption.cpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 38,44 **** const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { --- 38,42 ---- const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { *************** *** 50,56 **** new QuantLib::SimpleQuote(correlation))); - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::QuantoForwardVanillaOption( --- 48,51 ---- Index: forwardvanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/forwardvanillaoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** forwardvanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.4 --- forwardvanillaoption.cpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 29,39 **** const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::ForwardVanillaOption( --- 29,35 ---- const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::ForwardVanillaOption( Index: cliquetoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/cliquetoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** cliquetoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 --- cliquetoption.hpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 29,35 **** CliquetOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const QuantLib::Option::Type &optionType, ! const double &strike, ! const QuantLib::Date &expiryDate, const std::vector < QuantLib::Date > &resetDates, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 29,34 ---- CliquetOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::PercentageStrikePayoff> &payoff, ! const boost::shared_ptr < QuantLib::EuropeanExercise > &exercise, const std::vector < QuantLib::Date > &resetDates, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); Index: barrieroption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/barrieroption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** barrieroption.cpp 29 Jun 2006 15:02:31 -0000 1.4 --- barrieroption.cpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 29,41 **** const double &rebate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::BarrierOption( --- 29,36 ---- const double &rebate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::BarrierOption( Index: vanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/vanillaoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** vanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.4 --- vanillaoption.cpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 32,43 **** VanillaOption::VanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::VanillaOption( --- 32,38 ---- VanillaOption::VanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::VanillaOption( Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** typefactory.hpp 29 Jun 2006 15:02:31 -0000 1.8 --- typefactory.hpp 29 Jun 2006 16:52:12 -0000 1.9 *************** *** 80,91 **** private RegistryManager<QuantLib::StrikedTypePayoff, EnumClassRegistry> { public: ! boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()(const std::string& optionTypeID, ! const std::string& payoffID, ! const double& input1, ! const double& input2 = 0.) { ! boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const std::string&, const double&, const double&) = ! (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const std::string&, const double&, const double&)) getType(payoffID); ! return ctor(optionTypeID, input1, input2); } }; --- 80,101 ---- private RegistryManager<QuantLib::StrikedTypePayoff, EnumClassRegistry> { public: ! boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()( ! const std::string& payoffID, ! const QuantLib::Option::Type& optionType, ! const double& input1) { ! boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&) = ! (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&)) getType(payoffID); ! return ctor(optionType, input1); ! } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()( ! const std::string& payoffID, ! const QuantLib::Option::Type& optionType, ! const double& input1, ! const double& input2) { ! boost::shared_ptr<QuantLib::StrikedTypePayoff>(*ctor)(const QuantLib::Option::Type&, const double&, const double&) = ! (boost::shared_ptr<QuantLib::StrikedTypePayoff>(*)(const QuantLib::Option::Type&, const double&, const double&)) ! getType(payoffID); ! return ctor(optionType, input1, input2); } }; Index: europeanoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/europeanoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** europeanoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 --- europeanoption.hpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 29,35 **** EuropeanOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 29,33 ---- EuropeanOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); Index: asianoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/asianoption.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** asianoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 --- asianoption.cpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 29,41 **** const QuantLib::Average::Type &averageType, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::ContinuousAveragingAsianOption( --- 29,36 ---- const QuantLib::Average::Type &averageType, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::ContinuousAveragingAsianOption( *************** *** 53,65 **** const std::vector < QuantLib::Date > &fixingDates, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::DiscreteAveragingAsianOption( --- 48,55 ---- const std::vector < QuantLib::Date > &fixingDates, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::DiscreteAveragingAsianOption( Index: quantoforwardvanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantoforwardvanillaoption.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** quantoforwardvanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.5 --- quantoforwardvanillaoption.hpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 35,41 **** const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 35,39 ---- const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); Index: .cvsignore =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/.cvsignore,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** .cvsignore 29 Jun 2006 13:06:24 -0000 1.10 --- .cvsignore 29 Jun 2006 16:52:12 -0000 1.11 *************** *** 20,23 **** --- 20,24 ---- vo_mathf.*pp vo_options.*pp + vo_payoffs.*pp vo_pricingengines.*pp vo_processes.*pp Index: cliquetoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/cliquetoption.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** cliquetoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 --- cliquetoption.cpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 28,41 **** CliquetOption::CliquetOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const QuantLib::Option::Type &optionType, ! const double &strike, ! const QuantLib::Date &expiryDate, const std::vector < QuantLib::Date > &resetDates, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - - boost::shared_ptr<QuantLib::PercentageStrikePayoff> payoff( - new QuantLib::PercentageStrikePayoff(optionType, strike)); - boost::shared_ptr<QuantLib::EuropeanExercise> exercise( - new QuantLib::EuropeanExercise(expiryDate)); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::CliquetOption( --- 28,35 ---- CliquetOption::CliquetOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::PercentageStrikePayoff> &payoff, ! const boost::shared_ptr < QuantLib::EuropeanExercise > &exercise, const std::vector < QuantLib::Date > &resetDates, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::CliquetOption( --- NEW FILE: payoffs.cpp --- /* Copyright (C) 2006 Eric Ehlers This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email qua...@li... The license is also available online at http://quantlib.org/html/license.html This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #if defined(HAVE_CONFIG_H) #include <qlo/config.hpp> #endif #include <qlo/payoffs.hpp> #include <qlo/typefactory.hpp> namespace QuantLibAddin { StrikedTypePayoff::StrikedTypePayoff( const std::string& payoffID, const QuantLib::Option::Type& optionType, const double &strike) { libraryObject_ = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()( payoffID, optionType, strike); } StrikedTypePayoff::StrikedTypePayoff( const std::string& payoffID, const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement) { libraryObject_ = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()( payoffID, optionType, strike, strikeIncrement); } } Index: enumclassregistry.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/enumclassregistry.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** enumclassregistry.cpp 29 Jun 2006 15:02:31 -0000 1.2 --- enumclassregistry.cpp 29 Jun 2006 16:52:12 -0000 1.3 *************** *** 38,90 **** namespace QuantLibAddin { ! /* *** StrikedTypePayoff *** */ ! boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff(const std::string& optionTypeID, ! const double &input1, ! const double &input2) { ! QuantLib::Option::Type type = ! Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::SuperSharePayoff(type, input1, input2)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff(const std::string& optionTypeID, ! const double &input1, ! const double &input2) { ! QuantLib::Option::Type type = ! Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::PlainVanillaPayoff(type, input1)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> PERCENTAGESTRIKE_Payoff(const std::string& optionTypeID, ! const double &input1, ! const double &input2) { ! QuantLib::Option::Type type = ! Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::PercentageStrikePayoff(type, input1)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> ASSETORNOTHING_Payoff(const std::string& optionTypeID, ! const double &input1, ! const double &input2) { ! QuantLib::Option::Type type = ! Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::AssetOrNothingPayoff(type, input1)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> CASHORNOTHING_Payoff(const std::string& optionTypeID, ! const double &input1, ! const double &input2) { ! QuantLib::Option::Type type = ! Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::CashOrNothingPayoff(type, input1, input2)); } ! ! boost::shared_ptr<QuantLib::StrikedTypePayoff> GAP_Payoff(const std::string& optionTypeID, ! const double &input1, ! const double &input2) { ! QuantLib::Option::Type type = ! Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::GapPayoff(type, input1, input2)); } --- 38,81 ---- namespace QuantLibAddin { ! /* *** StrikedTypePayoff - one input*** */ ! boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff( ! const QuantLib::Option::Type& optionType, ! const double &strike) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::PlainVanillaPayoff(optionType, strike)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> ASSETORNOTHING_Payoff( ! const QuantLib::Option::Type& optionType, ! const double &strike) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::AssetOrNothingPayoff(optionType, strike)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> PERCENTAGESTRIKE_Payoff( ! const QuantLib::Option::Type& optionType, ! const double &moneyness) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::PercentageStrikePayoff(optionType, moneyness)); } ! /* *** StrikedTypePayoff - two inputs*** */ ! boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff( ! const QuantLib::Option::Type& optionType, ! const double &strike, ! const double &strikeIncrement) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::SuperSharePayoff(optionType, strike, strikeIncrement)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> CASHORNOTHING_Payoff( ! const QuantLib::Option::Type& optionType, ! const double &strike, ! const double &strikeIncrement) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::CashOrNothingPayoff(optionType, strike, strikeIncrement)); } ! boost::shared_ptr<QuantLib::StrikedTypePayoff> GAP_Payoff( ! const QuantLib::Option::Type& optionType, ! const double &strike, ! const double &strikeIncrement) { return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( ! new QuantLib::GapPayoff(optionType, strike, strikeIncrement)); } Index: forwardvanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/forwardvanillaoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** forwardvanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 --- forwardvanillaoption.hpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 31,37 **** const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 31,35 ---- const long &resetDate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); Index: europeanoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/europeanoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** europeanoption.cpp 29 Jun 2006 15:02:31 -0000 1.4 --- europeanoption.cpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 32,42 **** EuropeanOption::EuropeanOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::EuropeanOption( --- 32,38 ---- EuropeanOption::EuropeanOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::EuropeanOption( Index: asianoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/asianoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** asianoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 --- asianoption.hpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 30,36 **** const QuantLib::Average::Type &averageType, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 30,34 ---- const QuantLib::Average::Type &averageType, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); *************** *** 45,51 **** const std::vector < QuantLib::Date > &fixingDates, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 43,47 ---- const std::vector < QuantLib::Date > &fixingDates, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- NEW FILE: payoffs.hpp --- /* Copyright (C) 2006 Eric Ehlers This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email qua...@li... The license is also available online at http://quantlib.org/html/license.html This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #ifndef qla_payoffs_hpp #define qla_payoffs_hpp #include <oh/objhandler.hpp> #include <ql/Instruments/payoffs.hpp> namespace QuantLibAddin { class StrikedTypePayoff : public ObjHandler::LibraryObject<QuantLib::StrikedTypePayoff> { public: StrikedTypePayoff( const std::string& payoffID, const QuantLib::Option::Type& optionType, const double &strike); StrikedTypePayoff( const std::string& payoffID, const QuantLib::Option::Type& optionType, const double &strike, const double &strikeIncrement); }; } #endif Index: quantovanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantovanillaoption.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** quantovanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 --- quantovanillaoption.cpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 37,43 **** const double &correlation, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { --- 37,41 ---- const double &correlation, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { *************** *** 49,55 **** new QuantLib::SimpleQuote(correlation))); - boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = - Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::QuantoVanillaOption( --- 47,50 ---- Index: barrieroption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/barrieroption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** barrieroption.hpp 29 Jun 2006 15:02:31 -0000 1.4 --- barrieroption.hpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 33,39 **** const double &rebate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 33,37 ---- const double &rebate, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); Index: dividendvanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/dividendvanillaoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dividendvanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 --- dividendvanillaoption.hpp 29 Jun 2006 16:52:12 -0000 1.5 *************** *** 29,35 **** DividendVanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const std::vector < QuantLib::Date > ÷ndDates, --- 29,33 ---- DividendVanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const std::vector < QuantLib::Date > ÷ndDates, Index: quantovanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantovanillaoption.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** quantovanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.5 --- quantovanillaoption.hpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 32,38 **** const double &correlation, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 32,36 ---- const double &correlation, const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); Index: vanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/vanillaoption.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** vanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.5 --- vanillaoption.hpp 29 Jun 2006 16:52:12 -0000 1.6 *************** *** 29,35 **** VanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const std::string &optionTypeID, ! const std::string &payoffID, ! const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); --- 29,33 ---- VanillaOption( const boost::shared_ptr < QuantLib::GeneralizedBlackScholesProcess > &blackScholesProcess, ! const boost::shared_ptr<QuantLib::StrikedTypePayoff> &payoff, const boost::shared_ptr < QuantLib::Exercise > &exercise, const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); |
|
From: Eric E. <eri...@us...> - 2006-06-29 16:52:17
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25490/gensrc Modified Files: gensrc.vcproj gensrc_vc8.vcproj Log Message: implement separate class for StrikedTypePayoff Index: gensrc_vc8.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/gensrc_vc8.vcproj,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** gensrc_vc8.vcproj 27 Jun 2006 09:54:19 -0000 1.13 --- gensrc_vc8.vcproj 29 Jun 2006 16:52:12 -0000 1.14 *************** *** 56,60 **** > <File ! RelativePath=".\metadata\bonds.xml" > </File> --- 56,60 ---- > <File ! RelativePath="metadata\bonds.xml" > </File> *************** *** 68,72 **** </File> <File ! RelativePath=".\metadata\capletvolstructure.xml" > </File> --- 68,72 ---- </File> <File ! RelativePath="metadata\capletvolstructure.xml" > </File> *************** *** 92,100 **** </File> <File ! RelativePath=".\metadata\forwardrateagreement.xml" > </File> <File ! RelativePath=".\metadata\index.xml" > </File> --- 92,100 ---- </File> <File ! RelativePath="metadata\forwardrateagreement.xml" > </File> <File ! RelativePath="metadata\index.xml" > </File> *************** *** 116,124 **** </File> <File RelativePath="metadata\prices.xml" > </File> <File ! RelativePath=".\metadata\pricingengines.xml" > </File> --- 116,128 ---- </File> <File + RelativePath="metadata\payoffs.xml" + > + </File> + <File RelativePath="metadata\prices.xml" > </File> <File ! RelativePath="metadata\pricingengines.xml" > </File> *************** *** 132,136 **** </File> <File ! RelativePath=".\metadata\ratehelpers.xml" > </File> --- 136,140 ---- </File> <File ! RelativePath="metadata\ratehelpers.xml" > </File> *************** *** 148,156 **** </File> <File ! RelativePath=".\metadata\swaption.xml" > </File> <File ! RelativePath=".\metadata\swaptionvolstructure.xml" > </File> --- 152,160 ---- </File> <File ! RelativePath="metadata\swaption.xml" > </File> <File ! RelativePath="metadata\swaptionvolstructure.xml" > </File> *************** *** 164,168 **** </File> <File ! RelativePath=".\metadata\vanillaswap.xml" > </File> --- 168,172 ---- </File> <File ! RelativePath="metadata\vanillaswap.xml" > </File> Index: gensrc.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/gensrc.vcproj,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** gensrc.vcproj 26 Jun 2006 21:31:02 -0000 1.8 --- gensrc.vcproj 29 Jun 2006 16:52:12 -0000 1.9 *************** *** 37,41 **** Filter=""> <File ! RelativePath=".\metadata\bonds.xml"> </File> <File --- 37,41 ---- Filter=""> <File ! RelativePath="metadata\bonds.xml"> </File> <File *************** *** 46,50 **** </File> <File ! RelativePath=".\metadata\capletvolstructure.xml"> </File> <File --- 46,50 ---- </File> <File ! RelativePath="metadata\capletvolstructure.xml"> </File> <File *************** *** 64,71 **** </File> <File ! RelativePath=".\metadata\forwardrateagreement.xml"> </File> <File ! RelativePath=".\metadata\index.xml"> </File> <File --- 64,71 ---- </File> <File ! RelativePath="metadata\forwardrateagreement.xml"> </File> <File ! RelativePath="metadata\index.xml"> </File> <File *************** *** 82,89 **** </File> <File RelativePath="metadata\prices.xml"> </File> <File ! RelativePath=".\metadata\pricingengines.xml"> </File> <File --- 82,92 ---- </File> <File + RelativePath="metadata\payoffs.xml"> + </File> + <File RelativePath="metadata\prices.xml"> </File> <File ! RelativePath="metadata\pricingengines.xml"> </File> <File *************** *** 94,98 **** </File> <File ! RelativePath=".\metadata\ratehelpers.xml"> </File> <File --- 97,101 ---- </File> <File ! RelativePath="metadata\ratehelpers.xml"> </File> <File *************** *** 106,113 **** </File> <File ! RelativePath=".\metadata\swaption.xml"> </File> <File ! RelativePath=".\metadata\swaptionvolstructure.xml"> </File> <File --- 109,116 ---- </File> <File ! RelativePath="metadata\swaption.xml"> </File> <File ! RelativePath="metadata\swaptionvolstructure.xml"> </File> <File *************** *** 118,122 **** </File> <File ! RelativePath=".\metadata\vanillaswap.xml"> </File> <File --- 121,125 ---- </File> <File ! RelativePath="metadata\vanillaswap.xml"> </File> <File |
|
From: Eric E. <eri...@us...> - 2006-06-29 16:52:17
|
Update of /cvsroot/quantlibaddin/QuantLibAddin In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25490 Modified Files: QuantLibObjects.vcproj QuantLibObjects_vc8.vcproj Log Message: implement separate class for StrikedTypePayoff Index: QuantLibObjects_vc8.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/QuantLibObjects_vc8.vcproj,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** QuantLibObjects_vc8.vcproj 29 Jun 2006 13:06:24 -0000 1.24 --- QuantLibObjects_vc8.vcproj 29 Jun 2006 16:52:12 -0000 1.25 *************** *** 334,342 **** </File> <File ! RelativePath=".\qlo\vo_bonds.cpp" > </File> <File ! RelativePath=".\qlo\vo_bonds.hpp" > </File> --- 334,342 ---- </File> <File ! RelativePath="qlo\vo_bonds.cpp" > </File> <File ! RelativePath="qlo\vo_bonds.hpp" > </File> *************** *** 358,366 **** </File> <File ! RelativePath=".\qlo\vo_capletvolstructure.cpp" > </File> <File ! RelativePath=".\qlo\vo_capletvolstructure.hpp" > </File> --- 358,366 ---- </File> <File ! RelativePath="qlo\vo_capletvolstructure.cpp" > </File> <File ! RelativePath="qlo\vo_capletvolstructure.hpp" > </File> *************** *** 382,398 **** </File> <File ! RelativePath=".\qlo\vo_forwardrateagreement.cpp" > </File> <File ! RelativePath=".\qlo\vo_forwardrateagreement.hpp" > </File> <File ! RelativePath=".\qlo\vo_index.cpp" > </File> <File ! RelativePath=".\qlo\vo_index.hpp" > </File> --- 382,398 ---- </File> <File ! RelativePath="qlo\vo_forwardrateagreement.cpp" > </File> <File ! RelativePath="qlo\vo_forwardrateagreement.hpp" > </File> <File ! RelativePath="qlo\vo_index.cpp" > </File> <File ! RelativePath="qlo\vo_index.hpp" > </File> *************** *** 406,410 **** </File> <File ! RelativePath=".\qlo\vo_mathf.cpp" > </File> --- 406,410 ---- </File> <File ! RelativePath="qlo\vo_mathf.cpp" > </File> *************** *** 418,426 **** </File> <File ! RelativePath=".\qlo\vo_pricingengines.cpp" > </File> <File ! RelativePath=".\qlo\vo_pricingengines.hpp" > </File> --- 418,434 ---- </File> <File ! RelativePath="qlo\vo_payoffs.cpp" > </File> <File ! RelativePath="qlo\vo_payoffs.hpp" ! > ! </File> ! <File ! RelativePath="qlo\vo_pricingengines.cpp" ! > ! </File> ! <File ! RelativePath="qlo\vo_pricingengines.hpp" > </File> *************** *** 442,450 **** </File> <File ! RelativePath=".\qlo\vo_ratehelpers.cpp" > </File> <File ! RelativePath=".\qlo\vo_ratehelpers.hpp" > </File> --- 450,458 ---- </File> <File ! RelativePath="qlo\vo_ratehelpers.cpp" > </File> <File ! RelativePath="qlo\vo_ratehelpers.hpp" > </File> *************** *** 474,490 **** </File> <File ! RelativePath=".\qlo\vo_swaption.cpp" > </File> <File ! RelativePath=".\qlo\vo_swaption.hpp" > </File> <File ! RelativePath=".\qlo\vo_swaptionvolstructure.cpp" > </File> <File ! RelativePath=".\qlo\vo_swaptionvolstructure.hpp" > </File> --- 482,498 ---- </File> <File ! RelativePath="qlo\vo_swaption.cpp" > </File> <File ! RelativePath="qlo\vo_swaption.hpp" > </File> <File ! RelativePath="qlo\vo_swaptionvolstructure.cpp" > </File> <File ! RelativePath="qlo\vo_swaptionvolstructure.hpp" > </File> *************** *** 498,506 **** </File> <File ! RelativePath=".\qlo\vo_vanillaswap.cpp" > </File> <File ! RelativePath=".\qlo\vo_vanillaswap.hpp" > </File> --- 506,514 ---- </File> <File ! RelativePath="qlo\vo_vanillaswap.cpp" > </File> <File ! RelativePath="qlo\vo_vanillaswap.hpp" > </File> *************** *** 518,526 **** > <File ! RelativePath=".\qlo\ratehelpers.cpp" > </File> <File ! RelativePath=".\qlo\ratehelpers.hpp" > </File> --- 526,534 ---- > <File ! RelativePath="qlo\ratehelpers.cpp" > </File> <File ! RelativePath="qlo\ratehelpers.hpp" > </File> *************** *** 546,566 **** </File> <File ! RelativePath=".\qlo\interpolation2D.cpp" > </File> <File ! RelativePath=".\qlo\interpolation2D.hpp" > </File> <File ! RelativePath=".\qlo\mathf.hpp" > </File> <File ! RelativePath=".\qlo\symmetricschurdecomposition.cpp" > </File> <File ! RelativePath=".\qlo\symmetricschurdecomposition.hpp" > </File> --- 554,574 ---- </File> <File ! RelativePath="qlo\interpolation2D.cpp" > </File> <File ! RelativePath="qlo\interpolation2D.hpp" > </File> <File ! RelativePath="qlo\mathf.hpp" > </File> <File ! RelativePath="qlo\symmetricschurdecomposition.cpp" > </File> <File ! RelativePath="qlo\symmetricschurdecomposition.hpp" > </File> *************** *** 602,610 **** </File> <File ! RelativePath=".\qlo\bonds.cpp" > </File> <File ! RelativePath=".\qlo\bonds.hpp" > </File> --- 610,618 ---- </File> <File ! RelativePath="qlo\bonds.cpp" > </File> <File ! RelativePath="qlo\bonds.hpp" > </File> *************** *** 642,650 **** </File> <File ! RelativePath=".\qlo\forwardrateagreement.cpp" > </File> <File ! RelativePath=".\qlo\forwardrateagreement.hpp" > </File> --- 650,658 ---- </File> <File ! RelativePath="qlo\forwardrateagreement.cpp" > </File> <File ! RelativePath="qlo\forwardrateagreement.hpp" > </File> *************** *** 658,662 **** </File> <File ! RelativePath=".\qlo\options.hpp" > </File> --- 666,678 ---- </File> <File ! RelativePath="qlo\options.hpp" ! > ! </File> ! <File ! RelativePath="qlo\payoffs.cpp" ! > ! </File> ! <File ! RelativePath="qlo\payoffs.hpp" > </File> *************** *** 686,694 **** </File> <File ! RelativePath=".\qlo\swaption.cpp" > </File> <File ! RelativePath=".\qlo\swaption.hpp" > </File> --- 702,710 ---- </File> <File ! RelativePath="qlo\swaption.cpp" > </File> <File ! RelativePath="qlo\swaption.hpp" > </File> *************** *** 702,710 **** </File> <File ! RelativePath=".\qlo\vanillaswap.cpp" > </File> <File ! RelativePath=".\qlo\vanillaswap.hpp" > </File> --- 718,726 ---- </File> <File ! RelativePath="qlo\vanillaswap.cpp" > </File> <File ! RelativePath="qlo\vanillaswap.hpp" > </File> *************** *** 750,758 **** > <File ! RelativePath=".\qlo\pricingengines.cpp" > </File> <File ! RelativePath=".\qlo\pricingengines.hpp" > </File> --- 766,774 ---- > <File ! RelativePath="qlo\pricingengines.cpp" > </File> <File ! RelativePath="qlo\pricingengines.hpp" > </File> *************** *** 762,778 **** > <File ! RelativePath=".\qlo\capletvolstructure.cpp" > </File> <File ! RelativePath=".\qlo\capletvolstructure.hpp" > </File> <File ! RelativePath=".\qlo\swaptionvolstructure.cpp" > </File> <File ! RelativePath=".\qlo\swaptionvolstructure.hpp" > </File> --- 778,794 ---- > <File ! RelativePath="qlo\capletvolstructure.cpp" > </File> <File ! RelativePath="qlo\capletvolstructure.hpp" > </File> <File ! RelativePath="qlo\swaptionvolstructure.cpp" > </File> <File ! RelativePath="qlo\swaptionvolstructure.hpp" > </File> *************** *** 791,803 **** </File> <File ! RelativePath="qlo\enumclassregistry.cpp" > </File> <File ! RelativePath=".\qlo\conversions.cpp" > </File> <File ! RelativePath=".\qlo\conversions.hpp" > </File> --- 807,819 ---- </File> <File ! RelativePath="qlo\conversions.cpp" > </File> <File ! RelativePath="qlo\conversions.hpp" > </File> <File ! RelativePath="qlo\enumclassregistry.cpp" > </File> *************** *** 815,823 **** </File> <File ! RelativePath=".\qlo\index.cpp" > </File> <File ! RelativePath=".\qlo\index.hpp" > </File> --- 831,839 ---- </File> <File ! RelativePath="qlo\index.cpp" > </File> <File ! RelativePath="qlo\index.hpp" > </File> Index: QuantLibObjects.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/QuantLibObjects.vcproj,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** QuantLibObjects.vcproj 29 Jun 2006 13:06:24 -0000 1.17 --- QuantLibObjects.vcproj 29 Jun 2006 16:52:12 -0000 1.18 *************** *** 338,477 **** </File> <File ! RelativePath=".\qlo\vo_bonds.cpp"> </File> <File ! RelativePath=".\qlo\vo_bonds.hpp"> </File> <File ! RelativePath=".\qlo\vo_calendar.cpp"> </File> <File ! RelativePath=".\qlo\vo_calendar.hpp"> </File> <File ! RelativePath=".\qlo\vo_capfloor.cpp"> </File> <File ! RelativePath=".\qlo\vo_capfloor.hpp"> </File> <File ! RelativePath=".\qlo\vo_capletvolstructure.cpp"> </File> <File ! RelativePath=".\qlo\vo_capletvolstructure.hpp"> </File> <File ! RelativePath=".\qlo\vo_couponvectors.cpp"> </File> <File ! RelativePath=".\qlo\vo_couponvectors.hpp"> </File> <File ! RelativePath=".\qlo\vo_exercise.cpp"> </File> <File ! RelativePath=".\qlo\vo_exercise.hpp"> </File> <File ! RelativePath=".\qlo\vo_forwardrateagreement.cpp"> </File> <File ! RelativePath=".\qlo\vo_forwardrateagreement.hpp"> </File> <File ! RelativePath=".\qlo\vo_index.cpp"> </File> <File ! RelativePath=".\qlo\vo_index.hpp"> </File> <File ! RelativePath=".\qlo\vo_interpolation.cpp"> </File> <File ! RelativePath=".\qlo\vo_interpolation.hpp"> </File> <File ! RelativePath=".\qlo\vo_mathf.cpp"> </File> <File ! RelativePath=".\qlo\vo_mathf.hpp"> </File> <File ! RelativePath=".\qlo\vo_options.cpp"> </File> <File ! RelativePath=".\qlo\vo_options.hpp"> </File> <File ! RelativePath=".\qlo\vo_pricingengines.cpp"> </File> <File ! RelativePath=".\qlo\vo_pricingengines.hpp"> </File> <File ! RelativePath=".\qlo\vo_processes.cpp"> </File> <File ! RelativePath=".\qlo\vo_processes.hpp"> </File> <File ! RelativePath=".\qlo\vo_randomsequencegenerator.cpp"> </File> <File ! RelativePath=".\qlo\vo_randomsequencegenerator.hpp"> </File> <File ! RelativePath=".\qlo\vo_ratehelpers.cpp"> </File> <File ! RelativePath=".\qlo\vo_ratehelpers.hpp"> </File> <File ! RelativePath=".\qlo\vo_schedule.cpp"> </File> <File ! RelativePath=".\qlo\vo_schedule.hpp"> </File> <File ! RelativePath=".\qlo\vo_shortratemodels.cpp"> </File> <File ! RelativePath=".\qlo\vo_shortratemodels.hpp"> </File> <File ! RelativePath=".\qlo\vo_swap.cpp"> </File> <File ! RelativePath=".\qlo\vo_swap.hpp"> </File> <File ! RelativePath=".\qlo\vo_swaption.cpp"> </File> <File ! RelativePath=".\qlo\vo_swaption.hpp"> </File> <File ! RelativePath=".\qlo\vo_swaptionvolstructure.cpp"> </File> <File ! RelativePath=".\qlo\vo_swaptionvolstructure.hpp"> </File> <File ! RelativePath=".\qlo\vo_termstructures.cpp"> </File> <File ! RelativePath=".\qlo\vo_termstructures.hpp"> </File> <File ! RelativePath=".\qlo\vo_vanillaswap.cpp"> </File> <File ! RelativePath=".\qlo\vo_vanillaswap.hpp"> </File> <File ! RelativePath=".\qlo\vo_volatilities.cpp"> </File> <File ! RelativePath=".\qlo\vo_volatilities.hpp"> </File> </Filter> --- 338,483 ---- </File> <File ! RelativePath="qlo\vo_bonds.cpp"> </File> <File ! RelativePath="qlo\vo_bonds.hpp"> </File> <File ! RelativePath="qlo\vo_calendar.cpp"> </File> <File ! RelativePath="qlo\vo_calendar.hpp"> </File> <File ! RelativePath="qlo\vo_capfloor.cpp"> </File> <File ! RelativePath="qlo\vo_capfloor.hpp"> </File> <File ! RelativePath="qlo\vo_capletvolstructure.cpp"> </File> <File ! RelativePath="qlo\vo_capletvolstructure.hpp"> </File> <File ! RelativePath="qlo\vo_couponvectors.cpp"> </File> <File ! RelativePath="qlo\vo_couponvectors.hpp"> </File> <File ! RelativePath="qlo\vo_exercise.cpp"> </File> <File ! RelativePath="qlo\vo_exercise.hpp"> </File> <File ! RelativePath="qlo\vo_forwardrateagreement.cpp"> </File> <File ! RelativePath="qlo\vo_forwardrateagreement.hpp"> </File> <File ! RelativePath="qlo\vo_index.cpp"> </File> <File ! RelativePath="qlo\vo_index.hpp"> </File> <File ! RelativePath="qlo\vo_interpolation.cpp"> </File> <File ! RelativePath="qlo\vo_interpolation.hpp"> </File> <File ! RelativePath="qlo\vo_mathf.cpp"> </File> <File ! RelativePath="qlo\vo_mathf.hpp"> </File> <File ! RelativePath="qlo\vo_options.cpp"> </File> <File ! RelativePath="qlo\vo_options.hpp"> </File> <File ! RelativePath="qlo\vo_payoffs.cpp"> </File> <File ! RelativePath="qlo\vo_payoffs.hpp"> </File> <File ! RelativePath="qlo\vo_pricingengines.cpp"> </File> <File ! RelativePath="qlo\vo_pricingengines.hpp"> </File> <File ! RelativePath="qlo\vo_processes.cpp"> </File> <File ! RelativePath="qlo\vo_processes.hpp"> </File> <File ! RelativePath="qlo\vo_randomsequencegenerator.cpp"> </File> <File ! RelativePath="qlo\vo_randomsequencegenerator.hpp"> </File> <File ! RelativePath="qlo\vo_ratehelpers.cpp"> </File> <File ! RelativePath="qlo\vo_ratehelpers.hpp"> </File> <File ! RelativePath="qlo\vo_schedule.cpp"> </File> <File ! RelativePath="qlo\vo_schedule.hpp"> </File> <File ! RelativePath="qlo\vo_shortratemodels.cpp"> </File> <File ! RelativePath="qlo\vo_shortratemodels.hpp"> </File> <File ! RelativePath="qlo\vo_swap.cpp"> </File> <File ! RelativePath="qlo\vo_swap.hpp"> </File> <File ! RelativePath="qlo\vo_swaption.cpp"> </File> <File ! RelativePath="qlo\vo_swaption.hpp"> </File> <File ! RelativePath="qlo\vo_swaptionvolstructure.cpp"> </File> <File ! RelativePath="qlo\vo_swaptionvolstructure.hpp"> </File> <File ! RelativePath="qlo\vo_termstructures.cpp"> </File> <File ! RelativePath="qlo\vo_termstructures.hpp"> </File> <File ! RelativePath="qlo\vo_vanillaswap.cpp"> </File> <File ! RelativePath="qlo\vo_vanillaswap.hpp"> ! </File> ! <File ! RelativePath="qlo\vo_volatilities.cpp"> ! </File> ! <File ! RelativePath="qlo\vo_volatilities.hpp"> </File> </Filter> *************** *** 480,487 **** Filter=""> <File ! RelativePath=".\qlo\ratehelpers.cpp"> </File> <File ! RelativePath=".\qlo\ratehelpers.hpp"> </File> <File --- 486,493 ---- Filter=""> <File ! RelativePath="qlo\ratehelpers.cpp"> </File> <File ! RelativePath="qlo\ratehelpers.hpp"> </File> <File *************** *** 502,518 **** </File> <File ! RelativePath=".\qlo\interpolation2D.cpp"> </File> <File ! RelativePath=".\qlo\interpolation2D.hpp"> </File> <File ! RelativePath=".\qlo\mathf.hpp"> </File> <File ! RelativePath=".\qlo\symmetricschurdecomposition.cpp"> </File> <File ! RelativePath=".\qlo\symmetricschurdecomposition.hpp"> </File> </Filter> --- 508,524 ---- </File> <File ! RelativePath="qlo\interpolation2D.cpp"> </File> <File ! RelativePath="qlo\interpolation2D.hpp"> </File> <File ! RelativePath="qlo\mathf.hpp"> </File> <File ! RelativePath="qlo\symmetricschurdecomposition.cpp"> </File> <File ! RelativePath="qlo\symmetricschurdecomposition.hpp"> </File> </Filter> *************** *** 546,553 **** </File> <File ! RelativePath=".\qlo\bonds.cpp"> </File> <File ! RelativePath=".\qlo\bonds.hpp"> </File> <File --- 552,559 ---- </File> <File ! RelativePath="qlo\bonds.cpp"> </File> <File ! RelativePath="qlo\bonds.hpp"> </File> <File *************** *** 588,592 **** </File> <File ! RelativePath=".\qlo\options.hpp"> </File> <File --- 594,604 ---- </File> <File ! RelativePath="qlo\options.hpp"> ! </File> ! <File ! RelativePath="qlo\payoffs.cpp"> ! </File> ! <File ! RelativePath="qlo\payoffs.hpp"> </File> <File *************** *** 609,616 **** </File> <File ! RelativePath=".\qlo\swaption.cpp"> </File> <File ! RelativePath=".\qlo\swaption.hpp"> </File> <File --- 621,628 ---- </File> <File ! RelativePath="qlo\swaption.cpp"> </File> <File ! RelativePath="qlo\swaption.hpp"> </File> <File *************** *** 661,668 **** Filter=""> <File ! RelativePath=".\qlo\pricingengines.cpp"> </File> <File ! RelativePath=".\qlo\pricingengines.hpp"> </File> </Filter> --- 673,680 ---- Filter=""> <File ! RelativePath="qlo\pricingengines.cpp"> </File> <File ! RelativePath="qlo\pricingengines.hpp"> </File> </Filter> *************** *** 671,681 **** Filter=""> <File ! RelativePath=".\qlo\capletvolstructure.cpp"> </File> <File ! RelativePath=".\qlo\capletvolstructure.hpp"> </File> <File ! RelativePath=".\qlo\swaptionvolstructure.cpp"> </File> <File --- 683,693 ---- Filter=""> <File ! RelativePath="qlo\capletvolstructure.cpp"> </File> <File ! RelativePath="qlo\capletvolstructure.hpp"> </File> <File ! RelativePath="qlo\swaptionvolstructure.cpp"> </File> <File *************** *** 711,718 **** </File> <File ! RelativePath=".\qlo\index.cpp"> </File> <File ! RelativePath=".\qlo\index.hpp"> </File> <File --- 723,730 ---- </File> <File ! RelativePath="qlo\index.cpp"> </File> <File ! RelativePath="qlo\index.hpp"> </File> <File |
|
From: Eric E. <eri...@us...> - 2006-06-29 16:52:17
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25490/gensrc/metadata Modified Files: instruments.xml options.xml Added Files: payoffs.xml Log Message: implement separate class for StrikedTypePayoff Index: options.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/options.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** options.xml 29 Jun 2006 15:02:31 -0000 1.7 --- options.xml 29 Jun 2006 16:52:12 -0000 1.8 *************** *** 6,9 **** --- 6,10 ---- <include>qlo/vo_options.hpp</include> <include>qlo/pricingengines.hpp</include> + <include>qlo/payoffs.hpp</include> </includes> <copyright> *************** *** 37,54 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 38,45 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 81,98 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 72,79 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 110,114 **** </Constructor> ! <Constructor name='qlCliquetOption'> <libraryFunction>CliquetOption</libraryFunction> <functionCategory>QuantLib</functionCategory> --- 91,95 ---- </Constructor> ! <!--Constructor name='qlCliquetOption'> <libraryFunction>CliquetOption</libraryFunction> <functionCategory>QuantLib</functionCategory> *************** *** 120,137 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType' enumeration='QuantLib::Option::Type'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> ! <Parameter name='expiryDate' libraryType='QuantLib::Date'> ! <type>long</type> <tensorRank>scalar</tensorRank> ! <description>expiry date</description> </Parameter> <Parameter name='resetDates' libraryType='QuantLib::Date'> --- 101,113 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='PercentageStrikePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> ! <Parameter name='exerciseID' libraryClass='EuropeanExercise'> ! <type>string</type> <tensorRank>scalar</tensorRank> ! <description>Exercise ID</description> </Parameter> <Parameter name='resetDates' libraryType='QuantLib::Date'> *************** *** 147,151 **** </Parameters> </ParameterList> ! </Constructor> <Constructor name='qlDaAsianOption'> --- 123,127 ---- </Parameters> </ParameterList> ! </Constructor--> <Constructor name='qlDaAsianOption'> *************** *** 179,196 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 155,162 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 218,235 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 184,191 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 277,294 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 233,240 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 336,353 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 282,289 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 375,392 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 311,318 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 429,446 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 355,362 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 493,510 **** <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='optionType'> ! <type>string</type> ! <tensorRank>scalar</tensorRank> ! <description>option type</description> ! </Parameter> ! <Parameter name='payoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>payoff type</description> ! </Parameter> ! <Parameter name='strike'> ! <type>double</type> ! <tensorRank>scalar</tensorRank> ! <description>strike</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> --- 409,416 ---- <description>GeneralizedBlackScholesProcess</description> </Parameter> ! <Parameter name='payoffID' libraryClass='StrikedTypePayoff'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>ID of a striked type payoff object</description> </Parameter> <Parameter name='exerciseID' libraryClass='Exercise'> *************** *** 724,725 **** --- 630,632 ---- </Functions> </Category> + Index: instruments.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/instruments.xml,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** instruments.xml 20 Jun 2006 10:05:09 -0000 1.8 --- instruments.xml 29 Jun 2006 16:52:12 -0000 1.9 *************** *** 6,11 **** </includes> <copyright> ! Copyright (C) 2006 Ferdinando Ametrano ! Copyright (C) 2005 Walter Penschke </copyright> --- 6,11 ---- </includes> <copyright> ! Copyright (C) 2006 Ferdinando Ametrano ! Copyright (C) 2005 Walter Penschke </copyright> --- NEW FILE: payoffs.xml --- <Category name='payoffs'> <description>functions to construct QuantLib StrikedTypePayoff objects</description> <displayName>Payoffs</displayName> <copyright> Copyright (C) 2006 Eric Ehlers </copyright> <Functions> <Constructor name='qlStrikedTypePayoff'> <libraryFunction>StrikedTypePayoff</libraryFunction> <functionCategory>QuantLib</functionCategory> <ParameterList> <Parameters> <Parameter name='payoffID'> <type>string</type> <tensorRank>scalar</tensorRank> <description>payoff ID</description> </Parameter> <Parameter name='optionType' enumeration='QuantLib::Option::Type'> <type>string</type> <tensorRank>scalar</tensorRank> <description>option type</description> </Parameter> <Parameter name='strike'> <type>double</type> <tensorRank>scalar</tensorRank> <description>strike (or moneyness)</description> </Parameter> </Parameters> </ParameterList> </Constructor> <Constructor name='qlStrikedTypePayoff2'> <libraryFunction>StrikedTypePayoff</libraryFunction> <functionCategory>QuantLib</functionCategory> <ParameterList> <Parameters> <Parameter name='payoffID'> <type>string</type> <tensorRank>scalar</tensorRank> <description>payoff ID</description> </Parameter> <Parameter name='optionType' enumeration='QuantLib::Option::Type'> <type>string</type> <tensorRank>scalar</tensorRank> <description>option type</description> </Parameter> <Parameter name='strike'> <type>double</type> <tensorRank>scalar</tensorRank> <description>strike</description> </Parameter> <Parameter name='strikeIncrement'> <type>double</type> <tensorRank>scalar</tensorRank> <description>strike increment</description> </Parameter> </Parameters> </ParameterList> </Constructor> </Functions> </Category> |
|
From: Eric E. <eri...@us...> - 2006-06-29 16:52:15
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/config In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv25490/gensrc/config Modified Files: config.xml Log Message: implement separate class for StrikedTypePayoff Index: config.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/config/config.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** config.xml 26 Jun 2006 21:31:02 -0000 1.9 --- config.xml 29 Jun 2006 16:52:12 -0000 1.10 *************** *** 22,25 **** --- 22,26 ---- <categoryName>mathf</categoryName> <categoryName>options</categoryName> + <categoryName>payoffs</categoryName> <categoryName>prices</categoryName> <categoryName>pricingengines</categoryName> |
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv8871/qlo Modified Files: asianoption.cpp asianoption.hpp barrieroption.cpp barrieroption.hpp cliquetoption.cpp cliquetoption.hpp dividendvanillaoption.cpp dividendvanillaoption.hpp enumclassregistry.cpp europeanoption.cpp europeanoption.hpp forwardvanillaoption.cpp forwardvanillaoption.hpp pricingengines.cpp pricingengines.hpp quantoforwardvanillaoption.cpp quantoforwardvanillaoption.hpp quantovanillaoption.cpp quantovanillaoption.hpp typefactory.hpp vanillaoption.cpp vanillaoption.hpp Log Message: Index: pricingengines.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/pricingengines.cpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** pricingengines.cpp 26 Jun 2006 21:31:03 -0000 1.7 --- pricingengines.cpp 29 Jun 2006 15:02:31 -0000 1.8 *************** *** 17,20 **** --- 17,21 ---- #include <qlo/pricingengines.hpp> + #include <qlo/typefactory.hpp> #include <ql/handle.hpp> #include <ql/quote.hpp> *************** *** 22,25 **** --- 23,36 ---- namespace QuantLibAddin { + PricingEngine::PricingEngine(const std::string &engineID, const long& timeSteps) + { + libraryObject_ = Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); + } + + PricingEngine::PricingEngine(const std::string &engineID) + { + libraryObject_ = Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID); + } + BlackSwaptionEngine::BlackSwaptionEngine( const QuantLib::Handle<QuantLib::SwaptionVolatilityStructure>& vol) Index: dividendvanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/dividendvanillaoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dividendvanillaoption.cpp 20 Jun 2006 09:44:18 -0000 1.4 --- dividendvanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 33,42 **** const std::vector < QuantLib::Date > ÷ndDates, const std::vector < double > ÷nds, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::DividendVanillaOption>( new QuantLib::DividendVanillaOption( --- 33,39 ---- const std::vector < QuantLib::Date > ÷ndDates, const std::vector < double > ÷nds, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::DividendVanillaOption>( new QuantLib::DividendVanillaOption( Index: quantoforwardvanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantoforwardvanillaoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** quantoforwardvanillaoption.cpp 16 Jun 2006 17:37:20 -0000 1.4 --- quantoforwardvanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 42,48 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) ! { QuantLib::Handle<QuantLib::BlackVolTermStructure> blackVolTermStructureH(blackVolTermStructure); --- 42,46 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { QuantLib::Handle<QuantLib::BlackVolTermStructure> blackVolTermStructureH(blackVolTermStructure); *************** *** 55,61 **** Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::QuantoForwardVanillaOption( --- 53,56 ---- Index: pricingengines.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/pricingengines.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** pricingengines.hpp 26 Jun 2006 21:31:03 -0000 1.6 --- pricingengines.hpp 29 Jun 2006 15:02:31 -0000 1.7 *************** *** 30,33 **** --- 30,38 ---- class PricingEngine : public ObjHandler::LibraryObject<QuantLib::PricingEngine> { + public: + PricingEngine(const std::string &engineID); + PricingEngine(const std::string &engineID, const long& timeSteps); + protected: + PricingEngine() {} }; Index: forwardvanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/forwardvanillaoption.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** forwardvanillaoption.cpp 9 Jun 2006 18:58:47 -0000 1.3 --- forwardvanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 33,42 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::ForwardVanillaOption( --- 33,39 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::ForwardVanillaOption( Index: cliquetoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/cliquetoption.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** cliquetoption.hpp 9 Jun 2006 18:58:47 -0000 1.3 --- cliquetoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 33,38 **** const QuantLib::Date &expiryDate, const std::vector < QuantLib::Date > &resetDates, ! const std::string &engineID, ! const long &timeSteps); }; --- 33,37 ---- const QuantLib::Date &expiryDate, const std::vector < QuantLib::Date > &resetDates, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: barrieroption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/barrieroption.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** barrieroption.cpp 9 Jun 2006 18:58:47 -0000 1.3 --- barrieroption.cpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 33,43 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( --- 33,40 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( Index: vanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/vanillaoption.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** vanillaoption.cpp 9 Jun 2006 18:58:47 -0000 1.3 --- vanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 36,46 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::VanillaOption( --- 36,43 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::VanillaOption( *************** *** 51,61 **** } ! std::string VanillaOption::setEngine( ! const std::string &engineID, ! const long &timeSteps) { ! boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = ! Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_->setPricingEngine(pricingEngine); ! return engineID; } --- 48,55 ---- } ! bool VanillaOption::setEngine( ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { libraryObject_->setPricingEngine(pricingEngine); ! return true; } Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** typefactory.hpp 29 Jun 2006 10:47:33 -0000 1.7 --- typefactory.hpp 29 Jun 2006 15:02:31 -0000 1.8 *************** *** 101,104 **** --- 101,109 ---- return ctor(timeSteps); } + boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID) { + boost::shared_ptr<QuantLib::PricingEngine>(*ctor)() = + (boost::shared_ptr<QuantLib::PricingEngine>(*)()) getType(engineID); + return ctor(); + } }; Index: europeanoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/europeanoption.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** europeanoption.hpp 9 Jun 2006 18:58:47 -0000 1.3 --- europeanoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 33,38 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 33,37 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: asianoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/asianoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** asianoption.cpp 20 Jun 2006 09:44:18 -0000 1.4 --- asianoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 33,43 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( --- 33,40 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( *************** *** 60,70 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( --- 57,64 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( Index: quantovanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantovanillaoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** quantovanillaoption.hpp 16 Jun 2006 17:37:20 -0000 1.4 --- quantovanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 36,41 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 36,40 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: cliquetoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/cliquetoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** cliquetoption.cpp 20 Jun 2006 09:44:18 -0000 1.4 --- cliquetoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 32,37 **** const QuantLib::Date &expiryDate, const std::vector < QuantLib::Date > &resetDates, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::PercentageStrikePayoff> payoff( --- 32,36 ---- const QuantLib::Date &expiryDate, const std::vector < QuantLib::Date > &resetDates, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::PercentageStrikePayoff> payoff( *************** *** 39,44 **** boost::shared_ptr<QuantLib::EuropeanExercise> exercise( new QuantLib::EuropeanExercise(expiryDate)); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::CliquetOption( --- 38,41 ---- Index: enumclassregistry.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/enumclassregistry.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** enumclassregistry.cpp 29 Jun 2006 13:06:24 -0000 1.1 --- enumclassregistry.cpp 29 Jun 2006 15:02:31 -0000 1.2 *************** *** 89,181 **** } ! /* *** PricingEngine *** */ ! 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> AEQPB_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::AdditiveEQPBinomialTree>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> CRR_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::CoxRossRubinstein>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> I_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::IntegralEngine); } ! boost::shared_ptr<QuantLib::PricingEngine> FDA_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::FDAmericanEngine(timeSteps, timeSteps-1)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> FDE_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::FDEuropeanEngine(timeSteps, timeSteps-1)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> FDB_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::FDBermudanEngine(timeSteps, timeSteps-1)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> JR_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::JarrowRudd>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> LR_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::LeisenReimer>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> TIAN_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::Tian>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> TRI_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::Trigeorgis>(timeSteps)); ! } ! 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); --- 89,145 ---- } ! /* *** PricingEngine - no 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); *************** *** 184,188 **** QuantLib::VanillaOption::results>(underlyingEngine)); } ! boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine(const long& timeSteps) { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); --- 148,152 ---- QuantLib::VanillaOption::results>(underlyingEngine)); } ! boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine() { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); *************** *** 192,196 **** QuantLib::VanillaOption::results>(underlyingEngine)); } ! boost::shared_ptr<QuantLib::PricingEngine> QE_Engine(const long& timeSteps) { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); --- 156,160 ---- QuantLib::VanillaOption::results>(underlyingEngine)); } ! boost::shared_ptr<QuantLib::PricingEngine> QE_Engine() { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); *************** *** 199,203 **** QuantLib::VanillaOption::results>(underlyingEngine)); } ! boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine(const long& timeSteps) { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); --- 163,167 ---- QuantLib::VanillaOption::results>(underlyingEngine)); } ! boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine() { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); *************** *** 210,215 **** } ! /* *** Extrapolator *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( const std::vector<double>::const_iterator& xBegin, --- 174,216 ---- } ! /* *** PricingEngine - timesteps *** */ ! boost::shared_ptr<QuantLib::PricingEngine> AEQPB_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::AdditiveEQPBinomialTree>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> CRR_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::CoxRossRubinstein>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> FDA_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::FDAmericanEngine(timeSteps, timeSteps-1)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> FDE_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::FDEuropeanEngine(timeSteps, timeSteps-1)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> FDB_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::FDBermudanEngine(timeSteps, timeSteps-1)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> JR_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::JarrowRudd>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> LR_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::LeisenReimer>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> TIAN_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::Tian>(timeSteps)); ! } ! boost::shared_ptr<QuantLib::PricingEngine> TRI_Engine(const long& timeSteps) { ! return boost::shared_ptr<QuantLib::PricingEngine> ( ! new QuantLib::BinomialVanillaEngine<QuantLib::Trigeorgis>(timeSteps)); ! } + /* *** Extrapolator *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( const std::vector<double>::const_iterator& xBegin, Index: forwardvanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/forwardvanillaoption.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** forwardvanillaoption.hpp 9 Jun 2006 18:58:47 -0000 1.3 --- forwardvanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 35,40 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 35,39 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: europeanoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/europeanoption.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** europeanoption.cpp 9 Jun 2006 18:58:47 -0000 1.3 --- europeanoption.cpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 36,45 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::EuropeanOption( --- 36,42 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { boost::shared_ptr<QuantLib::StrikedTypePayoff> payoff = Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::EuropeanOption( Index: asianoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/asianoption.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** asianoption.hpp 9 Jun 2006 18:58:47 -0000 1.3 --- asianoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 34,39 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 34,38 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; *************** *** 50,55 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 49,53 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: quantovanillaoption.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantovanillaoption.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** quantovanillaoption.cpp 16 Jun 2006 17:37:20 -0000 1.4 --- quantovanillaoption.cpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 41,47 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps) ! { QuantLib::Handle<QuantLib::BlackVolTermStructure> blackVolTermStructureH(blackVolTermStructure); --- 41,45 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine) { QuantLib::Handle<QuantLib::BlackVolTermStructure> blackVolTermStructureH(blackVolTermStructure); *************** *** 54,60 **** Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> >()(optionTypeID, payoffID, strike); - boost::shared_ptr<QuantLib::PricingEngine> pricingEngine = - Create<boost::shared_ptr<QuantLib::PricingEngine> >()(engineID, timeSteps); - libraryObject_ = boost::shared_ptr<QuantLib::Instrument>( new QuantLib::QuantoVanillaOption( --- 52,55 ---- Index: barrieroption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/barrieroption.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** barrieroption.hpp 9 Jun 2006 18:58:47 -0000 1.3 --- barrieroption.hpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 37,42 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 37,41 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: dividendvanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/dividendvanillaoption.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dividendvanillaoption.hpp 9 Jun 2006 18:58:47 -0000 1.3 --- dividendvanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.4 *************** *** 35,40 **** const std::vector < QuantLib::Date > ÷ndDates, const std::vector < double > ÷nds, ! const std::string &engineID, ! const long &timeSteps); }; --- 35,39 ---- const std::vector < QuantLib::Date > ÷ndDates, const std::vector < double > ÷nds, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: quantoforwardvanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/quantoforwardvanillaoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** quantoforwardvanillaoption.hpp 16 Jun 2006 17:37:20 -0000 1.4 --- quantoforwardvanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 39,44 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); }; --- 39,43 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; Index: vanillaoption.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/vanillaoption.hpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** vanillaoption.hpp 26 Jun 2006 21:31:03 -0000 1.4 --- vanillaoption.hpp 29 Jun 2006 15:02:31 -0000 1.5 *************** *** 33,42 **** const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const std::string &engineID, ! const long &timeSteps); ! std::string setEngine( ! const std::string &engineName, ! const long &timeSteps); }; --- 33,40 ---- const double &strike, const boost::shared_ptr < QuantLib::Exercise > &exercise, ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); ! bool setEngine( ! const boost::shared_ptr<QuantLib::PricingEngine> &pricingEngine); }; |
|
From: Eric E. <eri...@us...> - 2006-06-29 15:02:38
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv8871/gensrc/metadata Modified Files: options.xml pricingengines.xml Log Message: Index: options.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/options.xml,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** options.xml 28 Jun 2006 15:18:59 -0000 1.6 --- options.xml 29 Jun 2006 15:02:31 -0000 1.7 *************** *** 2,5 **** --- 2,10 ---- <description>functions to construct QuantLib option objects</description> <displayName>Options</displayName> + <includes> + <include>qlo/options.hpp</include> + <include>qlo/vo_options.hpp</include> + <include>qlo/pricingengines.hpp</include> + </includes> <copyright> Copyright (C) 2005, 2006 Eric Ehlers *************** *** 52,64 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 57,64 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 101,113 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 101,108 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 145,157 **** <description>vector of reset dates</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 140,147 ---- <description>vector of reset dates</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 209,221 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 199,206 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 263,275 **** <description>vector of dividends</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 248,255 ---- <description>vector of dividends</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 317,329 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 297,304 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 337,356 **** <ParameterList> <Parameters> ! <Parameter name='engineName'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine name</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> </ParameterList> <ReturnValue> ! <type>string</type> <tensorRank>scalar</tensorRank> ! <description>new engine name</description> </ReturnValue> </Member> --- 312,326 ---- <ParameterList> <Parameters> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> </ParameterList> <ReturnValue> ! <type>bool</type> <tensorRank>scalar</tensorRank> ! <description>success/failure</description> </ReturnValue> </Member> *************** *** 386,398 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 356,363 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 430,442 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 395,402 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 489,501 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 449,456 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> *************** *** 558,570 **** <description>Exercise ID</description> </Parameter> ! <Parameter name='engine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>engine type</description> ! </Parameter> ! <Parameter name='timeSteps' default='0'> ! <type>long</type> ! <tensorRank>scalar</tensorRank> ! <description>time steps (for binomial pricing engines)</description> </Parameter> </Parameters> --- 513,520 ---- <description>Exercise ID</description> </Parameter> ! <Parameter name='pricingEngine' libraryClass='PricingEngine'> <type>string</type> <tensorRank>scalar</tensorRank> ! <description>pricing engine</description> </Parameter> </Parameters> Index: pricingengines.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/pricingengines.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** pricingengines.xml 28 Jun 2006 15:18:59 -0000 1.7 --- pricingengines.xml 29 Jun 2006 15:02:31 -0000 1.8 *************** *** 11,18 **** </includes> <copyright> ! Copyright (C) 2006 Ferdinando Ametrano </copyright> <Functions> <Constructor name='qlBlackSwaptionEngine'> <libraryFunction>BlackSwaptionEngine</libraryFunction> --- 11,51 ---- </includes> <copyright> ! Copyright (C) 2006 Ferdinando Ametrano </copyright> <Functions> + <Constructor name='qlPricingEngine'> + <libraryFunction>PricingEngine</libraryFunction> + <functionCategory>QuantLib</functionCategory> + <ParameterList> + <Parameters> + <Parameter name='engineID'> + <type>string</type> + <tensorRank>scalar</tensorRank> + <description>engine type</description> + </Parameter> + </Parameters> + </ParameterList> + </Constructor> + + <Constructor name='qlPricingEngine2'> + <libraryFunction>PricingEngine</libraryFunction> + <functionCategory>QuantLib</functionCategory> + <ParameterList> + <Parameters> + <Parameter name='engineID'> + <type>string</type> + <tensorRank>scalar</tensorRank> + <description>engine type</description> + </Parameter> + <Parameter name='timeSteps' default='0'> + <type>long</type> + <tensorRank>scalar</tensorRank> + <description>#/time steps</description> + </Parameter> + </Parameters> + </ParameterList> + </Constructor> + <Constructor name='qlBlackSwaptionEngine'> <libraryFunction>BlackSwaptionEngine</libraryFunction> |
|
From: Eric E. <eri...@us...> - 2006-06-29 14:18:33
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv21436/gensrc/metadata Modified Files: termstructures.xml Log Message: remove unnecessary include tag Index: termstructures.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/termstructures.xml,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** termstructures.xml 28 Jun 2006 15:18:59 -0000 1.17 --- termstructures.xml 29 Jun 2006 14:18:29 -0000 1.18 *************** *** 2,9 **** <description>functions to construct QuantLib term structure objects</description> <displayName>Term Structures</displayName> - <includes> - <include>qlo/termstructures.hpp</include> - <include>qlo/vo_termstructures.hpp</include> - </includes> <copyright> Copyright (C) 2005, 2006 Eric Ehlers --- 2,5 ---- |
|
From: Eric E. <eri...@us...> - 2006-06-29 13:06:30
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv20964/qlo Modified Files: .cvsignore Added Files: enumclassregistry.cpp Removed Files: complextyperegistry.cpp Log Message: rename "Enumeration" -> "EnumeratedType", "ComplexType" -> "EnumeratedClass" Index: .cvsignore =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/.cvsignore,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** .cvsignore 26 Jun 2006 21:35:25 -0000 1.9 --- .cvsignore 29 Jun 2006 13:06:24 -0000 1.10 *************** *** 7,11 **** Makefile.in stamp-h1 ! enumregistry.cpp qladdin.hpp vo_bonds.*pp --- 7,11 ---- Makefile.in stamp-h1 ! enumtyperegistry.cpp qladdin.hpp vo_bonds.*pp --- complextyperegistry.cpp DELETED --- --- NEW FILE: enumclassregistry.cpp --- /* Copyright (C) 2005 Plamen Neykov Copyright (C) 2006 Eric Ehlers This file is part of QuantLib, a free-software/open-source library for financial quantitative analysts and developers - http://quantlib.org/ QuantLib is free software: you can redistribute it and/or modify it under the terms of the QuantLib license. You should have received a copy of the license along with this program; if not, please email qua...@li... The license is also available online at http://quantlib.org/html/license.html This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the license for more details. */ #include <qlo/typeregistry.hpp> #include <qlo/typefactory.hpp> #include <ql/option.hpp> #include <ql/Instruments/payoffs.hpp> #include <ql/Instruments/quantoforwardvanillaoption.hpp> #include <ql/PricingEngines/all.hpp> #include <ql/Math/bilinearinterpolation.hpp> #include <ql/Math/bicubicsplineinterpolation.hpp> #define REG_ENUM(Type, Body) \ { \ TypeMapPtr typeMap(new TypeMap); \ Body \ allTypesMap[typeid(Type).name()] = typeMap; \ } #define MAP(str_id, constructor) \ (*typeMap)[str_id] = (void*) constructor namespace QuantLibAddin { /* *** StrikedTypePayoff *** */ boost::shared_ptr<QuantLib::StrikedTypePayoff> SUPERSHARE_Payoff(const std::string& optionTypeID, const double &input1, const double &input2) { QuantLib::Option::Type type = Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::SuperSharePayoff(type, input1, input2)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> VANILLA_Payoff(const std::string& optionTypeID, const double &input1, const double &input2) { QuantLib::Option::Type type = Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::PlainVanillaPayoff(type, input1)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> PERCENTAGESTRIKE_Payoff(const std::string& optionTypeID, const double &input1, const double &input2) { QuantLib::Option::Type type = Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::PercentageStrikePayoff(type, input1)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> ASSETORNOTHING_Payoff(const std::string& optionTypeID, const double &input1, const double &input2) { QuantLib::Option::Type type = Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::AssetOrNothingPayoff(type, input1)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> CASHORNOTHING_Payoff(const std::string& optionTypeID, const double &input1, const double &input2) { QuantLib::Option::Type type = Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::CashOrNothingPayoff(type, input1, input2)); } boost::shared_ptr<QuantLib::StrikedTypePayoff> GAP_Payoff(const std::string& optionTypeID, const double &input1, const double &input2) { QuantLib::Option::Type type = Create<QuantLib::Option::Type>()(optionTypeID); return boost::shared_ptr<QuantLib::StrikedTypePayoff> ( new QuantLib::GapPayoff(type, input1, input2)); } /* *** PricingEngine *** */ 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> AEQPB_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::AdditiveEQPBinomialTree>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> CRR_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::CoxRossRubinstein>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> I_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::IntegralEngine); } boost::shared_ptr<QuantLib::PricingEngine> FDA_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::FDAmericanEngine(timeSteps, timeSteps-1)); } boost::shared_ptr<QuantLib::PricingEngine> FDE_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::FDEuropeanEngine(timeSteps, timeSteps-1)); } boost::shared_ptr<QuantLib::PricingEngine> FDB_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::FDBermudanEngine(timeSteps, timeSteps-1)); } boost::shared_ptr<QuantLib::PricingEngine> JR_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::JarrowRudd>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> LR_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::LeisenReimer>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> TIAN_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::Tian>(timeSteps)); } boost::shared_ptr<QuantLib::PricingEngine> TRI_Engine(const long& timeSteps) { return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::BinomialVanillaEngine<QuantLib::Trigeorgis>(timeSteps)); } 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); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::ForwardEngine<QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); } boost::shared_ptr<QuantLib::PricingEngine> FPE_Engine(const long& timeSteps) { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::ForwardPerformanceEngine <QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); } boost::shared_ptr<QuantLib::PricingEngine> QE_Engine(const long& timeSteps) { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::QuantoEngine<QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); } boost::shared_ptr<QuantLib::PricingEngine> QFE_Engine(const long& timeSteps) { boost::shared_ptr<QuantLib::VanillaOption::engine> underlyingEngine(new QuantLib::AnalyticEuropeanEngine); boost::shared_ptr<QuantLib::ForwardVanillaOption::engine> forwardEngine( new QuantLib::ForwardEngine<QuantLib::VanillaOption::arguments, QuantLib::VanillaOption::results>(underlyingEngine)); return boost::shared_ptr<QuantLib::PricingEngine> ( new QuantLib::QuantoEngine<QuantLib::ForwardVanillaOption::arguments, QuantLib::ForwardVanillaOption::results>(forwardEngine)); } /* *** Extrapolator *** */ boost::shared_ptr<QuantLib::Extrapolator> BilinearInterpolation_Extrapolator( const std::vector<double>::const_iterator& xBegin, const std::vector<double>::const_iterator& xEnd, const std::vector<double>::const_iterator& yBegin, const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::BilinearInterpolation( xBegin, xEnd, yBegin, yEnd, zData)); } boost::shared_ptr<QuantLib::Extrapolator> BicubicSpline_Extrapolator( const std::vector<double>::const_iterator& xBegin, const std::vector<double>::const_iterator& xEnd, const std::vector<double>::const_iterator& yBegin, const std::vector<double>::const_iterator& yEnd, const QuantLib::Matrix& zData) { return boost::shared_ptr<QuantLib::Extrapolator>( new QuantLib::BicubicSpline( xBegin, xEnd, yBegin, yEnd, zData)); } /* *** Initialization *** */ EnumClassRegistry::EnumClassRegistry() { REG_ENUM(QuantLib::StrikedTypePayoff, MAP("AssetOrNothing", ASSETORNOTHING_Payoff); MAP("CashOrNothing", CASHORNOTHING_Payoff); MAP("Gap", GAP_Payoff); MAP("PercentageStrike", PERCENTAGESTRIKE_Payoff); MAP("Vanilla", VANILLA_Payoff); MAP("SuperShare", SUPERSHARE_Payoff); ); REG_ENUM(QuantLib::PricingEngine, MAP("AB" ,AB_Engine); MAP("AC", AC_Engine); MAP("ACGAPA", ACGAPA_Engine); MAP("ADA", ADA_Engine); MAP("ADGAPA", ADGAPA_Engine); MAP("ADE", ADE_Engine); MAP("AE", AE_Engine); MAP("AP", AP_Engine); MAP("BAWA", BAWA_Engine); MAP("AEQPB", AEQPB_Engine); MAP("CRR", CRR_Engine); MAP("I", I_Engine); MAP("FDA", FDA_Engine); MAP("FDE", FDE_Engine); MAP("FDB", FDB_Engine); MAP("JR", JR_Engine); MAP("LR", LR_Engine); MAP("TIAN", TIAN_Engine); MAP("TRI", TRI_Engine); MAP("BSA", BSA_Engine); MAP("PE", PE_Engine); MAP("SE", SE_Engine); MAP("FE", FE_Engine); MAP("FPE", FPE_Engine); MAP("QE", QE_Engine); MAP("QFE", QFE_Engine); ); REG_ENUM(QuantLib::Extrapolator, MAP("BiLinear", BilinearInterpolation_Extrapolator); MAP("BiCubic", BicubicSpline_Extrapolator); ); } } |
|
From: Eric E. <eri...@us...> - 2006-06-29 13:06:30
|
Update of /cvsroot/quantlibaddin/QuantLibAddin In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv20964 Modified Files: QuantLibObjects.vcproj QuantLibObjects_vc8.vcproj Log Message: rename "Enumeration" -> "EnumeratedType", "ComplexType" -> "EnumeratedClass" Index: QuantLibObjects_vc8.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/QuantLibObjects_vc8.vcproj,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** QuantLibObjects_vc8.vcproj 27 Jun 2006 09:54:19 -0000 1.23 --- QuantLibObjects_vc8.vcproj 29 Jun 2006 13:06:24 -0000 1.24 *************** *** 330,334 **** > <File ! RelativePath="qlo\enumregistry.cpp" > </File> --- 330,334 ---- > <File ! RelativePath="qlo\enumtyperegistry.cpp" > </File> *************** *** 791,795 **** </File> <File ! RelativePath="qlo\complextyperegistry.cpp" > </File> --- 791,795 ---- </File> <File ! RelativePath="qlo\enumclassregistry.cpp" > </File> Index: QuantLibObjects.vcproj =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/QuantLibObjects.vcproj,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** QuantLibObjects.vcproj 26 Jun 2006 21:31:02 -0000 1.16 --- QuantLibObjects.vcproj 29 Jun 2006 13:06:24 -0000 1.17 *************** *** 335,339 **** Filter=""> <File ! RelativePath="qlo\enumregistry.cpp"> </File> <File --- 335,339 ---- Filter=""> <File ! RelativePath="qlo\enumtyperegistry.cpp"> </File> <File *************** *** 693,697 **** </File> <File ! RelativePath="qlo\complextyperegistry.cpp"> </File> <File --- 693,697 ---- </File> <File ! RelativePath="qlo\enumclassregistry.cpp"> </File> <File |
|
From: Eric E. <eri...@us...> - 2006-06-29 10:47:37
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/qlo In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv24479/qlo Modified Files: complextyperegistry.cpp typefactory.hpp typeregistry.hpp Log Message: rename "Enumeration" -> "EnumeratedType", "ComplexType" -> "EnumeratedClass" Index: complextyperegistry.cpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/complextyperegistry.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** complextyperegistry.cpp 29 Jun 2006 10:14:44 -0000 1.2 --- complextyperegistry.cpp 29 Jun 2006 10:47:33 -0000 1.3 *************** *** 235,239 **** /* *** Initialization *** */ ! ComplexTypeRegistry::ComplexTypeRegistry() { REG_ENUM(QuantLib::StrikedTypePayoff, MAP("AssetOrNothing", ASSETORNOTHING_Payoff); --- 235,239 ---- /* *** Initialization *** */ ! EnumClassRegistry::EnumClassRegistry() { REG_ENUM(QuantLib::StrikedTypePayoff, MAP("AssetOrNothing", ASSETORNOTHING_Payoff); Index: typeregistry.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typeregistry.hpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** typeregistry.hpp 19 May 2006 16:56:16 -0000 1.1 --- typeregistry.hpp 29 Jun 2006 10:47:33 -0000 1.2 *************** *** 42,55 **** }; ! class EnumRegistry : public Registry, public QuantLib::Singleton<EnumRegistry> { ! friend class QuantLib::Singleton<EnumRegistry>; private: ! EnumRegistry(); }; ! class ComplexTypeRegistry : public Registry, public QuantLib::Singleton<ComplexTypeRegistry> { ! friend class QuantLib::Singleton<ComplexTypeRegistry>; private: ! ComplexTypeRegistry(); }; } --- 42,55 ---- }; ! class EnumTypeRegistry : public Registry, public QuantLib::Singleton<EnumTypeRegistry> { ! friend class QuantLib::Singleton<EnumTypeRegistry>; private: ! EnumTypeRegistry(); }; ! class EnumClassRegistry : public Registry, public QuantLib::Singleton<EnumClassRegistry> { ! friend class QuantLib::Singleton<EnumClassRegistry>; private: ! EnumClassRegistry(); }; } Index: typefactory.hpp =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/qlo/typefactory.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** typefactory.hpp 29 Jun 2006 10:14:44 -0000 1.6 --- typefactory.hpp 29 Jun 2006 10:47:33 -0000 1.7 *************** *** 66,70 **** template<typename T> ! class Create : private RegistryManager<T, EnumRegistry> { public: T operator()(const std::string& id) { --- 66,70 ---- template<typename T> ! class Create : private RegistryManager<T, EnumTypeRegistry> { public: T operator()(const std::string& id) { *************** *** 72,76 **** } T *checkType(const std::string& id) { ! return RegistryManager<T, EnumRegistry>::checkType(id); } }; --- 72,76 ---- } T *checkType(const std::string& id) { ! return RegistryManager<T, EnumTypeRegistry>::checkType(id); } }; *************** *** 78,82 **** template<> class Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> > : ! private RegistryManager<QuantLib::StrikedTypePayoff, ComplexTypeRegistry> { public: boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()(const std::string& optionTypeID, --- 78,82 ---- template<> class Create<boost::shared_ptr<QuantLib::StrikedTypePayoff> > : ! private RegistryManager<QuantLib::StrikedTypePayoff, EnumClassRegistry> { public: boost::shared_ptr<QuantLib::StrikedTypePayoff> operator()(const std::string& optionTypeID, *************** *** 93,97 **** template<> class Create<boost::shared_ptr<QuantLib::PricingEngine> > : ! private RegistryManager<QuantLib::PricingEngine, ComplexTypeRegistry> { public: boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID, --- 93,97 ---- template<> class Create<boost::shared_ptr<QuantLib::PricingEngine> > : ! private RegistryManager<QuantLib::PricingEngine, EnumClassRegistry> { public: boost::shared_ptr<QuantLib::PricingEngine> operator()(const std::string& engineID, *************** *** 105,109 **** template<> class Create<boost::shared_ptr<QuantLib::Extrapolator> > : ! private RegistryManager<QuantLib::Extrapolator, ComplexTypeRegistry> { public: boost::shared_ptr<QuantLib::Extrapolator> operator() ( --- 105,109 ---- template<> class Create<boost::shared_ptr<QuantLib::Extrapolator> > : ! private RegistryManager<QuantLib::Extrapolator, EnumClassRegistry> { public: boost::shared_ptr<QuantLib::Extrapolator> operator() ( |
|
From: Eric E. <eri...@us...> - 2006-06-29 10:47:37
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv24479/gensrc/metadata Modified Files: utilities.xml Log Message: rename "Enumeration" -> "EnumeratedType", "ComplexType" -> "EnumeratedClass" Index: utilities.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/utilities.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** utilities.xml 19 Jun 2006 08:10:01 -0000 1.2 --- utilities.xml 29 Jun 2006 10:47:33 -0000 1.3 *************** *** 21,28 **** </Procedure> ! <Procedure name='qlListRegisteredEnums'> ! <description>return the names of all registered enums</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::EnumRegistry::instance().getAllRegisteredTypes</alias> <ParameterList> <Parameters/> --- 21,28 ---- </Procedure> ! <Procedure name='qlListEnumeratedTypes'> ! <description>list supported enumerated types</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::EnumTypeRegistry::instance().getAllRegisteredTypes</alias> <ParameterList> <Parameters/> *************** *** 31,42 **** <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of names of registered enums</description> </ReturnValue> </Procedure> ! <Procedure name='qlListEnum'> ! <description>return the members of a given enumeration</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::EnumRegistry::instance().getTypeElements</alias> <ParameterList> <Parameters> --- 31,42 ---- <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of enumerated types</description> </ReturnValue> </Procedure> ! <Procedure name='qlEnumeratedType'> ! <description>return the members of a given enumerated type</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::EnumTypeRegistry::instance().getTypeElements</alias> <ParameterList> <Parameters> *************** *** 44,48 **** <type>string</type> <tensorRank>scalar</tensorRank> ! <description>name of the enum to list</description> </Parameter> </Parameters> --- 44,48 ---- <type>string</type> <tensorRank>scalar</tensorRank> ! <description>name of enumerated type</description> </Parameter> </Parameters> *************** *** 51,62 **** <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of the members of the specified enumeration</description> </ReturnValue> </Procedure> ! <Procedure name='qlListRegisteredTypes'> ! <description>return the names of all registered complex types</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::ComplexTypeRegistry::instance().getAllRegisteredTypes</alias> <ParameterList> <Parameters/> --- 51,62 ---- <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of members of given enumerated type</description> </ReturnValue> </Procedure> ! <Procedure name='qlListEnumeratedClasses'> ! <description>list supported enumerated classes</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::EnumClassRegistry::instance().getAllRegisteredTypes</alias> <ParameterList> <Parameters/> *************** *** 65,76 **** <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of names of registered enums</description> </ReturnValue> </Procedure> ! <Procedure name='qlListType'> ! <description>return the members of a given complex type</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::ComplexTypeRegistry::instance().getTypeElements</alias> <ParameterList> <Parameters> --- 65,76 ---- <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of enumerated classes</description> </ReturnValue> </Procedure> ! <Procedure name='qlEnumeratedClass'> ! <description>return the members of a given enumerated class</description> <functionCategory>QuantLib</functionCategory> ! <alias>QuantLibAddin::EnumClassRegistry::instance().getTypeElements</alias> <ParameterList> <Parameters> *************** *** 78,82 **** <type>string</type> <tensorRank>scalar</tensorRank> ! <description>name of the complex type to list</description> </Parameter> </Parameters> --- 78,82 ---- <type>string</type> <tensorRank>scalar</tensorRank> ! <description>name of enumerated class</description> </Parameter> </Parameters> *************** *** 85,89 **** <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of the members of the specified enumeration</description> </ReturnValue> </Procedure> --- 85,89 ---- <type>string</type> <tensorRank>vector</tensorRank> ! <description>list of members of given enumerated class</description> </ReturnValue> </Procedure> |
|
From: Eric E. <eri...@us...> - 2006-06-29 10:47:37
|
Update of /cvsroot/quantlibaddin/QuantLibAddin In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv24479 Modified Files: NEWS.txt todo.csv Log Message: rename "Enumeration" -> "EnumeratedType", "ComplexType" -> "EnumeratedClass" Index: NEWS.txt =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/NEWS.txt,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NEWS.txt 19 May 2006 16:56:16 -0000 1.1 --- NEWS.txt 29 Jun 2006 10:47:32 -0000 1.2 *************** *** 28,31 **** --- 28,39 ---- qlSwapFixedLeg qlSwapGetFixLeg qlSwapFloatLeg qlSwapGetFloatLeg + - revise processing for Enumerations: blah blah blah. + rename "Enumeration" -> "EnumeratedType", "ComplexType" -> "EnumeratedClass" + rename associated functions: + 0.3.12 0.3.13 + qlListRegisteredEnums qlListEnumeratedTypes + qlListEnum qlEnumeratedType + qlListRegisteredTypes qlListEnumeratedClasses + qlListType qlEnumeratedClass CALC Index: todo.csv =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/todo.csv,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** todo.csv 29 Jun 2006 10:14:44 -0000 1.22 --- todo.csv 29 Jun 2006 10:47:32 -0000 1.23 *************** *** 1,5 **** "project","subproject","task","status","hours","priority","comp date","comment" ,,,,,,, - "QLA","Enumerations","rename Enumerations->Enumerated Types (ETs), Complex Types->Enumerated Classes (ECs)","in progress",0,,, "QLA","Enumerations","implement autogeneration of source code for ECs","in progress",2,,, "QLA","Enumerations","remove PricingEngine, StrikedTypePayoff from EC and implement as normal objects","in progress",4,,, --- 1,4 ---- *************** *** 10,15 **** "QLA","Enumerations","remove Create<> code from QLO ctors Create<> code to appear only in autogenerated Addin code","cancelled",0,,,"this is required when QLO classes wrap ECs" "QLA","Enumerations","ET ctors use explicit ctors instead of default i.e. use ""HongKong::HKEx"" not ""HongKong""","in progress",0,,, ! "QLA","Enumerations","QLO ctors which switch on ETs implement for YieldTermStructure, LinearInterpolation, PricingEngine(?)","in progress",4,,, "QLA","Enumerations","port ET/EC registry from QuantLibXL to ObjectHandler","on hold","- -",,,"requires redesign to allow multiple XLLs to share global Registry" ,,,,,,, "OH","Design","""singleton"" objects loaded at startup, static handle Calendars, Indexes","cancelled",,2,,"lazy instantiation?" --- 9,15 ---- "QLA","Enumerations","remove Create<> code from QLO ctors Create<> code to appear only in autogenerated Addin code","cancelled",0,,,"this is required when QLO classes wrap ECs" "QLA","Enumerations","ET ctors use explicit ctors instead of default i.e. use ""HongKong::HKEx"" not ""HongKong""","in progress",0,,, ! "QLA","Enumerations","QLO ctors which switch on ETs implement for YieldTermStructure, LinearInterpolation, PricingEngine(?)","in progress",4,,,"done for 2D interpolation" "QLA","Enumerations","port ET/EC registry from QuantLibXL to ObjectHandler","on hold","- -",,,"requires redesign to allow multiple XLLs to share global Registry" + "QLA","Enumerations","rename Enumerations->Enumerated Types (ETs), Complex Types->Enumerated Classes (ECs)","done",0,,"29/06/2006", ,,,,,,, "OH","Design","""singleton"" objects loaded at startup, static handle Calendars, Indexes","cancelled",,2,,"lazy instantiation?" |
|
From: Eric E. <eri...@us...> - 2006-06-29 10:14:51
|
Update of /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv10095/gensrc/metadata Modified Files: enumerations.xml interpolation.xml Log Message: implement Extrapolator as complex type Index: enumerations.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/enumerations.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** enumerations.xml 29 Jun 2006 07:18:30 -0000 1.14 --- enumerations.xml 29 Jun 2006 10:14:44 -0000 1.15 *************** *** 77,91 **** </Enumeration> ! <Enumeration> ! <type>QuantLibAddin::Interpolation2DType</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>BiLinear</string> ! <value>QuantLibAddin::BiLinear</value> </EnumerationDefinition> <EnumerationDefinition> <string>BiCubic</string> ! <value>QuantLibAddin::BiCubic</value> </EnumerationDefinition> </EnumerationDefinitions> --- 77,91 ---- </Enumeration> ! <Enumeration documentationOnly='true'> ! <type>QuantLib::Extrapolator</type> <constructor>true</constructor> <EnumerationDefinitions> <EnumerationDefinition> <string>BiLinear</string> ! <value>QuantLib::BiLinearInterpolation</value> </EnumerationDefinition> <EnumerationDefinition> <string>BiCubic</string> ! <value>QuantLib::BiCubicSpline</value> </EnumerationDefinition> </EnumerationDefinitions> Index: interpolation.xml =================================================================== RCS file: /cvsroot/quantlibaddin/QuantLibAddin/gensrc/metadata/interpolation.xml,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** interpolation.xml 23 Jun 2006 17:18:14 -0000 1.15 --- interpolation.xml 29 Jun 2006 10:14:44 -0000 1.16 *************** *** 11,15 **** </includes> <copyright> ! Copyright (C) 2006 Ferdinando Ametrano </copyright> <Functions> --- 11,15 ---- </includes> <copyright> ! Copyright (C) 2006 Ferdinando Ametrano </copyright> <Functions> *************** *** 585,589 **** <ParameterList> <Parameters> ! <Parameter name='type' enumeration='QuantLibAddin::Interpolation2DType'> <type>string</type> <tensorRank>scalar</tensorRank> --- 585,589 ---- <ParameterList> <Parameters> ! <Parameter name='type'> <type>string</type> <tensorRank>scalar</tensorRank> |