[Numpy-svn] r8402 - trunk/numpy/core/include/numpy

numpy-svn at scipy.org numpy-svn at scipy.org
Sun May 9 12:19:08 EDT 2010


Author: charris
Date: 2010-05-09 11:19:08 -0500 (Sun, 09 May 2010)
New Revision: 8402

Modified:
   trunk/numpy/core/include/numpy/ndarraytypes.h
Log:
STY: Some cleanups of ndarraytypes.h.

Modified: trunk/numpy/core/include/numpy/ndarraytypes.h
===================================================================
--- trunk/numpy/core/include/numpy/ndarraytypes.h	2010-05-09 15:45:43 UTC (rev 8401)
+++ trunk/numpy/core/include/numpy/ndarraytypes.h	2010-05-09 16:19:08 UTC (rev 8402)
@@ -4,6 +4,10 @@
 /* This is auto-generated by the installer */
 #include "numpyconfig.h"
 
+#include "npy_common.h"
+#include "npy_endian.h"
+#include "utils.h"
+
 #ifdef NPY_ENABLE_SEPARATE_COMPILATION
         #define NPY_NO_EXPORT NPY_VISIBILITY_HIDDEN
 #else
@@ -17,16 +21,16 @@
         #define NPY_ALLOW_THREADS 0
 #endif
 
-#include "npy_endian.h"
 
-#include "utils.h"
 
-/* There are several places in the code where an array of dimensions is
- * allocated statically.  This is the size of that static allocation.
+/*
+ * There are several places in the code where an array of dimensions
+ * is allocated statically.  This is the size of that static
+ * allocation.
  *
- * The array creation itself could have arbitrary dimensions but
- * all the places where static allocation is used would need to
- * be changed to dynamic (including inside of several structures)
+ * The array creation itself could have arbitrary dimensions but all
+ * the places where static allocation is used would need to be changed
+ * to dynamic (including inside of several structures)
  */
 
 #define NPY_MAXDIMS 32
@@ -36,24 +40,24 @@
 #define NPY_FAIL 0
 #define NPY_SUCCEED 1
 
-/* Binary compatibility version number.  This number is increased
-   whenever the C-API is changed such that binary compatibility is
-   broken, i.e. whenever a recompile of extension modules is
-   needed. */
+/*
+ * Binary compatibility version number.  This number is increased
+ * whenever the C-API is changed such that binary compatibility is
+ * broken, i.e. whenever a recompile of extension modules is needed.
+ */
 #define NPY_VERSION NPY_ABI_VERSION
 
-/* Minor API version.  This number is increased whenever a change is
-   made to the C-API -- whether it breaks binary compatibility or not.
-   Some changes, such as adding a function pointer to the end of the
-   function table, can be made without breaking binary compatibility.
-   In this case, only the NPY_FEATURE_VERSION (*not* NPY_VERSION)
-   would be increased.  Whenever binary compatibility is broken, both
-   NPY_VERSION and NPY_FEATURE_VERSION should be increased.
+/*
+ * Minor API version.  This number is increased whenever a change is
+ * made to the C-API -- whether it breaks binary compatibility or not.
+ * Some changes, such as adding a function pointer to the end of the
+ * function table, can be made without breaking binary compatibility.
+ * In this case, only the NPY_FEATURE_VERSION (*not* NPY_VERSION)
+ * would be increased.  Whenever binary compatibility is broken, both
+ * NPY_VERSION and NPY_FEATURE_VERSION should be increased.
  */
 #define NPY_FEATURE_VERSION NPY_API_VERSION
 
-#include "npy_common.h"
-
 enum NPY_TYPES {    NPY_BOOL=0,
                     NPY_BYTE, NPY_UBYTE,
                     NPY_SHORT, NPY_USHORT,
@@ -86,13 +90,16 @@
 /* How many floating point types are there */
 #define NPY_NUM_FLOATTYPE 3
 
-/* We need to match npy_intp to a signed integer of the same size as
-   a pointer variable. npy_uintp to the equivalent unsigned integer
-*/
+/*
+ * We need to match npy_intp to a signed integer of the same size as a
+ * pointer variable. npy_uintp to the equivalent unsigned integer
+ */
 
 
-/* These characters correspond to the array type and the
-   struct module */
+/*
+ * These characters correspond to the array type and the struct
+ * module
+ */
 
 /*  except 'p' -- signed integer for pointer type */
 
@@ -122,9 +129,12 @@
                         NPY_TIMEDELTALTR = 'm',
                         NPY_CHARLTR = 'c',
 
-                        /* No Descriptor, just a define -- this let's
-                         Python users specify an array of integers
-                         large enough to hold a pointer on the platform*/
+                        /*
+                         * No Descriptor, just a define -- this let's
+                         * Python users specify an array of integers
+                         * large enough to hold a pointer on the
+                         * platform
+                         */
                         NPY_INTPLTR = 'p',
                         NPY_UINTPLTR = 'P',
 
@@ -210,8 +220,10 @@
 #define NPY_STR_as "as"
 
 
-/* This is to typedef npy_intp to the appropriate pointer size for this
- * platform.  Py_intptr_t, Py_uintptr_t are defined in pyport.h. */
+/*
+ * This is to typedef npy_intp to the appropriate pointer size for
+ * this platform.  Py_intptr_t, Py_uintptr_t are defined in pyport.h.
+ */
 typedef Py_intptr_t npy_intp;
 typedef Py_uintptr_t npy_uintp;
 #define NPY_SIZEOF_INTP NPY_SIZEOF_PY_INTPTR_T
@@ -265,8 +277,10 @@
         #define NPY_INTP_FMT "Ld"
 #endif
 
-/* We can only use C99 formats for npy_int_p if it is the same as intp_t, hence
- * the condition on HAVE_UNITPTR_T */
+/*
+ * We can only use C99 formats for npy_int_p if it is the same as
+ * intp_t, hence the condition on HAVE_UNITPTR_T
+ */
 #if (NPY_USE_C99_FORMATS) == 1 \
         && (defined HAVE_UINTPTR_T) \
         && (defined HAVE_INTTYPES_H)
@@ -281,9 +295,10 @@
 #define NPY_STRINGIFY(x) #x
 #define NPY_TOSTRING(x) NPY_STRINGIFY(x)
 
-  /* Macros to define how array, and dimension/strides data is
-     allocated.
-  */
+  /*
+   * Macros to define how array, and dimension/strides data is
+   * allocated.
+   */
 
   /* Data buffer */
 #define PyDataMem_NEW(size) ((char *)malloc(size))
@@ -314,7 +329,7 @@
 /* forward declaration */
 struct _PyArray_Descr;
 
-  /* These must deal with unaligned and swapped data if necessary */
+/* These must deal with unaligned and swapped data if necessary */
 typedef PyObject * (PyArray_GetItemFunc) (void *, void *);
 typedef int (PyArray_SetItemFunc)(PyObject *, void *, void *);
 
@@ -325,9 +340,11 @@
 typedef npy_bool (PyArray_NonzeroFunc)(void *, void *);
 
 
-  /* These assume aligned and notswapped data -- a buffer will be
-      used before or contiguous data will be obtained
-  */
+/*
+ * These assume aligned and notswapped data -- a buffer will be used
+ * before or contiguous data will be obtained
+ */
+
 typedef int (PyArray_CompareFunc)(const void *, const void *, void *);
 typedef int (PyArray_ArgFunc)(void*, npy_intp, npy_intp*, void *);
 
@@ -337,8 +354,10 @@
 typedef void (PyArray_VectorUnaryFunc)(void *, void *, npy_intp, void *,
                                        void *);
 
-/* XXX the ignore argument should be removed next time the API version
-   is bumped. It used to be the separator. */
+/*
+ * XXX the ignore argument should be removed next time the API version
+ * is bumped. It used to be the separator.
+ */
 typedef int (PyArray_ScanFunc)(FILE *fp, void *dptr,
                                char *ignore, struct _PyArray_Descr *);
 typedef int (PyArray_FromStrFunc)(char *s, void *dptr, char **endptr,
@@ -370,65 +389,90 @@
 typedef struct {
         /* The next four functions *cannot* be NULL */
 
-        /* Functions to get and set items with standard
-           Python types -- not array scalars */
+        /*
+         * Functions to get and set items with standard Python types
+         * -- not array scalars
+         */
         PyArray_GetItemFunc *getitem;
         PyArray_SetItemFunc *setitem;
 
-        /* Copy and/or swap data.  Memory areas may not overlap */
-        /*  Use memmove first if they might */
+        /*
+         * Copy and/or swap data.  Memory areas may not overlap
+         * Use memmove first if they might
+         */
         PyArray_CopySwapNFunc *copyswapn;
         PyArray_CopySwapFunc *copyswap;
 
-        /* Function to compare items */
-        /* Can be NULL
+        /*
+         * Function to compare items
+         * Can be NULL
          */
         PyArray_CompareFunc *compare;
 
-        /* Function to select largest
-           Can be NULL
-        */
+        /*
+         * Function to select largest
+         * Can be NULL
+         */
         PyArray_ArgFunc *argmax;
 
-        /* Function to compute dot product */
-        /* Can be NULL */
+        /*
+         * Function to compute dot product
+         * Can be NULL
+         */
         PyArray_DotFunc *dotfunc;
 
-        /* Function to scan an ASCII file and
-           place a single value plus possible separator
-           Can be NULL
-        */
+        /*
+         * Function to scan an ASCII file and
+         * place a single value plus possible separator
+         * Can be NULL
+         */
         PyArray_ScanFunc *scanfunc;
 
-        /* Function to read a single value from a string */
-        /* and adjust the pointer; Can be NULL */
+        /*
+         * Function to read a single value from a string
+         * and adjust the pointer; Can be NULL
+         */
         PyArray_FromStrFunc *fromstr;
 
-        /* Function to determine if data is zero or not */
-        /* If NULL a default version is */
-        /* used at Registration time. */
+        /*
+         * Function to determine if data is zero or not
+         * If NULL a default version is
+         * used at Registration time.
+         */
         PyArray_NonzeroFunc *nonzero;
 
-        /* Used for arange. Can be NULL.*/
+        /*
+         * Used for arange.
+         * Can be NULL.
+         */
         PyArray_FillFunc *fill;
 
-        /* Function to fill arrays with scalar values
-         Can be NULL*/
+        /*
+         * Function to fill arrays with scalar values
+         * Can be NULL
+         */
         PyArray_FillWithScalarFunc *fillwithscalar;
 
-        /* Sorting functions; Can be NULL*/
+        /*
+         * Sorting functions
+         * Can be NULL
+         */
         PyArray_SortFunc *sort[NPY_NSORTS];
         PyArray_ArgSortFunc *argsort[NPY_NSORTS];
 
-        /* Dictionary of additional casting functions
-           PyArray_VectorUnaryFuncs
-           which can be populated to support casting
-           to other registered types. Can be NULL*/
+        /*
+         * Dictionary of additional casting functions
+         * PyArray_VectorUnaryFuncs
+         * which can be populated to support casting
+         * to other registered types. Can be NULL
+         */
         PyObject *castdict;
 
-        /* Functions useful for generalizing
-           the casting rules.  Can be NULL;
-        */
+        /*
+         * Functions useful for generalizing
+         * the casting rules.
+         * Can be NULL;
+         */
         PyArray_ScalarKindFunc *scalarkind;
         int **cancastscalarkindto;
         int *cancastto;
@@ -437,14 +481,19 @@
         PyArray_FastPutmaskFunc *fastputmask;
         PyArray_FastTakeFunc *fasttake;
 
-        /* A little room to grow --- should use generic function interface for most additions */
+        /*
+         * A little room to grow --- should use generic function
+         * interface for most additions
+         */
         void *pad1;
         void *pad2;
         void *pad3;
         void *pad4;
 
-        /* Functions to cast to all other standard types*/
-        /* Can have some NULL entries */
+        /*
+         * Functions to cast to all other standard types
+         * Can have some NULL entries
+         */
         PyArray_VectorUnaryFunc *cast[NPY_NTYPES];
 
 } PyArray_ArrFuncs;
@@ -467,8 +516,10 @@
 #define NPY_USE_SETITEM     0x40
 /* define NPY_IS_COMPLEX */
 
-/* These are inherited for global data-type if any data-types in the field
-   have them */
+/*
+ *These are inherited for global data-type if any data-types in the
+ * field have them
+ */
 #define NPY_FROM_FIELDS    (NPY_NEEDS_INIT | NPY_LIST_PICKLE |             \
                             NPY_ITEM_REFCOUNT | NPY_NEEDS_PYAPI)
 
@@ -484,33 +535,43 @@
 
 typedef struct _PyArray_Descr {
         PyObject_HEAD
-        PyTypeObject *typeobj;  /* the type object representing an
-                                   instance of this type -- should not
-                                   be two type_numbers with the same type
-                                   object. */
+        PyTypeObject *typeobj;  /*
+                                 * the type object representing an
+                                 * instance of this type -- should not
+                                 * be two type_numbers with the same type
+                                 * object.
+                                 */
         char kind;              /* kind for this type */
         char type;              /* unique-character representing this type */
-        char byteorder;         /* '>' (big), '<' (little), '|'
-                                   (not-applicable), or '=' (native). */
-        char unused;            
+        char byteorder;         /*
+                                 * '>' (big), '<' (little), '|'
+                                 * (not-applicable), or '=' (native).
+                                 */
+        char unused;
         int flags;              /* flag describing data type */
         int type_num;           /* number representing this type */
         int elsize;             /* element size for this type */
         int alignment;          /* alignment needed for this type */
         struct _arr_descr                                       \
-        *subarray;              /* Non-NULL if this type is
-                                   is an array (C-contiguous)
-                                   of some other type
-                                */
-        PyObject *fields;       /* The fields dictionary for this type */
-                                /* For statically defined descr this
-                                   is always Py_None */
+        *subarray;              /*
+                                 * Non-NULL if this type is
+                                 * is an array (C-contiguous)
+                                 * of some other type
+                                 */
+        PyObject *fields;       /* The fields dictionary for this type
+                                 * For statically defined descr this
+                                 * is always Py_None
+                                 */
 
-        PyObject *names;        /* An ordered tuple of field names or NULL
-                                   if no fields are defined */
+        PyObject *names;        /*
+                                 * An ordered tuple of field names or NULL
+                                 * if no fields are defined
+                                 */
 
-        PyArray_ArrFuncs *f;     /* a table of functions specific for each
-                                    basic data descriptor */
+        PyArray_ArrFuncs *f;     /*
+                                  * a table of functions specific for each
+                                  * basic data descriptor
+                                  */
 
         PyObject *metadata;     /* Metadata about this dtype */
 } PyArray_Descr;
@@ -521,28 +582,37 @@
 } PyArray_ArrayDescr;
 
 /*
-  The main array object structure. It is recommended to use the macros
-  defined below (PyArray_DATA and friends) access fields here, instead
-  of the members themselves.
+ * The main array object structure. It is recommended to use the macros
+ * defined below (PyArray_DATA and friends) access fields here, instead
+ * of the members themselves.
  */
 
 typedef struct PyArrayObject {
         PyObject_HEAD
         char *data;             /* pointer to raw data buffer */
         int nd;                 /* number of dimensions, also called ndim */
-        npy_intp *dimensions;       /* size in each dimension */
-        npy_intp *strides;          /* bytes to jump to get to the
-                                   next element in each dimension */
-        PyObject *base;         /* This object should be decref'd
-                                   upon deletion of array */
-                                /* For views it points to the original array */
-                                /* For creation from buffer object it points
-                                   to an object that shold be decref'd on
-                                   deletion */
-                                /* For UPDATEIFCOPY flag this is an array
-                                   to-be-updated upon deletion of this one */
+        npy_intp *dimensions;   /* size in each dimension */
+        npy_intp *strides;      /*
+                                 * bytes to jump to get to the
+                                 * next element in each dimension
+                                 */
+        PyObject *base;         /*
+                                 * This object should be decref'd upon
+                                 * deletion of array
+                                 *
+                                 * For views it points to the original
+                                 * array
+                                 *
+                                 * For creation from buffer object it
+                                 * points to an object that shold be
+                                 * decref'd on deletion
+                                 *
+                                 * For UPDATEIFCOPY flag this is an
+                                 * array to-be-updated upon deletion
+                                 * of this one
+                                 */
         PyArray_Descr *descr;   /* Pointer to type structure */
-        int flags;              /* Flags describing array -- see below*/
+        int flags;              /* Flags describing array -- see below */
         PyObject *weakreflist;  /* For weakreferences */
 } PyArrayObject;
 
@@ -571,7 +641,10 @@
 typedef struct {
         NPY_DATETIMEUNIT base;
         int num;
-        int den;      /* Converted to 1 on input for now -- an input-only mechanism */
+        int den;      /*
+                       * Converted to 1 on input for now -- an
+                       * input-only mechanism
+                       */
         int events;
 } PyArray_DatetimeMetaData;
 
@@ -600,57 +673,75 @@
 
 typedef int (PyArray_FinalizeFunc)(PyArrayObject *, PyObject *);
 
-/* Means c-style contiguous (last index varies the fastest). The
-   data elements right after each other. */
+/*
+ * Means c-style contiguous (last index varies the fastest). The data
+ * elements right after each other.
+ */
 #define NPY_CONTIGUOUS    0x0001
-/* set if array is a contiguous Fortran array: the first index
-   varies the fastest in memory (strides array is reverse of
-   C-contiguous array)*/
+
+/*
+ * set if array is a contiguous Fortran array: the first index varies
+ * the fastest in memory (strides array is reverse of C-contiguous
+ * array)
+ */
 #define NPY_FORTRAN       0x0002
 
 #define NPY_C_CONTIGUOUS NPY_CONTIGUOUS
 #define NPY_F_CONTIGUOUS NPY_FORTRAN
 
 /*
-  Note: all 0-d arrays are CONTIGUOUS and FORTRAN contiguous. If a
-   1-d array is CONTIGUOUS it is also FORTRAN contiguous
-*/
+ * Note: all 0-d arrays are CONTIGUOUS and FORTRAN contiguous. If a
+ * 1-d array is CONTIGUOUS it is also FORTRAN contiguous
+ */
 
-/* If set, the array owns the data: it will be free'd when the array
-   is deleted. */
+/*
+ * If set, the array owns the data: it will be free'd when the array
+ * is deleted.
+ */
 #define NPY_OWNDATA       0x0004
 
-/* An array never has the next four set; they're only used as parameter
-   flags to the the various FromAny functions */
+/*
+ * An array never has the next four set; they're only used as parameter
+ * flags to the the various FromAny functions
+ */
 
 /* Cause a cast to occur regardless of whether or not it is safe. */
 #define NPY_FORCECAST     0x0010
 
-/* Always copy the array. Returned arrays are always CONTIGUOUS, ALIGNED,
-   and WRITEABLE. */
+/*
+ * Always copy the array. Returned arrays are always CONTIGUOUS,
+ * ALIGNED, and WRITEABLE.
+ */
 #define NPY_ENSURECOPY    0x0020
 
 /* Make sure the returned array is a base-class ndarray */
 #define NPY_ENSUREARRAY   0x0040
 
-/* Make sure that the strides are in units of the element size
-   Needed for some operations with record-arrays.
-*/
+/*
+ * Make sure that the strides are in units of the element size Needed
+ * for some operations with record-arrays.
+ */
 #define NPY_ELEMENTSTRIDES 0x0080
 
-/* Array data is aligned on the appropiate memory address for the
-   type stored according to how the compiler would align things
-   (e.g., an array of integers (4 bytes each) starts on
-   a memory address that's a multiple of 4) */
+/*
+ * Array data is aligned on the appropiate memory address for the type
+ * stored according to how the compiler would align things (e.g., an
+ * array of integers (4 bytes each) starts on a memory address that's
+ * a multiple of 4)
+ */
 #define NPY_ALIGNED       0x0100
+
 /* Array data has the native endianness */
 #define NPY_NOTSWAPPED    0x0200
+
 /* Array data is writeable */
 #define NPY_WRITEABLE     0x0400
-/* If this flag is set, then base contains a pointer to an array of
-   the same size that should be updated with the current contents of
-   this array when this array is deallocated
-*/
+
+/*
+ * If this flag is set, then base contains a pointer to an array of
+ * the same size that should be updated with the current contents of
+ * this array when this array is deallocated
+ */
 #define NPY_UPDATEIFCOPY  0x1000
 
 /* This flag is for the array interface */
@@ -674,9 +765,10 @@
 #define NPY_UPDATE_ALL (NPY_CONTIGUOUS | NPY_FORTRAN | NPY_ALIGNED)
 
 
-/* Size of internal buffers used for alignment */
-/* Make BUFSIZE a multiple of sizeof(cdouble) -- ususally 16 */
-/* So that ufunc buffers are aligned */
+/*
+ * Size of internal buffers used for alignment Make BUFSIZE a multiple
+ * of sizeof(cdouble) -- ususally 16 so that ufunc buffers are aligned
+ */
 #define NPY_MIN_BUFSIZE ((int)sizeof(cdouble))
 #define NPY_MAX_BUFSIZE (((int)sizeof(cdouble))*1000000)
 #define NPY_BUFSIZE 10000
@@ -696,7 +788,8 @@
 #define PyArray_CNE(p,q) (((p).real!=(q).real) || ((p).imag != (q).imag))
 
 /*
- * C API:  consists of Macros and functions.  The MACROS are defined here.
+ * C API: consists of Macros and functions.  The MACROS are defined
+ * here.
  */
 
 
@@ -746,8 +839,10 @@
 /* FWD declaration */
 typedef struct PyArrayIterObject_tag PyArrayIterObject;
 
-/* type of the function which translates a set of coordinates to a pointer to
- * the data */
+/*
+ * type of the function which translates a set of coordinates to a
+ * pointer to the data
+ */
 typedef char* (*npy_iter_get_dataptr_t)(PyArrayIterObject* iter, npy_intp*);
 
 struct PyArrayIterObject_tag {
@@ -898,9 +993,9 @@
 
 
 /*
-   Any object passed to PyArray_Broadcast must be binary compatible with
-   this structure.
-*/
+ * Any object passed to PyArray_Broadcast must be binary compatible
+ * with this structure.
+ */
 
 typedef struct {
         PyObject_HEAD
@@ -958,8 +1053,10 @@
 
 typedef struct {
         PyObject_HEAD
-        /* Multi-iterator portion --- needs to be present in this order to
-           work with PyArray_Broadcast */
+        /*
+         * Multi-iterator portion --- needs to be present in this
+         * order to work with PyArray_Broadcast
+         */
 
         int                   numiter;                 /* number of index-array
                                                           iterators */
@@ -976,13 +1073,15 @@
         /* flat iterator for subspace (when numiter < nd) */
         PyArrayIterObject     *subspace;
 
-        /* if subspace iteration, then this is the array of
-           axes in the underlying array represented by the
-           index objects */
+        /*
+         * if subspace iteration, then this is the array of axes in
+         * the underlying array represented by the index objects
+         */
         int                   iteraxes[NPY_MAXDIMS];
-        /* if subspace iteration, the these are the coordinates
-           to the start of the subspace.
-        */
+        /*
+         * if subspace iteration, the these are the coordinates to the
+         * start of the subspace.
+         */
         npy_intp              bscoord[NPY_MAXDIMS];
 
         PyObject              *indexobj;               /* creating obj */
@@ -1029,11 +1128,15 @@
     /* Dimensions is the dimension of the array */
     npy_intp dimensions[NPY_MAXDIMS];
 
-    /* Neighborhood points coordinates are computed relatively to the point pointed
-     * by _internal_iter */
+    /*
+     * Neighborhood points coordinates are computed relatively to the
+     * point pointed by _internal_iter
+     */
     PyArrayIterObject* _internal_iter;
-    /* To keep a reference to the representation of the constant value for
-     * constant padding */
+    /*
+     * To keep a reference to the representation of the constant value
+     * for constant padding
+     */
     char* constant;
 
     int mode;
@@ -1053,19 +1156,22 @@
 PyArrayNeighborhoodIter_Next2D(PyArrayNeighborhoodIterObject* iter);
 #endif
 
-/* Include inline implementations - functions defined there are not considered
- * public API */
+/*
+ * Include inline implementations - functions defined there are not
+ * considered public API
+ */
 #define _NPY_INCLUDE_NEIGHBORHOOD_IMP
 #include "_neighborhood_iterator_imp.h"
 #undef _NPY_INCLUDE_NEIGHBORHOOD_IMP
 
-/* The default array type
- */
+/* The default array type */
 #define NPY_DEFAULT_TYPE NPY_DOUBLE
 #define PyArray_DEFAULT NPY_DEFAULT_TYPE
-/* All sorts of useful ways to look into a PyArrayObject.
-   These are the recommended over casting to PyArrayObject and accessing
-   the members directly.
+
+/*
+ * All sorts of useful ways to look into a PyArrayObject.  These are
+ * the recommended over casting to PyArrayObject and accessing the
+ * members directly.
  */
 
 #define PyArray_NDIM(obj) (((PyArrayObject *)(obj))->nd)
@@ -1184,10 +1290,10 @@
 #define PyArray_ISOBJECT(obj) PyTypeNum_ISOBJECT(PyArray_TYPE(obj))
 #define PyArray_HASFIELDS(obj) PyDataType_HASFIELDS(PyArray_DESCR(obj))
 
-    /* FIXME: This should check for a flag on the data-type
-       that states whether or not it is variable length.
-       Because the ISFLEXIBLE check is hard-coded to the
-       built-in data-types.
+    /*
+     * FIXME: This should check for a flag on the data-type that
+     * states whether or not it is variable length.  Because the
+     * ISFLEXIBLE check is hard-coded to the built-in data-types.
      */
 #define PyArray_ISVARIABLE(obj) PyTypeNum_ISFLEXIBLE(PyArray_TYPE(obj))
 
@@ -1228,26 +1334,49 @@
 #define PyDataType_ISBYTESWAPPED(d) (!PyDataType_ISNOTSWAPPED(d))
 
 
-/* This is the form of the struct that's returned pointed by the
-   PyCObject attribute of an array __array_struct__. See
-   http://numpy.scipy.org/array_interface.shtml for the full
-   documentation. */
+/*
+ * This is the form of the struct that's returned pointed by the
+ * PyCObject attribute of an array __array_struct__. See
+ * http://numpy.scipy.org/array_interface.shtml for the full
+ * documentation.
+ */
 typedef struct {
-    int two;              /* contains the integer 2 as a sanity check */
+    int two;              /*
+                           * contains the integer 2 as a sanity
+                           * check
+                           */
+
     int nd;               /* number of dimensions */
-    char typekind;        /* kind in array --- character code of typestr */
+
+    char typekind;        /*
+                           * kind in array --- character code of
+                           * typestr
+                           */
+
     int itemsize;         /* size of each element */
-    int flags;            /* how should be data interpreted. Valid
-                             flags are CONTIGUOUS (1), FORTRAN (2),
-                             ALIGNED (0x100), NOTSWAPPED (0x200), and
-                             WRITEABLE (0x400).
-                             ARR_HAS_DESCR (0x800) states that arrdescr
-                                field is present in structure */
-    npy_intp *shape;          /* A length-nd array of shape information */
-    npy_intp *strides;        /* A length-nd array of stride information */
+
+    int flags;            /*
+                           * how should be data interpreted. Valid
+                           * flags are CONTIGUOUS (1), FORTRAN (2),
+                           * ALIGNED (0x100), NOTSWAPPED (0x200), and
+                           * WRITEABLE (0x400).  ARR_HAS_DESCR (0x800)
+                           * states that arrdescr field is present in
+                           * structure
+                           */
+
+    npy_intp *shape;       /*
+                            * A length-nd array of shape
+                            * information
+                            */
+
+    npy_intp *strides;    /* A length-nd array of stride information */
+
     void *data;           /* A pointer to the first element of the array */
-    PyObject *descr;      /* A list of fields or NULL (ignored if flags
-                                does not have ARR_HAS_DESCR flag set) */
+
+    PyObject *descr;      /*
+                           * A list of fields or NULL (ignored if flags
+                           * does not have ARR_HAS_DESCR flag set)
+                           */
 } PyArrayInterface;
 
 #endif /* NPY_ARRAYTYPES_H */




More information about the Numpy-svn mailing list