pub type MultilinearExtensionBorrowed<'a, P> = MultilinearExtension<P, &'a [P]>;
Expand description
Type alias for the common pattern of a MultilinearExtension
backed by borrowed data.
Aliased Type§
struct MultilinearExtensionBorrowed<'a, P> { /* private fields */ }
Implementations
Source§impl<F: Field + AsSinglePacked, Data: Deref<Target = [F]>> MultilinearExtension<F, Data>
impl<F: Field + AsSinglePacked, Data: Deref<Target = [F]>> MultilinearExtension<F, Data>
Sourcepub fn to_single_packed(self) -> MultilinearExtension<F::Packed>
pub fn to_single_packed(self) -> MultilinearExtension<F::Packed>
Convert MultilinearExtension over a scalar to a MultilinearExtension over a packed field with single element.
Source§impl<'a, P: PackedField> MultilinearExtension<P, &'a [P]>
impl<'a, P: PackedField> MultilinearExtension<P, &'a [P]>
pub fn from_values_slice(v: &'a [P]) -> Result<Self, Error>
Source§impl<P, Data> MultilinearExtension<P, Data>
impl<P, Data> MultilinearExtension<P, Data>
pub fn specialize<PE>(self) -> MLEEmbeddingAdapter<P, PE, Data>
Source§impl<'a, P, Data> MultilinearExtension<P, Data>
impl<'a, P, Data> MultilinearExtension<P, Data>
pub fn specialize_arc_dyn<PE>( self, ) -> Arc<dyn MultilinearPoly<PE> + Send + Sync + 'a>
Source§impl<P: PackedField, Data: Deref<Target = [P]>> MultilinearExtension<P, Data>
impl<P: PackedField, Data: Deref<Target = [P]>> MultilinearExtension<P, Data>
pub const fn n_vars(&self) -> usize
pub const fn size(&self) -> usize
pub fn evals(&self) -> &[P]
pub fn to_ref(&self) -> MultilinearExtension<P, &[P]>
Sourcepub fn packed_evaluate_on_hypercube(&self, index: usize) -> Result<P, Error>
pub fn packed_evaluate_on_hypercube(&self, index: usize) -> Result<P, Error>
Get the evaluations of the polynomial on a subcube of the hypercube of size equal to the packing width.
§Arguments
index
- The index of the subcube
pub fn evaluate_on_hypercube(&self, index: usize) -> Result<P::Scalar, Error>
Source§impl<P, Data> MultilinearExtension<P, Data>
impl<P, Data> MultilinearExtension<P, Data>
pub fn evaluate<'a, FE, PE>( &self, query: impl Into<MultilinearQueryRef<'a, PE>>, ) -> Result<FE, Error>
Sourcepub fn evaluate_partial_high<'a, PE>(
&self,
query: impl Into<MultilinearQueryRef<'a, PE>>,
) -> Result<MultilinearExtension<PE>, Error>
pub fn evaluate_partial_high<'a, PE>( &self, query: impl Into<MultilinearQueryRef<'a, PE>>, ) -> Result<MultilinearExtension<PE>, Error>
Partially evaluate the polynomial with assignment to the high-indexed variables.
The polynomial is multilinear with variables, . Given a query vector of length representing , this returns the multilinear polynomial with variables, .
REQUIRES: the size of the resulting polynomial must have a length which is a multiple of PE::WIDTH, i.e. 2^(\mu - k) \geq PE::WIDTH, since WIDTH is power of two
Sourcepub fn evaluate_partial_low<'a, PE>(
&self,
query: impl Into<MultilinearQueryRef<'a, PE>>,
) -> Result<MultilinearExtension<PE>, Error>
pub fn evaluate_partial_low<'a, PE>( &self, query: impl Into<MultilinearQueryRef<'a, PE>>, ) -> Result<MultilinearExtension<PE>, Error>
Partially evaluate the polynomial with assignment to the low-indexed variables.
The polynomial is multilinear with variables, . Given a query vector of length representing , this returns the multilinear polynomial with variables, .
REQUIRES: the size of the resulting polynomial must have a length which is a multiple of P::WIDTH, i.e. 2^(\mu - k) \geq P::WIDTH, since WIDTH is power of two
Sourcepub fn evaluate_partial_low_into<PE>(
&self,
query: MultilinearQueryRef<'_, PE>,
out: &mut [PE],
) -> Result<(), Error>
pub fn evaluate_partial_low_into<PE>( &self, query: MultilinearQueryRef<'_, PE>, out: &mut [PE], ) -> Result<(), Error>
Partially evaluate the polynomial with assignment to the low-indexed variables.
The polynomial is multilinear with variables, . Given a query vector of length representing , this returns the multilinear polynomial with variables, .
REQUIRES: the size of the resulting polynomial must have a length which is a multiple of P::WIDTH, i.e. 2^(\mu - k) \geq P::WIDTH, since WIDTH is power of two
Source§impl<P: PackedField, Data: Deref<Target = [P]>> MultilinearExtension<P, Data>
impl<P: PackedField, Data: Deref<Target = [P]>> MultilinearExtension<P, Data>
Trait Implementations
Source§impl<P: Clone + PackedField, Data: Clone + Deref<Target = [P]>> Clone for MultilinearExtension<P, Data>
impl<P: Clone + PackedField, Data: Clone + Deref<Target = [P]>> Clone for MultilinearExtension<P, Data>
Source§fn clone(&self) -> MultilinearExtension<P, Data>
fn clone(&self) -> MultilinearExtension<P, Data>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<P: Debug + PackedField, Data: Debug + Deref<Target = [P]>> Debug for MultilinearExtension<P, Data>
impl<P: Debug + PackedField, Data: Debug + Deref<Target = [P]>> Debug for MultilinearExtension<P, Data>
Source§impl<P: PartialEq + PackedField, Data: PartialEq + Deref<Target = [P]>> PartialEq for MultilinearExtension<P, Data>
impl<P: PartialEq + PackedField, Data: PartialEq + Deref<Target = [P]>> PartialEq for MultilinearExtension<P, Data>
Source§fn eq(&self, other: &MultilinearExtension<P, Data>) -> bool
fn eq(&self, other: &MultilinearExtension<P, Data>) -> bool
self
and other
values to be equal, and is used by ==
.