From 89dfc4cd02f27bb08189a61424818335f153dfff Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Nov 2017 20:42:18 -0800 Subject: [PATCH 1/3] add eps --- src/quantities.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/quantities.jl b/src/quantities.jl index f4972b9f..10702911 100644 --- a/src/quantities.jl +++ b/src/quantities.jl @@ -280,6 +280,9 @@ isfinite(x::Quantity) = isfinite(x.val) isinf(x::Quantity) = isinf(x.val) isnan(x::Quantity) = isnan(x.val) +eps(x::T) where {T<:Quantity} = T(eps(x.val)) +eps(x::Type{T}) where {T<:Quantity} = T(eps(Unitful.numtype(T))) + unsigned(x::Quantity) = Quantity(unsigned(x.val), unit(x)) for f in (:exp, :exp10, :exp2, :expm1, :log, :log10, :log1p, :log2) From 35ffde8de04f7e8ea81a3b85e8e2051d24226b2a Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Nov 2017 20:43:01 -0800 Subject: [PATCH 2/3] Update Unitful.jl --- src/Unitful.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Unitful.jl b/src/Unitful.jl index 99584cd6..af960927 100644 --- a/src/Unitful.jl +++ b/src/Unitful.jl @@ -8,7 +8,7 @@ import Base: min, max, floor, ceil, real, imag, conj import Base: exp, exp10, exp2, expm1, log, log10, log1p, log2 import Base: sin, cos, tan, cot, sec, csc, atan2, cis, vecnorm -import Base: mod, rem, div, fld, cld, trunc, round, sign, signbit +import Base: eps, mod, rem, div, fld, cld, trunc, round, sign, signbit import Base: isless, isapprox, isinteger, isreal, isinf, isfinite, isnan import Base: copysign, flipsign import Base: prevfloat, nextfloat, maxintfloat, rat, step From aa625ef3f4994b2686ff17592c3771608c236192 Mon Sep 17 00:00:00 2001 From: Christopher Rackauckas Date: Thu, 16 Nov 2017 20:45:10 -0800 Subject: [PATCH 3/3] Update runtests.jl --- test/runtests.jl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/runtests.jl b/test/runtests.jl index d382cce0..4e13df69 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -529,6 +529,10 @@ end @test !isapprox(1.0u"m", 1.1u"m"; atol=50u"mm") @test isapprox(1.0u"m", 1.1u"m"; rtol=0.2) @test !isapprox(1.0u"m", 1.1u"m"; rtol=0.05) + + # Test eps + @test eps(1.0u"s") == eps(1.0)u"s" + @test eps(typeof(1.0u"s")) == eps(Float64)u"s" # Test promotion behavior @test !isapprox(1.0u"m", 1.0u"s")