@@ -106,6 +106,7 @@ function expand_units(q::Q) where {T,R,D<:SymbolicDimensions{R},Q<:AbstractQuant
106
106
return convert (constructor_of (Q){T,Dimensions{R}}, q)
107
107
end
108
108
expand_units (q:: QuantityArray ) = expand_units .(q)
109
+ # TODO : Make the array-based one more efficient
109
110
110
111
"""
111
112
uconvert(qout::AbstractQuantity{<:Any, <:SymbolicDimensions}, q::AbstractQuantity{<:Any, <:Dimensions})
@@ -121,6 +122,14 @@ function uconvert(qout::AbstractQuantity{<:Any, <:SymbolicDimensions}, q::Abstra
121
122
new_dim = dimension (qout)
122
123
return new_quantity (typeof (q), new_val, new_dim)
123
124
end
125
+ function uconvert (qout:: AbstractQuantity{<:Any,<:SymbolicDimensions} , q:: QuantityArray{<:Any,<:Any,<:Dimensions} )
126
+ qout_expanded = expand_units (qout)
127
+ dimension (q) == dimension (qout_expanded) || throw (DimensionError (q, qout_expanded))
128
+ new_array = ustrip (q) ./ ustrip (qout_expanded)
129
+ new_dim = dimension (qout)
130
+ return QuantityArray (new_array, new_dim, quantity_type (q))
131
+ end
132
+ # TODO : Method for converting SymbolicDimensions -> SymbolicDimensions
124
133
125
134
"""
126
135
uconvert(qout::AbstractQuantity{<:Any, <:SymbolicDimensions})
0 commit comments