ISOpure.util.logsum {ISOpureR}R Documentation

Log-sum-exp

Description

Prevents underflow/overflow using the log-sum-exp trick

Usage

ISOpure.util.logsum(xx, dimen);

Arguments

xx

A matrix of numerical values

dimen

The dimension along which the long sum is taken (1 for row, 2 for column)

Value

Returns log(sum(exp(x),dimen)), the log sum of exps, summing over dimension dimen but in a way that tries to avoid underflow/overflow.

Author(s)

Gerald Quon and Catalina Anghel

Examples

x <-  c(1, 1e20, 1e40, -1e40, -1e20, -1);
x <- as.matrix(x);

# compute log sum exp without the function
log(sum(exp(x)))
#[1] Inf

# compute log sum exp with the function
ISOpure.util.logsum(x, 1)
#[1] 1e+40 

[Package ISOpureR version 1.1.3 Index]