## 10.4 Lower and upper bounded scalar

For lower and upper-bounded variables, Stan uses a scaled and translated log-odds transform.

### Log odds and the logistic sigmoid

The log-odds function is defined for $$u \in (0,1)$$ by

$\mathrm{logit}(u) = \log \frac{u}{1 - u}.$

The inverse of the log odds function is the logistic sigmoid, defined for $$v \in (-\infty,\infty)$$ by

$\mathrm{logit}^{-1}(v) = \frac{1}{1 + \exp(-v)}.$

The derivative of the logistic sigmoid is

$\frac{d}{dy} \mathrm{logit}^{-1}(y) = \mathrm{logit}^{-1}(y) \cdot \left( 1 - \mathrm{logit}^{-1}(y) \right).$

### Lower and upper bounds transform

For variables constrained to be in the open interval $$(a, b)$$, Stan uses a scaled and translated log-odds transform. If variable $$X$$ is declared to have lower bound $$a$$ and upper bound $$b$$, then it is transformed to a new variable $$Y$$, where

$Y = \mathrm{logit} \left( \frac{X - a}{b - a} \right).$

### Lower and upper bounds inverse transform

The inverse of this transform is

$X = a + (b - a) \cdot \mathrm{logit}^{-1}(Y).$

### Absolute derivative of the lower and upper bounds inverse transform

The absolute derivative of the inverse transform is given by

$\left| \frac{d}{dy} \left( a + (b - a) \cdot \mathrm{logit}^{-1}(y) \right) \right| = (b - a) \cdot \mathrm{logit}^{-1}(y) \cdot \left( 1 - \mathrm{logit}^{-1}(y) \right).$

Therefore, the density of the transformed variable $$Y$$ is

$p_Y(y) = p_X \! \left( a + (b - a) \cdot \mathrm{logit}^{-1}(y) \right) \cdot (b - a) \cdot \mathrm{logit}^{-1}(y) \cdot \left( 1 - \mathrm{logit}^{-1}(y) \right).$

Despite the apparent complexity of this expression, most of the terms are repeated and thus only need to be evaluated once. Most importantly, $$\mathrm{logit}^{-1}(y)$$ only needs to be evaluated once, so there is only one call to $$\exp(-y)$$.