Module rustlearn::array::dense [] [src]

Basic two-dimensional dense matrix type.

Creation

An array of ones or zeros:

use rustlearn::prelude::*;

let zeros = Array::zeros(20, 10);
let ones = Array::ones(10, 10);

From a vector:

use rustlearn::prelude::*;

let mut array = Array::from(vec![0.0, 1.0, 2.0, 3.0]);
array.reshape(2, 2);

From a vector of vectors:

use rustlearn::prelude::*;

let array = Array::from(&vec![vec![0.0, 1.0],
                              vec![2.0, 3.0]]);

Getting and setting

use rustlearn::prelude::*;

let mut array = Array::zeros(2, 2);

array.set(0, 1, 1.0);
*array.get_mut(1, 0) = 2.0;
unsafe {
    array.set_unchecked(1, 1, 3.0);
}

assert!(allclose(&array,
                 &Array::from(&vec![vec![0.0, 1.0],
                                    vec![2.0, 3.0]])));

Iteration

Over raw data:

use rustlearn::prelude::*;

let array = Array::from(&vec![vec![0.0, 1.0],
                              vec![2.0, 3.0]]);

let sum = array.data().iter().fold(0.0, |sum, val| sum + val);

Over rows and columns:

use rustlearn::prelude::*;

let array = Array::from(&vec![vec![0.0, 1.0],
                              vec![2.0, 3.0]]);

let mut sum = 0.0;

for row in array.iter_rows() {
    for element in row.iter() {
        sum += element;
    }
}

sum = 0.0;

for col in array.iter_columns() {
    for element in col.iter() {
        sum += element;
    }
}

Elementwise operations

On both f32 and other Arrays, with both immutable and in-place variants.

use rustlearn::prelude::*;

let array = Array::from(&vec![vec![0.0, 1.0],
                              vec![2.0, 3.0]]);

assert!(allclose(&array.add(&array),
                 &array.times(2.0)));

Matrix multiplication

use rustlearn::prelude::*;

let x = Array::from(vec![1.0, 2.0]);
let y = Array::from(vec![3.0, 4.0]);

let dot = x.dot(&y.T());

Structs

Array

Basic two-dimensional dense matrix type.

ArrayIterator

Iterator over row or column views of a dense matrix.

ArrayView

A view into a row or column of an existing dense matrix.

ArrayViewIterator

Iterator over entries of a dense matrix view.

ArrayViewNonzeroIterator

Iterator over nonzero entries of a dense matrix view.

Functions

allclose

Determines whether two arrays are sufficiently close to each other.

close

Determines whether two floats are sufficiently close to each other.