25#define Memindex struct _Memindex *
37#define mem_data(m,i) ((m)->b[i])
44#define mem_data(m,i,j) ((m)->b[i][j])
52#define mem_data(m,i,j,k) ((m)->b[i][j][k])
71 for (
int i = 0;
i < len;
i++)
74 for (
int j = 0;
j < len;
j++)
89#define mymap(len) mmap (NULL, len*sizeof (char *), PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
133 char **
const start =
b + (
i/512)*512;
134 for (
char **
j = start;
j < start +
min(len, 512);
j++)
138 perror (
"virtual.h: madvise: ");
define m((k)==0 &&(l)==0 &&(m)==0) macro2 foreach_point(double _x=0.
define sysmalloc malloc define syscalloc calloc define sysrealloc realloc define sysfree free define systrdup strdup define line calloc(n, s) @ define prealloc(p
*cs[i, 0, 0] a *[i -1, 0, 0] j
macro
We also redefine the "per field" (inner) traversal.
#define mem_allocated(m, i, j)
The mem_data() macros return the data stored at a specific (multidimensional) index.
define n sizeof(Cell))) @define fine(a
struct _Memindex * mem_new(int len)
The mem_new() function returns a new (empty) Memindex.
macro foreach_mem(struct _Memindex *index, int len, int _i)
The foreach_mem() macro traverses every _i allocated elements of array _m taking into account a perio...
void mem_free(struct _Memindex *m, int i, int j, int len, void *b)
#define mymap(len)
The mem_assign() function assigns a (pointer) value to a given index.
static bool mem_free1d(char **const b, const int i, int len)
The mem_free() function frees a given index.
void mem_assign(struct _Memindex *m, int i, int j, int len, void *b)
#define mem_data(m, i, j)
void mem_destroy(struct _Memindex *m, int len)
The mem_destroy() function frees all the memory allocated by a given Memindex.