Skip to main content

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 ϕ(u)=E[eiuX]\phi(u) = \mathbb{E}[e^{iuX}] because their PDF has no closed form or is analytically intractable. Load the PDF of any supported distribution via its characteristic function using:
data_loading_gate = haiqu.distribution_loading(
    distribution_name="cf_name",  # characteristic function name (e.g. "heston_cf")
    num_qubits=8,
    interval_start=-3,
    interval_end=3,
    # model-specific parameters — see each section below
    **kwargs
).result()
The functions are organized into three branches:
BranchModels
AJD (Affine Jump-Diffusion)heston_cfbates_cfsvjj_cfdps_cf (each extends the previous)
Lévy-OU (OU subordinator clock)bns_cf
Pure Lévy (Lévy–Khintchine)holtsmark_cf, landau_cf, cgmy_cf, meixner_cf, linnik_cf, variance_gamma_cf, bilateral_gamma_cf, compound_poisson_cf, levy_khintchine_cf

AJD Branch

The AJD (Affine Jump-Diffusion) branch models logST\log S_T 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: (,)(-\infty,\, \infty) 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. ϕ(u)=exp(iulogS0+C(u)+D(u)v0)\phi(u) = \exp\bigl(iu\log S_0 + C(u) + D(u)\,v_0\bigr) The Riccati coefficients CC and DD are solved in the numerically stable form of Albrecher et al. (2007). Define the intermediate quantities ξ=κρσiu,d=ξ2+σ2(u2+iu),g=ξdξ+d\xi = \kappa - \rho\sigma\, iu, \qquad d = \sqrt{\xi^2 + \sigma^2(u^2 + iu)}, \qquad g = \frac{\xi - d}{\xi + d} then C(u)=(rq)iuT  +  κθσ2[(ξd)T2ln1gedT1g]C(u) = (r-q)\,iu\,T \;+\; \frac{\kappa\theta}{\sigma^2}\left[(\xi - d)\,T - 2\ln\frac{1 - g\,e^{-dT}}{1 - g}\right] D(u)=ξdσ21edT1gedTD(u) = \frac{\xi - d}{\sigma^2}\cdot\frac{1 - e^{-dT}}{1 - g\,e^{-dT}} CC captures the cumulative drift and mean-reversion cost over [0,T][0,T]; DD is the sensitivity of the log-CF to the current variance v0v_0, decaying toward zero as the variance mean-reverts to θ\theta.
ParameterTypeConstraintsDescription
S0floatS0>0S_0 > 0Spot price
v0floatv0>0v_0 > 0Initial variance
TfloatT>0T > 0Time to maturity in years
rfloatrRr \in \mathbb{R}Risk-free rate
qfloatqRq \in \mathbb{R}Continuous dividend yield
kappafloatκ>0\kappa > 0Mean-reversion rate
thetafloatθ>0\theta > 0Long-term variance
sigmafloatσ>0\sigma > 0Volatility-of-volatility
rhofloatρ(1,1)\rho \in (-1, 1)Asset–variance correlation
The Feller condition 2κθ>σ22\kappa\theta > \sigma^2 ensures the variance process vtv_t remains strictly positive. If violated, vtv_t can hit zero and the characteristic function may become numerically unreliable.
data_loading_gate = haiqu.distribution_loading(
    distribution_name="heston_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    S0=100.0,   # initial asset price
    v0=0.04,    # initial variance
    T=1.0,      # time to maturity (years)
    r=0.05,     # risk-free rate
    q=0.0,      # dividend yield
    kappa=2.0,  # mean-reversion rate
    theta=0.04, # long-run variance
    sigma=0.3,  # vol-of-vol
    rho=-0.7,   # asset-variance correlation
).result()

Bates Model

Name in SDK: bates_cf  |  Citation: Bates (1996)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕBates(u)=ϕHeston(u)exp(λT(eiuμj12σj2u21iuμˉ))\phi_{\text{Bates}}(u) = \phi_{\text{Heston}}(u) \cdot \exp\Bigl(\lambda T\bigl(e^{iu\mu_j - \frac{1}{2}\sigma_j^2 u^2} - 1 - iu\bar\mu\bigr)\Bigr) where μˉ=eμj+12σj21\bar\mu = e^{\mu_j + \frac{1}{2}\sigma_j^2} - 1 is the martingale drift correction that keeps e(rq)TS0e^{(r-q)T}S_0 as the forward price. Additional parameters (inherits all Heston parameters):
ParameterTypeConstraintsDescription
lamfloatλ0\lambda \geq 0Jump intensity (jumps/year)
mu_jfloatμjR\mu_j \in \mathbb{R}Mean of log-jump ln(1+k)\ln(1+k)
sigma_jfloatσj>0\sigma_j > 0Std of log-jump ln(1+k)\ln(1+k)
data_loading_gate = haiqu.distribution_loading(
    distribution_name="bates_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    S0=100.0, v0=0.04, T=1.0, r=0.05, q=0.0,
    kappa=2.0, theta=0.04, sigma=0.3, rho=-0.7,
    lam=0.5,      # jump intensity (jumps/year)
    mu_j=-0.05,   # mean log jump size
    sigma_j=0.1,  # std of log jump size
).result()

SVJJ Model

Name in SDK: svjj_cf  |  Citation: Duffie, Pan & Singleton (2003), Eraker (2003)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕSVJJ(u)=ϕBates(u)exp(cvj)\phi_{\text{SVJJ}}(u) = \phi_{\text{Bates}}(u) \cdot \exp(c_{vj}) where D(u,s)D(u,s) is the Heston DD coefficient evaluated at remaining time ss rather than the full maturity TT: D(u,s)=ξdσ21eds1gedsD(u,s) = \frac{\xi - d}{\sigma^2}\cdot\frac{1 - e^{-ds}}{1 - g\,e^{-ds}} The variance-jump contribution integrates the moment-generating function of an exponential jump against this time-varying coefficient: cvj=λv0T[11μvD(u,s)1]dsc_{vj} = \lambda_v \int_0^T \left[\frac{1}{1 - \mu_v D(u,s)} - 1\right] ds The integrand is the CGF of one exponential(1/μv1/\mu_v) variance jump evaluated at D(u,s)D(u,s); the integral is evaluated in closed form. Additional parameters (inherits all Bates parameters):
ParameterTypeConstraintsDescription
lam_vfloatλv0\lambda_v \geq 0Variance jump intensity
mu_vfloatμv>0\mu_v > 0Mean of exponential variance jump
data_loading_gate = haiqu.distribution_loading(
    distribution_name="svjj_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    S0=100.0, v0=0.04, T=1.0, r=0.05, q=0.0,
    kappa=2.0, theta=0.04, sigma=0.3, rho=-0.7,
    lam=0.5, mu_j=-0.05, sigma_j=0.1,
    lam_v=0.3,  # variance jump intensity
    mu_v=0.05,  # mean of exponential variance jump
).result()

DPS Model (most general AJD)

Name in SDK: dps_cf  |  Citation: Duffie, Pan & Singleton (2003)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕDPS(u)=ϕSVJJ(u)exp(ccorr)\phi_{\text{DPS}}(u) = \phi_{\text{SVJJ}}(u) \cdot \exp(c_{\text{corr}}) where D(u,s)D(u,s) is defined as in the SVJJ section, and the correlated-jump contribution accounts for the joint distribution of a price jump JSJvN(μj+ρjJv,σj2)J_S \mid J_v \sim \mathcal{N}(\mu_j + \rho_j J_v,\, \sigma_j^2) and a variance jump JvExp(1/μv)J_v \sim \mathrm{Exp}(1/\mu_v): ccorr=λc0T[KcμvD(u,s)1iuμˉc]dsc_{\text{corr}} = \lambda_c \int_0^T \left[\frac{K}{c - \mu_v D(u,s)} - 1 - iu\bar\mu_c\right] ds with K=eiuμj12σj2u2K = e^{iu\mu_j - \frac{1}{2}\sigma_j^2 u^2}, c=1μviuρjc = 1 - \mu_v\, iu\,\rho_j, and μˉc=eμj+12σj2/(1ρjμv)1\bar\mu_c = e^{\mu_j + \frac{1}{2}\sigma_j^2}/(1 - \rho_j\mu_v) - 1. The integral is evaluated in closed form. Additional parameters (inherits all SVJJ parameters):
ParameterTypeConstraintsDescription
lam_cfloatλc0\lambda_c \geq 0Correlated jump intensity
rho_jfloatρjR\rho_j \in \mathbb{R}Sensitivity of mean price jump to variance jump size
data_loading_gate = haiqu.distribution_loading(
    distribution_name="dps_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    S0=100.0, v0=0.04, T=1.0, r=0.05, q=0.0,
    kappa=2.0, theta=0.04, sigma=0.3, rho=-0.7,
    lam=0.5,   mu_j=-0.05, sigma_j=0.1,   # independent price jumps
    lam_v=0.3, mu_v=0.05,                  # independent variance jumps
    lam_c=0.2, rho_j=0.5,                  # correlated jumps
).result()
ModelZeroed parameters
svjj_cflam_c=0, rho_j=0
bates_cflam_c=0, rho_j=0, lam_v=0
heston_cflam_c=0, rho_j=0, lam_v=0, lam=0

Lévy-OU Branch

BNS Model

Name in SDK: bns_cf  |  Citation: Barndorff-Nielsen & Shephard (2001)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕ(u)=exp(iulogS0+iu(rq)T+A(u)+B(u)σ02)\phi(u) = \exp\bigl(iu\log S_0 + iu(r-q)T + A(u) + B(u)\,\sigma^2_0\bigr) Here uRu \in \mathbb{R} is the Fourier argument, i.e. ϕ(u)=E[eiulogST]\phi(u) = \mathbb{E}[e^{iu\log S_T}]. B(u,s)B(u,s) — sensitivity to the initial variance σ02\sigma^2_0, obtained by integrating the OU impulse-response function against the standard risk-neutral price–variance loading (β=12\beta = -\tfrac{1}{2} baked in). Here ss is the remaining time, so B(u,s)B(u,s) evaluated at s=Ts = T gives the full-horizon coefficient: B(u,s)=u2+iu2λ(1eλs)B(u,s) = -\frac{u^2 + iu}{2\lambda}\left(1 - e^{-\lambda s}\right) As ss \to \infty, B(u2+iu)/(2λ)B \to -(u^2+iu)/(2\lambda); the initial variance is “forgotten” at rate λ\lambda. A(u)A(u) — cumulative contribution from the subordinator’s Lévy measure, obtained by integrating the log-Laplace exponent ΨZ\Psi_Z of the subordinator along the shifted BB-curve: A(u)=0TΨZ(B(u,s)+iuρ)dsA(u) = \int_0^T \Psi_Z\bigl(B(u,s) + iu\rho\bigr)\, ds The additive iuρiu\rho inside ΨZ\Psi_Z is the direct jump leverage: it correlates price jumps with variance jumps instantaneously. Set ρ=0\rho = 0 to disable this channel. The Lévy time-change factor λ\lambda from the paper is absorbed into the subordinator parameters aa and bb rather than appearing explicitly outside the integral. For the Gamma subordinator with shape aa and rate bb: ΨZ(θ)=aln(1θb)\Psi_Z(\theta) = -a\ln\left(1 - \frac{\theta}{b}\right) This integral has no closed form in general and is evaluated by numerical quadrature (controlled by parameter n).
ParameterTypeConstraintsDescription
S0floatS0>0S_0 > 0Initial asset price
sigma0_sqfloatσ02>0\sigma_0^2 > 0Initial variance σ2(0)\sigma^2(0)
TfloatT>0T > 0Time to maturity
rfloatrRr \in \mathbb{R}Risk-free rate
qfloatqRq \in \mathbb{R}Dividend yield
lamfloatλ>0\lambda > 0OU mean-reversion rate
rhofloatρR\rho \in \mathbb{R}Direct jump leverage; correlates price and variance jumps instantaneously (default 0.0)
subordinatorstr"gamma"Subordinator type — currently "gamma" only
afloata>0a > 0Gamma shape (absorbs the λ\lambda time-change factor from the paper)
bfloatb>0b > 0Gamma rate
nintn1n \geq 1Quadrature steps for A(u)A(u) (default 200)
data_loading_gate = haiqu.distribution_loading(
    distribution_name="bns_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    S0=100.0,
    sigma0_sq=0.04,  # initial variance σ²(0)
    T=1.0,
    r=0.05, q=0.0,
    lam=2.0,         # OU mean-reversion rate
    rho=-0.5,        # direct jump leverage
    subordinator="gamma",
    a=1.0,           # Gamma shape
    b=10.0,          # Gamma rate
    n=200,           # quadrature steps
).result()
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: (,)(-\infty,\, \infty) A four-parameter pure-jump Lévy model that nests Variance Gamma (Y0Y \to 0) and approaches Brownian motion as Y2Y \to 2. The fine-structure index YY 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. ϕ(u)=exp(CΓ(Y)[(Miu)YMY+(G+iu)YGY])\phi(u) = \exp\bigl(C\,\Gamma(-Y)\bigl[(M - iu)^Y - M^Y + (G + iu)^Y - G^Y\bigr]\bigr)
ParameterTypeConstraintsDescription
CfloatC>0C > 0Overall jump activity
GfloatG>0G > 0Exponential decay rate for negative jumps
MfloatM>0M > 0Exponential decay rate for positive jumps
YfloatY(0,2)Y \in (0, 2), not integerOrder of asset activity
data_loading_gate = haiqu.distribution_loading(
    distribution_name="cgmy_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    C=1.0,  # overall jump activity
    G=5.0,  # decay for negative jumps
    M=8.0,  # decay for positive jumps
    Y=0.5,  # fine-structure index ∈ (0, 2), not an integer
).result()
cgmy_cf raises ValueError if Y is outside (0,2)(0, 2) or is an integer (pole of Γ(Y)\Gamma(-Y)).
Special caseDistribution
Y0Y \to 0Variance Gamma
Y2Y \to 2Brownian motion
G=MG = MSymmetric CGMY

Variance Gamma

Name in SDK: variance_gamma_cf  |  Citation: Madan, Carr & Chang (1998)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕ(u)=(1iθνu+12σ2νu2)1/ν\phi(u) = \left(1 - i\theta\nu u + \tfrac{1}{2}\sigma^2\nu\, u^2\right)^{-1/\nu}
ParameterTypeConstraintsDescription
sigmafloatσ>0\sigma > 0Brownian component volatility
nufloatν>0\nu > 0Variance rate of the Gamma time-change
thetafloatθR\theta \in \mathbb{R}Brownian drift (skewness control)
data_loading_gate = haiqu.distribution_loading(
    distribution_name="variance_gamma_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    sigma=0.2,   # Brownian volatility
    nu=0.1,      # Gamma variance rate
    theta=-0.1,  # Brownian drift
).result()

Meixner Process

Name in SDK: meixner_cf  |  Citation: Schoutens (2001)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕ(u)=eiμu(cos(β/2)cosh(αuiβ2))2δ\phi(u) = e^{i\mu u}\left(\frac{\cos(\beta/2)}{\cosh\left(\tfrac{\alpha u - i\beta}{2}\right)}\right)^{2\delta}
ParameterTypeConstraintsDescription
alphafloatα>0\alpha > 0Scale
betafloatβ(π,π)\beta \in (-\pi, \pi)Skewness
deltafloatδ>0\delta > 0Shape
mufloatμR\mu \in \mathbb{R}Location shift (default 0)
meixner_cf raises ValueError if beta is outside (π,π)(-\pi, \pi).
data_loading_gate = haiqu.distribution_loading(
    distribution_name="meixner_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    alpha=0.3,  # scale α > 0
    beta=-0.5,  # skewness β ∈ (-π, π)
    delta=1.0,  # shape δ > 0
    mu=0.0,     # location (default 0)
).result()

Holtsmark Distribution

Name in SDK: holtsmark_cf  |  Citation: Holtsmark (1919)  |  PDF support: (,)(-\infty,\, \infty) Special case S(3/2,0,γ,δ)S(3/2,\,0,\,\gamma,\,\delta). 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. ϕ(u)=exp(iuδγ3/2u3/2)\phi(u) = \exp\bigl(iu\delta - \gamma^{3/2}|u|^{3/2}\bigr) Parameters (alpha=1.5, beta=0 fixed):
ParameterTypeConstraintsDescription
gammafloatγ>0\gamma > 0Scale
deltafloatδR\delta \in \mathbb{R}Location
data_loading_gate = haiqu.distribution_loading(
    distribution_name="holtsmark_cf",
    num_qubits=8,
    interval_start=-5, interval_end=5,
    gamma=1.0,
    delta=0.0,
).result()

Landau Distribution

Name in SDK: landau_cf  |  Citation: Bulyak (2022)  |  PDF support: (,)(-\infty,\, \infty) Special case S(1,1,γ,δ)S(1,\,1,\,\gamma,\,\delta) — 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. ϕ(u)=exp(iuδγu[1+i2πsgn(u)lnu])\phi(u) = \exp\Bigl(iu\delta - \gamma|u|\Bigl[1 + i\,\tfrac{2}{\pi}\,\text{sgn}(u)\ln|u|\Bigr]\Bigr) Parameters (alpha=1, beta=1 fixed):
ParameterTypeConstraintsDescription
gammafloatγ>0\gamma > 0Scale
deltafloatδR\delta \in \mathbb{R}Location
data_loading_gate = haiqu.distribution_loading(
    distribution_name="landau_cf",
    num_qubits=8,
    interval_start=-2, interval_end=10,
    gamma=1.0,
    delta=0.0,
).result()

Linnik / Geometric Stable

Name in SDK: linnik_cf  |  Citation: Klebanov (1985)  |  PDF support: (,)(-\infty,\, \infty) 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 ϕ(u)=(1+uα)1\phi(u) = (1 + |u|^\alpha)^{-1}. ϕ(u)=11Ψstable(u)\phi(u) = \frac{1}{1 - \Psi_{\text{stable}}(u)} where Ψstable(u)=lnϕstable(u)\Psi_{\text{stable}}(u) = \ln\phi_{\text{stable}}(u) is the Lévy exponent of the underlying stable distribution (not the stable CF itself).
ParameterTypeConstraintsDescription
alphafloatα(0,2]\alpha \in (0, 2]Stability index
betafloatβ[1,1]\beta \in [-1, 1]Skewness (default 0)
gammafloatγ>0\gamma > 0Scale (default 1)
deltafloatδR\delta \in \mathbb{R}Location (default 0)
data_loading_gate = haiqu.distribution_loading(
    distribution_name="linnik_cf",
    num_qubits=8,
    interval_start=-5, interval_end=5,
    alpha=1.5,  # stability index ∈ (0, 2]
    beta=0.0,   # skewness (default 0)
    gamma=1.0,  # scale (default 1)
    delta=0.0,  # location (default 0)
).result()

Bilateral Gamma

Name in SDK: bilateral_gamma_cf  |  Citation: Küchler & Tappe (2019)  |  PDF support: (,)(-\infty,\, \infty) 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. ϕ(u)=(b+b+iu)a+(bb+iu)a\phi(u) = \left(\frac{b_+}{b_+ - iu}\right)^{a_+}\left(\frac{b_-}{b_- + iu}\right)^{a_-}
ParameterTypeConstraintsDescription
a_pfloata+>0a_+ > 0Positive-jump Gamma shape
b_pfloatb+>0b_+ > 0Positive-jump Gamma rate
a_mfloata>0a_- > 0Negative-jump Gamma shape
b_mfloatb>0b_- > 0Negative-jump Gamma rate
data_loading_gate = haiqu.distribution_loading(
    distribution_name="bilateral_gamma_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    a_p=2.0, b_p=10.0,  # positive-jump Gamma shape and rate
    a_m=1.5, b_m=8.0,   # negative-jump Gamma shape and rate
).result()

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. ϕ(u)=exp(λ(ϕX(u)1))\phi(u) = \exp\bigl(\lambda(\phi_X(u) - 1)\bigr)
ParameterTypeConstraintsDescription
lamfloatλ>0\lambda > 0Jump intensity (jumps/year)
phi_x_typestrJump distribution: "gaussian", "exponential", "gamma", or "stable"
alphafloatsee sub-tableShape for "gamma"; stability index for "stable"
betafloatsee sub-tableRate ("exponential"/"gamma") or skewness ("stable")
gammafloatγ>0\gamma > 0Scale (required for "stable")
deltafloatδR\delta \in \mathbb{R}Location (required for "stable")
phi_x_typeRequired kwargsConstraintsϕX(u)\phi_X(u)PDF support
'gaussian'(none — fixed to N(0,1)N(0,1))eu2/2e^{-u^2/2}(,)(-\infty,\, \infty)
'exponential'betaβ>0\beta > 0β/(βiu)\beta\,/\,(\beta - iu)[0,)[0,\, \infty)
'gamma'alpha, betaα>0\alpha > 0, β>0\beta > 0(β/(βiu))α\bigl(\beta\,/\,(\beta - iu)\bigr)^\alpha[0,)[0,\, \infty)
'stable'alpha, beta, gamma, deltaα(0,2]\alpha \in (0, 2], β[1,1]\beta \in [-1, 1]ϕS(α,β,γ,δ)(u)\phi_{S(\alpha,\beta,\gamma,\delta)}(u)(,)(-\infty,\, \infty)
data_loading_gate = haiqu.distribution_loading(
    distribution_name="compound_poisson_cf",
    num_qubits=8,
    interval_start=-3, interval_end=3,
    lam=2.0,
    phi_x_type="gamma",
    **kwargs
).result()
  • Model selection: Start with heston_cf for equity derivatives; extend to bates_cf or dps_cf if short-maturity skew or volatility jumps are under-fitted.
  • Fidelity: circuit fidelity depends on num_qubits and the fraction of PDF mass within [interval_start, interval_end] — increase num_qubits or widen the interval to improve it.
  • SciPy distributions: For standard distributions (Normal, Beta, Gamma, …) use Distribution Loading instead.