From 16678853d215154ba494831673c955cf444d1647 Mon Sep 17 00:00:00 2001 From: Dominique Orban Date: Thu, 10 Aug 2017 20:47:06 -0400 Subject: [PATCH] implement less than or equal to fixes #27 --- src/DoubleDouble.jl | 10 +++++++++- test/runtests.jl | 2 ++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/DoubleDouble.jl b/src/DoubleDouble.jl index 5511147..368292c 100644 --- a/src/DoubleDouble.jl +++ b/src/DoubleDouble.jl @@ -3,7 +3,7 @@ module DoubleDouble export Double, Single import Base: convert, - *, +, -, /, sqrt, <, + *, +, -, /, sqrt, <, ≤, rem, abs, rand, promote_rule, show, big @@ -103,10 +103,18 @@ Double(x::Irrational) = convert(Double{Float64}, x) # < +function <{T}(x::Single{T}, y::Single{T}) + x.hi < y.hi +end + +≤{T}(x::Single{T}, y::Single{T}) = !(x > y) + function <{T}(x::Double{T}, y::Double{T}) x.hi + x.lo < y.hi + y.lo end +≤{T}(x::Double{T}, y::Double{T}) = !(x > y) + # add12 function +{T}(x::Single{T},y::Single{T}) abs(x.hi) > abs(y.hi) ? Double(x.hi, y.hi) : Double(y.hi, x.hi) diff --git a/test/runtests.jl b/test/runtests.jl index 5158aeb..027a549 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -15,6 +15,8 @@ dy = Double(y) @test x == sx == dx @test y == sy == dy +@test sy ≤ sx +@test dy ≤ dx @test zero(Double{Float64}) == Double(0.0, 0.0) @test one(Double{Float64}) == Double(1.0, 0.0)