Skip to content

Commit aebad13

Browse files
committed
Propagate validity through + and -
1 parent 65ff5bd commit aebad13

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/math.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ Base.:/(l::Number, r::Quantity) = l * inv(r)
1616
Base.:/(l::Dimensions, r::Number) = Quantity(inv(r), l, true)
1717
Base.:/(l::Number, r::Dimensions) = Quantity(l, inv(r), true)
1818

19-
Base.:+(l::Quantity, r::Quantity) = Quantity(l.value + r.value, l.dimensions, l.dimensions == r.dimensions)
20-
Base.:-(l::Quantity, r::Quantity) = Quantity(l.value - r.value, l.dimensions, l.dimensions == r.dimensions)
19+
Base.:+(l::Quantity, r::Quantity) = Quantity(l.value + r.value, l.dimensions, l.valid && r.valid && l.dimensions == r.dimensions)
20+
Base.:-(l::Quantity, r::Quantity) = Quantity(l.value - r.value, l.dimensions, l.valid && r.valid && l.dimensions == r.dimensions)
2121

2222
Base.:^(l::Quantity, r::Quantity) =
2323
let rr = tryrationalize(Int, r.value)
@@ -38,4 +38,4 @@ Base.sqrt(q::Quantity) = Quantity(sqrt(q.value), sqrt(q.dimensions), q.valid)
3838
Base.cbrt(d::Dimensions) = d^(1 // 3)
3939
Base.cbrt(q::Quantity) = Quantity(cbrt(q.value), cbrt(q.dimensions), q.valid)
4040

41-
Base.abs(q::Quantity) = Quantity(abs(q.value), q.dimensions, q.valid)
41+
Base.abs(q::Quantity) = Quantity(abs(q.value), q.dimensions, q.valid)

0 commit comments

Comments
 (0)