package edu.umd.cloud9.math;
public class LogMath {
/**
*
* @param a log a, in natural base e
* @param b log b, in natural base e
* @return log(a + b), in natural base e
*/
public static double add(double a, double b) {
if (a < b) {
return b + Math.log(1 + Math.exp(a - b));
} else {
return a + Math.log(1 + Math.exp(b - a));
}
}
/**
*
* @param a log a, in natural base e
* @param b log b, in natural base e
* @return log(a + b), in natural base e
*/
public static float add(float a, float b) {
if (a < b) {
return (float) (b + Math.log(1 + Math.exp(a - b)));
} else {
return (float) (a + Math.log(1 + Math.exp(b - a)));
}
}
}