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