Class MWSparse
The MWSparse
class passes or receives a two-dimensional sparse
numeric array into or from a compiled class method. This class has seven
properties/methods:
Property NumRows As Long
Stores the row dimension for the array. The value of NumRows
must be nonnegative. If the value is zero, the row index is taken from the maximum
of the values in the RowIndex
array.
Property NumColumns As Long
Stores the column dimension for the array. The value of
NumColumns
must be nonnegative. If the value is zero, the row
index is taken from the maximum of the values in the ColumnIndex
array.
Property RowIndex As Variant
Stores the array of row indices of the nonzero elements of the array. The value of
this property can be any type coercible to a Variant
, as well as
object types, with the restriction that the underlying array must resolve to or be
coercible to a numeric matrix of type Long
. If the value of
NumRows
is nonzero and any row index is greater than
NumRows
, a bad-index error occurs. An error also results if
the number of elements in the RowIndex
array does not match the
number of elements in the Array
property's underlying
array.
Property ColumnIndex As Variant
Stores the array of column indices of the nonzero elements of the array. The value
of this property can be any type coercible to a Variant
, as well
as object types, with the restriction that the underlying array must resolve to or
be coercible to a numeric matrix of type Long
. If the value of
NumColumns
is nonzero and any column index is greater than
NumColumns
, a bad-index error occurs. An error also results
if the number of elements in the ColumnIndex
array does not match
the number of elements in the Array
property's underlying
array.
Property Array As Variant
Stores the nonzero array values of the sparse array. The value of this property
can be any type coercible to a Variant
, as well as object types,
with the restriction that the underlying array must resolve to or be coercible to a
numeric matrix of type Double
or
Boolean
.
Property MWFlags As MWFlags
Stores a reference to an MWFlags
object. This property sets or
gets the array formatting and data conversion flags for a particular sparse array.
Each MWSparse
object has its own MWFlags
property. This property overrides the value of any flags set on the object whose
methods are called.
Sub Clone(ppSparse As MWSparse)
Creates a copy of an MWSparse
object.
Parameters
Argument | Type | Description |
---|---|---|
|
|
Reference to an uninitialized
|
Return Value
None.
Remarks
Clone
allocates a new MWSparse
object
and creates a deep copy of the object's contents. Call this function when a
separate object is required instead of a shared copy of an existing object
reference.
Example
The following Visual Basic® sample creates a 5-by-5 tridiagonal sparse array.
X = [ 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 -1 0 0 0 -1 2 ] Sub foo() Dim x As MWSparse Dim rows(1 To 13) As Long Dim cols(1 To 13) As Long Dim vals(1 To 13) As Double Dim I As Long, K As Long On Error GoTo Handle_Error K = 1 For I = 1 To 4 rows(K) = I cols(K) = I + 1 vals(K) = -1 K = K + 1 rows(K) = I cols(K) = I vals(K) = 2 K = K + 1 rows(K) = I + 1 cols(K) = I vals(K) = -1 K = K + 1 Next rows(K) = 5 cols(K) = 5 vals(K) = 2 Set x = New MWSparse x.NumRows = 5 x.NumColumns = 5 x.RowIndex = rows x.ColumnIndex = cols x.Array = vals . . . Exit Sub Handle_Error: MsgBox (Err.Description) End Sub