wscript: With --enable-$x, the existence of $x should be mandatory
[aubio.git] / src / vecutils.h
1 /*
2   Copyright (C) 2009 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 and ::cvec_t objects
24
25  */
26
27 #ifndef _VECUTILS_H
28 #define _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 /** compute \f$e^x\f$ of each vector norm elements
113
114   \param s vector to modify
115
116 */
117 void cvec_exp (cvec_t *s);
118
119 /** compute \f$cos(x)\f$ of each vector norm elements
120
121   \param s vector to modify
122
123 */
124 void cvec_cos (cvec_t *s);
125
126 /** compute \f$sin(x)\f$ of each vector norm elements
127
128   \param s vector to modify
129
130 */
131 void cvec_sin (cvec_t *s);
132
133 /** compute the \f$abs(x)\f$ of each vector norm elements
134
135   \param s vector to modify
136
137 */
138 void cvec_abs (cvec_t *s);
139
140 /** compute the \f$sqrt(x)\f$ of each vector norm elements
141
142   \param s vector to modify
143
144 */
145 void cvec_sqrt (cvec_t *s);
146
147 /** compute the \f$log10(x)\f$ of each vector norm elements
148
149   \param s vector to modify
150
151 */
152 void cvec_log10 (cvec_t *s);
153
154 /** compute the \f$log(x)\f$ of each vector norm elements
155
156   \param s vector to modify
157
158 */
159 void cvec_log (cvec_t *s);
160
161 /** compute the \f$floor(x)\f$ of each vector norm elements
162
163   \param s vector to modify
164
165 */
166 void cvec_floor (cvec_t *s);
167
168 /** compute the \f$ceil(x)\f$ of each vector norm elements
169
170   \param s vector to modify
171
172 */
173 void cvec_ceil (cvec_t *s);
174
175 /** compute the \f$round(x)\f$ of each vector norm elements
176
177   \param s vector to modify
178
179 */
180 void cvec_round (cvec_t *s);
181
182 /** raise each vector norm elements to the power pow
183
184   \param s vector to modify
185   \param pow power to raise to
186
187 */
188 void cvec_pow (cvec_t *s, smpl_t pow);
189
190 #ifdef __cplusplus
191 }
192 #endif
193
194 #endif /*_VECUTILS_H*/