/* On Linux 32bits, Math.Pow (-1, Double.MaxValue) would return NaN instead of 1 */
if (isnan (result) && isminusone (x) && (y > 9007199254740991.0 || y < -9007199254740991.0))
result = POne.d;
+
+ /* On Linux 32bits, Math.Pow (Double.MinValue, Double.MinValue) would return NaN instead of 0 */
+ if (isnan (result) && x < -9007199254740991.0 && y < -9007199254740991.0)
+ result = 0.0;
#endif
return result == -0.0 ? 0 : result;