8 #ifndef EXPLICIT_MAPMAKING_CES_HPP_
9 #define EXPLICIT_MAPMAKING_CES_HPP_
19 Subscan(
int in_idx,
int in_t_first,
int in_n_sample,
Filters& filters)
20 : legendre_(filters.ConcatenetedLegendre(in_n_sample)) {
23 n_sample = in_n_sample;
24 t_last = in_t_first + in_n_sample - 1;
30 const std::vector<double>& legendre_;
31 double Legendre(
int order,
int i_sample)
const {
return legendre_[i_sample + order * n_sample]; }
38 CES(
int n_sample,
const double* data,
const double* pol_angle,
const int* pixel,
const int* ground,
double weight,
Filters& filters);
39 int ComputeKernel(
double threshold=1e-6);
42 void AddSubscan(
int t_first,
int n_sample);
43 void ChangePixelIndexes(
const std::vector<int>& old2new);
44 int id()
const {
return id_; }
45 double weight()
const {
return weight_; }
46 double data(
int t)
const {
return data_[t]; }
47 double data(
int t,
const std::vector<double>& map)
const {
return cos_[t] * map[2 * pixel_[t]] + sin_[t] * map[2 * pixel_[t] + 1]; }
48 double cos(
int t)
const {
return cos_[t]; }
49 double sin(
int t)
const {
return sin_[t]; }
50 int pixel(
int t)
const {
return pixel_[t]; }
51 int n_pol()
const {
return n_pol_; }
52 int n_gt()
const {
return n_gt_; }
53 int n_sub()
const {
return subscans_.size(); }
54 int n_filters()
const {
return n_filters_; }
55 double kernel(
int idx)
const {
return kernel_[idx]; }
56 double ground(
int t)
const {
return ground_[t]; }
57 void ApplyKernel(std::vector<double>* vec);
58 int CompressTimeStreams();
59 const std::list<Subscan>& subscans()
const {
return subscans_; };
62 std::list<Subscan> subscans_;
65 std::vector<double> data_;
66 std::vector<double> cos_;
67 std::vector<double> sin_;
68 std::vector<int> pixel_;
69 std::vector<int> ground_;
70 std::vector<double> kernel_;
75 void AllocateVectors(
int n_sample);
76 void CosSinFromPolAngle(
const std::vector<double>& pol_angle);
80 #endif // EXPLICIT_MAPMAKING_CES_HPP_
Definition: filters.hpp:17
Definition: io_manager.hpp:19
Concatenation of legendre polynomials.