Expression Templates Library (ETL)
Public Types | Public Member Functions | List of all members
etl::inplace_assignable< D > Struct Template Reference

CRTP class to inject inplace operations to matrix and vector structures. More...

#include <inplace_assignable.hpp>

Public Types

using derived_t = D
 The derived type.
 

Public Member Functions

derived_tas_derived () noexcept
 Returns a reference to the derived object, i.e. the object using the CRTP injector. More...
 
template<typename E >
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.
 

Detailed Description

template<typename D>
struct etl::inplace_assignable< D >

CRTP class to inject inplace operations to matrix and vector structures.

This CRTP class injects inplace FFT, Transposition, flipping and scaling.

Member Function Documentation

◆ as_derived()

template<typename D>
derived_t& etl::inplace_assignable< D >::as_derived ( )
inlinenoexcept

Returns a reference to the derived object, i.e. the object using the CRTP injector.

Returns
a reference to the derived object.

◆ direct_transpose_inplace()

template<typename D>
derived_t& etl::inplace_assignable< D >::direct_transpose_inplace ( )
inline

Transpose the matrix in place.

Only square fast matrix can be transpose in place, dyn matrix don't have any limitation.

◆ fft2_many_inplace()

template<typename D>
derived_t& etl::inplace_assignable< D >::fft2_many_inplace ( ) &&
inline

Perform many inplace 2D FFT of the matrix.

This function considers the first dimension as being batches of 2D FFT.

◆ fft_many_inplace()

template<typename D>
derived_t& etl::inplace_assignable< D >::fft_many_inplace ( ) &&
inline

Perform many inplace 1D FFT of the matrix.

This function considers the first dimension as being batches of 1D FFT.

◆ scale_inplace()

template<typename D>
template<typename E >
derived_t& etl::inplace_assignable< D >::scale_inplace ( E &&  e)
inline

Scale the matrix by the factor e, in place.

Parameters
eThe scaling factor.

◆ transpose_inplace()

template<typename D>
derived_t& etl::inplace_assignable< D >::transpose_inplace ( )
inline

Transpose the matrix in place.

Only square fast matrix can be transpose in place, dyn matrix don't have any limitation.


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