[−][src]Struct optimath::Vector
a const-sized vector of elements, supports all math operations that T does on an element-by-element basis.
can be iterated over using .into_iter() on Vector or &Vector can be constructed from iterators using collect().
is repr(align(16)) for simd
Methods
impl<T, const N: usize> Vector<T, N>
[src]
impl<'a, 'b, T: 'a + 'b, const M: usize> Vector<T, M> where
&'a T: Mul<&'b T, Output = T>,
T: Sum,
[src]
&'a T: Mul<&'b T, Output = T>,
T: Sum,
Trait Implementations
impl<'a, 'b, T, B: 'b, const N: usize> Add<B> for &'a Vector<T, N> where
&'a T: Add<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
&'a T: Add<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
type Output = Vector<T, N>
The resulting type after applying the +
operator.
default fn add(self, other: B) -> Vector<T, N>
[src]
impl<'a, T, const N: usize> AddAssign<&'a Vector<T, N>> for Vector<T, N> where
T: AddAssign<&'a T>,
[src]
T: AddAssign<&'a T>,
fn add_assign(&mut self, other: &'a Vector<T, N>)
[src]
impl<'a, 'b, T, B: 'b, const N: usize> AddAssign<B> for Vector<T, N> where
T: AddAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
T: AddAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
default fn add_assign(&mut self, other: B)
[src]
impl<T: Clone, const N: usize> Clone for Vector<T, N>
[src]
impl<'a, T, const N: usize> ConstIndex<&'a T, N> for &'a Vector<T, N>
[src]
impl<'a, T, const N: usize> ConstIndex<&'a mut T, N> for &'a mut Vector<T, N>
[src]
impl<T: Copy, const N: usize> Copy for Vector<T, N>
[src]
impl<T: Debug, const N: usize> Debug for Vector<T, N>
[src]
impl<T: Default, const N: usize> Default for Vector<T, N>
[src]
impl<'de, T, const N: usize> Deserialize<'de> for Vector<T, N> where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
[src]
impl<T: Display + Debug, const N: usize> Display for Vector<T, N>
[src]
impl<T, const N: usize> Distribution<Vector<T, N>> for Standard where
Standard: Distribution<T>,
[src]
Standard: Distribution<T>,
fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Vector<T, N>
[src]
fn sample_iter<R>(self, rng: R) -> DistIter<Self, R, T> where
R: Rng,
[src]
R: Rng,
impl<'a, 'b, T, B: 'b, const N: usize> Div<B> for &'a Vector<T, N> where
&'a T: Div<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
&'a T: Div<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
type Output = Vector<T, N>
The resulting type after applying the /
operator.
default fn div(self, other: B) -> Vector<T, N>
[src]
impl<'a, T, const N: usize> DivAssign<&'a Vector<T, N>> for Vector<T, N> where
T: DivAssign<&'a T>,
[src]
T: DivAssign<&'a T>,
fn div_assign(&mut self, other: &'a Vector<T, N>)
[src]
impl<'a, 'b, T, B: 'b, const N: usize> DivAssign<B> for Vector<T, N> where
T: DivAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
T: DivAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
default fn div_assign(&mut self, other: B)
[src]
impl<T: Eq, const N: usize> Eq for Vector<T, N>
[src]
impl<T, const N: usize> FromIterator<T> for Vector<T, N>
[src]
fn from_iter<I: IntoIterator<Item = T>>(iter: I) -> Self
[src]
impl<T, const N: usize> Index<usize> for Vector<T, N>
[src]
impl<T, const N: usize> IndexMut<usize> for Vector<T, N>
[src]
impl<T, const N: usize> IntoIterator for Vector<T, N>
[src]
type Item = T
The type of the elements being iterated over.
type IntoIter = IntoIter<T, { N }>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
[src]
impl<'a, T, const N: usize> IntoIterator for &'a Vector<T, N>
[src]
type Item = &'a T
The type of the elements being iterated over.
type IntoIter = ConstIterator<&'a T, &'a Vector<T, N>, N>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Self::IntoIter
[src]
impl<'a, 'b, T, B: 'b, const N: usize> Mul<B> for &'a Vector<T, N> where
&'a T: Mul<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
&'a T: Mul<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
type Output = Vector<T, N>
The resulting type after applying the *
operator.
default fn mul(self, other: B) -> Vector<T, N>
[src]
impl<'a, T, const N: usize> MulAssign<&'a Vector<T, N>> for Vector<T, N> where
T: MulAssign<&'a T>,
[src]
T: MulAssign<&'a T>,
fn mul_assign(&mut self, other: &'a Vector<T, N>)
[src]
impl<'a, 'b, T, B: 'b, const N: usize> MulAssign<B> for Vector<T, N> where
T: MulAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
T: MulAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
default fn mul_assign(&mut self, other: B)
[src]
impl<T: PartialEq, const N: usize> PartialEq<Vector<T, N>> for Vector<T, N>
[src]
impl<T, const N: usize> Serialize for Vector<T, N> where
T: Serialize,
[src]
T: Serialize,
impl<T, const N: usize> Stupidity<T> for Vector<T, N>
[src]
fn build_with_fn<F: FnMut(usize) -> T>(f: F) -> Self
[src]
impl<'a, 'b, T, B: 'b, const N: usize> Sub<B> for &'a Vector<T, N> where
&'a T: Sub<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
&'a T: Sub<&'b T, Output = T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
type Output = Vector<T, N>
The resulting type after applying the -
operator.
default fn sub(self, other: B) -> Vector<T, N>
[src]
impl<'a, T, const N: usize> SubAssign<&'a Vector<T, N>> for Vector<T, N> where
T: SubAssign<&'a T>,
[src]
T: SubAssign<&'a T>,
fn sub_assign(&mut self, other: &'a Vector<T, N>)
[src]
impl<'a, 'b, T, B: 'b, const N: usize> SubAssign<B> for Vector<T, N> where
T: SubAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
[src]
T: SubAssign<&'b T>,
B: ConstIndex<&'b T, N> + Copy + Clone,
T: 'a + 'b,
default fn sub_assign(&mut self, other: B)
[src]
Auto Trait Implementations
impl<const N: usize, T> RefUnwindSafe for Vector<T, N> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<const N: usize, T> Send for Vector<T, N> where
T: Send,
T: Send,
impl<const N: usize, T> Sync for Vector<T, N> where
T: Sync,
T: Sync,
impl<const N: usize, T> Unpin for Vector<T, N> where
T: Unpin,
T: Unpin,
impl<const N: usize, T> UnwindSafe for Vector<T, N> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<I> IntoIterator for I where
I: Iterator,
[src]
I: Iterator,
type Item = <I as Iterator>::Item
The type of the elements being iterated over.
type IntoIter = I
Which kind of iterator are we turning this into?
fn into_iter(self) -> I
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,