 #include <climits>    // For CHAR_BIT.
 #include <cmath>      // For `sqrt` and `abs`.
 
+#include <fenv.h>
 #include <stdint.h>   // For `intN_t`.
+
 #include "random.h"
 #include "timer.h"
 

template <typename T, typename N>
T round_to_precision(T x, N ndigits)
{
    double m = (x < 0.0) ? -1.0 : 1.0;
    double pwr = std::pow(T(10.0), ndigits);
    return (std::floor(x * m * pwr + 0.5) / pwr) * m;
}

///////////////////////////////////////////////////////////////////////////////


int main(int argc, char** argv)
{
  feenableexcept(FE_DIVBYZERO);
  feenableexcept(FE_INVALID);
  feenableexcept(FE_OVERFLOW);

  command_line_processor clp(argc, argv);

  #if defined(HAVE_TBB)
