// This is an independent project of an individual developer. Dear PVS-Studio, please check it. // PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com /* * SignalMajorization.cpp * * Created on: 22 ���. 2017 �. * Author: titov */ #include "SignalMajorization.hh" #include systemic::detail::SignalMajorizationAnd::SignalMajorizationAnd(ISignal & first, ISignal & two, float delta) : a(first), b(two), error(delta) {} systemic::detail::SignalMajorizationAnd::operator float() const { using namespace std; float af = static_cast(a); float bf = static_cast(b); return fabs(af - bf) > error || isnan(af) || isnan(bf) ? nanf("") : ( af + bf ) * 0.5f; } systemic::detail::SignalMajorizationOr::SignalMajorizationOr( ISignal & first, ISignal & two ) : a(first), b(two) {} systemic::detail::SignalMajorizationOr::operator float() const { using namespace std; float af = static_cast(a); float bf = static_cast(b); return isnan(af) ? ( isnan(bf) ? nanf("") : bf ) : af; }