/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
FWCore/Utilities/interface/isFinite.h
41 строка
826 B
W. David Dagenhart
Changes from scram build code-format-all
03 май 2019, 18:48
03 май 2019, 18:48
22c28dc
Код
Авторство
О чём код?
#ifndef FWCORE_Utilities_isFinite_H #define FWCORE_Utilities_isFinite_H namespace edm { template <typename T> constexpr bool isFinite(T x); template <typename T> constexpr bool isNotFinite(T x) { return !isFinite(x); } template <> constexpr bool isFinite(float x) { const unsigned int mask = 0x7f800000; union { unsigned int l; float d; } v = {.d = x}; return (v.l & mask) != mask; } template <> constexpr bool isFinite(double x) { const unsigned long long mask = 0x7FF0000000000000LL; union { unsigned long long l; double d; } v = {.d = x}; return (v.l & mask) != mask; } template <> constexpr bool isFinite(long double x) { double xx = x; return isFinite(xx); } } // namespace edm #endif // FWCORE_Utilities_isFinite_H