public void Conjugate() { var c1 = new Complex(3, 6); var c2 = new Complex(-3, -1); var cc1 = c1.Conjugate(); var cc2 = c2.Conjugate(); Assert.AreEqual(3, cc1.Real); Assert.AreEqual(-6, cc1.Imaginary); Assert.AreEqual(-3, cc2.Real); Assert.AreEqual(1, cc2.Imaginary); }
public static Complex Conj(Complex z) { return z.Conjugate(); }
private void PerformGivensRotation(Matrix Q, Matrix R, int i, int j, ref Complex Gii, ref Complex Gij, ref Complex Gji, ref Complex Gjj) { // do matrix multiplication by hand for speed for (int k = 0; k < R.Columns; k++) { Complex Rik = R[i, k], Rjk = R[j, k]; R[i, k] = Gii * Rik + Gij * Rjk; R[j, k] = Gji * Rik + Gjj * Rjk; } Complex GTii = Gii.Conjugate(), GTij = Gji.Conjugate(), GTji = Gij.Conjugate(), GTjj = Gjj.Conjugate(); for (int k = 0; k < Q.Rows; k++) { Complex Qki = Q[k, i], Qkj = Q[k, j]; Q[k, i] = Qki * GTii + Qkj * GTji; Q[k, j] = Qki * GTij + Qkj * GTjj; } }