NAME

int_sort - Sorts an array of arbitrary elements by integer key.

SYNOPSIS

#include "l/l_sort.h"

Example compile flags (system dependent):
  -DLINUX_X86_64 -DLINUX_X86_64_OPTERON  -DGNU_COMPILER 
   -I/home/kobus/include
   -L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
  -lKJB                               -lfftw3  -lgsl -lgslcblas -ljpeg  -lSVM -lstdc++                    -lpthread -lSLATEC -lg2c    -lacml -lacml_mv -lblas -lg2c      -lncursesw 


int int_sort
(
	void *array,
	int num_elements,
	size_t element_size,
	size_t key_pos,
	int interrupt_action
);

DESCRIPTION

This routine is much like kjb_sort except the call backs are avoided on the assumption that the key is an integer at offset key_pos (see offsetof()). This routine is barely legal ANSI-C and might fail on some bizzare system (but not anything common). The operation in question is whether:

       (int*)((void*)((char*)array + element_size*n + key_pos))

evaluates to a valid pointer to the n'th integer key, where key_pos is offsetof() the integer key, and element_size is sizeof(<element-type>). (I don't know of any systems where this is not the case). This routine is only meant to provide a faster sort in this specialized case, so if you don't want to take a chance with the above then kjb_sort or qsort can be used. The interupt handling is the same as kjb_sort (see kjb_sort(3)).

RETURNS

This function returns ERROR or NO_ERROR depending upon success. In addition, if USE_SORT_ATN_HANDLING is used, and the sort was interrupted, INTERRUPTED is returned. This function previously returned the number calls to the comparison required but this is probably too confusing now that we have changed kjb_sort() to not do this. If needed, the number of comparisons is available using the function get_last_sort_comparison_count().

DISCLAIMER

This software is not adequatedly tested. It is recomended that results are checked independantly where appropriate.

AUTHOR

Kobus Barnard

DOCUMENTER

Kobus Barnard

SEE ALSO

kjb_sort , check_sort , long_sort , binary_search , int_binary_search , long_binary_search , binary_search_int_array , binary_search_long_array , linear_search , int_linear_search , long_linear_search , linear_search_int_array , linear_search_long_array