Directional cluster tree.
Definition: dcluster.h:40
pdcluster rc
Row cluster.
Definition: dblock.h:48
uint cd
Column direction.
Definition: dblock.h:55
real wave_k
Wave number.
Definition: dblock.h:96
real eta2
Parabolic admissibility parameter.
Definition: dblock.h:93
uint getdepth_dblock(pcdblock b)
Compute the depth of a directional block tree.
pdblock build_dblock(pdcluster rc, pdcluster cc, uint l, bool(*admissible)(pdcluster rc, pdcluster cc, uint l, uint *rd, uint *cd, void *data), void *data)
Build a directional block tree.
unsigned uint
Unsigned integer type.
Definition: settings.h:70
pdcluster cc
Column cluster.
Definition: dblock.h:50
real eta1
Angular admissibility parameter.
Definition: dblock.h:84
diradmdata * pdiradmdata
Pointer to diradmdata.
Definition: dblock.h:30
pleveldir remove_unused_direction(pdblock b, pdcluster t, pleveldir lold)
Remove unused directions and set up new leveldir object.
size_t getsize_dblock(pcdblock b)
Compute the storage size of a directional block tree.
uint desc
Number of descendants, including this block.
Definition: dblock.h:73
bool standard_admissibility(pdcluster rc, pdcluster cc, uint l, uint *rd, uint *cd, void *data)
Standard admissibility condition.
Directional block tree.
Definition: dblock.h:45
preal xy
Auxiliary vector, used internally.
Definition: dblock.h:99
const dblock * pcdblock
Pointer to constant dblock.
Definition: dblock.h:24
void cairodraw_dblock(cairo_t *cr, pcdblock b, int levels)
Draw a directional block tree.
pdblock new_dblock(pdcluster rc, pdcluster cc, uint rd, uint cd, uint rsons, uint csons)
Create a new directional block.
uint rsons
Number of row sons.
Definition: dblock.h:61
uint csons
Number of column sons.
Definition: dblock.h:64
uint rd
Row direction.
Definition: dblock.h:53
bool parabolic_admissibility(pdcluster rc, pdcluster cc, uint l, uint *rd, uint *cd, void *data)
Parabolic admissibility condition.
#define HEADER_PREFIX
Prefix for function declarations.
Definition: settings.h:43
double real
real floating point type.
Definition: settings.h:97
const diradmdata * pcdiradmdata
Pointer to constant diradmdata.
Definition: dblock.h:33
pdblock * enumerate_dblock(pdblock b)
Enumerates a directional block tree.
pcleveldir ld
Sets of directions for all levels of the cluster tree.
Definition: dblock.h:102
bool(* admissible)(pcluster rc, pcluster cc, void *data)
Callback function for an admissibility condition.
Definition: block.h:76
real * preal
Pointer to real array.
Definition: settings.h:145
Data for directional admissibility condition.
Definition: dblock.h:77
real getmaxeta_dblock(pcdblock b)
Compute the maximum of and for all admissible blocks.
Families of directions for all levels of the cluster tree.
Definition: dcluster.h:92
pdblock * son
Pointers to sons.
Definition: dblock.h:70
uint getactives_dblock()
Obtain the number of currently active directional blocks.
void del_dblock(pdblock b)
Delete a directional block tree.
bool adm
Admissibility flag.
Definition: dblock.h:58
void update_dblock(pdblock b)
Update a directional block.
dblock * pdblock
Pointer to dblock.
Definition: dblock.h:21