@@ -132,6 +132,13 @@ module internal Reduce =
132132
133133 resultCell
134134
135+ /// <summary >
136+ /// Summarizes array elements.
137+ /// </summary >
138+ /// <param name =" clContext " >ClContext.</param >
139+ /// <param name =" workGroupSize " >Work group size.</param >
140+ /// <param name =" op " >Summation operation.</param >
141+ /// <param name =" zero " >Neutral element for summation.</param >
135142 let sum op zero ( clContext : ClContext ) workGroupSize =
136143
137144 let scan = scanSum op clContext workGroupSize zero
@@ -229,6 +236,12 @@ module internal Reduce =
229236
230237 resultCell
231238
239+ /// <summary >
240+ /// Reduces an array of values.
241+ /// </summary >
242+ /// <param name =" clContext " >ClContext.</param >
243+ /// <param name =" workGroupSize " >Work group size.</param >
244+ /// <param name =" op " >Reduction operation.</param >
232245 let reduce op ( clContext : ClContext ) workGroupSize =
233246
234247 let scan = scanReduce op clContext workGroupSize
@@ -245,6 +258,15 @@ module internal Reduce =
245258 /// Reduction of an array of values by an array of keys.
246259 /// </summary >
247260 module ByKey =
261+ /// <summary >
262+ /// Reduces an array of values by key using a single work item.
263+ /// </summary >
264+ /// <param name =" clContext " >ClContext.</param >
265+ /// <param name =" workGroupSize " >Work group size.</param >
266+ /// <param name =" reduceOp " >Operation for reducing values.</param >
267+ /// <remarks >
268+ /// The length of the result must be calculated in advance.
269+ /// </remarks >
248270 let sequential ( reduceOp : Expr < 'a -> 'a -> 'a >) ( clContext : ClContext ) workGroupSize =
249271
250272 let kernel =
@@ -295,6 +317,15 @@ module internal Reduce =
295317
296318 reducedValues, reducedKeys
297319
320+ /// <summary >
321+ /// Reduces values by key. Each segment is reduced by one work item.
322+ /// </summary >
323+ /// <param name =" clContext " >ClContext.</param >
324+ /// <param name =" workGroupSize " >Work group size.</param >
325+ /// <param name =" reduceOp " >Operation for reducing values.</param >
326+ /// <remarks >
327+ /// The length of the result must be calculated in advance.
328+ /// </remarks >
298329 let segmentSequential ( reduceOp : Expr < 'a -> 'a -> 'a >) ( clContext : ClContext ) workGroupSize =
299330
300331 let kernel =
@@ -352,6 +383,16 @@ module internal Reduce =
352383
353384 reducedValues, reducedKeys
354385
386+ /// <summary >
387+ /// Reduces values by key. One work group participates in the reduction.
388+ /// </summary >
389+ /// <param name =" clContext " >ClContext.</param >
390+ /// <param name =" workGroupSize " >Work group size.</param >
391+ /// <param name =" reduceOp " >Operation for reducing values.</param >
392+ /// <remarks >
393+ /// Reduces an array of values that does not exceed the size of the workgroup.
394+ /// The length of the result must be calculated in advance.
395+ /// </remarks >
355396 let oneWorkGroupSegments ( reduceOp : Expr < 'a -> 'a -> 'a >) ( clContext : ClContext ) workGroupSize =
356397
357398 let kernel =
@@ -432,6 +473,15 @@ module internal Reduce =
432473 reducedValues, reducedKeys
433474
434475 module Option =
476+ /// <summary >
477+ /// Reduces values by key. Each segment is reduced by one work item.
478+ /// </summary >
479+ /// <param name =" clContext " >ClContext.</param >
480+ /// <param name =" workGroupSize " >Work group size.</param >
481+ /// <param name =" reduceOp " >Operation for reducing values.</param >
482+ /// <remarks >
483+ /// The length of the result must be calculated in advance.
484+ /// </remarks >
435485 let segmentSequential < 'a > ( reduceOp : Expr < 'a -> 'a -> 'a option >) ( clContext : ClContext ) workGroupSize =
436486
437487 let kernel =
@@ -540,6 +590,15 @@ module internal Reduce =
540590 Some( resultValues, resultKeys)
541591
542592 module ByKey2D =
593+ /// <summary >
594+ /// Reduces an array of values by 2D keys using a single work item.
595+ /// </summary >
596+ /// <param name =" clContext " >ClContext.</param >
597+ /// <param name =" workGroupSize " >Work group size.</param >
598+ /// <param name =" reduceOp " >Operation for reducing values.</param >
599+ /// <remarks >
600+ /// The length of the result must be calculated in advance.
601+ /// </remarks >
543602 let sequential ( reduceOp : Expr < 'a -> 'a -> 'a >) ( clContext : ClContext ) workGroupSize =
544603
545604 let kernel =
@@ -610,6 +669,15 @@ module internal Reduce =
610669
611670 reducedValues, firstReducedKeys, secondReducedKeys
612671
672+ /// <summary >
673+ /// Reduces values by key. Each segment is reduced by one work item.
674+ /// </summary >
675+ /// <param name =" clContext " >ClContext.</param >
676+ /// <param name =" workGroupSize " >Work group size.</param >
677+ /// <param name =" reduceOp " >Operation for reducing values.</param >
678+ /// <remarks >
679+ /// The length of the result must be calculated in advance.
680+ /// </remarks >
613681 let segmentSequential < 'a > ( reduceOp : Expr < 'a -> 'a -> 'a >) ( clContext : ClContext ) workGroupSize =
614682
615683 let kernel =
@@ -677,6 +745,15 @@ module internal Reduce =
677745 reducedValues, firstReducedKeys, secondReducedKeys
678746
679747 module Option =
748+ /// <summary >
749+ /// Reduces values by key. Each segment is reduced by one work item.
750+ /// </summary >
751+ /// <param name =" clContext " >ClContext.</param >
752+ /// <param name =" workGroupSize " >Work group size.</param >
753+ /// <param name =" reduceOp " >Operation for reducing values.</param >
754+ /// <remarks >
755+ /// The length of the result must be calculated in advance.
756+ /// </remarks >
680757 let segmentSequential < 'a > ( reduceOp : Expr < 'a -> 'a -> 'a option >) ( clContext : ClContext ) workGroupSize =
681758
682759 let kernel =
0 commit comments