1 #ifndef __STAN__PROB__AUTOCORRELATION_HPP__
2 #define __STAN__PROB__AUTOCORRELATION_HPP__
9 #include <unsupported/Eigen/FFT>
21 size_t fft_next_good_size(
size_t N) {
24 while((m % 2) == 0) m /= 2;
25 while((m % 3) == 0) m /= 3;
26 while((m % 5) == 0) m /= 5;
63 size_t M = fft_next_good_size(N);
67 vector<complex<T> > freqvec;
70 vector<T> centered_signal(y);
71 centered_signal.insert(centered_signal.end(),Mt2-N,0.0);
73 for (
size_t i = 0; i < N; i++)
74 centered_signal[i] -= mean;
76 fft.fwd(freqvec,centered_signal);
77 for (
size_t i = 0; i < Mt2; ++i)
78 freqvec[i] = complex<T>(norm(freqvec[i]), 0.0);
100 for (
size_t i = 0; i < N; ++i) {
104 for (
size_t i = 0; i < N; ++i)
124 template <
typename T>
126 std::vector<T>& ac) {