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]);

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]);

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);

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);

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());

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);

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);

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);

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);

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]);

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]);

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);

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);

Trait Implementations

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);

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

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> Into<Vec<T>> for Vector<T>

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> 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> Clone for Vector<T> where T: Clone

Clones the Vector.

Performs copy-assignment from source. Read more

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

Feeds this value into the state given, updating the hasher as necessary.

Feeds a slice of this type into the state provided.

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> Index<usize> for Vector<T>

Indexes vector.

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> 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> IndexMut<usize> for Vector<T>

Indexes mutable vector.

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

Formats the value using the given formatter.

impl<T> IntoIterator for Vector<T>

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

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> Display for Vector<T> where T: Display

Displays the Vector.

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> 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.