Automatic Differentiation
 
Loading...
Searching...
No Matches
trunc.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_PRIM_FUN_TRUNC_HPP
2#define STAN_MATH_PRIM_FUN_TRUNC_HPP
3
6#include <cmath>
7
8namespace stan {
9namespace math {
10
11template <typename T, require_arithmetic_t<T>* = nullptr>
12inline auto trunc(T&& x) {
13 return std::trunc(x);
14}
18struct trunc_fun {
27 template <typename T>
28 static inline auto fun(T&& x) {
29 return trunc(std::forward<T>(x));
30 }
31};
32
43template <
44 typename T,
46 require_container_t<T>* = nullptr>
47inline auto trunc(T&& x) {
48 return apply_scalar_unary<trunc_fun, T>::apply(std::forward<T>(x));
49}
50
51} // namespace math
52} // namespace stan
53
54#endif
require_t< is_container< std::decay_t< T > > > require_container_t
Require type satisfies is_container.
require_all_not_t< is_nonscalar_prim_or_rev_kernel_expression< std::decay_t< Types > >... > require_all_not_nonscalar_prim_or_rev_kernel_expression_t
Require none of the types satisfy is_nonscalar_prim_or_rev_kernel_expression.
fvar< T > trunc(const fvar< T > &x)
Return the nearest integral value that is not larger in magnitude than the specified argument.
Definition trunc.hpp:20
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(T &&x)
Return the truncation of the specified argument to the nearest value.
Definition trunc.hpp:28
Structure to wrap trunc() so it can be vectorized.
Definition trunc.hpp:18