ext/numo/narray/gen/tmpl/qsort.c in numo-narray-0.9.0.4 vs ext/numo/narray/gen/tmpl/qsort.c in numo-narray-0.9.0.5
- old
+ new
@@ -1,9 +1,9 @@
/*
qsort.c
Numerical Array Extension for Ruby
- (C) Copyright 2007-2016 by Masahiro TANAKA
+ (C) Copyright 2007-2017 by Masahiro TANAKA
*/
/*
* qsort.c: standard quicksort algorithm
*
@@ -66,13 +66,20 @@
#undef qsort_dtype
#define qsort_dtype <%=dtype%>
#undef qsort_cast
#define qsort_cast <%=dcast%>
+<% if "#{suffix}" != "" %>
+#undef cmp
+#undef cmpgt
+#define cmp(a,b) cmp<%=suffix%>(a,b)
+#define cmpgt(a,b) cmpgt<%=suffix%>(a,b)
+<% end %>
+<% c_func(:nodef)%>
void
-<%=tp%>_qsort(void *a, size_t n, ssize_t es)
+<%=type_name%>_qsort<%=suffix%>(void *a, size_t n, ssize_t es)
{
char *pa, *pb, *pc, *pd, *pl, *pm, *pn;
int d, r, presorted;
loop:
@@ -132,10 +139,10 @@
r = Min(pa - (char *) a, pb - pa);
vecswap(qsort_dtype, a, pb - r, r);
r = Min(pd - pc, pn - pd - es);
vecswap(qsort_dtype, pb, pn - r, r);
if ((r = pb - pa) > es)
- <%=tp%>_qsort(a, r / es, es);
+ <%=type_name%>_qsort<%=suffix%>(a, r / es, es);
if ((r = pd - pc) > es) {
a = pn - r;
n = r / es;
goto loop;
}