diff options
author | Richard Hughes <richard@hughsie.com> | 2017-01-02 11:08:11 +0000 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2017-01-03 08:36:32 +0000 |
commit | 18b1c41bc7775d5f632e44e4958083ba36876372 (patch) | |
tree | 637e59a4816f3335086d79f8ec5bad3da2d2dac8 | |
parent | 54f25d7158485034a13bd29065708eac21ce606c (diff) | |
download | colord-18b1c41bc7775d5f632e44e4958083ba36876372.tar.gz |
libcolord: Add cd_spectrum_multiply_scalar()
-rw-r--r-- | lib/colord/cd-spectrum.c | 20 | ||||
-rw-r--r-- | lib/colord/cd-spectrum.h | 2 |
2 files changed, 22 insertions, 0 deletions
diff --git a/lib/colord/cd-spectrum.c b/lib/colord/cd-spectrum.c index 9ee2a22..e0ab0ef 100644 --- a/lib/colord/cd-spectrum.c +++ b/lib/colord/cd-spectrum.c @@ -743,6 +743,26 @@ cd_spectrum_multiply (CdSpectrum *s1, CdSpectrum *s2, gdouble resolution) } /** + * cd_spectrum_multiply_scalar: + * @spectrum: a #CdSpectrum instance + * @value: a scalar value + * + * Multiplies a spectra with a scalar value. + * + * Return value: a #CdSpectrum instance + * + * Since: 1.3.5 + **/ +CdSpectrum * +cd_spectrum_multiply_scalar (CdSpectrum *spectrum, gdouble value) +{ + CdSpectrum *s = cd_spectrum_dup (spectrum); + for (guint i = 0; i < spectrum->data->len; i++) + cd_spectrum_add_value (s, cd_spectrum_get_value (spectrum, i) * value); + return s; +} + +/** * cd_spectrum_subtract: * @s1: a #CdSpectrum instance, e.g. a sample * @s2: a #CdSpectrum instance, e.g. a dark calibration diff --git a/lib/colord/cd-spectrum.h b/lib/colord/cd-spectrum.h index 83af8c1..b9c7349 100644 --- a/lib/colord/cd-spectrum.h +++ b/lib/colord/cd-spectrum.h @@ -104,6 +104,8 @@ void cd_spectrum_get_wavelength_cal (CdSpectrum *spectrum, CdSpectrum *cd_spectrum_multiply (CdSpectrum *s1, CdSpectrum *s2, gdouble resolution); +CdSpectrum *cd_spectrum_multiply_scalar (CdSpectrum *spectrum, + gdouble value); CdSpectrum *cd_spectrum_resample (CdSpectrum *spectrum, gdouble start, gdouble end, |