Extreme Optimization™: Complexity made simple.

Numerical Components
for .NET

  • Home
  • Features
    • Math Library
    • Vector and Matrix Library
    • Statistics Library
    • Performance
    • Usability
  • Documentation
    • Introduction
    • Math Library User's Guide
    • Vector and Matrix Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Resources
    • Downloads
    • QuickStart Samples
    • Sample Applications
    • Frequently Asked Questions
    • Technical Support
  • Blog
  • Order
  • Company
    • About us
    • Testimonials
    • Customers
    • Press Releases
    • Careers
    • Contact us
Introduction
Deployment Guide
Using Parallelism
Expand Mathematics Library User's GuideMathematics Library User's Guide
Expand Vector and Matrix Library User's GuideVector and Matrix Library User's Guide
Expand Statistics Library User's GuideStatistics Library User's Guide
Expand ReferenceReference
  • Home
    • Features
    • Solutions
    • Documentation
    • QuickStart Samples
    • Sample Applications
    • Downloads
    • Technical Support
    • Download trial
    • How to buy
    • Blog
    • Company
    • Resources
  • Documentation
    • Introduction
    • Deployment Guide
    • Using Parallelism
    • Mathematics Library User's Guide
    • Vector and Matrix Library User's Guide
    • Statistics Library User's Guide
    • Reference
  • Reference
    • Extreme.Mathematics Namespace
    • Extreme.Mathematics.Algorithms Namespace
    • Extreme.Mathematics.Calculus Namespace
    • Extreme.Mathematics.Calculus.OrdinaryDifferentialEquations Namespace
    • Extreme.Mathematics.Curves Namespace
    • Extreme.Mathematics.Curves.Nonlinear Namespace
    • Extreme.Mathematics.EquationSolvers Namespace
    • Extreme.Mathematics.Generic Namespace
    • Extreme.Mathematics.Generic.LinearAlgebra Namespace
    • Extreme.Mathematics.Generic.LinearAlgebra.Providers Namespace
    • Extreme.Mathematics.LinearAlgebra Namespace
    • Extreme.Mathematics.LinearAlgebra.Complex Namespace
    • Extreme.Mathematics.LinearAlgebra.Complex.Decompositions Namespace
    • Extreme.Mathematics.LinearAlgebra.IO Namespace
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers Namespace
    • Extreme.Mathematics.LinearAlgebra.IterativeSolvers.Preconditioners Namespace
    • Extreme.Mathematics.LinearAlgebra.Providers Namespace
    • Extreme.Mathematics.LinearAlgebra.Sparse Namespace
    • Extreme.Mathematics.Optimization Namespace
    • Extreme.Mathematics.Optimization.LineSearches Namespace
    • Extreme.Mathematics.SignalProcessing Namespace
    • Extreme.Statistics Namespace
    • Extreme.Statistics.Distributions Namespace
    • Extreme.Statistics.IO Namespace
    • Extreme.Statistics.Multivariate Namespace
    • Extreme.Statistics.Random Namespace
    • Extreme.Statistics.Tests Namespace
    • Extreme.Statistics.TimeSeriesAnalysis Namespace
  • Extreme.Mathematics.LinearAlgebra Namespace
    • BandMatrix Class
    • BandVector Class
    • CholeskyDecomposition Class
    • CloningMethod Enumeration
    • ColumnCollection Structure
    • ComponentReadOnlyException Class
    • ConstantMatrix Class
    • ConstantVector Class
    • Decomposition Class
    • DenseMatrix Class
    • DenseVector Class
    • DiagonalMatrix Class
    • EigenvalueDecomposition Class
    • IDoubleStorage Interface
    • ILeastSquaresSolver Interface
    • IndexedVector Class
    • IndexValuePair Structure
    • IResizableMatrix Interface
    • ISingleLeastSquaresSolver Interface
    • ISingleResizableMatrix Interface
    • ISingleStorage Interface
    • Kernel Class
    • LeastSquaresSolutionMethod Enumeration
    • LeastSquaresSolver Class
    • LinearOperator Class
    • LUDecomposition Class
    • MatrixNotPositiveDefiniteException Class
    • MatrixSingularException Class
    • MatrixStructure Enumeration
    • MatrixView Class
    • NonNegativeMatrixFactorization Class
    • NonsymmetricEigenvalueDecomposition Class
    • PermutationMatrix Class
    • PivotVector Structure
    • QRDecomposition Class
    • Range Structure
    • RowCollection Structure
    • RowColumnValueTriplet Structure
    • SingleBandCholeskyDecomposition Class
    • SingleBandLUDecomposition Class
    • SingleBandMatrix Class
    • SingleBandVector Class
    • SingleBandVector.BandVectorEnumerator Structure
    • SingleCholeskyDecomposition Class
    • SingleColumnCollection Structure
    • SingleConstantMatrix Class
    • SingleConstantVector Class
    • SingleDecomposition Class
    • SingleDenseMatrix Class
    • SingleDenseVector Class
    • SingleDiagonalMatrix Class
    • SingleEigenvalueDecomposition Class
    • SingleIndexedVector Class
    • SingleIndexValuePair Structure
    • SingleKernel Class
    • SingleLeastSquaresSolver Class
    • SingleLinearTransformation Class
    • SingleLUDecomposition Class
    • SingleMatrixView Class
    • SinglePermutationMatrix Class
    • SingleQRDecomposition Class
    • SingleRowCollection Structure
    • SingleRowColumnValueTriplet Structure
    • SingleSingularValueDecomposition Class
    • SingleSparseLUDecomposition Class
    • SingleSparseMatrix Class
    • SingleSparseVector Class
    • SingleSymmetricEigenvalueDecomposition Class
    • SingleSymmetricMatrix Class
    • SingleTriangularMatrix Class
    • SingularValueDecomposition Class
    • SingularValueDecompositionFactors Enumeration
    • SparseCompressedColumnMatrix Class
    • SparseMatrix Class
    • SparseVector Class
    • SymmetricEigenvalueDecomposition Class
    • SymmetricMatrix Class
    • TriangularMatrix Class
  • TriangularMatrix Class
    • Members
    • Constructors
    • Methods
    • Properties
Collapse image Expand Image Copy image CopyHover image
         




TriangularMatrix Class

Members See Also 
Represents a matrix whose elements above or below the main diagonal are zero.

Namespace: Extreme.Mathematics.LinearAlgebra
Assembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 4.2.11333.0 (4.2.12253.0)

Syntax

C#
[SerializableAttribute]
public sealed class TriangularMatrix : Matrix, 
	IDoubleTriangularStorage, IDoubleStorage, ISerializable
Visual Basic (Declaration)
<SerializableAttribute> _
Public NotInheritable Class TriangularMatrix _
	Inherits Matrix _
	Implements IDoubleTriangularStorage, IDoubleStorage, ISerializable
Visual C++
[SerializableAttribute]
public ref class TriangularMatrix sealed : public Matrix, 
	IDoubleTriangularStorage, IDoubleStorage, ISerializable
F#
[<SealedAttribute>]
[<SerializableAttribute>]
type TriangularMatrix =  
    class
        inherit Matrix
        interface IDoubleTriangularStorage
        interface IDoubleStorage
        interface ISerializable
    end

Remarks

Use the TriangularMatrix class to represent dense matrices whose elements above or below the diagonal are zero. The name is derived from the shape of the non-zero elements, which form a triangle. However, this class also represents rectangular matrices, whose non-zero elements may form a trapezoid.

A TriangularMatrix can be either upper or lower-triangular, depending on which components are non-zero. This property is available as the TriangleMode property. It is of type MatrixTriangle, and must be specified at construction.

Sometimes, the components on the diagonal are all equal to one. In this case, the matrix is said to be unit-diagonal, and the IsUnitDiagonal property will be trueTruetruetrue (True in Visual Basic). Once again, this must be specified at the time the matrix is constructed.

Only the non-zero components of a triangular matrix can be modified. The diagonal components of a unit-diagonal matrix can't be modified. An attempt to do so will result in an ComponentReadOnlyException. You can verify if a component can be modified by calling the IsComponentWritable(Int32, Int32) method.

The components of a TriangularMatrix are stored in a one-dimensional array of Double values. By default, components that are adjacent in a column of the matrix are adjacent in the storage array. The components are said to be stored in column major order. It is also possible to have elements stored in row major order.

Triangular matrices can be constructed from scratch, or they can be derived or extracted from a DenseMatrix using one of the ExtractLowerTriangle(DenseMatrix, Int32, Int32, MatrixDiagonal) or ExtractUpperTriangle(DenseMatrix) methods.

The rows and column vectors of a triangular matrix are of type BandVector.

The TriangularMatrix class implements algorithms using the triangular matrix BLAS and LAPACK routines. These routines assume matrix components are stored in column major order. However, any necessary conversions are performed transparantly. No additional work is needed. In some cases there might be a small performance penalty.

TriangularMatrix objects are used as properties of many matrix decompositions. Both factors of the LU decomposition are triangular. So is at least one factor of the Cholesky Decomposition and the QR Decomposition.

Inheritance Hierarchy

System..::..Object
  Extreme.Mathematics.LinearAlgebra..::..LinearOperator
    Extreme.Mathematics..::..Matrix
      Extreme.Mathematics.LinearAlgebra..::..TriangularMatrix

See Also

TriangularMatrix Members
Extreme.Mathematics.LinearAlgebra Namespace
Extreme.Mathematics.LinearAlgebra..::..CholeskyDecomposition
Extreme.Mathematics.LinearAlgebra..::..LUDecomposition
Extreme.Mathematics.LinearAlgebra..::..QRDecomposition
Extreme.Mathematics.LinearAlgebra..::..BandVector

Send comments on this topic to support@extremeoptimization.com

Copyright (c) 2004-2011 ExoAnalytics Inc.

Copyright © 2003-2013, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.