Skip to content

Commit 2178aec

Browse files
authored
Merge pull request #19 from milankl/mk/promotion
Base. for promote_rule
2 parents f7c028d + 686019e commit 2178aec

File tree

7 files changed

+25
-99
lines changed

7 files changed

+25
-99
lines changed

.appveyor.yml

Lines changed: 0 additions & 42 deletions
This file was deleted.

.cirrus.yml

Lines changed: 0 additions & 17 deletions
This file was deleted.

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
11
.DS_Store
22
*.jld
33
*.nc
4+
5+
# File generated by Pkg, the package manager, based on a corresponding Project.toml
6+
# It records a fixed state of all packages used by the project. As such, it should not be
7+
# committed for packages, but should be committed for applications that require a static
8+
# environment.
9+
Manifest.toml

.travis.yml

Lines changed: 0 additions & 19 deletions
This file was deleted.

Manifest.toml

Lines changed: 0 additions & 2 deletions
This file was deleted.

src/float8.jl

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -198,22 +198,12 @@ function prevfloat(x::T) where {T<:AbstractFloat8}
198198
end
199199
end
200200

201-
promote_rule(::Type{Float8}, ::Type{Float64}) = Float64
202-
promote_rule(::Type{Float8}, ::Type{Float32}) = Float32
203-
promote_rule(::Type{Float8}, ::Type{Float16}) = Float16
204-
205-
promote_rule(::Type{Float8}, ::Type{Int64}) = Float8
206-
promote_rule(::Type{Float8}, ::Type{Int32}) = Float8
207-
promote_rule(::Type{Float8}, ::Type{Int16}) = Float8
208-
209-
promote_rule(::Type{Float8}, ::Type{Bool}) = Float8
210-
211-
promote_rule(::Type{Float8_4}, ::Type{Float64}) = Float64
212-
promote_rule(::Type{Float8_4}, ::Type{Float32}) = Float32
213-
promote_rule(::Type{Float8_4}, ::Type{Float16}) = Float16
214-
215-
promote_rule(::Type{Float8_4}, ::Type{Int64}) = Float8
216-
promote_rule(::Type{Float8_4}, ::Type{Int32}) = Float8
217-
promote_rule(::Type{Float8_4}, ::Type{Int16}) = Float8
218-
219-
promote_rule(::Type{Float8_4}, ::Type{Bool}) = Float8
201+
Base.promote_rule(::Type{Float8},::Type{Float16}) = Float16
202+
Base.promote_rule(::Type{Float8},::Type{Float32}) = Float32
203+
Base.promote_rule(::Type{Float8},::Type{Float64}) = Float64
204+
Base.promote_rule(::Type{Float8},::Type{<:Integer}) = Float8
205+
206+
Base.promote_rule(::Type{Float8_4},::Type{Float16}) = Float16
207+
Base.promote_rule(::Type{Float8_4},::Type{Float32}) = Float32
208+
Base.promote_rule(::Type{Float8_4},::Type{Float64}) = Float64
209+
Base.promote_rule(::Type{Float8_4},::Type{<:Integer}) = Float8_4

test/runtests.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,3 +342,13 @@ end
342342
@test -zero(Float8) == sign(-zero(Float8))
343343
@test -zero(Float8_4) == sign(-zero(Float8_4))
344344
end
345+
346+
@testset "Promotion" begin
347+
@test Float8(2)*Float16(2) == Float16(4)
348+
@test Float8(2)*Float32(2) == Float32(4)
349+
@test Float8(2)*Float64(2) == Float64(4)
350+
351+
@test true*Float8(2) == Float8(2)
352+
@test false*Float8(2) == zero(Float8)
353+
@test 2*Float8(2) == Float8(4)
354+
end

0 commit comments

Comments
 (0)