|
Calling Sequence
|
|
FromSplitForm(Ai, B, opts)
|
|
Parameters
|
|
Ai
|
-
|
list of integer index Vectors
|
B
|
-
|
data Vector
|
opts
|
-
|
optional equations controlling the details of the computation
|
|
|
|
|
Options
|
|
•
|
dimensions = [d1, ..., dn]
|
|
This option controls the dimensions of . Its value needs to be a list of positive integers, giving the dimensions of . For example, when constructing a sparse Vector, the value should be a list containing a single positive integer, and for a Matrix it should be a list of two positive integers. If the option is not specified, Maple uses the maximal value in the th index vector as the th dimension.
|
•
|
scan = true or scan = false
|
|
This option determines whether or not is scanned for zeroes. If scan = true, the default, then is scanned to test if it contains any entries that are equal to 0. If this is the case, the operation is aborted with an error message: such entries are not allowed. If you are certain that there are no entries equal to 0, you can save a little bit of processing time by disabling this scan by passing scan = false to the procedure. Use this option with extreme caution.
|
|
|
Description
|
|
•
|
The FromSplitForm function constructs a sparse rtable from its split form, performing the opposite function to SplitForm.
|
•
|
The split form of an -dimensional rtable with nonzero entries consists of Vectors, , , ..., , and , each with entries: for every nonzero entry , there is an index such that , , ..., , and . (If is a Vector, then ; if is a Matrix, then .)
|
•
|
The Vectors need to be of word-size integer data type; that is, on 32-bit platforms they will have data type and on 64-bit platforms data type . The Vector needs to have a data type compatible with NAG-sparse rtables; that is, the datatype of as returned by rtable_options needs to be one of these values:
|
|
|
|
|
Examples
|
|
>
|
|
Let us examine the split form of an arbitrary matrix.
>
|
|
| (1) |
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
If has a dimension such that all entries where index is at its maximal value, are zero, then these are not reflected in the split form. For example, if the last entry in a sparse Vector is zero, or the last row or column of a Matrix.
>
|
|
| (5) |
>
|
|
| (6) |
| (7) |
| (8) |
Therefore, to recover the original rtable, you may need to use the dimensions option.
>
|
|
>
|
|
| (10) |
To construct the Vectors from scratch in a cross-platform way, one can use kernelopts to find the right integer data type.
>
|
|
>
|
|
>
|
|
>
|
|
>
|
|
| (15) |
>
|
|
|
|
Compatibility
|
|
•
|
The LinearAlgebra[FromSplitForm] command was introduced in Maple 17.
|
|
|
|