pygsti.extras.interpygate.process_tomography¶

Perform process tomography on a simulated quantum process.

Module Contents¶

Functions¶

 multi_kron(*a) Construct the tensor product of a series of matrices vec(matrix) A function that vectorizes a matrix. unvec(vectorized) A function that vectorizes a process in the basis of matrix units, sorted first split(n, a) Divide list into n approximately equally sized chunks run_process_tomography(state_to_density_matrix_fn, n_qubits=1, comm=None, verbose=False, basis='pp', time_dependent=False, opt_args={}) A function to compute the process matrix for a quantum channel given a function
pygsti.extras.interpygate.process_tomography.multi_kron(*a)

Construct the tensor product of a series of matrices

pygsti.extras.interpygate.process_tomography.vec(matrix)

A function that vectorizes a matrix.

Parameters

matrix (list,numpy.ndarray) – NxN matrix

Returns

numpy.ndarray – N^2x1 dimensional column vector

Raises

ValueError – If the input matrix is not square.

pygsti.extras.interpygate.process_tomography.unvec(vectorized)

A function that vectorizes a process in the basis of matrix units, sorted first by column, then row.

Parameters

vectorized (list,numpy.ndarray) – Nx1 matrix or N-dimensional vector

Returns

numpy.ndarray – NxN dimensional column vector

Raises

ValueError – If the length of the input is not a perfect square

pygsti.extras.interpygate.process_tomography.split(n, a)

Divide list into n approximately equally sized chunks

Parameters
• n – int The number of chunks

• a – iterable The array to be divided into chunks

Returns

numpy.ndarray

The original data divided into n approximately equally sized chunks.

pygsti.extras.interpygate.process_tomography.run_process_tomography(state_to_density_matrix_fn, n_qubits=1, comm=None, verbose=False, basis='pp', time_dependent=False, opt_args={})

A function to compute the process matrix for a quantum channel given a function that maps a pure input state to an output density matrix.

Parameters
• state_to_density_matrix_fn – (function: array -> array) The function that computes the output density matrix from an input pure state.

• n_qubits – (int, optional, default 1) The number of qubits expected by the function. Defaults to 1.

• comm – (MPI.comm object, optional) An MPI communicator object for parallel computation. Defaults to local comm.

• verbose – (bool, optional, default False) How much detail to send to stdout

• basis – (str, optional, default ‘pp’) The basis in which to return the process matrix

• time_dependent – (bool, optional, default False ) If the process is time dependent, then expect the density matrix function to return a list of density matrices, one at each time point.

• opt_args – (dict, optional) Optional keyword arguments for state_to_density_matrix_fn

Returns

numpy.ndarray

The process matrix representation of the quantum channel in the basis specified by ‘basis’. If ‘time_dependent’=True, then this will be an array of process matrices.