15template <std::
size_t N>
42 template <std::
size_t M>
47 template <std::
size_t M>
52 template <std::
size_t M>
56 std::complex<double>>,
78template <std::
size_t N>
79CONSTEXPR std::array<std::pair<std::array<bool, N>, std::complex<double>>, 2>
90template <std::
size_t N>
104template <std::
size_t N>
Matrix< std::complex< double >, N > CMatrix
Objet représentant les matrices carrées complexe de dimension N.
Definition CMatrix.hpp:15
#define _2POW(n)
Réalise l'opération 2^n.
Definition CMatrix.hpp:38
#define CONSTEXPR
Utilisé pour utiliser ou non constexpr.
Definition Constexpr.hpp:7
CONSTEXPR std::array< std::pair< std::array< bool, N >, std::complex< double > >, 2 > qubitToArray(Qubit< N > const &qubit)
Transforme un qubit dans sa représentation sous forme de vecteur en sa représentation classique....
std::ostream & operator<<(std::ostream &out, Qubit< N > const &qubit)
Fonction d'affichage des qubit sous forme de liste de nombre complexe.
CONSTEXPR Qubit< N > operator*(CMatrix< _2POW(N)> const &lhs, Qubit< N > const &rhs)
Opérateur du produit entre un qubit et une matrice.
Représente un qubit.
Definition Qubit.hpp:17
CONSTEXPR Qubit()=default
friend std::ostream & operator<<(std::ostream &out, Qubit< M > const &qubit)
CONSTEXPR Qubit(Qubit const &)=delete
friend CONSTEXPR std::array< std::pair< std::array< bool, M >, std::complex< double > >, 2 > qubitToArray(Qubit< M > const &qubit)
CONSTEXPR Qubit & operator=(Qubit const &)=delete
CONSTEXPR Qubit(std::array< bool, N > const &data)
Construit un nouveau qubit à l'aide d'un tableau de booléen.
CONSTEXPR Qubit(Qubit &&)=delete
CONSTEXPR ~Qubit()=default
CONSTEXPR Qubit & operator=(Qubit &&)=delete
CONSTEXPR Qubit(std::array< std::complex< double >, _2POW(N)> &&init_list)
friend CONSTEXPR Qubit< M > operator*(CMatrix< _2POW(M)> const &lhs, Qubit< M > const &rhs)
std::array< std::complex< double >, _2POW(N)> m_data
Definition Qubit.hpp:61