5
5
6
6
// declare function here, linker will find this when linked to
7
7
// 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 );
16
16
17
17
// struct definition, we will sort an array of these:
18
18
struct Point {
@@ -22,15 +22,20 @@ struct Point {
22
22
size_t metric ;
23
23
};
24
24
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
+ }
26
31
27
32
// 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 )
29
34
{
30
35
/* (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 ));
34
39
for (size_t ii = 0 ; ii < size ; ++ ii ) {
35
40
key [ii ] = arr [ii ].metric ;
36
41
arg [ii ] = ii ;
@@ -58,14 +63,15 @@ void object_qsort(struct Point* arr, size_t size)
58
63
free (done );
59
64
}
60
65
61
- int main () {
66
+ int main ()
67
+ {
62
68
const size_t size = 10 ;
63
69
struct Point arr [size ];
64
70
65
71
// Initialize:
66
72
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 ;
69
75
}
70
76
71
77
// sort:
0 commit comments