pub struct LinearTransformationPlan {
pub baby_steps: Vec<i64>,
pub giant_steps: Vec<i64>,
pub index: Vec<Vec<i64>>,
}Expand description
BSGS index schedule for a linear transformation.
Fields§
§baby_steps: Vec<i64>Distinct baby-step rotations used by the schedule.
giant_steps: Vec<i64>Giant-step rotations used by the schedule.
index: Vec<Vec<i64>>Baby-step rotations grouped by giant step.
index[g] contains the real baby rotations k used with
giant_steps[g]. The corresponding diagonal is
giant_steps[g] + k modulo the slot count.
Implementations§
Source§impl LinearTransformationPlan
impl LinearTransformationPlan
Sourcepub fn galois_elements(&self, cyclotomic_order: i64) -> Vec<i64>
pub fn galois_elements(&self, cyclotomic_order: i64) -> Vec<i64>
Galois elements required for all non-zero baby- and giant-step rotations.
Trait Implementations§
Source§impl Clone for LinearTransformationPlan
impl Clone for LinearTransformationPlan
Source§fn clone(&self) -> LinearTransformationPlan
fn clone(&self) -> LinearTransformationPlan
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LinearTransformationPlan
impl Debug for LinearTransformationPlan
impl Eq for LinearTransformationPlan
Source§impl PartialEq for LinearTransformationPlan
impl PartialEq for LinearTransformationPlan
impl StructuralPartialEq for LinearTransformationPlan
Auto Trait Implementations§
impl Freeze for LinearTransformationPlan
impl RefUnwindSafe for LinearTransformationPlan
impl Send for LinearTransformationPlan
impl Sync for LinearTransformationPlan
impl Unpin for LinearTransformationPlan
impl UnsafeUnpin for LinearTransformationPlan
impl UnwindSafe for LinearTransformationPlan
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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