logsumexp
$$\text{logsumexp}(x_1, x_2, \dots, x_n) = \log \left( \sum_{i=1}^{n} e^{x_i} \right)$$
shifted with the logsumexp trick for stability
$$\text{logsumexp}(x_1, x_2, \dots, x_n) = \max_i x_i + \log \left( \sum_{i=1}^{n} e^{x_i - \max_j x_j} \right)$$
proof:
$$
\log \left( \sum_{i=1}^{n} e^{x_i} \right)
$$
$$ \log \left( \sum_{i=1}^{n} e^{x_i} \right) = \log \left( \sum_{i=1}^{n} e^{x_i - M} \cdot e^M \right) $$
$$ = \log \left( e^M \sum_{i=1}^{n} e^{x_i - M} \right) $$
$$ = \log(e^M) + \log \left( \sum_{i=1}^{n} e^{x_i - M} \right) $$
$$ = M + \log \left( \sum_{i=1}^{n} e^{x_i - M} \right) $$
$$ \log \left( \sum_{i=1}^{n} e^{x_i} \right) = \max_i x_i + \log \left( \sum_{i=1}^{n} e^{x_i - \max_j x_j} \right) $$