Skip to content

Commit ed07766

Browse files
oscardssmithpull[bot]
authored andcommitted
make MultiplicativeInverse<:Number (JuliaLang#48708)
* make `MultiplicativeInverse<:Number` This makes operations like `divrem.(3, Base.MultiplicativeInverses.multiplicativeinverse(3))` work.
1 parent a4cb5f1 commit ed07766

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

base/multinverses.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ unsigned(::Type{Int64}) = UInt64
1414
unsigned(::Type{Int128}) = UInt128
1515
unsigned(::Type{T}) where {T<:Unsigned} = T
1616

17-
abstract type MultiplicativeInverse{T} end
17+
abstract type MultiplicativeInverse{T} <: Number end
1818

1919
# Computes integer division by a constant using multiply, add, and bitshift.
2020

test/numbers.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2493,6 +2493,8 @@ Base.abs(x::TestNumber) = TestNumber(abs(x.inner))
24932493
@test_throws ArgumentError Base.multiplicativeinverse(0)
24942494
testmi(map(UInt32, 0:1000), map(UInt32, 1:100))
24952495
testmi(typemax(UInt32)-UInt32(1000):typemax(UInt32), map(UInt32, 1:100))
2496+
# test broadcasting works.
2497+
@test div.(3, Base.multiplicativeinverse(3)) == 1
24962498
end
24972499
@testset "ndims/indices/size/length" begin
24982500
@test ndims(1) == 0

0 commit comments

Comments
 (0)