From 2e7983fc650788d98da2eecef2d16f63e849e4a0 Mon Sep 17 00:00:00 2001 From: Dennis Ranke Date: Mon, 27 Dec 2021 22:35:53 +0100 Subject: [PATCH] use u8 context entries --- src/context_state.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/context_state.rs b/src/context_state.rs index adec205..062d74d 100644 --- a/src/context_state.rs +++ b/src/context_state.rs @@ -6,7 +6,7 @@ const UPDATE_ADD: u32 = 8; #[derive(Clone)] pub struct ContextState { - contexts: Vec, + contexts: Vec, } pub struct Context<'a> { @@ -17,7 +17,7 @@ pub struct Context<'a> { impl ContextState { pub fn new(size: usize) -> ContextState { ContextState { - contexts: vec![INIT_PROB; size], + contexts: vec![INIT_PROB as u8; size], } } @@ -28,15 +28,15 @@ impl ContextState { impl<'a> Context<'a> { pub fn prob(&self) -> u16 { - self.state.contexts[self.index] + self.state.contexts[self.index] as u16 } pub fn update(&mut self, bit: bool) { let old = self.state.contexts[self.index]; self.state.contexts[self.index] = if bit { - old + ((ONE_PROB - old as u32 + UPDATE_ADD) >> UPDATE_RATE) as u16 + old + ((ONE_PROB - old as u32 + UPDATE_ADD) >> UPDATE_RATE) as u8 } else { - old - ((old + UPDATE_ADD as u16) >> UPDATE_RATE) + old - ((old as u32 + UPDATE_ADD) >> UPDATE_RATE) as u8 }; } }