ToColumnMatrix() { Complex[][] m = ComplexMatrix.CreateMatrixData(_length, 1); for (int i = 0; i < _data.Length; i++) { m[i][0] = _data[i]; } return(new ComplexMatrix(m)); }
ToRowMatrix() { Complex[][] m = ComplexMatrix.CreateMatrixData(1, _length); Complex[] mRow = m[0]; for (int i = 0; i < _data.Length; i++) { mRow[i] = _data[i]; } return(new ComplexMatrix(m)); }
/// <summary> /// Givens Rotation: Evaluate unitary G = [c,s;-s,c] such that |G*v| = [norm(v);0] and c is real. /// </summary> public static ComplexMatrix Rotation(ComplexVector v) { double c; Complex s; Rotation(v[0], v[1], out c, out s); Complex[][] m = ComplexMatrix.CreateMatrixData(2, 2); m[0][0] = c; m[0][1] = s; m[1][0] = -s.Conjugate; m[1][1] = c; return(new ComplexMatrix(m)); }
DyadicProduct( IVector <Complex> u, IVector <Complex> v) { Complex[][] m = ComplexMatrix.CreateMatrixData(u.Length, v.Length); for (int i = 0; i < u.Length; i++) { for (int j = 0; j < v.Length; j++) { m[i][j] = u[i] * v[j].Conjugate; } } return(new ComplexMatrix(m)); }