Struct rusty_machine::prelude::MatrixSliceMut []

pub struct MatrixSliceMut<'a, T> where T: 'a { /* fields omitted */ }

A mutable MatrixSliceMut

This struct provides a mutable slice into a matrix.

The struct contains the upper left point of the slice and the width and height of the slice.

Methods

impl<'a, T> MatrixSliceMut<'a, T>

Produce a MatrixSliceMut from a mutable Matrix

Examples

use rulinalg::matrix::{Matrix, MatrixSliceMut};

let mut a = Matrix::new(3,3, (0..9).collect::<Vec<usize>>());
let slice = MatrixSliceMut::from_matrix(&mut a, [1,1], 2, 2);

Creates a MatrixSliceMut from raw parts.

Examples

use rulinalg::matrix::MatrixSliceMut;

let mut a = vec![4.0; 16];

unsafe {
    // Create a mutable matrix slice with 3 rows, and 3 cols
    // The row stride of 4 specifies the distance between the start of each row in the data.
    let b = MatrixSliceMut::from_raw_parts(a.as_mut_ptr(), 3, 3, 4);
}

Safety

The pointer must be followed by a contiguous slice of data larger than row_stride * rows. If not then other operations will produce undefined behaviour.

Additionally cols should be less than the row_stride. It is possible to use this function safely whilst violating this condition. So long as max(cols, row_stride) * rows is less than the data size.

Produce a MatrixSliceMut from an existing MatrixSliceMut.

This function will be deprecated. Prefer using BaseMatrixMut::sub_slice_mut instead;

Examples

use rulinalg::matrix::{Matrix, MatrixSliceMut};

let mut a = Matrix::new(3,3, (0..9).collect::<Vec<usize>>());
let slice = MatrixSliceMut::from_matrix(&mut a, [1,1], 2, 2);
let new_slice = slice.reslice([0,0], 1, 1);

Trait Implementations

impl<'a, T> Metric<T> for MatrixSliceMut<'a, T> where T: Float

Compute euclidean norm for matrix.

Examples

use rulinalg::matrix::{Matrix, MatrixSliceMut};
use rulinalg::Metric;

let mut a = Matrix::new(2,1, vec![3.0,4.0]);
let b = MatrixSliceMut::from_matrix(&mut a, [0,0], 2, 1);
let c = b.norm();

assert_eq!(c, 5.0);

impl<'a, T> BaseMatrix<T> for MatrixSliceMut<'a, T>

Rows in the matrix.

Columns in the matrix.

Row stride in the matrix.

Top left index of the matrix.

Returns true if the matrix contais no elements

Returns a MatrixSlice over the whole matrix. Read more

Get a reference to a point in the matrix without bounds checking.

Returns the row of a matrix at the given index. None if the index is out of bounds. Read more

Returns the row of a matrix at the given index without doing unbounds checking Read more

Returns an iterator over the matrix data. Read more

Iterate over the rows of the matrix. Read more

Iterate over diagonal entries Read more

The sum of the rows of the matrix. Read more

The sum of the columns of the matrix. Read more

The sum of all elements in the matrix Read more

Convert the matrix struct into a owned Matrix.

Select rows from matrix Read more

Select columns from matrix Read more

The elementwise product of two matrices. Read more

The elementwise division of two matrices. Read more

Select block matrix from matrix Read more

Horizontally concatenates two matrices. With self on the left. Read more

Vertically concatenates two matrices. With self on top. Read more

Extract the diagonal of the matrix Read more

Tranposes the given matrix Read more

Checks if matrix is diagonal. Read more

Solves an upper triangular linear system. Read more

Solves a lower triangular linear system. Read more

Split the matrix at the specified axis returning two MatrixSlices. Read more

Produce a MatrixSlice from an existing matrix. Read more

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

Performs addition assignment between a mutable matrix slice and a scalar.

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

Performs addition assignment between a mutable matrix slice and a scalar.

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

Performs elementwise addition assignment between two matrices.

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

Performs elementwise addition assignment between two matrices.

impl<'a, 'b, T> AddAssign<MatrixSlice<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Add<T, Output=T>

Performs elementwise addition assignment between two matrices.

impl<'a, 'b, 'c, T> AddAssign<&'c MatrixSlice<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Add<T, Output=T>

Performs elementwise addition assignment between two matrices.

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

Performs elementwise addition assignment between two matrices.

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

Performs elementwise addition assignment between two matrices.

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

Performs division assignment between a mutable matrix slice and a scalar.

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

Performs division assignment between a mutable matrix slice and a scalar.

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

Performs multiplication assignment between a mutable matrix slice and a scalar.

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

Performs multiplication assignment between a mutable matrix slice and a scalar.

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

Scalar subtraction with matrix slice.

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

Scalar subtraction with matrix slice.

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

Scalar subtraction with matrix slice.

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

Scalar subtraction with matrix slice.

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

Performs elementwise subtraction between the slices.

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

Performs elementwise subtraction between the slices.

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

Performs elementwise subtraction between the slices.

impl<'a, 'b, 'c, 'd, T> Sub<&'d MatrixSlice<'b, T>> for &'c MatrixSliceMut<'a, T> where T: Copy + Sub<T, Output=T>

Performs elementwise subtraction between the slices.

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

Performs elementwise subtraction between the slices.

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

Performs elementwise subtraction between the slices.

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

Performs elementwise subtraction between the slices.

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

Performs elementwise subtraction between the slices.

impl<'a, T> Sub<Matrix<T>> for MatrixSliceMut<'a, T> where T: Copy + Sub<T, Output=T>

Performs elementwise subtraction between Matrix and MatrixSlice.

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

Performs elementwise subtraction between Matrix and MatrixSlice.

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

Performs elementwise subtraction between Matrix and MatrixSlice.

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

Performs elementwise subtraction between Matrix and MatrixSlice.

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

Scalar multiplication with matrix slice.

The resulting type after applying the * operator

The method for the * operator

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

Scalar multiplication with matrix slice.

The resulting type after applying the * operator

The method for the * operator

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

Scalar multiplication with matrix slice.

The resulting type after applying the * operator

The method for the * operator

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

Scalar multiplication with matrix slice.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

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

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, T> Mul<MatrixSlice<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, 'c, T> Mul<&'c MatrixSlice<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, 'c, T> Mul<MatrixSlice<'b, T>> for &'c MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, 'c, 'd, T> Mul<&'d MatrixSlice<'b, T>> for &'c MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, T> Mul<MatrixSliceMut<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, 'c, T> Mul<&'c MatrixSliceMut<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, 'c, T> Mul<MatrixSliceMut<'b, T>> for &'c MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, 'b, 'c, 'd, T> Mul<&'d MatrixSliceMut<'b, T>> for &'c MatrixSliceMut<'a, T> where T: Copy + Zero<Output=T> + Add<T> + Mul<T, Output=T> + Any

Multiplies two matrices together.

The resulting type after applying the * operator

The method for the * operator

impl<'a, T> BaseMatrixMut<T> for MatrixSliceMut<'a, T>

Top left index of the slice.

Returns a MatrixSliceMut over the whole matrix. Read more

Get a mutable reference to a point in the matrix without bounds checks.

Returns a mutable iterator over the matrix. Read more

Returns a mutable reference to the row of a matrix at the given index. None if the index is out of bounds. Read more

Returns a mutable reference to the row of a matrix at the given index without doing unbounds checking Read more

Swaps two rows in a matrix. Read more

Swaps two columns in a matrix. Read more

Iterate over the mutable rows of the matrix. Read more

Iterate over diagonal entries mutably Read more

Sets the underlying matrix data to the target data. Read more

Applies a function to each element in the matrix. Read more

Split the matrix at the specified axis returning two MatrixSliceMuts. Read more

Produce a MatrixSliceMut from an existing matrix. Read more

impl<'a, T> Index<[usize; 2]> for MatrixSliceMut<'a, T>

Indexes mutable matrix slice. Takes row index first then column.

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

Scalar addition with matrix slice.

The resulting type after applying the + operator

The method for the + operator

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

Scalar addition with matrix slice.

The resulting type after applying the + operator

The method for the + operator

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

Scalar addition with matrix slice.

The resulting type after applying the + operator

The method for the + operator

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

Scalar addition with matrix slice.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

impl<'a, 'b, 'c, 'd, T> Add<&'d MatrixSlice<'b, T>> for &'c MatrixSliceMut<'a, T> where T: Copy + Add<T, Output=T>

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between the slices.

The resulting type after applying the + operator

The method for the + operator

impl<'a, T> Add<Matrix<T>> for MatrixSliceMut<'a, T> where T: Copy + Add<T, Output=T>

Performs elementwise addition between Matrix and MatrixSlice.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between Matrix and MatrixSlice.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between Matrix and MatrixSlice.

The resulting type after applying the + operator

The method for the + operator

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

Performs elementwise addition between Matrix and MatrixSlice.

The resulting type after applying the + operator

The method for the + operator

impl<'a, T> IndexMut<[usize; 2]> for MatrixSliceMut<'a, T>

Indexes mutable matrix slice.

Takes row index first then column.

impl<'a, T> Debug for MatrixSliceMut<'a, T> where T: 'a + Debug

Formats the value using the given formatter.

impl<'a, T> IntoIterator for MatrixSliceMut<'a, T>

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

impl<'a, T> IntoIterator for &'a mut MatrixSliceMut<'a, T>

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

Performs subtraction assignment between a mutable matrix slice and a scalar.

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

Performs subtraction assignment between a mutable matrix slice and a scalar.

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

Performs elementwise subtraction assignment between two matrices.

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

Performs elementwise subtraction assignment between two matrices.

impl<'a, 'b, T> SubAssign<MatrixSlice<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Sub<T, Output=T>

Performs elementwise subtraction assignment between two matrices.

impl<'a, 'b, 'c, T> SubAssign<&'c MatrixSlice<'b, T>> for MatrixSliceMut<'a, T> where T: Copy + Sub<T, Output=T>

Performs elementwise subtraction assignment between two matrices.

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

Performs elementwise subtraction assignment between two matrices.

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

Performs elementwise subtraction assignment between two matrices.

impl<'a, T> Div<T> for MatrixSliceMut<'a, T> where T: Copy + Div<T, Output=T>

Scalar division with matrix slice.

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

Scalar division with matrix slice.

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

Scalar division with matrix slice.

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

Scalar division with matrix slice.

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

Gets negative of matrix slice.

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

Gets negative of matrix slice.