Skip to main content

MulX

Trait MulX 

Source
pub trait MulX {
    // Required method
    fn mul_x(self) -> Self;
}
Expand description

Scales a value by X, the generator of the field’s polynomial basis.

A one-bit shift plus a masked exclusive or, not a field multiply.

The scaling is GF(2)-linear, so it commutes with the modular reduction. That is what lets one trait serve both a reduced element and an unreduced product:

    reduce(mul_x(wide)) == mul_x(reduce(wide))

Scaling an unreduced product folds the X of an irreducible polynomial into a reduction the caller is going to pay for anyway.

Required Methods§

Source

fn mul_x(self) -> Self

Returns the value scaled by X.

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§