[libcamera-devel] [PATCH 06/10] ipa: replaces abs() with std::abs()
nicholas at rothemail.net
nicholas at rothemail.net
Thu Oct 27 07:55:11 CEST 2022
From: Nicholas Roth <nicholas at rothemail.net>
pwl.cpp uses abs() instead of std::abs(), which causes unexpected
behavior in the Clang compiler used for Android. Replace with
C++-standard absolute value function std::abs(), which supports
double-precision absolute values in a standard way.
Signed-off-by: Nicholas Roth <nicholas at rothemail.net>
---
src/ipa/raspberrypi/controller/pwl.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/ipa/raspberrypi/controller/pwl.cpp b/src/ipa/raspberrypi/controller/pwl.cpp
index c59f5fa1..70c2e24b 100644
--- a/src/ipa/raspberrypi/controller/pwl.cpp
+++ b/src/ipa/raspberrypi/controller/pwl.cpp
@@ -6,6 +6,7 @@
*/
#include <cassert>
+#include <cmath>
#include <stdexcept>
#include "pwl.h"
@@ -168,7 +169,7 @@ Pwl Pwl::compose(Pwl const &other, const double eps) const
while (thisSpan != (int)points_.size() - 1) {
double dx = points_[thisSpan + 1].x - points_[thisSpan].x,
dy = points_[thisSpan + 1].y - points_[thisSpan].y;
- if (abs(dy) > eps &&
+ if (std::abs(dy) > eps &&
otherSpan + 1 < (int)other.points_.size() &&
points_[thisSpan + 1].y >=
other.points_[otherSpan + 1].x + eps) {
@@ -181,7 +182,7 @@ Pwl Pwl::compose(Pwl const &other, const double eps) const
points_[thisSpan].y) *
dx / dy;
thisY = other.points_[++otherSpan].x;
- } else if (abs(dy) > eps && otherSpan > 0 &&
+ } else if (std::abs(dy) > eps && otherSpan > 0 &&
points_[thisSpan + 1].y <=
other.points_[otherSpan - 1].x - eps) {
/*
--
2.34.1
More information about the libcamera-devel
mailing list