Mercurial > hg > qm-dsp
view ext/clapack/src/pow_di.c @ 456:05378924b433
Fix a rounding issue, returning key value 25
The two bins above center B minor are treated as 25. This patch shifts also
the input chromagram by 2 to have center C on 1 like the profiles
author | Daniel Schürmann <daschuer@mixxx.org> |
---|---|
date | Sat, 11 May 2019 02:08:22 +0200 |
parents | 905e45637745 |
children |
line wrap: on
line source
#include "f2c.h" #ifdef __cplusplus extern "C" { #endif #ifdef KR_headers double pow_di(ap, bp) doublereal *ap; integer *bp; #else double pow_di(doublereal *ap, integer *bp) #endif { double pow, x; integer n; unsigned long u; pow = 1; x = *ap; n = *bp; if(n != 0) { if(n < 0) { n = -n; x = 1/x; } for(u = n; ; ) { if(u & 01) pow *= x; if(u >>= 1) x *= x; else break; } } return(pow); } #ifdef __cplusplus } #endif