Stan Math Library  2.20.0
reverse mode automatic differentiation
Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb > Class Template Reference

#include <trace_quad_form.hpp>

Inheritance diagram for stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >:
stan::math::vari

Public Member Functions

 trace_quad_form_vari (trace_quad_form_vari_alloc< Ta, Ra, Ca, Tb, Rb, Cb > *impl)
 
virtual void chain ()
 Apply the chain rule to this variable based on the variables on which it depends. More...
 
- Public Member Functions inherited from stan::math::vari
 vari (double x)
 Construct a variable implementation from a value. More...
 
 vari (double x, bool stacked)
 
virtual ~vari ()
 Throw an illegal argument exception. More...
 
void init_dependent ()
 Initialize the adjoint for this (dependent) variable to 1. More...
 
void set_zero_adjoint ()
 Set the adjoint value of this variable to 0. More...
 

Public Attributes

trace_quad_form_vari_alloc< Ta, Ra, Ca, Tb, Rb, Cb > * impl_
 
- Public Attributes inherited from stan::math::vari
const double val_
 The value of this variable. More...
 
double adj_
 The adjoint of this variable, which is the partial derivative of this variable with respect to the root variable. More...
 

Protected Member Functions

void chainAB (Eigen::Matrix< Ta, Ra, Ca > &A, Eigen::Matrix< Tb, Rb, Cb > &B, const Eigen::Matrix< double, Ra, Ca > &Ad, const Eigen::Matrix< double, Rb, Cb > &Bd, double adjC)
 

Static Protected Member Functions

static void chainA (Eigen::Matrix< double, Ra, Ca > &A, const Eigen::Matrix< double, Rb, Cb > &Bd, double adjC)
 
static void chainB (Eigen::Matrix< double, Rb, Cb > &B, const Eigen::Matrix< double, Ra, Ca > &Ad, const Eigen::Matrix< double, Rb, Cb > &Bd, double adjC)
 
static void chainA (Eigen::Matrix< var, Ra, Ca > &A, const Eigen::Matrix< double, Rb, Cb > &Bd, double adjC)
 
static void chainB (Eigen::Matrix< var, Rb, Cb > &B, const Eigen::Matrix< double, Ra, Ca > &Ad, const Eigen::Matrix< double, Rb, Cb > &Bd, double adjC)
 

Additional Inherited Members

- Static Public Member Functions inherited from stan::math::vari
static void * operator new (size_t nbytes)
 Allocate memory from the underlying memory pool. More...
 
static void operator delete (void *)
 Delete a pointer from the underlying memory pool. More...
 

Detailed Description

template<typename Ta, int Ra, int Ca, typename Tb, int Rb, int Cb>
class stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >

Definition at line 32 of file trace_quad_form.hpp.

Constructor & Destructor Documentation

◆ trace_quad_form_vari()

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::trace_quad_form_vari ( trace_quad_form_vari_alloc< Ta, Ra, Ca, Tb, Rb, Cb > *  impl)
inlineexplicit

Definition at line 69 of file trace_quad_form.hpp.

Member Function Documentation

◆ chain()

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
virtual void stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::chain ( )
inlinevirtual

Apply the chain rule to this variable based on the variables on which it depends.

The base implementation in this class is a no-op.

Reimplemented from stan::math::vari.

Definition at line 73 of file trace_quad_form.hpp.

◆ chainA() [1/2]

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
static void stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::chainA ( Eigen::Matrix< double, Ra, Ca > &  A,
const Eigen::Matrix< double, Rb, Cb > &  Bd,
double  adjC 
)
inlinestaticprotected

Definition at line 34 of file trace_quad_form.hpp.

◆ chainA() [2/2]

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
static void stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::chainA ( Eigen::Matrix< var, Ra, Ca > &  A,
const Eigen::Matrix< double, Rb, Cb > &  Bd,
double  adjC 
)
inlinestaticprotected

Definition at line 42 of file trace_quad_form.hpp.

◆ chainAB()

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
void stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::chainAB ( Eigen::Matrix< Ta, Ra, Ca > &  A,
Eigen::Matrix< Tb, Rb, Cb > &  B,
const Eigen::Matrix< double, Ra, Ca > &  Ad,
const Eigen::Matrix< double, Rb, Cb > &  Bd,
double  adjC 
)
inlineprotected

Definition at line 60 of file trace_quad_form.hpp.

◆ chainB() [1/2]

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
static void stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::chainB ( Eigen::Matrix< double, Rb, Cb > &  B,
const Eigen::Matrix< double, Ra, Ca > &  Ad,
const Eigen::Matrix< double, Rb, Cb > &  Bd,
double  adjC 
)
inlinestaticprotected

Definition at line 37 of file trace_quad_form.hpp.

◆ chainB() [2/2]

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
static void stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::chainB ( Eigen::Matrix< var, Rb, Cb > &  B,
const Eigen::Matrix< double, Ra, Ca > &  Ad,
const Eigen::Matrix< double, Rb, Cb > &  Bd,
double  adjC 
)
inlinestaticprotected

Definition at line 50 of file trace_quad_form.hpp.

Member Data Documentation

◆ impl_

template<typename Ta , int Ra, int Ca, typename Tb , int Rb, int Cb>
trace_quad_form_vari_alloc<Ta, Ra, Ca, Tb, Rb, Cb>* stan::math::internal::trace_quad_form_vari< Ta, Ra, Ca, Tb, Rb, Cb >::impl_

Definition at line 78 of file trace_quad_form.hpp.


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

     [ Stan Home Page ] © 2011–2018, Stan Development Team.