mirror of
				https://github.com/Telecominfraproject/wlan-cloud-lib-poco.git
				synced 2025-10-30 18:17:50 +00:00 
			
		
		
		
	#3278: Fixing no hardware floating point support - Part II
This commit is contained in:
		| @@ -31,22 +31,22 @@ class FPEnvironmentImpl | |||||||
| protected: | protected: | ||||||
| 	enum RoundingModeImpl | 	enum RoundingModeImpl | ||||||
| 	{ | 	{ | ||||||
| #ifdef FE_DOWNWARD | #if defined(FE_DOWNWARD) | ||||||
| 		FP_ROUND_DOWNWARD_IMPL   = FE_DOWNWARD, | 		FP_ROUND_DOWNWARD_IMPL   = FE_DOWNWARD, | ||||||
| #else | #else | ||||||
| 		FP_ROUND_DOWNWARD_IMPL   = 0, | 		FP_ROUND_DOWNWARD_IMPL   = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_UPWARD | #if defined(FE_UPWARD) | ||||||
| 		FP_ROUND_UPWARD_IMPL     = FE_UPWARD, | 		FP_ROUND_UPWARD_IMPL     = FE_UPWARD, | ||||||
| #else | #else | ||||||
| 		FP_ROUND_UPWARD_IMPL     = 0, | 		FP_ROUND_UPWARD_IMPL     = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_TONEAREST | #if defined(FE_TONEAREST) | ||||||
| 		FP_ROUND_TONEAREST_IMPL  = FE_TONEAREST, | 		FP_ROUND_TONEAREST_IMPL  = FE_TONEAREST, | ||||||
| #else | #else | ||||||
| 		FP_ROUND_TONEAREST_IMPL  = 0, | 		FP_ROUND_TONEAREST_IMPL  = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_TOWARDZERO | #if defined(FE_TOWARDZERO) | ||||||
| 		FP_ROUND_TOWARDZERO_IMPL = FE_TOWARDZERO | 		FP_ROUND_TOWARDZERO_IMPL = FE_TOWARDZERO | ||||||
| #else | #else | ||||||
| 		FP_ROUND_TOWARDZERO_IMPL = 0 | 		FP_ROUND_TOWARDZERO_IMPL = 0 | ||||||
| @@ -54,27 +54,27 @@ protected: | |||||||
| 	}; | 	}; | ||||||
| 	enum FlagImpl | 	enum FlagImpl | ||||||
| 	{ | 	{ | ||||||
| #ifdef FE_DIVBYZERO | #if defined(FE_DIVBYZERO) | ||||||
| 		FP_DIVIDE_BY_ZERO_IMPL = FE_DIVBYZERO, | 		FP_DIVIDE_BY_ZERO_IMPL = FE_DIVBYZERO, | ||||||
| #else | #else | ||||||
| 		FP_DIVIDE_BY_ZERO_IMPL = 0, | 		FP_DIVIDE_BY_ZERO_IMPL = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_INEXACT | #if defined(FE_INEXACT) | ||||||
| 		FP_INEXACT_IMPL        = FE_INEXACT, | 		FP_INEXACT_IMPL        = FE_INEXACT, | ||||||
| #else | #else | ||||||
| 		FP_INEXACT_IMPL        = 0, | 		FP_INEXACT_IMPL        = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_OVERFLOW | #if defined(FE_OVERFLOW) | ||||||
| 		FP_OVERFLOW_IMPL       = FE_OVERFLOW, | 		FP_OVERFLOW_IMPL       = FE_OVERFLOW, | ||||||
| #else | #else | ||||||
| 		FP_OVERFLOW_IMPL       = 0, | 		FP_OVERFLOW_IMPL       = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_UNDERFLOW | #if defined(FE_UNDERFLOW) | ||||||
| 		FP_UNDERFLOW_IMPL      = FE_UNDERFLOW, | 		FP_UNDERFLOW_IMPL      = FE_UNDERFLOW, | ||||||
| #else | #else | ||||||
| 		FP_UNDERFLOW_IMPL      = 0, | 		FP_UNDERFLOW_IMPL      = 0, | ||||||
| #endif | #endif | ||||||
| #ifdef FE_INVALID | #if defined(FE_INVALID) | ||||||
| 		FP_INVALID_IMPL        = FE_INVALID | 		FP_INVALID_IMPL        = FE_INVALID | ||||||
| #else | #else | ||||||
| 		FP_INVALID_IMPL        = 0 | 		FP_INVALID_IMPL        = 0 | ||||||
| @@ -109,37 +109,61 @@ private: | |||||||
| // | // | ||||||
| inline bool FPEnvironmentImpl::isInfiniteImpl(float value) | inline bool FPEnvironmentImpl::isInfiniteImpl(float value) | ||||||
| { | { | ||||||
|  | #if POCO_OS == POCO_OS_AIX | ||||||
|  | 	return ::isinf(value) != 0; | ||||||
|  | #else | ||||||
| 	return std::isinf(value) != 0; | 	return std::isinf(value) != 0; | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| inline bool FPEnvironmentImpl::isInfiniteImpl(double value) | inline bool FPEnvironmentImpl::isInfiniteImpl(double value) | ||||||
| { | { | ||||||
|  | #if POCO_OS == POCO_OS_AIX | ||||||
|  | 	return ::isinf(value) != 0; | ||||||
|  | #else | ||||||
| 	return std::isinf(value) != 0; | 	return std::isinf(value) != 0; | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| inline bool FPEnvironmentImpl::isInfiniteImpl(long double value) | inline bool FPEnvironmentImpl::isInfiniteImpl(long double value) | ||||||
| { | { | ||||||
|  | #if POCO_OS == POCO_OS_AIX | ||||||
|  | 	return ::isinf((double) value) != 0; | ||||||
|  | #else | ||||||
| 	return std::isinf((double) value) != 0; | 	return std::isinf((double) value) != 0; | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| inline bool FPEnvironmentImpl::isNaNImpl(float value) | inline bool FPEnvironmentImpl::isNaNImpl(float value) | ||||||
| { | { | ||||||
|  | #if POCO_OS == POCO_OS_AIX | ||||||
|  | 	return ::isnan(value) != 0; | ||||||
|  | #else | ||||||
| 	return std::isnan(value) != 0; | 	return std::isnan(value) != 0; | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| inline bool FPEnvironmentImpl::isNaNImpl(double value) | inline bool FPEnvironmentImpl::isNaNImpl(double value) | ||||||
| { | { | ||||||
|  | #if POCO_OS == POCO_OS_AIX | ||||||
|  | 	return ::isnan(value) != 0; | ||||||
|  | #else | ||||||
| 	return std::isnan(value) != 0; | 	return std::isnan(value) != 0; | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| inline bool FPEnvironmentImpl::isNaNImpl(long double value) | inline bool FPEnvironmentImpl::isNaNImpl(long double value) | ||||||
| { | { | ||||||
|  | #if POCO_OS == POCO_OS_AIX | ||||||
|  | 	return ::isnan((double) value) != 0; | ||||||
|  | #else | ||||||
| 	return std::isnan((double) value) != 0; | 	return std::isnan((double) value) != 0; | ||||||
|  | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Günter Obiltschnig
					Günter Obiltschnig