24#include "AstUtil/MathDegree.hpp"
25#include "AstUtil/Constants.h"
48A_ALWAYS_INLINE
void sincos (
double x,
double *psin,
double *pcos)
61 double sin()
const {
return sin_; }
63 double& sin() {
return sin_; }
65 double cos()
const {
return cos_; }
67 double& cos() {
return cos_; }
80 sincos(x, &sc.sin_, &sc.cos_);
87template<
typename Scalar>
88Scalar
aMax(Scalar a, Scalar b)
94template<
typename Scalar>
95Scalar
aMin(Scalar a, Scalar b)
109A_CONSTEXPR_CXX14
const T&
clamp(
const T& val,
const T& low,
const T& high)
112 assert(low <= high &&
"low must be less than or equal to high");
121 return (val < low) ? low : ((val > high) ? high : val);
131 return std::asin(
clamp(x, -1.0, 1.0));
139 return std::acos(
clamp(x, -1.0, 1.0));
147 return std::sqrt((std::max)(x, 0.0));
152template<
typename Scalar>
165 return angle - floor((angle - start) /
kTwoPI) *
kTwoPI;
包含 sin(x) 和 cos(x) 值的结构体
定义 Math.hpp:58
constexpr double kTwoPI
2*PI
定义 Constants.h:54
A_ALWAYS_INLINE double sqrtSafe(double x)
安全平方根,参数自动箝位到 [0, +∞]
定义 Math.hpp:145
A_ALWAYS_INLINE double aNormalizeAngle0To2Pi(double angle)
将角度量规范化到 0 到 2π 范围
定义 Math.hpp:182
A_ALWAYS_INLINE double asinSafe(double x)
安全反正弦,参数自动箝位到 [-1, 1]
定义 Math.hpp:129
A_ALWAYS_INLINE double aNormalizeAngleNegPiToPi(double angle)
将角度量规范化到 -π 到 π 范围
定义 Math.hpp:190
A_CONSTEXPR_CXX14 const T & clamp(const T &val, const T &low, const T &high)
对值进行范围限制
定义 Math.hpp:109
Scalar aMax(Scalar a, Scalar b)
计算两个数中的较大值
定义 Math.hpp:88
constexpr double kPI
PI
定义 Constants.h:53
A_ALWAYS_INLINE double aNormalizeAngleNeg2PiTo0(double angle)
将角度量规范化到 -2π 到 0 范围
定义 Math.hpp:198
Scalar aMin(Scalar a, Scalar b)
计算两个数中的较小值
定义 Math.hpp:95
A_ALWAYS_INLINE double aNormalizeAngleStart(double angle, double start)
将角度量规范化到指定起始范围
定义 Math.hpp:163
A_ALWAYS_INLINE double aNormalizeAngle(double angle, double center)
将角度量规范化到指定中心范围
定义 Math.hpp:173
Scalar square(Scalar x)
计算平方
定义 Math.hpp:153
A_ALWAYS_INLINE double acosSafe(double x)
安全反余弦,参数自动箝位到 [-1, 1]
定义 Math.hpp:137
A_ALWAYS_INLINE void sincos(double x, double *psin, double *pcos)
计算 sin(x) 和 cos(x) 值
定义 Math.hpp:48