crblib/farithc.c
/*
 * The Bit Queue method has an extremely simple decoder, because
 *  the output stream contains all bits of the code exactly as they
 *  would be computed by straightforward arithmetic
 *
 */
The Bit Queue method has an extremely simple decoder, because
the output stream contains all bits of the code exactly as they
would be computed by straightforward arithmetic
The Bit Queue method has an extremely simple decoder because the output stream contains all bits of the code exactly as they would be computed by straightforward arithmetic
void FileArithDecodeRangeRemove(struct FileAI * FileAI,long symlow,long symhigh,long symtot)
{
register long regrange,regcode;
long lowincr;
bool bit;
regrange = FileAI->range;
regcode = FileAI->code;
lowincr = ( regrange * symlow ) / symtot;
regcode -= lowincr;
regrange = (( regrange * symhigh ) / symtot) - lowincr;
while ( regrange <= Half )
  {
  regrange += regrange;
  FileBitIO_ReadBit(FileAI->BII,bit);
  regcode += regcode + bit;
  }
FileAI->range = regrange;
FileAI->code  = regcode;
return;
}
void FileArithDecodeRangeRemove ( struct FileAI * FileAI , long symlow , long symhigh , long symtot ) { register long regrange , regcode ; long lowincr ; bool bit ; regrange = FileAI -> range ; regcode = FileAI -> code ; lowincr = ( regrange * symlow ) / symtot ; regcode -= lowincr ; regrange = ( ( regrange * symhigh ) / symtot ) - lowincr ; while ( regrange <= Half ) { regrange += regrange ; FileBitIO_ReadBit ( FileAI -> BII , bit ) ; regcode += regcode + bit ; } FileAI -> range = regrange ; FileAI -> code = regcode ; return ; }
The Bit Queue method has an extremely simple decoder, because
  the output stream contains all bits of the code exactly as they
  would be computed by straightforward arithmetic
The Bit Queue method has an extremely simple decoder because the output stream contains all bits of the code exactly as they would be computed by straightforward arithmetic