1 #ifndef STAN_MATH_FWD_MAT_FUNCTOR_JACOBIAN_HPP 2 #define STAN_MATH_FWD_MAT_FUNCTOR_JACOBIAN_HPP 11 template <
typename T,
typename F>
14 const Eigen::Matrix<T, Eigen::Dynamic, 1>& x,
15 Eigen::Matrix<T, Eigen::Dynamic, 1>& fx,
16 Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic>& J) {
19 Matrix<fvar<T>, Dynamic, 1> x_fvar(x.size());
20 for (
int i = 0; i < x.size(); ++i) {
21 for (
int k = 0; k < x.size(); ++k)
22 x_fvar(k) =
fvar<T>(x(k), i == k);
23 Matrix<fvar<T>, Dynamic, 1> fx_fvar
26 J.resize(fx_fvar.size(), x.size());
27 fx.resize(fx_fvar.size());
28 for (
int k = 0; k < fx_fvar.size(); ++k)
29 fx(k) = fx_fvar(k).
val_;
31 for (
int k = 0; k < fx_fvar.size(); ++k) {
32 J(k, i) = fx_fvar(k).
d_;
void jacobian(const F &f, const Eigen::Matrix< T, Eigen::Dynamic, 1 > &x, Eigen::Matrix< T, Eigen::Dynamic, 1 > &fx, Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > &J)