lin
Public Types | Public Member Functions | List of all members
lin::internal::StreamIdentity< T, R, C, MR, MC > Class Template Reference

Tensor stream where all element accesses specify an identity matrix. More...

#include <lin/generators/stream_identity.hpp>

Inheritance diagram for lin::internal::StreamIdentity< T, R, C, MR, MC >:
lin::internal::Stream< StreamIdentity< T, R, C, MR, MC > > lin::internal::Dimensions< StreamIdentity< T, R, C, MR, MC > >

Public Types

typedef traits< StreamIdentity< T, R, C, MR, MC > > Traits
 Traits information for this type. More...
 
- Public Types inherited from lin::internal::Stream< StreamIdentity< T, R, C, MR, MC > >
typedef traits< StreamIdentity< T, R, C, MR, MC > > Traits
 Traits information for this type. More...
 

Public Member Functions

constexpr StreamIdentity (StreamIdentity< T, R, C, MR, MC > const &)=default
 
constexpr StreamIdentity (StreamIdentity< T, R, C, MR, MC > &&)=default
 
constexpr StreamIdentity< T, R, C, MR, MC > & operator= (StreamIdentity< T, R, C, MR, MC > const &)=default
 
constexpr StreamIdentity< T, R, C, MR, MC > & operator= (StreamIdentity< T, R, C, MR, MC > &&)=default
 
constexpr StreamIdentity (size_t r, size_t c)
 Constructs a tensor stream that specifies the identity matrix. More...
 
constexpr Traits::elem_t operator() (size_t i, size_t j) const
 Retrieves the requested tensor elements value, which, in this case is one when on the diagonal and zero otherwise. More...
 
constexpr Traits::elem_t operator() (size_t i) const
 Retrieves the requested tensor elements value, which, in this case is one when on the diagonal and zero otherwise. More...
 
- Public Member Functions inherited from lin::internal::Stream< StreamIdentity< T, R, C, MR, MC > >
constexpr Stream (Stream< StreamIdentity< T, R, C, MR, MC > > const &)=default
 
constexpr Stream (Stream< StreamIdentity< T, R, C, MR, MC > > &&)=default
 
constexpr Stream< StreamIdentity< T, R, C, MR, MC > > & operator= (Stream< StreamIdentity< T, R, C, MR, MC > > const &)=default
 
constexpr Stream< StreamIdentity< T, R, C, MR, MC > > & operator= (Stream< StreamIdentity< T, R, C, MR, MC > > &&)=default
 
constexpr size_t rows () const
 
constexpr size_t cols () const
 
constexpr size_t size () const
 
constexpr Traits::elem_t operator() (size_t i, size_t j) const
 Provides read only access to tensor elements. More...
 
constexpr Traits::elem_t operator() (size_t i) const
 Provides read only access to tensor elements. More...
 
constexpr Traits::elem_t operator[] (size_t i) const
 Provides read only access to tensor elements. More...
 
constexpr Traits::eval_t eval () const
 Forces evaluation of this stream to a value backed type. More...
 
- Public Member Functions inherited from lin::internal::Dimensions< StreamIdentity< T, R, C, MR, MC > >
constexpr Dimensions (Dimensions< StreamIdentity< T, R, C, MR, MC > > const &)=default
 
constexpr Dimensions (Dimensions< StreamIdentity< T, R, C, MR, MC > > &&)=default
 
constexpr Dimensions< StreamIdentity< T, R, C, MR, MC > > & operator= (Dimensions< StreamIdentity< T, R, C, MR, MC > > const &)=default
 
constexpr Dimensions< StreamIdentity< T, R, C, MR, MC > > & operator= (Dimensions< StreamIdentity< T, R, C, MR, MC > > &&)=default
 
constexpr size_t rows () const
 
constexpr size_t cols () const
 
constexpr void resize (size_t r, size_t c)
 Resizes a tensor's dimensions. More...
 

Additional Inherited Members

- Protected Member Functions inherited from lin::internal::Stream< StreamIdentity< T, R, C, MR, MC > >
constexpr StreamIdentity< T, R, C, MR, MC > & derived ()
 
constexpr StreamIdentity< T, R, C, MR, MC >const & derived () const
 

Detailed Description

template<typename T, size_t R, size_t C, size_t MR, size_t MC>
class lin::internal::StreamIdentity< T, R, C, MR, MC >

Tensor stream where all element accesses specify an identity matrix.

Template Parameters
TStream element type.
RRows at compile time.
CColumns at compile time.
MRMaximum rows at compile time.
MCMaximum columns at compile time.

This is most commonly use to implement the identity generator function. The tensor parameters specified must be considered a square matrix.

See also
identity
internal::is_matrix
internal::is_square

Member Typedef Documentation

template<typename T, size_t R, size_t C, size_t MR, size_t MC>
typedef traits<StreamIdentity<T, R, C, MR, MC> > lin::internal::StreamIdentity< T, R, C, MR, MC >::Traits

Traits information for this type.

See also
internal::traits

Constructor & Destructor Documentation

template<typename T, size_t R, size_t C, size_t MR, size_t MC>
constexpr lin::internal::StreamIdentity< T, R, C, MR, MC >::StreamIdentity ( size_t  r,
size_t  c 
)
inline

Constructs a tensor stream that specifies the identity matrix.

Parameters
[in]rRow count.
[in]cColumn count.

Member Function Documentation

template<typename T, size_t R, size_t C, size_t MR, size_t MC>
constexpr Traits::elem_t lin::internal::StreamIdentity< T, R, C, MR, MC >::operator() ( size_t  i,
size_t  j 
) const
inline

Retrieves the requested tensor elements value, which, in this case is one when on the diagonal and zero otherwise.

Parameters
iRow index.
jColumn index.
Returns
Value of the tensor element.
template<typename T, size_t R, size_t C, size_t MR, size_t MC>
constexpr Traits::elem_t lin::internal::StreamIdentity< T, R, C, MR, MC >::operator() ( size_t  i) const
inline

Retrieves the requested tensor elements value, which, in this case is one when on the diagonal and zero otherwise.

Parameters
iIndex.
Returns
Value of the tensor element.

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