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.
Addresses #12 by implementing
rrule
s forA * s, s * A, A / b
whereA
is anAbstractArray
,s
is a scalar, and at least oneeltype(A)
oreltype(s)
is aUnitful.Quantity
.This was a little tricky because we had to define two different
rrule
s so as to not overwrite the default methods forCommutativeMulNumber
inChainRules.jl
. The definitions here guarantee that:Quantity{T,D,U} where T <: Union{Real,Complex}
for allQuantity
s involved, basically enforcing theCommutativeMulNumber
requirement on the backing valueQuantity
involved, either in theAbstractArray
or the scalar. This means we do not invalidateChainRules.jl
. This lets us e.g. multiply an array ofQuantity
s by a scalar