#include "AliHLTDataDeflaterSimple.h"
#include <memory>
#include <algorithm>
#include <iostream>
ClassImp(AliHLTDataDeflaterSimple)
AliHLTDataDeflaterSimple::AliHLTDataDeflaterSimple()
: AliHLTDataDeflater()
, fParameterDefinitions()
{
}
AliHLTDataDeflaterSimple::~AliHLTDataDeflaterSimple()
{
Clear();
}
int AliHLTDataDeflaterSimple::AddParameterDefinition(const char* name, int bitLength, int reducedBitLength)
{
fParameterDefinitions.push_back(AliHLTDataDeflaterParameter(name, bitLength, reducedBitLength));
int memberId=fParameterDefinitions.size()-1;
if (DoStatistics()) {
AddHistogram(memberId, name, bitLength);
}
return memberId;
}
bool AliHLTDataDeflaterSimple::OutputParameterBits( int memberId, AliHLTUInt64_t const & value )
{
if (memberId>=(int)fParameterDefinitions.size()) return false;
AliHLTUInt32_t switchBit=fParameterDefinitions[memberId].SwitchBit(value);
AliHLTUInt64_t v=fParameterDefinitions[memberId].Value(value);
AliHLTUInt32_t length=fParameterDefinitions[memberId].ValueLength(value);
fParameterDefinitions[memberId].IncrementBitCount(value);
if (DoStatistics())
FillStatistics(memberId, length, value);
if (!OutputBit(switchBit)) return false;
return OutputBits(v, length);
}
void AliHLTDataDeflaterSimple::Clear(Option_t * option)
{
unsigned i=0;
for (vector<AliHLTDataDeflaterParameter>::iterator m=fParameterDefinitions.begin();
m!=fParameterDefinitions.end(); m++, i++) {
m->ResetBitCount();
}
AliHLTDataDeflater::Clear(option);
}
void AliHLTDataDeflaterSimple::Print(Option_t *option) const
{
Print(cout, option);
}
void AliHLTDataDeflaterSimple::Print(ostream& out, Option_t *option) const
{
out << "AliHLTDataDeflaterSimple:" << endl;
AliHLTUInt64_t bitCount=0;
AliHLTUInt64_t fullSize=0;
for (vector<AliHLTDataDeflaterParameter>::const_iterator m=fParameterDefinitions.begin();
m!=fParameterDefinitions.end(); m++) {
cout << " "; m->Print(option);
bitCount+=m->GetBitCount();
fullSize+=m->GetValueCount()*m->GetBitLength();
}
out << " total: " << bitCount << "/" << fullSize << " " << (fullSize>0?float(bitCount)/fullSize:0.0) << endl;
}
void AliHLTDataDeflaterSimple::AliHLTDataDeflaterParameter::Print(const char* ) const
{
cout << fName << " (" << fFullBitLength << "," << fReducedBitLength << "): "
<< fValueCount << " entries "
<< fBitCount << "/" << fFullBitLength*fValueCount;
if (fFullBitLength && fValueCount) {
cout << " " << float(fBitCount)/(fValueCount*fFullBitLength);
}
cout << endl;
}
ostream& operator<<(ostream &out, const AliHLTDataDeflaterSimple& me)
{
me.Print(out);
return out;
}
AliHLTDataDeflaterSimple.cxx:1 AliHLTDataDeflaterSimple.cxx:2 AliHLTDataDeflaterSimple.cxx:3 AliHLTDataDeflaterSimple.cxx:4 AliHLTDataDeflaterSimple.cxx:5 AliHLTDataDeflaterSimple.cxx:6 AliHLTDataDeflaterSimple.cxx:7 AliHLTDataDeflaterSimple.cxx:8 AliHLTDataDeflaterSimple.cxx:9 AliHLTDataDeflaterSimple.cxx:10 AliHLTDataDeflaterSimple.cxx:11 AliHLTDataDeflaterSimple.cxx:12 AliHLTDataDeflaterSimple.cxx:13 AliHLTDataDeflaterSimple.cxx:14 AliHLTDataDeflaterSimple.cxx:15 AliHLTDataDeflaterSimple.cxx:16 AliHLTDataDeflaterSimple.cxx:17 AliHLTDataDeflaterSimple.cxx:18 AliHLTDataDeflaterSimple.cxx:19 AliHLTDataDeflaterSimple.cxx:20 AliHLTDataDeflaterSimple.cxx:21 AliHLTDataDeflaterSimple.cxx:22 AliHLTDataDeflaterSimple.cxx:23 AliHLTDataDeflaterSimple.cxx:24 AliHLTDataDeflaterSimple.cxx:25 AliHLTDataDeflaterSimple.cxx:26 AliHLTDataDeflaterSimple.cxx:27 AliHLTDataDeflaterSimple.cxx:28 AliHLTDataDeflaterSimple.cxx:29 AliHLTDataDeflaterSimple.cxx:30 AliHLTDataDeflaterSimple.cxx:31 AliHLTDataDeflaterSimple.cxx:32 AliHLTDataDeflaterSimple.cxx:33 AliHLTDataDeflaterSimple.cxx:34 AliHLTDataDeflaterSimple.cxx:35 AliHLTDataDeflaterSimple.cxx:36 AliHLTDataDeflaterSimple.cxx:37 AliHLTDataDeflaterSimple.cxx:38 AliHLTDataDeflaterSimple.cxx:39 AliHLTDataDeflaterSimple.cxx:40 AliHLTDataDeflaterSimple.cxx:41 AliHLTDataDeflaterSimple.cxx:42 AliHLTDataDeflaterSimple.cxx:43 AliHLTDataDeflaterSimple.cxx:44 AliHLTDataDeflaterSimple.cxx:45 AliHLTDataDeflaterSimple.cxx:46 AliHLTDataDeflaterSimple.cxx:47 AliHLTDataDeflaterSimple.cxx:48 AliHLTDataDeflaterSimple.cxx:49 AliHLTDataDeflaterSimple.cxx:50 AliHLTDataDeflaterSimple.cxx:51 AliHLTDataDeflaterSimple.cxx:52 AliHLTDataDeflaterSimple.cxx:53 AliHLTDataDeflaterSimple.cxx:54 AliHLTDataDeflaterSimple.cxx:55 AliHLTDataDeflaterSimple.cxx:56 AliHLTDataDeflaterSimple.cxx:57 AliHLTDataDeflaterSimple.cxx:58 AliHLTDataDeflaterSimple.cxx:59 AliHLTDataDeflaterSimple.cxx:60 AliHLTDataDeflaterSimple.cxx:61 AliHLTDataDeflaterSimple.cxx:62 AliHLTDataDeflaterSimple.cxx:63 AliHLTDataDeflaterSimple.cxx:64 AliHLTDataDeflaterSimple.cxx:65 AliHLTDataDeflaterSimple.cxx:66 AliHLTDataDeflaterSimple.cxx:67 AliHLTDataDeflaterSimple.cxx:68 AliHLTDataDeflaterSimple.cxx:69 AliHLTDataDeflaterSimple.cxx:70 AliHLTDataDeflaterSimple.cxx:71 AliHLTDataDeflaterSimple.cxx:72 AliHLTDataDeflaterSimple.cxx:73 AliHLTDataDeflaterSimple.cxx:74 AliHLTDataDeflaterSimple.cxx:75 AliHLTDataDeflaterSimple.cxx:76 AliHLTDataDeflaterSimple.cxx:77 AliHLTDataDeflaterSimple.cxx:78 AliHLTDataDeflaterSimple.cxx:79 AliHLTDataDeflaterSimple.cxx:80 AliHLTDataDeflaterSimple.cxx:81 AliHLTDataDeflaterSimple.cxx:82 AliHLTDataDeflaterSimple.cxx:83 AliHLTDataDeflaterSimple.cxx:84 AliHLTDataDeflaterSimple.cxx:85 AliHLTDataDeflaterSimple.cxx:86 AliHLTDataDeflaterSimple.cxx:87 AliHLTDataDeflaterSimple.cxx:88 AliHLTDataDeflaterSimple.cxx:89 AliHLTDataDeflaterSimple.cxx:90 AliHLTDataDeflaterSimple.cxx:91 AliHLTDataDeflaterSimple.cxx:92 AliHLTDataDeflaterSimple.cxx:93 AliHLTDataDeflaterSimple.cxx:94 AliHLTDataDeflaterSimple.cxx:95 AliHLTDataDeflaterSimple.cxx:96 AliHLTDataDeflaterSimple.cxx:97 AliHLTDataDeflaterSimple.cxx:98 AliHLTDataDeflaterSimple.cxx:99 AliHLTDataDeflaterSimple.cxx:100 AliHLTDataDeflaterSimple.cxx:101 AliHLTDataDeflaterSimple.cxx:102 AliHLTDataDeflaterSimple.cxx:103 AliHLTDataDeflaterSimple.cxx:104 AliHLTDataDeflaterSimple.cxx:105 AliHLTDataDeflaterSimple.cxx:106 AliHLTDataDeflaterSimple.cxx:107 AliHLTDataDeflaterSimple.cxx:108 AliHLTDataDeflaterSimple.cxx:109 AliHLTDataDeflaterSimple.cxx:110 AliHLTDataDeflaterSimple.cxx:111 AliHLTDataDeflaterSimple.cxx:112 AliHLTDataDeflaterSimple.cxx:113 AliHLTDataDeflaterSimple.cxx:114 AliHLTDataDeflaterSimple.cxx:115 AliHLTDataDeflaterSimple.cxx:116 AliHLTDataDeflaterSimple.cxx:117 AliHLTDataDeflaterSimple.cxx:118 AliHLTDataDeflaterSimple.cxx:119 AliHLTDataDeflaterSimple.cxx:120 AliHLTDataDeflaterSimple.cxx:121 AliHLTDataDeflaterSimple.cxx:122 AliHLTDataDeflaterSimple.cxx:123 AliHLTDataDeflaterSimple.cxx:124 AliHLTDataDeflaterSimple.cxx:125 AliHLTDataDeflaterSimple.cxx:126 AliHLTDataDeflaterSimple.cxx:127 AliHLTDataDeflaterSimple.cxx:128