Javadoc
Given log(a) and log(b) calculate log(a + b) boils down to log(
exp(log_a) + exp(log_b) ) but this might overflow, so we turn this into
log([exp(log_a - log_c) + exp(log_b - log_c)]exp(log_c)) and we set log_c
== max(log_a,log_b) and so it becomes: LARGE + log(1 + exp(SMALL -
LARGE)) == LARGE + log(1 + SMALL) ~= large the whole idea being to avoid
an overflow (exp(LARGE) == VERY LARGE == overflow)