Backends & API reference

AddingDoublingRT provides three backends that implement the same algorithm and produce matching results. Choose the one that fits your workload:

Backend

Best for

Precision

Parallelism

C++ (CPU)

Single spectral points, one profile at a time, temperature Jacobians.

double

Template-specialised fixed-size kernels (\(N = 2, 4, 8, 16, 32\)).

CUDA (GPU)

Whole spectra, retrieval inner loops.

double LU, mixed

One CUDA thread per wavenumber, batched.

JAX (CPU/GPU)

Differentiable pipelines, research, prototyping.

float64

Vectorised across wavenumbers; JIT-compiled; autodiff.

All three share the same physics and configuration model (User guide). The pages below document each backend’s public API and any backend-specific data-layout or precision considerations.