| 141 | |
| 142 | |
| 143 | qvector getNormalised(qvector vec) { |
| 144 | |
| 145 | // prob[i] = abs(vec[i])^2 |
| 146 | vector<qreal> probs(vec.size()); |
| 147 | for (size_t i=0; i<vec.size(); i++) |
| 148 | probs[i] = std::norm(vec[i]); |
| 149 | |
| 150 | // normalise vector |
| 151 | qreal norm = getSum(probs); |
| 152 | qreal fac = 1 / std::sqrt(norm); |
| 153 | for (auto& x : vec) |
| 154 | x *= fac; |
| 155 | |
| 156 | return vec; |
| 157 | } |
| 158 | |
| 159 | |
| 160 | qvector getDisceteFourierTransform(qvector in) { |
no test coverage detected