diff options
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/linalg/python_xerbla.c | 36 | ||||
-rw-r--r-- | numpy/linalg/pythonxerbla.c | 33 | ||||
-rw-r--r-- | numpy/linalg/setup.py | 4 |
3 files changed, 38 insertions, 35 deletions
diff --git a/numpy/linalg/python_xerbla.c b/numpy/linalg/python_xerbla.c new file mode 100644 index 000000000..ed0cac9b5 --- /dev/null +++ b/numpy/linalg/python_xerbla.c @@ -0,0 +1,36 @@ +#include "Python.h" +#include "f2c.h" + +/* + From the original manpage: + -------------------------- + XERBLA is an error handler for the LAPACK routines. + It is called by an LAPACK routine if an input parameter has an invalid value. + A message is printed and execution stops. + + Instead of printing a message and stopping the execution, a + ValueError is raised with the message. + + Parameters: + ----------- + srname: Subroutine name to use in error message, maximum six characters. + Spaces at the end are skipped. + info: Number of the invalid parameter. +*/ + +int xerbla_(char *srname, integer *info) +{ + const char* format = "On entry to %.*s" \ + " parameter number %d had an illegal value"; + char buf[strlen(format) + 6 + 4]; /* 6 for name, 4 for param. num. */ + + int len = 0; /* length of subroutine name*/ + while( len<6 && srname[len]!='\0' ) + len++; + while( len && srname[len-1]==' ' ) + len--; + + snprintf(buf, sizeof(buf), format, len, srname, *info); + PyErr_SetString(PyExc_ValueError, buf); + return 0; +} diff --git a/numpy/linalg/pythonxerbla.c b/numpy/linalg/pythonxerbla.c deleted file mode 100644 index 2473670dc..000000000 --- a/numpy/linalg/pythonxerbla.c +++ /dev/null @@ -1,33 +0,0 @@ -#include "Python.h" -#include "f2c.h" - -/* - From the original manpage: - XERBLA is an error handler for the LAPACK routines. - It is called by an LAPACK routine if an input parameter has an invalid value. - A message is printed and execution stops. - - Instead of printing a message and stopping the execution, a - ValueError is raised with the message. - - Parameters: - srname: Subroutine name to use in error message, maximum six characters. - Spaces at the end are skipped. - info: Number of the invalid parameter. -*/ - -int xerbla_(char *srname, integer *info) -{ - char format[] = "On entry to %.*s" \ - " parameter number %d had an illegal value"; - char buf[70]; /* 6 for name, 4 for param. num. */ - - int len = 0; /* length of subroutine name*/ - while( len<6 && srname[len]!='\0' ) - len++; - while( len && srname[len-1]==' ' ) - len--; - snprintf(buf, sizeof(buf), format, len, srname, *info); - PyErr_SetString(PyExc_ValueError, buf); - return 0; -} diff --git a/numpy/linalg/setup.py b/numpy/linalg/setup.py index 5a385777d..fff4ca980 100644 --- a/numpy/linalg/setup.py +++ b/numpy/linalg/setup.py @@ -16,14 +16,14 @@ def configuration(parent_package='',top_path=None): return ext.depends[:-1] else: if sys.platform=='win32': - print "### Warning: pythonxerbla.c is disabled ###" + print "### Warning: python_xerbla.c is disabled ###" return ext.depends[:1] return ext.depends[:2] config.add_extension('lapack_lite', sources = [get_lapack_lite_sources], depends= ['lapack_litemodule.c', - 'pythonxerbla.c', + 'python_xerbla.c', 'zlapack_lite.c', 'dlapack_lite.c', 'blas_lite.c', 'dlamch.c', 'f2c_lite.c','f2c.h'], |