Skip to content

Commit dff6849

Browse files
committed
Use LazyFloat64 in SymbolicDimensions as well
1 parent 3cb83b0 commit dff6849

File tree

2 files changed

+16
-12
lines changed

2 files changed

+16
-12
lines changed

src/symbolic_dimensions.jl

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import .Units: UNIT_SYMBOLS, UNIT_MAPPING, UNIT_VALUES
1+
import .Units: UNIT_SYMBOLS, UNIT_MAPPING, UNIT_VALUES, DEFAULT_UNIT_BASE_TYPE
22
import .Constants: CONSTANT_SYMBOLS, CONSTANT_MAPPING, CONSTANT_VALUES
3+
import ..DEFAULT_DIM_BASE_TYPE
34

45
const SYMBOL_CONFLICTS = intersect(UNIT_SYMBOLS, CONSTANT_SYMBOLS)
56

@@ -93,6 +94,8 @@ function Base.convert(::Type{Quantity{T,D}}, q::Quantity{<:Any,<:SymbolicDimensi
9394
return result
9495
end
9596

97+
const DEFAULT_SYMBOLIC_UNIT_TYPE = Quantity{DEFAULT_UNIT_BASE_TYPE,SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}}
98+
9699
"""
97100
uexpand(q::Quantity{<:Any,<:SymbolicDimensions})
98101
@@ -269,20 +272,22 @@ module SymbolicUnitsParse
269272
import ..CONSTANT_SYMBOLS
270273
import ..SYMBOL_CONFLICTS
271274
import ..SymbolicDimensions
275+
import ..DEFAULT_SYMBOLIC_UNIT_TYPE
276+
import ..DEFAULT_UNIT_BASE_TYPE
277+
import ..DEFAULT_DIM_BASE_TYPE
272278

273279
import ...Quantity
274-
import ...DEFAULT_VALUE_TYPE
275-
import ...DEFAULT_DIM_BASE_TYPE
276280

277281
# Lazily create unit symbols (since there are so many)
278282
module Constants
279283
import ..CONSTANT_SYMBOLS
280284
import ..SYMBOL_CONFLICTS
281285
import ..SymbolicDimensions
286+
import ..DEFAULT_SYMBOLIC_UNIT_TYPE
287+
import ..DEFAULT_UNIT_BASE_TYPE
288+
import ..DEFAULT_DIM_BASE_TYPE
282289

283290
import ..Quantity
284-
import ..DEFAULT_VALUE_TYPE
285-
import ..DEFAULT_DIM_BASE_TYPE
286291

287292
import ...Constants as EagerConstants
288293

@@ -292,11 +297,11 @@ module SymbolicUnitsParse
292297
CONSTANT_SYMBOLS_EXIST[] || lock(CONSTANT_SYMBOLS_LOCK) do
293298
CONSTANT_SYMBOLS_EXIST[] && return nothing
294299
for unit in setdiff(CONSTANT_SYMBOLS, SYMBOL_CONFLICTS)
295-
@eval const $unit = Quantity(DEFAULT_VALUE_TYPE(1.0), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $(unit)=1)
300+
@eval const $unit = Quantity(DEFAULT_UNIT_BASE_TYPE(1.0), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $(unit)=1)
296301
end
297302
# Evaluate conflicting symbols to non-symbolic form:
298303
for unit in SYMBOL_CONFLICTS
299-
@eval const $unit = convert(Quantity{DEFAULT_VALUE_TYPE,SymbolicDimensions}, EagerConstants.$unit)
304+
@eval const $unit = convert(DEFAULT_SYMBOLIC_UNIT_TYPE, EagerConstants.$unit)
300305
end
301306
CONSTANT_SYMBOLS_EXIST[] = true
302307
end
@@ -311,7 +316,7 @@ module SymbolicUnitsParse
311316
UNIT_SYMBOLS_EXIST[] || lock(UNIT_SYMBOLS_LOCK) do
312317
UNIT_SYMBOLS_EXIST[] && return nothing
313318
for unit in UNIT_SYMBOLS
314-
@eval const $unit = Quantity(DEFAULT_VALUE_TYPE(1.0), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $(unit)=1)
319+
@eval const $unit = Quantity(DEFAULT_UNIT_BASE_TYPE(1.0), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}; $(unit)=1)
315320
end
316321
UNIT_SYMBOLS_EXIST[] = true
317322
end
@@ -338,11 +343,11 @@ module SymbolicUnitsParse
338343
_generate_unit_symbols()
339344
Constants._generate_unit_symbols()
340345
raw_result = eval(Meta.parse(raw_string))
341-
return copy(as_quantity(raw_result))::Quantity{DEFAULT_VALUE_TYPE,SymbolicDimensions{DEFAULT_DIM_BASE_TYPE}}
346+
return copy(as_quantity(raw_result))::DEFAULT_SYMBOLIC_UNIT_TYPE
342347
end
343348

344-
as_quantity(q::Quantity) = q
345-
as_quantity(x::Number) = Quantity(convert(DEFAULT_VALUE_TYPE, x), SymbolicDimensions{DEFAULT_DIM_BASE_TYPE})
349+
as_quantity(q::Quantity) = convert(DEFAULT_SYMBOLIC_UNIT_TYPE, q)
350+
as_quantity(x::Number) = DEFAULT_SYMBOLIC_UNIT_TYPE(x)
346351
as_quantity(x) = error("Unexpected type evaluated: $(typeof(x))")
347352
end
348353

src/uparse.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ end
3535

3636
as_quantity(q::Quantity) = convert(DEFAULT_UNIT_TYPE, q)
3737
as_quantity(x::Number) = DEFAULT_UNIT_TYPE(x)
38-
# Quantity(convert(DEFAULT_VALUE_TYPE, x), DEFAULT_DIM_TYPE)
3938
as_quantity(x) = error("Unexpected type evaluated: $(typeof(x))")
4039

4140
"""

0 commit comments

Comments
 (0)