10 inline constexpr T 
inf = 
 
   11     std::numeric_limits<T>::is_iec559 ? 
 
   12     std::numeric_limits<T>::infinity() :
 
   13     std::numeric_limits<T>::max();
 
   17     std::numeric_limits<T>::is_iec559 ? 
 
   18     -std::numeric_limits<T>::infinity() :
 
   19     std::numeric_limits<T>::lowest();
 
   25 inline T 
lse(T x, T y)
 
   27     if (x == neg_inf<T>) 
return y;
 
   28     if (x == inf<T> && y == inf<T>) 
return inf<T>;
 
   29     if (x >= y) 
return x + std::log(1. + std::exp(y-x));
 
   30     else return lse(y, x);