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", so this trait is not object safe.

Implementors§

§

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