BlackCat_Tensors
A GPU-supported autograd and linear algebra library, designed for neural network construction
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
bc::tensors::exprs::Un_Op< Operation, ArrayType > Struct Template Reference

#include <expression_template_traits.h>

Inheritance diagram for bc::tensors::exprs::Un_Op< Operation, ArrayType >:
Inheritance graph
[legend]
Collaboration diagram for bc::tensors::exprs::Un_Op< Operation, ArrayType >:
Collaboration graph
[legend]

Public Types

using return_type = decltype(std::declval< Operation >()(std::declval< typename ArrayType::value_type >()))
 
using value_type = std::decay_t< return_type >
 
using system_tag = typename ArrayType::system_tag
 
- Public Types inherited from bc::tensors::exprs::Expression_Base< Un_Op< Operation, ArrayType > >
using copy_constructible = std::false_type
 
using move_constructible = std::false_type
 
using copy_assignable = std::false_type
 
using move_assignable = std::false_type
 
using expression_template_expression_type = std::true_type
 

Public Member Functions

BCINLINE const Operation & get_operation () const
 
template<class... args>
BCINLINE Un_Op (ArrayType v, const args &... args_)
 
template<class... integers>
BCINLINE value_type operator() (integers... index) const
 
BCINLINE value_type operator[] (int index) const
 
template<class... integers>
BCINLINE value_type operator() (integers... index)
 
BCINLINE value_type operator[] (int index)
 
BCINLINE const auto inner_shape () const
 
BCINLINE bc::size_t size () const
 
BCINLINE bc::size_t rows () const
 
BCINLINE bc::size_t cols () const
 
BCINLINE bc::size_t dim (int i) const
 
- Public Member Functions inherited from bc::tensors::exprs::Expression_Base< Un_Op< Operation, ArrayType > >
BCINLINE const auto inner_shape () const
 
BCINLINE const auto get_shape () const
 
BCINLINE bc::size_t outer_dim () const
 
- Public Member Functions inherited from bc::tensors::exprs::Expression_Template_Base< Un_Op< Operation, ArrayType > >
BCINLINE const Un_Op< Operation, ArrayType > & expression_template () const
 
BCINLINE Un_Op< Operation, ArrayType > & expression_template ()
 
BCINLINE Expression_Template_Base ()
 
void deallocate () const
 

Public Attributes

ArrayType array
 

Static Public Attributes

static constexpr int tensor_dim = ArrayType::tensor_dim
 
static constexpr int tensor_iterator_dim = ArrayType::tensor_iterator_dim
 

Member Typedef Documentation

◆ return_type

template<class Operation, class ArrayType>
using bc::tensors::exprs::Un_Op< Operation, ArrayType >::return_type = decltype(std::declval<Operation>()( std::declval<typename ArrayType::value_type>()))

◆ system_tag

template<class Operation, class ArrayType>
using bc::tensors::exprs::Un_Op< Operation, ArrayType >::system_tag = typename ArrayType::system_tag

◆ value_type

template<class Operation, class ArrayType>
using bc::tensors::exprs::Un_Op< Operation, ArrayType >::value_type = std::decay_t<return_type>

Constructor & Destructor Documentation

◆ Un_Op()

template<class Operation, class ArrayType>
template<class... args>
BCINLINE bc::tensors::exprs::Un_Op< Operation, ArrayType >::Un_Op ( ArrayType  v,
const args &...  args_ 
)
inline

Member Function Documentation

◆ cols()

template<class Operation, class ArrayType>
BCINLINE bc::size_t bc::tensors::exprs::Un_Op< Operation, ArrayType >::cols ( ) const
inline

◆ dim()

template<class Operation, class ArrayType>
BCINLINE bc::size_t bc::tensors::exprs::Un_Op< Operation, ArrayType >::dim ( int  i) const
inline

◆ get_operation()

template<class Operation, class ArrayType>
BCINLINE const Operation& bc::tensors::exprs::Un_Op< Operation, ArrayType >::get_operation ( ) const
inline

◆ inner_shape()

template<class Operation, class ArrayType>
BCINLINE const auto bc::tensors::exprs::Un_Op< Operation, ArrayType >::inner_shape ( ) const
inline

◆ operator()() [1/2]

template<class Operation, class ArrayType>
template<class... integers>
BCINLINE value_type bc::tensors::exprs::Un_Op< Operation, ArrayType >::operator() ( integers...  index) const
inline

◆ operator()() [2/2]

template<class Operation, class ArrayType>
template<class... integers>
BCINLINE value_type bc::tensors::exprs::Un_Op< Operation, ArrayType >::operator() ( integers...  index)
inline

◆ operator[]() [1/2]

template<class Operation, class ArrayType>
BCINLINE value_type bc::tensors::exprs::Un_Op< Operation, ArrayType >::operator[] ( int  index) const
inline

◆ operator[]() [2/2]

template<class Operation, class ArrayType>
BCINLINE value_type bc::tensors::exprs::Un_Op< Operation, ArrayType >::operator[] ( int  index)
inline

◆ rows()

template<class Operation, class ArrayType>
BCINLINE bc::size_t bc::tensors::exprs::Un_Op< Operation, ArrayType >::rows ( ) const
inline

◆ size()

template<class Operation, class ArrayType>
BCINLINE bc::size_t bc::tensors::exprs::Un_Op< Operation, ArrayType >::size ( ) const
inline

Member Data Documentation

◆ array

template<class Operation, class ArrayType>
ArrayType bc::tensors::exprs::Un_Op< Operation, ArrayType >::array

◆ tensor_dim

template<class Operation, class ArrayType>
constexpr int bc::tensors::exprs::Un_Op< Operation, ArrayType >::tensor_dim = ArrayType::tensor_dim
static

◆ tensor_iterator_dim

template<class Operation, class ArrayType>
constexpr int bc::tensors::exprs::Un_Op< Operation, ArrayType >::tensor_iterator_dim = ArrayType::tensor_iterator_dim
static

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