Struct vox_geometry_rust::matrix_expression::MatrixMul[][src]

pub struct MatrixMul<E1: MatrixExpression, E2: MatrixExpression> { /* fields omitted */ }
Expand description

Matrix expression for matrix-matrix multiplication.

This matrix expression represents a matrix-matrix operation that takes two input matrices.

  • tparam T Element value type.
  • tparam ME Matrix expression.
  • tparam VE Vector expression.

Implementations

impl<E1: MatrixExpression, E2: MatrixExpression> MatrixMul<E1, E2>[src]

pub fn new(u: E1, v: E2) -> MatrixMul<E1, E2>[src]

Constructs matrix-matrix multiplication expression for given two input matrices.

Trait Implementations

impl<Return: MatrixExpression, E1: MatrixExpression, E2: MatrixExpression> Add<Return> for MatrixMul<E1, E2>[src]

type Output = MatrixAdd<MatrixMul<E1, E2>, Return>

The resulting type after applying the + operator.

fn add(self, rhs: Return) -> Self::Output[src]

Performs the + operation. Read more

impl<E1: MatrixExpression, E2: MatrixExpression> Add<f64> for MatrixMul<E1, E2>[src]

type Output = MatrixScalarAdd<MatrixMul<E1, E2>>

The resulting type after applying the + operator.

fn add(self, rhs: f64) -> Self::Output[src]

Performs the + operation. Read more

impl<E1: MatrixExpression, E2: MatrixExpression> Div<f64> for MatrixMul<E1, E2>[src]

type Output = MatrixScalarDiv<MatrixMul<E1, E2>>

The resulting type after applying the / operator.

fn div(self, rhs: f64) -> Self::Output[src]

Performs the / operation. Read more

impl<E1: MatrixExpression, E2: MatrixExpression> MatrixExpression for MatrixMul<E1, E2>[src]

fn size(&self) -> USize2[src]

Size of the matrix.

fn rows(&self) -> usize[src]

Number of rows.

fn cols(&self) -> usize[src]

Number of columns.

fn eval(&self, i: usize, j: usize) -> f64[src]

Returns matrix element at (i, j).

impl<Matrix: MatrixExpression, E1: MatrixExpression, E2: MatrixExpression> Mul<Matrix> for MatrixMul<E1, E2>[src]

type Output = MatrixMul<MatrixMul<E1, E2>, Matrix>

The resulting type after applying the * operator.

fn mul(self, rhs: Matrix) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, E2: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorBinaryOp<E1, E2, Divides>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorDiv<E1, E2>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorDiv<E1, E2>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, E2: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorBinaryOp<E1, E2, Minus>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorSub<E1, E2>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorSub<E1, E2>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, E2: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorBinaryOp<E1, E2, Multiplies>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorMul<E1, E2>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorMul<E1, E2>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, E2: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorBinaryOp<E1, E2, Plus>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorAdd<E1, E2>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorAdd<E1, E2>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorScalarBinaryOp<E1, Divides>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorScalarDiv<E1>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorScalarDiv<E1>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorScalarBinaryOp<E1, Minus>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorScalarSub<E1>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorScalarSub<E1>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorScalarBinaryOp<E1, Multiplies>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorScalarMul<E1>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorScalarMul<E1>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorScalarBinaryOp<E1, Plus>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorScalarAdd<E1>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorScalarAdd<E1>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorScalarBinaryOp<E1, RDivides>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorScalarRDiv<E1>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorScalarRDiv<E1>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: VectorExpression, V1: MatrixExpression, V2: MatrixExpression> Mul<VectorScalarBinaryOp<E1, RMinus>> for MatrixMul<V1, V2>[src]

type Output = MatrixVectorMul<MatrixMul<V1, V2>, VectorScalarRSub<E1>>

The resulting type after applying the * operator.

fn mul(self, rhs: VectorScalarRSub<E1>) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: MatrixExpression, E2: MatrixExpression> Mul<f64> for MatrixMul<E1, E2>[src]

type Output = MatrixScalarMul<MatrixMul<E1, E2>>

The resulting type after applying the * operator.

fn mul(self, rhs: f64) -> Self::Output[src]

Performs the * operation. Read more

impl<E1: MatrixExpression, E2: MatrixExpression> Neg for MatrixMul<E1, E2>[src]

type Output = MatrixScalarMul<MatrixMul<E1, E2>>

The resulting type after applying the - operator.

fn neg(self) -> Self::Output[src]

Performs the unary - operation. Read more

impl<Return: MatrixExpression, E1: MatrixExpression, E2: MatrixExpression> Sub<Return> for MatrixMul<E1, E2>[src]

type Output = MatrixSub<MatrixMul<E1, E2>, Return>

The resulting type after applying the - operator.

fn sub(self, rhs: Return) -> Self::Output[src]

Performs the - operation. Read more

impl<E1: MatrixExpression, E2: MatrixExpression> Sub<f64> for MatrixMul<E1, E2>[src]

type Output = MatrixScalarSub<MatrixMul<E1, E2>>

The resulting type after applying the - operator.

fn sub(self, rhs: f64) -> Self::Output[src]

Performs the - operation. Read more

Auto Trait Implementations

impl<E1, E2> RefUnwindSafe for MatrixMul<E1, E2> where
    E1: RefUnwindSafe,
    E2: RefUnwindSafe

impl<E1, E2> Send for MatrixMul<E1, E2> where
    E1: Send,
    E2: Send

impl<E1, E2> Sync for MatrixMul<E1, E2> where
    E1: Sync,
    E2: Sync

impl<E1, E2> Unpin for MatrixMul<E1, E2> where
    E1: Unpin,
    E2: Unpin

impl<E1, E2> UnwindSafe for MatrixMul<E1, E2> where
    E1: UnwindSafe,
    E2: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Pointable for T

pub const ALIGN: usize

The alignment of pointer.

type Init = T

The type for initializers.

pub unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more

pub unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more

pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more

pub unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

pub fn vzip(self) -> V