# Available discount functions

    library(tempodisco)

`tempodisco` implements many lesser-known discount functions beyond the smaller set of popular functions used by Franck et al., 2015. The full list is as follows:

Name | Functional form | Notes
--- | --- | ---
`exponential` (Samuelson, 1937) | \(f(t; k) = e^{-k t}\) |
`hyperbolic` (Mazur, 1987) | \(f(t; k) = \frac{1}{1 + kt}\) |
`scaled-exponential` (Laibson, 1997) | \(f(t; k, w) = w e^{-k t}\) | Also known as quasi-hyperbolic or beta-delta and written as \(f(t; \beta, \delta) = \beta e^{-\delta t}\)
`nonlinear-time-exponential` (Ebert & Prelec, 2007) | \(f(t; k, s) = e^{-k t^s}\) | Also known as constant sensitivity
`inverse-q-exponential` (Green & Myerson, 2004) | \(f(t; k, s) = \frac{1}{(1 + k t)^s}\) | Also known as generalized hyperbolic (Loewenstin & Prelec), hyperboloid (Green & Myerson, 2004), or q-exponential (Han & Takahashi, 2012)
`nonlinear-time-hyperbolic` (Rachlin, 2006) | \(f(t; k, s) = \frac{1}{1 + k t^s}\) | Also known as power-function (Rachlin, 2006)
`dual-systems-exponential` (Ven den Bos & McClure, 2013) | \(f(t; k_1, k_2, w) = w e^{-k_1 t} + (1 - w) e^{-k_2 t}\) |
`additive-utility` (Killeen, 2009) | \(f(t; k, s, a) = \left( 1 - \frac{k}{V_D^a}t^s\right)^\frac{1}{a}\) | \(V_D\) is the value of the delayed reward. \(f(t; k, s, a) = 0\) for \(t > \left(V_D^a / k\right)^{1/s}\).
`power` (Harvey, 1986, eq. 2) | \(f(t; k) = \frac{1}{(1 + t)^k}\) | In equation 2 of the reference, the discount function is described as \(\frac{1}{t^k}\), but time begins at \(t = 1\).
`arithmetic` (Doyle & Chen, 2010) | \(f(t; k) = 1 - \frac{kt}{V_D}\) | \(V_D\) is the value of the delayed reward. \(f(t; k) = 0\) for \(kt > V_D\).
`fixed-cost` (Benhabib, Bisin, & Schotter, 2010) | \(f(t; w) = e^{-kt} - \frac{w}{V_D}\) | \(V_D\) is the value of the delayed reward. \(f(t; w) = 0\) for \(\frac{w}{V_D} > e^{-kt}\).
`absolute-stationarity` (Blavatskyy, 2024, eq. 3) | \(f(t; k, s) = \exp\left\{ -k\frac{ts}{ts + 1}\right\}\) | The original paper uses \(t\) rather than \(ts\). However, a scale factor appears necessary to account for different time units.
`relative-stationarity` (Blavatskyy, 2024, eq. 7) | \(f(t; k, s) = \left( \frac{ts + 1}{2ts + 1} \right)^k\) | The original paper uses \(t\) rather than \(ts\). However, a scale factor appears necessary to account for different time units.
`constant` (Franck et al., 2015) | \(f(t; k) = k\) | Null model; participants can be excluded if this model provides the best fit (Franck et al., 2015)
`nonlinear-time-power` | \(f(t; k) = \frac{1}{(1 + t^s)^k}\) | Experimental extension of the `power` discount function along the lines of the `nonlinear-time-hyperbolic` and `nonlinear-time-exponential` functions.
`nonlinear-time-arithmetic` | \(f(t; k) = 1 - \frac{kt^s}{V_D}\) | Experimental extension of the `arithmetic` discount function along the lines of the `nonlinear-time-hyperbolic` and `nonlinear-time-exponential` functions.
`scaled-hyperbolic` | \(f(t; k, w) = \frac{w}{1 + kt}\) | Experimental extension of the `hyperbolic` discount function along the lines of the `scaled-exponential` function.

The names of these discount functions can be accessed using `get_available_discount_functions()`:

    print(get_available_discount_functions())
    #>  [1] "hyperbolic"                 "nonlinear-time-hyperbolic"
    #>  [3] "exponential"                "nonlinear-time-exponential"
    #>  [5] "absolute-stationarity"      "relative-stationarity"
    #>  [7] "power"                      "nonlinear-time-power"
    #>  [9] "arithmetic"                 "nonlinear-time-arithmetic"
    #> [11] "inverse-q-exponential"      "scaled-exponential"
    #> [13] "scaled-hyperbolic"          "fixed-cost"
    #> [15] "dual-systems-exponential"   "additive-utility"
    #> [17] "model-free"                 "constant"