00001 #ifndef __J2K__LZH__HuffStat_CPP__ 00002 #define __J2K__LZH__HuffStat_CPP__ 00003 00004 HuffStat::HuffStat() 00005 { 00006 stat = new HUFFINT[ NHUFFSYMBOLS ]; 00007 memset( stat, 0, sizeof(HUFFINT) * NHUFFSYMBOLS ); 00008 } 00009 00010 HuffStat::~HuffStat() 00011 { 00012 delete [] stat; 00013 } 00014 00015 int HuffStat::makeSortedTmp( HuffStatTmpStruct* s ) 00016 { 00017 int total = 0; 00018 for( int j = 0; j < NHUFFSYMBOLS ; j++ ) { 00019 s[ j ].i = j; 00020 s[ j ].n = stat[ j ]; 00021 total += stat[ j ]; 00022 stat[ j ] = HUFFRECALCSTAT( stat[ j ] ); 00023 } 00024 00025 //qsort( s, NHUFFSYMBOLS, sizeof(HuffStatTmpStruct), _cmpStat ); 00026 shellSort( s - 1, NHUFFSYMBOLS ); 00027 return total; 00028 } 00029 00030 #endif