/// Return the leaves of at `position` of all oracle. `result[i][j]` is leaf
/// `i` at oracle `j`.
Return the leaves of at `position` of all oracle.
Return the leaves of at ` position ` of all oracle .
pub fn query(
        &mut self,
        position: &[Vec<Boolean<F>>],
    ) -> Result<Vec<Vec<FpVar<F>>>, SynthesisError> {
        // convert the position to coset_index
        let log_coset_size = self.get_info().localization_parameter;
        let log_num_cosets = ark_std::log2(self.oracle_length()) as usize - log_coset_size;
        let log_oracle_length = ark_std::log2(self.oracle_length()) as usize;
        assert_eq!(log_oracle_length, log_coset_size + log_num_cosets);
        // pad position to appropriate length
        let position = position
            .iter()
            .map(|bits| fit_bits_to_length(bits, log_oracle_length))
            .collect::<Vec<_>>();
        // coset index = position % num_cosets = the least significant `log_num_cosets`
        // bits of pos element index in coset = position / num_cosets = all
        // other bits
        let (coset_index, element_index_in_coset) =
            point_query_to_coset_query(&position, log_num_cosets);
        let queried_coset = self.query_coset_without_tracer(&coset_index);
        coset_query_response_to_point_query_response(queried_coset, element_index_in_coset)
    }
pub fn query ( & mut self , position : & [ Vec < Boolean < F > > ] , ) -> Result < Vec < Vec < FpVar < F > > > , SynthesisError > { // convert the position to coset_index let log_coset_size = self . get_info ( ) . localization_parameter ; let log_num_cosets = ark_std :: log2 ( self . oracle_length ( ) ) as usize - log_coset_size ; let log_oracle_length = ark_std :: log2 ( self . oracle_length ( ) ) as usize ; assert_eq ! ( log_oracle_length log_coset_size log_num_cosets ) ; // pad position to appropriate length let position = position . iter ( ) . map ( | bits | fit_bits_to_length ( bits , log_oracle_length ) ) . collect :: < Vec < _ > > ( ) ; // coset index = position % num_cosets = the least significant `log_num_cosets` // bits of pos element index in coset = position / num_cosets = all // other bits let ( coset_index , element_index_in_coset ) = point_query_to_coset_query ( & position , log_num_cosets ) ; let queried_coset = self . query_coset_without_tracer ( & coset_index ) ; coset_query_response_to_point_query_response ( queried_coset , element_index_in_coset ) }
Return the leaves of at `position` of all oracle.
Return the leaves of at ` position ` of all oracle .
&mut self
position
&[Vec<Boolean<F>>]