[Numpy-svn] r2847 - in trunk/numpy/core: include/numpy src
numpy-svn at scipy.org
numpy-svn at scipy.org
Wed Jul 19 11:55:49 EDT 2006
Author: oliphant
Date: 2006-07-19 10:55:43 -0500 (Wed, 19 Jul 2006)
New Revision: 2847
Modified:
trunk/numpy/core/include/numpy/arrayobject.h
trunk/numpy/core/src/arrayobject.c
Log:
Fix-up optimization for assignment. Fix threading one more time.
Modified: trunk/numpy/core/include/numpy/arrayobject.h
===================================================================
--- trunk/numpy/core/include/numpy/arrayobject.h 2006-07-19 15:36:12 UTC (rev 2846)
+++ trunk/numpy/core/include/numpy/arrayobject.h 2006-07-19 15:55:43 UTC (rev 2847)
@@ -1292,6 +1292,7 @@
#define PyTypeNum_ISOBJECT(type) ((type) == NPY_OBJECT)
+
#define PyDataType_ISBOOL(obj) PyTypeNum_ISBOOL(_PyADt(obj))
#define PyDataType_ISUNSIGNED(obj) PyTypeNum_ISUNSIGNED(((PyArray_Descr*)obj)->type_num)
#define PyDataType_ISSIGNED(obj) PyTypeNum_ISSIGNED(((PyArray_Descr*)obj)->type_num)
Modified: trunk/numpy/core/src/arrayobject.c
===================================================================
--- trunk/numpy/core/src/arrayobject.c 2006-07-19 15:36:12 UTC (rev 2846)
+++ trunk/numpy/core/src/arrayobject.c 2006-07-19 15:55:43 UTC (rev 2847)
@@ -2783,7 +2783,8 @@
return -1;
}
- if (PyInt_Check(index) || PyArray_IsScalar(index, Integer)) {
+ if (PyInt_Check(index) || PyArray_IsScalar(index, Integer) ||
+ PyLong_Check(index)) {
intp value;
value = PyArray_PyIntAsIntp(index);
if (PyErr_Occurred())
@@ -2827,9 +2828,7 @@
}
/* optimization for integer-tuple */
- if ((PyInt_Check(index) || PyArray_IsScalar(index, Integer) || \
- PyLong_Check(index) || \
- (PyTuple_Check(index) && (PyTuple_GET_SIZE(index) == self->nd))) \
+ if (self->nd > 1 && (PyTuple_Check(index) && (PyTuple_GET_SIZE(index) == self->nd)) \
&& PyArray_IntpFromSequence(index, vals, self->nd) == self->nd) {
int i;
char *item;
@@ -7257,7 +7256,7 @@
memset(buffers[1], 0, N*selsize);
#if NPY_ALLOW_THREADS
- if (!PyArray_ISEXTENDED(in) && !PyArray_ISEXTENDED(out)) {
+ if (PyArray_ISNUMBER(in) && PyArray_ISNUMBER(out)) {
NPY_BEGIN_THREADS
}
#endif
@@ -7274,7 +7273,7 @@
PyArray_MultiIter_NEXT(multi);
}
#if NPY_ALLOW_THREADS
- if (!PyArray_ISEXTENDED(in) && !PyArray_ISEXTENDED(out)) {
+ if (PyArray_ISNUMBER(in) && PyArray_ISNUMBER(out)) {
NPY_END_THREADS
}
#endif
@@ -7335,13 +7334,13 @@
if (simple) {
#if NPY_ALLOW_THREADS
- if (!PyArray_ISEXTENDED(mp) && !PyArray_ISEXTENDED(out)) {
+ if (PyArray_ISNUMBER(mp) && PyArray_ISNUMBER(out)) {
NPY_BEGIN_THREADS }
#endif
castfunc(mp->data, out->data, mpsize, mp, out);
#if NPY_ALLOW_THREADS
- if (!PyArray_ISEXTENDED(mp) && !PyArray_ISEXTENDED(out)) {
+ if (PyArray_ISNUMBER(mp) && PyArray_ISNUMBER(out)) {
NPY_END_THREADS }
#endif
return 0;
More information about the Numpy-svn
mailing list