// Template minimum
template <class T>
T min(T a, T b)
{
return (a<b)?a:b;
}
// Maximum
template <class T>
T max(T a, T b)
{
return (a>b)?a:b;
}
// Linear interpolation 线性插值
template <class T>
T lerp(T a, T b, float bal)
{
bal = clamp<float>(bal, 0, 1);
return a + (b - a) * bal;
}
// Floating-point absolute using some binary tricks
float absf(float x)
{
*(long *)&x &= 0x7fffffff;
return x;
}
// Makes an int "wrap" to fit in the range 0..255
int wrap(int x)
{
return (x%256);
}
template <class T>
T min(T a, T b)
{
return (a<b)?a:b;
}
// Maximum
template <class T>
T max(T a, T b)
{
return (a>b)?a:b;
}
// Linear interpolation 线性插值
template <class T>
T lerp(T a, T b, float bal)
{
bal = clamp<float>(bal, 0, 1);
return a + (b - a) * bal;
}
// Floating-point absolute using some binary tricks
float absf(float x)
{
*(long *)&x &= 0x7fffffff;
return x;
}
// Makes an int "wrap" to fit in the range 0..255
int wrap(int x)
{
return (x%256);
}
本文介绍了一系列用于C++编程的通用模板函数,包括求最小值、最大值、线性插值等数学运算,并展示了如何使用位操作实现浮点数绝对值及整数取模等实用算法。

被折叠的 条评论
为什么被折叠?



