/* [[file:~/qp2/src/utils/qsort.org::*Generated%20C%20file][Generated C file:1]] */ #include #include struct int16_t_comp { int16_t x; int32_t i; }; int compare_int16_t( const void * l, const void * r ) { const int16_t * restrict _l= l; const int16_t * restrict _r= r; if( *_l > *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_int16_t(int16_t* restrict A_in, int32_t* restrict iorder, int32_t isize) { struct int16_t_comp* A = malloc(isize * sizeof(struct int16_t_comp)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_int16_t_big(int16_t* restrict A_in, int64_t* restrict iorder, int64_t isize) { struct int16_t_comp_big* A = malloc(isize * sizeof(struct int16_t_comp_big)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_int32_t(int32_t* restrict A_in, int32_t* restrict iorder, int32_t isize) { struct int32_t_comp* A = malloc(isize * sizeof(struct int32_t_comp)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_int32_t_big(int32_t* restrict A_in, int64_t* restrict iorder, int64_t isize) { struct int32_t_comp_big* A = malloc(isize * sizeof(struct int32_t_comp_big)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_int64_t(int64_t* restrict A_in, int32_t* restrict iorder, int32_t isize) { struct int64_t_comp* A = malloc(isize * sizeof(struct int64_t_comp)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_int64_t_big(int64_t* restrict A_in, int64_t* restrict iorder, int64_t isize) { struct int64_t_comp_big* A = malloc(isize * sizeof(struct int64_t_comp_big)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_double(double* restrict A_in, int32_t* restrict iorder, int32_t isize) { struct double_comp* A = malloc(isize * sizeof(struct double_comp)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_double_big(double* restrict A_in, int64_t* restrict iorder, int64_t isize) { struct double_comp_big* A = malloc(isize * sizeof(struct double_comp_big)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_float(float* restrict A_in, int32_t* restrict iorder, int32_t isize) { struct float_comp* A = malloc(isize * sizeof(struct float_comp)); if (A == NULL) return; for (int i=0 ; i *_r ) return 1; if( *_l < *_r ) return -1; return 0; } void qsort_float_big(float* restrict A_in, int64_t* restrict iorder, int64_t isize) { struct float_comp_big* A = malloc(isize * sizeof(struct float_comp_big)); if (A == NULL) return; for (int i=0 ; i