Skip to main content

BatchInvert

Trait BatchInvert 

pub trait BatchInvert<FieldElements>: Sized + Invert
where FieldElements: ?Sized,
{ type Output: AsRef<[Self]>; // Required method fn batch_invert(field_elements: &FieldElements) -> CtOption<Self::Output>; }
Expand description

Perform a batched inversion on a sequence of field elements (i.e. base field elements or scalars) at an amortized cost that should be practically as efficient as a single inversion.

Required Associated Types§

type Output: AsRef<[Self]>

The output of batch inversion. A container of field elements.

Required Methods§

fn batch_invert(field_elements: &FieldElements) -> CtOption<Self::Output>

Invert a batch of field elements.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

§

impl<const N: usize, T> BatchInvert<[T; N]> for T
where T: Invert<Output = CtOption<T>> + Mul<Output = T> + Copy + Default + ConditionallySelectable,