[1/2] ipa: rpi: Replace last users of math.c
diff mbox series

Message ID 20240926100640.3504-1-laurent.pinchart@ideasonboard.com
State Accepted
Commit 09c291192c58fcf37a997aab273e3b0409a79277
Headers show
Series
  • [1/2] ipa: rpi: Replace last users of math.c
Related show

Commit Message

Laurent Pinchart Sept. 26, 2024, 10:06 a.m. UTC
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@ideasonboard.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(-)


base-commit: f2088eb91fd6477b152233b9031cb115ca1ae824

Comments

Kieran Bingham Sept. 26, 2024, 10:34 a.m. UTC | #1
in $SUBJECT s/math.c/math.h/

Quoting Laurent Pinchart (2024-09-26 11:06:39)
> 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.

Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> 
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.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
>
Naushir Patuck Sept. 30, 2024, 7:33 a.m. UTC | #2
Hi Laurent,

Thanks for the fixes.

On Thu, 26 Sept 2024 at 11:06, Laurent Pinchart
<laurent.pinchart@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@ideasonboard.com>

Haven't tested this, but all looks reasonable to me

Reviewed-by: Naushir Patuck <naush@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
>

Patch
diff mbox series

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