Automatic Differentiation
 
Loading...
Searching...
No Matches
atan2.hpp
Go to the documentation of this file.
1#ifndef STAN_MATH_PRIM_FUN_ATAN2_HPP
2#define STAN_MATH_PRIM_FUN_ATAN2_HPP
3
7#include <cmath>
8
9namespace stan {
10namespace math {
11
22template <typename T1, typename T2, require_all_arithmetic_t<T1, T2>* = nullptr>
23double atan2(T1 y, T2 x) {
24 return std::atan2(y, x);
25}
26
37template <typename T1, typename T2, require_any_container_t<T1, T2>* = nullptr,
38 require_all_not_var_matrix_t<T1, T2>* = nullptr>
39inline auto atan2(T1&& a, T2&& b) {
41 [](auto&& c, auto&& d) {
42 return atan2(std::forward<decltype(c)>(c),
43 std::forward<decltype(d)>(d));
44 },
45 std::forward<T1>(a), std::forward<T2>(b));
46}
47
48} // namespace math
49} // namespace stan
50
51#endif
fvar< T > atan2(const fvar< T > &x1, const fvar< T > &x2)
Definition atan2.hpp:14
auto apply_scalar_binary(F &&f, T1 &&x, T2 &&y)
Base template function for vectorization of binary scalar functions defined by applying a functor to ...
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...