R/logSumExp.R

#' logSumExp
#'
#' \code{logSumExp} calculates log(exp(x1) + exp(x2) + exp(x3) + ...)
#' 
#' @export
#' @param x     a vector
#' @return      log(exp(x1) + exp(x2) + exp(x3) + ...)
#'
#' @examples
#' x <- seq(-100,-50)
#' log(sum(exp(x)))
#' logSumExp(x)

logSumExp <- function(x){
  m <- max(x)
  if (m == -Inf){
    return(-Inf)
  }else{
    y <- x-m
    return(m + log(sum(exp(y))))
  }
}
shimlab/riboHMM2 documentation built on May 19, 2019, 6:23 p.m.