From e854d0df47e5646a2d074913b8c79576fd595ed7 Mon Sep 17 00:00:00 2001 From: Maxim Lihachev Date: Wed, 5 Oct 2016 16:10:20 +0500 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=B0=D0=BB=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC?= =?UTF-8?q?=20=D1=80=D0=B0=D1=81=D1=87=D1=91=D1=82=D0=B0=20=D1=84=D0=B0?= =?UTF-8?q?=D0=B7=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- level.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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