fix crash when copy'ing latent plugins
[ardour.git] / libs / qm-dsp / maths / Correlation.cpp
1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
2
3 /*
4     QM DSP Library
5
6     Centre for Digital Music, Queen Mary, University of London.
7     This file 2005-2006 Christian Landone.
8
9     This program is free software; you can redistribute it and/or
10     modify it under the terms of the GNU General Public License as
11     published by the Free Software Foundation; either version 2 of the
12     License, or (at your option) any later version.  See the file
13     COPYING included with this distribution for more information.
14 */
15
16 #include "Correlation.h"
17
18 //////////////////////////////////////////////////////////////////////
19 // Construction/Destruction
20 //////////////////////////////////////////////////////////////////////
21
22 Correlation::Correlation()
23 {
24
25 }
26
27 Correlation::~Correlation()
28 {
29
30 }
31
32 void Correlation::doAutoUnBiased(double *src, double *dst, unsigned int length)
33 {
34     double tmp = 0.0;
35     double outVal = 0.0;
36
37     unsigned int i,j;
38
39     for( i = 0; i <  length; i++)
40     {
41         for( j = i; j < length; j++)
42         {
43             tmp += src[ j-i ] * src[ j ];
44         }
45
46
47         outVal = tmp / ( length - i );
48
49         if( outVal <= 0 )
50             dst[ i ] = EPS;
51         else
52             dst[ i ] = outVal;
53
54         tmp = 0.0;
55     }
56 }