Skip to content

Commit 682ddcc

Browse files
authored
Update README.md
1 parent a4e15f1 commit 682ddcc

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,15 @@ GraphBLAS# is a GPGPU-based [GraphBLAS](https://graphblas.org/) implementation i
44

55
### Features
66
- ```Option<'t>``` to solve [explicit/implicit zeroes problem](https://github.com/GraphBLAS/LAGraph/issues/28#issuecomment-542952115). If graph has labels of type ```'t``` then adjacency matrix is ```Matrix<Option<'t>>```. Sparse storage contains only values for ```Some<'t>``` cells.
7-
- Elementwise operations have type ```AtLeastOne<'t> -> Option<'t>``` to be shure that ```None op None``` is ```None```. Also developer explicitly controls what should be ```None```. So, type of matrix-matrix elementwise oertion is ```Matrix<Option<'t1>> -> Matrix<Option<'t2>> -> (AtLeastOne<'t1,'t2> -> Option<'t3>) -> Matrix<Option<'t3>>```.
8-
- No semirings. Just functions. Ofcourse one can implement semirings on the top of implemented API.
7+
- Elementwise operations have type ```AtLeastOne<'t1,'t2> -> Option<'t3>``` to be shure that ```None op None``` is ```None```. Also developer explicitly controls what should be ```None```. ```AtLeastOne``` defined as fallows:
8+
```fsharp
9+
type AtLeastOne<'t1, 't2> =
10+
| Both of 't1*'t2
11+
| Left of 't1
12+
| Right of 't2
13+
```
14+
So, type of matrix-matrix elementwise oertion is ```Matrix<Option<'t1>> -> Matrix<Option<'t2>> -> (AtLeastOne<'t1,'t2> -> Option<'t3>) -> Matrix<Option<'t3>>```.
15+
- No semirings. Just functions. Ofcourse one can implement semirings on the top of provided API.
916

1017
---
1118

0 commit comments

Comments
 (0)