41#ifndef DOXYGEN_SHOULD_SKIP_THIS
43#define INTSORTNAME c_spmIntFltSortAsc
44#define INTSORTSIZE(x) (intsortsize_if[x])
46#define INTSORTSWAP(p,q) do { \
48 long disp_p = (((spm_int_t*)p)-((spm_int_t*)base_ptr)); \
49 long disp_q = (((spm_int_t*)q)-((spm_int_t*)base_ptr)); \
50 spm_complex32_t * floatptr = *(pbase+1); \
53 t = *((spm_int_t *) (p)); \
54 *((spm_int_t *) (p)) = *((spm_int_t *) (q)); \
55 *((spm_int_t *) (q)) = t; \
57 f = floatptr[disp_p]; \
58 floatptr[disp_p] = floatptr[disp_q]; \
59 floatptr[disp_q] = f; \
61#define INTSORTCMP(p,q) (*((spm_int_t *) (p)) < *((spm_int_t *) (q)))
62#include "integer_sort_mtypes.c"
89#ifndef DOXYGEN_SHOULD_SKIP_THIS
91#define INTSORTNAME c_spmIntIntFltSortAsc
92#define INTSORTSIZE(x) (intsortsize_iif[x])
94#define INTSORTSWAP(p,q) do { \
96 long disp_p = (((spm_int_t*)p)-((spm_int_t*)base_ptr)); \
97 long disp_q = (((spm_int_t*)q)-((spm_int_t*)base_ptr)); \
98 spm_int_t * intptr = *(pbase+1); \
99 spm_complex32_t * fltptr = *(pbase+2); \
102 t = *((spm_int_t *) (p)); \
103 *((spm_int_t *) (p)) = *((spm_int_t *) (q)); \
104 *((spm_int_t *) (q)) = t; \
106 t = intptr[disp_p]; \
107 intptr[disp_p] = intptr[disp_q]; \
108 intptr[disp_q] = t; \
110 f = fltptr[disp_p]; \
111 fltptr[disp_p] = fltptr[disp_q]; \
112 fltptr[disp_q] = f; \
138intsortcmp_iif(
void **
const pbase,
144 return ( *p < *q ) || (( *p == *q ) && ( int2ptr[ p - int1ptr ] < int2ptr[ q - int1ptr ] ));
146#define INTSORTCMP(p,q) intsortcmp_iif( pbase, (spm_int_t*)p, (spm_int_t*)q )
147#include "integer_sort_mtypes.c"
float _Complex spm_complex32_t
int spm_int_t
The main integer datatype used in spm arrays.