23int getNumPermutations(
int n,
int k);
25int getBitAt(qindex num,
int ind);
26vector<int> getBits(qindex num,
int numBits);
27qindex getBitsAt(qindex num, vector<int> inds);
28qindex setBitAt(qindex num,
int ind,
int bit);
29qindex setBitsAt(qindex num, vector<int> inds, qindex bits);
32qreal getSum(vector<qreal> vec);
34qvector getNormalised(qvector);
35qvector getDisceteFourierTransform(qvector);
36qvector getDisceteFourierTransform(qvector in, vector<int> targs);
38qcomp getInnerProduct(qvector bra, qvector ket);
39qmatrix getOuterProduct(qvector ket, qvector bra);
41qvector operator * (
const qmatrix&,
const qvector&);
43bool isDiagonal(qmatrix);
44bool isApproxUnitary(qmatrix);
46qcomp getTrace(qmatrix);
47qmatrix getTranspose(qmatrix);
48qmatrix getConjugate(qmatrix);
50qmatrix getPowerOfDiagonalMatrix(qmatrix diag, qcomp power);
53qmatrix getExponentialOfNormalisedPauliVector(qreal arg, qreal x, qreal y, qreal z);
54qmatrix getOrthonormalisedRows(qmatrix);
55qmatrix getOrthonormalisedRows(qmatrix);
59qmatrix getProjector(
int outcome);
60qmatrix getProjector(vector<int> targets, vector<int> outcomes,
int numQubits);
61qmatrix getPartialTrace(qmatrix matrix, vector<int> targets);
62qmatrix getControlledMatrix(qmatrix matrix,
int numCtrls);
63qmatrix getMixture(vector<qvector> statevecs, vector<qreal> probs);
64qmatrix getMixture(vector<qmatrix> densmatrs, vector<qreal> probs);
65qmatrix getSuperOperator(vector<qmatrix>);
67bool isApproxCPTP(vector<qmatrix>);
qmatrix getKroneckerProduct(qmatrix a, qmatrix b)
qmatrix getConjugateTranspose(qmatrix m)
qmatrix getExponentialOfDiagonalMatrix(qmatrix m)
qmatrix getExponentialOfPauliMatrix(qreal arg, qmatrix m)