Clifford2017

class exqalibur.Clifford2017

Clifford & Clifford 2017 sampling back-end

The samples generation is distributed on multiple CPU cores. To control the number of CPU cores used in the computation, please see xq.Config.

sample(self: exqalibur.Clifford2017) exqalibur.FockState

Generate one output sample.

Returns:

One possible sample

samples(self: exqalibur.Clifford2017, count: SupportsInt) std::vector<FockState, std::allocator<FockState> >

Generate a list of samples.

This call uses exqalibur internal configuration to parallelize computations as much as possible.

Parameters:

count – The number of expected samples

Returns:

A BSSamples of size count containing all generated samples

set_input_state(self: exqalibur.Clifford2017, input_state: exqalibur.FockState) None

Set the input Fock state for the sampling

Parameters:

input_state – The input state

set_unitary(self: exqalibur.Clifford2017, u: Annotated[numpy.typing.ArrayLike, numpy.complex128, '[m, n]']) None

Set the unitary matrix to sample on.

Parameters:

u – The unitary matrix