Classes | |
| struct | polar |
| 4D polar coordinates. Not really used. More... | |
Functions | |
| void | mat_to_cart3 (const Matrix< cdouble > &U, double *c) |
| Calculate cartesian form of the 3D Bloch vector for U. | |
| void | cart3_to_mat (double *c, Matrix< cdouble > &U) |
| Construct a matrix U from the 3D cartesian Bloch vector. | |
| void | mat_to_polar3 (const Matrix< cdouble > &U, double *p) |
| Calculate polar form of the 3D Bloch vector for U. | |
| void | polar3_to_mat (double *p, Matrix< cdouble > &U) |
| Construct a matrix U from the 3D polar Bloch vector. | |
| void | polar_to_cart3 (double *p, double *c) |
| Convert a polar 3D vector to a cartesian 3D vector. | |
| void | cart_to_polar3 (double *c, double *p) |
| Convert a cartesian 3D vector to a polar 3D vector. | |
| void | x_factor (double *z, double *x, double *y) |
Given a 3D cartesian vector z, find vectors x,y s.t. . | |
| void | mat_to_cart4 (const Matrix< cdouble > &U, double *a) |
| Calculate cartesian form of the 4D unit vector for U. | |
| void | cart4_to_mat (double *a, Matrix< cdouble > &U) |
| Construct a matrix U from the 4D cartesian unit vector. | |
| void | mat_to_polar4 (const Matrix< cdouble > &, double *) |
| Calculate the polar form of the 4D unit vector for U. | |
| void | polar4_to_mat (double *, Matrix< cdouble > &) |
| Construct a matrix U from the 4D polar unit vector. | |
| void | polar_to_cart4 (double *, double *) |
| Convert a polar form 4D vector to cartesian form. | |
| void | cart_to_polar4 (double *, double *) |
| Convert a cartesian form 4D vector to polar form. | |
| void | polar_to_cart4 (polar &p, double *r) |
| Legacy conversion from a 4D polar struct to cartesian form. | |
| void | polar4_to_mat (polar &, Matrix< cdouble > &) |
| Legacy conversion from a 4D cartesian vector to a polar struct. | |
| void | eig_vals (Matrix< cdouble > &U, cdouble *evals) |
| Quick and dirty calculation of the eigenvalues of an SU(2) matrix. | |
| void | eig_vecs (Matrix< cdouble > &U, cdouble *evecs) |
| Quick and dirty calculation of the eigenvectors of an SU(2) matrix. | |
| double | trace_dist (const Matrix< cdouble > &U, const Matrix< cdouble > &V) |
| Trace distance between SU(2) matrices U,V. | |
| double | trace_dist (const Matrix< cdouble > &U, double *coord4) |
| Trace distance between SU(2) matrices U,V. | |
| double | proj_trace_dist (const Matrix< cdouble > &U, const Matrix< cdouble > &V) |
| 'Projective' trace distance between SU(2) matrices U,V | |
| double | proj_trace_dist (const Matrix< cdouble > &U, double *coord4) |
| 'Projective' trace distance between SU(2) matrices U,V | |
| void | group_factor (const Matrix< cdouble > &U, Matrix< cdouble > &V, Matrix< cdouble > &W) |
| Find 'balanced' V,W in SU(2) such that U = [V,W]. | |
| void | x_group_factor (const Matrix< cdouble > &, Matrix< cdouble > &, Matrix< cdouble > &) |
| 'Balanced' group commutator decomposition for U a rotation about the x-axis | |
| void | similarity_matrix (const Matrix< cdouble > &V, Matrix< cdouble > &W, Matrix< cdouble > &) |
Find an SU(2) matrix S such that . | |
| double | norm (double *v, int n) |
| Norm of a real vector v of length n. | |
This provides:
The parameterizations are the 3D Bloch vector r from
and the 4D unit vector from $U = aI + ibX + icY + idZ$. The naming convention is pretty self explanatory e.g. mat_to_cart3(Matrix<cdouble>& U, double* r) will calculate the cartesian form of the Block vector for U and place it in r, while polar4_to_mat(double* p, Matrix<cdouble>& U) will construct the matrix U from the polar form of a 4D unit vector.
|
||||||||||||
|
Construct a matrix U from the 3D cartesian Bloch vector.
|
|
||||||||||||
|
Construct a matrix U from the 4D cartesian unit vector.
|
|
||||||||||||
|
Convert a cartesian 3D vector to a polar 3D vector.
|
|
||||||||||||
|
Convert a cartesian form 4D vector to polar form.
|
|
||||||||||||
|
Quick and dirty calculation of the eigenvalues of an SU(2) matrix.
|
|
||||||||||||
|
Quick and dirty calculation of the eigenvectors of an SU(2) matrix.
|
|
||||||||||||||||
|
Find 'balanced' V,W in SU(2) such that U = [V,W].
|
|
||||||||||||
|
Calculate cartesian form of the 3D Bloch vector for U.
|
|
||||||||||||
|
Calculate cartesian form of the 4D unit vector for U.
|
|
||||||||||||
|
Calculate polar form of the 3D Bloch vector for U.
|
|
||||||||||||
|
Calculate the polar form of the 4D unit vector for U.
|
|
||||||||||||
|
Norm of a real vector v of length n.
|
|
||||||||||||
|
Construct a matrix U from the 3D polar Bloch vector.
|
|
||||||||||||
|
Legacy conversion from a 4D cartesian vector to a polar struct.
|
|
||||||||||||
|
Construct a matrix U from the 4D polar unit vector.
|
|
||||||||||||
|
Convert a polar 3D vector to a cartesian 3D vector.
|
|
||||||||||||
|
Legacy conversion from a 4D polar struct to cartesian form.
|
|
||||||||||||
|
Convert a polar form 4D vector to cartesian form.
|
|
||||||||||||
|
'Projective' trace distance between SU(2) matrices U,V V in this case is given by its 4D cartesian coordinates |
|
||||||||||||
|
'Projective' trace distance between SU(2) matrices U,V
|
|
||||||||||||||||
|
Find an SU(2) matrix S such that (or it might be the other way around) |
|
||||||||||||
|
Trace distance between SU(2) matrices U,V. Except V in this case is given by its 4D cartesian coordinates |
|
||||||||||||
|
Trace distance between SU(2) matrices U,V.
|
|
||||||||||||||||
|
Given a 3D cartesian vector z, find vectors x,y s.t.
|
|
||||||||||||||||
|
'Balanced' group commutator decomposition for U a rotation about the x-axis
|
1.4.1