source: src/vecutils.c @ 1cc007c

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/pydocstringsfeature/timestretchfix/ffmpeg5pitchshiftsamplertimestretchyinfft+
Last change on this file since 1cc007c was 6940b55, checked in by Paul Brossier <piem@piem.org>, 15 years ago

src/vecutils.{c,h}: expand header and add documentation, add cvec_pow, fix SAFE_LOG macros

  • Property mode set to 100644
File size: 1.2 KB
Line 
1#include "config.h"
2#include "types.h"
3#include "fvec.h"
4#include "cvec.h"
5#include "aubio_priv.h"
6#include "vecutils.h"
7
8#define AUBIO_OP(OPNAME, OP, TYPE, OBJ) \
9void TYPE ## _ ## OPNAME (TYPE ## _t *o) \
10{ \
11  uint_t i,j; \
12  for (i = 0; i < o->channels; i++) { \
13    for (j = 0; j < o->length; j++) { \
14      o->OBJ[i][j] = OP (o->OBJ[i][j]); \
15    } \
16  } \
17}
18
19#define AUBIO_OP_C_AND_F(OPNAME, OP) \
20  AUBIO_OP(OPNAME, OP, fvec, data) \
21  AUBIO_OP(OPNAME, OP, cvec, norm)
22
23AUBIO_OP_C_AND_F(exp, EXP)
24AUBIO_OP_C_AND_F(cos, COS)
25AUBIO_OP_C_AND_F(sin, SIN)
26AUBIO_OP_C_AND_F(abs, ABS)
27AUBIO_OP_C_AND_F(sqrt, SQRT)
28AUBIO_OP_C_AND_F(log10, SAFE_LOG10)
29AUBIO_OP_C_AND_F(log, SAFE_LOG)
30AUBIO_OP_C_AND_F(floor, FLOOR)
31AUBIO_OP_C_AND_F(ceil, CEIL)
32AUBIO_OP_C_AND_F(round, ROUND)
33
34//AUBIO_OP_C_AND_F(pow, POW)
35void fvec_pow (fvec_t *s, smpl_t power)
36{
37  uint_t i,j;
38  for (i = 0; i < s->channels; i++) {
39    for (j = 0; j < s->length; j++) {
40      s->data[i][j] = POW(s->data[i][j], power);
41    }
42  }
43}
44
45void cvec_pow (cvec_t *s, smpl_t power)
46{
47  uint_t i,j;
48  for (i = 0; i < s->channels; i++) {
49    for (j = 0; j < s->length; j++) {
50      s->norm[i][j] = POW(s->norm[i][j], power);
51    }
52  }
53}
54
Note: See TracBrowser for help on using the repository browser.