public void GetTransposeSquare()
 {
   ComplexFloatMatrix a = new ComplexFloatMatrix(2,2);
   a[0,0] = new ComplexFloat(1);
   a[0,1] = new ComplexFloat(2);
   a[1,0] = new ComplexFloat(3);
   a[1,1] = new ComplexFloat(4);
   ComplexFloatMatrix b = a.GetTranspose();
   Assert.AreEqual(b[0,0], a[0,0]);
   Assert.AreEqual(b[0,1], a[1,0]);
   Assert.AreEqual(b[1,0], a[0,1]);
   Assert.AreEqual(b[1,1], a[1,1]);
 }
 public void GetTransposeLong()
 {
   ComplexFloatMatrix a = new ComplexFloatMatrix(3,2);
   a[0,0] = new ComplexFloat(1);
   a[0,1] = new ComplexFloat(2);
   a[1,0] = new ComplexFloat(3);
   a[1,1] = new ComplexFloat(4);
   a[2,0] = new ComplexFloat(5);
   a[2,1] = new ComplexFloat(6);
   ComplexFloatMatrix b = a.GetTranspose();
   Assert.AreEqual(b[0,0], a[0,0]);
   Assert.AreEqual(b[0,1], a[1,0]);
   Assert.AreEqual(b[0,2], a[2,0]);
   Assert.AreEqual(b[1,0], a[0,1]);
   Assert.AreEqual(b[1,1], a[1,1]);
   Assert.AreEqual(b[1,2], a[2,1]);
   Assert.AreEqual(b.RowLength, a.ColumnLength);
   Assert.AreEqual(b.ColumnLength, a.RowLength);
 }
Exemplo n.º 3
0
		/// <summary>
		/// Get a copy of the Toeplitz matrix.
		/// </summary>
		/// <returns>
		/// The Toeplitz matrix
		/// </returns>
		public ComplexFloatMatrix GetMatrix()
		{
			int i;

			// allocate memory for the matrix
			ComplexFloatMatrix tm = new ComplexFloatMatrix(m_Order);
#if MANAGED
			// fill lower triangle
			for (i = 0; i < m_Order; i++)
			{
				Array.Copy(m_LeftColumn.data, 0, tm.data[i], i, m_Order - i);
			}

			tm = tm.GetTranspose();

			// fill upper triangle
			for (i = 0; i < m_Order - 1; i++)
			{
				Array.Copy(m_TopRow.data, 1, tm.data[i], i + 1, m_Order - i - 1);
			}
#else
      int j, k;

      // fill lower triangle
      for (i = 0; i < m_Order; i++)
      {
        for (j = i, k = 0; j < m_Order; j++, k++)
        {
          tm[j, i] = m_LeftColumn[k];
        }
      }
      // fill upper triangle
      for (i = 0; i < m_Order; i++)
      {
        for (j = i + 1, k = 1; j < m_Order; j++, k++)
        {
          tm[i, j] = m_TopRow[k];
        }
      }
#endif
			return tm;
		}