99 "Import_nograde: maps have different nside");
101 for (
int m=0; m<npix_; ++m) map[m] = orig.map[m];
109 #pragma omp for schedule (dynamic,5000) 110 for (m=0; m<npix_; ++m) map[(this->*swapper)(m)] = orig.map[m];
122 int fact = nside_/orig.
nside_;
124 "the larger Nside must be a multiple of the smaller one");
129 #pragma omp for schedule (dynamic,5000) 130 for (m=0; m<orig.npix_; ++m)
133 orig.pix2xyf(m,x,y,f);
134 for (
int j=fact*y; j<fact*(y+1); ++j)
135 for (
int i=fact*x; i<fact*(x+1); ++i)
137 int mypix = xyf2pix(i,j,f);
138 map[mypix] = orig.map[m];
153 void Import_degrade (
const Healpix_Map<T> &orig,
bool pessimistic=
false);
164 if (orig.
nside_ == nside_)
165 Import_nograde(orig);
166 else if (orig.
nside_ < nside_)
167 Import_upgrade(orig);
169 Import_degrade(orig,pessimistic);
173 const T &operator[] (
int pix)
const {
return map[pix]; }
175 T &operator[] (
int pix) {
return map[pix]; }
181 swapfunc swapper = (scheme_ ==
NEST) ?
188 int istart = cycle[m];
190 T pixbuf = map[istart];
191 int iold = istart, inew = (this->*swapper)(istart);
192 while (inew != istart)
194 map[iold] = map[inew];
196 inew = (this->*swapper)(inew);
209 for (
tsize i=0; i<4; ++i)
213 { res+=T(val*wgt[i]); wtot+=wgt[i]; }
222 get_interpol (ptg, pix, wgt);
223 return interpolation (pix, wgt);
233 void minmax (T &Min, T &Max)
const;
245 kahan_adder<double> adder;
247 for (
int m=0; m<npix_; ++m)
249 { ++pix; adder.add(map[m]); }
256 for (
int m=0; m<npix_; ++m)
264 for (
int m=0; m<npix_; ++m)
277 for (
int m=0; m<npix_; ++m)
279 { ++pix; result+=map[m]*map[m]; }
289 for (
int m=0; m<npix_; ++m)
291 { result = max(result,abs(map[m])); }
298 for (
int m=0; m<npix_; ++m)
308 for (
int m=0; m<npix_; ++m)
310 { map[m]=0.; ++res; }
bool fullyDefined() const
void SetNside(int nside, Healpix_Ordering_Scheme scheme)
void swap(Healpix_Map &other)
void Set(arr< T > &data, Healpix_Ordering_Scheme scheme)
void transfer(arrT &other)
Healpix_Map(const arr< T > &data, Healpix_Ordering_Scheme scheme)
T interpolated_value(const pointing &ptg) const
void Import(const Healpix_Map< T > &orig, bool pessimistic=false)
tsize replaceUndefWith0()
void SetNside(I nside, Healpix_Ordering_Scheme scheme)
void swap(T_Healpix_Base &other)
void Set(int order, Healpix_Ordering_Scheme scheme)
void Set(int order, Healpix_Ordering_Scheme scheme)
static I npix2nside(I npix)
#define planck_assert(testval, msg)
const double Healpix_undef
Healpix value representing "undefined".
Healpix_Map(int order, Healpix_Ordering_Scheme scheme)
void Import_nograde(const Healpix_Map< T > &orig)
T interpolation(const fix_arr< int, 4 > &pix, const fix_arr< double, 4 > &wgt) const
Healpix_Map(int nside, Healpix_Ordering_Scheme scheme, const nside_dummy)
const arr< T > & Map() const
void Import_upgrade(const Healpix_Map< T > &orig)
Healpix_Ordering_Scheme scheme_