Repository navigation
🧮 LibItoFin v0.51.0
·
42 commits
to main
since this release
0.51.0 (2026-11-10)
⚠ BREAKING CHANGES
- interestrate: composite compoundings (SimpleThenCompounded, CompoundedThenSimple) now return an error outside the CashFlows yield methods. Affected: Rust InterestRate::{compound_factor*, discount_factor*, implied_rate*, equivalent_rate*}, FlatForward and zero_rate/forward_rate with composite, ZeroSpreadedTermStructure, CashFlows::{npv_at_z_spread, z_spread}, BondFunctions::z_spread, callable oas/clean_price_oas/effective_duration/effective_convexity; C itofin_bond_z_spread, itofin_cashflows_*z_spread, itofin_callable_bond_*oas, itofin_callable_bond_effective_{duration,convexity}; Go CleanPriceAtZSpread/DirtyPriceAtZSpread/ZSpread, callable OAS and EffectiveDuration/EffectiveConvexity; Python z_spread, *_at_z_spread, npv_at_z_spread, oas, clean_price_oas, effective_duration, effective_convexity. Compounding enum values 3/4 are kept.
- basis-helpers: OvernightIborBasisSwapRateHelper now builds both legs backward from the unadjusted spot + tenor; maturity is the schedule end and the pillar also covers the last payment and the overnight index maturity off the last fixing. No signature change; the helper has no Go/Python/C binding.
- basis-helpers: IborIborBasisSwapRateHelper now builds both legs backward from the unadjusted spot + tenor; maturity, pillar and implied basis move for every default helper (Go NewIborIborBasisSwapRateHelper, Python IborIborBasisSwapRateHelper). No signature change.
- statistics: remove the public
MAX_SEQUENCE_ROWSandMAX_SEQUENCE_COMPONENTSconstants; SequenceStatistics no longer caps the row count (QuantLib behaviour).itofin_benchmark_betadrops its 100000-row check. (#1374)
📖 Behavior changes
not breaking, but worth knowing:
- #1407: on a weekend or holiday evaluation date, spot and start dates for MakeOIS, MakeVanillaSwap with explicit settlement days, and the Deposit, FRA and BMA helpers can move by one day.
- #1412: OptionletStripper2 now accepts Normal vols, and its spreads match v1.44.
- #1410/#1411: the calendar holiday tables are updated to v1.44.
🎁 Features
- basis-helpers: build basis swap legs backward from unadjusted spot (c780866), closes #1423 #1408
- basis-helpers: build overnight-Ibor basis legs backward to v1.44 (2b225bd), closes #1423 #1408
- crates: add C ABI for parameter sensitivity analysis (#1444) (110e6d4), closes #1360
- crates: add jumps to named Piecewise curve constructors (47a8849), closes #1388 #1388 #1388
- crates: add with_jumps_and_compounding to InterpolatedZeroCurve (efeab94), closes #1379 #1379
- curves: add jump support to Go SDK node curves (29c6607), closes #1388
- go: add Quote interface with derived and composite quotes (e4bbc6d), closes #1359
- indonesia: extend holiday tables through 2026 (0ed8978), closes #1411 #1411
- interestrate: add discount factor first and second derivatives (ec6ca33), closes #1405 #1405
- itofin-py: add optional jumps to node curve constructors (1793ab8), closes #1388
- libitofin-ffi: add derived and composite quotes to the C ABI (e0736a5), closes #1359
- libitofin-ffi: add node curve with jumps C ABI twin (f53a643), closes #1388
- optionlet: route Stripper2 pricing by source volatility type (3996ccb), closes #1412 #1412
- quotes: add Quote base with DerivedQuote and CompositeQuote (b28b1fa), closes #1359 #1359
- saudi-arabia: adopt QuantLib v1.44 Eid windows and Founding Day (e5f12ac), closes #1411
- statistics: remove fixed row and component caps from SequenceStatistics (#1431) (f29c5f9), closes #1374 #1374
- termstructures: add GlobalBootstrap::with_initial_guess_fn override (c330779), closes #1409
- termstructures: seed GlobalBootstrap from Traits::globalGuess (a38e732), closes #1409 #1409
♨️ CI, Workflows & Configs
🪲 Bug Fixes
- cashflows: port QuantLib 1.44 stepwise yield analytics (b53a39a), closes #1405 #1406
- crates: align Indonesia calendar with QuantLib v1.44 (8965ffb), closes #1411
- crates: sync calendars with QuantLib v1.44 holiday tables (68f15d8), closes #1421 #1410 #1410
- example: align python commit-msg regex with root config (#1436) (2106ce0), closes #1431 #1434
- instruments: count settlement days from unadjusted evaluation date (befee59), closes #1423 #1407
- interestrate: reject composite compoundings outside CashFlows (QuantLib 1.44) (7eb919c), closes #1406
- optionlet: adjust exactly leg.size() optionlets in stripper2 (cafaf56), closes #1412
- optionlet: port v1.44 OptionletStripper2 bracketed spread solve (36c862f), closes #1412
- optionlet: propagate solve objective errors and tighten spread tolerance (aea7bd7), closes #1412
- yields: count helper fixing days from unadjusted eval date (6532cff), closes #1423 #1407
Go bindings
Install github.com/bitbrew-dev/libitofin/sdk/go@v0.51.0 with Go 1.27.1. The native archives and SHA-256 checksums are attached below for Linux amd64, Linux arm64, macOS amd64, and macOS arm64. cgo, a C compiler, and the matching native package are required. See the installation guide.
Windows amd64 native Go package (GNU/MinGW) is available with its SHA-256 checksum; use a matching MinGW cgo compiler.