Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #364.
@maleadt this was the most minimal implementation I could come up with.
I override two functions:
Base.Math.exponent(::Base.IEEEFloat)
in order to avoid exception throws.Base.ssqs(x::T, y::T) where T<:Real
to avoid aUnion
type in type inference by changing this line tok = m==0 ? 0 : exponent(m)
.I wonder if 2. should be fixed in Base. The Base version effectively sets
k
tozero(m)
rather than0
ifiszero(m)
, howeverk
is supposed to beInt
anyway. The way that I changed it, it would probably mean that Base wouldn't need to have so many type asserts fork
(there is one inBase.ssqs
and one inBase.sqrt(z::Complex)
).