[med-svn] [aghermann] 16/24: sf: ensure diaplay scales are good as loaded/computed

andrei zavada hmmr-guest at moszumanska.debian.org
Mon Jun 15 01:48:26 UTC 2015


This is an automated email from the git hooks/post-receive script.

hmmr-guest pushed a commit to branch WIP
in repository aghermann.

commit 02c96539c4de928b61a6d39fead6a674e7f47208
Author: Andrei Zavada <hmmr at ra>
Date:   Sun Jun 14 22:22:44 2015 +0300

    sf: ensure diaplay scales are good as loaded/computed
---
 upstream/src/aghermann/ui/sf/sf.cc | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/upstream/src/aghermann/ui/sf/sf.cc b/upstream/src/aghermann/ui/sf/sf.cc
index 73595c7..6a27404 100644
--- a/upstream/src/aghermann/ui/sf/sf.cc
+++ b/upstream/src/aghermann/ui/sf/sf.cc
@@ -169,40 +169,46 @@ SScoringFacility (agh::CSubject& J,
         if ( !isfinite(da_ht) )
                 estimate_montage_height();
 
+      // take care scales are good
+        const double scale_min = 1e-9, scale_max = 1e9;
+        auto sane_scale = [&scale_min, &scale_max] (const double& v) -> bool
+        {
+                return isfinite(v) and agh::alg::value_within(v, scale_min, scale_max) == v;
+        };
         for ( auto &h : channels ) {
-                if ( not isfinite(h.signal_display_scale) )
+                if ( not sane_scale(h.signal_display_scale) )
                         h.signal_display_scale =
                                 agh::alg::calibrate_display_scale(
                                         h.signal_filtered,
                                         vpagesize() * h.samplerate() * min (h.crecording.full_pages(), (size_t)10),
                                         interchannel_gap / 2);
-                agh::alg::ensure_within( h.signal_display_scale, 1e-6, 1e6);
+                agh::alg::ensure_within( h.signal_display_scale, scale_min, scale_max);
 
                 if ( h.type() == sigfile::SChannel::TType::eeg ) {
                       // calibrate profile display scales
-                        if ( not isfinite(h.psd.display_scale) )
+                        if ( not sane_scale(h.psd.display_scale) )
                                 h.psd.display_scale =
                                         agh::alg::calibrate_display_scale(
                                                 h.psd.course_in_bands[metrics::TBand::delta],
                                                 h.psd.course.size(),
                                                 interchannel_gap / 4);
-                        agh::alg::ensure_within( h.psd.display_scale, 1e-9, 1e9);
+                        agh::alg::ensure_within( h.psd.display_scale, scale_min, scale_max);
 
-                        if ( not isfinite(h.mc.display_scale) )
+                        if ( not sane_scale(h.mc.display_scale) )
                                 h.mc.display_scale =
                                         agh::alg::calibrate_display_scale(
                                                 h.mc.course,
                                                 h.mc.course.size(),
                                                 interchannel_gap / 4);
-                        agh::alg::ensure_within( h.mc.display_scale, 1e-9, 1e9);
+                        agh::alg::ensure_within( h.mc.display_scale, scale_min, scale_max);
 
-                        if ( not isfinite(h.swu.display_scale) )
+                        if ( not sane_scale(h.swu.display_scale) )
                                 h.swu.display_scale =
                                         agh::alg::calibrate_display_scale(
                                                 h.swu.course,
                                                 h.swu.course.size(),
                                                 interchannel_gap / 4);
-                        agh::alg::ensure_within( h.swu.display_scale, 1e-9, 1e9);
+                        agh::alg::ensure_within( h.swu.display_scale, scale_min, scale_max);
                 }
 
                 h._put_selection();

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/aghermann.git



More information about the debian-med-commit mailing list