Package jebl.evolution.coalescent

# Class ConstantPopulation

java.lang.Object
jebl.evolution.coalescent.ConstantPopulation

All Implemented Interfaces:
  `DemographicFunction`

Direct Known Subclasses:
  `ExponentialGrowth`

public class ConstantPopulation extends Object implements DemographicFunction
This class models coalescent intervals for a constant population (parameter: N0=present-day population size).
If time units are set to Units.EXPECTED_SUBSTITUTIONS then the N0 parameter will be interpreted as N0 * mu.
Also note that if you are dealing with a diploid population N0 will be out by a factor of 2.

Version:
  $Id: ConstantPopulation.java 390 2006-07-20 14:33:51Z rambaut $
Author:
  Andrew Rambaut, Alexei Drummond

## Nested Class Summary

## Nested classes/interfaces inherited from interface jebl.evolution.coalescent.DemographicFunction

`DemographicFunction.Utils`

## Constructor Summary

Constructors
Constructor
Description
`ConstantPopulation()`
Construct demographic model with default settings
`ConstantPopulation(double N0)`
Construct demographic model with given settings

## Method Summary

Modifier and Type
Method
Description
`double`
`getArgument(int n)`
Returns the value of the nth argument of this function.
`int`
`getArgumentCount()`
Returns the number of arguments for this function.
`String`
`getArgumentName(int n)`
Returns the name of the nth argument of this function.
`double`
`getDemographic(double t)`
Gets the value of the demographic function N(t) at time t.
`double`
`getIntegral(double start, double finish)`
Calculates the integral 1/N(x) dx between start and finish.
`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).
`double`
`getLowerBound(int n)`
Returns the lower bound of the nth argument of this function.
`double`
`getN0()`
returns initial population size.
`double`
`getUpperBound(int n)`
Returns the upper bound of the nth argument of this function.
`boolean`
`hasIntegral()`
returns whether an analytical expression for the integral is implemented
`void`
`setArgument(int n, double value)`
Sets the value of the nth argument of this function.
`void`
`setN0(double N0)`
sets initial population size.

### Methods inherited from class java.lang.Object

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

## Constructor Details

### ConstantPopulation

public ConstantPopulation()
Construct demographic model with default settings

### ConstantPopulation

public ConstantPopulation(double N0)
Construct demographic model with given settings

## Method Details

### getN0

public double getN0()
returns initial population size.

### setN0

public void setN0(double N0)
sets initial population size.

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

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

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

### 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`
Returns:
  a boolean

### getIntegral

public double getIntegral(double start, double finish)
Calculates the integral 1/N(x) dx between start and finish. The inherited function in DemographicFunction.Abstract calls a numerical integrater which is unecessary.

Specified by:
  `getIntegral` in interface `DemographicFunction`

### getArgumentCount

public int getArgumentCount()
Description copied from interface: `DemographicFunction`
Returns the number of arguments for this function.

Specified by:
  `getArgumentCount` in interface `DemographicFunction`

### getArgumentName

public String getArgumentName(int n)
Description copied from interface: `DemographicFunction`
Returns the name of the nth argument of this function.

Specified by:
  `getArgumentName` in interface `DemographicFunction`

### getArgument

public double getArgument(int n)
Description copied from interface: `DemographicFunction`
Returns the value of the nth argument of this function.

Specified by:
  `getArgument` in interface `DemographicFunction`

### setArgument

public void setArgument(int n, double value)
Description copied from interface: `DemographicFunction`
Sets the value of the nth argument of this function.

Specified by:
  `setArgument` in interface `DemographicFunction`

### getLowerBound

public double getLowerBound(int n)
Description copied from interface: `DemographicFunction`
Returns the lower bound of the nth argument of this function.

Specified by:
  `getLowerBound` in interface `DemographicFunction`

### getUpperBound

public double getUpperBound(int n)
Description copied from interface: `DemographicFunction`
Returns the upper bound of the nth argument of this function.

Specified by:
  `getUpperBound` in interface `DemographicFunction`