Package jebl.evolution.coalescent
Class CataclysmicDemographic
- java.lang.Object
-
- jebl.evolution.coalescent.ConstantPopulation
-
- jebl.evolution.coalescent.ExponentialGrowth
-
- jebl.evolution.coalescent.CataclysmicDemographic
-
- All Implemented Interfaces:
DemographicFunction
public class CataclysmicDemographic extends ExponentialGrowth
This class models an exponentially growing (or shrinking) population (Parameters: N0=present-day population size; r=growth rate). This model is nested with the constant-population size model (r=0).- Version:
- $Id: CataclysmicDemographic.java 586 2006-12-15 15:49:15Z twobeers $
- Author:
- Alexei Drummond, Andrew Rambaut
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jebl.evolution.coalescent.DemographicFunction
DemographicFunction.Utils
-
-
Constructor Summary
Constructors Constructor Description CataclysmicDemographic()
Construct demographic model with default settingsCataclysmicDemographic(double N0, double r, double d, double t)
Construct demographic model with given settings
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description double
getCataclysmTime()
double
getDeclineRate()
returns the positive-valued decline ratedouble
getDemographic(double t)
Gets the value of the demographic function N(t) at time t.double
getIntensity(double t)
Returns value of demographic intensity function at time t (= integral 1/N(x) dx from 0 to t).double
getInverseIntensity(double x)
Returns value of inverse demographic intensity function (returns time, needed for simulation of coalescent intervals).boolean
hasIntegral()
returns whether an analytical expression for the integral is implementedvoid
setCataclysmTime(double t)
void
setDeclineRate(double d)
sets the decline rate.void
setSpikeFactor(double f)
An alternative parameterization of this model.-
Methods inherited from class jebl.evolution.coalescent.ExponentialGrowth
getArgument, getArgumentCount, getArgumentName, getGrowthRate, getLowerBound, getUpperBound, setArgument, setDoublingTime, setGrowthRate
-
Methods inherited from class jebl.evolution.coalescent.ConstantPopulation
getIntegral, getN0, setN0
-
-
-
-
Constructor Detail
-
CataclysmicDemographic
public CataclysmicDemographic()
Construct demographic model with default settings
-
CataclysmicDemographic
public CataclysmicDemographic(double N0, double r, double d, double t)
Construct demographic model with given settings- Parameters:
N0
- present-day population sizer
- growth rate
-
-
Method Detail
-
getDeclineRate
public final double getDeclineRate()
returns the positive-valued decline rate
-
setDeclineRate
public void setDeclineRate(double d)
sets the decline rate.
-
getCataclysmTime
public final double getCataclysmTime()
-
setCataclysmTime
public final void setCataclysmTime(double t)
-
setSpikeFactor
public final void setSpikeFactor(double f)
An alternative parameterization of this model. This function sets the decline rate using N0 & t which must already have been set.
-
getDemographic
public double getDemographic(double t)
Description copied from interface:DemographicFunction
Gets the value of the demographic function N(t) at time t.- Specified by:
getDemographic
in interfaceDemographicFunction
- Overrides:
getDemographic
in classExponentialGrowth
-
getIntensity
public double getIntensity(double t)
Description copied from interface:DemographicFunction
Returns value of demographic intensity function at time t (= integral 1/N(x) dx from 0 to t).- Specified by:
getIntensity
in interfaceDemographicFunction
- Overrides:
getIntensity
in classExponentialGrowth
-
getInverseIntensity
public double getInverseIntensity(double x)
Description copied from interface:DemographicFunction
Returns value of inverse demographic intensity function (returns time, needed for simulation of coalescent intervals).- Specified by:
getInverseIntensity
in interfaceDemographicFunction
- Overrides:
getInverseIntensity
in classExponentialGrowth
-
hasIntegral
public boolean hasIntegral()
Description copied from interface:DemographicFunction
returns whether an analytical expression for the integral is implemented- Specified by:
hasIntegral
in interfaceDemographicFunction
- Overrides:
hasIntegral
in classConstantPopulation
- Returns:
- a boolean
-
-