Changes in src/mathutils.c [ee6ca74:8982328]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/mathutils.c ¶
ree6ca74 r8982328 26 26 #include "musicutils.h" 27 27 #include "config.h" 28 29 #ifdef HAVE_ACCELERATE 30 #include <Accelerate/Accelerate.h> 31 #endif 32 33 #if !HAVE_AUBIO_DOUBLE 34 #define aubio_cblas_xswap cblas_sswap 35 #define aubio_cblas_dot cblas_sdot 36 #else 37 #define aubio_cblas_xswap cblas_dswap 38 #define aubio_cblas_dot cblas_ddot 39 #endif 28 40 29 41 /** Window types */ … … 163 175 return tmp / (smpl_t) (s->length); 164 176 #else 165 aubio_vDSP_meanv(s->data, 1, &tmp, s->length); 177 #if !HAVE_AUBIO_DOUBLE 178 vDSP_meanv(s->data, 1, &tmp, s->length); 179 #else /* HAVE_AUBIO_DOUBLE */ 180 vDSP_meanvD(s->data, 1, &tmp, s->length); 181 #endif /* HAVE_AUBIO_DOUBLE */ 166 182 return tmp; 167 183 #endif /* HAVE_ACCELERATE */ … … 178 194 } 179 195 #else 180 aubio_vDSP_sve(s->data, 1, &tmp, s->length); 196 #if !HAVE_AUBIO_DOUBLE 197 vDSP_sve(s->data, 1, &tmp, s->length); 198 #else /* HAVE_AUBIO_DOUBLE */ 199 vDSP_sveD(s->data, 1, &tmp, s->length); 200 #endif /* HAVE_AUBIO_DOUBLE */ 181 201 #endif /* HAVE_ACCELERATE */ 182 202 return tmp; … … 194 214 #else 195 215 smpl_t tmp = 0.; 196 aubio_vDSP_maxv(s->data, 1, &tmp, s->length); 216 #if !HAVE_AUBIO_DOUBLE 217 vDSP_maxv(s->data, 1, &tmp, s->length); 218 #else 219 vDSP_maxvD(s->data, 1, &tmp, s->length); 220 #endif 197 221 #endif 198 222 return tmp; … … 210 234 #else 211 235 smpl_t tmp = 0.; 212 aubio_vDSP_minv(s->data, 1, &tmp, s->length); 236 #if !HAVE_AUBIO_DOUBLE 237 vDSP_minv(s->data, 1, &tmp, s->length); 238 #else 239 vDSP_minvD(s->data, 1, &tmp, s->length); 240 #endif 213 241 #endif 214 242 return tmp; … … 228 256 smpl_t tmp = 0.; 229 257 uint_t pos = 0.; 230 aubio_vDSP_minvi(s->data, 1, &tmp, (vDSP_Length *)&pos, s->length); 258 #if !HAVE_AUBIO_DOUBLE 259 vDSP_minvi(s->data, 1, &tmp, (vDSP_Length *)&pos, s->length); 260 #else 261 vDSP_minviD(s->data, 1, &tmp, (vDSP_Length *)&pos, s->length); 262 #endif 231 263 #endif 232 264 return pos; … … 246 278 smpl_t tmp = 0.; 247 279 uint_t pos = 0.; 248 aubio_vDSP_maxvi(s->data, 1, &tmp, (vDSP_Length *)&pos, s->length); 280 #if !HAVE_AUBIO_DOUBLE 281 vDSP_maxvi(s->data, 1, &tmp, (vDSP_Length *)&pos, s->length); 282 #else 283 vDSP_maxviD(s->data, 1, &tmp, (vDSP_Length *)&pos, s->length); 284 #endif 249 285 #endif 250 286 return pos; … … 254 290 fvec_shift (fvec_t * s) 255 291 { 292 #ifndef HAVE_ACCELERATE 256 293 uint_t j; 257 294 for (j = 0; j < s->length / 2; j++) { 258 295 ELEM_SWAP (s->data[j], s->data[j + s->length / 2]); 259 296 } 297 #else 298 uint_t half = s->length / 2; 299 aubio_cblas_xswap(half, s->data, 1, s->data + half, 1); 300 #endif 260 301 } 261 302 … … 264 305 { 265 306 smpl_t energy = 0.; 307 #ifndef HAVE_ACCELERATE 266 308 uint_t j; 267 309 for (j = 0; j < f->length; j++) { 268 310 energy += SQR (f->data[j]); 269 311 } 312 #else 313 energy = aubio_cblas_dot(f->length, f->data, 1, f->data, 1); 314 #endif 270 315 return energy / f->length; 271 316 }
Note: See TracChangeset
for help on using the changeset viewer.