Skip to content

Commit 87486d1

Browse files
authoredAug 5, 2024
Merge pull request #159 from yixuan/docfix
Documentation fixes
2 parents 9a1b616 + 2a16ea5 commit 87486d1

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed
 

‎src/README.md

+13-10
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
C++ header file library for SIMD based 16-bit, 32-bit and 64-bit data type
44
sorting algorithms on x86 processors. We currently have AVX-512 and AVX2
5-
(32-bit and 64-bit only) based implementation of quicksort, quickselect &
6-
partialsort and AVX-512 implementations of argsort, argselect and key-value
5+
(32-bit and 64-bit only) based implementation of quicksort, quickselect,
6+
partialsort, argsort, argselect & key-value
77
sort. The following API's are currently supported:
88

99
#### Quicksort
@@ -30,8 +30,8 @@ Equivalent to `std::nth_element` in
3030

3131

3232
```cpp
33-
void avx512_qselect<T>(T* arr, size_t arrsize, bool hasnan = false, bool descending = false);
34-
void avx2_qselect<T>(T* arr, size_t arrsize, bool hasnan = false, bool descending = false);
33+
void avx512_qselect<T>(T* arr, size_t k, size_t arrsize, bool hasnan = false, bool descending = false);
34+
void avx2_qselect<T>(T* arr, size_t k, size_t arrsize, bool hasnan = false, bool descending = false);
3535
```
3636
Supported datatypes: `uint16_t`, `int16_t`, `_Float16`, `uint32_t`, `int32_t`,
3737
`float`, `uint64_t`, `int64_t` and `double`. AVX2 versions currently support
@@ -46,8 +46,8 @@ Equivalent to `std::partial_sort` in
4646

4747

4848
```cpp
49-
void avx512_partial_qsort<T>(T* arr, size_t arrsize, bool hasnan = false, bool descending = false)
50-
void avx2_partial_qsort<T>(T* arr, size_t arrsize, bool hasnan = false, bool descending = false)
49+
void avx512_partial_qsort<T>(T* arr, size_t k, size_t arrsize, bool hasnan = false, bool descending = false)
50+
void avx2_partial_qsort<T>(T* arr, size_t k, size_t arrsize, bool hasnan = false, bool descending = false)
5151
```
5252
Supported datatypes: `uint16_t`, `int16_t`, `_Float16`, `uint32_t`, `int32_t`,
5353
`float`, `uint64_t`, `int64_t` and `double`. AVX2 versions currently support
@@ -61,8 +61,8 @@ Equivalent to `np.argsort` in
6161
[NumPy](https://numpy.org/doc/stable/reference/generated/numpy.argsort.html).
6262

6363
```cpp
64-
std::vector<size_t> arg = avx512_argsort<T>(T* arr, size_t arrsize, bool hasnan = false, bool descending = false);
6564
void avx512_argsort<T>(T* arr, size_t *arg, size_t arrsize, bool hasnan = false, bool descending = false);
65+
void avx2_argsort<T>(T* arr, size_t *arg, size_t arrsize, bool hasnan = false, bool descending = false);
6666
```
6767
Supported datatypes: `uint32_t`, `int32_t`, `float`, `uint64_t`, `int64_t` and
6868
`double`.
@@ -74,8 +74,8 @@ Equivalent to `np.argselect` in
7474
[NumPy](https://numpy.org/doc/stable/reference/generated/numpy.argpartition.html).
7575

7676
```cpp
77-
std::vector<size_t> arg = avx512_argselect<T>(T* arr, size_t k, size_t arrsize);
7877
void avx512_argselect<T>(T* arr, size_t *arg, size_t k, size_t arrsize);
78+
void avx2_argselect<T>(T* arr, size_t *arg, size_t k, size_t arrsize);
7979
```
8080
Supported datatypes: `uint32_t`, `int32_t`, `float`, `uint64_t`, `int64_t` and
8181
`double`.
@@ -84,9 +84,10 @@ The algorithm resorts to scalar `std::sort` if the array contains NaNs.
8484

8585
#### Key-value sort
8686
```cpp
87-
void avx512_qsort_kv<T>(T1* key, T2* value , size_t arrsize)
87+
void avx512_qsort_kv<T1, T2>(T1* key, T2* value, size_t arrsize);
88+
void avx2_qsort_kv<T1, T2>(T1* key, T2* value, size_t arrsize);
8889
```
89-
Supported datatypes: `uint64_t, int64_t and double`
90+
Supported datatypes: `uint64_t`, `int64_t` and `double`.
9091

9192
## Algorithm details
9293

@@ -105,6 +106,8 @@ source code associated with that paper [3].
105106
### Sample code `main.cpp`
106107

107108
```cpp
109+
#include "src/xss-common-includes.h"
110+
#include "src/xss-common-qsort.h"
108111
#include "src/avx512-32bit-qsort.hpp"
109112

110113
int main() {

0 commit comments

Comments
 (0)
Failed to load comments.