use detail::log instead of std::log
fix for clang, use constexpr math functions and remove default template parameter duplicate
fix for clang warnings
add clang++ checking