dreamcast/math/math.hpp
2025-05-09 20:16:06 -05:00

52 lines
876 B
C++

#pragma once
template <typename T>
constexpr T sqrt(const T n) noexcept;
template <>
constexpr float sqrt(const float n) noexcept
{
return __builtin_sqrtf(n);
}
template <typename T>
constexpr T cos(const T n) noexcept;
template <>
constexpr float cos(const float n) noexcept
{
return __builtin_cosf(n);
}
template <typename T>
constexpr T sin(const T n) noexcept;
template <>
constexpr float sin(const float n) noexcept
{
return __builtin_sinf(n);
}
template <typename T>
constexpr T abs(const T n) noexcept;
template <>
constexpr float abs(const float n) noexcept
{
return __builtin_fabsf(n);
}
constexpr float pi = 3.141592653589793;
template <typename T>
inline constexpr float max(const T a, const T b) noexcept
{
return (a > b) ? a : b;
}
template <typename T>
inline constexpr float min(const T a, const T b) noexcept
{
return (a < b) ? a : b;
}