cuPauliProp (cuquantum.bindings.cupauliprop)#

Python objects & constants#

Objects#

PauliTerm()

Empty-initialize an instance of cupaulipropPauliTerm_t.

CoefficientTruncationParams()

Empty-initialize an instance of cupaulipropCoefficientTruncationParams_t.

PauliWeightTruncationParams()

Empty-initialize an instance of cupaulipropPauliWeightTruncationParams_t.

pauli_term_dtype

NumPy dtype object that encapsulates the pauli term in bindings.cupauliprop.

coefficient_truncation_params_dtype

NumPy dtype object that encapsulates the coefficient truncation params in bindings.cupauliprop.

pauli_weight_truncation_params_dtype

NumPy dtype object that encapsulates the pauli weight truncation params in bindings.cupauliprop.

Enums#

Python functions#

Versioning API#

get_version()

Returns the semantic version number of the cuPauliProp library.

get_error_string(int error)

Returns the description string for an error code.

Handle management API#

create()

Creates and initializes the library context.

destroy(intptr_t handle)

Destroys the library context.

set_stream(intptr_t handle, stream)

Sets the CUDA stream to be used for library operations.

Workspace management API#

create_workspace_descriptor(intptr_t handle)

Creates a workspace descriptor.

destroy_workspace_descriptor(...)

Destroys a workspace descriptor.

workspace_get_memory_size(intptr_t handle, ...)

Queries the required workspace buffer size.

workspace_set_memory(intptr_t handle, ...)

Attaches memory to a workspace buffer.

workspace_get_memory(intptr_t handle, ...)

Retrieves a workspace buffer.

Pauli expansion API#

get_num_packed_integers(int32_t num_qubits)

Returns the number of packed integers of cupaulipropPackedIntegerType_t needed to represent the X bits (or equivalently, the Z bits) of a single Pauli string.

create_pauli_expansion(intptr_t handle, ...)

Creates a Pauli operator expansion.

destroy_pauli_expansion(intptr_t pauli_expansion)

Destroys a Pauli operator expansion.

pauli_expansion_get_storage_buffer(...)

Gets access to the storage of a Pauli operator expansion.

pauli_expansion_get_num_qubits(...)

Gets the number of qubits of a Pauli operator expansion.

pauli_expansion_get_num_terms(...)

Gets the number of terms in the Pauli operator expansion.

pauli_expansion_get_data_type(...)

Gets the data type of the coefficients in a Pauli operator expansion.

pauli_expansion_is_sorted(intptr_t handle, ...)

Queries whether a Pauli operator expansion is sorted or not.

pauli_expansion_is_deduplicated(...)

Queries whether a Pauli operator expansion is deduplicated.

pauli_expansion_get_contiguous_range(...)

Creates a non-owning view of a contiguous range of Pauli operator terms inside a Pauli operator expansion.

pauli_expansion_get_term(intptr_t handle, ...)

Gets access to a specific term of a Pauli operator expansion.

Pauli expansion view API#

destroy_pauli_expansion_view(intptr_t view)

Destroys a Pauli expansion view.

pauli_expansion_view_get_num_terms(...)

Returns the number of Pauli terms in a Pauli expansion view.

pauli_expansion_view_get_location(intptr_t view)

Gets the storage location of a Pauli expansion view (whether its elements are stored on the host or device).

pauli_expansion_view_get_term(...)

Gets a specific term of a Pauli expansion view.

Pauli expansion sorting API#

pauli_expansion_view_prepare_canonical_sort(...)

Prepares a Pauli expansion view for canonical sorting.

pauli_expansion_view_execute_canonical_sort(...)

Sorts a Pauli expansion view canonically.

Pauli expansion deduplication API#

pauli_expansion_view_prepare_deduplication(...)

Prepares a Pauli expansion view for deduplication.

pauli_expansion_view_execute_deduplication(...)

Deduplicates a Pauli expansion view.

Pauli expansion truncation API#

pauli_expansion_view_prepare_truncation(...)

Prepares a Pauli expansion view for truncation.

pauli_expansion_view_execute_truncation(...)

Truncates a Pauli expansion view.

Pauli expansion trace API#

pauli_expansion_view_prepare_trace_with_expansion_view(...)

Prepares a Pauli expansion view for computing the product trace of two Pauli expansion views.

pauli_expansion_view_compute_trace_with_expansion_view(...)

Computes the trace of two Pauli expansion views.

pauli_expansion_view_prepare_trace_with_zero_state(...)

Prepares a Pauli expansion view for tracing with the zero state, i.e. computing Tr(view * |0...0⟩) .

pauli_expansion_view_compute_trace_with_zero_state(...)

Traces a Pauli expansion view with the zero state, i.e. computes Tr(view * |0...0⟩) .

Pauli expansion operator application API#

pauli_expansion_view_prepare_operator_application(...)

Prepares a Pauli expansion view for quantum operator application.

pauli_expansion_view_compute_operator_application(...)

Computes the application of a quantum operator to a Pauli expansion view.

pauli_expansion_populate_from_view(...)

Populates a Pauli operator expansion from a Pauli expansion view.

Quantum operator API#

create_clifford_gate_operator(...)

Creates a Clifford gate.

create_pauli_rotation_gate_operator(...)

Creates a Pauli rotation gate, exp(-i * angle/2 * P), for a rotation of angle around the Pauli string P.

create_pauli_noise_channel_operator(...)

Creates a Pauli noise channel.

quantum_operator_get_kind(intptr_t handle, ...)

Queries what kind of gate or channel a quantum operator represents.

destroy_operator(intptr_t oper)

Destroys a quantum operator.