qubiter.UnitaryMat module¶
-
class
qubiter.UnitaryMat.UnitaryMat[source]¶ Bases:
objectThis class contains only static methods and no constructor. It contains some functions associated with unitary matrices.
Note that any numpy array called arr can be saved and loaded from a text file called file_name using
np.savetxt(file_name, arr)- and
- arr = np.loadtxt(file_name)
-
static
global_phase_rads(arr)[source]¶ Assuming that arr is a unitary matrix, this function returns delta such that arr = exp(i*delta) arr1, where arr1 is a special unitary matrix (det(arr1) = 1).
Parameters: arr (np.ndarray) – Returns: Return type: float
-
static
is_unitary(arr)[source]¶ Returns True iff arr is a numpy array that represents a unitary matrix.
Parameters: arr (np.ndarray) – Returns: Return type: bool
-
static
params_from_u2(arr)[source]¶ Assuming that arr is a U(2) matrix, this function returns the parameters (delta, rot_rads, unit_vec) such that arr = exp( i*delta)exp( i*rot_rads*sig_w) such that unit_vec = [wx, wy, wz] is a unit vector and sig_w = wx*sigx + wy*sigy + wz*sigz.
Parameters: arr (np.ndarray) – Returns: Return type: float, float, list[float]
-
static
u2_from_params(delta, rot_rads, unit_vec)[source]¶ This function returns a numpy array arr = exp(i*delta)exp( i*rot_rads*sig_w) such that unit_vec = [wx, wy, wz] is a unit vector and sig_w = wx*sigx + wy*sigy + wz*sigz.
params_from_u2() maps arr -> (delta, rot_rads, unit_vec). This function maps (delta, rot_rads, unit_vec) -> arr so it is the inverse of params_from_u2(). But be careful, because delta, rot_rads are not single valued, they are only valid mod 2*pi.
Parameters: - delta (float) –
- rot_rads (float) –
- unit_vec (list[float]) –
Returns: Return type: np.ndarray
-
static
u2_zyz_decomp(arr)[source]¶ Assuming that arr is a U(2) matrix, this function returns (delta, left_rads, center_rads, right_rads) such that
arr = exp(i*delta)* exp(i*left_rads*sigz) exp(i*center_rads*sigy) exp(i*right_rads*sigz)
If change axes by x->y, y->z, z->x, get xzx decomp with same angles.
Parameters: arr (np.ndarray) – Returns: Return type: float, float, float, float