6# include <gsl/gsl_rng.h>
11 long unsigned *event_counter);
17int PopNode_mix(
void * vchild,
int mix_i,
void * vintrogressor,
26void PopNode_shiftPopNodePtrs(
PopNode *self,
size_t dp,
int sign);
28#define NODETYPE PopNode
Gene * PopNode_coalesce(PopNode *self, gsl_rng *rng, long unsigned *event_counter)
Coalesce gene tree within population tree.
Definition popnode.c:499
PopNode * PopNode_dup(PopNode *old_root, PtrPtrMap *ppm)
Duplicate a network of nodes, returning a pointer to the root of the duplicate network.
Definition popnode.c:734
void PopNode_newSample(PopNode *self, unsigned ndx)
Allocates a new Gene and puts it into the array within PopNode.
Definition popnode.c:398
int PopNode_feasible(const PopNode *self, Bounds bnd, int verbose)
Return 1 if parameters satisfy inequality constraints, or 0 otherwise.
Definition popnode.c:655
int PopNode_addChild(void *vparent, void *vchild)
Connect parent and child.
Definition popnode.c:340
int PopNode_mix(void *vchild, int mix_i, void *vintrogressor, void *vnative, ParStore *ps)
Connect a child PopNode to two parents.
Definition popnode.c:429
void PopNode_unvisit(PopNode *self)
Set all "visited" flags to false.
Definition popnode.c:295
void * PopNode_root(void *vself)
Find root of population network, starting from given node.
Definition popnode.c:149
void PopNode_print(void *vroot, FILE *fp, int indent)
Print a network of PopNodes.
Definition popnode.c:212
void * PopNode_new(int twoN_i, int start_i, ParStore *ps, const char *label)
PopNode constructor.
Definition popnode.c:304
void PopNode_free(PopNode *self)
Free node and descendants.
Definition popnode.c:631
int PopNode_isClear(const PopNode *self)
Return 1 if PopNode tree is empty of samples.
Definition popnode.c:198
void PopNode_clear(PopNode *self)
Remove all references to samples from tree of populations.
Definition popnode.c:184