Fast Pauli logo

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 Getting Started guide for an introduction to some of the core functionality in fast-pauli and our Benchmarks for more details about how fast-pauli can speed up certain functions compared to Qiskit.

Installation

In order to get started, we’ll need to install the package and its dependencies.

Requirements

In the following subsections, we describe several options for installing fast_pauli.

Install the Latest Release

pip install fast_pauli

Build from Source (Linux)

git clone [email protected]:qognitive/fast-pauli.git
cd fast_pauli
python -m pip install -e ".[dev]"

Build from Source (MacOS)

git clone [email protected]:qognitive/fast-pauli.git
cd fast_pauli
python -m pip install --upgrade pip
python -m pip install scikit-build-core
brew install llvm
pip install -e . -C cmake.args="-DCMAKE_CXX_COMPILER=$(brew --prefix llvm)/bin/clang++;-DCMAKE_CXX_FLAGS='-stdlib=libc++ -fexperimental-library'"

Build from Source (Custom Config)

git clone [email protected]:qognitive/fast-pauli.git
cd fast-pauli
python -m pip install --upgrade pip
python -m pip install scikit-build-core
python -m pip install --no-build-isolation -ve ".[dev]" -C cmake.args="-DCMAKE_CXX_COMPILER=<compiler> + <other cmake flags>"

Verify / Test Build

pytest -v tests/fast_pauli # + other pytest flags