stan::math::multiply_mat_vari< TA, RA, CA, double, CB > Class Template Reference

This is a subclass of the vari class for matrix multiplication A * B where A is N by M and B is an M by K matrix of doubles. More...

`#include <multiply.hpp>`

Inheritance diagram for stan::math::multiply_mat_vari< TA, RA, CA, double, CB >:

## Public Member Functions

| multiply_mat_vari (const Eigen::Matrix< TA, RA, CA > &A, const Eigen::Matrix< double, CA, CB > &B)
| Constructor for multiply_mat_vari. More...
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

int | A_rows_
int | A_cols_
int | B_cols_
int | A_size_
int | B_size_
double * | Ad_
double * | Bd_
vari ** | variRefA_
vari ** | variRefAB_
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...

## 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, int CB>
class stan::math::multiply_mat_vari< TA, RA, CA, double, CB >

This is a subclass of the vari class for matrix multiplication A * B where A is N by M and B is an M by K matrix of doubles.

The class stores the structure of each matrix, the double values of A and B, and pointers to the varis for A and B if A or B is a var. It also instantiates and stores pointers to varis for all elements of A * B.

Template Parameters

  TA | Scalar type for matrix A
  RA | Rows for matrix A
  CA | Columns for matrix A, Rows for matrix B
  CB | Columns for matrix B

Definition at line 371 of file multiply.hpp.

## Constructor & Destructor Documentation

## multiply_mat_vari()

template<typename TA , int RA, int CA, int CB>

stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::multiply_mat_vari | ( | const Eigen::Matrix< TA, RA, CA > & | A,
|  | const Eigen::Matrix< double, CA, CB > & | B
| ) |  |

inline

Constructor for multiply_mat_vari.

All memory allocated in ChainableStack's stack_alloc arena.

It is critical for the efficiency of this object that the constructor create new varis that aren't popped onto the var_stack_, but rather are popped onto the var_nochain_stack_. This is controlled to the second argument to vari's constructor.

Parameters

  A | row vector
  B | vector

Definition at line 395 of file multiply.hpp.

## Member Function Documentation

## chain()

template<typename TA , int RA, int CA, int CB>

virtual void stan::math::multiply_mat_vari< TA, RA, CA, double, 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 421 of file multiply.hpp.

## Member Data Documentation

## A_cols_

template<typename TA , int RA, int CA, int CB>

int stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::A_cols_

Definition at line 373 of file multiply.hpp.

## A_rows_

template<typename TA , int RA, int CA, int CB>

int stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::A_rows_

Definition at line 373 of file multiply.hpp.

## A_size_

template<typename TA , int RA, int CA, int CB>

int stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::A_size_

Definition at line 373 of file multiply.hpp.

## Ad_

template<typename TA , int RA, int CA, int CB>

double* stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::Ad_

Definition at line 374 of file multiply.hpp.

## B_cols_

template<typename TA , int RA, int CA, int CB>

int stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::B_cols_

Definition at line 373 of file multiply.hpp.

## B_size_

template<typename TA , int RA, int CA, int CB>

int stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::B_size_

Definition at line 373 of file multiply.hpp.

## Bd_

template<typename TA , int RA, int CA, int CB>

double* stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::Bd_

Definition at line 375 of file multiply.hpp.

## variRefA_

template<typename TA , int RA, int CA, int CB>

vari** stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::variRefA_

Definition at line 376 of file multiply.hpp.

## variRefAB_

template<typename TA , int RA, int CA, int CB>

vari** stan::math::multiply_mat_vari< TA, RA, CA, double, CB >::variRefAB_

Definition at line 377 of file multiply.hpp.

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

- stan/math/rev/mat/fun/multiply.hpp

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