pub struct Array<Item, ArrayImpl, const NDIM: usize>(/* private fields */)
where
Item: RlstBase,
ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>;Expand description
The basic tuple type defining an array.
Implementations§
Source§impl<Item: RlstScalar + MatrixInverse, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar + MatrixInverse, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>
Sourcepub fn into_inverse_alloc(self) -> RlstResult<()>
pub fn into_inverse_alloc(self) -> RlstResult<()>
Return the matrix inverse.
Source§impl<Item: RlstScalar + MatrixLu, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + RawAccessMut<Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar + MatrixLu, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + RawAccessMut<Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
Sourcepub fn into_lu_alloc(self) -> RlstResult<LuDecomposition<Item, ArrayImpl>>
pub fn into_lu_alloc(self) -> RlstResult<LuDecomposition<Item, ArrayImpl>>
Compute the LU decomposition of a matrix.
The LU Decomposition of an (m,n) matrix A is defined
by A = PLU, where P is an (m, m) permutation matrix,
L is a (m, k) unit lower triangular matrix, and U is
an (k, n) upper triangular matrix.
Source§impl<Item: RlstScalar + MatrixPseudoInverse, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + UnsafeRandomAccessMut<2, Item = Item> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar + MatrixPseudoInverse, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + UnsafeRandomAccessMut<2, Item = Item> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>
Sourcepub fn into_pseudo_inverse_resize_alloc<ArrayImplPInv: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + ResizeInPlace<2>>(
self,
pinv: Array<Item, ArrayImplPInv, 2>,
tol: <Item as RlstScalar>::Real,
) -> RlstResult<()>
pub fn into_pseudo_inverse_resize_alloc<ArrayImplPInv: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + ResizeInPlace<2>>( self, pinv: Array<Item, ArrayImplPInv, 2>, tol: <Item as RlstScalar>::Real, ) -> RlstResult<()>
Compute the pseudoinverse into the array pinv.
This method dynamically allocates memory for the computation.
§Parameters
pinv: Array to store the pseudo-inverse in. Array is resized if necessary.tol: The relative tolerance. Singular values smaller or equaltolwill be discarded.
Sourcepub fn into_pseudo_inverse_alloc<ArrayImplPInv: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item> + UnsafeRandomAccessMut<2, Item = Item>>(
self,
pinv: Array<Item, ArrayImplPInv, 2>,
tol: <Item as RlstScalar>::Real,
) -> RlstResult<()>
pub fn into_pseudo_inverse_alloc<ArrayImplPInv: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item> + UnsafeRandomAccessMut<2, Item = Item>>( self, pinv: Array<Item, ArrayImplPInv, 2>, tol: <Item as RlstScalar>::Real, ) -> RlstResult<()>
Compute the pseudo inverse into the array pinv.
This method dynamically allocates memory for the computation.
§Parameters
pinv: Array to store the pseudo-inverse in. Ifselfhas shape[m, n]thenpinvmust have shape[n, m].tol: The relative tolerance. Singular values smaller or equaltol * s\[0\]will be discarded, where s[0] is the largest singular value.
Source§impl<Item: RlstScalar + MatrixQr, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + RawAccessMut<Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar + MatrixQr, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + RawAccessMut<Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
Sourcepub fn into_qr_alloc(self) -> RlstResult<QrDecomposition<Item, ArrayImpl>>
pub fn into_qr_alloc(self) -> RlstResult<QrDecomposition<Item, ArrayImpl>>
Compute the QR decomposition of a given 2-dimensional array.
Source§impl<Item: RlstScalar + MatrixSvd, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar + MatrixSvd, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>
Sourcepub fn into_singular_values_alloc(
self,
singular_values: &mut [<Item as RlstScalar>::Real],
) -> RlstResult<()>
pub fn into_singular_values_alloc( self, singular_values: &mut [<Item as RlstScalar>::Real], ) -> RlstResult<()>
Compute the singular values of the matrix.
For a (m, n) matrix A the slice singular_values has
length k=min(m, n).
This method allocates temporary memory during execution.
Sourcepub fn into_svd_alloc<ArrayImplU: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>, ArrayImplVt: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>>(
self,
u: Array<Item, ArrayImplU, 2>,
vt: Array<Item, ArrayImplVt, 2>,
singular_values: &mut [<Item as RlstScalar>::Real],
mode: SvdMode,
) -> RlstResult<()>
pub fn into_svd_alloc<ArrayImplU: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>, ArrayImplVt: UnsafeRandomAccessByValue<2, Item = Item> + Stride<2> + Shape<2> + RawAccessMut<Item = Item>>( self, u: Array<Item, ArrayImplU, 2>, vt: Array<Item, ArrayImplVt, 2>, singular_values: &mut [<Item as RlstScalar>::Real], mode: SvdMode, ) -> RlstResult<()>
Compute the singular value decomposition.
We assume that A is a (m, n) matrix and assume
k=min(m, n). This method computes the singular value
decomposition A = USVt.
§Parameters
u- Stores the matrixU. For the full SVD the shape needs to be(m, m). For the reduced SVD it needs to be(m, k).vt- Stores the matrixVt. For the full SVD the shape needs to be(n, n). For the reduced SVD it needs to be(k, n). Note thatvtstores the complex conjugate transpose of the matrix of right singular vectors. Hence, the columns ofvt.transpose().conj()will be the right singular vectors.singular_values- Stores theksingular values ofA.mode- Choose between full SVD SvdMode::Full or reduced SVD SvdMode::Reduced.
This method allocates temporary memory during execution.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<ADIM, Item = Item> + Shape<ADIM>, const ADIM: usize> Array<Item, ArrayImpl, ADIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<ADIM, Item = Item> + Shape<ADIM>, const ADIM: usize> Array<Item, ArrayImpl, ADIM>
Sourcepub fn insert_empty_axis<const NDIM: usize>(
self,
axis_position: AxisPosition,
) -> Array<Item, ArrayAppendAxis<Item, ArrayImpl, ADIM, NDIM>, NDIM>where
NumberType<ADIM>: IsSmallerByOne<NDIM>,
pub fn insert_empty_axis<const NDIM: usize>(
self,
axis_position: AxisPosition,
) -> Array<Item, ArrayAppendAxis<Item, ArrayImpl, ADIM, NDIM>, NDIM>where
NumberType<ADIM>: IsSmallerByOne<NDIM>,
Insert empty axis
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
Sourcepub fn row_iter(&self) -> RowIterator<'_, Item, ArrayImpl, 2> ⓘ
pub fn row_iter(&self) -> RowIterator<'_, Item, ArrayImpl, 2> ⓘ
Return a row iterator for a two-dimensional array.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + UnsafeRandomAccessMut<2, Item = Item>> Array<Item, ArrayImpl, 2>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + UnsafeRandomAccessMut<2, Item = Item>> Array<Item, ArrayImpl, 2>
Sourcepub fn row_iter_mut(&mut self) -> RowIteratorMut<'_, Item, ArrayImpl, 2> ⓘ
pub fn row_iter_mut(&mut self) -> RowIteratorMut<'_, Item, ArrayImpl, 2> ⓘ
Return a mutable row iterator for a two-dimensional array.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
Sourcepub fn col_iter(&self) -> ColIterator<'_, Item, ArrayImpl, 2> ⓘ
pub fn col_iter(&self) -> ColIterator<'_, Item, ArrayImpl, 2> ⓘ
Return a column iterator for a two-dimensional array.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + UnsafeRandomAccessMut<2, Item = Item>> Array<Item, ArrayImpl, 2>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + UnsafeRandomAccessMut<2, Item = Item>> Array<Item, ArrayImpl, 2>
Sourcepub fn col_iter_mut(&mut self) -> ColIteratorMut<'_, Item, ArrayImpl, 2> ⓘ
pub fn col_iter_mut(&mut self) -> ColIteratorMut<'_, Item, ArrayImpl, 2> ⓘ
Return a mutable column iterator for a two-dimensional array.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>> Array<Item, ArrayImpl, 1>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>> Array<Item, ArrayImpl, 1>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Return true of array is empty (that is one dimension is zero), otherwise false.
Sourcepub fn get_diag<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + UnsafeRandomAccessMut<1, Item = Item>>(
&self,
other: Array<Item, ArrayImplOther, 1>,
)
pub fn get_diag<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + UnsafeRandomAccessMut<1, Item = Item>>( &self, other: Array<Item, ArrayImplOther, 1>, )
Get the diagonal of an array.
Argument must be a 1d array of length self.shape().iter().min().
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn set_diag<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + UnsafeRandomAccessMut<1, Item = Item>>(
&mut self,
other: Array<Item, ArrayImplOther, 1>,
)
pub fn set_diag<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + UnsafeRandomAccessMut<1, Item = Item>>( &mut self, other: Array<Item, ArrayImplOther, 1>, )
Set the diagonal of an array.
Argument must be a 1d array of length self.shape().iter().min().
Sourcepub fn fill_from<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)
pub fn fill_from<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>( &mut self, other: Array<Item, ArrayImplOther, NDIM>, )
Fill an array with values from another array.
Sourcepub fn fill_from_resize<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)where
Self: ResizeInPlace<NDIM>,
pub fn fill_from_resize<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)where
Self: ResizeInPlace<NDIM>,
Fill an array from another array and resize if necessary.
Sourcepub fn fill_from_chunked<Other: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Other,
)
pub fn fill_from_chunked<Other: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>( &mut self, other: Other, )
Fill an array with values from an other arrays using chunks of size N.
Sourcepub fn fill_from_chunked_resize<Other: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Other,
)where
Self: ResizeInPlace<NDIM>,
pub fn fill_from_chunked_resize<Other: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Other,
)where
Self: ResizeInPlace<NDIM>,
Fill an array with values from an other arrays using chunks of size N. Resize if necessary.
Source§impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn set_identity(&mut self)
pub fn set_identity(&mut self)
Fill the diagonal of an array with the value 1 and all other elements zero.
Sourcepub fn scale_inplace(&mut self, alpha: Item)
pub fn scale_inplace(&mut self, alpha: Item)
Multiply all array elements with the scalar alpha.
Sourcepub fn sum_into<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)
pub fn sum_into<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>( &mut self, other: Array<Item, ArrayImplOther, NDIM>, )
Sum other array into array.
Sourcepub fn cmp_mult_into<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)
pub fn cmp_mult_into<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>>( &mut self, other: Array<Item, ArrayImplOther, NDIM>, )
Componentwise multiply other array into array.
Sourcepub fn sum_into_chunked<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)where
Self: ChunkedAccess<N, Item = Item>,
pub fn sum_into_chunked<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)where
Self: ChunkedAccess<N, Item = Item>,
Chunked summation into array.
Sourcepub fn cmp_mult_into_chunked<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)where
Self: ChunkedAccess<N, Item = Item>,
pub fn cmp_mult_into_chunked<ArrayImplOther: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const N: usize>(
&mut self,
other: Array<Item, ArrayImplOther, NDIM>,
)where
Self: ChunkedAccess<N, Item = Item>,
Chunked componentwise multiplication into array.
Source§impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>> Array<Item, ArrayImpl, 1>
impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>> Array<Item, ArrayImpl, 1>
Sourcepub fn inner<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>>(
&self,
other: Array<Item, ArrayImplOther, 1>,
) -> Item
pub fn inner<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>>( &self, other: Array<Item, ArrayImplOther, 1>, ) -> Item
Compute the inner product between two vectors.
The inner product takes the complex conjugate of the other argument.
Sourcepub fn norm_inf(self) -> <Item as RlstScalar>::Real
pub fn norm_inf(self) -> <Item as RlstScalar>::Real
Compute the maximum (or inf) norm of a vector.
Sourcepub fn norm_1(self) -> <Item as RlstScalar>::Real
pub fn norm_1(self) -> <Item as RlstScalar>::Real
Compute the 1-norm of a vector.
Sourcepub fn norm_2(self) -> <Item as RlstScalar>::Real
pub fn norm_2(self) -> <Item as RlstScalar>::Real
Compute the 2-norm of a vector.
Sourcepub fn cross<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>, ArrayImplRes: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + UnsafeRandomAccessByRef<1, Item = Item> + Shape<1>>(
&self,
other: Array<Item, ArrayImplOther, 1>,
res: Array<Item, ArrayImplRes, 1>,
)
pub fn cross<ArrayImplOther: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1>, ArrayImplRes: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + UnsafeRandomAccessByRef<1, Item = Item> + Shape<1>>( &self, other: Array<Item, ArrayImplOther, 1>, res: Array<Item, ArrayImplRes, 1>, )
Compute the cross product with vector other and store into res.
Source§impl<Item, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>where
Item: MatrixSvd + RlstScalar,
impl<Item, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>where
Item: MatrixSvd + RlstScalar,
Sourcepub fn norm_2_alloc(self) -> RlstResult<<Item as RlstScalar>::Real>
pub fn norm_2_alloc(self) -> RlstResult<<Item as RlstScalar>::Real>
Compute the 2-norm of a matrix.
This method allocates temporary memory during execution.
Source§impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2>> Array<Item, ArrayImpl, 2>
Source§impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>where
LuDecomposition<Item, ArrayImpl>: MatrixLuDecomposition<Item = Item, ArrayImpl = ArrayImpl>,
impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item>> Array<Item, ArrayImpl, 2>where
LuDecomposition<Item, ArrayImpl>: MatrixLuDecomposition<Item = Item, ArrayImpl = ArrayImpl>,
Sourcepub fn into_solve_vec<ArrayImplMut: RawAccessMut<Item = Item> + UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1>>(
self,
trans: TransMode,
rhs: Array<Item, ArrayImplMut, 1>,
) -> RlstResult<Array<Item, ArrayImplMut, 1>>
pub fn into_solve_vec<ArrayImplMut: RawAccessMut<Item = Item> + UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1>>( self, trans: TransMode, rhs: Array<Item, ArrayImplMut, 1>, ) -> RlstResult<Array<Item, ArrayImplMut, 1>>
Solve a linear system with a single right-hand side.
The array is overwritten with the LU Decomposition and the right-hand side is overwritten with the solution. The solution is also returned.
Sourcepub fn into_det<ArrayImplMut: RawAccessMut<Item = Item> + UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2>>(
self,
) -> RlstResult<Item>
pub fn into_det<ArrayImplMut: RawAccessMut<Item = Item> + UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2>>( self, ) -> RlstResult<Item>
Compute the determinant of a matrix.
The array is overwritten by the determinant computation.
Sourcepub fn into_solve_mat<ArrayImplMut: RawAccessMut<Item = Item> + UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2>>(
self,
trans: TransMode,
rhs: Array<Item, ArrayImplMut, 2>,
) -> RlstResult<Array<Item, ArrayImplMut, 2>>
pub fn into_solve_mat<ArrayImplMut: RawAccessMut<Item = Item> + UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2>>( self, trans: TransMode, rhs: Array<Item, ArrayImplMut, 2>, ) -> RlstResult<Array<Item, ArrayImplMut, 2>>
Solve a linear system with multiple right-hand sides.
The array is overwritten with the LU Decomposition and the right-hand side is overwritten with the solution. The solution is also returned.
Source§impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn conj(self) -> Array<Item, ArrayConjugate<Item, ArrayImpl, NDIM>, NDIM>
pub fn conj(self) -> Array<Item, ArrayConjugate<Item, ArrayImpl, NDIM>, NDIM>
Conjugate
Source§impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn scalar_mul(
self,
other: Item,
) -> Array<Item, ArrayScalarMult<Item, ArrayImpl, NDIM>, NDIM>
pub fn scalar_mul( self, other: Item, ) -> Array<Item, ArrayScalarMult<Item, ArrayImpl, NDIM>, NDIM>
Multiplication by a scalar
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f32> + Shape<NDIM>, const NDIM: usize> Array<f32, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f32> + Shape<NDIM>, const NDIM: usize> Array<f32, ArrayImpl, NDIM>
Sourcepub fn to_complex(
self,
) -> Array<c32, ArrayToComplex<c32, ArrayImpl, NDIM>, NDIM>
pub fn to_complex( self, ) -> Array<c32, ArrayToComplex<c32, ArrayImpl, NDIM>, NDIM>
Convert to complex
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f64> + Shape<NDIM>, const NDIM: usize> Array<f64, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f64> + Shape<NDIM>, const NDIM: usize> Array<f64, ArrayImpl, NDIM>
Sourcepub fn to_complex(
self,
) -> Array<c64, ArrayToComplex<c64, ArrayImpl, NDIM>, NDIM>
pub fn to_complex( self, ) -> Array<c64, ArrayToComplex<c64, ArrayImpl, NDIM>, NDIM>
Convert to complex
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c64> + Shape<NDIM>, const NDIM: usize> Array<c64, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c64> + Shape<NDIM>, const NDIM: usize> Array<c64, ArrayImpl, NDIM>
Sourcepub fn to_complex(self) -> Self
pub fn to_complex(self) -> Self
Convert to complex
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c32> + Shape<NDIM>, const NDIM: usize> Array<c32, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c32> + Shape<NDIM>, const NDIM: usize> Array<c32, ArrayImpl, NDIM>
Sourcepub fn to_complex(self) -> Self
pub fn to_complex(self) -> Self
Convert to complex
Source§impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstNum, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn permute_axes(
self,
permutation: [usize; NDIM],
) -> Array<Item, ArrayTranspose<Item, ArrayImpl, NDIM>, NDIM>
pub fn permute_axes( self, permutation: [usize; NDIM], ) -> Array<Item, ArrayTranspose<Item, ArrayImpl, NDIM>, NDIM>
Permute axes of an array
Sourcepub fn transpose(
self,
) -> Array<Item, ArrayTranspose<Item, ArrayImpl, NDIM>, NDIM>
pub fn transpose( self, ) -> Array<Item, ArrayTranspose<Item, ArrayImpl, NDIM>, NDIM>
Transpose an array
Source§impl<Item: RlstScalar + RandScalar, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + UnsafeRandomAccessMut<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>where
StandardNormal: Distribution<<Item as RlstScalar>::Real>,
Standard: Distribution<<Item as RlstScalar>::Real>,
impl<Item: RlstScalar + RandScalar, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + UnsafeRandomAccessMut<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>where
StandardNormal: Distribution<<Item as RlstScalar>::Real>,
Standard: Distribution<<Item as RlstScalar>::Real>,
Sourcepub fn fill_from_standard_normal<R: Rng>(&mut self, rng: &mut R)
pub fn fill_from_standard_normal<R: Rng>(&mut self, rng: &mut R)
Fill an array with normally distributed random numbers.
Sourcepub fn fill_from_equally_distributed<R: Rng>(&mut self, rng: &mut R)
pub fn fill_from_equally_distributed<R: Rng>(&mut self, rng: &mut R)
Fill an array with equally distributed random numbers.
Sourcepub fn fill_from_seed_equally_distributed(&mut self, seed: usize)
pub fn fill_from_seed_equally_distributed(&mut self, seed: usize)
Fill with equally distributed numbers using a given seed.
Sourcepub fn fill_from_seed_normally_distributed(&mut self, seed: usize)
pub fn fill_from_seed_normally_distributed(&mut self, seed: usize)
Fill with normally distributed numbers using a given seed.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<ADIM, Item = Item> + Shape<ADIM>, const ADIM: usize> Array<Item, ArrayImpl, ADIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<ADIM, Item = Item> + Shape<ADIM>, const ADIM: usize> Array<Item, ArrayImpl, ADIM>
Sourcepub fn slice<const NDIM: usize>(
self,
axis: usize,
index: usize,
) -> Array<Item, ArraySlice<Item, ArrayImpl, ADIM, NDIM>, NDIM>
pub fn slice<const NDIM: usize>( self, axis: usize, index: usize, ) -> Array<Item, ArraySlice<Item, ArrayImpl, ADIM, NDIM>, NDIM>
Create a slice from a given array.
Consider an array arr with shape [a0, a1, a2, a3, ...]. The function call
arr.slice(2, 3) returns a one dimension smaller array indexed by [a0, a1, 3, a3, ...].
Hence, the dimension 2 has been fixed to always have the value 3.
§Examples
If arr is a matrix then the first column of the matrix is obtained from
arr.slice(1, 0), while the third row of the matrix is obtained from
arr.slice(0, 2).
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn into_subview(
self,
offset: [usize; NDIM],
shape: [usize; NDIM],
) -> Array<Item, ArraySubView<Item, ArrayImpl, NDIM>, NDIM>
pub fn into_subview( self, offset: [usize; NDIM], shape: [usize; NDIM], ) -> Array<Item, ArraySubView<Item, ArrayImpl, NDIM>, NDIM>
Move the array into a subview specified by an offset and shape of the subview.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn view_mut(
&mut self,
) -> Array<Item, ArrayViewMut<'_, Item, ArrayImpl, NDIM>, NDIM>
pub fn view_mut( &mut self, ) -> Array<Item, ArrayViewMut<'_, Item, ArrayImpl, NDIM>, NDIM>
Return a mutable view onto the array.
Sourcepub fn view_flat_mut(
&mut self,
) -> Array<Item, ArrayFlatViewMut<'_, Item, ArrayImpl, NDIM>, 1>
pub fn view_flat_mut( &mut self, ) -> Array<Item, ArrayFlatViewMut<'_, Item, ArrayImpl, NDIM>, 1>
Return a flattened 1d view onto the array. The view is flattened in column-major order.
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Array<Item, ArrayImpl, NDIM>
Sourcepub fn number_of_elements(&self) -> usize
pub fn number_of_elements(&self) -> usize
Return the number of elements in the array.
Source§impl<Item: RlstBase, const NDIM: usize> Array<Item, BaseArray<Item, VectorContainer<Item>, NDIM>, NDIM>
impl<Item: RlstBase, const NDIM: usize> Array<Item, BaseArray<Item, VectorContainer<Item>, NDIM>, NDIM>
Sourcepub fn from_shape(shape: [usize; NDIM]) -> Self
pub fn from_shape(shape: [usize; NDIM]) -> Self
Create a new heap allocated array from a given shape.
Source§impl<'a, Item: RlstBase, const NDIM: usize> Array<Item, BaseArray<Item, SliceContainer<'a, Item>, NDIM>, NDIM>
impl<'a, Item: RlstBase, const NDIM: usize> Array<Item, BaseArray<Item, SliceContainer<'a, Item>, NDIM>, NDIM>
Sourcepub fn from_shape(slice: &'a [Item], shape: [usize; NDIM]) -> Self
pub fn from_shape(slice: &'a [Item], shape: [usize; NDIM]) -> Self
Create a new array from a slice with a given shape.
The stride is automatically assumed to be column major.
Source§impl<'a, Item: RlstBase, const NDIM: usize> Array<Item, BaseArray<Item, SliceContainerMut<'a, Item>, NDIM>, NDIM>
impl<'a, Item: RlstBase, const NDIM: usize> Array<Item, BaseArray<Item, SliceContainerMut<'a, Item>, NDIM>, NDIM>
Sourcepub fn from_shape(slice: &'a mut [Item], shape: [usize; NDIM]) -> Self
pub fn from_shape(slice: &'a mut [Item], shape: [usize; NDIM]) -> Self
Create a new array from a slice with a given shape.
The stride is automatically assumed to be column major.
Trait Implementations§
Source§impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Add<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Add<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const NDIM: usize, const N: usize> ChunkedAccess<N> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ChunkedAccess<N, Item = Item>, const NDIM: usize, const N: usize> ChunkedAccess<N> for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Debug for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Debug for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> DefaultIterator for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> DefaultIterator for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> DefaultIteratorMut for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> DefaultIteratorMut for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Div<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Div<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessByRef<NDIM, Item = Item>, const NDIM: usize> Index<[usize; NDIM]> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessByRef<NDIM, Item = Item>, const NDIM: usize> Index<[usize; NDIM]> for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessByRef<NDIM, Item = Item> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> IndexMut<[usize; NDIM]> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessByRef<NDIM, Item = Item> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> IndexMut<[usize; NDIM]> for Array<Item, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c32> + Shape<NDIM>, const NDIM: usize> Mul<Array<Complex<f32>, ArrayImpl, NDIM>> for c32
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c32> + Shape<NDIM>, const NDIM: usize> Mul<Array<Complex<f32>, ArrayImpl, NDIM>> for c32
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c64> + Shape<NDIM>, const NDIM: usize> Mul<Array<Complex<f64>, ArrayImpl, NDIM>> for c64
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c64> + Shape<NDIM>, const NDIM: usize> Mul<Array<Complex<f64>, ArrayImpl, NDIM>> for c64
Source§impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Mul<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Mul<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f32> + Shape<NDIM>, const NDIM: usize> Mul<Array<f32, ArrayImpl, NDIM>> for f32
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f32> + Shape<NDIM>, const NDIM: usize> Mul<Array<f32, ArrayImpl, NDIM>> for f32
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f64> + Shape<NDIM>, const NDIM: usize> Mul<Array<f64, ArrayImpl, NDIM>> for f64
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f64> + Shape<NDIM>, const NDIM: usize> Mul<Array<f64, ArrayImpl, NDIM>> for f64
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i16> + Shape<NDIM>, const NDIM: usize> Mul<Array<i16, ArrayImpl, NDIM>> for i16
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i16> + Shape<NDIM>, const NDIM: usize> Mul<Array<i16, ArrayImpl, NDIM>> for i16
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i32> + Shape<NDIM>, const NDIM: usize> Mul<Array<i32, ArrayImpl, NDIM>> for i32
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i32> + Shape<NDIM>, const NDIM: usize> Mul<Array<i32, ArrayImpl, NDIM>> for i32
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i64> + Shape<NDIM>, const NDIM: usize> Mul<Array<i64, ArrayImpl, NDIM>> for i64
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i64> + Shape<NDIM>, const NDIM: usize> Mul<Array<i64, ArrayImpl, NDIM>> for i64
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i8> + Shape<NDIM>, const NDIM: usize> Mul<Array<i8, ArrayImpl, NDIM>> for i8
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i8> + Shape<NDIM>, const NDIM: usize> Mul<Array<i8, ArrayImpl, NDIM>> for i8
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u16> + Shape<NDIM>, const NDIM: usize> Mul<Array<u16, ArrayImpl, NDIM>> for u16
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u16> + Shape<NDIM>, const NDIM: usize> Mul<Array<u16, ArrayImpl, NDIM>> for u16
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u32> + Shape<NDIM>, const NDIM: usize> Mul<Array<u32, ArrayImpl, NDIM>> for u32
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u32> + Shape<NDIM>, const NDIM: usize> Mul<Array<u32, ArrayImpl, NDIM>> for u32
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u64> + Shape<NDIM>, const NDIM: usize> Mul<Array<u64, ArrayImpl, NDIM>> for u64
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u64> + Shape<NDIM>, const NDIM: usize> Mul<Array<u64, ArrayImpl, NDIM>> for u64
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u8> + Shape<NDIM>, const NDIM: usize> Mul<Array<u8, ArrayImpl, NDIM>> for u8
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u8> + Shape<NDIM>, const NDIM: usize> Mul<Array<u8, ArrayImpl, NDIM>> for u8
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = usize> + Shape<NDIM>, const NDIM: usize> Mul<Array<usize, ArrayImpl, NDIM>> for usize
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = usize> + Shape<NDIM>, const NDIM: usize> Mul<Array<usize, ArrayImpl, NDIM>> for usize
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c32> + Shape<NDIM>, const NDIM: usize> Mul<Complex<f32>> for Array<c32, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c32> + Shape<NDIM>, const NDIM: usize> Mul<Complex<f32>> for Array<c32, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c64> + Shape<NDIM>, const NDIM: usize> Mul<Complex<f64>> for Array<c64, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = c64> + Shape<NDIM>, const NDIM: usize> Mul<Complex<f64>> for Array<c64, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f32> + Shape<NDIM>, const NDIM: usize> Mul<f32> for Array<f32, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f32> + Shape<NDIM>, const NDIM: usize> Mul<f32> for Array<f32, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f64> + Shape<NDIM>, const NDIM: usize> Mul<f64> for Array<f64, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = f64> + Shape<NDIM>, const NDIM: usize> Mul<f64> for Array<f64, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i16> + Shape<NDIM>, const NDIM: usize> Mul<i16> for Array<i16, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i16> + Shape<NDIM>, const NDIM: usize> Mul<i16> for Array<i16, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i32> + Shape<NDIM>, const NDIM: usize> Mul<i32> for Array<i32, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i32> + Shape<NDIM>, const NDIM: usize> Mul<i32> for Array<i32, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i64> + Shape<NDIM>, const NDIM: usize> Mul<i64> for Array<i64, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i64> + Shape<NDIM>, const NDIM: usize> Mul<i64> for Array<i64, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i8> + Shape<NDIM>, const NDIM: usize> Mul<i8> for Array<i8, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = i8> + Shape<NDIM>, const NDIM: usize> Mul<i8> for Array<i8, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u16> + Shape<NDIM>, const NDIM: usize> Mul<u16> for Array<u16, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u16> + Shape<NDIM>, const NDIM: usize> Mul<u16> for Array<u16, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u32> + Shape<NDIM>, const NDIM: usize> Mul<u32> for Array<u32, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u32> + Shape<NDIM>, const NDIM: usize> Mul<u32> for Array<u32, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u64> + Shape<NDIM>, const NDIM: usize> Mul<u64> for Array<u64, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u64> + Shape<NDIM>, const NDIM: usize> Mul<u64> for Array<u64, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u8> + Shape<NDIM>, const NDIM: usize> Mul<u8> for Array<u8, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = u8> + Shape<NDIM>, const NDIM: usize> Mul<u8> for Array<u8, ArrayImpl, NDIM>
Source§impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = usize> + Shape<NDIM>, const NDIM: usize> Mul<usize> for Array<usize, ArrayImpl, NDIM>
impl<ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = usize> + Shape<NDIM>, const NDIM: usize> Mul<usize> for Array<usize, ArrayImpl, NDIM>
Source§impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item>, ArrayImplFirst: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultInto<Array<Item, ArrayImplFirst, 1>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 1>
impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item>, ArrayImplFirst: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultInto<Array<Item, ArrayImplFirst, 1>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 1>
Source§fn mult_into(
self,
transa: TransMode,
transb: TransMode,
alpha: Item,
arr_a: Array<Item, ArrayImplFirst, 1>,
arr_b: Array<Item, ArrayImplSecond, 2>,
beta: Item,
) -> Self
fn mult_into( self, transa: TransMode, transb: TransMode, alpha: Item, arr_a: Array<Item, ArrayImplFirst, 1>, arr_b: Array<Item, ArrayImplSecond, 2>, beta: Item, ) -> Self
Source§fn simple_mult_into(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
fn simple_mult_into(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
Source§impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>> MultInto<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 1>> for Array<Item, ArrayImpl, 1>
impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>> MultInto<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 1>> for Array<Item, ArrayImpl, 1>
Source§fn mult_into(
self,
transa: TransMode,
transb: TransMode,
alpha: Item,
arr_a: Array<Item, ArrayImplFirst, 2>,
arr_b: Array<Item, ArrayImplSecond, 1>,
beta: Item,
) -> Self
fn mult_into( self, transa: TransMode, transb: TransMode, alpha: Item, arr_a: Array<Item, ArrayImplFirst, 2>, arr_b: Array<Item, ArrayImplSecond, 1>, beta: Item, ) -> Self
Source§fn simple_mult_into(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
fn simple_mult_into(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
Source§impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultInto<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 2>
impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultInto<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 2>
Source§fn mult_into(
self,
transa: TransMode,
transb: TransMode,
alpha: Item,
arr_a: Array<Item, ArrayImplFirst, 2>,
arr_b: Array<Item, ArrayImplSecond, 2>,
beta: Item,
) -> Self
fn mult_into( self, transa: TransMode, transb: TransMode, alpha: Item, arr_a: Array<Item, ArrayImplFirst, 2>, arr_b: Array<Item, ArrayImplSecond, 2>, beta: Item, ) -> Self
Source§fn simple_mult_into(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
fn simple_mult_into(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
Source§impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item> + ResizeInPlace<1>, ArrayImplFirst: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultIntoResize<Array<Item, ArrayImplFirst, 1>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 1>
impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item> + ResizeInPlace<1>, ArrayImplFirst: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultIntoResize<Array<Item, ArrayImplFirst, 1>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 1>
Source§fn mult_into_resize(
self,
transa: TransMode,
transb: TransMode,
alpha: Item,
arr_a: Array<Item, ArrayImplFirst, 1>,
arr_b: Array<Item, ArrayImplSecond, 2>,
beta: Item,
) -> Self
fn mult_into_resize( self, transa: TransMode, transb: TransMode, alpha: Item, arr_a: Array<Item, ArrayImplFirst, 1>, arr_b: Array<Item, ArrayImplSecond, 2>, beta: Item, ) -> Self
Source§fn simple_mult_into_resize(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
fn simple_mult_into_resize(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
Source§impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item> + ResizeInPlace<1>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>> MultIntoResize<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 1>> for Array<Item, ArrayImpl, 1>
impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<1, Item = Item> + UnsafeRandomAccessMut<1, Item = Item> + Shape<1> + Stride<1> + RawAccessMut<Item = Item> + ResizeInPlace<1>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<1, Item = Item> + Shape<1> + Stride<1> + RawAccess<Item = Item>> MultIntoResize<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 1>> for Array<Item, ArrayImpl, 1>
Source§fn mult_into_resize(
self,
transa: TransMode,
transb: TransMode,
alpha: Item,
arr_a: Array<Item, ArrayImplFirst, 2>,
arr_b: Array<Item, ArrayImplSecond, 1>,
beta: Item,
) -> Self
fn mult_into_resize( self, transa: TransMode, transb: TransMode, alpha: Item, arr_a: Array<Item, ArrayImplFirst, 2>, arr_b: Array<Item, ArrayImplSecond, 1>, beta: Item, ) -> Self
Source§fn simple_mult_into_resize(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
fn simple_mult_into_resize(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
Source§impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item> + ResizeInPlace<2>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultIntoResize<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 2>
MultIntoResize
impl<Item: RlstScalar + Gemm, ArrayImpl: UnsafeRandomAccessByValue<2, Item = Item> + UnsafeRandomAccessMut<2, Item = Item> + Shape<2> + Stride<2> + RawAccessMut<Item = Item> + ResizeInPlace<2>, ArrayImplFirst: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>, ArrayImplSecond: UnsafeRandomAccessByValue<2, Item = Item> + Shape<2> + Stride<2> + RawAccess<Item = Item>> MultIntoResize<Array<Item, ArrayImplFirst, 2>, Array<Item, ArrayImplSecond, 2>> for Array<Item, ArrayImpl, 2>
MultIntoResize
Source§fn mult_into_resize(
self,
transa: TransMode,
transb: TransMode,
alpha: Item,
arr_a: Array<Item, ArrayImplFirst, 2>,
arr_b: Array<Item, ArrayImplSecond, 2>,
beta: Item,
) -> Self
fn mult_into_resize( self, transa: TransMode, transb: TransMode, alpha: Item, arr_a: Array<Item, ArrayImplFirst, 2>, arr_b: Array<Item, ArrayImplSecond, 2>, beta: Item, ) -> Self
Source§fn simple_mult_into_resize(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
fn simple_mult_into_resize(self, arr_a: First, arr_b: Second) -> Selfwhere
Self: Sized,
Source§impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Neg for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstScalar, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Neg for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> NumberOfElements for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> NumberOfElements for Array<Item, ArrayImpl, NDIM>
Source§fn number_of_elements(&self) -> usize
fn number_of_elements(&self) -> usize
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + RawAccess<Item = Item>, const NDIM: usize> RawAccess for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + RawAccess<Item = Item>, const NDIM: usize> RawAccess for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + RawAccessMut<Item = Item>, const NDIM: usize> RawAccessMut for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + RawAccessMut<Item = Item>, const NDIM: usize> RawAccessMut for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ResizeInPlace<NDIM>, const NDIM: usize> ResizeInPlace<NDIM> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + ResizeInPlace<NDIM>, const NDIM: usize> ResizeInPlace<NDIM> for Array<Item, ArrayImpl, NDIM>
Source§fn resize_in_place(&mut self, shape: [usize; NDIM])
fn resize_in_place(&mut self, shape: [usize; NDIM])
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Shape<NDIM> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Shape<NDIM> for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + Stride<NDIM>, const NDIM: usize> Stride<NDIM> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + Stride<NDIM>, const NDIM: usize> Stride<NDIM> for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Sub<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
impl<Item: RlstNum, ArrayImpl1: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, ArrayImpl2: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> Sub<Array<Item, ArrayImpl2, NDIM>> for Array<Item, ArrayImpl1, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessByRef<NDIM, Item = Item>, const NDIM: usize> UnsafeRandomAccessByRef<NDIM> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessByRef<NDIM, Item = Item>, const NDIM: usize> UnsafeRandomAccessByRef<NDIM> for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> UnsafeRandomAccessByValue<NDIM> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM>, const NDIM: usize> UnsafeRandomAccessByValue<NDIM> for Array<Item, ArrayImpl, NDIM>
Source§impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> UnsafeRandomAccessMut<NDIM> for Array<Item, ArrayImpl, NDIM>
impl<Item: RlstBase, ArrayImpl: UnsafeRandomAccessByValue<NDIM, Item = Item> + Shape<NDIM> + UnsafeRandomAccessMut<NDIM, Item = Item>, const NDIM: usize> UnsafeRandomAccessMut<NDIM> for Array<Item, ArrayImpl, NDIM>
Auto Trait Implementations§
impl<Item, ArrayImpl, const NDIM: usize> Freeze for Array<Item, ArrayImpl, NDIM>where
ArrayImpl: Freeze,
impl<Item, ArrayImpl, const NDIM: usize> RefUnwindSafe for Array<Item, ArrayImpl, NDIM>where
ArrayImpl: RefUnwindSafe,
impl<Item, ArrayImpl, const NDIM: usize> Send for Array<Item, ArrayImpl, NDIM>where
ArrayImpl: Send,
impl<Item, ArrayImpl, const NDIM: usize> Sync for Array<Item, ArrayImpl, NDIM>where
ArrayImpl: Sync,
impl<Item, ArrayImpl, const NDIM: usize> Unpin for Array<Item, ArrayImpl, NDIM>where
ArrayImpl: Unpin,
impl<Item, ArrayImpl, const NDIM: usize> UnwindSafe for Array<Item, ArrayImpl, NDIM>where
ArrayImpl: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more