From 2fe9198067e7250198656c10f4403dd1a54463f9 Mon Sep 17 00:00:00 2001 From: "Steven G. Johnson" Date: Sun, 29 Jan 2017 18:46:24 -0800 Subject: [PATCH] fix sign function for NaN --- base/number.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base/number.jl b/base/number.jl index f317dd04637752..d70e828c26edcc 100644 --- a/base/number.jl +++ b/base/number.jl @@ -77,7 +77,7 @@ signbit(x::Real) = x < 0 Return zero if `x==0` and ``x/|x|`` otherwise (i.e., ±1 for real `x`). """ sign(x::Number) = x == 0 ? x/abs(oneunit(x)) : x/abs(x) -sign(x::Real) = ifelse(x < 0, oftype(one(x),-1), ifelse(x > 0, one(x), oftype(one(x),0))) +sign(x::Real) = ifelse(x < 0, oftype(one(x),-1), ifelse(x > 0, one(x), typeof(one(x))(x))) sign(x::Unsigned) = ifelse(x > 0, one(x), oftype(one(x),0)) abs(x::Real) = ifelse(signbit(x), -x, x)