From 21e075be844510a174302ab8ad8455dd04d24140 Mon Sep 17 00:00:00 2001 From: Pablo Zubieta Date: Tue, 1 Aug 2017 17:35:46 -0500 Subject: [PATCH] Improve choosing dividing axis direction --- src/genz-malik.jl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/genz-malik.jl b/src/genz-malik.jl index f2ca0c5..83c14c6 100644 --- a/src/genz-malik.jl +++ b/src/genz-malik.jl @@ -114,9 +114,9 @@ error `E` (via the given `norm`), and the suggested coordinate `k` ∈ `1:n` to subdivide next. """ function (g::GenzMalik{n,T})(f, a::SVector{n}, b::SVector{n}, norm=vecnorm) where {n,T} - c = (a+b)*T(0.5) - Δ = (b-a)*T(0.5) - V = abs(prod(Δ)) + c = T(0.5).*(a.+b) + Δ = T(0.5).*abs.(b.-a) + V = prod(Δ) f₁ = f(c) @@ -138,6 +138,8 @@ function (g::GenzMalik{n,T})(f, a::SVector{n}, b::SVector{n}, norm=vecnorm) wher if divdiff > maxdivdiff kdivide = i maxdivdiff = divdiff + elseif divdiff == maxdivdiff && Δ[i] > Δ[kdivide] + kdivide = i end end