Mail Archives: cygwin/2002/05/06/18:37:43
I am trying to run numarray on Cygwin.
(Where Numeric seems to work fine.)
In order to compile it I had to change the use of round to rint, as
Cygwin's C library (newlib) doesn't have round. The patch is
attached.
When I use it I don't get far, though:
,----
| > python
| Python 2.2 (#1, Dec 31 2001, 15:21:18)
| [GCC 2.95.3-5 (cygwin special)] on cygwin
| Type "help", "copyright", "credits" or "license" for more information.
| >>> import numarray as na
| >>> x = na.array([1.0, 2.0])
| >>> x
| Traceback (most recent call last):
| File "<stdin>", line 1, in ?
| File "/usr/lib/python2.2/site-packages/numarray/numarray.py", line 591, in __repr__
| MAX_LINE_WIDTH, PRECISION, SUPPRESS_SMALL, ', ', 1)
| File "/usr/lib/python2.2/site-packages/numarray/arrayprint.py", line 86, in array2string
| format, item_length = _floatFormat(data, precision, suppress_small)
| File "/usr/lib/python2.2/site-packages/numarray/arrayprint.py", line 140, in _floatFormat
| non_zero = numarray.abs(numarray.compress(numarray.not_equal(data, 0), data))
| File "/usr/lib/python2.2/site-packages/numarray/ufunc.py", line 474, in __call__
| cfunc, ufargs, scalar)
| File "/usr/lib/python2.2/site-packages/numarray/ufunc.py", line 312, in _doit
| apply(cfunc, ufargs)
| TypeError: 'PyCObject' object is not callable
| >>>
`----
If I print out the type of cfunc down in _doit, I get (the expected)
,----
| <type 'PyCObject'>
`----
Any ideas, probably some hints how to proceed?
Greetings,
Jochen
--
University of North Carolina phone: +1-919-962-4403
Department of Chemistry phone: +1-919-962-1579
Venable Hall CB#3290 (Kenan C148) fax: +1-919-843-6041
Chapel Hill, NC 27599, USA GnuPG key: 44BCCD8E
--=-=-=
Content-Type: text/x-patch; charset=iso-8859-1
Content-Disposition: attachment; filename=numarray.diff
Content-Transfer-Encoding: 8bit
? Lib/ChangeLog
? Lib/numinclude.py
Index: Include/numarray/ChangeLog
===================================================================
RCS file: /cvsroot/numpy/numarray/Include/numarray/ChangeLog,v
retrieving revision 1.1
diff -u -r1.1 ChangeLog
--- Include/numarray/ChangeLog 22 Apr 2002 20:33:16 -0000 1.1
+++ Include/numarray/ChangeLog 6 May 2002 22:32:43 -0000
@@ -1,8 +1,18 @@
+2002-05-06 Jochen Küpper <jochen AT unc DOT edu>
+
+ * numcomplex.h (NUM_CROUND): Use rint instead of round. The latter is
+ not available on all systems, namely Cygwin.
+
2002-04-10 Jochen Küpper <jochen AT unc DOT edu>
* ndarrayinfo.h: Change NDInfo->strides to NDInfo->stride for
consistency. Adopt all sources accordingly.
- * genapi.py (bodystring): Do not include emacs' Local Variables
- section into gnerated files.
+ * genapi.py (bodystring): Do not include emacs' Local Variables section
+ into gnerated files.
+
+ * Local Variables:
+ * mode: auto-fill
+ * fill-column: 79
+ * End:
Index: Include/numarray/numcomplex.h
===================================================================
RCS file: /cvsroot/numpy/numarray/Include/numarray/numcomplex.h,v
retrieving revision 1.5
diff -u -r1.5 numcomplex.h
--- Include/numarray/numcomplex.h 30 Apr 2002 17:29:43 -0000 1.5
+++ Include/numarray/numcomplex.h 6 May 2002 22:32:43 -0000
@@ -228,7 +228,7 @@
#define NUM_CCEIL(p, s) (s).r = ceil((p).r); (s).i = ceil((p).i);
#define NUM_CFABS(p, s) (s).r = fabs((p).r); (s).i = fabs((p).i);
-#define NUM_CROUND(p, s) (s).r = round((p).r); (s).i = round((p).i);
+#define NUM_CROUND(p, s) (s).r = rint((p).r); (s).i = rint((p).i);
#define NUM_CHYPOT(p, q, s) { Complex64 t; \
NUM_CSQR(p, s); NUM_CSQR(q, t); \
NUM_CADD(s, t, s); \
Index: Lib/codegenerator.py
===================================================================
RCS file: /cvsroot/numpy/numarray/Lib/codegenerator.py,v
retrieving revision 1.22
diff -u -r1.22 codegenerator.py
--- Lib/codegenerator.py 3 May 2002 19:14:06 -0000 1.22
+++ Lib/codegenerator.py 6 May 2002 22:32:44 -0000
@@ -1593,7 +1593,7 @@
["minimum", 2, 1, (function_td, "ufminimum"), generic_operator_sigs, opt_minmax_decl],
["fabs", 1, 1, (function_td, "fabs"), generic_mathfunction_sigs, ""],
-["around", 1, 1, (function_td, "round"), generic_mathfunction_sigs, ""],
+["around", 1, 1, (function_td, "rint"), generic_mathfunction_sigs, ""],
["hypot", 2, 1, (function_td, "hypot"), generic_mathfunction_sigs, ""],
# Complex ufuncs
Index: Src/_ufuncBoolmodule.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncBoolmodule.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncBoolmodule.c
--- Src/_ufuncBoolmodule.c 29 Apr 2002 21:39:50 -0000 1.8
+++ Src/_ufuncBoolmodule.c 6 May 2002 22:32:45 -0000
@@ -2365,7 +2365,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncFloat32module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncFloat32module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncFloat32module.c
--- Src/_ufuncFloat32module.c 29 Apr 2002 21:39:50 -0000 1.8
+++ Src/_ufuncFloat32module.c 6 May 2002 22:32:45 -0000
@@ -1773,7 +1773,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncFloat64module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncFloat64module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncFloat64module.c
--- Src/_ufuncFloat64module.c 29 Apr 2002 21:39:50 -0000 1.8
+++ Src/_ufuncFloat64module.c 6 May 2002 22:32:45 -0000
@@ -1773,7 +1773,7 @@
Float64 *tout = (Float64 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncInt16module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncInt16module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncInt16module.c
--- Src/_ufuncInt16module.c 29 Apr 2002 21:39:51 -0000 1.8
+++ Src/_ufuncInt16module.c 6 May 2002 22:32:45 -0000
@@ -2254,7 +2254,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncInt32module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncInt32module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncInt32module.c
--- Src/_ufuncInt32module.c 29 Apr 2002 21:39:51 -0000 1.8
+++ Src/_ufuncInt32module.c 6 May 2002 22:32:45 -0000
@@ -2254,7 +2254,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncInt8module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncInt8module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncInt8module.c
--- Src/_ufuncInt8module.c 29 Apr 2002 21:39:51 -0000 1.8
+++ Src/_ufuncInt8module.c 6 May 2002 22:32:45 -0000
@@ -2254,7 +2254,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncUInt16module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncUInt16module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncUInt16module.c
--- Src/_ufuncUInt16module.c 29 Apr 2002 21:39:51 -0000 1.8
+++ Src/_ufuncUInt16module.c 6 May 2002 22:32:45 -0000
@@ -2249,7 +2249,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
Index: Src/_ufuncUInt8module.c
===================================================================
RCS file: /cvsroot/numpy/numarray/Src/_ufuncUInt8module.c,v
retrieving revision 1.8
diff -u -r1.8 _ufuncUInt8module.c
--- Src/_ufuncUInt8module.c 29 Apr 2002 21:39:51 -0000 1.8
+++ Src/_ufuncUInt8module.c 6 May 2002 22:32:45 -0000
@@ -2249,7 +2249,7 @@
Float32 *tout = (Float32 *) buffers[1];
for (i=0; i<niter; i++, tin++, tout++) {
- *tout = round(*tin);
+ *tout = rint(*tin);
}
return 0;
}
--=-=-=
Content-Type: text/plain; charset=us-ascii
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Bug reporting: http://cygwin.com/bugs.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
--=-=-=--
- Raw text -