File tree Expand file tree Collapse file tree
src/GraphBLAS-sharp/Backend/CSRMatrix Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -8,21 +8,30 @@ open Brahma.OpenCL
88
99module internal rec Transpose =
1010 let transposeMatrix ( matrix : CSRMatrix < 'a >) = opencl {
11- let! coo = csr2coo matrix
12- let! packedIndices = pack coo.Columns coo.Rows
13-
14- do ! BitonicSort.sortKeyValuesInplace packedIndices coo.Values
15- let! ( rows , cols ) = unpack packedIndices
16-
17- let! compressedRows = compressRows matrix.ColumnCount rows
18-
19- return {
20- RowCount = matrix.ColumnCount
21- ColumnCount = matrix.RowCount
22- RowPointers = compressedRows
23- ColumnIndices = cols
24- Values = coo.Values
25- }
11+ if matrix.Values.Length = 0 then
12+ return {
13+ RowCount = matrix.ColumnCount
14+ ColumnCount = matrix.RowCount
15+ RowPointers = [| 0 ; 0 |]
16+ ColumnIndices = [||]
17+ Values = [||]
18+ }
19+ else
20+ let! coo = csr2coo matrix
21+ let! packedIndices = pack coo.Columns coo.Rows
22+
23+ do ! BitonicSort.sortKeyValuesInplace packedIndices coo.Values
24+ let! ( rows , cols ) = unpack packedIndices
25+
26+ let! compressedRows = compressRows matrix.ColumnCount rows
27+
28+ return {
29+ RowCount = matrix.ColumnCount
30+ ColumnCount = matrix.RowCount
31+ RowPointers = compressedRows
32+ ColumnIndices = cols
33+ Values = coo.Values
34+ }
2635 }
2736
2837 let private csr2coo ( matrix : CSRMatrix < 'a >) = opencl {
You can’t perform that action at this time.
0 commit comments