# Class ExponentialLogistic

java.lang.Object
jebl.evolution.coalescent.ConstantPopulation
jebl.evolution.coalescent.ExponentialGrowth
jebl.evolution.coalescent.LogisticGrowth
jebl.evolution.coalescent.ExponentialLogistic

All Implemented Interfaces:
  `DemographicFunction`

public class ExponentialLogistic extends LogisticGrowth
This class models logistic growth from an initial exponential phase.

Version:
  $Id: ExponentialLogistic.java 937 2008-08-08 00:11:32Z rambaut $
Author:
  Andrew Rambaut, Alexei Drummond

## Nested Class Summary

### Nested classes/interfaces inherited from interface DemographicFunction

`DemographicFunction.Utils`

## Constructor Summary

Constructors
Constructor
Description
`ExponentialLogistic()`
Construct demographic model with default settings
`ExponentialLogistic(double N0, double r, double c, double time, double r2)`
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 demographic intensity function at time t (= integral 1/N(x) dx from 0 to t).
`double`
`getLowerBound(int n)`
Returns the lower bound of the nth argument of this function.
`double`
`getR2()`
`double`
`getTime()`
`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`
`setR2(double r2)`
`void`
`setTime(double time)`

### Methods inherited from class LogisticGrowth

`getShape, setShape, setTime50`

### Methods inherited from class ExponentialGrowth

`getGrowthRate, setDoublingTime, setGrowthRate`

### Methods inherited from class ConstantPopulation

`getN0, setN0`

### Methods inherited from class Object

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

## Constructor Details

### ExponentialLogistic

public ExponentialLogistic()
Construct demographic model with default settings

### ExponentialLogistic

public ExponentialLogistic(double N0, double r, double c, double time, double r2)
Construct demographic model with given settings

Parameters:
  `N0` - Current population size
  `r` - Logistic-phase growth rate
  `c` - Logistic shape
  `time` - Exponential-logistic phase transition time
  `r2` - Exponential-phase growth rate

## Method Details

### getR2

public double getR2()

### setR2

public void setR2(double r2)

### getTime

public double getTime()

### setTime

public void setTime(double time)

### getDemographic

public double getDemographic(double t)
Description copied from class: `LogisticGrowth`
Gets the value of the demographic function N(t) at time t.

Specified by:
  `getDemographic` in interface `DemographicFunction`
Overrides:
  `getDemographic` in class `LogisticGrowth`
Parameters:
  `t` - the time
Returns:
  the value of the demographic function N(t) at time t.

### getIntensity

public double getIntensity(double t)
Description copied from class: `LogisticGrowth`
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 `LogisticGrowth`

### getInverseIntensity

public double getInverseIntensity(double x)
Description copied from class: `LogisticGrowth`
Returns value of demographic intensity function at time t (= integral 1/N(x) dx from 0 to t).

Specified by:
  `getInverseIntensity` in interface `DemographicFunction`
Overrides:
  `getInverseIntensity` in class `LogisticGrowth`

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

### getIntegral

public double getIntegral(double start, double finish)
Description copied from class: `ConstantPopulation`
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`
Overrides:
  `getIntegral` in class `LogisticGrowth`

### getArgumentCount

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

Specified by:
  `getArgumentCount` in interface `DemographicFunction`
Overrides:
  `getArgumentCount` in class `ExponentialGrowth`

### 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`
Overrides:
  `getArgumentName` in class `ExponentialGrowth`

### 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`
Overrides:
  `getArgument` in class `ExponentialGrowth`

### 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`
Overrides:
  `setArgument` in class `ExponentialGrowth`

### 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`
Overrides:
  `getLowerBound` in class `ExponentialGrowth`

### 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`
Overrides:
  `getUpperBound` in class `ExponentialGrowth`