QMCPy: A Python Software for Randomized Low-Discrepancy Sequences, Quasi-Monte Carlo, and Fast Kernel Methods
Aleksei G Sorokin
TL;DR
QMCPy addresses the need for a unified, Python-based toolset for randomized low-discrepancy sequences and fast kernel computations. It unifies rank-1 lattices, digital nets, and Halton sequences with versatile randomizations (shifts, LMS, NUS) and introduces higher-order scramblings and higher-order DSI kernels, enabling $O(n\log n)$ kernel operations via FFTBR/IFFTBR and FWHT. A key contribution is the LDData repository and the first Python interfaces supporting higher-order nets and scramblings, plus efficient eigenvalue-update procedures for doubling problem sizes. The work demonstrates rapid, scalable QMC and kernel-based computations, offering practical impact for high-dimensional integration, Bayesian cubature, and kernel interpolation in scientific computing.
Abstract
Low-discrepancy (LD) sequences have been extensively used as efficient experimental designs across many scientific disciplines. QMCPy (https://qmcsoftware.github.io/QMCSoftware/) is an accessible Python library which provides a unified implementation of randomized LD sequences, automatic variable transformations, adaptive Quasi-Monte Carlo error estimation algorithms, and fast kernel methods. This article focuses on recent updates to QMCPy which broaden support for randomized LD sequences and add new tools to enable fast kernel methods using LD sequences. Specifically, we give a unified description of the supported LD lattices, digital nets, and Halton point sets, along with randomization options including random permutations / shifts, linear matrix scrambling (LMS), and nested uniform scrambling (NUS). We also support higher-order digital nets, higher-order scrambling with LMS or NUS, and Halton scrambling with LMS or NUS. For fast kernel methods, we provide shift-invariant (SI) and digitally-shift-invariant (DSI) kernels, including a new set of higher-order smoothness DSI kernels. When SI and DSI kernels are respectively paired with n LD lattice and digital net points, the resulting Gram matrices permit multiplication and inversion at only O(n log n) cost. These fast operations utilize QMCPy's implementation of the fast Fourier transform in bit-reversed order (FFTBR), inverse FFTBR (IFFTBR), and fast Walsh--Hadamard transform (FWHT).
