Utilities¶
In utils.py
you will find functions that are shared among one or more modules.
Common Functions¶
is_pos_pow_two (x) |
Simple check that an integer is a positive power of two. |
bit_array_to_int (bit_array) |
Converts a bit array into an integer where the right-most bit is least significant. |
int_to_bit_array (num, n_bits) |
Converts a number into an array of bits where the right-most bit is least significant. |
pack_shot_data (shot_data) |
|
bloch_vector_to_standard_basis (theta, phi) |
Converts the Bloch vector representation of a 1q state given in spherical coordinates to the standard representation of that state in the computational basis. |
standard_basis_to_bloch_vector (qubit_state) |
Converts a standard representation of a single qubit state in the computational basis to the spherical coordinates theta, phi of its representation on the Bloch sphere. |
prepare_state_on_bloch_sphere (qubit, theta, phi) |
Returns a program which prepares the given qubit in the state (theta, phi) on the bloch sphere, assuming the initial state |0> where (theta=0, phi=0). |
transform_pauli_moments_to_bit (mean_p, var_p) |
Changes the first of a Pauli operator to the moments of a bit (a Bernoulli process). |
transform_bit_moments_to_pauli (mean_c, var_c) |
Changes the first two moments of a bit (a Bernoulli process) to Pauli operator moments. |
parameterized_bitstring_prep (qubits, …) |
Produces a parameterized program for the given group of qubits, where each qubit is prepared in the 0 or 1 state depending on the parameterization specified at run-time. |
bitstring_prep (qubits, bitstring, …) |
Produces a program that prepares the given bitstring on the given qubits. |
metadata_save (qc, repo_path, filename) |
This helper function saves metadata related to your run on a Quantum computer. |
Pauli Functions¶
str_to_pauli_term (pauli_str[, qubit_labels]) |
Convert a string into a PauliTerm . |
all_traceless_pauli_terms (qubits) |
Generate list of all Pauli terms (with weight > 0) on N qubits. |
all_traceless_pauli_choice_terms (qubits, …) |
Generate list of all Pauli terms (with weight > 0) on N qubits with choice pauli. |
all_traceless_pauli_z_terms (qubits) |
Generate list of all Pauli Z terms (with weight > 0) on N qubits |
local_pauli_eig_prep (op, qubit) |
Generate gate sequence to prepare a the +1 eigenstate of a Pauli operator, assuming we are starting from the ground state ( the +1 eigenstate of \(Z^{\otimes n}\)) |
local_pauli_eigs_prep (op, qubit) |
Generate all gate sequences to prepare all eigenstates of a (local) Pauli operator, assuming we are starting from the ground state. |
random_local_pauli_eig_prep (prog, op, qubit) |
Generate gate sequence to prepare a random local eigenstate of a Pauli operator, assuming we are starting from the ground state. |
local_pauli_eig_meas (op, qubit) |
Generate gate sequence to measure in the eigenbasis of a Pauli operator, assuming we are only able to measure in the Z eigenbasis. |
prepare_prod_pauli_eigenstate (pauli_term) |
Returns a circuit to prepare a +1 eigenstate of the Pauli operator described in PauliTerm. |
measure_prod_pauli_eigenstate (pauli_term) |
|
prepare_random_prod_pauli_eigenstate (pauli_term) |
|
prepare_all_prod_pauli_eigenstates (pauli_term) |
Operator Basis¶
OperatorBasis (labels_ops) |
Encapsulate a complete set of basis operators. |
n_qubit_pauli_basis (n) |
Construct the tensor product operator basis of n PAULI_BASIS’s. |
n_qubit_computational_basis (n) |
Construct the tensor product operator basis of n COMPUTATIONAL_BASIS’s. |