1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
/*
* modelunrest.h
*
* Created on: 24/05/2016
* Author: Michael Woodhams
*/
#ifndef MODELUNREST_H_
#define MODELUNREST_H_
#include "modelmarkov.h"
class ModelUnrest: public ModelMarkov {
public:
/** constructor */
ModelUnrest(PhyloTree *tree, string model_params);
/**
* true if model_name is the name of some known non-reversible model
*/
static bool validModelName(string model_name);
/**
* setup the bounds for joint optimization with BFGS
*/
void setBounds(double *lower_bound, double *upper_bound, bool *bound_check);
protected:
/**
Model parameters - cached so we know when they change, and thus when
recalculations are needed.
*/
double *model_parameters;
/**
* Called from getVariables to update the rate matrix for the new
* model parameters.
*/
virtual void setRates();
};
#endif /* MODELUNREST_H_ */
|