xam_near_equal.cpp

View page source

Example and Test of C++ near_equal

# include <cmpad/configure.hpp>
# include <cmpad/near_equal.hpp>
# include <sstream>

bool xam_near_equal(void)
{  //
   // ok
   bool ok = true;
   //
   // rel_error
   double rel_error = 1e-4;
   //
   // x, y
   double x = 3.000;
   double y = x * (1.0 + rel_error / 2 );
   //
   // ok
   ok &= cmpad::near_equal(x, y, rel_error);
   //
   // rel_error, vec, os
   rel_error  = rel_error / 10.0;
   std::stringstream os;
   cmpad::vector<double> vec;
   //
   // ok
   ok &= ! cmpad::near_equal(x, y, rel_error, vec, os);
   //
   // vec
   vec.resize(1);
   vec[0]     = x * 10;
   //
   // ok
   ok &=   cmpad::near_equal(x, y, rel_error, vec);
   //
   return ok;
}