jebl.evolution.coalescent
Class CataclysmicDemographic

java.lang.Object
  extended by jebl.evolution.coalescent.ConstantPopulation
      extended by jebl.evolution.coalescent.ExponentialGrowth
          extended by 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).

Author:
Alexei Drummond, Andrew Rambaut

Nested Class Summary
 
Nested classes/interfaces inherited from interface jebl.evolution.coalescent.DemographicFunction
DemographicFunction.Utils
 
Constructor Summary
CataclysmicDemographic()
          Construct demographic model with default settings
CataclysmicDemographic(double N0, double r, double d, double t)
          Construct demographic model with given settings
 
Method Summary
 double getCataclysmTime()
           
 double getDeclineRate()
          returns the positive-valued decline rate
 double 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 implemented
 void 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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

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 interface DemographicFunction
Overrides:
getDemographic in class ExponentialGrowth

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 interface DemographicFunction
Overrides:
getIntensity in class ExponentialGrowth

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 interface DemographicFunction
Overrides:
getInverseIntensity in class ExponentialGrowth

hasIntegral

public boolean hasIntegral()
Description copied from interface: DemographicFunction
returns whether an analytical expression for the integral is implemented

Specified by:
hasIntegral in interface DemographicFunction
Overrides:
hasIntegral in class ConstantPopulation
Returns:
a boolean