Skip to content

Commit 0a0e2f6

Browse files
committed
refactor: ClVector.{VectorFormat}
1 parent 15ea08a commit 0a0e2f6

5 files changed

Lines changed: 48 additions & 48 deletions

File tree

src/GraphBLAS-sharp.Backend/Algorithms/BFS.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ module BFS =
4242
let frontier = ofList vertexCount [ source, 1 ]
4343

4444
match frontier with
45-
| ClVectorDense front ->
45+
| ClVector.Dense front ->
4646

4747
let mutable level = 0
4848
let mutable stop = false

src/GraphBLAS-sharp.Backend/Objects/Vector.fs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,23 +88,23 @@ type Vector<'a when 'a: struct> =
8888

8989
member this.ToDevice(context: ClContext) =
9090
match this with
91-
| Sparse vector -> ClVectorSparse <| vector.ToDevice(context)
92-
| Dense vector -> ClVectorDense <| vector.ToDevice(context)
91+
| Sparse vector -> ClVector.Sparse <| vector.ToDevice(context)
92+
| Dense vector -> ClVector.Dense <| vector.ToDevice(context)
9393

94-
and ClVector<'a when 'a: struct> =
95-
| ClVectorSparse of ClSparseVector<'a>
96-
| ClVectorDense of ClArray<'a option>
94+
and [<RequireQualifiedAccess>] ClVector<'a when 'a: struct> =
95+
| Sparse of ClSparseVector<'a>
96+
| Dense of ClArray<'a option>
9797
member this.Size =
9898
match this with
99-
| ClVectorSparse vector -> vector.Size
100-
| ClVectorDense vector -> vector.Size
99+
| Sparse vector -> vector.Size
100+
| Dense vector -> vector.Size
101101

102102
member this.ToHost(q: MailboxProcessor<_>) =
103103
match this with
104-
| ClVectorSparse vector -> Vector.Sparse <| vector.ToHost(q)
105-
| ClVectorDense vector -> Vector.Dense <| vector.ToHost(q)
104+
| Sparse vector -> Vector.Sparse <| vector.ToHost(q)
105+
| Dense vector -> Vector.Dense <| vector.ToHost(q)
106106

107107
member this.Dispose(q) =
108108
match this with
109-
| ClVectorSparse vector -> vector.Dispose(q)
110-
| ClVectorDense vector -> vector.Dispose(q)
109+
| Sparse vector -> vector.Dispose(q)
110+
| Dense vector -> vector.Dispose(q)

src/GraphBLAS-sharp.Backend/Vector/Vector.fs

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ module Vector =
2323
Values = clContext.CreateClArrayWithGPUOnlyFlags [| Unchecked.defaultof<'a> |]
2424
Size = size }
2525

26-
ClVectorSparse vector
27-
| Dense -> ClVectorDense <| zeroCreate processor size
26+
ClVector.Sparse vector
27+
| Dense -> ClVector.Dense <| zeroCreate processor size
2828

2929
let ofList (clContext: ClContext) =
3030
fun (format: VectorFormat) size (elements: (int * 'a) list) ->
@@ -39,14 +39,14 @@ module Vector =
3939
SparseVector
4040
.FromTuples(indices, values, size)
4141
.ToDevice clContext
42-
|> ClVectorSparse
42+
|> ClVector.Sparse
4343
| Dense ->
4444
let res = Array.zeroCreate size
4545

4646
for i in 0 .. indices.Length - 1 do
4747
res.[indices.[i]] <- Some(values.[i])
4848

49-
ClVectorDense
49+
ClVector.Dense
5050
<| clContext.CreateClArrayWithGPUOnlyFlags res
5151

5252
let copy (clContext: ClContext) (workGroupSize: int) =
@@ -58,15 +58,15 @@ module Vector =
5858

5959
fun (processor: MailboxProcessor<_>) (vector: ClVector<'a>) ->
6060
match vector with
61-
| ClVectorSparse vector ->
61+
| ClVector.Sparse vector ->
6262
let vector =
6363
{ Context = clContext
6464
Indices = copy processor vector.Indices
6565
Values = copyData processor vector.Values
6666
Size = vector.Size }
6767

68-
ClVectorSparse vector
69-
| ClVectorDense vector -> ClVectorDense <| copyOptionData processor vector
68+
ClVector.Sparse vector
69+
| ClVector.Dense vector -> ClVector.Dense <| copyOptionData processor vector
7070

7171
let mask = copy
7272

@@ -78,8 +78,8 @@ module Vector =
7878

7979
fun (processor: MailboxProcessor<_>) (vector: ClVector<'a>) ->
8080
match vector with
81-
| ClVectorDense vector -> ClVectorSparse <| toSparse processor vector
82-
| ClVectorSparse _ -> copy processor vector
81+
| ClVector.Dense vector -> ClVector.Sparse <| toSparse processor vector
82+
| ClVector.Sparse _ -> copy processor vector
8383

8484
let toDense (clContext: ClContext) (workGroupSize: int) =
8585
let toDense =
@@ -89,8 +89,8 @@ module Vector =
8989

9090
fun (processor: MailboxProcessor<_>) (vector: ClVector<'a>) ->
9191
match vector with
92-
| ClVectorDense vector -> ClVectorDense <| copy processor vector
93-
| ClVectorSparse vector -> ClVectorDense <| toDense processor vector
92+
| ClVector.Dense vector -> ClVector.Dense <| copy processor vector
93+
| ClVector.Sparse vector -> ClVector.Dense <| toDense processor vector
9494

9595
let elementWiseAtLeastOne (clContext: ClContext) (opAdd: Expr<AtLeastOne<'a, 'b> -> 'c option>) workGroupSize =
9696
let addSparse =
@@ -101,8 +101,8 @@ module Vector =
101101

102102
fun (processor: MailboxProcessor<_>) (leftVector: ClVector<'a>) (rightVector: ClVector<'b>) ->
103103
match leftVector, rightVector with
104-
| ClVectorSparse left, ClVectorSparse right -> ClVectorSparse <| addSparse processor left right
105-
| ClVectorDense left, ClVectorDense right -> ClVectorDense <| addDense processor left right
104+
| ClVector.Sparse left, ClVector.Sparse right -> ClVector.Sparse <| addSparse processor left right
105+
| ClVector.Dense left, ClVector.Dense right -> ClVector.Dense <| addDense processor left right
106106
| _ -> failwith "Vector formats are not matching."
107107

108108
let elementWise (clContext: ClContext) (opAdd: Expr<'a option -> 'b option -> 'c option>) (workGroupSize: int) =
@@ -114,10 +114,10 @@ module Vector =
114114

115115
fun (processor: MailboxProcessor<_>) (leftVector: ClVector<'a>) (rightVector: ClVector<'b>) ->
116116
match leftVector, rightVector with
117-
| ClVectorDense leftVector, ClVectorDense rightVector ->
118-
ClVectorDense
117+
| ClVector.Dense leftVector, ClVector.Dense rightVector ->
118+
ClVector.Dense
119119
<| addDense processor leftVector rightVector
120-
| ClVectorSparse left, ClVectorSparse right -> ClVectorSparse <| addSparse processor left right
120+
| ClVector.Sparse left, ClVector.Sparse right -> ClVector.Sparse <| addSparse processor left right
121121
| _ -> failwith "Vector formats are not matching."
122122

123123
let fillSubVector<'a, 'b when 'a: struct and 'b: struct> maskOp (clContext: ClContext) (workGroupSize: int) =
@@ -135,21 +135,21 @@ module Vector =
135135

136136
fun (processor: MailboxProcessor<_>) (vector: ClVector<'a>) (maskVector: ClVector<'b>) (value: ClCell<'a>) ->
137137
match vector, maskVector with
138-
| ClVectorSparse vector, ClVectorSparse mask ->
139-
ClVectorSparse
138+
| ClVector.Sparse vector, ClVector.Sparse mask ->
139+
ClVector.Sparse
140140
<| sparseFillVector processor vector mask value
141-
| ClVectorSparse vector, ClVectorDense mask ->
141+
| ClVector.Sparse vector, ClVector.Dense mask ->
142142
let mask = toSparseMask processor mask
143143

144-
ClVectorSparse
144+
ClVector.Sparse
145145
<| sparseFillVector processor vector mask value
146-
| ClVectorDense vector, ClVectorSparse mask ->
146+
| ClVector.Dense vector, ClVector.Sparse mask ->
147147
let vector = toSparseVector processor vector
148148

149-
ClVectorSparse
149+
ClVector.Sparse
150150
<| sparseFillVector processor vector mask value
151-
| ClVectorDense vector, ClVectorDense mask ->
152-
ClVectorDense
151+
| ClVector.Dense vector, ClVector.Dense mask ->
152+
ClVector.Dense
153153
<| denseFillVector processor vector mask value
154154

155155
let fillSubVectorComplemented<'a, 'b when 'a: struct and 'b: struct>
@@ -169,24 +169,24 @@ module Vector =
169169

170170
fun (processor: MailboxProcessor<_>) (leftVector: ClVector<'a>) (maskVector: ClVector<'b>) (value: ClCell<'a>) ->
171171
match leftVector, maskVector with
172-
| ClVectorSparse vector, ClVectorSparse mask ->
172+
| ClVector.Sparse vector, ClVector.Sparse mask ->
173173
let denseVector = vectorToDense processor vector
174174
let denseMask = maskToDense processor mask
175175

176-
ClVectorDense
176+
ClVector.Dense
177177
<| denseFillVector processor denseVector denseMask value
178-
| ClVectorDense vector, ClVectorSparse mask ->
178+
| ClVector.Dense vector, ClVector.Sparse mask ->
179179
let denseMask = maskToDense processor mask
180180

181-
ClVectorDense
181+
ClVector.Dense
182182
<| denseFillVector processor vector denseMask value
183-
| ClVectorSparse vector, ClVectorDense mask ->
183+
| ClVector.Sparse vector, ClVector.Dense mask ->
184184
let denseVector = vectorToDense processor vector
185185

186-
ClVectorDense
186+
ClVector.Dense
187187
<| denseFillVector processor denseVector mask value
188-
| ClVectorDense vector, ClVectorDense mask ->
189-
ClVectorDense
188+
| ClVector.Dense vector, ClVector.Dense mask ->
189+
ClVector.Dense
190190
<| denseFillVector processor vector mask value
191191

192192
let standardFillSubVector<'a, 'b when 'a: struct and 'b: struct> =
@@ -204,5 +204,5 @@ module Vector =
204204

205205
fun (processor: MailboxProcessor<_>) (vector: ClVector<'a>) ->
206206
match vector with
207-
| ClVectorSparse vector -> sparseReduce processor vector
208-
| ClVectorDense vector -> denseReduce processor vector
207+
| ClVector.Sparse vector -> sparseReduce processor vector
208+
| ClVector.Dense vector -> denseReduce processor vector

tests/GraphBLAS-sharp.Tests/Algorithms/BFS.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ let testFixtures (testContext: TestContext) =
4343

4444
match matrix with
4545
| ClMatrix.CSR mtx ->
46-
let res = bfs queue mtx source |> ClVectorDense
46+
let res = bfs queue mtx source |> ClVector.Dense
4747

4848
let resHost = res.ToHost queue
4949

tests/GraphBLAS-sharp.Tests/Vector/ContainsNonZero.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ let correctnessGenericTest<'a when 'a: struct and 'a: equality> isZero containsN
2323

2424
let result =
2525
match vector.ToDevice context with
26-
| ClVectorDense clArray ->
26+
| ClVector.Dense clArray ->
2727
let resultCell = containsNonZero q clArray
2828
let result = Array.zeroCreate 1
2929

0 commit comments

Comments
 (0)