use crate::natural_vector::NaturalVector;
use malachite_base::vector::{
SelectCoordinates, SelectCoordinatesAssign, select_elements, select_elements_in_place,
};
impl SelectCoordinates for NaturalVector {
type Output = Self;
#[inline]
fn select_coordinates(mut self, indices: &[u64]) -> Self {
self.select_coordinates_assign(indices);
self
}
}
impl SelectCoordinates for &NaturalVector {
type Output = NaturalVector;
#[inline]
fn select_coordinates(self, indices: &[u64]) -> NaturalVector {
NaturalVector {
elements: select_elements(&self.elements, indices),
}
}
}
impl SelectCoordinatesAssign for NaturalVector {
#[inline]
fn select_coordinates_assign(&mut self, indices: &[u64]) {
select_elements_in_place(&mut self.elements, indices);
}
}