1 #ifndef STAN_MATH_PRIM_MAT_FUN_UNIT_VECTOR_CONSTRAIN_HPP
2 #define STAN_MATH_PRIM_MAT_FUN_UNIT_VECTOR_CONSTRAIN_HPP
23 Eigen::Matrix<T, Eigen::Dynamic, 1>
30 Matrix<T, Dynamic, 1> x(Km1 + 1);
32 const T half_pi = T(M_PI/2.0);
33 for (size_type k = 1; k <= Km1; ++k) {
34 T yk_1 = y(k-1) + half_pi;
35 T sin_yk_1 =
sin(yk_1);
36 x(k) = x(k-1)*sin_yk_1;
52 Eigen::Matrix<T, Eigen::Dynamic, 1>
60 Matrix<T, Dynamic, 1> x(Km1 + 1);
62 const T half_pi = T(0.5 * M_PI);
63 for (size_type k = 1; k <= Km1; ++k) {
64 T yk_1 = y(k-1) + half_pi;
65 T sin_yk_1 =
sin(yk_1);
66 x(k) = x(k-1) * sin_yk_1;
69 lp += (Km1 - k) *
log(
fabs(sin_yk_1));
fvar< T > cos(const fvar< T > &x)
fvar< T > fabs(const fvar< T > &x)
fvar< T > log(const fvar< T > &x)
Eigen::Matrix< T, Eigen::Dynamic, 1 > unit_vector_constrain(const Eigen::Matrix< T, Eigen::Dynamic, 1 > &y)
Return the unit length vector corresponding to the free vector y.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic >::Index size_type
Type for sizes and indexes in an Eigen matrix with double e.
Primary template class for the metaprogram to compute the index type of a container.
fvar< T > sin(const fvar< T > &x)