There was an error while loading. Please reload this page.
2 parents fe4800a + c98e30e commit 7aafcdfCopy full SHA for 7aafcdf
2 files changed
stan/math/prim/fun/square.hpp
@@ -25,7 +25,8 @@ namespace math {
25
*/
26
template <typename T, require_arithmetic_t<T>* = nullptr>
27
inline double square(const T x) {
28
- return std::pow(x, 2);
+ double x_dbl = x;
29
+ return x_dbl * x_dbl;
30
}
31
32
/**
stan/math/rev/fun/squared_distance.hpp
@@ -21,7 +21,8 @@ namespace math {
21
inline var squared_distance(const var& a, const var& b) {
22
check_finite("squared_distance", "a", a);
23
check_finite("squared_distance", "b", b);
24
- return make_callback_vari(std::pow(a.val() - b.val(), 2),
+ double difference = a.val() - b.val();
+ return make_callback_vari(difference * difference,
[a, b](const auto& vi) mutable {
const double diff = 2.0 * (a.val() - b.val());
a.adj() += vi.adj_ * diff;
@@ -35,7 +36,8 @@ inline var squared_distance(const var& a, const var& b) {
35
36
inline var squared_distance(const var& a, double b) {
37
38
- return make_callback_vari(std::pow(a.val() - b, 2),
39
+ double difference = a.val() - b;
40
41
42
a.adj() += vi.adj_ * 2.0 * (a.val() - b);
43
});
0 commit comments