Vector

Struct Vector 

Source
pub struct Vector<T> { /* private fields */ }
Expand description

The Vector struct.

Can be instantiated with any type.

Implementations§

Source§

impl<T> Vector<T>

Source

pub fn new<U: Into<Vec<T>>>(data: U) -> Vector<T>

Constructor for Vector struct.

Requires the vector data.

§Examples
use rulinalg::vector::Vector;

let vec = Vector::new(vec![1.0,2.0,3.0,4.0]);
Source

pub fn from_fn<F>(size: usize, f: F) -> Vector<T>
where F: FnMut(usize) -> T,

Constructor for Vector struct that takes a function f and constructs a new vector such that V_i = f(i), where i is the index.

§Examples
use rulinalg::vector::Vector;

let v = Vector::from_fn(4, |x| x * 3);
assert_eq!(v, vector![0, 3, 6, 9]);
Source

pub fn size(&self) -> usize

Returns the size of the Vector.

Source

pub fn data(&self) -> &Vec<T>

Returns a non-mutable reference to the underlying data.

Source

pub fn mut_data(&mut self) -> &mut [T]

Returns a mutable slice of the underlying data.

Source

pub fn into_vec(self) -> Vec<T>

Consumes the Vector and returns the Vec of data.

Source

pub fn iter(&self) -> Iter<'_, T>

Returns an iterator over the Vector’s data.

Source

pub fn iter_mut(&mut self) -> IterMut<'_, T>

Returns an iterator over mutable references to the Vector’s data.

Source

pub unsafe fn get_unchecked(&self, index: usize) -> &T

Returns a pointer to the element at the given index, without doing bounds checking.

Source

pub unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut T

Returns an unsafe mutable pointer to the element at the given index, without doing bounds checking.

Source§

impl<T: Copy> Vector<T>

Source

pub fn apply(self, f: &dyn Fn(T) -> T) -> Vector<T>

Applies a function to each element in the vector.

§Examples
use rulinalg::vector::Vector;
fn add_two(a: f64) -> f64 {
    a + 2f64
}

let a = vector![0.; 4];

let b = a.apply(&add_two);

assert_eq!(b, vector![2.0; 4]);
Source§

impl<T: Copy + PartialOrd> Vector<T>

Source

pub fn argmax(&self) -> (usize, T)

Find the argmax of the Vector.

Returns the index of the largest value in the vector.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0,2.0,0.0,5.0];
let b = a.argmax();
assert_eq!(b.0, 3);
assert_eq!(b.1, 5.0);
Source

pub fn argmin(&self) -> (usize, T)

Find the argmin of the Vector.

Returns the index of the smallest value in the vector.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 0.0, 5.0];
let b = a.argmin();
assert_eq!(b.0, 2);
assert_eq!(b.1, 0.0);
Source

pub fn select(&self, idxs: &[usize]) -> Vector<T>

Select elements from the Vector and form a new Vector from them.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0, 5.0];

let a_lower = a.select(&[2, 3, 4]);

// Prints [3,4,5]
assert_eq!(a_lower, vector![3.0, 4.0, 5.0]);
Source§

impl<T: Clone + Zero> Vector<T>

Source

pub fn zeros(size: usize) -> Vector<T>

Constructs Vector of all zeros.

Requires the size of the vector.

§Examples
use rulinalg::vector::Vector;

let vec = Vector::<f64>::zeros(10);
Source§

impl<T: Clone + One> Vector<T>

Source

pub fn ones(size: usize) -> Vector<T>

Constructs Vector of all ones.

Requires the size of the vector.

§Examples
use rulinalg::vector::Vector;

let vec = Vector::<f64>::ones(10);
Source§

impl<T: Copy + Zero + Mul<T, Output = T> + Add<T, Output = T>> Vector<T>

Source

pub fn dot(&self, v: &Vector<T>) -> T

Compute dot product with specified Vector.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0];
let b = vector![2.0; 4];

let c = a.dot(&b);
assert_eq!(c, 20.0);
Source§

impl<T: Copy + Zero + Add<T, Output = T>> Vector<T>

Source

pub fn sum(&self) -> T

The sum of the vector.

Returns the sum of all elements in the vector.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0];

let c = a.sum();
assert_eq!(c, 10.0);
Source§

impl<T: Copy + Mul<T, Output = T>> Vector<T>

Source

pub fn elemul(&self, v: &Vector<T>) -> Vector<T>

The elementwise product of two vectors.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0];
let b = vector![1.0, 2.0, 3.0, 4.0];

let c = &a.elemul(&b);
assert_eq!(c, &vector![1.0, 4.0, 9.0, 16.0]);
Source§

impl<T: Copy + Div<T, Output = T>> Vector<T>

Source

pub fn elediv(&self, v: &Vector<T>) -> Vector<T>

The elementwise division of two vectors.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0];
let b = vector![1.0, 2.0, 3.0, 4.0];

let c = &a.elediv(&b);
assert_eq!(c, &vector![1.0; 4]);
Source§

impl<T: Float> Vector<T>

Source

pub fn norm<N: VectorNorm<T>>(&self, norm: N) -> T

Compute vector norm for vector.

§Examples
use rulinalg::vector::Vector;
use rulinalg::norm::Euclidean;

let a = vector![3.0, 4.0];
let c = a.norm(Euclidean);

assert_eq!(c, 5.0);
Source

pub fn metric<M: VectorMetric<T>>(&self, v: &Vector<T>, m: M) -> T

Compute metric distance between two vectors.

§Examples
use rulinalg::vector::Vector;
use rulinalg::norm::Euclidean;

let a = vector![3.0, 4.0];
let b = vector![0.0, 8.0];

// Compute the square root of the sum of
// elementwise squared-differences
let c = a.metric(&b, Euclidean);
assert_eq!(c, 5.0);
Source§

impl<T: Float + FromPrimitive> Vector<T>

Source

pub fn mean(&self) -> T

The mean of the vector.

Returns the arithmetic mean of the vector.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0];

let c = a.mean();
assert_eq!(c, 2.5);
Source

pub fn variance(&self) -> T

The variance of the vector.

Returns the unbiased sample variance of the vector.

§Examples
use rulinalg::vector::Vector;

let a = vector![1.0, 2.0, 3.0, 4.0];

let c = a.variance();
assert_eq!(c, 5.0 / 3.0);

Trait Implementations§

Source§

impl<'a, 'b, T: Copy + Add<T, Output = T>> Add<&'b T> for &'a Vector<T>

Scalar addition with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, f: &T) -> Vector<T>

Performs the + operation. Read more
Source§

impl<'a, T: Copy + Add<T, Output = T>> Add<&'a T> for Vector<T>

Scalar addition with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, f: &T) -> Vector<T>

Performs the + operation. Read more
Source§

impl<'a, 'b, T: Copy + Add<T, Output = T>> Add<&'b Vector<T>> for &'a Vector<T>

Vector addition with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, v: &Vector<T>) -> Vector<T>

Performs the + operation. Read more
Source§

impl<'a, T: Copy + Add<T, Output = T>> Add<&'a Vector<T>> for Vector<T>

Vector addition with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, v: &Vector<T>) -> Vector<T>

Performs the + operation. Read more
Source§

impl<'a, T: Copy + Add<T, Output = T>> Add<T> for &'a Vector<T>

Scalar addition with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, f: T) -> Vector<T>

Performs the + operation. Read more
Source§

impl<T: Copy + Add<T, Output = T>> Add<T> for Vector<T>

Scalar addition with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, f: T) -> Vector<T>

Performs the + operation. Read more
Source§

impl<'a, T: Copy + Add<T, Output = T>> Add<Vector<T>> for &'a Vector<T>

Vector addition with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, v: Vector<T>) -> Vector<T>

Performs the + operation. Read more
Source§

impl<T: Copy + Add<T, Output = T>> Add for Vector<T>

Vector addition with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the + operator.
Source§

fn add(self, v: Vector<T>) -> Vector<T>

Performs the + operation. Read more
Source§

impl<'a, T: Copy + Add<T, Output = T>> AddAssign<&'a T> for Vector<T>

Performs addition assignment between a vector and a scalar.

Source§

fn add_assign(&mut self, _rhs: &T)

Performs the += operation. Read more
Source§

impl<'a, T: Copy + Add<T, Output = T>> AddAssign<&'a Vector<T>> for Vector<T>

Performs elementwise addition assignment between two vectors.

Source§

fn add_assign(&mut self, _rhs: &Vector<T>)

Performs the += operation. Read more
Source§

impl<T: Copy + Add<T, Output = T>> AddAssign<T> for Vector<T>

Performs addition assignment between a vector and a scalar.

Source§

fn add_assign(&mut self, _rhs: T)

Performs the += operation. Read more
Source§

impl<T: Copy + Add<T, Output = T>> AddAssign for Vector<T>

Performs elementwise addition assignment between two vectors.

Source§

fn add_assign(&mut self, _rhs: Vector<T>)

Performs the += operation. Read more
Source§

impl<'a, 'b, T: Copy + BitAnd<T, Output = T>> BitAnd<&'b T> for &'a Vector<T>

Scalar bitwise-and with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, f: &T) -> Vector<T>

Performs the & operation. Read more
Source§

impl<'a, T: Copy + BitAnd<T, Output = T>> BitAnd<&'a T> for Vector<T>

Scalar bitwise-and with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, f: &T) -> Vector<T>

Performs the & operation. Read more
Source§

impl<'a, 'b, T: Copy + BitAnd<T, Output = T>> BitAnd<&'b Vector<T>> for &'a Vector<T>

Vector bitwise-and with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, v: &Vector<T>) -> Vector<T>

Performs the & operation. Read more
Source§

impl<'a, T: Copy + BitAnd<T, Output = T>> BitAnd<&'a Vector<T>> for Vector<T>

Vector bitwise-and with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, v: &Vector<T>) -> Vector<T>

Performs the & operation. Read more
Source§

impl<'a, T: Copy + BitAnd<T, Output = T>> BitAnd<T> for &'a Vector<T>

Scalar bitwise-and with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, f: T) -> Vector<T>

Performs the & operation. Read more
Source§

impl<T: Copy + BitAnd<T, Output = T>> BitAnd<T> for Vector<T>

Scalar bitwise-and with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, f: T) -> Vector<T>

Performs the & operation. Read more
Source§

impl<'a, T: Copy + BitAnd<T, Output = T>> BitAnd<Vector<T>> for &'a Vector<T>

Vector bitwise-and with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, v: Vector<T>) -> Vector<T>

Performs the & operation. Read more
Source§

impl<T: Copy + BitAnd<T, Output = T>> BitAnd for Vector<T>

Vector bitwise-and with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the & operator.
Source§

fn bitand(self, v: Vector<T>) -> Vector<T>

Performs the & operation. Read more
Source§

impl<'a, T: Copy + BitAnd<T, Output = T>> BitAndAssign<&'a T> for Vector<T>

Performs bitwise-and assignment between a vector and a scalar.

Source§

fn bitand_assign(&mut self, _rhs: &T)

Performs the &= operation. Read more
Source§

impl<'a, T: Copy + BitAnd<T, Output = T>> BitAndAssign<&'a Vector<T>> for Vector<T>

Performs elementwise bitwise-and assignment between two vectors.

Source§

fn bitand_assign(&mut self, _rhs: &Vector<T>)

Performs the &= operation. Read more
Source§

impl<T: Copy + BitAnd<T, Output = T>> BitAndAssign<T> for Vector<T>

Performs bitwise-and assignment between a vector and a scalar.

Source§

fn bitand_assign(&mut self, _rhs: T)

Performs the &= operation. Read more
Source§

impl<T: Copy + BitAnd<T, Output = T>> BitAndAssign for Vector<T>

Performs elementwise bitwise-and assignment between two vectors.

Source§

fn bitand_assign(&mut self, _rhs: Vector<T>)

Performs the &= operation. Read more
Source§

impl<'a, 'b, T: Copy + BitOr<T, Output = T>> BitOr<&'b T> for &'a Vector<T>

Scalar bitwise-or with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, f: &T) -> Vector<T>

Performs the | operation. Read more
Source§

impl<'a, T: Copy + BitOr<T, Output = T>> BitOr<&'a T> for Vector<T>

Scalar bitwise-or with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, f: &T) -> Vector<T>

Performs the | operation. Read more
Source§

impl<'a, 'b, T: Copy + BitOr<T, Output = T>> BitOr<&'b Vector<T>> for &'a Vector<T>

Vector bitwise-or with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, v: &Vector<T>) -> Vector<T>

Performs the | operation. Read more
Source§

impl<'a, T: Copy + BitOr<T, Output = T>> BitOr<&'a Vector<T>> for Vector<T>

Vector bitwise-or with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, v: &Vector<T>) -> Vector<T>

Performs the | operation. Read more
Source§

impl<'a, T: Copy + BitOr<T, Output = T>> BitOr<T> for &'a Vector<T>

Scalar bitwise-or with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, f: T) -> Vector<T>

Performs the | operation. Read more
Source§

impl<T: Copy + BitOr<T, Output = T>> BitOr<T> for Vector<T>

Scalar bitwise-or with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, f: T) -> Vector<T>

Performs the | operation. Read more
Source§

impl<'a, T: Copy + BitOr<T, Output = T>> BitOr<Vector<T>> for &'a Vector<T>

Vector bitwise-or with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, v: Vector<T>) -> Vector<T>

Performs the | operation. Read more
Source§

impl<T: Copy + BitOr<T, Output = T>> BitOr for Vector<T>

Vector bitwise-or with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the | operator.
Source§

fn bitor(self, v: Vector<T>) -> Vector<T>

Performs the | operation. Read more
Source§

impl<'a, T: Copy + BitOr<T, Output = T>> BitOrAssign<&'a T> for Vector<T>

Performs bitwise-or assignment between a vector and a scalar.

Source§

fn bitor_assign(&mut self, _rhs: &T)

Performs the |= operation. Read more
Source§

impl<'a, T: Copy + BitOr<T, Output = T>> BitOrAssign<&'a Vector<T>> for Vector<T>

Performs elementwise bitwise-or assignment between two vectors.

Source§

fn bitor_assign(&mut self, _rhs: &Vector<T>)

Performs the |= operation. Read more
Source§

impl<T: Copy + BitOr<T, Output = T>> BitOrAssign<T> for Vector<T>

Performs bitwise-or assignment between a vector and a scalar.

Source§

fn bitor_assign(&mut self, _rhs: T)

Performs the |= operation. Read more
Source§

impl<T: Copy + BitOr<T, Output = T>> BitOrAssign for Vector<T>

Performs elementwise bitwise-or assignment between two vectors.

Source§

fn bitor_assign(&mut self, _rhs: Vector<T>)

Performs the |= operation. Read more
Source§

impl<'a, 'b, T: Copy + BitXor<T, Output = T>> BitXor<&'b T> for &'a Vector<T>

Scalar bitwise-xor with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, f: &T) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<'a, T: Copy + BitXor<T, Output = T>> BitXor<&'a T> for Vector<T>

Scalar bitwise-xor with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, f: &T) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<'a, 'b, T: Copy + BitXor<T, Output = T>> BitXor<&'b Vector<T>> for &'a Vector<T>

Vector bitwise-xor with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, v: &Vector<T>) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<'a, T: Copy + BitXor<T, Output = T>> BitXor<&'a Vector<T>> for Vector<T>

Vector bitwise-xor with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, v: &Vector<T>) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<'a, T: Copy + BitXor<T, Output = T>> BitXor<T> for &'a Vector<T>

Scalar bitwise-xor with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, f: T) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<T: Copy + BitXor<T, Output = T>> BitXor<T> for Vector<T>

Scalar bitwise-xor with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, f: T) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<'a, T: Copy + BitXor<T, Output = T>> BitXor<Vector<T>> for &'a Vector<T>

Vector bitwise-xor with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, v: Vector<T>) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<T: Copy + BitXor<T, Output = T>> BitXor for Vector<T>

Vector bitwise-xor with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, v: Vector<T>) -> Vector<T>

Performs the ^ operation. Read more
Source§

impl<'a, T: Copy + BitXor<T, Output = T>> BitXorAssign<&'a T> for Vector<T>

Performs bitwise-xor assignment between a vector and a scalar.

Source§

fn bitxor_assign(&mut self, _rhs: &T)

Performs the ^= operation. Read more
Source§

impl<'a, T: Copy + BitXor<T, Output = T>> BitXorAssign<&'a Vector<T>> for Vector<T>

Performs elementwise bitwise-xor assignment between two vectors.

Source§

fn bitxor_assign(&mut self, _rhs: &Vector<T>)

Performs the ^= operation. Read more
Source§

impl<T: Copy + BitXor<T, Output = T>> BitXorAssign<T> for Vector<T>

Performs bitwise-xor assignment between a vector and a scalar.

Source§

fn bitxor_assign(&mut self, _rhs: T)

Performs the ^= operation. Read more
Source§

impl<T: Copy + BitXor<T, Output = T>> BitXorAssign for Vector<T>

Performs elementwise bitwise-xor assignment between two vectors.

Source§

fn bitxor_assign(&mut self, _rhs: Vector<T>)

Performs the ^= operation. Read more
Source§

impl<T: Clone> Clone for Vector<T>

Source§

fn clone(&self) -> Vector<T>

Clones the Vector.

1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Debug> Debug for Vector<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Display> Display for Vector<T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Displays the Vector.

Source§

impl<'a, 'b, T: Copy + Div<T, Output = T>> Div<&'b T> for &'a Vector<T>

Scalar division with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the / operator.
Source§

fn div(self, f: &T) -> Vector<T>

Performs the / operation. Read more
Source§

impl<'a, T: Copy + Div<T, Output = T>> Div<&'a T> for Vector<T>

Scalar division with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the / operator.
Source§

fn div(self, f: &T) -> Vector<T>

Performs the / operation. Read more
Source§

impl<'a, T: Copy + Div<T, Output = T>> Div<T> for &'a Vector<T>

Scalar division with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the / operator.
Source§

fn div(self, f: T) -> Vector<T>

Performs the / operation. Read more
Source§

impl<T: Copy + Div<T, Output = T>> Div<T> for Vector<T>

Scalar division with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the / operator.
Source§

fn div(self, f: T) -> Vector<T>

Performs the / operation. Read more
Source§

impl<'a, T: Copy + Div<T, Output = T>> DivAssign<&'a T> for Vector<T>

Performs division assignment between a vector and a scalar.

Source§

fn div_assign(&mut self, _rhs: &T)

Performs the /= operation. Read more
Source§

impl<T: Copy + Div<T, Output = T>> DivAssign<T> for Vector<T>

Performs division assignment between a vector and a scalar.

Source§

fn div_assign(&mut self, _rhs: T)

Performs the /= operation. Read more
Source§

impl<'a, T> From<&'a [T]> for Vector<T>
where T: Clone,

Source§

fn from(slice: &'a [T]) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: Clone> From<Column<'a, T>> for Vector<T>

Source§

fn from(column: Column<'a, T>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: Clone> From<ColumnMut<'a, T>> for Vector<T>

Source§

fn from(column: ColumnMut<'a, T>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: Clone> From<Row<'a, T>> for Vector<T>

Source§

fn from(row: Row<'a, T>) -> Self

Converts to this type from the input type.
Source§

impl<'a, T: Clone> From<RowMut<'a, T>> for Vector<T>

Source§

fn from(row: RowMut<'a, T>) -> Self

Converts to this type from the input type.
Source§

impl<T> From<Vec<T>> for Vector<T>

Source§

fn from(vec: Vec<T>) -> Self

Converts to this type from the input type.
Source§

impl<T> From<Vector<T>> for Matrix<T>

Source§

fn from(vector: Vector<T>) -> Self

Converts to this type from the input type.
Source§

impl<T> FromIterator<T> for Vector<T>

Source§

fn from_iter<I>(iter: I) -> Self
where I: IntoIterator<Item = T>,

Creates a value from an iterator. Read more
Source§

impl<T: Hash> Hash for Vector<T>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T> Index<usize> for Vector<T>

Indexes vector.

Source§

type Output = T

The returned type after indexing.
Source§

fn index(&self, idx: usize) -> &T

Performs the indexing (container[index]) operation. Read more
Source§

impl<T> IndexMut<usize> for Vector<T>

Indexes mutable vector.

Source§

fn index_mut(&mut self, idx: usize) -> &mut T

Performs the mutable indexing (container[index]) operation. Read more
Source§

impl<T> Into<Vec<T>> for Vector<T>

Source§

fn into(self) -> Vec<T>

Converts this type into the (usually inferred) input type.
Source§

impl<'a, T> IntoIterator for &'a Vector<T>

Source§

type Item = &'a T

The type of the elements being iterated over.
Source§

type IntoIter = Iter<'a, T>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<T> IntoIterator for Vector<T>

Source§

type Item = T

The type of the elements being iterated over.
Source§

type IntoIter = IntoIter<T>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl<'a, 'b, T: Copy + Mul<T, Output = T>> Mul<&'b T> for &'a Vector<T>

Scalar multiplication with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, f: &T) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T: Copy + Mul<T, Output = T>> Mul<&'a T> for Vector<T>

Scalar multiplication with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, f: &T) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'b Vector<T>> for &'a Matrix<T>
where T: Copy + Zero + Mul<T, Output = T> + Add<T, Output = T>,

Multiplies matrix by vector.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, v: &Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, 'b, T> Mul<&'a Vector<T>> for &'b PermutationMatrix<T>
where T: Clone + Zero,

Left-multiply a vector by a permutation matrix.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &'a Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T> Mul<&'a Vector<T>> for Matrix<T>
where T: Copy + Zero + Mul<T, Output = T> + Add<T, Output = T>,

Multiplies matrix by vector.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, m: &Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T> Mul<&'a Vector<T>> for PermutationMatrix<T>
where T: Clone + Zero,

Left-multiply a vector by a permutation matrix.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &'a Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T: Copy + Mul<T, Output = T>> Mul<T> for &'a Vector<T>

Scalar multiplication with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, f: T) -> Vector<T>

Performs the * operation. Read more
Source§

impl<T: Copy + Mul<T, Output = T>> Mul<T> for Vector<T>

Scalar multiplication with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, f: T) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Vector<T>> for &'a Matrix<T>
where T: Copy + Zero + Mul<T, Output = T> + Add<T, Output = T>,

Multiplies matrix by vector.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, m: Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T> Mul<Vector<T>> for &'a PermutationMatrix<T>
where T: Clone + Zero,

Left-multiply a vector by a permutation matrix.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<T> Mul<Vector<T>> for Matrix<T>
where T: Copy + Zero + Mul<T, Output = T> + Add<T, Output = T>,

Multiplies matrix by vector.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, m: Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<T> Mul<Vector<T>> for PermutationMatrix<T>

Left-multiply a vector by a permutation matrix.

Source§

type Output = Vector<T>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: Vector<T>) -> Vector<T>

Performs the * operation. Read more
Source§

impl<'a, T: Copy + Mul<T, Output = T>> MulAssign<&'a T> for Vector<T>

Performs multiplication assignment between a vector and a scalar.

Source§

fn mul_assign(&mut self, _rhs: &T)

Performs the *= operation. Read more
Source§

impl<T: Copy + Mul<T, Output = T>> MulAssign<T> for Vector<T>

Performs multiplication assignment between a vector and a scalar.

Source§

fn mul_assign(&mut self, _rhs: T)

Performs the *= operation. Read more
Source§

impl<'a, T: Neg<Output = T> + Copy> Neg for &'a Vector<T>

Gets negative of vector.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Vector<T>

Performs the unary - operation. Read more
Source§

impl<T: Neg<Output = T> + Copy> Neg for Vector<T>

Gets negative of vector.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn neg(self) -> Vector<T>

Performs the unary - operation. Read more
Source§

impl<'a, T: Not<Output = T> + Copy> Not for &'a Vector<T>

Gets not of vector.

Source§

type Output = Vector<T>

The resulting type after applying the ! operator.
Source§

fn not(self) -> Vector<T>

Performs the unary ! operation. Read more
Source§

impl<T: Not<Output = T> + Copy> Not for Vector<T>

Gets not of vector.

Source§

type Output = Vector<T>

The resulting type after applying the ! operator.
Source§

fn not(self) -> Vector<T>

Performs the unary ! operation. Read more
Source§

impl<T: PartialEq> PartialEq for Vector<T>

Source§

fn eq(&self, other: &Vector<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a, 'b, T: Copy + Rem<T, Output = T>> Rem<&'b T> for &'a Vector<T>

Scalar remainder with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, f: &T) -> Vector<T>

Performs the % operation. Read more
Source§

impl<'a, T: Copy + Rem<T, Output = T>> Rem<&'a T> for Vector<T>

Scalar remainder with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, f: &T) -> Vector<T>

Performs the % operation. Read more
Source§

impl<'a, 'b, T: Copy + Rem<T, Output = T>> Rem<&'b Vector<T>> for &'a Vector<T>

Vector remainder with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, v: &Vector<T>) -> Vector<T>

Performs the % operation. Read more
Source§

impl<'a, T: Copy + Rem<T, Output = T>> Rem<&'a Vector<T>> for Vector<T>

Vector remainder with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, v: &Vector<T>) -> Vector<T>

Performs the % operation. Read more
Source§

impl<'a, T: Copy + Rem<T, Output = T>> Rem<T> for &'a Vector<T>

Scalar remainder with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, f: T) -> Vector<T>

Performs the % operation. Read more
Source§

impl<T: Copy + Rem<T, Output = T>> Rem<T> for Vector<T>

Scalar remainder with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, f: T) -> Vector<T>

Performs the % operation. Read more
Source§

impl<'a, T: Copy + Rem<T, Output = T>> Rem<Vector<T>> for &'a Vector<T>

Vector remainder with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, v: Vector<T>) -> Vector<T>

Performs the % operation. Read more
Source§

impl<T: Copy + Rem<T, Output = T>> Rem for Vector<T>

Vector remainder with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the % operator.
Source§

fn rem(self, v: Vector<T>) -> Vector<T>

Performs the % operation. Read more
Source§

impl<'a, T: Copy + Rem<T, Output = T>> RemAssign<&'a T> for Vector<T>

Performs reminder assignment between a vector and a scalar.

Source§

fn rem_assign(&mut self, _rhs: &T)

Performs the %= operation. Read more
Source§

impl<'a, T: Copy + Rem<T, Output = T>> RemAssign<&'a Vector<T>> for Vector<T>

Performs elementwise remainder assignment between two vectors.

Source§

fn rem_assign(&mut self, _rhs: &Vector<T>)

Performs the %= operation. Read more
Source§

impl<T: Copy + Rem<T, Output = T>> RemAssign<T> for Vector<T>

Performs reminder assignment between a vector and a scalar.

Source§

fn rem_assign(&mut self, _rhs: T)

Performs the %= operation. Read more
Source§

impl<T: Copy + Rem<T, Output = T>> RemAssign for Vector<T>

Performs elementwise remainder assignment between two vectors.

Source§

fn rem_assign(&mut self, _rhs: Vector<T>)

Performs the %= operation. Read more
Source§

impl<'a, 'b, T: Copy + Sub<T, Output = T>> Sub<&'b T> for &'a Vector<T>

Scalar subtraction with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, f: &T) -> Vector<T>

Performs the - operation. Read more
Source§

impl<'a, T: Copy + Sub<T, Output = T>> Sub<&'a T> for Vector<T>

Scalar subtraction with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, f: &T) -> Vector<T>

Performs the - operation. Read more
Source§

impl<'a, 'b, T: Copy + Sub<T, Output = T>> Sub<&'b Vector<T>> for &'a Vector<T>

Vector subtraction with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, v: &Vector<T>) -> Vector<T>

Performs the - operation. Read more
Source§

impl<'a, T: Copy + Sub<T, Output = T>> Sub<&'a Vector<T>> for Vector<T>

Vector subtraction with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, v: &Vector<T>) -> Vector<T>

Performs the - operation. Read more
Source§

impl<'a, T: Copy + Sub<T, Output = T>> Sub<T> for &'a Vector<T>

Scalar subtraction with Vector allocating new memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, f: T) -> Vector<T>

Performs the - operation. Read more
Source§

impl<T: Copy + Sub<T, Output = T>> Sub<T> for Vector<T>

Scalar subtraction with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, f: T) -> Vector<T>

Performs the - operation. Read more
Source§

impl<'a, T: Copy + Sub<T, Output = T>> Sub<Vector<T>> for &'a Vector<T>

Vector subtraction with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, v: Vector<T>) -> Vector<T>

Performs the - operation. Read more
Source§

impl<T: Copy + Sub<T, Output = T>> Sub for Vector<T>

Vector subtraction with Vector reusing current memory.

Source§

type Output = Vector<T>

The resulting type after applying the - operator.
Source§

fn sub(self, v: Vector<T>) -> Vector<T>

Performs the - operation. Read more
Source§

impl<'a, T: Copy + Sub<T, Output = T>> SubAssign<&'a T> for Vector<T>

Performs subtraction assignment between a vector and a scalar.

Source§

fn sub_assign(&mut self, _rhs: &T)

Performs the -= operation. Read more
Source§

impl<'a, T: Copy + Sub<T, Output = T>> SubAssign<&'a Vector<T>> for Vector<T>

Performs elementwise subtraction assignment between two vectors.

Source§

fn sub_assign(&mut self, _rhs: &Vector<T>)

Performs the -= operation. Read more
Source§

impl<T: Copy + Sub<T, Output = T>> SubAssign<T> for Vector<T>

Performs subtraction assignment between a vector and a scalar.

Source§

fn sub_assign(&mut self, _rhs: T)

Performs the -= operation. Read more
Source§

impl<T: Copy + Sub<T, Output = T>> SubAssign for Vector<T>

Performs elementwise subtraction assignment between two vectors.

Source§

fn sub_assign(&mut self, _rhs: Vector<T>)

Performs the -= operation. Read more
Source§

impl<T: Eq> Eq for Vector<T>

Source§

impl<T> StructuralPartialEq for Vector<T>

Auto Trait Implementations§

§

impl<T> Freeze for Vector<T>

§

impl<T> RefUnwindSafe for Vector<T>
where T: RefUnwindSafe,

§

impl<T> Send for Vector<T>
where T: Send,

§

impl<T> Sync for Vector<T>
where T: Sync,

§

impl<T> Unpin for Vector<T>
where T: Unpin,

§

impl<T> UnwindSafe for Vector<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, Rhs> NumAssignOps<Rhs> for T
where T: AddAssign<Rhs> + SubAssign<Rhs> + MulAssign<Rhs> + DivAssign<Rhs> + RemAssign<Rhs>,

Source§

impl<T, Rhs, Output> NumOps<Rhs, Output> for T
where T: Sub<Rhs, Output = Output> + Mul<Rhs, Output = Output> + Div<Rhs, Output = Output> + Add<Rhs, Output = Output> + Rem<Rhs, Output = Output>,

Source§

impl<T, Base> RefNum<Base> for T
where T: NumOps<Base, Base> + for<'r> NumOps<&'r Base, Base>,