
#ifndef ___LOCALIZATIONFUNCTIONMUSIC_HPP___
#define ___LOCALIZATIONFUNCTIONMUSIC_HPP___

#include <vector>
#include <algorithm>

#include "hark-lib/matrix.h"

//    #include <boost/numeric/ublas/matrix.hpp>
//    #include <boost/numeric/ublas/matrix_proxy.hpp>
//    #include <boost/multi_array.hpp>

//    typedef boost::multi_array<fcmatrix, 2> AMatrixArray;
//    void ReadTransferFunction(const char* filename,
//                          AMatrixArray& A,
//                          std::vector<int>& search_dir,
//                          std::vector<int>& search_range);

using namespace hark;

void AddToCorrelation(std::vector<Matrix<std::complex<float> > >& Rxx,
                      const std::vector<bool>& UsesFreq,
                      Matrix<std::complex<float> >& X);
void NormalizeCorrelation(std::vector<Matrix<std::complex<float> > >& Rxx,
                          const std::vector<bool>& UsesFreq,
                          int sum_count);
void ClearCorrelation(std::vector<Matrix<std::complex<float> > >& Rxx,
                      const std::vector<bool>& UsesFreq);
float MaxOfAbsValue(Matrix<std::complex<float> >& A);

#endif //___LOCALIZATIONFUNCTIONMUSIC_HPP___
