Supported Characteristic Functions
Haiqu SDK supports loading probability density functions from characteristic functions (CFs) directly into quantum states. Many distributions — across finance, physics, queuing theory, and heavy-tail modelling — are most naturally specified through their CF because their PDF has no closed form or is analytically intractable. Load the PDF of any supported distribution via its characteristic function using:AJD Branch
The AJD (Affine Jump-Diffusion) branch models as Heston stochastic volatility with optional independent jump sources.dps_cf is the most general model; all others are obtained by zeroing parameters.
Heston Model
Name in SDK:heston_cf | Citation: Heston (1993) | PDF support:
The industry-standard stochastic volatility model. Its mean-reverting variance process captures the volatility smile without jumps, is analytically tractable, and calibrates efficiently to vanilla option surfaces — making it the natural first choice for equity and foreign exchange derivatives.
The Riccati coefficients and are solved in the numerically stable form of Albrecher et al. (2007). Define the intermediate quantities
then
captures the cumulative drift and mean-reversion cost over ; is the sensitivity of the log-CF to the current variance , decaying toward zero as the variance mean-reverts to .
The Feller condition ensures the variance process remains strictly positive. If violated, can hit zero and the characteristic function may become numerically unreliable.
Bates Model
Name in SDK:bates_cf | Citation: Bates (1996) | PDF support:
Extends Heston with independent log-normal price jumps, capturing the steep short-maturity skew that pure diffusion cannot reproduce. The standard model for equity index options where crash risk matters.
where is the martingale drift correction that keeps as the forward price.
Additional parameters (inherits all Heston parameters):
SVJJ Model
Name in SDK:svjj_cf | Citation: Duffie, Pan & Singleton (2003), Eraker (2003) | PDF support:
Extends Bates with independent exponential variance jumps, allowing volatility to spike discretely alongside price crashes. Empirically important for fitting the joint dynamics of the spot and VIX surfaces around market stress events.
where is the Heston coefficient evaluated at remaining time rather than the full maturity :
The variance-jump contribution integrates the moment-generating function of an exponential jump against this time-varying coefficient:
The integrand is the CGF of one exponential() variance jump evaluated at ; the integral is evaluated in closed form.
Additional parameters (inherits all Bates parameters):
DPS Model (most general AJD)
Name in SDK:dps_cf | Citation: Duffie, Pan & Singleton (2003) | PDF support:
Extends SVJJ with a third correlated jump source: simultaneous price and variance jumps whose sizes are statistically dependent. All narrower AJD models are special cases obtained by zeroing parameters.
where is defined as in the SVJJ section, and the correlated-jump contribution accounts for the joint distribution of a price jump and a variance jump :
with , , and . The integral is evaluated in closed form.
Additional parameters (inherits all SVJJ parameters):
Lévy-OU Branch
BNS Model
Name in SDK:bns_cf | Citation: Barndorff-Nielsen & Shephard (2001) | PDF support:
Drives variance through a non-Gaussian Ornstein–Uhlenbeck process subordinated to a Lévy process (e.g. Gamma). This produces heavier tails than Heston and naturally accommodates the empirically observed non-Gaussian distribution of variance increments, making it particularly suited to energy and commodity markets.
Here is the Fourier argument, i.e. .
— sensitivity to the initial variance , obtained by integrating the OU impulse-response function against the standard risk-neutral price–variance loading ( baked in). Here is the remaining time, so evaluated at gives the full-horizon coefficient:
As , ; the initial variance is “forgotten” at rate .
— cumulative contribution from the subordinator’s Lévy measure, obtained by integrating the log-Laplace exponent of the subordinator along the shifted -curve:
The additive inside is the direct jump leverage: it correlates price jumps with variance jumps instantaneously. Set to disable this channel. The Lévy time-change factor from the paper is absorbed into the subordinator parameters and rather than appearing explicitly outside the integral.
For the Gamma subordinator with shape and rate :
This integral has no closed form in general and is evaluated by numerical quadrature (controlled by parameter n).
Only the
'gamma' subordinator is currently supported. Increase n for higher precision at longer maturities.Pure Lévy Processes
CGMY / Tempered Stable
Name in SDK:cgmy_cf | Citation: Carr, Geman, Madan & Yor (2002) | PDF support:
A four-parameter pure-jump Lévy model that nests Variance Gamma () and approaches Brownian motion as . The fine-structure index directly controls whether the process has finite or infinite variation, making CGMY the go-to model for studying jump activity in high-frequency return data.
cgmy_cf raises ValueError if Y is outside or is an integer (pole of ).Variance Gamma
Name in SDK:variance_gamma_cf | Citation: Madan, Carr & Chang (1998) | PDF support:
Brownian motion with drift time-changed by a Gamma process. Produces semi-heavy tails and controllable skewness with only three parameters, making it both parsimonious and analytically convenient for calibration to vanilla options across strikes and maturities.
Meixner Process
Name in SDK:meixner_cf | Citation: Schoutens (2001) | PDF support:
An infinite-activity pure-jump Lévy process with a closed-form characteristic function built from hyperbolic cosines. Its four parameters independently control scale, skewness, tail heaviness, and location, giving excellent flexibility for fitting option smiles while remaining computationally efficient.
meixner_cf raises ValueError if beta is outside .Holtsmark Distribution
Name in SDK:holtsmark_cf | Citation: Holtsmark (1919) | PDF support:
Special case . Originally derived to model the gravitational field of a random stellar ensemble; its infinite variance makes it a powerful model for extreme-event phenomena in plasma physics and anomalous diffusion.
Parameters (alpha=1.5, beta=0 fixed):
Landau Distribution
Name in SDK:landau_cf | Citation: Bulyak (2022) | PDF support:
Special case — maximally right-skewed with a heavy right tail. Originally models ionisation energy loss of charged particles in thin matter layers; in data science it appears as a model for right-skewed count data and timing jitter.
Parameters (alpha=1, beta=1 fixed):
Linnik / Geometric Stable
Name in SDK:linnik_cf | Citation: Klebanov (1985) | PDF support:
The law of a geometric sum of i.i.d. stable random variables. Heavier-tailed than the corresponding stable law, making it useful for modelling waiting times in queuing, anomalous diffusion, and financial durations. The symmetric case simplifies to .
where is the Lévy exponent of the underlying stable distribution (not the stable CF itself).
Bilateral Gamma
Name in SDK:bilateral_gamma_cf | Citation: Küchler & Tappe (2019) | PDF support:
Decomposes log-returns into independent positive and negative Gamma jump components, each with its own shape and rate. This asymmetric structure naturally captures the empirical observation that upward and downward moves in asset prices have different statistical properties.
Compound Poisson Process
Name in SDK:compound_poisson_cf | Citation: Gao (2022) | PDF support: depends on jump type (see table below)
A finite-activity pure-jump process — the simplest possible jump model. Ideal for modelling rare, large events such as sovereign defaults, catastrophe losses, or earnings announcements, where the assumption of a finite number of jumps per unit time is realistic.