Skip to content

Commit c98e30e

Browse files
Refactoring squared_distance to use multiplication instead of pow.
1 parent 05e4a1a commit c98e30e

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

stan/math/rev/fun/squared_distance.hpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ namespace math {
2121
inline var squared_distance(const var& a, const var& b) {
2222
check_finite("squared_distance", "a", a);
2323
check_finite("squared_distance", "b", b);
24-
return make_callback_vari((a.val() - b.val()) * (a.val() - b.val()),
24+
double difference = a.val() - b.val();
25+
return make_callback_vari(difference * difference,
2526
[a, b](const auto& vi) mutable {
2627
const double diff = 2.0 * (a.val() - b.val());
2728
a.adj() += vi.adj_ * diff;
@@ -35,7 +36,8 @@ inline var squared_distance(const var& a, const var& b) {
3536
inline var squared_distance(const var& a, double b) {
3637
check_finite("squared_distance", "a", a);
3738
check_finite("squared_distance", "b", b);
38-
return make_callback_vari((a.val() - b) * (a.val() - b),
39+
double difference = a.val() - b;
40+
return make_callback_vari(difference * difference,
3941
[a, b](const auto& vi) mutable {
4042
a.adj() += vi.adj_ * 2.0 * (a.val() - b);
4143
});

0 commit comments

Comments
 (0)