Struct rusty_machine::linalg::Vector []

pub struct Vector<T> { /* fields omitted */ }

The Vector struct.

Can be instantiated with any type.

Methods

impl<T> 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]);Run

Returns the size of the Vector.

Returns a non-mutable reference to the underlying data.

Returns a mutable slice of the underlying data.

Consumes the Vector and returns the Vec of data.

Returns an iterator over the Vector's data.

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

impl<T> Vector<T> where T: Copy

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::new(vec![0.;4]);

let b = a.apply(&add_two);

assert_eq!(b.into_vec(), vec![2.0; 4]);Run

impl<T> Vector<T> where T: Copy + PartialOrd<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::new(vec![1.0,2.0,0.0,5.0]);
let b = a.argmax();
assert_eq!(b.0, 3);
assert_eq!(b.1, 5.0);Run

Find the argmin of the Vector.

Returns the index of the smallest value in the vector.

Examples

use rulinalg::vector::Vector;

let a = Vector::new(vec![1.0,2.0,0.0,5.0]);
let b = a.argmin();
assert_eq!(b.0, 2);
assert_eq!(b.1, 0.0);Run

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

Examples

use rulinalg::vector::Vector;

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

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

// Prints [3,4,5]
println!("{:?}", a_lower.data());Run

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

Constructs Vector of all zeros.

Requires the size of the vector.

Examples

use rulinalg::vector::Vector;

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

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

Constructs Vector of all ones.

Requires the size of the vector.

Examples

use rulinalg::vector::Vector;

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

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

Compute dot product with specified Vector.

Examples

use rulinalg::vector::Vector;

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

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

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

The sum of the vector.

Returns the sum of all elements in the vector.

Examples

use rulinalg::vector::Vector;

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

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

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

The elementwise product of two vectors.

Examples

use rulinalg::vector::Vector;

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

let c = &a.elemul(&b);
assert_eq!(*c.data(), vec![1.0, 4.0, 9.0, 16.0]);Run

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

The elementwise division of two vectors.

Examples

use rulinalg::vector::Vector;

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

let c = &a.elediv(&b);
assert_eq!(*c.data(), vec![1.0; 4]);Run

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

The mean of the vector.

Returns the arithmetic mean of the vector.

Examples

use rulinalg::vector::Vector;

let a = Vector::<f32>::new(vec![1.0,2.0,3.0,4.0]);

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

The variance of the vector.

Returns the unbiased sample variance of the vector.

Examples

use rulinalg::vector::Vector;

let a = Vector::<f32>::new(vec![1.0,2.0,3.0,4.0]);

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

Trait Implementations

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

Adds scalar to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds scalar to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds scalar to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds scalar to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds vector to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds vector to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds vector to vector.

The resulting type after applying the + operator

The method for the + operator

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

Adds vector to vector.

The resulting type after applying the + operator

The method for the + operator

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

Displays the Vector.

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

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

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

Subtracts scalar from vector.

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

Subtracts scalar from vector.

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

Subtracts scalar from vector.

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

Subtracts scalar from vector.

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

Subtracts vector from vector.

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

Subtracts vector from vector.

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

Subtracts vector from vector.

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

Subtracts vector from vector.

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

Divides vector by scalar.

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

Divides vector by scalar.

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

Divides vector by scalar.

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

Divides vector by scalar.

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

Gets negative of vector.

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

Gets negative of vector.

impl<T> IntoIterator for Vector<T>

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

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

Clones the Vector.

Performs copy-assignment from source. Read more

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

Multiplies vector by scalar.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies vector by scalar.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies vector by scalar.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies vector by scalar.

The resulting type after applying the * operator

The method for the * operator

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

Performs the conversion.

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

Performs subtraction assignment between a vector and a scalar.

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

Performs subtraction assignment between a vector and a scalar.

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

Performs elementwise subtraction assignment between two vectors.

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

Performs elementwise subtraction assignment between two vectors.

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

Indexes vector.

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

Performs addition assignment between a vector and a scalar.

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

Performs addition assignment between a vector and a scalar.

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

Performs elementwise addition assignment between two vectors.

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

Performs elementwise addition assignment between two vectors.

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

Performs division assignment between a vector and a scalar.

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

Performs division assignment between a vector and a scalar.

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

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

Performs the conversion.

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

Performs the conversion.

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

Performs multiplication assignment between a vector and a scalar.

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

Performs multiplication assignment between a vector and a scalar.

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

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

Indexes mutable vector.

impl<T> Metric<T> for Vector<T> where T: Float

Compute euclidean norm for vector.

Examples

use rulinalg::vector::Vector;
use rulinalg::Metric;

let a = Vector::new(vec![3.0,4.0]);
let c = a.norm();

assert_eq!(c, 5.0);Run

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

Formats the value using the given formatter.