/usr/include/python2.7/pysparse/spmatrix.h is in python-sparse 1.1.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | #ifndef SPMATRIX_H
#define SPMATRIX_H
#include "ll_mat.h"
#include "csr_mat.h"
#include "sss_mat.h"
#include "spmatrix_api.h"
/*
* Macro definitions
*/
/** SPMATRIX_PARSE_ARGS_ARR_ARR
*
* Macro for parsing arguments for matvec and precon type operations
*/
#define SPMATRIX_PARSE_ARGS_ARR_ARR(args, arg1, arg2, n1, n2) \
if (!PyArg_ParseTuple((args), "O!O!", &PyArray_Type, &(arg1), &PyArray_Type, &(arg2))) \
return NULL; \
\
if ((arg1)->nd != 1 || \
(arg1)->descr->type_num != PyArray_DOUBLE || \
(arg1)->dimensions[0] != (n1) || \
!((arg1)->flags & CONTIGUOUS)) { \
PyErr_SetString(PyExc_ValueError, "arg 1 must be a contiguous 1-dimensional double array of appropriate size."); \
return NULL; \
} \
\
if ((arg2)->nd != 1 || \
(arg2)->descr->type_num != PyArray_DOUBLE || \
(arg2)->dimensions[0] != (n2) || \
!((arg2)->flags & CONTIGUOUS)) { \
PyErr_SetString(PyExc_ValueError, "arg 2 must be a contiguous 1-dimensional double array of appropriate size."); \
return NULL; \
}
#define SPMATRIX_PARSE_ARGS_ARR_ARR_STRIDE(args, arg1, arg2, n1, n2) \
if (!PyArg_ParseTuple((args), "O!O!", &PyArray_Type, &(arg1), &PyArray_Type, &(arg2))) \
return NULL; \
\
if ((arg1)->nd != 1 || \
(arg1)->descr->type_num != PyArray_DOUBLE || \
(arg1)->dimensions[0] != (n1)) { \
PyErr_SetString(PyExc_ValueError, "arg 1 must be a 1-dimensional double array of appropriate size."); \
return NULL; \
} \
\
if ((arg2)->nd != 1 || \
(arg2)->descr->type_num != PyArray_DOUBLE || \
(arg2)->dimensions[0] != (n2)) { \
PyErr_SetString(PyExc_ValueError, "arg 2 must be a 1-dimensional double array of appropriate size."); \
return NULL; \
}
/** SPMATRIX_CHECK_ARR_DIM_SIZE
*
* Macro for checking the type and size of vector arguments
*/
#define SPMATRIX_CHECK_ARR_DIM_SIZE(arr, dim, size) \
if ((arr)->nd != (dim) || \
(arr)->descr->type_num != PyArray_DOUBLE || \
(arr)->dimensions[0] != (size) || \
!((arr)->flags & CONTIGUOUS)) { \
PyErr_SetString(PyExc_ValueError, "argument must be a contiguous 1-dimensional double array of appropriate size."); \
return NULL; \
}
#ifdef SPMATRIX_MODULE
extern PyObject *SpMatrix_ErrorObject;
#endif
#endif
|