Tenncor
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
eteq::Functor< T > Struct Template Referencefinal

Functor implementation of operable functor of Eigen operators. More...

#include <functor.hpp>

Inheritance diagram for eteq::Functor< T >:
Inheritance graph
[legend]
Collaboration diagram for eteq::Functor< T >:
Collaboration graph
[legend]

Public Member Functions

 Functor (const Functor< T > &other)=delete
 
Functor< T > & operator= (const Functor< T > &other)=delete
 
Functor< T > & operator= (Functor< T > &&other)=delete
 
const teq::Shapeshape (void) const override
 Implementation of iTensor. More...
 
std::string to_string (void) const override
 Implementation of iTensor. More...
 
teq::Opcode get_opcode (void) const override
 Implementation of iFunctor. More...
 
const teq::ArgsTget_children (void) const override
 Implementation of iFunctor. More...
 
void update_child (teq::FuncArg arg, size_t index) override
 Implementation of iFunctor. More...
 
void update (void) override
 Implementation of iOperableFunc. More...
 
void * data (void) override
 Implementation of iData. More...
 
const void * data (void) const override
 Implementation of iData. More...
 
size_t type_code (void) const override
 Implementation of iData. More...
 
std::string type_label (void) const override
 Implementation of iData. More...
 
size_t nbytes (void) const override
 Implementation of iData. More...
 
bool is_uninit (void) const
 
void uninitialize (void)
 Removes internal Eigen data object. More...
 
void initialize (void)
 Populate internal Eigen data object. More...
 
- Public Member Functions inherited from teq::iOperableFunc
virtual ~iOperableFunc (void)=default
 
- Public Member Functions inherited from teq::iFunctor
virtual ~iFunctor (void)=default
 
void accept (iTraveler &visiter) override
 Implementation of iTensor. More...
 
- Public Member Functions inherited from teq::iTensor
virtual ~iTensor (void)=default
 
- Public Member Functions inherited from teq::iData
virtual ~iData (void)=default
 

Static Public Member Functions

static Functor< T > * get (teq::Opcode opcode, ArgsT< T > args)
 Return Functor given opcodes mapped to Eigen operators in operator.hpp. More...
 
static Functor< T > * get (Functor< T > &&other)
 Return Functor move of other. More...
 

Private Member Functions

 Functor (teq::Opcode opcode, teq::Shape shape, teq::ArgsT args)
 
 Functor (Functor< T > &&other)=default
 

Private Attributes

EigenptrT< T > out_ = nullptr
 
teq::Opcode opcode_
 Operation encoding. More...
 
teq::Shape shape_
 Shape info built at construction time according to arguments. More...
 
teq::ArgsT args_
 Tensor arguments (and children) More...
 

Detailed Description

template<typename T>
struct eteq::Functor< T >

Functor implementation of operable functor of Eigen operators.

Constructor & Destructor Documentation

◆ Functor() [1/3]

template<typename T>
eteq::Functor< T >::Functor ( const Functor< T > &  other)
delete

◆ Functor() [2/3]

template<typename T>
eteq::Functor< T >::Functor ( teq::Opcode  opcode,
teq::Shape  shape,
teq::ArgsT  args 
)
inlineprivate

◆ Functor() [3/3]

template<typename T>
eteq::Functor< T >::Functor ( Functor< T > &&  other)
privatedefault

Member Function Documentation

◆ data() [1/2]

template<typename T>
void* eteq::Functor< T >::data ( void  )
inlineoverridevirtual

Implementation of iData.

Implements teq::iData.

◆ data() [2/2]

template<typename T>
const void* eteq::Functor< T >::data ( void  ) const
inlineoverridevirtual

Implementation of iData.

Implements teq::iData.

◆ get() [1/2]

template<typename T >
Functor< T > * eteq::Functor< T >::get ( teq::Opcode  opcode,
ArgsT< T >  args 
)
static

Return Functor given opcodes mapped to Eigen operators in operator.hpp.

◆ get() [2/2]

template<typename T>
static Functor<T>* eteq::Functor< T >::get ( Functor< T > &&  other)
inlinestatic

Return Functor move of other.

◆ get_children()

template<typename T>
const teq::ArgsT& eteq::Functor< T >::get_children ( void  ) const
inlineoverridevirtual

Implementation of iFunctor.

Implements teq::iFunctor.

◆ get_opcode()

template<typename T>
teq::Opcode eteq::Functor< T >::get_opcode ( void  ) const
inlineoverridevirtual

Implementation of iFunctor.

Implements teq::iFunctor.

◆ initialize()

template<typename T>
void eteq::Functor< T >::initialize ( void  )
inline

Populate internal Eigen data object.

◆ is_uninit()

template<typename T>
bool eteq::Functor< T >::is_uninit ( void  ) const
inline

Return true if functor has never been initialized or was uninitialized, otherwise functor can return data

◆ nbytes()

template<typename T>
size_t eteq::Functor< T >::nbytes ( void  ) const
inlineoverridevirtual

Implementation of iData.

Implements teq::iData.

◆ operator=() [1/2]

template<typename T>
Functor<T>& eteq::Functor< T >::operator= ( const Functor< T > &  other)
delete

◆ operator=() [2/2]

template<typename T>
Functor<T>& eteq::Functor< T >::operator= ( Functor< T > &&  other)
delete

◆ shape()

template<typename T>
const teq::Shape& eteq::Functor< T >::shape ( void  ) const
inlineoverridevirtual

Implementation of iTensor.

Implements teq::iTensor.

◆ to_string()

template<typename T>
std::string eteq::Functor< T >::to_string ( void  ) const
inlineoverridevirtual

Implementation of iTensor.

Implements teq::iTensor.

◆ type_code()

template<typename T>
size_t eteq::Functor< T >::type_code ( void  ) const
inlineoverridevirtual

Implementation of iData.

Implements teq::iData.

◆ type_label()

template<typename T>
std::string eteq::Functor< T >::type_label ( void  ) const
inlineoverridevirtual

Implementation of iData.

Implements teq::iData.

◆ uninitialize()

template<typename T>
void eteq::Functor< T >::uninitialize ( void  )
inline

Removes internal Eigen data object.

◆ update()

template<typename T>
void eteq::Functor< T >::update ( void  )
inlineoverridevirtual

Implementation of iOperableFunc.

Implements teq::iOperableFunc.

◆ update_child()

template<typename T>
void eteq::Functor< T >::update_child ( teq::FuncArg  arg,
size_t  index 
)
inlineoverridevirtual

Implementation of iFunctor.

Implements teq::iFunctor.

Member Data Documentation

◆ args_

template<typename T>
teq::ArgsT eteq::Functor< T >::args_
private

Tensor arguments (and children)

◆ opcode_

template<typename T>
teq::Opcode eteq::Functor< T >::opcode_
private

Operation encoding.

◆ out_

template<typename T>
EigenptrT<T> eteq::Functor< T >::out_ = nullptr
private

◆ shape_

template<typename T>
teq::Shape eteq::Functor< T >::shape_
private

Shape info built at construction time according to arguments.


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