MotorControlModuleSDFM_TMS3.../Projects/EFC_Application/UMLibrary/schematic/SignalMajorization.cpp

38 lines
1.1 KiB
C++
Raw Normal View History

// 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 <EFBFBD><EFBFBD><EFBFBD>. 2017 <EFBFBD>.
* Author: titov
*/
#include "SignalMajorization.hh"
#include <cmath>
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<float>(a);
float bf = static_cast<float>(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<float>(a);
float bf = static_cast<float>(b);
return isnan(af) ? ( isnan(bf) ? nanf("") : bf ) : af;
}