[Numpy-svn] r2738 - in trunk/numpy: core/include/numpy core/src linalg

numpy-svn at scipy.org numpy-svn at scipy.org
Thu Jul 6 02:57:09 EDT 2006


Author: oliphant
Date: 2006-07-06 01:57:03 -0500 (Thu, 06 Jul 2006)
New Revision: 2738

Modified:
   trunk/numpy/core/include/numpy/arrayobject.h
   trunk/numpy/core/src/ufuncobject.c
   trunk/numpy/linalg/linalg.py
Log:
Fix buffered reduce, accumulate, and reduceat.

Modified: trunk/numpy/core/include/numpy/arrayobject.h
===================================================================
--- trunk/numpy/core/include/numpy/arrayobject.h	2006-07-05 20:09:11 UTC (rev 2737)
+++ trunk/numpy/core/include/numpy/arrayobject.h	2006-07-06 06:57:03 UTC (rev 2738)
@@ -1604,7 +1604,7 @@
 	} while(0)
 
 /* Copy should always return contiguous array */
-#define PyArray_Copy(obj) PyArray_NewCopy(obj, 0)
+#define PyArray_Copy(obj) PyArray_NewCopy(obj, PyArray_CORDER)
 
 #define PyArray_FromObject(op, type, min_depth, max_depth)		\
 	PyArray_FromAny(op, PyArray_DescrFromType(type), min_depth,	\

Modified: trunk/numpy/core/src/ufuncobject.c
===================================================================
--- trunk/numpy/core/src/ufuncobject.c	2006-07-05 20:09:11 UTC (rev 2737)
+++ trunk/numpy/core/src/ufuncobject.c	2006-07-06 06:57:03 UTC (rev 2738)
@@ -2097,6 +2097,8 @@
                                 loop->function((char **)loop->bufptr,
                                                &i, 
 					       loop->steps, loop->funcdata);
+				loop->bufptr[1] += loop->steps[1]*i;
+				loop->bufptr[2] += loop->steps[2]*i;
 				UFUNC_CHECK_ERROR(loop);
                         }                       
                         PyArray_ITER_NEXT(loop->it);
@@ -2239,6 +2241,8 @@
                                 loop->function((char **)loop->bufptr,
                                                &i, 
 					       loop->steps, loop->funcdata);
+				loop->bufptr[1] += loop->steps[1]*i;
+				loop->bufptr[2] += loop->steps[2]*i;
 				UFUNC_CHECK_ERROR(loop);
                         }                       
                         PyArray_ITER_NEXT(loop->it);
@@ -2386,6 +2390,7 @@
 						       &j, loop->steps,
 						       loop->funcdata);
 					UFUNC_CHECK_ERROR(loop);
+					loop->bufptr[1] += j*loop->steps[1];
 				} 
 				loop->bufptr[1] += loop->ret->strides[axis];
 				ptr++;

Modified: trunk/numpy/linalg/linalg.py
===================================================================
--- trunk/numpy/linalg/linalg.py	2006-07-05 20:09:11 UTC (rev 2737)
+++ trunk/numpy/linalg/linalg.py	2006-07-06 06:57:03 UTC (rev 2738)
@@ -19,7 +19,7 @@
 from numpy.lib import *
 import lapack_lite
 
-fortran_int = int32
+fortran_int = intc
 
 # Error object
 class LinAlgError(Exception):




More information about the Numpy-svn mailing list