IMSL C# Numerical Library

ComplexSparseMatrix.SparseArray Class

The SparseArray class uses public fields to hold the data for a sparse matrix in the Sparse Array format.

For a list of all members of this type, see ComplexSparseMatrix.SparseArray Members.

System.Object
   Imsl.Math.ComplexSparseMatrix.SparseArray

public class ComplexSparseMatrix.SparseArray

Thread Safety

Public static (Shared in Visual Basic) members of this type are safe for multithreaded operations. Instance members are not guaranteed to be thread-safe.

Remarks

This format came about as a means for storing sparse matrices. In this format, a sparse matrix is represented by two arrays of arrays. One array contains the references to the nonzero value arrays for each row of the sparse matrix. The other contains the references to the associated column index arrays.

As an example, consider the following complex sparse matrix:

A=\begin{pmatrix} 10.0-3.0i & 0.0 & 0.0 & 0.0 & 0.0 & 0.0 \\
            0.0 & 10.0 & -3.0+2.0i & -1.0-1.0i & 0.0 & 0.0 \\
            0.0 & 0.0 &  15.0+5.0i &	0.0 & 0.0 & 0.0 \\
            -2.0 & 0.0 & 0.0 & 10.0+1.0i & -1.0-2.0i &  0.0 \\
            -1.0 & 0.0 & 0.0 & -5.0+7.0i &  1.0-3.0i & -3.0 \\
            -1.0+4.0i & -2.0+1.0i & 0.0 & 0.0 &  0.0 & 6.0-5.0i \end{pmatrix}
In SparseArray, this matrix can be represented by the two jagged arrays, values and index, where values refers to the nonzero entries in A and index to the column indices:
     Complex values[][] = {
                           {new Complex(10.0, -3.0)},
                           {new Complex(10.0, 0.0), new Complex(-3.0, 2.0), 
                               new Complex(-1.0,-1.0)},
                           {new Complex(15.0, 5.0)},
                           {new Complex(-2.0, 0.0), new Complex(10.0, 1.0), 
                               new Complex(-1.0, -2.0)},
                           {new Complex(-1.0, 0.0), new Complex(-5.0, 7.0), 
                               new Complex(1.0, -3.0), new Complex(-3.0, 0.0)},
                           {new Complex(-1.0, 4.0), new Complex(-2.0, 1.0), 
                               new Complex(6.0, -5.0)}
                          };

     int index[][] = {
                      {0}, 
                      {1, 2, 3},
                      {2},
                      {0, 3, 4},
                      {0, 3, 4, 5},
                      {0, 1, 5}
                     };

Requirements

Namespace: Imsl.Math

Assembly: ImslCS (in ImslCS.dll)

See Also

ComplexSparseMatrix.SparseArray Members | Imsl.Math Namespace