PCDSampling.jl is a Julia package for drawing deterministic samples from multivariate probability distributions using Projected Cumulative Distributions (PCDs).
It accompanies the paper:
Fast Deterministic Sampling of Gaussian Mixture Densities using Projected Cumulative Distributions
The package provides CPU and GPU implementations for deterministic sampling from Gaussian mixture densities.
| Deterministic samples | Random samples |
|---|---|
Deterministic samples are designed to cover the target density more evenly than random samples with the same sample size.
Clone the repository and start Julia from the repository root:
git clone https://github.com/KIT-ISAS/PCDSampling.jl
cd PCDSampling.jl
juliaActivate the project environment:
using Pkg
Pkg.activate(".")
Pkg.instantiate()
Pkg.precompile()Load the package and run an example:
using PCDSampling
include("scripts/examples.jl")
sample_gaussian(N=500, P=100, L=-1, use_local=false)More detailed instructions are available here:
.
├── src/ Main CPU implementation
├── ext/ CUDA extension for GPU sampling
├── scripts/ CPU and GPU examples
├── benchmark/ Benchmark scripts
├── test/ Package tests
└── docs/ Additional documentation
A Python implementation of PCD-based sampling is available at:
https://github.com/KIT-ISAS/PCD_sampling_py
If you use this repository in your work, please cite:
@inproceedings{FUSION26_Prossel,
address = {Trondheim, Norway},
author = {Dominik Prossel and Zhilun Li and Petr Novikov and Uwe D. Hanebeck},
booktitle = {Proceedings of the 29th International Conference on Information Fusion (FUSION 2026)},
month = {June},
title = {Fast Deterministic Sampling of Gaussian Mixture Densities using Projected Cumulative Distributions},
year = {2026}
}MIT - use these skills in your projects, teams, and tools.