pub struct Inversion<T> {
pub inversion: Vec<T>,
}Expand description
Contains a Inversion vector and methods to generate and trasnform them.
Fields§
§inversion: Vec<T>Implementations§
Source§impl<T> Inversion<T>
impl<T> Inversion<T>
Sourcepub fn from_vec(vec: Vec<T>) -> Inversion<T>
pub fn from_vec(vec: Vec<T>) -> Inversion<T>
Creates a Inversion object from the vector.
§Example
use permu_rs::inversion::Inversion;
let inversion_vec = vec![0,0,1,1,4];
let my_inversion = Inversion::<u8>::from_vec(inversion_vec);Sourcepub fn zeros(length: usize) -> Inversion<T>
pub fn zeros(length: usize) -> Inversion<T>
Creates a Inversion filled with 0s.
§Example
use permu_rs::inversion::Inversion;
assert_eq!(vec![0,0,0], Inversion::<u8>::zeros(3).inversion);Sourcepub fn from_permu(
permu: &Permutation<T>,
inversion: &mut Inversion<T>,
) -> Result<(), Error>
pub fn from_permu( permu: &Permutation<T>, inversion: &mut Inversion<T>, ) -> Result<(), Error>
Fills a given Inversion with the inversion representation of the given Permutation.
§Errors
The length of the Inversion must be the size of the Permutation - 1. Otherwise,
the function will return a LengthError.
§Example
use permu_rs::*;
let permu = permutation::Permutation::<u8>::from_vec(vec![0,3,2,1]).unwrap();
let mut inversion_repr = inversion::Inversion::zeros(3);
inversion::Inversion::from_permu(&permu, &mut inversion_repr).unwrap();
assert_eq!(vec![0,2,1], inversion_repr.inversion);Sourcepub fn to_permu(&self, out: &mut Permutation<T>) -> Result<(), Error>
pub fn to_permu(&self, out: &mut Permutation<T>) -> Result<(), Error>
Returns a Permutation created from the Inversion representation.
§Errors
The length of the Inversion must be the size of the Permutation - 1. Otherwise,
the function will return a LengthError error.
§Example
use permu_rs::*;
let inversion = inversion::Inversion::<u8>::from_vec(vec![0,2,1]);
let mut permu = permutation::Permutation::<u8>::identity(4);
inversion.to_permu(&mut permu).unwrap();
assert_eq!(vec![0,3,2,1], permu.permu);Trait Implementations§
impl<T> StructuralPartialEq for Inversion<T>
Auto Trait Implementations§
impl<T> Freeze for Inversion<T>
impl<T> RefUnwindSafe for Inversion<T>where
T: RefUnwindSafe,
impl<T> Send for Inversion<T>where
T: Send,
impl<T> Sync for Inversion<T>where
T: Sync,
impl<T> Unpin for Inversion<T>where
T: Unpin,
impl<T> UnwindSafe for Inversion<T>where
T: UnwindSafe,
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