Vocabulary/dollardot
>> << Down to: Dyad Back to: Vocabulary Thru to: Dictionary
$. y Sparse
Rank Infinity -- operates on x and y as a whole -- WHY IS THIS IMPORTANT?
Gives a noun that can replace (numeric) y in working code, with only the non-zero atoms of $.y stored in memory. See the entry in the J Dictionary for details
When $.y is displayed in the J session, only its non-zero atoms are shown, together with their indexes.
$ y=: 0 0 1 0 2.5 0 0 999 _ 0 0 0 12 ] z=: $.y 2 | 1 4 | 2.5 7 | 999 8 | _ $ z 12
Common uses
To save storage when storing a sparse array.
Oddities
Operations on a sparse matrix can change the sparse value. Confusing to the unaware.
$. 3 {. 1 0 │ 1 NB. One might expect to see 999 here. 999 * -. $. 3 {. 1 0 │ 0 NB. the sparse element changed. 3 $. 999 * -. $. 3 {. 1 999
x $. y Sparse
Rank Infinity -- operates on x and y as a whole -- WHY IS THIS IMPORTANT?
n&$. is a collection of functions for creating and handling sparse arrays and converting them to/from ordinary arrays.
The noun n can take one of the values 0 1 2 3 4 5 7 8 or their negations. See the entry in the J Dictionary for details of the actual function specified by n plus the form of the y-argument it expects.
Chapter 30 of 'Learning J' by Roger Stokes (also accessible via 'LJ' from the J Help pages) gently introduces to Sparse Arrays, going through various examples.