#include <cstddef>
#include <complex>
#include <array>
#include <CMatrix.hpp>
#include <Constexpr.hpp>
#include "Qubit.tpp"
Aller au code source de ce fichier.
|
template<std::size_t N> |
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. Si le qubit contient deux cases non nuls, c'est une combinaisons linéaires de deux qubits que l'on peut écrire avec la forme classique, c'est-à-dire avec des "0" et des "1".
|
|
template<std::size_t N> |
CONSTEXPR Qubit< N > | operator* (CMatrix< _2POW(N)> const &lhs, Qubit< N > const &rhs) |
| Opérateur du produit entre un qubit et une matrice.
|
|
template<std::size_t N> |
std::ostream & | operator<< (std::ostream &out, Qubit< N > const &qubit) |
| Fonction d'affichage des qubit sous forme de liste de nombre complexe.
|
|
◆ operator*()
Opérateur du produit entre un qubit et une matrice.
- Avertissement
- le produit n'est pas associatif
- Paramètres du template
-
M | La taille du qubit, la matrice est de taille 2^M |
- Paramètres
-
[in] | lhs | La matrice carré complexe de taille 2^M |
[in] | rhs | Le M-qubit |
- Renvoie
- Qubit<M> renvoie le qubit resultant du produit
◆ operator<<()
template<std::size_t N>
std::ostream & operator<< |
( |
std::ostream & | out, |
|
|
Qubit< N > const & | qubit ) |
Fonction d'affichage des qubit sous forme de liste de nombre complexe.
- Paramètres du template
-
- Paramètres
-
[out] | out | Le flux de destination |
[in] | qubit | Le qubit à afficher |
- Renvoie
- std::ostream& le flux de destination
◆ qubitToArray()
template<std::size_t N>
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. Si le qubit contient deux cases non nuls, c'est une combinaisons linéaires de deux qubits que l'on peut écrire avec la forme classique, c'est-à-dire avec des "0" et des "1".
- Avertissement
- Cette fonction ne permet de faire la transformation que pour au plus deux cases non nuls dans le qubits
- Paramètres du template
-
- Paramètres
-
[in] | qubit | Le qubit a transformer |
- Renvoie
- Dans chaque cases du tableau, on a le qubits sous sa représentation classique que l'on modélise par un tableau de booléen, et un complexe qui est la scalaire.