# Interface DemographicFunction

All Known Implementing Classes:
  `CataclysmicDemographic, ConstantPopulation, ConstExponential, ConstLogistic, EmpiricalDemographicFunction, Expansion, ExponentialGrowth, ExponentialLogistic, LogisticGrowth`

public interface DemographicFunction
This interface provides methods that describe a demographic function. Parts of this class were derived from C++ code provided by Oliver Pybus.

Version:
  $Id: DemographicFunction.java 849 2007-12-06 00:10:14Z twobeers $
Author:
  Andrew Rambaut, Alexei Drummond, Korbinian Strimmer

## Nested Class Summary

Nested Classes
Modifier and Type
Interface
Description
`static class`
`DemographicFunction.Utils`

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

## Method Details

### getDemographic

double getDemographic(double t)
Gets the value of the demographic function N(t) at time t.

### getIntensity

double getIntensity(double t)
Returns value of demographic intensity function at time t (= integral 1/N(x) dx from 0 to t).

### getInverseIntensity

double getInverseIntensity(double x)
Returns value of inverse demographic intensity function (returns time, needed for simulation of coalescent intervals).

### hasIntegral

boolean hasIntegral()
returns whether an analytical expression for the integral is implemented

Returns:
  a boolean

### getIntegral

double getIntegral(double start, double finish)
Calculates the integral 1/N(x) dx between start and finish

### getArgumentCount

int getArgumentCount()
Returns the number of arguments for this function.

### getArgumentName

String getArgumentName(int n)
Returns the name of the nth argument of this function.

### getArgument

double getArgument(int n)
Returns the value of the nth argument of this function.

### setArgument

void setArgument(int n, double value)
Sets the value of the nth argument of this function.

### getLowerBound

double getLowerBound(int n)
Returns the lower bound of the nth argument of this function.

### getUpperBound

double getUpperBound(int n)
Returns the upper bound of the nth argument of this function.