src/io/ioutils.h: add functions to check samplerate and channels, use in sink_*.c
[aubio.git] / src / vecutils.h
1 /*
2   Copyright (C) 2009-2015 Paul Brossier <piem@aubio.org>
3
4   This file is part of aubio.
5
6   aubio is free software: you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation, either version 3 of the License, or
9   (at your option) any later version.
10
11   aubio is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with aubio.  If not, see <http://www.gnu.org/licenses/>.
18
19 */
20
21 /** \file
22
23   Utility functions for ::fvec_t
24
25  */
26
27 #ifndef AUBIO_VECUTILS_H
28 #define AUBIO_VECUTILS_H
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 /** compute \f$e^x\f$ of each vector elements
35
36   \param s vector to modify
37
38 */
39 void fvec_exp (fvec_t *s);
40
41 /** compute \f$cos(x)\f$ of each vector elements
42
43   \param s vector to modify
44
45 */
46 void fvec_cos (fvec_t *s);
47
48 /** compute \f$sin(x)\f$ of each vector elements
49
50   \param s vector to modify
51
52 */
53 void fvec_sin (fvec_t *s);
54
55 /** compute the \f$abs(x)\f$ of each vector elements
56
57   \param s vector to modify
58
59 */
60 void fvec_abs (fvec_t *s);
61
62 /** compute the \f$sqrt(x)\f$ of each vector elements
63
64   \param s vector to modify
65
66 */
67 void fvec_sqrt (fvec_t *s);
68
69 /** compute the \f$log10(x)\f$ of each vector elements
70
71   \param s vector to modify
72
73 */
74 void fvec_log10 (fvec_t *s);
75
76 /** compute the \f$log(x)\f$ of each vector elements
77
78   \param s vector to modify
79
80 */
81 void fvec_log (fvec_t *s);
82
83 /** compute the \f$floor(x)\f$ of each vector elements
84
85   \param s vector to modify
86
87 */
88 void fvec_floor (fvec_t *s);
89
90 /** compute the \f$ceil(x)\f$ of each vector elements
91
92   \param s vector to modify
93
94 */
95 void fvec_ceil (fvec_t *s);
96
97 /** compute the \f$round(x)\f$ of each vector elements
98
99   \param s vector to modify
100
101 */
102 void fvec_round (fvec_t *s);
103
104 /** raise each vector elements to the power pow
105
106   \param s vector to modify
107   \param pow power to raise to
108
109 */
110 void fvec_pow (fvec_t *s, smpl_t pow);
111
112 #ifdef __cplusplus
113 }
114 #endif
115
116 #endif /* AUBIO_VECUTILS_H */