55
66// declare function here, linker will find this when linked to
77// libx86simdsortcpp.so
8- void keyvalue_qsort_float_sizet (float * , size_t * , size_t );
9- void keyvalue_qsort_float_uint32 (float * , uint32_t * , uint32_t );
10- void keyvalue_qsort_sizet_sizet (size_t * , size_t * , size_t );
11- void keyvalue_qsort_sizet_uint32 (size_t * , uint32_t * , uint32_t );
12- void keyvalue_qsort_uint32_sizet (uint32_t * , size_t * , size_t );
13- void keyvalue_qsort_uint32_uint32 (uint32_t * , uint32_t * , uint32_t );
14- void keyvalue_qsort_int32_sizet (int32_t * , size_t * , size_t );
15- void keyvalue_qsort_int32_uint32 (int32_t * , uint32_t * , uint32_t );
8+ void keyvalue_qsort_float_sizet (float * , size_t * , size_t );
9+ void keyvalue_qsort_float_uint32 (float * , uint32_t * , uint32_t );
10+ void keyvalue_qsort_sizet_sizet (size_t * , size_t * , size_t );
11+ void keyvalue_qsort_sizet_uint32 (size_t * , uint32_t * , uint32_t );
12+ void keyvalue_qsort_uint32_sizet (uint32_t * , size_t * , size_t );
13+ void keyvalue_qsort_uint32_uint32 (uint32_t * , uint32_t * , uint32_t );
14+ void keyvalue_qsort_int32_sizet (int32_t * , size_t * , size_t );
15+ void keyvalue_qsort_int32_uint32 (int32_t * , uint32_t * , uint32_t );
1616
1717// struct definition, we will sort an array of these:
1818struct Point {
@@ -22,15 +22,20 @@ struct Point {
2222 size_t metric ;
2323};
2424
25- #define SWAP (a , b , type ) {type temp = a; a = b; b = temp;}
25+ #define SWAP (a , b , type ) \
26+ { \
27+ type temp = a; \
28+ a = b; \
29+ b = temp; \
30+ }
2631
2732// Function to sort an array of objects:
28- void object_qsort (struct Point * arr , size_t size )
33+ void object_qsort (struct Point * arr , size_t size )
2934{
3035 /* (1) Create and initialize arrays of key and value */
31- size_t * key = malloc (size * sizeof (size_t ));
32- size_t * arg = malloc (size * sizeof (size_t ));
33- bool * done = malloc (size * sizeof (bool ));
36+ size_t * key = malloc (size * sizeof (size_t ));
37+ size_t * arg = malloc (size * sizeof (size_t ));
38+ bool * done = malloc (size * sizeof (bool ));
3439 for (size_t ii = 0 ; ii < size ; ++ ii ) {
3540 key [ii ] = arr [ii ].metric ;
3641 arg [ii ] = ii ;
@@ -58,14 +63,15 @@ void object_qsort(struct Point* arr, size_t size)
5863 free (done );
5964}
6065
61- int main () {
66+ int main ()
67+ {
6268 const size_t size = 10 ;
6369 struct Point arr [size ];
6470
6571 // Initialize:
6672 for (size_t ii = 0 ; ii < size ; ++ ii ) {
67- arr [ii ].distance = (float ) rand () / RAND_MAX ;
68- arr [ii ].metric = rand () % 100 ;
73+ arr [ii ].distance = (float )rand () / RAND_MAX ;
74+ arr [ii ].metric = rand () % 100 ;
6975 }
7076
7177 // sort:
0 commit comments