4 /* enable check function for access outside array data
5 * this requres darrayCheckPr to be called before each access
6 * when disabled, the darrayCheckPr call is not compiled at all
10 // n-dimensional arrays of double type elements
14 struct double_array *next;
19 unsigned long size; /* size in bytes */
21 unsigned int inuse; /* set to a magick, if in use */
24 typedef struct double_array darray_t;
26 #define darrayGetNumberOfDimensions(array) (array->ndimensions)
27 #define darrayGetDimensions(array) (array->dimension)
28 #define darrayGetPr(array) (array->data)
29 unsigned long darrayGetSize(const darray_t *array);
31 darray_t *_darrayCreate(int ndimensions, int *dimension, const char *file, int line);
32 #define darrayCreate(n, d) _darrayCreate(n, d, __FILE__, __LINE__)
33 void darrayDestroy(darray_t *array);
34 void darrayMove(darray_t *src, darray_t *dst);
35 darray_t *darrayClone(darray_t *array);
36 void darrayInfo(const darray_t *array);
37 int write_darray(const darray_t *array, const char *filename);
38 darray_t *read_darray(const char *filename);
39 int compare_darray(const darray_t *first, const darray_t *second, double threshold);
40 int compare_darray_file(const darray_t *first, const char *file, double threshold);
41 void darrayDone(void);
42 void darrayCheckList(void);
45 void darrayCheckPr(const darray_t *array, const double *ptr, int num);
47 #define darrayCheckPr(array, ptr, num)