summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/__init__.py2
-rw-r--r--numpy/core/setup.py2
-rw-r--r--numpy/core/src/multiarray/arraytypes.c.src25
3 files changed, 27 insertions, 2 deletions
diff --git a/numpy/core/__init__.py b/numpy/core/__init__.py
index 4a9f3ac75..dc6f86c20 100644
--- a/numpy/core/__init__.py
+++ b/numpy/core/__init__.py
@@ -7,7 +7,7 @@ import umath
import _internal # for freeze programs
import numerictypes as nt
multiarray.set_typeDict(nt.sctypeDict)
-import _sort
+#import _sort
from numeric import *
from fromnumeric import *
import defchararray as char
diff --git a/numpy/core/setup.py b/numpy/core/setup.py
index 0cc04b4a8..c5667bea9 100644
--- a/numpy/core/setup.py
+++ b/numpy/core/setup.py
@@ -817,7 +817,7 @@ def configuration(parent_package='',top_path=None):
join(codegen_dir,'generate_numpy_api.py'),
join('*.py')],
depends = deps + multiarray_deps,
- libraries = ['npymath'])
+ libraries = ['npymath', 'npysort'])
#######################################################################
# umath module #
diff --git a/numpy/core/src/multiarray/arraytypes.c.src b/numpy/core/src/multiarray/arraytypes.c.src
index e4dab1f7e..dc8d493f3 100644
--- a/numpy/core/src/multiarray/arraytypes.c.src
+++ b/numpy/core/src/multiarray/arraytypes.c.src
@@ -12,6 +12,7 @@
#include "numpy/npy_math.h"
#include "numpy/halffloat.h"
+#include "numpy/npy_sort.h"
#include "common.h"
#include "ctors.h"
@@ -3259,6 +3260,8 @@ static int
/**begin repeat
*
* #from = VOID, STRING, UNICODE#
+ * #suff = void, string, unicode#
+ * #sort = 0, 1, 1#
* #align = char, char, PyArray_UCS4#
* #NAME = Void, String, Unicode#
* #endian = |, |, =#
@@ -3299,12 +3302,21 @@ static PyArray_ArrFuncs _Py@NAME@_ArrFuncs = {
(PyArray_NonzeroFunc*)@from@_nonzero,
(PyArray_FillFunc*)NULL,
(PyArray_FillWithScalarFunc*)NULL,
+#if @sort@
+ {
+ quicksort_@suff@, heapsort_@suff@, mergesort_@suff@
+ },
+ {
+ aquicksort_@suff@, aheapsort_@suff@, amergesort_@suff@
+ },
+#else
{
NULL, NULL, NULL
},
{
NULL, NULL, NULL
},
+#endif
NULL,
(PyArray_ScalarKindFunc*)NULL,
NULL,
@@ -3341,6 +3353,10 @@ static PyArray_Descr @from@_Descr = {
* #from = BOOL, BYTE, UBYTE, SHORT, USHORT, INT, UINT, LONG, ULONG,
* LONGLONG, ULONGLONG, HALF, FLOAT, DOUBLE, LONGDOUBLE,
* CFLOAT, CDOUBLE, CLONGDOUBLE, OBJECT, DATETIME, TIMEDELTA#
+ * #suff = bool, byte, ubyte, short, ushort, int, uint, long, ulong,
+ * longlong, ulonglong, half, float, double, longdouble,
+ * cfloat, cdouble, clongdouble, object, datetime, timedelta#
+ * #sort = 1*18, 0*3#
* #num = 1*15, 2*3, 1*3#
* #fromtyp = Bool, byte, ubyte, short, ushort, int, uint, long, ulong,
* longlong, ulonglong, npy_half, float, double, longdouble,
@@ -3390,12 +3406,21 @@ static PyArray_ArrFuncs _Py@NAME@_ArrFuncs = {
(PyArray_NonzeroFunc*)@from@_nonzero,
(PyArray_FillFunc*)@from@_fill,
(PyArray_FillWithScalarFunc*)@from@_fillwithscalar,
+#if @sort@
+ {
+ quicksort_@suff@, heapsort_@suff@, mergesort_@suff@
+ },
+ {
+ aquicksort_@suff@, aheapsort_@suff@, amergesort_@suff@
+ },
+#else
{
NULL, NULL, NULL
},
{
NULL, NULL, NULL
},
+#endif
NULL,
(PyArray_ScalarKindFunc*)NULL,
NULL,