public void GetTransposeLong() { FloatMatrix a = new FloatMatrix(3, 2); a[0, 0] = 1; a[0, 1] = 2; a[1, 0] = 3; a[1, 1] = 4; a[2, 0] = 5; a[2, 1] = 6; FloatMatrix b = a.GetTranspose(); Assert.AreEqual(b[0, 0], 1); Assert.AreEqual(b[0, 1], 3); Assert.AreEqual(b[0, 2], 5); Assert.AreEqual(b[1, 0], 2); Assert.AreEqual(b[1, 1], 4); Assert.AreEqual(b[1, 2], 6); Assert.AreEqual(b.RowLength, a.ColumnLength); Assert.AreEqual(b.ColumnLength, a.RowLength); }
/// <summary> /// Get a copy of the Toeplitz matrix. /// </summary> public FloatMatrix GetMatrix() { int i; // allocate memory for the matrix FloatMatrix tm = new FloatMatrix(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; }
public void GetTransposeSquare() { FloatMatrix a = new FloatMatrix(2, 2); a[0, 0] = 1; a[0, 1] = 2; a[1, 0] = 3; a[1, 1] = 4; FloatMatrix b = a.GetTranspose(); Assert.AreEqual(b[0, 0], 1); Assert.AreEqual(b[0, 1], 3); Assert.AreEqual(b[1, 0], 2); Assert.AreEqual(b[1, 1], 4); }