Files
jens 290fd5f5e0 Initial import
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/radio@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
2014-07-19 07:44:42 +00:00

84 lines
1.5 KiB
C
Executable File

// --------------------------------------------------------------
#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);
}
// --------------------------------------------------------------