cMHN 1.1
C++ library for learning MHNs with pRC
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
mhn_operator.hpp File Reference
#include <prc.hpp>

Go to the source code of this file.

Classes

class  cMHN::nonTT::MHNOperator< T, D >
 Class storing an MHN operator represented by a theta matrix (for non TT calculations) More...
 

Namespaces

namespace  cMHN
 
namespace  cMHN::nonTT
 

Functions

template<pRC::Operator::Transform OT = pRC::Operator::Transform::None, pRC::Operator::Restrict OR = pRC::Operator::Restrict::None, pRC::Operator::Hint OH = pRC::Operator::Hint::None, class T1 , pRC::Size D, class T2 , pRC::Size... Ns, pRC::If< pRC::IsSatisfied<(OR==pRC::Operator::Restrict::None)> > = 0, pRC::If< pRC::IsSatisfied<(OT==pRC::Operator::Transform::None)> > = 0>
static constexpr auto cMHN::nonTT::applyDerivative (MHNOperator< T1, D > const &op, pRC::Tensor< T2, Ns... > const &x, pRC::Index const &i)
 apply the derivative of an MHN Q wrt to theta_ii to a vector x
 
template<pRC::Operator::Transform OT = pRC::Operator::Transform::None, pRC::Operator::Restrict OR = pRC::Operator::Restrict::None, pRC::Operator::Hint OH = pRC::Operator::Hint::None, class T1 , pRC::Size D, class T2 , pRC::Size... Ns, pRC::If< pRC::IsSatisfied<(OR==pRC::Operator::Restrict::None)> > = 0>
static constexpr auto cMHN::nonTT::apply_diag (MHNOperator< T1, D > const &op, pRC::Tensor< T2, Ns... > const &x)
 apply the diagonal part of (1-Q) to a vector x, given an MHN Q
 
template<pRC::Operator::Transform OT = pRC::Operator::Transform::None, pRC::Operator::Restrict OR = pRC::Operator::Restrict::None, pRC::Operator::Hint OH = pRC::Operator::Hint::None, class T1 , pRC::Size D, class T2 , pRC::Size... Ns, pRC::If< pRC::IsSatisfied<(OR==pRC::Operator::Restrict::None)> > = 0>
static constexpr auto cMHN::nonTT::apply_offdiag (MHNOperator< T1, D > const &op, pRC::Tensor< T2, Ns... > const &x)
 apply the off-diagonal part of Q or its transposed to a vector x, given an MHN Q
 
template<pRC::Operator::Transform OT = pRC::Operator::Transform::None, pRC::Operator::Restrict OR = pRC::Operator::Restrict::None, pRC::Operator::Hint OH = pRC::Operator::Hint::None, class T1 , pRC::Size D, class T2 , pRC::Size... Ns, pRC::If< pRC::IsSatisfied<(OR==pRC::Operator::Restrict::None)> > = 0>
static constexpr auto cMHN::nonTT::apply (MHNOperator< T1, D > const &op, pRC::Tensor< T2, Ns... > const &x)
 apply (1-Q) or its transposed to a vector x, given an MHN Q