Move lerp/cubic to alnumeric.h

This commit is contained in:
Chris Robinson
2020-12-03 05:43:53 -08:00
parent e3179aa058
commit 630a3b8cbd
5 changed files with 16 additions and 13 deletions
-13
View File
@@ -39,19 +39,6 @@ constexpr float AirAbsorbGainHF{0.99426f}; /* -0.05dB */
constexpr float ReverbDecayGain{0.001f}; /* -60 dB */
inline float lerp(float val1, float val2, float mu) noexcept
{ return val1 + (val2-val1)*mu; }
inline float cubic(float val1, float val2, float val3, float val4, float mu) noexcept
{
const float mu2{mu*mu}, mu3{mu2*mu};
const float a0{-0.5f*mu3 + mu2 + -0.5f*mu};
const float a1{ 1.5f*mu3 + -2.5f*mu2 + 1.0f};
const float a2{-1.5f*mu3 + 2.0f*mu2 + 0.5f*mu};
const float a3{ 0.5f*mu3 + -0.5f*mu2};
return val1*a0 + val2*a1 + val3*a2 + val4*a3;
}
enum HrtfRequestMode {
Hrtf_Default = 0,
Hrtf_Enable = 1,
+1
View File
@@ -7,6 +7,7 @@
#include "AL/al.h"
#include "AL/alc.h"
#include "alcmain.h"
#include "alnumeric.h"
#include "alu.h"
#include "hrtf.h"
#include "defs.h"
+1
View File
@@ -23,6 +23,7 @@
#include <xmmintrin.h>
#include <emmintrin.h>
#include "alnumeric.h"
#include "alu.h"
#include "defs.h"
+1
View File
@@ -24,6 +24,7 @@
#include <emmintrin.h>
#include <smmintrin.h>
#include "alnumeric.h"
#include "alu.h"
#include "defs.h"
+13
View File
@@ -67,6 +67,19 @@ constexpr inline size_t clampz(size_t val, size_t min, size_t max) noexcept
{ return minz(max, maxz(min, val)); }
constexpr inline float lerp(float val1, float val2, float mu) noexcept
{ return val1 + (val2-val1)*mu; }
constexpr inline float cubic(float val1, float val2, float val3, float val4, float mu) noexcept
{
const float mu2{mu*mu}, mu3{mu2*mu};
const float a0{-0.5f*mu3 + mu2 + -0.5f*mu};
const float a1{ 1.5f*mu3 + -2.5f*mu2 + 1.0f};
const float a2{-1.5f*mu3 + 2.0f*mu2 + 0.5f*mu};
const float a3{ 0.5f*mu3 + -0.5f*mu2};
return val1*a0 + val2*a1 + val3*a2 + val4*a3;
}
/** Find the next power-of-2 for non-power-of-2 numbers. */
inline uint32_t NextPowerOf2(uint32_t value) noexcept
{