Skip to main content

aadc-quantlib-tracing

The aadc-quantlib build that can tell you which line of C++ produced each number.

This is the same QuantLib 1.38 with Real = idoubleNG, from the same sources as aadc-quantlib, compiled through the AADC source-tracing pass. The prices and sensitivities are identical. What it adds is attribution: after recording, every hardcoded constant and every frozen branch inside the library can be traced back to the C++ file, line and enclosing function that produced it.

It is a diagnostic and model-validation build, not the production one. Install aadc-quantlib for pricing; install this alongside it when you need to answer "where did this number come from?".

Install

pip install aadc-quantlib-tracing

Linux x86-64 only, CPython 3.10–3.14. There is no macOS, Windows or arm64 build: the tracing pass is an LLVM plugin that runs in one container image. aadc-quantlib itself ships on all four platforms — only this variant is restricted.

It installs beside aadc-quantlib rather than replacing it: separate distribution, separate import name, so both can be present in one environment and you choose per import. Do not expect import aadc_quantlib to pick this up.

The import is aadc_quantlib_tracing

from aadc_quantlib_tracing import QuantLib as ql

What it shows you

import aadc
from aadc_quantlib_tracing import QuantLib as ql

f = aadc.Functions()
f.start_recording(trace=True, trace_inputs_as_random=True)
# ... build and price an instrument with the QuantLib API ...
f.stop_recording()

for leaf in f.traced_leaves():
    print(f"{leaf['file']}:{leaf['line']}  {leaf['function']}  = {leaf['value']}")

for w in f.passive_warnings():
    print(f"frozen branch at {w['file']}:{w['line']}")

traced_leaves() reports the constants the library itself supplies — day-count denominators, tolerances, comparison epsilons — each with its declaration site and its record-time value. passive_warnings() reports every place a decision was frozen into the tape at recording time, which is where a replay at different inputs can silently follow the wrong branch.

Together they answer a question no amount of reading the Python can: what does this pricing actually depend on, including the parts nobody passed in?

Costs, stated plainly

  • Size. ~43 MB per wheel against ~32 MB for aadc-quantlib, and the unpacked library is substantially larger — the attribution index is ~34 MB of the shipped libQuantLib.
  • Not faster. Tracing changes what the recording remembers, not how fast it replays. Use aadc-quantlib for throughput.
  • Attribution follows inlining. It is compiled -O2 -g, which is what makes the attribution point at real call sites. Do not expect debugger-grade stepping.

What it does not contain

The shipped library carries no DWARF debug sections and no symbol table — it is stripped like any release build. The attribution index stores source locations, not source text: no QuantLib or Matlogica source code is embedded in the wheel.

Licence

Proprietary — Matlogica. LICENSE.txt in the installed aadc_quantlib_tracing-<version>.dist-info/licenses/ is the AADC Community Edition Licence Agreement; non-commercial and academic use only, with commercial and full-performance academic licences available from info@matlogica.com. THIRD-PARTY-NOTICES.txt beside it covers QuantLib, Boost and the other bundled third-party components.

importlib.metadata.version("aadc-quantlib-tracing") reports the wheel version.

Release files for aadc-quantlib-tracing 1.38.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for aadc-quantlib-tracing 1.38.9
File
aadc_quantlib_tracing-1.38.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
aadc_quantlib_tracing-1.38.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
aadc_quantlib_tracing-1.38.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
aadc_quantlib_tracing-1.38.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details
aadc_quantlib_tracing-1.38.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.24+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 223.3 MB

Release files / aadc_quantlib_tracing-1.38.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL aadc_quantlib_tracing-1.38.9-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 44.7 MB
Tags CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6f000051b2b63b104ce6acc6e4ac4e53ddb50b8e29db44d9a6c1ce8b2dcaf529
BLAKE2b-256 checksum
How to use checksums
c8159963886b6c12033be7e90cb5e2edd2f64398416619f45b3d338f919d11af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / aadc_quantlib_tracing-1.38.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL aadc_quantlib_tracing-1.38.9-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 44.7 MB
Tags CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d79a8b9db22cf0deb59361b0b00187948d9ca644bbe0eeb4bd1ad14b5326fe29
BLAKE2b-256 checksum
How to use checksums
f470035a477b0c84531396fc2ff6e75c5e1db1c2d3f455cfafe29dcd002fd3a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / aadc_quantlib_tracing-1.38.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL aadc_quantlib_tracing-1.38.9-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 44.7 MB
Tags CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e7cd9000a0eca6d4853b97268d84c03f963c0df99a4249a2b1dde3e39e1b6742
BLAKE2b-256 checksum
How to use checksums
7ddc316b9c6c756a9d18d1c52e47c4834f154cf23f613e6ead46b752db2ab53d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / aadc_quantlib_tracing-1.38.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL aadc_quantlib_tracing-1.38.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 44.6 MB
Tags CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
73e3881837c1a86500600402138c06b60a282e7a26be86bcc6d2070eae54faae
BLAKE2b-256 checksum
How to use checksums
463a54322d00f2d403228bfb28d4ee0cdfd8405d3e2dacbf1a6328e7bf276dcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release files / aadc_quantlib_tracing-1.38.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL aadc_quantlib_tracing-1.38.9-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 44.6 MB
Tags CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d68d7882c57c27f632fd5f5f74f1d7c3a3bb5564d7ef377b4b6796897205d9b0
BLAKE2b-256 checksum
How to use checksums
efd22f32f7e480ea7ab825a3b2a2904eebce2a0c88b6250a4574be6b1b260575
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.2

Release history Release notifications | RSS feed

This release

1.38.9 This release

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page