Sequential Quantum Gate Decomposer
v1.9.3
Powerful decomposition of general unitarias into one- and two-qubit gates gates
|
A class to cerate general random unitary matrix according to arXiv:1303:5904v1. More...
#include <Random_Unitary.h>
Public Member Functions | |
Matrix | Construct_Unitary_Matrix () |
Call to create a random unitary. More... | |
Matrix | Construct_Unitary_Matrix (double *vartheta, double *varphi, double *varkappa) |
Generates a unitary matrix from parameters vartheta, varphi, varkappa according to arXiv:1303:5904v1. More... | |
Matrix | Construct_Unitary_Matrix (double *parameters) |
Generates a unitary matrix from parameters parameters according to arXiv:1303:5904v1. More... | |
int | convert_indexes (int varalpha, int varbeta) |
Calculates an index from paramaters varalpha and varbeta. More... | |
Matrix | E_alpha_beta (int varalpha, int varbeta) |
Implements matrix I below Eq (7) of arXiv:1303:5904v1. More... | |
double | gamma () |
Implements Eq (11) of arXiv:1303:5904v1. More... | |
Matrix | I_alpha_beta (int varalpha, int varbeta) |
Implements matrix I below Eq (7) of arXiv:1303:5904v1. More... | |
double | kronecker (int a, int b) |
Kronecker delta. More... | |
Matrix | M (int varalpha, int varbeta, QGD_Complex16 s, QGD_Complex16 t) |
Implements Eq (8) of arXiv:1303:5904v1. More... | |
Matrix | Omega (int varalpha, int varbeta, QGD_Complex16 x, QGD_Complex16 y) |
Eq (6) of arXiv:1303:5904v1. More... | |
void | print (const std::stringstream &sstream, int verbose_level=1) const |
Call to print output messages in the function of the verbosity level. More... | |
Matrix | Q (QGD_Complex16 u1, QGD_Complex16 u2) |
Implements Eq (9) of arXiv:1303:5904v1. More... | |
Random_Unitary (int dim_in) | |
Constructor of the class. More... | |
void | set_debugfile (std::string debugfile) |
Call to set the debugfile name. More... | |
void | set_verbose (int verbose_in) |
Call to set the verbose attribute. More... | |
Public Attributes | |
bool | debug |
Logical variable. Set true to write output messages to the 'debug.txt' file. More... | |
std::string | debugfile_name |
String variable. Set the debug file name. More... | |
int | dim |
The number of rows in the created unitary. More... | |
int | verbose |
Set the verbosity level of the output messages. More... | |
A class to cerate general random unitary matrix according to arXiv:1303:5904v1.
Definition at line 51 of file Random_Unitary.h.
Random_Unitary::Random_Unitary | ( | int | dim_in | ) |
Constructor of the class.
dim_in | The number of rows in the random unitary to be ceated. |
Definition at line 126 of file Random_Unitary.cpp.
Matrix Random_Unitary::Construct_Unitary_Matrix | ( | ) |
Call to create a random unitary.
Definition at line 143 of file Random_Unitary.cpp.
Matrix Random_Unitary::Construct_Unitary_Matrix | ( | double * | vartheta, |
double * | varphi, | ||
double * | varkappa | ||
) |
Generates a unitary matrix from parameters vartheta, varphi, varkappa according to arXiv:1303:5904v1.
vartheta | array of dim*(dim-1)/2 elements |
varphi | array of dim*(dim-1)/2 elements |
varkappa | array of dim-1 elements |
Definition at line 189 of file Random_Unitary.cpp.
Matrix Random_Unitary::Construct_Unitary_Matrix | ( | double * | parameters | ) |
Generates a unitary matrix from parameters parameters according to arXiv:1303:5904v1.
parameters | array of (dim+1)*(dim-1) elements |
Definition at line 255 of file Random_Unitary.cpp.
Calculates an index from paramaters varalpha and varbeta.
varalpha | An integer |
varbeta | An integer |
Definition at line 244 of file Random_Unitary.cpp.
Implements matrix I below Eq (7) of arXiv:1303:5904v1.
varalpha | An integer |
varbeta | An integer |
Definition at line 363 of file Random_Unitary.cpp.
double Random_Unitary::gamma | ( | ) |
Implements Eq (11) of arXiv:1303:5904v1.
Definition at line 398 of file Random_Unitary.cpp.
Implements matrix I below Eq (7) of arXiv:1303:5904v1.
varalpha | An integer |
varbeta | An integer |
Definition at line 380 of file Random_Unitary.cpp.
Kronecker delta.
a | An integer |
b | An integer |
Definition at line 412 of file Random_Unitary.cpp.
Matrix Random_Unitary::M | ( | int | varalpha, |
int | varbeta, | ||
QGD_Complex16 | s, | ||
QGD_Complex16 | t | ||
) |
Implements Eq (8) of arXiv:1303:5904v1.
varalpha | An integer |
varbeta | An integer |
s | A complex number |
t | A complex number |
Definition at line 307 of file Random_Unitary.cpp.
Matrix Random_Unitary::Omega | ( | int | varalpha, |
int | varbeta, | ||
QGD_Complex16 | x, | ||
QGD_Complex16 | y | ||
) |
Eq (6) of arXiv:1303:5904v1.
varalpha | An integer |
varbeta | An integer |
x | A complex number |
y | A complex number |
Definition at line 269 of file Random_Unitary.cpp.
|
inherited |
Call to print output messages in the function of the verbosity level.
sstream | The stringstream input to store the output messages. |
verbose_level | Integer input. High level means write more to the standart output, 0 means write nothing. The default value is set to 1. |
Definition at line 55 of file logging.cpp.
Matrix Random_Unitary::Q | ( | QGD_Complex16 | u1, |
QGD_Complex16 | u2 | ||
) |
Implements Eq (9) of arXiv:1303:5904v1.
u1 | A complex number |
u2 | A complex number |
Definition at line 341 of file Random_Unitary.cpp.
|
inherited |
Call to set the debugfile name.
debugfile | String variable. Set the debugfile name. |
Definition at line 95 of file logging.cpp.
|
inherited |
Call to set the verbose attribute.
verbose_in | Integer variable. Set the number to specify the verbosity level for output messages. |
Definition at line 85 of file logging.cpp.
|
inherited |
|
inherited |
int Random_Unitary::dim |
The number of rows in the created unitary.
Definition at line 56 of file Random_Unitary.h.
|
inherited |