Skip to content

Commit b5adba8

Browse files
Ensure order of operations(?)
Rather than rely on a mixture of operator precedence and constprop to evalute and insert the value of `1/p` into the anonymous function, just use parentheses.
1 parent 9b5280e commit b5adba8

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

src/vdistance.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77

88
# Distances
99
_vminkowski(x, y, p::T, dims=:) where {T<:Integer} =
10-
vmapreducethen((xᵢ, yᵢ) -> abs(xᵢ - yᵢ)^p, +, x -> exp(one(T)/p * log(abs(x))), x, y, dims=dims)
10+
vmapreducethen((xᵢ, yᵢ) -> abs(xᵢ - yᵢ)^p, +, x -> exp((one(T)/p) * log(abs(x))), x, y, dims=dims)
1111
_vminkowski(x, y, p::T, dims=:) where {T<:AbstractFloat} =
12-
vmapreducethen((xᵢ, yᵢ) -> exp(p * log(abs(xᵢ - yᵢ))), +, x -> exp(one(T)/p * log(abs(x))), x, y, dims=dims)
12+
vmapreducethen((xᵢ, yᵢ) -> exp(p * log(abs(xᵢ - yᵢ))), +, x -> exp((one(T)/p) * log(abs(x))), x, y, dims=dims)
1313
_vminkowski(x, y, p::Rational{T}, dims=:) where {T} = _vminkowski(x, y, float(p), dims=dims)
1414

1515
"""
@@ -39,9 +39,9 @@ function vminkowski(x, y, p::Real; dims=:)
3939
end
4040

4141
_vtminkowski(x, y, p::T, dims=:) where {T<:Integer} =
42-
vtmapreducethen((xᵢ, yᵢ) -> abs(xᵢ - yᵢ)^p, +, x -> exp(one(T)/p * log(abs(x))), x, y, dims=dims)
42+
vtmapreducethen((xᵢ, yᵢ) -> abs(xᵢ - yᵢ)^p, +, x -> exp((one(T)/p) * log(abs(x))), x, y, dims=dims)
4343
_vtminkowski(x, y, p::T, dims=:) where {T<:AbstractFloat} =
44-
vtmapreducethen((xᵢ, yᵢ) -> exp(p * log(abs(xᵢ - yᵢ))), +, x -> exp(one(T)/p * log(abs(x))), x, y, dims=dims)
44+
vtmapreducethen((xᵢ, yᵢ) -> exp(p * log(abs(xᵢ - yᵢ))), +, x -> exp((one(T)/p) * log(abs(x))), x, y, dims=dims)
4545
_vtminkowski(x, y, p::Rational{T}, dims=:) where {T} = _vtminkowski(x, y, float(p), dims=dims)
4646

4747
"""

src/vnorm.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ Base.@constprop :aggressive function _vnorm(A, p, dims)
2727
end
2828
end
2929
_vnorm_impl(A, p::T, dims) where {T<:Integer} =
30-
vmapreducethen(x -> abs(x)^p, +, x -> exp(one(T)/p * log(abs(x))), A, dims=dims)
30+
vmapreducethen(x -> abs(x)^p, +, x -> exp((one(T)/p) * log(abs(x))), A, dims=dims)
3131
_vnorm_impl(A, p::T, dims) where {T<:AbstractFloat} =
32-
vmapreducethen(x -> exp(p * log(abs(x))), +, x -> exp(one(T)/p * log(abs(x))), A, dims=dims)
32+
vmapreducethen(x -> exp(p * log(abs(x))), +, x -> exp((one(T)/p) * log(abs(x))), A, dims=dims)
3333

3434
"""
3535
vnorm(A::AbstractArray, p::Real=2; dims=:)
@@ -60,9 +60,9 @@ Base.@constprop :aggressive function _vtnorm(A, p, dims)
6060
end
6161
end
6262
_vtnorm_impl(A, p::T, dims) where {T<:Integer} =
63-
vtmapreducethen(x -> abs(x)^p, +, x -> exp(one(T)/p * log(abs(x))), A, dims=dims)
63+
vtmapreducethen(x -> abs(x)^p, +, x -> exp((one(T)/p) * log(abs(x))), A, dims=dims)
6464
_vtnorm_impl(A, p::T, dims) where {T<:AbstractFloat} =
65-
vtmapreducethen(x -> exp(p * log(abs(x))), +, x -> exp(one(T)/p * log(abs(x))), A, dims=dims)
65+
vtmapreducethen(x -> exp(p * log(abs(x))), +, x -> exp((one(T)/p) * log(abs(x))), A, dims=dims)
6666

6767
"""
6868
vtnorm(A::AbstractArray, p::Real=2; dims=:)

0 commit comments

Comments
 (0)