diff --git a/level.hs b/level.hs index 4620775..17f0d18 100644 --- a/level.hs +++ b/level.hs @@ -1,7 +1,7 @@ {-# LANGUAGE DeriveDataTypeable, RecordWildCards #-} -- Создан: Ср 28 сен 2016 10:18:53 --- Изменен: Пт 30 сен 2016 12:52:29 +-- Изменен: Ср 05 окт 2016 16:09:45 import System.Console.CmdArgs import System.Environment @@ -45,7 +45,9 @@ calcLevel fs samples = case dd of -- Вычисление значения фазы calcPhase :: (Ord a, Fractional a) => [[a]] -> a -calcPhase samples = 2 * median (map ph (zip3 samples (drop 1 samples) (drop 2 samples))) - 1 where +calcPhase samples + | sum [ abs l + abs r | [l,r] <- samples] < 0.01 = 0 + | otherwise = median (map ph (zip3 samples (drop 1 samples) (drop 2 samples))) where ph ([0,0], [l2,r2], [l3,r3]) | (signum l2 /= signum r2) && (signum l3 /= signum r3) = 0 | otherwise = 1