|
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 |
1.8.13