[−][src]Trait basic_dsp::ElementaryOps
Elementary algebra on types: addition, subtraction, multiplication and division
Required methods
fn add(&mut self, summand: &A) -> Result<(), ErrorReason>
Calculates the sum of self + summand
. It consumes self and returns the result.
Failures
TransRes may report the following ErrorReason
members:
VectorsMustHaveTheSameSize
:self
andsummand
must have the same sizeVectorMetaDataMustAgree
:self
andsummand
must be in the same domain and number space
Example
use basic_dsp_vector::*; let mut vector1 = vec!(1.0, 2.0).to_real_time_vec(); let vector2 = vec!(10.0, 11.0).to_real_time_vec(); vector1.add(&vector2).expect("Ignoring error handling in examples"); assert_eq!([11.0, 13.0], vector1[0..]);
fn sub(&mut self, subtrahend: &A) -> Result<(), ErrorReason>
Calculates the difference of self - subtrahend
. It consumes self and returns the result.
Failures
TransRes may report the following ErrorReason
members:
VectorsMustHaveTheSameSize
:self
andsubtrahend
must have the same sizeVectorMetaDataMustAgree
:self
andsubtrahend
must be in the same domain and number space
Example
use basic_dsp_vector::*; let mut vector1 = vec!(1.0, 2.0).to_real_time_vec(); let vector2 = vec!(10.0, 11.0).to_real_time_vec(); vector1.sub(&vector2).expect("Ignoring error handling in examples"); assert_eq!([-9.0, -9.0], vector1[0..]);
fn mul(&mut self, factor: &A) -> Result<(), ErrorReason>
Calculates the product of self * factor
. It consumes self and returns the result.
Failures
TransRes may report the following ErrorReason
members:
VectorsMustHaveTheSameSize
:self
andfactor
must have the same sizeVectorMetaDataMustAgree
:self
andfactor
must be in the same domain and number space
Example
use basic_dsp_vector::*; let mut vector1 = vec!(1.0, 2.0).to_real_time_vec(); let vector2 = vec!(10.0, 11.0).to_real_time_vec(); vector1.mul(&vector2).expect("Ignoring error handling in examples"); assert_eq!([10.0, 22.0], vector1[0..]);
fn div(&mut self, divisor: &A) -> Result<(), ErrorReason>
Calculates the quotient of self / summand
. It consumes self and returns the result.
Failures
TransRes may report the following ErrorReason
members:
VectorsMustHaveTheSameSize
:self
anddivisor
must have the same sizeVectorMetaDataMustAgree
:self
anddivisor
must be in the same domain and number space
Example
use basic_dsp_vector::*; let mut vector1 = vec!(10.0, 22.0).to_real_time_vec(); let vector2 = vec!(2.0, 11.0).to_real_time_vec(); vector1.div(&vector2).expect("Ignoring error handling in examples"); assert_eq!([5.0, 2.0], vector1[0..]);
Implementors
impl<S, T, N, D, O, NO, DO> ElementaryOps<O, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
S: ToSliceMut<T>,
T: RealNumber,
[src]
impl<S, T, N, D, O, NO, DO> ElementaryOps<O, T, NO, DO> for DspVec<S, T, N, D> where
D: Domain,
DO: PosEq<D> + Domain,
N: NumberSpace,
NO: PosEq<N> + NumberSpace,
O: Vector<T> + Index<RangeFull, Output = [T]> + GetMetaData<T, NO, DO>,
S: ToSliceMut<T>,
T: RealNumber,
fn add(&mut self, summand: &O) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, subtrahend: &O) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, factor: &O) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, divisor: &O) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<Matrix2xN<V, S, T>, T, N, D> for Matrix2xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<Matrix2xN<V, S, T>, T, N, D> for Matrix2xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &Matrix2xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &Matrix2xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &Matrix2xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &Matrix2xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<Matrix3xN<V, S, T>, T, N, D> for Matrix3xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<Matrix3xN<V, S, T>, T, N, D> for Matrix3xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &Matrix3xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &Matrix3xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &Matrix3xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &Matrix3xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<Matrix4xN<V, S, T>, T, N, D> for Matrix4xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<Matrix4xN<V, S, T>, T, N, D> for Matrix4xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &Matrix4xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &Matrix4xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &Matrix4xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &Matrix4xN<V, S, T>) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<MatrixMxN<V, S, T>, T, N, D> for MatrixMxN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<MatrixMxN<V, S, T>, T, N, D> for MatrixMxN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &MatrixMxN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &MatrixMxN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &MatrixMxN<V, S, T>) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &MatrixMxN<V, S, T>) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for Matrix2xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for Matrix2xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for Matrix3xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for Matrix3xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for Matrix4xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for Matrix4xN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
fn add(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn sub(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn div(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
fn mul(&mut self, summand: &V) -> Result<(), ErrorReason> | [src] |
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for MatrixMxN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,
[src]
impl<V, S, T, N, D> ElementaryOps<V, T, N, D> for MatrixMxN<V, S, T> where
D: Domain,
N: NumberSpace,
S: ToSlice<T>,
T: RealNumber,
V: Vector<T> + ElementaryOps<V, T, N, D> + GetMetaData<T, N, D>,