[PATCH 1/2] ipa: rpi: Replace last users of math.c
Naushir Patuck
naush at raspberrypi.com
Mon Sep 30 09:33:59 CEST 2024
Hi Laurent,
Thanks for the fixes.
On Thu, 26 Sept 2024 at 11:06, Laurent Pinchart
<laurent.pinchart at ideasonboard.com> wrote:
>
> As described in the coding style document, libcamera favours <cmath>
> over <math.h>. Replace the last few occurrences of the latter with the
> former in the Raspberry Pi IPA and adapt the code accordingly. In some
> cases, the <math.h> include is simply dropped as it isn't needed.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Haven't tested this, but all looks reasonable to me
Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
> ---
> src/ipa/rpi/cam_helper/cam_helper_imx283.cpp | 2 +-
> src/ipa/rpi/cam_helper/cam_helper_imx290.cpp | 6 +++---
> src/ipa/rpi/controller/histogram.cpp | 6 +++---
> src/ipa/rpi/controller/rpi/af.cpp | 2 +-
> src/ipa/rpi/controller/rpi/black_level.cpp | 1 -
> src/ipa/rpi/controller/rpi/lux.cpp | 1 -
> src/ipa/rpi/controller/rpi/noise.cpp | 4 ++--
> src/ipa/rpi/controller/rpi/sharpen.cpp | 4 ++--
> 8 files changed, 12 insertions(+), 14 deletions(-)
>
> diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx283.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx283.cpp
> index 1fd4d7f31b04..cb0be72a0aa7 100644
> --- a/src/ipa/rpi/cam_helper/cam_helper_imx283.cpp
> +++ b/src/ipa/rpi/cam_helper/cam_helper_imx283.cpp
> @@ -8,7 +8,7 @@
> #include <assert.h>
>
> #include "cam_helper.h"
> -#include "math.h"
> +
> using namespace RPiController;
>
> class CamHelperImx283 : public CamHelper
> diff --git a/src/ipa/rpi/cam_helper/cam_helper_imx290.cpp b/src/ipa/rpi/cam_helper/cam_helper_imx290.cpp
> index 24275e121836..e57ab5381c31 100644
> --- a/src/ipa/rpi/cam_helper/cam_helper_imx290.cpp
> +++ b/src/ipa/rpi/cam_helper/cam_helper_imx290.cpp
> @@ -5,7 +5,7 @@
> * camera helper for imx290 sensor
> */
>
> -#include <math.h>
> +#include <cmath>
>
> #include "cam_helper.h"
>
> @@ -37,13 +37,13 @@ CamHelperImx290::CamHelperImx290()
>
> uint32_t CamHelperImx290::gainCode(double gain) const
> {
> - int code = 66.6667 * log10(gain);
> + int code = 66.6667 * std::log10(gain);
> return std::max(0, std::min(code, 0xf0));
> }
>
> double CamHelperImx290::gain(uint32_t gainCode) const
> {
> - return pow(10, 0.015 * gainCode);
> + return std::pow(10, 0.015 * gainCode);
> }
>
> void CamHelperImx290::getDelays(int &exposureDelay, int &gainDelay,
> diff --git a/src/ipa/rpi/controller/histogram.cpp b/src/ipa/rpi/controller/histogram.cpp
> index ba5b25dd9b36..130898397d3c 100644
> --- a/src/ipa/rpi/controller/histogram.cpp
> +++ b/src/ipa/rpi/controller/histogram.cpp
> @@ -4,7 +4,7 @@
> *
> * histogram calculations
> */
> -#include <math.h>
> +#include <cmath>
> #include <stdio.h>
>
> #include "histogram.h"
> @@ -49,9 +49,9 @@ double Histogram::interBinMean(double binLo, double binHi) const
> {
> assert(binHi >= binLo);
> double sumBinFreq = 0, cumulFreq = 0;
> - for (double binNext = floor(binLo) + 1.0; binNext <= ceil(binHi);
> + for (double binNext = std::floor(binLo) + 1.0; binNext <= std::ceil(binHi);
> binLo = binNext, binNext += 1.0) {
> - int bin = floor(binLo);
> + int bin = std::floor(binLo);
> double freq = (cumulative_[bin + 1] - cumulative_[bin]) *
> (std::min(binNext, binHi) - binLo);
> sumBinFreq += bin * freq;
> diff --git a/src/ipa/rpi/controller/rpi/af.cpp b/src/ipa/rpi/controller/rpi/af.cpp
> index 5ca76dd98b4b..2157eb94f427 100644
> --- a/src/ipa/rpi/controller/rpi/af.cpp
> +++ b/src/ipa/rpi/controller/rpi/af.cpp
> @@ -7,8 +7,8 @@
>
> #include "af.h"
>
> +#include <cmath>
> #include <iomanip>
> -#include <math.h>
> #include <stdlib.h>
>
> #include <libcamera/base/log.h>
> diff --git a/src/ipa/rpi/controller/rpi/black_level.cpp b/src/ipa/rpi/controller/rpi/black_level.cpp
> index ea991df9f60d..4c968f14a1ca 100644
> --- a/src/ipa/rpi/controller/rpi/black_level.cpp
> +++ b/src/ipa/rpi/controller/rpi/black_level.cpp
> @@ -5,7 +5,6 @@
> * black level control algorithm
> */
>
> -#include <math.h>
> #include <stdint.h>
>
> #include <libcamera/base/log.h>
> diff --git a/src/ipa/rpi/controller/rpi/lux.cpp b/src/ipa/rpi/controller/rpi/lux.cpp
> index 7b31faab472f..652d85d7e22f 100644
> --- a/src/ipa/rpi/controller/rpi/lux.cpp
> +++ b/src/ipa/rpi/controller/rpi/lux.cpp
> @@ -4,7 +4,6 @@
> *
> * Lux control algorithm
> */
> -#include <math.h>
>
> #include <libcamera/base/log.h>
>
> diff --git a/src/ipa/rpi/controller/rpi/noise.cpp b/src/ipa/rpi/controller/rpi/noise.cpp
> index 3f1c62cf1508..145175fb4940 100644
> --- a/src/ipa/rpi/controller/rpi/noise.cpp
> +++ b/src/ipa/rpi/controller/rpi/noise.cpp
> @@ -5,7 +5,7 @@
> * Noise control algorithm
> */
>
> -#include <math.h>
> +#include <cmath>
>
> #include <libcamera/base/log.h>
>
> @@ -69,7 +69,7 @@ void Noise::prepare(Metadata *imageMetadata)
> * make some adjustments based on the camera mode (such as
> * binning), if we knew how to discover it...
> */
> - double factor = sqrt(deviceStatus.analogueGain) / modeFactor_;
> + double factor = std::sqrt(deviceStatus.analogueGain) / modeFactor_;
> struct NoiseStatus status;
> status.noiseConstant = referenceConstant_ * factor;
> status.noiseSlope = referenceSlope_ * factor;
> diff --git a/src/ipa/rpi/controller/rpi/sharpen.cpp b/src/ipa/rpi/controller/rpi/sharpen.cpp
> index 39537f4aaf0a..1d143ff53287 100644
> --- a/src/ipa/rpi/controller/rpi/sharpen.cpp
> +++ b/src/ipa/rpi/controller/rpi/sharpen.cpp
> @@ -5,7 +5,7 @@
> * sharpening control algorithm
> */
>
> -#include <math.h>
> +#include <cmath>
>
> #include <libcamera/base/log.h>
>
> @@ -68,7 +68,7 @@ void Sharpen::prepare(Metadata *imageMetadata)
> * we adjust the limit and threshold less aggressively. Using a sqrt
> * function is an arbitrary but gentle way of accomplishing this.
> */
> - double userStrengthSqrt = sqrt(userStrength_);
> + double userStrengthSqrt = std::sqrt(userStrength_);
> struct SharpenStatus status;
> /*
> * Binned modes seem to need the sharpening toned down with this
>
> base-commit: f2088eb91fd6477b152233b9031cb115ca1ae824
> --
> Regards,
>
> Laurent Pinchart
>
More information about the libcamera-devel
mailing list