3.14 Composed functions
The functions in this section are equivalent in theory to combinations of other functions. In practice, they are implemented to be more efficient and more numerically stable than defining them directly using more basic Stan functions.
R
expm1
(T x)
natural exponential of x minus 1
Available since 2.0, vectorized in 2.13
real
fma
(real x, real y, real z)
Return z plus the result of x multiplied by y. \[ \text{fma}(x,y,z) =
(x \times y) + z \]
Available since 2.0
real
multiply_log
(real x, real y)
Warning: This function is deprecated and should be replaced with
lmultiply
. Return the product of x and the natural logarithm of y.
\[ \mathrm{multiply\_log}(x,y) = \begin{cases} 0 & \text{if } x = y =
0 \\ x \log y & \text{if } x, y \neq 0 \\ \text{NaN} &
\text{otherwise} \end{cases} \]
Available since 2.0, deprecated since 2.10, scheduled for removal in 2.32
R
multiply_log
(T1 x, T2 y)
Vectorized implementation of the multiply_log
function
Available since 2.25
real
ldexp
(real x, int y)
Return the product of x and two raised to the y power. \[
\text{ldexp}(x,y) = x 2^y \]
Available since 2.25
R
ldexp
(T1 x, T2 y)
Vectorized implementation of the ldexp
function
Available since 2.25
real
lmultiply
(real x, real y)
Return the product of x and the natural logarithm of y. \[
\text{lmultiply}(x,y) = \begin{cases} 0 & \text{if } x = y = 0 \\ x
\log y & \text{if } x, y \neq 0 \\ \text{NaN} & \text{otherwise}
\end{cases} \]
Available since 2.10
R
lmultiply
(T1 x, T2 y)
Vectorized implementation of the lmultiply
function
Available since 2.25
R
log1p
(T x)
natural logarithm of 1 plus x
Available since 2.0, vectorized in 2.13
R
log1m
(T x)
natural logarithm of 1 minus x
Available since 2.0, vectorized in 2.13
R
log1p_exp
(T x)
natural logarithm of one plus the natural exponentiation of x
Available since 2.0, vectorized in 2.13
R
log1m_exp
(T x)
logarithm of one minus the natural exponentiation of x
Available since 2.0, vectorized in 2.13
real
log_diff_exp
(real x, real y)
Return the natural logarithm of the difference of the natural
exponentiation of x and the natural exponentiation of y. \[
\mathrm{log\_diff\_exp}(x,y) = \begin{cases} \log(\exp(x)-\exp(y)) &
\text{if } x > y \\[6pt] \textrm{NaN} & \text{otherwise} \end{cases}
\]
Available since 2.0
R
log_diff_exp
(T1 x, T2 y)
Vectorized implementation of the log_diff_exp
function
Available since 2.25
real
log_mix
(real theta, real lp1, real lp2)
Return the log mixture of the log densities lp1 and lp2 with mixing
proportion theta, defined by \[\begin{eqnarray*}
\mathrm{log\_mix}(\theta, \lambda_1, \lambda_2) & = & \log \!\left(
\theta \exp(\lambda_1) + \left( 1 - \theta \right) \exp(\lambda_2)
\right) \\[3pt] & = & \mathrm{log\_sum\_exp}\!\left(\log(\theta) +
\lambda_1, \ \log(1 - \theta) + \lambda_2\right). \end{eqnarray*}\]
Available since 2.6
R
log_mix
(T1 theta, T2 lp1, T3 lp3)
Vectorized implementation of the log_mix
function
Available since 2.26
real
log_sum_exp
(real x, real y)
Return the natural logarithm of the sum of the natural exponentiation
of x and the natural exponentiation of y. \[
\mathrm{log\_sum\_exp}(x,y) = \log(\exp(x)+\exp(y)) \]
Available since 2.0
R
log_inv_logit
(T x)
natural logarithm of the inverse logit function of x
Available since 2.0, vectorized in 2.13
R
log_inv_logit_diff
(T1 x, T2 y)
natural logarithm of the difference of the inverse logit function of x and the inverse logit function of y
Available since 2.25
R
log1m_inv_logit
(T x)
natural logarithm of 1 minus the inverse logit function of x
Available since 2.0, vectorized in 2.13