Skip to content

Commit 51e46d6

Browse files
committed
Rename LazyFloat64 -> AutoFloat
1 parent dff6849 commit 51e46d6

File tree

2 files changed

+25
-25
lines changed

2 files changed

+25
-25
lines changed

src/lazy_float.jl

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,36 @@
11
# This is used to store floats without forcing promotion on other
22
# numeric types.
3-
struct LazyFloat64 <: AbstractFloat
3+
struct AutoFloat <: AbstractFloat
44
value::Float64
55

6-
LazyFloat64(x::AbstractFloat) = new(convert(Float64, x))
6+
AutoFloat(x::AbstractFloat) = new(convert(Float64, x))
77
end
88

9-
Base.float(x::LazyFloat64) = x.value
9+
Base.float(x::AutoFloat) = x.value
1010

11-
Base.convert(::Type{LazyFloat64}, x::LazyFloat64) = x
12-
Base.convert(::Type{LazyFloat64}, x::FixedRational) = LazyFloat64(convert(Float64, x))
13-
Base.convert(::Type{LazyFloat64}, x::Number) = LazyFloat64(x)
14-
Base.convert(::Type{T}, x::LazyFloat64) where {T<:Number} = convert(T, float(x))
15-
Base.promote_rule(::Type{LazyFloat64}, ::Type{T}) where {T<:AbstractFloat} = T
16-
Base.promote_rule(::Type{LazyFloat64}, ::Type{T}) where {T} = promote_type(Float64, T)
11+
Base.convert(::Type{AutoFloat}, x::AutoFloat) = x
12+
Base.convert(::Type{AutoFloat}, x::FixedRational) = AutoFloat(convert(Float64, x))
13+
Base.convert(::Type{AutoFloat}, x::Number) = AutoFloat(x)
14+
Base.convert(::Type{T}, x::AutoFloat) where {T<:Number} = convert(T, float(x))
15+
Base.promote_rule(::Type{AutoFloat}, ::Type{T}) where {T<:AbstractFloat} = T
16+
Base.promote_rule(::Type{AutoFloat}, ::Type{T}) where {T} = promote_type(Float64, T)
1717

18-
Base.show(io::IO, x::LazyFloat64) = print(io, float(x))
18+
Base.show(io::IO, x::AutoFloat) = print(io, float(x))
1919

20-
Base.:+(a::LazyFloat64, b::LazyFloat64) = LazyFloat64(float(a) + float(b))
21-
Base.:-(a::LazyFloat64) = LazyFloat64(-float(a))
22-
Base.:-(a::LazyFloat64, b::LazyFloat64) = LazyFloat64(float(a) - float(b))
23-
Base.:*(a::LazyFloat64, b::LazyFloat64) = LazyFloat64(float(a) * float(b))
24-
Base.inv(a::LazyFloat64) = LazyFloat64(inv(float(a)))
25-
Base.abs(a::LazyFloat64) = LazyFloat64(abs(float(a)))
26-
Base.:/(a::LazyFloat64, b::LazyFloat64) = a * inv(b)
27-
Base.:^(a::LazyFloat64, b::Int) = LazyFloat64(float(a) ^ b)
28-
Base.:^(a::LazyFloat64, b::LazyFloat64) = LazyFloat64(float(a) ^ float(b))
29-
Base.sqrt(a::LazyFloat64) = LazyFloat64(sqrt(float(a)))
30-
Base.cbrt(a::LazyFloat64) = LazyFloat64(cbrt(float(a)))
31-
Base.eps(::Type{LazyFloat64}) = eps(Float64)
20+
Base.:+(a::AutoFloat, b::AutoFloat) = AutoFloat(float(a) + float(b))
21+
Base.:-(a::AutoFloat) = AutoFloat(-float(a))
22+
Base.:-(a::AutoFloat, b::AutoFloat) = AutoFloat(float(a) - float(b))
23+
Base.:*(a::AutoFloat, b::AutoFloat) = AutoFloat(float(a) * float(b))
24+
Base.inv(a::AutoFloat) = AutoFloat(inv(float(a)))
25+
Base.abs(a::AutoFloat) = AutoFloat(abs(float(a)))
26+
Base.:/(a::AutoFloat, b::AutoFloat) = a * inv(b)
27+
Base.:^(a::AutoFloat, b::Int) = AutoFloat(float(a) ^ b)
28+
Base.:^(a::AutoFloat, b::AutoFloat) = AutoFloat(float(a) ^ float(b))
29+
Base.sqrt(a::AutoFloat) = AutoFloat(sqrt(float(a)))
30+
Base.cbrt(a::AutoFloat) = AutoFloat(cbrt(float(a)))
31+
Base.eps(::Type{AutoFloat}) = eps(Float64)
3232

3333
# Ambiguities:
3434
for T in (:(Rational{<:Any}), :(Base.TwicePrecision), :AbstractChar, :Complex, :Number)
35-
@eval LazyFloat64(x::$T) = LazyFloat64(float(x))
35+
@eval AutoFloat(x::$T) = AutoFloat(float(x))
3636
end

src/units.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import ..DEFAULT_DIM_TYPE
44
import ..DEFAULT_VALUE_TYPE
55
import ..Quantity
66
import ..Quantity
7-
import ..LazyFloat64
7+
import ..AutoFloat
88

9-
const DEFAULT_UNIT_BASE_TYPE = LazyFloat64
9+
const DEFAULT_UNIT_BASE_TYPE = AutoFloat
1010
const DEFAULT_UNIT_TYPE = Quantity{DEFAULT_UNIT_BASE_TYPE,DEFAULT_DIM_TYPE}
1111

1212
const _UNIT_SYMBOLS = Symbol[]

0 commit comments

Comments
 (0)