2#ifndef GYM_PCB_MATH_MISC_H
3#define GYM_PCB_MATH_MISC_H
14constexpr inline Real Radians(Real D)
16 return M_PI * (D / 180.0);
19template<
typename T>
inline T squared(T v) {
return v * v; }
23inline float rsqrt(
float x)
25#if defined(__x86_64__)
26 return _mm_cvtss_f32(_mm_rsqrt_ss(_mm_set_ss(x)));
28 return 1.0f / std::sqrtf(x);
34template<
typename T> T reduce_max(
const std::vector<T> &V)
37 throw std::runtime_error(
"maximum(empty vector)");
39 for (
size_t i = 1; i < V.size(); ++i)
40 mx = std::max(mx, V[i]);
44template<
typename T>
void multiply(std::vector<T> &V, T s)