Juliaでlogsumexp

何も考えずにできた。

function logsumexp(x)
    xmax = maximum(x)
    xmax + log(sum(exp(x - xmax)))
end

> x = [1,2,3,10]
> log(sum(exp(x)))
> logsumexp(x)
> 10.001369815771387

Syntaxハイライトが効かないので、そろそろBLOG引越しの機運か。