QuantLib 1.37 includes 27 pull requests from several contributors.
Some of the most notable changes are included below. A detailed list of changes is available in ChangeLog.txt and at https://github.com/lballabio/QuantLib/milestone/35?closed=1.
- Future change of default: as already announced, in the next
release we're going to switch the default for
ext::anyandext::optionalfrom the Boost implementation to the standard one.
-
Added closure for President Carter's funeral to the NYSE calendar; thanks to Dirk Eddelbuettel (@eddelbuettel).
-
Added distinct Wellington and Auckland variants for New Zealand calendar (@lballabio).
-
Improved the performance of the
addFixingandaddFixingsmethod in theIndexclass; thanks to Peter Caspers (@pcaspers). -
Added the KOFR index; thanks to Jongbong An (@jongbongan).
-
Added Choi pricing engine for Asian options; thanks to Klaus Spanderen (@klausspanderen).
-
Passing a risk-free overnight index to an asset swap now implies using OIS-like coupons (@lballabio).
-
Added Bjerksund-Stensland, Operator-Splitting, Deng-Li-Zhou, Choi and n-dim PDE engines for spread options; thanks to Klaus Spanderen (@klausspanderen).
-
Deng-Li-Zhou, Choi and n-dim PDE engines for basket options; thanks to Klaus Spanderen (@klausspanderen).
-
Possibly breaking: better upper and lower bounds for global bootstrap; thanks to Eugene Toder (@eltoder). If you created your own bootstrap traits, you'll need to add
transformDirectandtransformInversemethods for them to work with theGlobalBootstrapclass. -
Fitted bond curves can now be passed precomputed parameters without the need for bond helpers (@lballabio).
-
Use correct guess in SABR swaption vol cube (@lballabio).
-
OIS rate helpers can now be passed a date-generation rule; thanks to Sotirios Papathanasopoulos (@sophistis42).
-
Swap rate helpers can now be passed explicit start and end dates; thanks to Eugene Toder (@eltoder).
-
OIS rate helpers can now be passed explicit start and end dates, making a distinct
DatedOISRateHelperclass unnecessary; thanks to Eugene Toder (@eltoder).
- Added new
MultipleResetsCouponandMultipleResetsLegclasses to manage coupons with multiple resets (@lballabio). They fix and replaceSubPeriodsCouponandSubPeriodsLeg.
-
Removed features deprecated in version 1.32:
- the
FixedRateBondForwardclass; - the
SampledCurveandSampledCurveSetclasses; - the
StepConditionSetandBoundaryConditionSetclasses; - the
ParallelEvolverandParallelEvolverTraitsclasses; - the
FDVanillaEngineandFDMultiPeriodEngineclasses; - the
BSMTermOperator,StandardFiniteDifferenceModel,StandardSystemFiniteDifferenceModelandStandardStepConditiontypedefs; - the
QL_NULL_FUNCTIONmacro; - the overloads of
DigitalCmsLeg::withReplication,DigitalCmsSpreadLeg::withReplicationandDigitalIborLeg::withReplicationtaking no arguments; - the empty headers
analyticamericanmargrabeengine.hpp,analyticcomplexchooserengine.hpp,analyticcomplexchooserengine.hpp,analyticcompoundoptionengine.hpp,analyticeuropeanmargrabeengine.hpp,analyticsimplechooserengine.hpp,complexchooseroption.hpp,compoundoption.hpp,margrabeoption.hppandsimplechooseroption.hppin theql/experimental/exoticoptionsfolder; - the empty header
ql/experimental/termstructures/multicurvesensitivities.hpp; - the empty headers
pdeshortrate.hppandshoutcondition.hppin theql/methods/finitedifferencesfolder; - the empty header
ql/models/marketmodels/duffsdeviceinnerproduct.hpp; - the empty headers
fdconditions.hpp,fddividendengine.hppandfdstepconditionengine.hppin theql/pricingengines/vanillafolder.
- the
-
Deprecated the
SubPeriodsCoupon,SubPeriodsPricer,AveragingRatePricerandCompoundingRatePricerclasses; renamed toMultipleResetsCoupon,MultipleResetsPricer,AveragingMultipleResetsPricerandCompoundingMultipleResetsPricer, respectively. -
Deprecated the
SubPeriodsLegclass; useMultipleResetsLeginstead. -
Deprecated the
MultipleResetsCouponconstructor without a reset schedule; use the other constructor. -
Deprecated the
calendar,price,addQuote,addQuotes,clearQuotes,isValidQuoteDateandquotesmethods in theCommodityIndexclass; usefixingCalendar,fixing,addFixing,addFixings,clearFixings,isValidFixingDateandtimeSeriesinstead. -
Deprecated the experimental
SpreadOptionandKirkSpreadOptionEngineclasses; useBasketOptionandKirkEngineinstead. -
Deprecated the
TransformedGridandLogGridclasses and theCenteredGrid,BoundedGridandBoundedLogGridfunctions; use the new FD framework instead. -
Deprecated the
PdeOperatorandBSMOperatorclasses; use the new FD framework instead. -
Deprecated the
PdeSecondOrderParabolic,PdeConstantCoeff,PdeBSMandGenericTimeSetterclasses; use the new FD framework instead. -
Deprecated the
hasHistory,getHistory,clearHistory,hasHistoricalFixingandsetHistoryin theIndexManagerclass; useIndex::hasHistoricalFixing,Index::timeSeries,Index::clearFixings,Index::hasHistoricalFixingandIndex::addFixingsinstead. -
Deprecated the
notifiermethod in theIndexManagerclass; register with the relevant index instead. -
Deprecated one of the
AssetSwapconstructors; use the other overload. -
Deprecated the
fcnandjacFcnmethods in theLevenbergMarquardtclass; they are for internal use only. -
Deprecated the
indexIsInterpolatedparameter in YoY inflation curve constructors; use another overload. Fixings will be interpolated by coupons instead, so curves and indexes will only be asked for fixing at the start of a month. -
Deprecated the
indexIsInterpolatedmethod and theindexIsInterpolated_data member in theYoYInflationTermStructureclass. -
Deprecated the
DatedOISRateHelperclass; useOISRateHelperinstead.
Thanks go also to Eugene Toder (@eltoder), Ben Watson (@sonben) and the XAD team (@auto-differentiation-dev) for miscellaneous smaller fixes, improvements or reports.