1 #ifndef __STAN__AGRAD__REV__MATRIX__TCROSSPROD_HPP__
2 #define __STAN__AGRAD__REV__MATRIX__TCROSSPROD_HPP__
5 #include <boost/math/tools/promotion.hpp>
42 for (
int m = 0; m < M.rows(); ++m)
43 for (
int n = 0; n < M.cols(); ++n)
44 vs[pos++] = M(m,n).vi_;
45 for (
int m = 0; m < M.rows(); ++m)
46 MMt(m,m) =
var(
new dot_self_vari(vs + m * M.cols(),M.cols()));
47 for (
int m = 0; m < M.rows(); ++m) {
48 for (
int n = 0; n < m; ++n) {
49 MMt(m,n) =
var(
new dot_product_vv_vari(vs + m * M.cols(),