Defining a subset
Subsets are defined through the data type QDP_Subset
| Syntax | QDP_Subset * QDP_create_subset(int (*func)(int x[], void *args), void *args,
int argsize, int n);
| | Meaning | Creates an array of n subsets based on func.
| | Example | QDP_Subset ts[nt];
ts = QDP_create_subset(timeslice, NULL, 0, nt);
where timeslice(x, NULL) returns x[3]
|
|
The extra arguments args are passed directly to the function and saved
in case the subset function is needed again when doing shifts involving the
subset. Therefore the function should not depend on any other global
parameters that may change later in the program.
It is permissible to call QDP_create_subset with n = 1.
In this case the function must return zero if the site is in the
subset and nonzero if not. (Note, this is opposite the true,
false convention in C).
Destroying subsets
| Syntax | void QDP_destroy_subset(QDP_subset s[]);
| | Meaning | Destroys all subsets created with s.
| | Example | QDP_destroy_subset(ts);
|
|
This procedure frees all memory associated with the subset object s.
The QDP_subset * value s should be the object
returned by QDP_create_subset. All subsets in the array
s are destroyed.
Getting the size of a subset
| Syntax | int QDP_subset_len(QDP_subset s);
| | Meaning | Returns the number of sites in a subset.
|
|