Skip to contents

Computes log(sum(exp(x))) in a numerically stable way.

Usage

log_sum_exp(x)

Arguments

x

Numeric vector of log values

Value

Numeric scalar: log(sum(exp(x)))

Details

Uses the identity: log(sum(exp(x))) = max(x) + log(sum(exp(x - max(x)))) This avoids overflow when x contains large positive values.

Examples

# Direct computation would overflow
x <- c(1000, 1001, 1002)
log_sum_exp(x)  # Returns ~1002.41
#> [1] 1002.408