quad_utils.hpp 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /**
  2. * \file quad_utils.hpp
  3. * \author Dhairya Malhotra, dhairya.malhotra@gmail.com
  4. * \date 7-16-2014
  5. * \brief This file contains definition of QuadReal_t.
  6. */
  7. #ifndef _QUAD_UTILS_
  8. #define _QUAD_UTILS_
  9. #include <pvfmm_common.hpp>
  10. #include <iostream>
  11. #include <vector>
  12. #ifdef PVFMM_QUAD_T
  13. typedef PVFMM_QUAD_T QuadReal_t;
  14. inline QuadReal_t atoquad(const char* str);
  15. inline QuadReal_t fabs(const QuadReal_t& f);
  16. inline QuadReal_t sqrt(const QuadReal_t& a);
  17. inline QuadReal_t sin(const QuadReal_t& a);
  18. inline QuadReal_t cos(const QuadReal_t& a);
  19. inline QuadReal_t exp(const QuadReal_t& a);
  20. inline std::ostream& operator<<(std::ostream& output, const QuadReal_t& q_);
  21. template<>
  22. inline QuadReal_t const_pi<QuadReal_t>(){
  23. static QuadReal_t pi=atoquad("3.1415926535897932384626433832795028841");
  24. return pi;
  25. }
  26. template<>
  27. inline QuadReal_t const_e<QuadReal_t>(){
  28. static QuadReal_t e=atoquad("2.71828182845904523536028747135266249775724709369995");
  29. return e;
  30. }
  31. #include <quad_utils.txx>
  32. #endif //PVFMM_QUAD_T
  33. #endif //_QUAD_UTILS_HPP_