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.Sparse Namespace
    • SingleSparseCompressedColumnMatrix Class
  • SingleSparseCompressedColumnMatrix Class
    • Members
    • Constructors
    • Methods
    • Type Conversions
    • Properties
Collapse image Expand Image Copy image CopyHover image
         




SingleSparseCompressedColumnMatrix Class

Members See Also 
Represents a sparse matrix in Compressed Sparse Column format.

Namespace: Extreme.Mathematics.LinearAlgebra.Sparse
Assembly: Extreme.Numerics.SinglePrecision.Net40 (in Extreme.Numerics.SinglePrecision.Net40.dll) Version: 4.0.10170.0 (4.0.11003.0)

Syntax

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

Remarks

Use the SingleSparseCompressedColumnMatrix 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(Single, Int32, Int32), InsertEntries(array<Double>[]()[][], array<Int32>[]()[][], array<Int32>[]()[][]), InsertRow(Int32, array<Double>[]()[][], array<Int32>[]()[][]), InsertColumn(Int32, array<Double>[]()[][], array<Int32>[]()[][]), InsertClique(Matrix, array<Int32>[]()[][], array<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 SingleRowColumnValueTriplet 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, Single), SubtractAt(Int32, Int32, Single), MultiplyAt(Int32, Int32, Single) and DivideAt(Int32, Int32, Single).

Inheritance Hierarchy

System..::..Object
  Extreme.Mathematics.LinearAlgebra..::..SingleLinearTransformation
    Extreme.Mathematics..::..SingleMatrix
      Extreme.Mathematics.LinearAlgebra..::..SingleSparseMatrix
        Extreme.Mathematics.LinearAlgebra.Sparse..::..SingleSparseCompressedColumnMatrix

See Also

SingleSparseCompressedColumnMatrix Members
Extreme.Mathematics.LinearAlgebra.Sparse Namespace

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.