Initial import
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/radio@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
// --------------------------------------------------------------
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include "radio_types.h"
|
||||
|
||||
// --------------------------------------------------------------
|
||||
// Real Functions
|
||||
// --------------------------------------------------------------
|
||||
radio_float_t dabs(radio_float_t x)
|
||||
{
|
||||
if (x < 0)
|
||||
return -x;
|
||||
|
||||
return x;
|
||||
}
|
||||
|
||||
radio_float_t dsign(radio_float_t x)
|
||||
{
|
||||
if (x < 0)
|
||||
return -1.0;
|
||||
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
radio_float_t dmod(radio_float_t x, radio_float_t y)
|
||||
{
|
||||
int xy;
|
||||
|
||||
if (y == 0)
|
||||
return x;
|
||||
|
||||
xy = (int)floor(x/y);
|
||||
|
||||
return dsign(y)*(radio_float_t)fabs(x - y*(radio_float_t)xy);
|
||||
}
|
||||
|
||||
radio_float_t dmax(radio_float_t x, radio_float_t y)
|
||||
{
|
||||
if (x > y)
|
||||
return x;
|
||||
|
||||
return y;
|
||||
}
|
||||
|
||||
radio_float_t dmin(radio_float_t x, radio_float_t y)
|
||||
{
|
||||
if (x < y)
|
||||
return x;
|
||||
|
||||
return y;
|
||||
}
|
||||
|
||||
radio_float_t dclamp(radio_float_t x, radio_float_t limit_low, radio_float_t limit_high)
|
||||
{
|
||||
return dmin(dmax(x, limit_low), limit_high);
|
||||
}
|
||||
|
||||
radio_float_t powerDB(radio_float_t v1, radio_float_t preScale)
|
||||
{
|
||||
return (radio_float_t)(10*log10(RADIO_POWER_EPS + v1*preScale));
|
||||
}
|
||||
|
||||
radio_float_t dsum(radio_float_t *pSrc, int len)
|
||||
{
|
||||
radio_float_t sum = 0;
|
||||
|
||||
while(len--)
|
||||
sum += *(pSrc++);
|
||||
|
||||
return sum;
|
||||
}
|
||||
|
||||
radio_float_t dmean(radio_float_t *pSrc, int len)
|
||||
{
|
||||
return dsum(pSrc, len)/len;
|
||||
}
|
||||
|
||||
radio_float_t dpow(radio_float_t base, radio_float_t exp)
|
||||
{
|
||||
return (radio_float_t)pow(base, exp);
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------
|
||||
Reference in New Issue
Block a user