38 template <
typename TContainer ,
typename TIterator>
50 typename TContainer::iterator it;
51 size_t fsize2 = (fsize-1)/2;
52 res.resize(std::distance(dataBeg,dataEnd)+fsize);
53 boost::reverse_iterator<TIterator> reverse_begin(dataEnd);
54 boost::reverse_iterator<TIterator> reverse_end(dataBeg);
56 it = std::copy(reverse_end - fsize2,reverse_end, res.begin() );
57 it = std::copy(dataBeg,dataEnd, it );
58 it = std::copy( reverse_begin, reverse_begin + fsize2, it);
63 typename TContainer::iterator it;
64 size_t fsize2 = (fsize-1)/2;
65 res.resize(std::distance(dataBeg,dataEnd)+fsize);
66 it = std::copy(dataEnd - fsize2,dataEnd, res.begin() );
67 it = std::copy(dataBeg,dataEnd, it );
68 it = std::copy( dataBeg, dataBeg + fsize2, it);
78 #endif // PREPAREDATA_H TContainer::iterator prepareData(TIterator dataBeg, TIterator dataEnd, size_t fsize, TContainer &res, bool mirror=false)
Example Sequence : 1 2 3 4 5; width 5 and mirror false: 4 5 1 2 3 4 5 1 2, if mirror true than: 2 1 1...
EQUISPACEINTERPOL Interpolation on a equidistantly spaced grid.
void filter(const TContainer &data, const TContainer &filter, TContainer &result, bool circular=false, uint32_t sides=2)
Applies linear convolution (filtering) to a univariate time series.