solstice-solver

Solver library of the solstice app
git clone git://git.meso-star.com/solstice-solver.git
Log | Files | Refs | README | LICENSE

commit 30bfda76c248b8bf407ef602085c23bb1e400e86
parent b0d5e85c32aebabe8ae8e1fb078962b841235ca2
Author: Christophe Coustet <christophe.coustet@meso-star.com>
Date:   Tue,  2 May 2017 18:13:59 +0200

Improve spectrum checking.

Diffstat:
Msrc/ssol_spectrum.c | 12++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/ssol_spectrum.c b/src/ssol_spectrum.c @@ -121,11 +121,19 @@ int spectrum_check_data (const struct ssol_spectrum* spectrum, const double lower, const double upper) { - size_t i; + size_t sz, i; + double current_wl = 0; ASSERT(spectrum && lower <= upper); - FOR_EACH(i, 0, darray_double_size_get(&spectrum->intensities)) { + sz = darray_double_size_get(&spectrum->intensities); + if(!sz) return 0; + if(sz != darray_double_size_get(&spectrum->wavelengths)) return 0; + FOR_EACH(i, 0, sz) { + const double wl = darray_double_cdata_get(&spectrum->wavelengths)[i]; const double data = darray_double_cdata_get(&spectrum->intensities)[i]; if(data < lower || data > upper) return 0; + if(wl <= 0) return 0; + if(wl <= current_wl) return 0; + current_wl = wl; } return 1; }