#
# iqsort
#
@PROBLEM iqsort
@FUNCTION iqsort
@LIB $(NETSOLVE_ROOT)/lib/$(NETSOLVE_ARCH)/libqsort.a
@LANGUAGE C
@MAJOR ROW
@PATH  /QuickSort/Integer/
@DESCRIPTION
Quicksort
Sorts an integer vector
@INPUT 1
@OBJECT VECTOR I x
Vector of integers to Sort
@OUTPUT 1
@OBJECT VECTOR I x
Sorted Vector
@COMPLEXITY 1,1

@CALLINGSEQUENCE
@ARG mI0
@ARG I0
@ARG O0

@CODE
extern int intcompare(const void*,const void*);

qsort(@I0@,*@mI0@,sizeof(int),intcompare);

*@mO0@=*@mI0@;
@O0@=@I0@;

@END_CODE

#
# dqsort
#
@PROBLEM dqsort
@FUNCTION dqsort
@LANGUAGE C
@MAJOR ROW
@PATH  /QuickSort/DoublePrecision/
@DESCRIPTION
Quicksort
@INPUT 1
@OBJECT VECTOR D x
Vector of doubles to Sort
@OUTPUT 1
@OBJECT VECTOR D x
Sorted Vector
@COMPLEXITY 1,2

@CALLINGSEQUENCE
@ARG mI0
@ARG I0
@ARG O0

@CODE
extern int doublecompare(const void*,const void*);

qsort(@I0@,*@mI0@,sizeof(double),doublecompare);

*@mO0@=*@mI0@;
@O0@=@I0@;

@END_CODE


