Matrix few_CNOT_unitary(int qbit_num, int cnot_num)
Call to create a random unitary constructed by CNOT operation between randomly chosen qubits and by r...
int convert_indexes(int varalpha, int varbeta)
Calculates an index from paramaters varalpha and varbeta.
double kronecker(int a, int b)
Kronecker delta.
Header file for a class representing a CNOT operation.
int dim
The number of rows in the created unitary.
double gamma()
Implements Eq (11) of arXiv:1303:5904v1.
Matrix E_alpha_beta(int varalpha, int varbeta)
Implements matrix I below Eq (7) of arXiv:1303:5904v1.
Matrix M(int varalpha, int varbeta, QGD_Complex16 s, QGD_Complex16 t)
Implements Eq (8) of arXiv:1303:5904v1.
Structure type representing complex numbers in the QGD package.
Class to store data of complex arrays and its properties.
Header file for a class representing a U3 operation.
Random_Unitary(int dim_in)
Constructor of the class.
A class to cerate general random unitary matrix according to arXiv:1303:5904v1.
Matrix Q(QGD_Complex16 u1, QGD_Complex16 u2)
Implements Eq (9) of arXiv:1303:5904v1.
Matrix I_alpha_beta(int varalpha, int varbeta)
Implements matrix I below Eq (7) of arXiv:1303:5904v1.
Header file for commonly used functions and wrappers to CBLAS functions.
Matrix Omega(int varalpha, int varbeta, QGD_Complex16 x, QGD_Complex16 y)
Eq (6) of arXiv:1303:5904v1.
Matrix Construct_Unitary_Matrix()
Call to create a random unitary.