diff options
| author | Frank Gevaerts <frank@gevaerts.be> | 2010-02-10 19:44:11 +0000 |
|---|---|---|
| committer | Frank Gevaerts <frank@gevaerts.be> | 2010-02-10 19:44:11 +0000 |
| commit | 43264a946f0222e49ac2c10da7d00b36efc3f40e (patch) | |
| tree | d0ef77e8280819bfc23f9ef101e1374011ad6e1b /apps/plugins/fft/math.h | |
| parent | fa4ab10bbbd5b3588bc0e7057b338d1068939fda (diff) | |
| download | rockbox-43264a946f0222e49ac2c10da7d00b36efc3f40e.zip rockbox-43264a946f0222e49ac2c10da7d00b36efc3f40e.tar.gz rockbox-43264a946f0222e49ac2c10da7d00b36efc3f40e.tar.bz2 rockbox-43264a946f0222e49ac2c10da7d00b36efc3f40e.tar.xz | |
New plugin: FFT, A frequency analyzer plugin
There is some more work needed:
- Keymaps are definitely not perfect, touchscreen targets are disabled due to no keymap
- There is no manual yet
Author: Delyan Kratunov
Flyspray: FS#10065
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24587 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/fft/math.h')
| -rw-r--r-- | apps/plugins/fft/math.h | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/apps/plugins/fft/math.h b/apps/plugins/fft/math.h new file mode 100644 index 0000000..450b9aa --- /dev/null +++ b/apps/plugins/fft/math.h @@ -0,0 +1,28 @@ +#ifndef __MATH_H_ +#define __MATH_H_ + +#include <inttypes.h> +#include <math.h> +#include "lib/fixedpoint.h" + +#define Q_MUL(a, b, bits) (( (int64_t) (a) * (int64_t) (b) ) >> (bits)) +#define Q15_MUL(a, b) Q_MUL(a,b,15) +#define Q16_MUL(a, b) Q_MUL(a,b,16) + +#define Q_DIV(a, b, bits) ( (((int64_t) (a)) << (bits)) / (b) ) +#define Q15_DIV(a, b) Q_DIV(a,b,15) +#define Q16_DIV(a, b) Q_DIV(a,b,16) + +#define float_q(a, bits) (int32_t)( ((float)(a)) *(1<<(bits))) +#define float_q15(a) float_q(a, 15) +#define float_q16(a) float_q(a, 16) + +/** + * Fixed point square root via Newton-Raphson. + * @param a square root argument. + * @param fracbits specifies number of fractional bits in argument. + * @return Square root of argument in same fixed point format as input. + */ +int64_t fsqrt64(int64_t a, unsigned int fracbits); + +#endif |