Sample-based quantum diagonalization (HPC-ready)

This repository contains an HPC-ready implementation of the Qiskit addon for sample-based qantum diagonalization (SQD).

Unlike the existing Python addon, this code is written in modern C++17 and is designed to enable HPC workflows and applications, particularly those that require a single binary to be compiled for use with MPI. This library builds on existing interfaces in the C++ standard template library (STL); specifically, this code base has the following characteristics:

  • You can use it to leverage any pseudo-random number generator compatible with the <random> header.

  • It relies on standard interfaces for storing bitstrings, namely std::bitset and boost::dynamic_bitset, which are aligned with the Qiskit bit ordering conventions (c.f. to_ulong and to_string).

  • It is compatible with STL containers, including std::vector.

The code is cross-platform, fully tested, fully documented, and contains an integrated benchmark suite.

Table of Contents