Skip to content

qognitive/fast-pauli

Status Linux Build Status Linting
Usage Documentation Status Installation
Package PyPI - Version
Legal License Contributor Covenant

Introduction

Welcome to fast-pauli from Qognitive, an open-source Python / C++ library for optimized operations on Pauli matrices and Pauli strings, inspired by PauliComposer paper. fast-pauli aims to provide a fast and efficient alternative to existing libraries for working with Pauli matrices and strings, with a focus on performance and usability. For example, fast-pauli provides optimized functions to apply Pauli strings and operators to a batch of states rather than just a single state vector. See our benchmarks for more details about how fast-pauli can speed up certain functions compared to Qiskit.

Our Getting Started guide offers an introduction to some of the core functionality in fast-pauli.

Installation

Pre-built Binaries

pip install fast_pauli

From Source

There are two strategies for building fast_pauli from source. One is a quick and easy method that uses all the default configuration settings. The other is a more configurable method that involves invoking CMake, pip, pytest, and other tools directly.

Requirements

Build from Source (Linux)

# Build
python -m pip install -e ".[dev]"
# Test
pytest -v tests/fast_pauli

Build from Source (MacOS)

# Setup
python -m pip install --upgrade pip
python -m pip install scikit-build-core
brew install llvm
# Build
pip install -e . -C cmake.args="-DCMAKE_CXX_COMPILER=$(brew --prefix llvm)/bin/clang++;-DCMAKE_CXX_FLAGS='-stdlib=libc++ -fexperimental-library'"
# Test
pytest -v tests/fast_pauli # + other pytest flags

Build from Source (Custom Configuration)

# Setup
python -m pip install --upgrade pip
python -m pip install scikit-build-core
# Build
python -m pip install --no-build-isolation -ve ".[dev]" -C cmake.args="-DCMAKE_CXX_COMPILER=<compiler> + <other cmake flags>"
# Test
pytest -v tests/fast_pauli # + other pytest flags