Message ID | 20240926100640.3504-1-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | 09c291192c58fcf37a997aab273e3b0409a79277 |
Headers | show |
Series |
|
Related | show |
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 >
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 >
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
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