Skip to content

Commit 4d210c3

Browse files
committed
Speed up encoding
pre-compute quotient/remainder together
1 parent 0a19119 commit 4d210c3

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/lib.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -537,7 +537,11 @@ unsafe fn encode_impl(
537537

538538
while digit_index < digits {
539539
write_idx = write_idx.wrapping_sub(1);
540-
*buf.get_unchecked_mut(write_idx) = *encode_table.get_unchecked((u64_num % BASE) as usize);
540+
541+
let quotient = u64_num / BASE;
542+
let remainder = u64_num - quotient * BASE;
543+
544+
*buf.get_unchecked_mut(write_idx) = *encode_table.get_unchecked(remainder as usize);
541545

542546
digit_index = digit_index.wrapping_add(1);
543547
match digit_index {
@@ -546,7 +550,7 @@ unsafe fn encode_impl(
546550
num /= BASE_TO_10;
547551
}
548552
20 => u64_num = num as u64,
549-
_ => u64_num /= BASE,
553+
_ => u64_num = quotient,
550554
}
551555
}
552556

0 commit comments

Comments
 (0)