randomizedΒΆ

ToolKits for Randomized Measure (qurry.qurrium.utils.randomized)

qurry.qurrium.utils.randomized.RXmatrix: ndarray[tuple[Literal[2], Literal[2]], dtype[complex128]] = array([[0, 1],        [1, 0]])ΒΆ

Pauli-X matrix

qurry.qurrium.utils.randomized.RYmatrix: ndarray[tuple[Literal[2], Literal[2]], dtype[complex128]] = array([[ 0.+0.j, -0.-1.j],        [ 0.+1.j,  0.+0.j]])ΒΆ

Pauli-Y matrix

qurry.qurrium.utils.randomized.RZmatrix: ndarray[tuple[Literal[2], Literal[2]], dtype[complex128]] = array([[ 1,  0],        [ 0, -1]])ΒΆ

Pauli-Z matrix

qurry.qurrium.utils.randomized.density_matrix_to_bloch(rho: ndarray[tuple[Literal[2], Literal[2]], dtype[complex128]] | list[list[complex]]) list[float][source]ΒΆ

Convert a density matrix to a Bloch vector.

Parameters:
  • (Union[ (rho) – np.ndarray[tuple[Literal[2], Literal[2]], np.dtype[np.complex128]], list[list[complex]]

  • ]) – The density matrix. It can be a :cls:`numpy.ndarray` or :cls:`list[list[complex]]`. The matrix should be a 2x2 matrix.

Returns:

The bloch vector.

Return type:

list[float]

qurry.qurrium.utils.randomized.local_random_unitary_operators(unitary_loc: tuple[int, int], unitary_op_list: list[ndarray] | dict[int, Operator]) dict[int, list[list[complex]]][source]ΒΆ

Transform a list of unitary operators in :cls:`qiskit.quantum_info.operator.Operator` a list of unitary operators in :cls:`numpy.ndarray`.

Parameters:
  • unitary_loc (tuple[int, int]) – The location of unitary operator.

  • unitary_op_list (Union[list[np.ndarray], dict[int, Operator]]) – The list of unitary operators.

Returns:

The dictionary of unitary operators in list[list[complex]].

Return type:

dict[int, list[list[complex]]]

qurry.qurrium.utils.randomized.local_random_unitary_pauli_coeff(unitary_loc: tuple[int, int], unitary_op_dict: dict[int, list[list[complex]]]) dict[int, list[tuple[float | float64, float | float64]]][source]ΒΆ

Transform a list of unitary operators in :cls:`numpy.ndarray` a list of pauli coefficients.

Parameters:
  • unitary_loc (tuple[int, int]) – The location of unitary operator.

  • unitary_op_dict (dict[int, list[list[complex]]]) – The list of unitary operators or dictionary of unitary operators.

Returns:

The list of pauli coefficients.

Return type:

dict[int, list[tuple[float, float]]]

qurry.qurrium.utils.randomized.local_unitary_op_to_list(single_unitary_op_dict: dict[int, Operator]) dict[int, list[list[complex]]][source]ΒΆ

Transform a dictionary of local unitary operators in :cls:`qiskit.quantum_info.operator.Operator` with the qubit index as key to a dictionary of unitary operators in :cls:`list[list[complex]]`.

Parameters:

single_unitary_op_dict (dict[int, Operator]) – The dictionary of unitary operators.

Returns:

The dictionary of unitary operators in :cls:`list[list[complex]]`.

Return type:

dict[int, list[list[complex]]]

qurry.qurrium.utils.randomized.local_unitary_op_to_pauli_coeff(single_unitary_op_list_dict: dict[int, list[list[complex]]]) dict[int, list[tuple[float | float64, float | float64]]][source]ΒΆ

Transform a dictionary of local unitary operators in :cls:`list[list[complex]]` with the qubit index as key to a dictionary of pauli coefficients.

Parameters:

single_unitary_dict (dict[int, Operator]) – The dictionary of unitary operators.

Returns:

The dictionary of pauli coefficients.

Return type:

dict[int, list[tuple[float, float]]]

qurry.qurrium.utils.randomized.qubit_operator_to_pauli_coeff(rho: ndarray[tuple[Literal[2], Literal[2]], dtype[complex128]] | list[list[complex]]) list[tuple[float | float64, float | float64]][source]ΒΆ

Convert a random unitary operator matrix to a Bloch vector.

Parameters:
  • (Union[ (rho) – np.ndarray[tuple[Literal[2], Literal[2]], np.dtype[np.complex128]], list[list[complex]]

  • ]) – The random unitary operator matrix. It can be a :cls:`numpy.ndarray` or :cls:`list[list[complex]]`. The matrix should be a 2x2 matrix.

Returns:

The bloch vector divided as tuple of real number and image number.

Return type:

list[tuple[float]]