Quantum-Chess 0.5
Chargement...
Recherche...
Aucune correspondance
Référence du fichier Qubit.hpp
#include <cstddef>
#include <complex>
#include <array>
#include <CMatrix.hpp>
#include <Constexpr.hpp>
#include "Qubit.tpp"

Aller au code source de ce fichier.

Classes

class  Qubit< N >
 Représente un qubit. Plus de détails...
 

Fonctions

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.
 

Documentation des fonctions

◆ operator*()

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.

Avertissement
le produit n'est pas associatif
Paramètres du template
MLa taille du qubit, la matrice est de taille 2^M
Paramètres
[in]lhsLa matrice carré complexe de taille 2^M
[in]rhsLe 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
MLa taille du qubit
Paramètres
[out]outLe flux de destination
[in]qubitLe 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
NLa taille du qubit
Paramètres
[in]qubitLe 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.