Alternaria
fit cylinders and ellipsoids to fungus
|
#include <alternaria_moves.h>
Public Member Functions | |
Apical_hypha_split_merge_lateral_move (const char *split_name, const char *merge_name, double split_prob=1.0, double merge_prob=1.0) throw (jwscxx::base::Arg_error) | |
Constructs an Apical_hypha_split_merge_lateral_move. | |
bool | run_1 (Sampler_move_parameters *params) throw (jwscxx::base::Exception) |
Runs the split jump move and either accepts or rejects. | |
bool | run_2 (Sampler_move_parameters *params) throw (jwscxx::base::Exception) |
Runs the merge jump move and either accepts or rejects. | |
Static Protected Member Functions | |
static void | propose_1st_split (Apical_hypha **proposal_out, double *log_prob_out, const Apical_hypha *hypha) throw (jwscxx::base::Arg_error) |
Creates the first split proposal. | |
static void | propose_2nd_split (Lateral_hypha **proposal_out, double *log_prob_out, const Apical_hypha *split_1, const Lateral_hypha_density *density) |
Creates the second split proposal. | |
static void | propose_merge (Apical_hypha **proposal_out, double *log_prob_out, const Structure *parent, const Apical_hypha *hypha_1, const Lateral_hypha *hypha_2) throw (jwscxx::base::Arg_error) |
Creates the merge proposal. |
MCMC Sampler move that stochastically proposes splitting or merging an Apical_hypha with one of its Apical_hypha::laterals in an Alternaria_model.
Definition at line 420 of file alternaria_moves.h.
Apical_hypha_split_merge_lateral_move::Apical_hypha_split_merge_lateral_move | ( | const char * | split_name, |
const char * | merge_name, | ||
double | split_prob = 1.0 , |
||
double | merge_prob = 1.0 |
||
) | throw (jwscxx::base::Arg_error) [inline] |
Constructs an Apical_hypha_split_merge_lateral_move.
Definition at line 426 of file alternaria_moves.h.
bool Apical_hypha_split_merge_lateral_move::run_1 | ( | Sampler_move_parameters * | params | ) | throw (jwscxx::base::Exception) [virtual] |
Runs the split jump move and either accepts or rejects.
params | Parameters for the move. |
Implements Sampler_jump_move.
Definition at line 2390 of file alternaria_moves.cpp.
bool Apical_hypha_split_merge_lateral_move::run_2 | ( | Sampler_move_parameters * | params | ) | throw (jwscxx::base::Exception) [virtual] |
Runs the merge jump move and either accepts or rejects.
params | Parameters for the move. |
Implements Sampler_jump_move.
Definition at line 2494 of file alternaria_moves.cpp.
void Apical_hypha_split_merge_lateral_move::propose_1st_split | ( | Apical_hypha ** | proposal_out, |
double * | log_prob_out, | ||
const Apical_hypha * | hypha | ||
) | throw (jwscxx::base::Arg_error) [static, protected] |
Creates the first split proposal.
proposal_out | Result parameter. The first split hypha proposal. |
log_prob_out | Result parameter. The log probability of *proposal_out. |
hypha | Structure to split. |
Definition at line 2599 of file alternaria_moves.cpp.
void Apical_hypha_split_merge_lateral_move::propose_2nd_split | ( | Lateral_hypha ** | proposal_out, |
double * | log_prob_out, | ||
const Apical_hypha * | split_1, | ||
const Lateral_hypha_density * | density | ||
) | [static, protected] |
Creates the second split proposal.
proposal_out | Result parameter. The second split hypha proposal. |
log_prob_out | Result parameter. The log probability of *proposal_out. |
split_1 | First split hypha proposal. |
Definition at line 2726 of file alternaria_moves.cpp.
void Apical_hypha_split_merge_lateral_move::propose_merge | ( | Apical_hypha ** | proposal_out, |
double * | log_prob_out, | ||
const Structure * | parent, | ||
const Apical_hypha * | hypha_1, | ||
const Lateral_hypha * | hypha_2 | ||
) | throw (jwscxx::base::Arg_error) [static, protected] |
Creates the merge proposal.
proposal_out | Result parameter. The merged hypha proposal. |
log_prob_out | Result parameter. The log probability of *proposal_out. |
parent | Parent structure of hypha_1. |
hypha_1 | First hypha to merge. |
hypha_2 | Second hypha proposal. |
Definition at line 2758 of file alternaria_moves.cpp.