ECF 1.5
|
Public Member Functions | |
void | applyOp (int space) |
void | applyOp (int startSpace, int endSpace) |
void | applyOp (int space1, int space2, Basis &op) |
void | applyOp (int space1, int space2, int space3, Basis &op) |
void | applyOp (int space, algebra::mat &U) |
void | applyOp (algebra::mat &U, int transitSpace) |
void | applyConditionalOp (int condSpace, int cond, int space, algebra::mat &U) |
void | swap (int space1, int space2) |
void | measureAndSave (int measureSpace, int saveSpace) |
void | measure (int measureSpace) |
double | SafeLog (double x) |
double | ShannonEntropy () |
double | entropy () |
double | calculatePr (int measureSpace, int state) |
double | calculatePr (int space1, int state1, int space2, int state2) |
double | calculatePr (const std::vector< int > &spaceList, const std::vector< int > &stateList) |
void | splitAndSave (double p1, double p2, int space) |
void | computeDensityMat (algebra::mat &output) |
void | computeDensityMat (std::vector< Basis > &basis, algebra::mat &output) |
void | computeDensityMatFast (algebra::mat &output) |
void | trace (int space, DensityList &output) |
void | trace (int space) |
double | trace () |
void | project (int space, int state, DensityList &output) |
void | project (int space, int state) |
void | CNOT (int controlSpace, int targetSpace) |
void | NOT (int space) |
void | applyHadamard (int space) |
void | applyRotation (int space, double rotation) |
void | applySU2 (int space, double p, double theta, double psi) |
void | applyHadamard (int target, int control) |
void | applyNOT (int target, int control) |
void | applyPiOver8 (int target, int control) |
void | applySU2 (int target, int control, double p, double theta, double psi) |
void | conditionalSet (std::vector< int > &targetSpace, std::vector< int > &targetVal, std::vector< int > &condSpace, std::vector< int > &condVal) |
void | print (std::ostream &f) |
Public Attributes | |
std::vector< int > | dimension |
std::list< KetBra > | density |
void quantum::DensityList::applyConditionalOp | ( | int | condSpace, |
int | cond, | ||
int | space, | ||
algebra::mat & | U | ||
) |
Definition at line 439 of file Quantum.cpp.
void quantum::DensityList::applyHadamard | ( | int | space | ) |
Definition at line 680 of file Quantum.cpp.
void quantum::DensityList::applyHadamard | ( | int | target, |
int | control | ||
) |
Definition at line 722 of file Quantum.cpp.
void quantum::DensityList::applyNOT | ( | int | target, |
int | control | ||
) |
Definition at line 772 of file Quantum.cpp.
void quantum::DensityList::applyOp | ( | algebra::mat & | U, |
int | transitSpace | ||
) |
Definition at line 571 of file Quantum.cpp.
void quantum::DensityList::applyOp | ( | int | space | ) |
Definition at line 113 of file Quantum.cpp.
void quantum::DensityList::applyOp | ( | int | space, |
algebra::mat & | U | ||
) |
Definition at line 504 of file Quantum.cpp.
void quantum::DensityList::applyOp | ( | int | space1, |
int | space2, | ||
Basis & | op | ||
) |
Definition at line 281 of file Quantum.cpp.
void quantum::DensityList::applyOp | ( | int | space1, |
int | space2, | ||
int | space3, | ||
Basis & | op | ||
) |
Definition at line 353 of file Quantum.cpp.
void quantum::DensityList::applyOp | ( | int | startSpace, |
int | endSpace | ||
) |
Definition at line 174 of file Quantum.cpp.
void quantum::DensityList::applyPiOver8 | ( | int | target, |
int | control | ||
) |
Definition at line 736 of file Quantum.cpp.
void quantum::DensityList::applyRotation | ( | int | space, |
double | rotation | ||
) |
Definition at line 691 of file Quantum.cpp.
void quantum::DensityList::applySU2 | ( | int | space, |
double | p, | ||
double | theta, | ||
double | psi | ||
) |
Definition at line 703 of file Quantum.cpp.
void quantum::DensityList::applySU2 | ( | int | target, |
int | control, | ||
double | p, | ||
double | theta, | ||
double | psi | ||
) |
Definition at line 751 of file Quantum.cpp.
double quantum::DensityList::calculatePr | ( | const std::vector< int > & | spaceList, |
const std::vector< int > & | stateList | ||
) |
Definition at line 1009 of file Quantum.cpp.
double quantum::DensityList::calculatePr | ( | int | measureSpace, |
int | state | ||
) |
Definition at line 907 of file Quantum.cpp.
double quantum::DensityList::calculatePr | ( | int | space1, |
int | state1, | ||
int | space2, | ||
int | state2 | ||
) |
Definition at line 964 of file Quantum.cpp.
void quantum::DensityList::CNOT | ( | int | controlSpace, |
int | targetSpace | ||
) |
Definition at line 783 of file Quantum.cpp.
void quantum::DensityList::computeDensityMat | ( | algebra::mat & | output | ) |
Definition at line 1122 of file Quantum.cpp.
void quantum::DensityList::computeDensityMatFast | ( | algebra::mat & | output | ) |
for(int i=0; i<dimension[basisIndex]; ++i) { for(int j=0; j<dimension[basisIndex]; ++j) { Complex k = basis[basis.size()-1].B[Iter->ket[basisIndex]][i]; // 0 used to be basis index Complex b = conj(basis[basis.size()-1].B[Iter->bra[basisIndex]][j]); Complex c = algebra::ComplexHelper::mult(k, b); k = algebra::ComplexHelper::mult(Iter->p, c); output(startRow+i, startCol+j) += k; } }
Definition at line 1062 of file Quantum.cpp.
void quantum::DensityList::conditionalSet | ( | std::vector< int > & | targetSpace, |
std::vector< int > & | targetVal, | ||
std::vector< int > & | condSpace, | ||
std::vector< int > & | condVal | ||
) |
Definition at line 143 of file Quantum.cpp.
double quantum::DensityList::entropy | ( | ) |
Definition at line 846 of file Quantum.cpp.
void quantum::DensityList::measure | ( | int | measureSpace | ) |
Definition at line 889 of file Quantum.cpp.
void quantum::DensityList::measureAndSave | ( | int | measureSpace, |
int | saveSpace | ||
) |
Definition at line 869 of file Quantum.cpp.
void quantum::DensityList::NOT | ( | int | space | ) |
Definition at line 799 of file Quantum.cpp.
|
inline |
void quantum::DensityList::project | ( | int | space, |
int | state | ||
) |
Definition at line 663 of file Quantum.cpp.
void quantum::DensityList::project | ( | int | space, |
int | state, | ||
DensityList & | output | ||
) |
Definition at line 647 of file Quantum.cpp.
double quantum::DensityList::ShannonEntropy | ( | ) |
Definition at line 853 of file Quantum.cpp.
void quantum::DensityList::splitAndSave | ( | double | p1, |
double | p2, | ||
int | space | ||
) |
Definition at line 811 of file Quantum.cpp.
void quantum::DensityList::swap | ( | int | space1, |
int | space2 | ||
) |
Definition at line 830 of file Quantum.cpp.
double quantum::DensityList::trace | ( | ) |
Definition at line 951 of file Quantum.cpp.
void quantum::DensityList::trace | ( | int | space | ) |
Definition at line 261 of file Quantum.cpp.
void quantum::DensityList::trace | ( | int | space, |
DensityList & | output | ||
) |
Definition at line 243 of file Quantum.cpp.