/// <summary> /// Run example /// </summary> /// <seealso cref="http://en.wikipedia.org/wiki/Triangular_matrix">Triangular matrix</seealso> public void Run() { // Format matrix output to console var formatProvider = (CultureInfo)CultureInfo.InvariantCulture.Clone(); formatProvider.TextInfo.ListSeparator = " "; // Create square matrix var matrix = new DenseMatrix(10); var k = 0; for (var i = 0; i < matrix.RowCount; i++) { for (var j = 0; j < matrix.ColumnCount; j++) { matrix[i, j] = k++; } } Console.WriteLine(@"Initial square matrix"); Console.WriteLine(matrix.ToString("#0.00\t", formatProvider)); Console.WriteLine(); // 1. Retrieve a new matrix containing the lower triangle of the matrix var lower = matrix.LowerTriangle(); // Puts the lower triangle of the matrix into the result matrix. matrix.LowerTriangle(lower); Console.WriteLine(@"1. Lower triangle of the matrix"); Console.WriteLine(lower.ToString("#0.00\t", formatProvider)); Console.WriteLine(); // 2. Retrieve a new matrix containing the upper triangle of the matrix var upper = matrix.UpperTriangle(); // Puts the upper triangle of the matrix into the result matrix. matrix.UpperTriangle(lower); Console.WriteLine(@"2. Upper triangle of the matrix"); Console.WriteLine(upper.ToString("#0.00\t", formatProvider)); Console.WriteLine(); // 3. Retrieve a new matrix containing the strictly lower triangle of the matrix var strictlylower = matrix.StrictlyLowerTriangle(); // Puts the strictly lower triangle of the matrix into the result matrix. matrix.StrictlyLowerTriangle(strictlylower); Console.WriteLine(@"3. Strictly lower triangle of the matrix"); Console.WriteLine(strictlylower.ToString("#0.00\t", formatProvider)); Console.WriteLine(); // 4. Retrieve a new matrix containing the strictly upper triangle of the matrix var strictlyupper = matrix.StrictlyUpperTriangle(); // Puts the strictly upper triangle of the matrix into the result matrix. matrix.StrictlyUpperTriangle(strictlyupper); Console.WriteLine(@"4. Strictly upper triangle of the matrix"); Console.WriteLine(strictlyupper.ToString("#0.00\t", formatProvider)); Console.WriteLine(); }