Minor Bug Fix (#87)
Tom Shen tomshen@berkeley.edu
Wed, 22 Dec 2021 18:13:42 -0800
1 files changed,
4 insertions(+),
7 deletions(-)
jump to
M
src/poly/domain/mod.rs
→
src/poly/domain/mod.rs
@@ -92,7 +92,7 @@ /// For domain `h<g>` with dimension `n`, `position` represented by `query_pos` in big endian form,
/// returns all points of `h*g^{position}<g^{n-query_pos.len()}>` /// /// # Panics - /// This function panics when `query_pos.len() != coset_dim` or `query_pos.len() != self.dim`. + /// This function panics when `query_pos.len() < log2_num_cosets`. pub fn query_position_to_coset( &self, query_pos: &[Boolean<F>],@@ -113,12 +113,9 @@ query_pos: &[Boolean<F>],
codeword_dim: u64, coset_dim: u64, ) -> Vec<Boolean<F>> { - assert!(query_pos.len() == codeword_dim as usize || query_pos.len() == coset_dim as usize); - if query_pos.len() == codeword_dim as usize { - query_pos[0..(query_pos.len() - coset_dim as usize)].to_vec() - } else { - query_pos.to_vec() - } + let log2_num_cosets = (codeword_dim - coset_dim) as usize; + assert!(query_pos.len() >= log2_num_cosets); + query_pos[0..log2_num_cosets].to_vec() } #[cfg(test)]