qrunch.quantum.estimators.third_party_estimators.cuquantum_state_vector_estimator.utils

Utility functions for cuQuantum state vector estimator.

Functions

cleanup_gpu_resources([cutn_handle, cusv_handle])

Comprehensive GPU resource cleanup for cuQuantum SDK.

cupy_double_excitation_unitary_matrix(theta)

Construct a double excitation unitary matrix for four qubits.

cupy_pauli_x_unitary_matrix()

Construct a Pauli-X unitary matrix.

cupy_single_excitation_unitary_matrix(theta)

Construct a single excitation unitary matrix for two qubits.

get_pauli_string_as_str(pauli_string, num_qubits)

Convert a library PauliString to its dense literal form.

cleanup_gpu_resources(cutn_handle: int | None = None, cusv_handle: int | None = None) None

Comprehensive GPU resource cleanup for cuQuantum SDK.

Parameters:
  • cutn_handle (int | None) – cuTensorNet handle (int) if using low-level API

  • cusv_handle (int | None) – cuStateVector handle (int) if using low-level API

Return type:

None

Note

This function is safe to call multiple times or with invalid handles. It will log warnings but not raise exceptions.

Requirements:
  • Qrunch install requirements: qrunch[cuda] (or qrunch[all]).

  • A working cuda (cupy) installation.

cupy_double_excitation_unitary_matrix(theta: float64) NDArray[complex128]

Construct a double excitation unitary matrix for four qubits.

The matrix is adapted for cuStateVec’s little-endian qubit ordering combined with our reversed target order. This effectively swaps the |0011⟩ and |1100⟩ states compared to the standard qrunch convention.

Parameters:

theta (float64) – Rotation angle parameter for the excitation gate.

Return type:

NDArray[complex128]

Requirements:
  • Qrunch install requirements: qrunch[cuda] (or qrunch[all]).

  • A working cuda (cupy) installation.

cupy_pauli_x_unitary_matrix() NDArray[complex128]

Construct a Pauli-X unitary matrix.

Requirements:
  • Qrunch install requirements: qrunch[cuda] (or qrunch[all]).

  • A working cuda (cupy) installation.

Return type:

NDArray[complex128]

cupy_single_excitation_unitary_matrix(theta: float64) NDArray[complex128]

Construct a single excitation unitary matrix for two qubits.

The matrix is adapted for cuStateVec’s little-endian qubit ordering combined with our reversed target order. This effectively transposes the 2x2 subspace in the |01⟩, |10⟩ basis compared to the standard qrunch convention.

Parameters:

theta (float64) – Rotation angle parameter for the excitation gate.

Return type:

NDArray[complex128]

Requirements:
  • Qrunch install requirements: qrunch[cuda] (or qrunch[all]).

  • A working cuda (cupy) installation.

get_pauli_string_as_str(pauli_string: PauliString, num_qubits: int) str

Convert a library PauliString to its dense literal form.

Parameters:
  • pauli_string (PauliString) – Object exposing x_indices, y_indices and z_indices that report the qubit positions of the corresponding Pauli operators.

  • num_qubits (int) – Total number of qubits; determines the output length.

Return type:

str

Requirements:
  • Qrunch install requirements: qrunch[cuda] (or qrunch[all]).

  • A working cuda (cupy) installation.