# 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 DemographicFunction

`DemographicFunction.Utils`

## Constructor Summary

Constructors
Constructor
Description
`CataclysmicDemographic()`
Construct demographic model with default settings
`CataclysmicDemographic(double N0, double r, double d, double t)`
Construct demographic model with given settings

## Method Summary

Modifier and Type
Method
Description
`final double`
`getCataclysmTime()`
`final 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
`final void`
`setCataclysmTime(double t)`
`void`
`setDeclineRate(double d)`
sets the decline rate.
`final void`
`setSpikeFactor(double f)`
An alternative parameterization of this model.

### Methods inherited from class ExponentialGrowth

`getArgument, getArgumentCount, getArgumentName, getGrowthRate, getLowerBound, getUpperBound, setArgument, setDoublingTime, setGrowthRate`

### Methods inherited from class ConstantPopulation

`getIntegral, getN0, setN0`

### Methods inherited from class Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### 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 size
  `r` - growth rate

## Method Details

### 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 invalid input: '&' 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