Automatic Differentiation
 
Loading...
Searching...
No Matches
logit.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_PRIM_FUN_LOGIT_HPP
2#define STAN_MATH_PRIM_FUN_LOGIT_HPP
3
9#include <cmath>
10
11namespace stan {
12namespace math {
13
46inline double logit(double u) {
47 using std::log;
48 return log(u / (1 - u));
49}
50
57inline double logit(int u) { return logit(static_cast<double>(u)); }
58
62struct logit_fun {
70 template <typename T>
71 static inline auto fun(const T& x) {
72 return logit(x);
73 }
74};
75
86template <
87 typename Container,
91inline auto logit(const Container& x) {
93}
94
106template <typename Container,
108inline auto logit(const Container& x) {
109 return make_holder(
110 [](const auto& v_ref) {
112 v_ref,
113 [](const auto& v) { return (v.array() / (1 - v.array())).log(); });
114 },
115 to_ref(x));
116}
117
118} // namespace math
119} // namespace stan
120
121#endif
require_not_t< container_type_check_base< is_container, scalar_type_t, TypeCheck, Check... > > require_not_container_st
Require type does not satisfy is_container.
require_t< container_type_check_base< is_container, scalar_type_t, TypeCheck, Check... > > require_container_st
Require type satisfies is_container.
require_not_t< is_nonscalar_prim_or_rev_kernel_expression< std::decay_t< T > > > require_not_nonscalar_prim_or_rev_kernel_expression_t
Require type does not satisfy is_nonscalar_prim_or_rev_kernel_expression.
require_not_t< is_var_matrix< std::decay_t< T > > > require_not_var_matrix_t
Require type does not satisfy is_var_matrix.
fvar< T > logit(const fvar< T > &x)
Definition logit.hpp:14
auto make_holder(const F &func, Args &&... args)
Constructs an expression from given arguments using given functor.
Definition holder.hpp:352
fvar< T > log(const fvar< T > &x)
Definition log.hpp:15
ref_type_t< T && > to_ref(T &&a)
This evaluates expensive Eigen expressions.
Definition to_ref.hpp:17
constexpr decltype(auto) apply(F &&f, Tuple &&t, PreArgs &&... pre_args)
Definition apply.hpp:52
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.
Definition logit.hpp:71
Structure to wrap logit() so it can be vectorized.
Definition logit.hpp:62