#include <endian.h>
#include <stdlib.h>
#include <string.h>
#include "pkvaria.h"
Defines | |
#define | BOUND_VALUE 32 |
#define | MAXCOUNT 256 |
#define | CVF1 |
#define | CVF2 |
#define | CVD1 |
#define | CVD2 |
#define | CVLD1 |
#define | CVLD2 |
Functions | |
char | pkv_SortKernel (size_t key_size, char key_type, size_t item_length, size_t key_offset, unsigned int num_data, void *data, unsigned int *permut) |
char | pkv_SortPermute (size_t item_length, unsigned int num_data, void *data, unsigned int *permut) |
char | pkv_SortFast (size_t key_size, char key_type, size_t item_length, size_t key_offset, unsigned int num_data, void *data) |
#define BOUND_VALUE 32 |
#define CVD1 |
{ ap = (int*)mdata; \ if ( ap[1] >= 0 ) ap[1] ^= 0x80000000; \ else { ap[0] = ~ap[0]; ap[1] = ~ap[1]; } \ }
#define CVD2 |
{ ap = (int*)mdata; \ if ( ap[1] < 0 ) ap[1] ^= 0x80000000; \ else { ap[0] = ~ap[0]; ap[1] = ~ap[1]; } \ }
#define CVF1 |
{ ap = (int*)mdata; \ if ( *ap >= 0 ) *ap ^= 0x80000000; \ else *ap = ~(*ap); \ }
#define CVF2 |
{ ap = (int*)mdata; \ if ( *ap < 0 ) *ap ^= 0x80000000; \ else *ap = ~(*ap); \ }
#define CVLD1 |
{ ap = (short*)mdata; \ if ( ap[4] >= 0 ) ap[4] ^= 0x8000; \ else { bp = (int*)mdata; \ bp[0] = ~bp[0]; bp[1] = ~bp[1]; ap[4] = ~ap[4]; } \ }
#define CVLD2 |
{ ap = (short*)mdata; \ if ( ap[4] < 0 ) ap[4] ^= 0x8000; \ else { bp = (int*)mdata; \ bp[0] = ~bp[0]; bp[1] = ~bp[1]; ap[4] = ~ap[4]; } \ }
#define MAXCOUNT 256 |
char pkv_SortFast | ( | size_t | key_size, | |
char | key_type, | |||
size_t | item_length, | |||
size_t | key_offset, | |||
unsigned int | num_data, | |||
void * | data | |||
) |
char pkv_SortKernel | ( | size_t | key_size, | |
char | key_type, | |||
size_t | item_length, | |||
size_t | key_offset, | |||
unsigned int | num_data, | |||
void * | data, | |||
unsigned int * | permut | |||
) |
char pkv_SortPermute | ( | size_t | item_length, | |
unsigned int | num_data, | |||
void * | data, | |||
unsigned int * | permut | |||
) |