aadc-quantlib-tracing
The aadc-quantlib build that can tell you which line of C++ produced each
number.
This is QuantLib 1.41 with Real = idoubleNG, the same AADC type as
aadc-quantlib, compiled through the AADC source-tracing
pass. 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?".
How it differs from aadc-quantlib. This build is the level 1 integration:
stock QuantLib with Real bound to the AADC type and nothing else changed, so the
attribution points at QuantLib's own code. aadc-quantlib carries AAD-aware
replacements for some numerics (solvers, bootstraps), which record fewer frozen
branches. Prices and sensitivities agree at the point of recording. When a
recorded tape is replayed far from that point, this build follows more frozen
branches than aadc-quantlib and can drift where the production wheel would not
— treat its tapes as a diagnostic of this recording, and re-record rather than
reuse them for bump-and-replay at distant inputs.
Install
Pick the QuantLib line that matches your aadc-quantlib: the wheel's version
starts with the QuantLib version it wraps (1.38.* is QuantLib 1.38, 1.41.*
is QuantLib 1.41), and several lines are published under this one name.
pip install "aadc-quantlib-tracing==1.41.*"
An unpinned pip install aadc-quantlib-tracing resolves to the newest release
across every line, which is not necessarily the line of the aadc-quantlib you
already have.
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 shippedlibQuantLib. - Not faster. Tracing changes what the recording remembers, not how fast it
replays. Use
aadc-quantlibfor 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.
Metadata
Release files for aadc-quantlib-tracing 1.41.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 241.2 MB
Release files / aadc_quantlib_tracing-1.41.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | aadc_quantlib_tracing-1.41.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 48.3 MB |
| Tags | CPython 3.14 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1f4ea5c8184e410193f1ce5a6fe31deea7cfedfe591583f5ab482e02d4e993a5
|
|
BLAKE2b-256 checksum How to use checksums |
85928fbde4871143df092577310f142260c21b5971591a20c806fc360169b68a
|
| 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.41.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | aadc_quantlib_tracing-1.41.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 48.3 MB |
| Tags | CPython 3.13 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
fcf779e113642b21f637d7fca1df487707db180d2dc9a93f24f702d4b06969a6
|
|
BLAKE2b-256 checksum How to use checksums |
b15e2467b0b2d4ed25c2ef47ab72257d09ca286356643f52899e7a80ec25d906
|
| 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.41.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | aadc_quantlib_tracing-1.41.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 48.3 MB |
| Tags | CPython 3.12 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
98af8eae6a684973974846fbb14fc77bab3edb0f0ad5ef1fc22fd7d92779a29b
|
|
BLAKE2b-256 checksum How to use checksums |
267d77c49981fb7aa0e49b2b0e0bd1e7070bc95b909f5e291484dbae10c09d51
|
| 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.41.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | aadc_quantlib_tracing-1.41.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 48.2 MB |
| Tags | CPython 3.11 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
76f5b6e0a6c5c475c3643c29d6ffd8fe25299adae7c919a6eae8548825b37c45
|
|
BLAKE2b-256 checksum How to use checksums |
d7468ed1a7c105d2f2fc31753f8ca64a7c86d0367c8871dc67442225e5089798
|
| 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.41.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
| Download URL | aadc_quantlib_tracing-1.41.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 48.2 MB |
| Tags | CPython 3.10 Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
1522b7464c61dd33915ddec8b0bf28a26d6fc2c5df26585beb801c62da67d786
|
|
BLAKE2b-256 checksum How to use checksums |
945fa409182900104d6d52fd3c316980e512bc79aea732b23d6ab8c7e59b54cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.2
|
Security for aadc-quantlib-tracing 1.41.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.