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