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); }
/// <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; }