Represents a sparse matrix in Compressed Sparse Column format.

Namespace: Extreme.Mathematics.LinearAlgebra.Sparse
Assembly:   Extreme.Numerics (in Extreme.Numerics)
Version: 2.1.7017.0

Syntax

Visual Basic (Declaration)
<SerializableAttribute> _
Public NotInheritable Class SparseCompressedColumnMatrix _
	Inherits SparseMatrix _
	Implements ISerializable, IResizableMatrix
C#
[SerializableAttribute]
public sealed class SparseCompressedColumnMatrix : SparseMatrix, ISerializable, IResizableMatrix
Visual C++
[SerializableAttribute]
public ref class SparseCompressedColumnMatrix sealed : public SparseMatrix, ISerializable, IResizableMatrix

Remarks

Use the SparseCompressedColumnMatrix class to represent sparse matrices. Only the nonzero components of the matrix are stored. This not only saves memory, but also allows many calculations to be performed faster.

The compressed sparse column format stores the components in column-major order. Within each column, only the row indexes and the values of the nonzero components are stored.

The components of a sparse matrix can be specified in a variety of ways. A common method is to supply the rows, columns, and values of the nonzero components. Another way is to build up the matrix using the

CopyC#
Insert
methods: InsertEntry(Double, Int32, Int32), InsertEntries(Double[](), Int32[](), Int32[]()), InsertRow(Int32, Double[](), Int32[]()), InsertColumn(Int32, Double[](), Int32[]()), InsertClique(Matrix, Int32[](), Int32[]()). Individual components can also be set, but this is generally less efficient.

Sparse matrices can also be read directly from data files in Matrix Market format. Use the MatrixMarketReader for this purpose.

The NonzeroCount property returns the number of nonzero components. The FillFactor property returns a number between 0 and 1 that is the proportion of nonzero components to the total number of components in the matrix. To iterate through the nonzero components of a sparse matrix, use the NonzeroComponents property. This property enumerates RowColumnValueTriplet objects, each containing the row, column, and value of a nonzero component.

A disadvantage of sparse matrices is that working with individual components tends to be slower. Every access usually requires a lookup in a list. To avoid duplicate lookups for elementary operations on components, use one of the specialized methods: AddAt(Int32, Int32, Double), SubtractAt(Int32, Int32, Double), MultiplyAt(Int32, Int32, Double) and DivideAt(Int32, Int32, Double).

Inheritance Hierarchy

System.Object
  Extreme.Mathematics.LinearAlgebra.LinearTransformation
    Extreme.Mathematics.LinearAlgebra.Matrix
      Extreme.Mathematics.LinearAlgebra.Sparse.SparseMatrix
        Extreme.Mathematics.LinearAlgebra.Sparse.SparseCompressedColumnMatrix