Struct ff::BatchInverter
source · pub struct BatchInverter {}
Expand description
A non-allocating batch inverter.
Implementations§
source§impl BatchInverter
impl BatchInverter
sourcepub fn invert_with_external_scratch<F>(
elements: &mut [F],
scratch_space: &mut [F]
) -> Fwhere
F: Field + ConstantTimeEq,
pub fn invert_with_external_scratch<F>(
elements: &mut [F],
scratch_space: &mut [F]
) -> Fwhere
F: Field + ConstantTimeEq,
Inverts each field element in elements
(when nonzero). Zero-valued elements are
left as zero.
scratch_space
is a slice of field elements that can be freely overwritten.
Returns the inverse of the product of all nonzero field elements.
Panics
This function will panic if elements.len() != scratch_space.len()
.
sourcepub fn invert_with_internal_scratch<F, T, TE, TS>(
items: &mut [T],
element: TE,
scratch_space: TS
) -> Fwhere
F: Field + ConstantTimeEq,
TE: Fn(&mut T) -> &mut F,
TS: Fn(&mut T) -> &mut F,
pub fn invert_with_internal_scratch<F, T, TE, TS>(
items: &mut [T],
element: TE,
scratch_space: TS
) -> Fwhere
F: Field + ConstantTimeEq,
TE: Fn(&mut T) -> &mut F,
TS: Fn(&mut T) -> &mut F,
Inverts each field element in items
(when nonzero). Zero-valued elements are
left as zero.
element
is a function that extracts the element to be inverted fromitems
.scratch_space
is a function that extracts the scratch space fromitems
.
Returns the inverse of the product of all nonzero field elements.