Expression Templates Library (ETL)
Public Types | Public Member Functions | Static Public Attributes | List of all members
etl::dyn_matrix_impl< T, SO, D > Struct Template Referencefinal

Matrix with run-time fixed dimensions. More...

#include <dyn.hpp>

Inheritance diagram for etl::dyn_matrix_impl< T, SO, D >:
Inheritance graph
[legend]
Collaboration diagram for etl::dyn_matrix_impl< T, SO, D >:
Collaboration graph
[legend]

Public Types

using this_type = dyn_matrix_impl< T, SO, D >
 The type of this expression.
 
using base_type = dense_dyn_base< this_type, T, SO, D >
 The base type.
 
using iterable_base_type = iterable< this_type, SO==order::RowMajor >
 The iterable base type.
 
using value_type = T
 The value type.
 
using dimension_storage_impl = std::array< size_t, n_dimensions >
 The type used to store the dimensions.
 
using memory_type = value_type *
 The memory type.
 
using const_memory_type = const value_type *
 The const memory type.
 
using iterator = std::conditional_t< SO==order::RowMajor, value_type *, etl::iterator< this_type > >
 The iterator type.
 
using const_iterator = std::conditional_t< SO==order::RowMajor, const value_type *, etl::iterator< const this_type > >
 The const iterator type.
 
template<typename V = default_vec>
using vec_type = typename V::template vec_type< T >
 The vectorization type for V.
 
- Public Types inherited from etl::dense_dyn_base< dyn_matrix_impl< T, SO, D >, T, SO, D >
using value_type = T
 The type of the contained values.
 
using base_type = dyn_base< dyn_matrix_impl< T, SO, D >, T, D >
 The base type.
 
using this_type = dense_dyn_base< dyn_matrix_impl< T, SO, D >, T, SO, D >
 The type of this class.
 
using derived_t = dyn_matrix_impl< T, SO, D >
 The derived type.
 
using memory_type = value_type *
 The memory type.
 
using const_memory_type = const value_type *
 The const memory type.
 
using iterator = memory_type
 The type of iterator.
 
using const_iterator = const_memory_type
 The type of const iterator.
 
using dimension_storage_impl = typename base_type::dimension_storage_impl
 The storage type used to store the dimensions.
 
- Public Types inherited from etl::inplace_assignable< dyn_matrix_impl< T, SO, D > >
using derived_t = dyn_matrix_impl< T, SO, D >
 The derived type.
 
- Public Types inherited from etl::expression_able< dyn_matrix_impl< T, SO, D > >
using derived_t = dyn_matrix_impl< T, SO, D >
 The derived type.
 
- Public Types inherited from etl::value_testable< dyn_matrix_impl< T, SO, D > >
using derived_t = dyn_matrix_impl< T, SO, D >
 The derived type.
 
- Public Types inherited from etl::iterable< dyn_matrix_impl< T, SO, D >, SO==order::RowMajor >
using derived_t = dyn_matrix_impl< T, SO, D >
 The derived type.
 
- Public Types inherited from etl::dim_testable< dyn_matrix_impl< T, SO, D > >
using derived_t = dyn_matrix_impl< T, SO, D >
 The derived type.
 

Public Member Functions

 dyn_matrix_impl () noexcept
 Construct an empty matrix. More...
 
 dyn_matrix_impl (const dyn_matrix_impl &rhs) noexcept(assert_nothrow)
 Copy construct a matrix. More...
 
 dyn_matrix_impl (dyn_matrix_impl &&rhs) noexcept
 Move construct a matrix. More...
 
- Public Member Functions inherited from etl::dense_dyn_base< dyn_matrix_impl< T, SO, D >, T, SO, D >
 dense_dyn_base () noexcept
 Initialize the dense_dyn_base with a size of 0.
 
 dense_dyn_base (const dense_dyn_base &rhs) noexcept
 Copy construct a dense_dyn_base. More...
 
 dense_dyn_base (const derived_t &rhs) noexcept
 Copy construct a derived_t. More...
 
 dense_dyn_base (dense_dyn_base &&rhs) noexcept
 Move construct a dense_dyn_base. More...
 
 dense_dyn_base (derived_t &&rhs) noexcept
 Move construct a derived_t. More...
 
 dense_dyn_base (size_t size, dimension_storage_impl dimensions) noexcept
 Construct a dense_dyn_base if the given size and dimensions. More...
 
 dense_dyn_base (E &&rhs) requires(!std
 Move construct a dense_dyn_base. More...
 
decltype(auto) operator() (size_t i) noexcept(assert_nothrow)
 Access the ith element of the container. More...
 
decltype(auto) operator() (size_t i) const noexcept(assert_nothrow)
 Access the ith element of the container. More...
 
- Public Member Functions inherited from etl::inplace_assignable< dyn_matrix_impl< T, SO, D > >
derived_tas_derived () noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
derived_tscale_inplace (E &&e)
 Scale the matrix by the factor e, in place. More...
 
derived_tfflip_inplace () requires(mat_or_vec< derived_t >)
 Flip the matrix horizontally and vertically, in place.
 
derived_tdeep_fflip_inplace ()
 Fully flip each sub 2D matrix in place.
 
derived_tdeep_transpose_inplace ()
 Transpose each sub 2D matrix in place.
 
derived_tdirect_deep_transpose_inplace ()
 Transpose each sub 2D matrix in place.
 
derived_ttranspose_inplace () requires(etl_2d< derived_t >)
 Transpose the matrix in place. More...
 
derived_tdirect_transpose_inplace () requires(etl_2d< derived_t >)
 Transpose the matrix in place. More...
 
derived_tfft_inplace () requires(etl_1d< derived_t > &&etl_complex_expr< derived_t >)
 Perform inplace 1D FFT of the vector.
 
derived_tfft_many_inplace () requires(matrix< derived_t > &&etl_complex_expr< derived_t >)
 Perform many inplace 1D FFT of the matrix. More...
 
derived_tifft_inplace () requires(etl_1d< derived_t > &&etl_complex_expr< derived_t >)
 Perform inplace 1D Inverse FFT of the vector.
 
derived_tifft_many_inplace () requires(matrix< derived_t > &&etl_complex_expr< derived_t >)
 Perform many inplace 1D Inverse FFT of the vector.
 
derived_tfft2_inplace () requires(etl_2d< derived_t > &&etl_complex_expr< derived_t >)
 Perform inplace 2D FFT of the matrix.
 
derived_tfft2_many_inplace () requires(deep_mat< derived_t > &&etl_complex_expr< derived_t >)
 Perform many inplace 2D FFT of the matrix. More...
 
derived_tifft2_inplace () requires(etl_2d< derived_t > &&etl_complex_expr< derived_t >)
 Perform inplace 2D Inverse FFT of the matrix.
 
derived_tifft2_many_inplace () requires(deep_mat< derived_t > &&etl_complex_expr< derived_t >)
 Perform many inplace 2D Inverse FFT of the matrix.
 
- Public Member Functions inherited from etl::expression_able< dyn_matrix_impl< T, SO, D > >
derived_tas_derived () noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
auto scale (E &&e)
 Scale the expression by a scalar factor or another expression. More...
 
auto fflip ()
 Flip the matrix horizontally and vertically. More...
 
auto hflip ()
 Flip the matrix horizontally. More...
 
auto vflip ()
 Flip the matrix vertically. More...
 
auto transpose ()
 Transpose the matrix. More...
 
auto real ()
 Extract the real part of a complex expression. More...
 
auto imag ()
 Extract the imag part of a complex expression. More...
 
auto conj ()
 Returns a new expression containg the conjugate of each value of the expression. More...
 
- Public Member Functions inherited from etl::value_testable< dyn_matrix_impl< T, SO, D > >
derived_tas_derived () noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
const derived_tas_derived () const noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
bool is_finite () const noexcept
 Indicates if the expression contains only finite values. More...
 
bool is_zero () const noexcept
 Indicates if the expression contains only zero values. More...
 
bool is_diagonal () const noexcept
 Indicates if the expression is diagonal. More...
 
bool is_uniform () const noexcept
 Indicates if the expression is uniform, i.e. all elements are of the same value. More...
 
- Public Member Functions inherited from etl::iterable< dyn_matrix_impl< T, SO, D >, SO==order::RowMajor >
derived_tas_derived () noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
const derived_tas_derived () const noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
auto begin () noexcept
 Return an iterator to the first element of the matrix. More...
 
auto begin () const noexcept
 Return an iterator to the first element of the matrix. More...
 
auto end () noexcept
 Return an iterator to the past-the-end element of the matrix. More...
 
auto end () const noexcept
 Return an iterator to the past-the-end element of the matrix. More...
 
auto cbegin () const noexcept
 Return an iterator to the first element of the matrix. More...
 
auto cend () const noexcept
 Return an iterator to the past-the-end element of the matrix. More...
 
- Public Member Functions inherited from etl::dim_testable< dyn_matrix_impl< T, SO, D > >
derived_tas_derived () noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
const derived_tas_derived () const noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
bool is_square () const noexcept
 Indicates if the expressions is of square dimensions (only for 2d expression) More...
 
bool is_rectangular () const noexcept
 Indicates if the expressions is of rectangular dimensions (only for 2d expression) More...
 
bool is_sub_square () const noexcept
 Indicates if the expressions is of square dimensions, ignoring the first dimension (only for 3d expression) More...
 
bool is_sub_rectangular () const noexcept
 Indicates if the expressions is of rectangular dimensions, ignoring the first dimension (only for 3d expression) More...
 
bool is_symmetric () const noexcept
 Indicates if the given expression is a symmetric matrix or not. More...
 
bool is_lower_triangular () const noexcept
 Indicates if the given expression is a lower triangular matrix or not. More...
 
bool is_uni_lower_triangular () const noexcept
 Indicates if the given expression is a uni lower triangular matrix or not. More...
 
bool is_strictly_lower_triangular () const noexcept
 Indicates if the given expression is a strictly lower triangular matrix or not. More...
 
bool is_upper_triangular () const noexcept
 Indicates if the given expression is a upper triangular matrix or not. More...
 
bool is_uni_upper_triangular () const noexcept
 Indicates if the given expression is a uni upper triangular matrix or not. More...
 
bool is_strictly_upper_triangular () const noexcept
 Indicates if the given expression is a strictly upper triangular matrix or not. More...
 
bool is_triangular () const noexcept
 Indicates if the given expression is a triangular matrix or not. More...
 

Static Public Attributes

static constexpr size_t n_dimensions = D
 The number of dimensions.
 
static constexpr order storage_order = SO
 The storage order.
 
static constexpr size_t alignment = default_intrinsic_traits<T>::alignment
 The memory alignment.
 
- Static Public Attributes inherited from etl::dense_dyn_base< dyn_matrix_impl< T, SO, D >, T, SO, D >
static constexpr size_t n_dimensions
 The number of dimensions.
 
static constexpr order storage_order
 The storage order.
 

Additional Inherited Members

- Public Attributes inherited from etl::dense_dyn_base< dyn_matrix_impl< T, SO, D >, T, SO, D >
value_type *ETL_RESTRICT _memory
 Pointer to the allocated memory.
 
gpu_memory_handler< T > _gpu
 The GPU memory handler.
 

Detailed Description

template<typename T, order SO, size_t D>
struct etl::dyn_matrix_impl< T, SO, D >

Matrix with run-time fixed dimensions.

The matrix support an arbitrary number of dimensions.

Constructor & Destructor Documentation

◆ dyn_matrix_impl() [1/3]

template<typename T, order SO, size_t D>
etl::dyn_matrix_impl< T, SO, D >::dyn_matrix_impl ( )
inlinenoexcept

Construct an empty matrix.

This matrix don't have any memory nor dimensionsand most operations will likely fail on it

◆ dyn_matrix_impl() [2/3]

template<typename T, order SO, size_t D>
etl::dyn_matrix_impl< T, SO, D >::dyn_matrix_impl ( const dyn_matrix_impl< T, SO, D > &  rhs)
inlinenoexcept

Copy construct a matrix.

Parameters
rhsThe matrix to copy

◆ dyn_matrix_impl() [3/3]

template<typename T, order SO, size_t D>
etl::dyn_matrix_impl< T, SO, D >::dyn_matrix_impl ( dyn_matrix_impl< T, SO, D > &&  rhs)
inlinenoexcept

Move construct a matrix.

Parameters
rhsThe matrix to move

The documentation for this struct was generated from the following file: