Arithmetic coding/As a generalized change of radix: Difference between revisions

m
→‎{{header|Perl}}: Optimized the decoding process
m (→‎{{header|Perl}}: minor code simplification)
m (→‎{{header|Perl}}: Optimized the decoding process)
Line 256:
# frequencies of all previously occurring symbols
foreach my $c (@chars) {
$L->bmuladd($base, $cf{$c} * $pf);
$pf->bmul($freq{$c});
}
Line 301:
# Decode the input number
my $decoded = '';
for (my $ipow = $base**($base - 1) ; $ipow >= 0 ; $i--pow /= $base) {
my $div = ($enc / $pow);
 
my $pow = $base**$i;
my $div = ($enc / $pow);
 
my $c = $dict{$div};
Line 310 ⟶ 308:
my $cv = $cf{$c};
 
my $remenc = ($enc - $pow * $cv) / $fv;
 
$enc = $rem;
$decoded .= $c;
}
2,747

edits