autoppl  v0.8
A C++ template library for probabilistic programming
ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType > Class Template Reference

#include <dot.hpp>

Inheritance diagram for ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >:
ppl::util::VarExprBase< DotNode< LHSVarExprType, RHSVarExprType > >

Public Types

using value_t = std::common_type_t< typename util::var_expr_traits< lhs_t >::value_t, typename util::var_expr_traits< rhs_t >::value_t >
 
using shape_t = ad::core::details::dot_shape_t< lhs_t, rhs_t >
 

Public Member Functions

 DotNode (const lhs_t &lhs, const rhs_t &rhs)
 
template<class Func >
void traverse (Func &&) const
 
auto eval ()
 
auto get ()
 
size_t size () const
 
size_t rows () const
 
size_t cols () const
 
template<class PtrPackType >
auto ad (const PtrPackType &pack) const
 
template<class PtrPackType >
void bind (const PtrPackType &pack)
 
void activate_refcnt () const
 

Static Public Attributes

static constexpr bool has_param
 

Detailed Description

template<class LHSVarExprType, class RHSVarExprType>
class ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >

This class represents a dot product between a matrix expression and a vector expression. No other combination of shapes is allowed to be represented currently (compiler error if user attempts to pass in other shapes).

Template Parameters
LHSVarExprTypelhs variable expression type
RHSVarExprTyperhs variable expression type

Member Typedef Documentation

◆ shape_t

template<class LHSVarExprType , class RHSVarExprType >
using ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::shape_t = ad::core::details::dot_shape_t<lhs_t, rhs_t>

◆ value_t

template<class LHSVarExprType , class RHSVarExprType >
using ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::value_t = std::common_type_t< typename util::var_expr_traits<lhs_t>::value_t, typename util::var_expr_traits<rhs_t>::value_t >

Constructor & Destructor Documentation

◆ DotNode()

template<class LHSVarExprType , class RHSVarExprType >
ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::DotNode ( const lhs_t &  lhs,
const rhs_t &  rhs 
)
inline

Member Function Documentation

◆ activate_refcnt()

template<class LHSVarExprType , class RHSVarExprType >
void ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::activate_refcnt ( ) const
inline

◆ ad()

template<class LHSVarExprType , class RHSVarExprType >
template<class PtrPackType >
auto ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::ad ( const PtrPackType &  pack) const
inline

◆ bind()

template<class LHSVarExprType , class RHSVarExprType >
template<class PtrPackType >
void ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::bind ( const PtrPackType &  pack)
inline

◆ cols()

template<class LHSVarExprType , class RHSVarExprType >
size_t ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::cols ( ) const
inline

◆ eval()

template<class LHSVarExprType , class RHSVarExprType >
auto ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::eval ( )
inline

◆ get()

template<class LHSVarExprType , class RHSVarExprType >
auto ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::get ( )
inline

◆ rows()

template<class LHSVarExprType , class RHSVarExprType >
size_t ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::rows ( ) const
inline

◆ size()

template<class LHSVarExprType , class RHSVarExprType >
size_t ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::size ( ) const
inline

◆ traverse()

template<class LHSVarExprType , class RHSVarExprType >
template<class Func >
void ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::traverse ( Func &&  ) const
inline

Member Data Documentation

◆ has_param

template<class LHSVarExprType , class RHSVarExprType >
constexpr bool ppl::expr::var::DotNode< LHSVarExprType, RHSVarExprType >::has_param
staticconstexpr
Initial value:
=
lhs_t::has_param || rhs_t::has_param

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