1
0

Types.cpp 1013 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "Types.h"
  2. #include <sstream>
  3. namespace mnd
  4. {
  5. #ifdef WITH_BOOST
  6. std::string toString(const Real& num)
  7. {
  8. return num.str();
  9. }
  10. #else // !WITH_BOOST
  11. std::string toString(const Real& num)
  12. {
  13. std::stringstream ss;
  14. ss << num;
  15. return ss.str();
  16. }
  17. #endif // WITH_BOOST
  18. template<>
  19. constexpr Real precision<float>(void)
  20. {
  21. return 1.0e-7;
  22. }
  23. template<>
  24. constexpr Real precision<double>(void)
  25. {
  26. return 1.0e-15;
  27. }
  28. #ifdef WITH_QD
  29. template<>
  30. constexpr Real precision<DoubleDouble>(void)
  31. {
  32. return Real("1.0e-29");
  33. }
  34. template<>
  35. constexpr Real precision<QuadDouble>(void)
  36. {
  37. return Real("1.0e-57");
  38. }
  39. #endif // WITH_QD
  40. #ifdef WITH_BOOST
  41. template<>
  42. constexpr Real precision<Float128>(void)
  43. {
  44. return Real("1.0e-29");
  45. }
  46. template<>
  47. constexpr Real precision<Float256>(void)
  48. {
  49. return Real("1.0e-60");
  50. }
  51. #endif // WITH_BOOST
  52. }