Skip to content

nanoql 2.1

Choose a tag to compare

@github-actions github-actions released this 07 Nov 00:21
· 23 commits to main since this release
Immutable release. Only release title and notes can be modified.

Added

  • The C++ layer: each platform's C archive carries nanoql.hpp, C++17 over nanoql.h, and a CMake package in
    lib/cmake/nanoql/: find_package(nanoql CONFIG) gives nanoql::cpp and nanoql::c, and a version request
    follows CMake's SameMajorVersion rule. The C++ page covers installing, CMake and a first program
    (#7).
  • nanoql-bind writes the C++ layer for a library of your own: cpp, and build's include/ beside the C
    headers.
  • Migrating from QuantLib's C++: a guide pairs QuantLib's C++ with nanoql's
    C++ layer for the rates products, beside the QuantLib-Python and QLNet guides.

Fixed

  • Python: OISRateHelper's tenor form and SwapRateHelper's two forms taking a rate can be called without
    forward_start or fwd_start, as their defaults allow; they raised "no overload takes these arguments" (#8).

Validation

  • The coverage figures count only the lines a test executes: the test data the runner built while discovering the
    tests no longer counts as covered, so the same tests read slightly lower figures than 2.0's.

Known limits

  • The Excel add-ins are unsigned. A firm whose Excel requires add-ins signed by a trusted publisher signs the .xll
    with its own certificate.
  • The add-ins run on the .NET 10 Desktop Runtime, Excel-DNA's just-in-time path, not compiled to native code.
  • The bindings, the C++ layer among them, cover Windows x64 and Linux x64 (glibc 2.28 or later); Windows Arm64,
    Linux Arm64 and macOS on Apple silicon follow in later releases, and Intel Macs have none, though nanoql's .NET
    library runs there.
  • Python 3.11 or later.
  • The Java layer is built and tested in the repository and not released.

The platforms in this release's run

  • Windows x64: 8,622 of 8,622 tests pass, the reference platform.
  • Linux x64: 8,549 of 8,622 tests pass; 73 fail, reported and not blocking: NanoQL.Tests.Conventions.HestonSlvMcQualityMaximumTests.TheCalibrationsLargestErrorIsWithinFifteenBasisPoints, NanoQL.Tests.Divergences.AbcdCalibrationGuardTests.TheFitsQuantLibCompletesKeepItsBits(set: 5, a: 0.45336334464724903, b: -1.4254877636528123, c: 1.5935876342523034, d: 0.26597942707915356), NanoQL.Tests.Divergences.CalibrationBasketNominalTests.AFlippedSolutionKeepsItsNominal, NanoQL.Tests.Divergences.CirFellerConstraintTests.ACalibrationWithTheSpeedAndLevelFixedIsQuantLibs, NanoQL.Tests.Divergences.CmsCalibrationGuessTests.TheFixedPathStartsAtTheGuess, NanoQL.Tests.Divergences.CmsCalibrationReversionTransformTests.TheLevenbergMarquardtFitsKeepQuantLibsValues, NanoQL.Tests.Divergences.CmsCalibrationReversionTransformTests.TheSimplexFitsHaveAFiniteReversion, NanoQL.Tests.Divergences.CrossCurrencySwapCompoundedSpreadFairSpreadTests.TheBasisSwapsCompoundingLegsFairSpreadIsSolved, NanoQL.Tests.Divergences.CrossCurrencySwapCompoundedSpreadFairSpreadTests.TheFixedVsFloatingSwapsCompoundingLegsFairSpreadIsSolved, NanoQL.Tests.Divergences.CrossCurrencySwapCompoundedSpreadFairSpreadTests.TheMtMSwapsCompoundingLegsFairSpreadIsSolved and 63 more.
  • macOS Arm64: 8,546 of 8,622 tests pass; 76 fail, reported and not blocking: NanoQL.Tests.Conventions.BoostSignTests.TheSignOfANaNIsItsSignBit, NanoQL.Tests.Divergences.AbcdCalibrationGuardTests.TheFitsQuantLibCompletesKeepItsBits(set: 5, a: 0.45336334464724903, b: -1.4254877636528123, c: 1.5935876342523034, d: 0.26597942707915356), NanoQL.Tests.Divergences.BetaRiskTests.AMultiEventPathMovesItsLaterDatesOnly, NanoQL.Tests.Divergences.CTSMMCapletAlphaFormCalibrationTests.ACalibrationWhoseReturnedPassFitsKeepsQuantLibsNumbers, NanoQL.Tests.Divergences.CalibrationBasketNominalTests.AFlippedSolutionKeepsItsNominal, NanoQL.Tests.Divergences.CirFellerConstraintTests.ACalibrationWithTheSpeedAndLevelFixedIsQuantLibs, NanoQL.Tests.Divergences.CmsCalibrationGuessTests.TheFixedPathStartsAtTheGuess, NanoQL.Tests.Divergences.CmsCalibrationReversionTransformTests.TheLevenbergMarquardtFitsKeepQuantLibsValues, NanoQL.Tests.Divergences.CmsCalibrationReversionTransformTests.TheSimplexFitsHaveAFiniteReversion, NanoQL.Tests.Divergences.CrossCurrencySwapCompoundedSpreadFairSpreadTests.TheBasisSwapsCompoundingLegsFairSpreadIsSolved and 66 more.
  • The linux-x64 bindings: every check green.
  • The win-x64 bindings: every check green.