MCPcopy Create free account
hub / github.com/LASzip/LASzip / ~IntegerCompressor

Method ~IntegerCompressor

src/integercompressor.cpp:159–217  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

157}
158
159IntegerCompressor::~IntegerCompressor()
160{
161 U32 i;
162 if (mBits)
163 {
164 for (i = 0; i < contexts; i++)
165 {
166 if (enc) enc->destroySymbolModel(mBits[i]);
167 else dec->destroySymbolModel(mBits[i]);
168 }
169 delete [] mBits;
170 }
171#ifndef COMPRESS_ONLY_K
172 if (mCorrector)
173 {
174 if (enc) enc->destroyBitModel((ArithmeticBitModel*)mCorrector[0]);
175 else dec->destroyBitModel((ArithmeticBitModel*)mCorrector[0]);
176 for (i = 1; i <= corr_bits; i++)
177 {
178 if (enc) enc->destroySymbolModel(mCorrector[i]);
179 else dec->destroySymbolModel(mCorrector[i]);
180 }
181 delete [] mCorrector;
182 }
183#endif
184
185#ifdef CREATE_HISTOGRAMS
186 if (end)
187 {
188 int total_number = 0;
189 double total_entropy = 0.0f;
190 double total_raw = 0.0f;
191 for (int k = 0; k <= corr_bits; k++)
192 {
193 int number = 0;
194 int different = 0;
195 for (int c = 0; c <= (1<<k); c++)
196 {
197 number += corr_histogram[k][c];
198 }
199 double prob,entropy = 0.0f;
200 for (c = 0; c <= (1<<k); c++)
201 {
202 if (corr_histogram[k][c])
203 {
204 different++;
205 prob = (double)corr_histogram[k][c]/(double)number;
206 entropy -= log(prob)*prob/log(2.0);
207 }
208 }
209 LASMessage(LAS_INFO, "k: %d number: %d different: %d entropy: %lg raw: %1.1f",k,number,different,entropy, (float)(k?k:1));
210 total_number += number;
211 total_entropy += (entropy*number);
212 total_raw += ((k?k:1)*number);
213 }
214 LASMessage(LAS_INFO, "TOTAL: number: %d entropy: %lg raw: %lg",total_number,total_entropy/total_number,total_raw/total_number);
215 }
216#endif

Callers

nothing calls this directly

Calls 4

logFunction · 0.85
LASMessageFunction · 0.85
destroySymbolModelMethod · 0.45
destroyBitModelMethod · 0.45

Tested by

no test coverage detected