Citlali
Loading...
Searching...
No Matches
downsample.h
Go to the documentation of this file.
1#pragma once
2
3namespace timestream {
4
6public:
7 int factor;
9
10 template <typename DerivedA, typename DerivedB>
11 void downsample(Eigen::DenseBase<DerivedA> &in, Eigen::DenseBase<DerivedB> &out) {
12 // define to save space
13 using Eigen::Matrix;
14 using Eigen::Map;
15 using Eigen::Stride;
16 using Eigen::InnerStride;
17 using Eigen::Dynamic;
18
19 // use eigen stride to skip over points
20 using EigenStrideMap = Map<Matrix<typename DerivedA::Scalar, Dynamic, Dynamic>,0, Stride<Dynamic,Dynamic>>;
21
22 // saving space
23 auto rows = in.rows();
24 auto cols = in.cols();
25
26 out = EigenStrideMap (in.derived().data(), (rows+(factor-1))/factor, cols, Stride<Dynamic,
27 Dynamic>(in.outerStride(),in.innerStride()*factor));
28 }
29};
30
31} // namespace timestream
Definition downsample.h:5
void downsample(Eigen::DenseBase< DerivedA > &in, Eigen::DenseBase< DerivedB > &out)
Definition downsample.h:11
double downsampled_freq_Hz
Definition downsample.h:8
int factor
Definition downsample.h:7
Definition clean.h:10