Skip to content

Commit b1087db

Browse files
author
Will Kimmerer
committed
notes about storage types
1 parent 1fe73ec commit b1087db

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

docs/src/arrays.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,20 @@ All of these types attempt to implement most of the `AbstractArray` interface, a
1717

1818
## GBMatrix
1919

20+
The `GBMatrix` is an opaque sparse matrix structure, which adapts to the sparsity of a matrix by changing the implementation internally. There are 4 different internal representations, all stored in either row or column orientation:
21+
22+
1. **Dense** - Equivalent to a Julia `Matrix`
23+
2. **Bitmap** - 2 dense arrays, one storing booleans in the pattern of the matrix, the other storing the values.
24+
3. **Compressed** - [Compressed Sparse Column (CSC)](http://netlib.org/linalg/html_templates/node92.html#SECTION00931200000000000000) or [Compressed Sparse Row(CSR)](http://netlib.org/linalg/html_templates/node91.html)
25+
4. **Doubly Compressed** - Doubly Compressed Sparse Column (DCSC or Hypersparse CSC) and Doubly Compressed Sparse Row (DCSR or Hypersparse CSR). See this paper for more information: [pdf](https://people.eecs.berkeley.edu/~aydin/hypersparse-ipdps08.pdf).
26+
27+
Users should never need to directly interact with the underlying storage type, SuiteSparse:GraphBLAS will automatically convert between them as necessary.
28+
29+
30+
31+
### Construction
32+
33+
2034
There are several methods to construct GBArrays. Shown here are empty construction, conversion from a dense matrix and a sparse matrix, and coordinate form with uniform or *iso* coefficients.
2135
```@setup mat
2236
using SuiteSparseGraphBLAS

docs/src/performance.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Performance Tips

0 commit comments

Comments
 (0)