Fix MSVC atan2 test.
This commit is contained in:
		
							parent
							
								
									2dfbf1b251
								
							
						
					
					
						commit
						c15b386203
					
				| @ -100,7 +100,18 @@ void binary_ops_test() { | ||||
|                          [](const auto& x, const auto& y) { return std::pow(x, y); }); | ||||
|   binary_op_test<Scalar>("atan2", | ||||
|                          [](const auto& x, const auto& y) { return Eigen::atan2(x, y); }, | ||||
|                          [](const auto& x, const auto& y) { return std::atan2(x, y); }); | ||||
|                          [](const auto& x, const auto& y) { | ||||
|                             auto t = std::atan2(x, y); | ||||
| #if EIGEN_COMP_MSVC | ||||
|                             // Work around MSVC return value on underflow.
 | ||||
|                             // |atan(y/x)| is bounded above by |y/x|, so on underflow return y/x according to POSIX spec.
 | ||||
|                             // MSVC otherwise returns denorm_min.
 | ||||
|                             if (EIGEN_PREDICT_FALSE(std::abs(t) == std::numeric_limits<decltype(t)>::denorm_min())) { | ||||
|                               return x/y; | ||||
|                             } | ||||
| #endif | ||||
|                             return t; | ||||
|                           }); | ||||
| } | ||||
| 
 | ||||
| template <typename Scalar> | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Antonio Sánchez
						Antonio Sánchez