@@ -175,12 +175,16 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
175175
176176 let renewedValues = oclContext.RunSync workflow
177177
178- ( rows , columns , values ) <-
178+ let resultRows , resultColumns , resultValues =
179179 ( rows, columns, renewedValues)
180180 |||> Array.zip3
181181 |> Array.append elementsToAppend
182182 |> Array.unzip3
183183
184+ rows <- resultRows
185+ columns <- resultColumns
186+ values <- resultValues
187+
184188 override this.Item
185189 with get ( matrixMask : Mask2D option ) : Matrix < 'a > =
186190 let resultElements =
@@ -263,12 +267,16 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
263267 let renewedValues = oclContext.RunSync workflow
264268 let renewedElementsToAppend = elementsToAppend |> Array.map ( fun ( i , a ) -> ( i, colIdx, a))
265269
266- ( rows , columns , values ) <-
270+ let resultRows , resultColumns , resultValues =
267271 ( rows, columns, renewedValues)
268272 |||> Array.zip3
269273 |> Array.append renewedElementsToAppend
270274 |> Array.unzip3
271275
276+ rows <- resultRows
277+ columns <- resultColumns
278+ values <- resultValues
279+
272280 override this.Item
273281 with get ( vectorMask : Mask1D option , colIdx : int ) : Vector < 'a > =
274282 let resultLength = this.RowCount
@@ -354,12 +362,16 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
354362 let renewedValues = oclContext.RunSync workflow
355363 let renewedElementsToAppend = elementsToAppend |> Array.map ( fun ( j , a ) -> ( rowIdx, j, a))
356364
357- ( rows , columns , values ) <-
365+ let resultRows , resultColumns , resultValues =
358366 ( rows, columns, renewedValues)
359367 |||> Array.zip3
360368 |> Array.append renewedElementsToAppend
361369 |> Array.unzip3
362370
371+ rows <- resultRows
372+ columns <- resultColumns
373+ values <- resultValues
374+
363375 override this.Item
364376 with get ( rowIdx : int , vectorMask : Mask1D option ) : Vector < 'a > =
365377 let resultLength = this.ColumnCount
@@ -411,21 +423,29 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
411423 i <- i + 1
412424
413425 if not isFound then
414- ( rows , columns , values ) <-
426+ let resultRows , resultCOlumns , resultValues =
415427 ( rows, columns, values)
416428 |||> Array.zip3
417429 |> Array.append [| rowIdx, colIdx, value|]
418430 |> Array.unzip3
419431
432+ rows <- resultRows
433+ columns <- resultCOlumns
434+ values <- resultValues
435+
420436 override this.Fill
421437 with set ( matrixMask : Mask2D option ) ( Scalar ( value : 'a )) =
422438 match matrixMask with
423439 | None ->
424- ( rows , columns , values ) <-
440+ let resultRows , resultCOlumns , resultValues =
425441 [| for i in 0 .. this.RowCount - 1 do
426442 for j in 0 .. this.ColumnCount - 1 do
427443 yield ( i, j, value) |]
428444 |> Array.unzip3
445+
446+ rows <- resultRows
447+ columns <- resultCOlumns
448+ values <- resultValues
429449 | Some mask ->
430450 if ( mask.RowCount, mask.ColumnCount) <> ( this.RowCount, this.ColumnCount) then
431451 invalidArg
@@ -478,12 +498,16 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
478498 let renewedValues = oclContext.RunSync workflow
479499 let elementsToAppend = indicesToAppend |> Array.map ( fun ( i , j ) -> ( i, j, value))
480500
481- ( rows , columns , values ) <-
501+ let resultRows , resultColumns , resultValues =
482502 ( rows, columns, renewedValues)
483503 |||> Array.zip3
484504 |> Array.append elementsToAppend
485505 |> Array.unzip3
486506
507+ rows <- resultRows
508+ columns <- resultColumns
509+ values <- resultValues
510+
487511 override this.Fill
488512 with set ( vectorMask : Mask1D option , colIdx : int ) ( Scalar ( value : 'a )) =
489513 let mask =
@@ -539,12 +563,16 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
539563 let renewedValues = oclContext.RunSync workflow
540564 let elementsToAppend = indicesToAppend |> Array.map ( fun i -> ( i, colIdx, value))
541565
542- ( rows , columns , values ) <-
566+ let resultRows , resultColumns , resultValues =
543567 ( rows, columns, renewedValues)
544568 |||> Array.zip3
545569 |> Array.append elementsToAppend
546570 |> Array.unzip3
547571
572+ rows <- resultRows
573+ columns <- resultColumns
574+ values <- resultValues
575+
548576 override this.Fill
549577 with set ( rowIdx : int , vectorMask : Mask1D option ) ( Scalar ( value : 'a )) =
550578 let mask =
@@ -600,12 +628,16 @@ and COOMatrix<'a when 'a : struct and 'a : equality>(elements: (int * int * 'a)[
600628 let renewedValues = oclContext.RunSync workflow
601629 let elementsToAppend = indicesToAppend |> Array.map ( fun j -> ( rowIdx, j, value))
602630
603- ( rows , columns , values ) <-
631+ let resultRows , resultColumns , resultValues =
604632 ( rows, columns, renewedValues)
605633 |||> Array.zip3
606634 |> Array.append elementsToAppend
607635 |> Array.unzip3
608636
637+ rows <- resultRows
638+ columns <- resultColumns
639+ values <- resultValues
640+
609641 member private this.MxCOOm
610642 ( matrix : COOMatrix < 'a >)
611643 ( mask : Mask2D )
@@ -1144,12 +1176,15 @@ and SparseVector<'a when 'a : struct and 'a : equality>(size: int, listOfNonzero
11441176
11451177 let renewedValues = oclContext.RunSync workflow
11461178
1147- ( indices , values ) <-
1179+ let resultIndices , resultValues =
11481180 ( indices, renewedValues)
11491181 ||> Array.zip
11501182 |> Array.append elementsToAppend
11511183 |> Array.unzip
11521184
1185+ indices <- resultIndices
1186+ values <- resultValues
1187+
11531188 override this.Item
11541189 with get ( vectorMask : Mask1D option ) : Vector < 'a > =
11551190 let resultElements =
@@ -1196,20 +1231,26 @@ and SparseVector<'a when 'a : struct and 'a : equality>(size: int, listOfNonzero
11961231 i <- i + 1
11971232
11981233 if not isFound then
1199- ( indices , values ) <-
1234+ let resultIndices , resultValues =
12001235 ( indices, values)
12011236 ||> Array.zip
12021237 |> Array.append [| idx, value|]
12031238 |> Array.unzip
12041239
1240+ indices <- resultIndices
1241+ values <- resultValues
1242+
12051243 override this.Fill
12061244 with set ( vectorMask : Mask1D option ) ( Scalar ( value : 'a )) =
12071245 match vectorMask with
12081246 | None ->
1209- ( indices , values ) <-
1247+ let resultIndices , resultValues =
12101248 [| for i in 0 .. this.Length - 1 do
12111249 yield ( i, value) |]
12121250 |> Array.unzip
1251+
1252+ indices <- resultIndices
1253+ values <- resultValues
12131254 | Some mask ->
12141255 if mask.Length <> this.Length then
12151256 invalidArg
@@ -1255,12 +1296,15 @@ and SparseVector<'a when 'a : struct and 'a : equality>(size: int, listOfNonzero
12551296 let renewedValues = oclContext.RunSync workflow
12561297 let elementsToAppend = indicesToAppend |> Array.map ( fun i -> ( i, value))
12571298
1258- ( indices , values ) <-
1299+ let resultIndices , resultValues =
12591300 ( indices, renewedValues)
12601301 ||> Array.zip
12611302 |> Array.append elementsToAppend
12621303 |> Array.unzip
12631304
1305+ indices <- resultIndices
1306+ values <- resultValues
1307+
12641308 member internal this.VxCOOm
12651309 ( matrix : COOMatrix < 'a >)
12661310 ( mask : Mask1D )
@@ -1627,7 +1671,8 @@ and SparseVector<'a when 'a : struct and 'a : equality>(size: int, listOfNonzero
16271671 let command =
16281672 <@
16291673 fun ( ndRange : _1D )
1630- ( valuesBuffer : 'a []) ->
1674+ ( valuesBuffer : 'a [])
1675+ ( offset : int ) ->
16311676
16321677 let i = ndRange.GlobalID0
16331678 valuesBuffer.[ i] <- (% plus) valuesBuffer.[ i] valuesBuffer.[ i + offset]
@@ -1638,6 +1683,7 @@ and SparseVector<'a when 'a : struct and 'a : equality>(size: int, listOfNonzero
16381683 kernelP
16391684 ndRange
16401685 values
1686+ offset
16411687 do ! RunCommand command binder
16421688 return ! ToHost values
16431689 }
0 commit comments