示例#1
0
        ToColumnMatrix()
        {
            Complex[][] m = ComplexMatrix.CreateMatrixData(_length, 1);
            for (int i = 0; i < _data.Length; i++)
            {
                m[i][0] = _data[i];
            }

            return(new ComplexMatrix(m));
        }
示例#2
0
        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));
        }