9 research outputs found
QuantLib: a free/open-source library for quantitative finance
<h1>Downloads:</h1>
<ul>
<li><a href="https://github.com/lballabio/QuantLib/releases/download/v1.32/QuantLib-1.32.tar.gz">QuantLib-1.32.tar.gz</a></li>
<li><a href="https://github.com/lballabio/QuantLib/releases/download/v1.32/QuantLib-1.32.zip">QuantLib-1.32.zip</a></li>
</ul>
<h1>Changes for QuantLib 1.32:</h1>
<p>QuantLib 1.32 includes 34 pull requests from several contributors.</p>
<p>Some of the most notable changes are included below. A detailed list of changes is available in ChangeLog.txt and at <a href="https://github.com/lballabio/QuantLib/milestone/29?closed=1">https://github.com/lballabio/QuantLib/milestone/29?closed=1</a>.</p>
<h2>Portability</h2>
<ul>
<li><strong>Possibly breaking change:</strong> the protected <code>evaluationDate_</code> data member of the <code>SwaptionVolatilityDiscrete</code> class was renamed to <code>cachedReferenceDate_</code>.</li>
<li><strong>Future end of support:</strong> we're targeting the future release 1.35 as the last to support Visual C++ 2015, g++ up to version 6.x, and clang up to version 4; support for those compilers will be dropped in release 1.36, about one year from now. From that point onwards, this will allows us to enable the use of C++17 in the code base.</li>
<li><strong>Future end of support:</strong> at the same time as the above, we'll also remove the configure switch that allows to use <code>boost::tuple</code>, <code>boost::function</code> and <code>boost::bind</code> instead of their <code>std</code> counterparts; starting from this release, the <code>std</code> classes are already the default.</li>
<li>Reorganized the CMake presets; thanks to the XAD team (@auto-differentiation-dev).</li>
</ul>
<h2>Cash flows</h2>
<ul>
<li>All cash flows are now lazy; thanks to Peter Caspers (@pcaspers).</li>
</ul>
<h2>Instruments</h2>
<ul>
<li>Overnight-indexed swaps can now have different schedules and nominals on the two legs; thanks to Tom Anderson (@tomwhoiscontrary).</li>
<li>Margrabe options, compound options and chooser options were moved from experimental to core (@lballabio).</li>
<li>Introduced common base class <code>FixedVsFloatingSwap</code> for vanilla swap and overnight-indexed swaps; this will be used in the future to help a few existing swap engines support OIS (@lballabio).</li>
<li>Added optional <code>redemptions</code> argument to amortizing bond constructors. This allows them to be used for pools of loans where a certain proportion of the underlying loans are subject to defaults and losses. Thanks to Gyan Sinha (@gyansinha).</li>
<li>It is now possible to manually prune the notification tree for swaps and bonds if one knows that the cashflows won't change pricer; thanks to Peter Caspers (@pcaspers).</li>
</ul>
<h2>Models</h2>
<ul>
<li>Fixed the algorithm to add instruments to the calibration set of the Markov model; thanks to Peter Caspers (@pcaspers) for the fix and Giuseppe Trapani (@lePidduN7) for the heads-up.</li>
</ul>
<h2>Term structures</h2>
<ul>
<li>Time-to-date conversion in some swaption volatility classes could return the wrong date before the first exercise date; this is now fixed, thanks to Peter Caspers (@pcaspers).</li>
<li>It's now possible to specify the maximum number of iteration for the solver inside a bootstrapped term structure; thanks to Jonathan Sweemer (@sweemer) for the change and Daniel Ángeles Ortiz (@Danie8) for the heads-up.</li>
<li>Reduced the number of notifications for bootstrap helpers; thanks to Peter Caspers (@pcaspers).</li>
</ul>
<h2>Random numbers</h2>
<ul>
<li>Added the xoshiro265** random-number generator; thanks to Ralf Konrad (@ralfkonrad). It is faster than the Mersenne Twister and might be used as default in the future.</li>
</ul>
<h2>Examples</h2>
<ul>
<li>The code of the examples has been modernized a bit; thanks to Jonathan Sweemer (@sweemer).</li>
</ul>
<h2>Patterns</h2>
<ul>
<li>Avoided a possible crash when using observables in a multi-threaded setting; thanks to Peter Caspers (@pcaspers).</li>
</ul>
<h2>Deprecated features</h2>
<ul>
<li><strong>Removed</strong> features deprecated in version 1.27:<ul>
<li>The <code>QL_NULL_INTEGER</code>, <code>QL_NULL_REAL</code>, <code>QL_NOEXCEPT</code>, <code>QL_CONSTEXPR</code> and <code>QL_USE_STD_UNIQUE_PTR</code> macros.</li>
<li>The <code>MultiCurveSensitivities</code> class.</li>
<li>The <code>constant</code>, <code>identity</code>, <code>square</code>, <code>cube</code>, <code>fourth_power</code>, <code>add</code>, <code>subtract</code>, <code>subtract_from</code>, <code>multiply_by</code>, <code>divide</code>, <code>divide_by</code>, <code>less_than</code>, <code>greater_than</code>, <code>greater_or_equal_to</code>, <code>not_zero</code>, <code>not_null</code>, <code>everywhere</code>, <code>nowhere</code>, <code>equal_within</code>, <code>clipped_function</code>, <code>clip</code>, <code>composed_function</code>, <code>compose</code>, <code>binary_compose3_function</code> and <code>compose3</code> functors.</li>
<li>The <code>PdeShortRate</code>, <code>ShoutCondition</code>, <code>FDShoutCondition</code>, <code>FDStepConditionEngine</code> and <code>FDEngineAdapter</code> classes from the old finite-differences framework.</li>
<li>The <code>dsd::inner_product</code> function.</li>
<li>The <code>FDDividendEngineBase</code>, <code>FDDividendEngineMerton73</code>, <code>FDDividendEngineShiftScale</code> and <code>FDDividendEngine</code> pricing engines.</li>
<li>The empty headers <code>ql/auto_ptr.hpp</code>, <code>ql/math/initializers.hpp</code>, <code>ql/methods/finitedifferences/americancondition.hpp</code>, <code>ql/methods/finitedifferences/onefactoroperator.hpp</code>, <code>ql/pricingengines/vanilla/fddividendshoutengine.hpp</code>, <code>ql/pricingengines/vanilla/fdshoutengine.hpp</code> and <code>ql/utilities/disposable.hpp</code>.</li>
</ul>
</li>
<li>Deprecated the overload of the <code>withReplication</code> method in the <code>DigitalIborLeg</code>, <code>DigitalCmsLeg</code> and <code>DigitalCmsSpreadLeg</code> classes that takes no arguments; use the other overload instead.</li>
<li>Deprecated the <code>StandardFiniteDifferenceModel</code>, <code>StandardSystemFiniteDifferenceModel</code> and <code>StandardStepCondition</code> typedefs; define your own typedefs if needed.</li>
<li>Deprecated the <code>FDVanillaEngine</code>, <code>FDMultiPeriodEngine</code>, <code>StepConditionSet</code>, <code>ParallelEvolverTraits</code>, <code>ParallelEvolver</code> and <code>SampledCurve</code>classes and the <code>BSMTermOperator</code> and <code>SampledCurveSet</code> typedefs; use the new finite-differences framework instead.</li>
<li>Deprecated the <code>QL_NULL_FUNCTION</code> macro; to check if a function is empty, use it in a bool context instead.</li>
<li>Deprecated the now empty headers <code>ql/experimental/exoticoptions/margrabeoption.hpp</code>, <code>ql/experimental/exoticoptions/analyticcomplexchooserengine.hpp</code>, <code>ql/experimental/exoticoptions/analyticeuropeanmargrabeengine.hpp</code>, <code>ql/experimental/exoticoptions/analyticcompoundoptionengine.hpp</code>, <code>ql/experimental/exoticoptions/simplechooseroption.hpp</code>, <code>ql/experimental/exoticoptions/compoundoption.hpp</code>, <code>ql/experimental/exoticoptions/analyticamericanmargrabeengine.hpp</code>, <code>ql/experimental/exoticoptions/analyticsimplechooserengine.hpp</code>, <code>ql/experimental/exoticoptions/complexchooseroption.hpp</code>, <code>ql/experimental/termstructures/multicurvesensitivities.hpp</code>, <code>ql/methods/finitedifferences/shoutcondition.hpp</code>, <code>ql/methods/finitedifferences/pdeshortrate.hpp</code>, <code>ql/pricingengines/vanilla/fddividendengine.hpp</code>, <code>ql/pricingengines/vanilla/fdstepconditionengine.hpp</code>, <code>ql/pricingengines/vanilla/fdconditions.hpp</code> and <code>ql/models/marketmodels/duffsdeviceinnerproduct.hpp</code>.</li>
</ul>
<p><strong>Thanks go also</strong> to Jonathan Sweemer (@sweemer), Ralf Konrad (@ralfkonrad), Klaus Spanderen (@klausspanderen), Peter Caspers (@pcaspers), Tom Anderson (@tomwhoiscontrary), Fredrik Gerdin Börjesson (@gbfredrik), Guillaume Horel (@thrasibule) and the XAD team (@auto-differentiation-dev) for a number of smaller fixes and improvements.</p>
<h2>New Contributors</h2>
<ul>
<li>@gyansinha made their first contribution in https://github.com/lballabio/QuantLib/pull/1790</li>
</ul>
<p><strong>Full Changelog</strong>: https://github.com/lballabio/QuantLib/compare/v1.31.1...v1.32</p>If you use this software, please cite it using these metadata