@@ -5,55 +5,56 @@ open Microsoft.FSharp.Quotations
55open GraphBLAS.FSharp .Backend .Common
66
77module Common =
8- module Bitonic =
9- /// <summary >
10- /// Sorts in-place input array of values by their 2d indices,
11- /// which are stored in two given arrays of keys: rows and columns.
12- /// When comparing, it first looks at rows, then columns.
13- /// </summary >
14- /// <example >
15- /// <code >
16- /// let rows = [ | 0; 0; 3; 2; 1; 0; 5 |]
17- /// let columns = [ | 0; 2; 1; 2; 0; 3; 5; |]
18- /// let values = [ | 1.9; 2.8; 3.7; 4.6; 5.5; 6.4; 7.3; |]
19- /// sortKeyValuesInplace clContext 32 processor rows columns values
20- /// ...
21- /// > val rows = [ | 0; 0; 0; 1; 2; 3; 5 |]
22- /// > let columns = [ | 0; 2; 3; 0; 2; 1; 5; |]
23- /// > val values = [ | 1.9; 2.8; 6.4; 5.5; 4.6; 3.7; 7.3 |]
24- /// </code>
25- /// </example>
26- let sortKeyValuesInplace < 'n , 'a when 'n : comparison > =
27- Sort.Bitonic.sortKeyValuesInplace< 'n, 'a>
8+ module Sort =
9+ module Bitonic =
10+ /// <summary >
11+ /// Sorts in-place input array of values by their 2d indices,
12+ /// which are stored in two given arrays of keys: rows and columns.
13+ /// When comparing, it first looks at rows, then columns.
14+ /// </summary >
15+ /// <example >
16+ /// <code >
17+ /// let rows = [ | 0; 0; 3; 2; 1; 0; 5 |]
18+ /// let columns = [ | 0; 2; 1; 2; 0; 3; 5; |]
19+ /// let values = [ | 1.9; 2.8; 3.7; 4.6; 5.5; 6.4; 7.3; |]
20+ /// sortKeyValuesInplace clContext 32 processor rows columns values
21+ /// ...
22+ /// > val rows = [ | 0; 0; 0; 1; 2; 3; 5 |]
23+ /// > let columns = [ | 0; 2; 3; 0; 2; 1; 5; |]
24+ /// > val values = [ | 1.9; 2.8; 6.4; 5.5; 4.6; 3.7; 7.3 |]
25+ /// </code>
26+ /// </example>
27+ let sortKeyValuesInplace < 'n , 'a when 'n : comparison > =
28+ Sort.Bitonic.sortKeyValuesInplace< 'n, 'a>
2829
29- module Radix =
30- /// <summary >
31- /// Sorts stable input array of values by given integer keys.
32- /// </summary >
33- /// <example >
34- /// <code >
35- /// let keys = [ | 0; 4; 3; 1; 2; 6; 5 |]
36- /// let values = [ | 1.9; 2.8; 3.7; 4.6; 5.5; 6.4; 7.3; |]
37- /// runByKeysStandard clContext 32 processor keys values
38- /// ...
39- /// > val keys = [ | 0; 1; 2; 3; 4; 5; 6 |]
40- /// > val values = [ | 1.9; 4.6; 5.5; 3.7; 2.8; 7.3; 6.4 |]
41- /// </code>
42- /// </example>
43- let runByKeysStandard = Sort.Radix.runByKeysStandard
30+ module Radix =
31+ /// <summary >
32+ /// Sorts stable input array of values by given integer keys.
33+ /// </summary >
34+ /// <example >
35+ /// <code >
36+ /// let keys = [ | 0; 4; 3; 1; 2; 6; 5 |]
37+ /// let values = [ | 1.9; 2.8; 3.7; 4.6; 5.5; 6.4; 7.3; |]
38+ /// runByKeysStandard clContext 32 processor keys values
39+ /// ...
40+ /// > val keys = [ | 0; 1; 2; 3; 4; 5; 6 |]
41+ /// > val values = [ | 1.9; 4.6; 5.5; 3.7; 2.8; 7.3; 6.4 |]
42+ /// </code>
43+ /// </example>
44+ let runByKeysStandard = Sort.Radix.runByKeysStandard
4445
45- /// <summary >
46- /// Sorts stable input array of integer keys.
47- /// </summary >
48- /// <example >
49- /// <code >
50- /// let keys = [ | 0; 4; 3; 1; 2; 6; 5 |]
51- /// standardRunKeysOnly clContext 32 processor keys
52- /// ...
53- /// > val keys = [ | 0; 1; 2; 3; 4; 5; 6 |]
54- /// </code>
55- /// </example>
56- let standardRunKeysOnly = Sort.Radix.standardRunKeysOnly
46+ /// <summary >
47+ /// Sorts stable input array of integer keys.
48+ /// </summary >
49+ /// <example >
50+ /// <code >
51+ /// let keys = [ | 0; 4; 3; 1; 2; 6; 5 |]
52+ /// standardRunKeysOnly clContext 32 processor keys
53+ /// ...
54+ /// > val keys = [ | 0; 1; 2; 3; 4; 5; 6 |]
55+ /// </code>
56+ /// </example>
57+ let standardRunKeysOnly = Sort.Radix.standardRunKeysOnly
5758
5859 module Gather =
5960 /// <summary >
@@ -212,28 +213,28 @@ module Common =
212213 /// > val sum = [ | 4 |]
213214 /// </code>
214215 /// </example>
216+ /// <param name="plus"> Associative binary operation.</param >
215217 /// <param name="clContext"> ClContext.</param >
216218 /// <param name="workGroupSize"> Should be a power of 2 and greater than 1.</param >
217- /// <param name="plus"> Associative binary operation.</param >
218219 /// <param name="zero"> Zero element for binary operation.</param >
219220 let runIncludeInPlace plus = PrefixSum.runIncludeInPlace plus
220221
221222 /// <summary >
222223 /// Exclude in-place prefix sum. Array is scanned starting from the end.
223224 /// </summary >
225+ /// <param name =" plus " >Associative binary operation.</param >
224226 /// <param name =" clContext " >ClContext.</param >
225227 /// <param name =" workGroupSize " >Should be a power of 2 and greater than 1.</param >
226- /// <param name =" plus " >Associative binary operation.</param >
227228 /// <param name =" zero " >Zero element for binary operation.</param >
228229 let runBackwardsExcludeInPlace plus =
229230 PrefixSum.runBackwardsExcludeInPlace plus
230231
231232 /// <summary >
232233 /// Include in-place prefix sum. Array is scanned starting from the end.
233234 /// </summary >
235+ /// <param name =" plus " >Associative binary operation.</param >
234236 /// <param name =" clContext " >ClContext.</param >
235237 /// <param name =" workGroupSize " >Should be a power of 2 and greater than 1.</param >
236- /// <param name =" plus " >Associative binary operation.</param >
237238 /// <param name =" zero " >Zero element for binary operation.</param >
238239 let runBackwardsIncludeInPlace plus =
239240 PrefixSum.runBackwardsIncludeInPlace plus
0 commit comments