pub struct ProductCircuitLayers<'a, F: TowerField, DevMem: ComputeMemory<F>> { /* private fields */ }
Expand description
The computed layer evaluations of a product tree circuit.
Implementations§
Source§impl<'a, F: TowerField, DevMem: ComputeMemory<F>> ProductCircuitLayers<'a, F, DevMem>
impl<'a, F: TowerField, DevMem: ComputeMemory<F>> ProductCircuitLayers<'a, F, DevMem>
Source§impl<'a, F, DevMem> ProductCircuitLayers<'a, F, DevMem>where
F: TowerField,
DevMem: ComputeMemory<F>,
impl<'a, F, DevMem> ProductCircuitLayers<'a, F, DevMem>where
F: TowerField,
DevMem: ComputeMemory<F>,
Sourcepub fn compute<'dev_mem, 'host_mem, Hal>(
evals: FSlice<'a, F, Hal>,
hal: &'a Hal,
dev_alloc: &'a BumpAllocator<'dev_mem, F, Hal::DevMem>,
host_alloc: &'a HostBumpAllocator<'host_mem, F>,
) -> Result<Self, Error>where
Hal: ComputeLayer<F, DevMem = DevMem>,
pub fn compute<'dev_mem, 'host_mem, Hal>(
evals: FSlice<'a, F, Hal>,
hal: &'a Hal,
dev_alloc: &'a BumpAllocator<'dev_mem, F, Hal::DevMem>,
host_alloc: &'a HostBumpAllocator<'host_mem, F>,
) -> Result<Self, Error>where
Hal: ComputeLayer<F, DevMem = DevMem>,
Computes the full sequence of GKR layers of the binary product circuit.
§Throws
Error::ExpectInputSlicePowerOfTwoLength
unlessevals
has power-of-two length
Auto Trait Implementations§
impl<'a, F, DevMem> Freeze for ProductCircuitLayers<'a, F, DevMem>
impl<'a, F, DevMem> RefUnwindSafe for ProductCircuitLayers<'a, F, DevMem>where
<F as WithUnderlier>::Underlier: Sized,
F: RefUnwindSafe,
<DevMem as ComputeMemory<F>>::FSlice<'a>: RefUnwindSafe,
impl<'a, F, DevMem> Send for ProductCircuitLayers<'a, F, DevMem>
impl<'a, F, DevMem> Sync for ProductCircuitLayers<'a, F, DevMem>
impl<'a, F, DevMem> Unpin for ProductCircuitLayers<'a, F, DevMem>where
<F as WithUnderlier>::Underlier: Sized,
F: Unpin,
<DevMem as ComputeMemory<F>>::FSlice<'a>: Unpin,
impl<'a, F, DevMem> UnwindSafe for ProductCircuitLayers<'a, F, DevMem>where
<F as WithUnderlier>::Underlier: Sized,
F: UnwindSafe,
<DevMem as ComputeMemory<F>>::FSlice<'a>: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more