I’ve noticed a few functions, such as `quad_form_sym`

with the following signature:

```
template <typename TA, int RA, int CA, typename TB, int RB, int CB>
inline typename
boost::enable_if_c< boost::is_same<TA, var>::value ||
boost::is_same<TB, var>::value,
Eigen::Matrix<var, CB, CB> >::type
quad_form_sym(const Eigen::Matrix<TA, RA, CA>& A,
const Eigen::Matrix<TB, RB, CB>& B)
```

Why are we using the template type TA and RA, instead of Eigen::Dynamic?