1#ifndef STAN_MATH_PRIM_FUN_LOGIT_HPP
2#define STAN_MATH_PRIM_FUN_LOGIT_HPP
46template <
typename T, require_
floating_po
int_t<T>* =
nullptr>
48 return std::log(u / (1 - u));
57template <
typename T, require_
integral_t<T>* =
nullptr>
58inline double logit(
const T u) {
59 return logit(
static_cast<double>(u));
74 static inline auto fun(
const T& x) {
89template <
typename Container, require_ad_container_t<Container>* =
nullptr>
90inline auto logit(
const Container& x) {
105template <
typename Container,
107inline auto logit(
const Container& x) {
109 [](
const auto& v_ref) {
110 return apply_vector_unary<ref_type_t<Container>>
::apply(
112 [](
const auto& v) {
return (v.array() / (1 - v.array())).log(); });
require_t< container_type_check_base< is_container, base_type_t, TypeCheck, Check... > > require_container_bt
Require type satisfies is_container.
fvar< T > logit(const fvar< T > &x)
auto make_holder(const F &func, Args &&... args)
Constructs an expression from given arguments using given functor.
ref_type_t< T && > to_ref(T &&a)
This evaluates expensive Eigen expressions.
constexpr decltype(auto) apply(F &&f, Tuple &&t, PreArgs &&... pre_args)
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...
Base template class for vectorization of unary scalar functions defined by a template class F to a sc...
static auto fun(const T &x)
Return the log odds of the specified argument.
Structure to wrap logit() so it can be vectorized.