Пример #1
0
Complex<T> PH5Curve<T>::rit(int16_t i, T e) {
    Complex<T> sum;
    T e1 = 1 - e;
    T ek[6];
    T e1k[6];
    ek[0] = e1k[5] = 1;
    T Eprod = 1;
    T E1prod = 1;
    for (int16_t k = 1; k <= 5; k++) {
        ek[k] = Eprod = e * Eprod;
        e1k[5 - k] = E1prod = e1 * E1prod;
    }
    sum.add(pi0[i] * (choose5[0]*e1k[0]*ek[0]));
    sum.add(pi1[i] * (choose5[1]*e1k[1]*ek[1]));
    sum.add(pi2[i] * (choose5[2]*e1k[2]*ek[2]));
    sum.add(pi3[i] * (choose5[3]*e1k[3]*ek[3]));
    sum.add(pi4[i] * (choose5[4]*e1k[4]*ek[4]));
    sum.add(pi5[i] * (choose5[5]*e1k[5]*ek[5]));
    return sum;
}
Complex * Gates::multiply8x8(Complex *q, Complex matrix[8][8]){
	int qb_size = 8;
	Complex * result = new Complex[qb_size];
	for (int i = 0; i<qb_size; i++){
		Complex tmp;
		for (int j = 0; j<qb_size; j++) tmp = tmp.add(q[j].mul(matrix[j][i]));
		result[i].re = tmp.re;
		result[i].im = tmp.im;
	}
	delete[] q;
	return result;
}
Пример #3
0
Complex operator+(Complex a,Complex b)
{
    return a.add(b);
}