1#ifndef STAN_MATH_PRIM_CONSTRAINT_SIMPLEX_COLUMN_CONSTRAIN_HPP
2#define STAN_MATH_PRIM_CONSTRAINT_SIMPLEX_COLUMN_CONSTRAIN_HPP
25template <
typename Mat, require_eigen_matrix_dynamic_t<Mat>* =
nullptr,
26 require_not_st_var<Mat>* =
nullptr>
29 const Eigen::Index M = y_ref.cols();
31 for (Eigen::Index i = 0; i < M; ++i) {
50template <
typename Mat, require_eigen_matrix_dynamic_t<Mat>* =
nullptr,
51 require_not_st_var<Mat>* =
nullptr>
55 const Eigen::Index M = y_ref.cols();
57 for (Eigen::Index i = 0; i < M; ++i) {
77template <
bool Jacobian,
typename Mat, require_not_std_vector_t<Mat>* =
nullptr>
104template <
bool Jacobian,
typename T, require_std_vector_t<T>* =
nullptr>
107 return stochastic_column_constrain<Jacobian>(v, lp);
typename value_type< T >::type value_type_t
Helper function for accessing underlying type.
typename return_type< Ts... >::type return_type_t
Convenience type for the return type of the specified template parameters.
plain_type_t< Mat > stochastic_column_constrain(const Mat &y)
Return a column stochastic matrix.
ref_type_t< T && > to_ref(T &&a)
This evaluates expensive Eigen expressions.
plain_type_t< Vec > simplex_constrain(const Vec &y)
Return the simplex corresponding to the specified free vector.
typename plain_type< T >::type plain_type_t
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...