10 #ifndef _HLLTYPES_HPP_
11 #define _HLLTYPES_HPP_
20 #include <QtCore/QDataStream>
24 namespace hllDataTypes
234 template <
typename inputContainerType,
typename outputContainerType>
235 void CASS2HLL(
const inputContainerType& CASSMatrix,
236 outputContainerType& HLLMatrix,
237 size_t quadrantColumns,
241 typename inputContainerType::const_iterator cassquadrant0(CASSMatrix.begin());
242 typename inputContainerType::const_iterator cassquadrant1(CASSMatrix.begin()+quadrantColumns);
243 typename inputContainerType::const_reverse_iterator cassquadrant2(CASSMatrix.rbegin()+quadrantColumns);
244 typename inputContainerType::const_reverse_iterator cassquadrant3(CASSMatrix.rbegin());
246 typename outputContainerType::iterator HLL(HLLMatrix.begin());
248 for (
size_t quadrantRow(0); quadrantRow < quadrantRows; ++quadrantRow)
250 copy(cassquadrant0,cassquadrant0+quadrantColumns,HLL);
251 advance(HLL,quadrantColumns);
252 copy(cassquadrant2,cassquadrant2+quadrantColumns,HLL);
253 advance(HLL,quadrantColumns);
254 copy(cassquadrant3,cassquadrant3+quadrantColumns,HLL);
255 advance(HLL,quadrantColumns);
256 copy(cassquadrant1,cassquadrant1+quadrantColumns,HLL);
257 advance(HLL,quadrantColumns);
259 advance(cassquadrant0,CASSColumns);
260 advance(cassquadrant1,CASSColumns);
261 advance(cassquadrant2,CASSColumns);
262 advance(cassquadrant3,CASSColumns);
321 template <
typename inputContainerType,
typename outputContainerType>
323 outputContainerType& CASSMatrix,
324 size_t quadrantColumns,
328 typename inputContainerType::const_iterator hllquadrant0(HLLMatrix.begin());
329 typename inputContainerType::const_reverse_iterator hllquadrant1(HLLMatrix.rbegin()+2*quadrantColumns);
330 typename inputContainerType::const_reverse_iterator hllquadrant2(HLLMatrix.rbegin()+1*quadrantColumns);
331 typename inputContainerType::const_iterator hllquadrant3(HLLMatrix.begin()+3*quadrantColumns);
333 typename outputContainerType::iterator
cass(CASSMatrix.begin());
336 for (
size_t quadrantRow(0); quadrantRow < quadrantRows; ++quadrantRow)
338 copy(hllquadrant0,hllquadrant0+quadrantColumns,
cass);
339 advance(
cass,quadrantColumns);
340 copy(hllquadrant3,hllquadrant3+quadrantColumns,
cass);
341 advance(
cass,quadrantColumns);
343 advance(hllquadrant0,HLLColumns);
344 advance(hllquadrant3,HLLColumns);
347 for (
size_t quadrantRow(0); quadrantRow < quadrantRows; ++quadrantRow)
349 copy(hllquadrant1,hllquadrant1+quadrantColumns,
cass);
350 advance(
cass,quadrantColumns);
351 copy(hllquadrant2,hllquadrant2+quadrantColumns,
cass);
352 advance(
cass,quadrantColumns);
354 advance(hllquadrant1,HLLColumns);
355 advance(hllquadrant2,HLLColumns);
void HLL2CASS(const inputContainerType &HLLMatrix, outputContainerType &CASSMatrix, size_t quadrantColumns, size_t quadrantRows, size_t HLLColumns)
convert a linearised matrix in the hll format to the CASS format
void CASS2HLL(const inputContainerType &CASSMatrix, outputContainerType &HLLMatrix, size_t quadrantColumns, size_t quadrantRows, size_t CASSColumns)
convert a linearised matrix in the CASS format to the hll format
double sigma
noise sigma value of pixel
std::vector< pixel > frame_t
define a frame
int16_t mean
offset mean value of pixel (common mode corrected)
int16_t pixel
define a pixel
struct describing the statistics saved in a HLL Darkcal file
double offset
offset mean value of pixel (raw)