38 lines
1.1 KiB
C++
38 lines
1.1 KiB
C++
// 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 <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;
|
|
}
|