From 19a999cbd514f7adc6c233485606505de92fe0d5 Mon Sep 17 00:00:00 2001 From: Maxence Gollier Date: Fri, 23 Jan 2026 09:28:25 -0500 Subject: [PATCH 1/2] remove @. macro in lsr1 push! --- src/lsr1.jl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lsr1.jl b/src/lsr1.jl index 7445cb84..7319fb29 100644 --- a/src/lsr1.jl +++ b/src/lsr1.jl @@ -136,7 +136,7 @@ function push!(op::LSR1Operator, s::AbstractVector, y::AbstractVector) sufficient_curvature = abs(ys) ≥ ϵ * yNorm * sNorm if sufficient_curvature scaling_factor = ys / yy - @. data.tmp = y - s / scaling_factor + data.tmp .= y .- s ./ scaling_factor scaling_condition = norm(data.tmp) >= ϵ * yNorm * sNorm end end @@ -161,12 +161,12 @@ function push!(op::LSR1Operator, s::AbstractVector, y::AbstractVector) for i = 1:(data.mem) k = mod(data.insert + i - 2, data.mem) + 1 if data.ys[k] != 0 - @. data.a[k] = data.y[k] - data.s[k] / data.scaling_factor # = y - B₀ * s + data.a[k] .= data.y[k] .- data.s[k] ./ data.scaling_factor # = y - B₀ * s for j = 1:(i - 1) l = mod(data.insert + j - 2, data.mem) + 1 if data.ys[l] != 0 as = dot(data.a[l], data.s[k]) / data.as[l] - @. data.a[k] -= as * data.a[l] + data.a[k] .-= as .* data.a[l] end end data.as[k] = dot(data.a[k], data.s[k]) From 4c2966065508243791f9b85959fbddffb671f1a2 Mon Sep 17 00:00:00 2001 From: Maxence Gollier Date: Fri, 23 Jan 2026 09:28:52 -0500 Subject: [PATCH 2/2] remove @. macro from lbfgs operations --- src/lbfgs.jl | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/lbfgs.jl b/src/lbfgs.jl index 33f04a2e..e933b7b9 100644 --- a/src/lbfgs.jl +++ b/src/lbfgs.jl @@ -129,7 +129,7 @@ function InverseLBFGSOperator(T::Type, n::I; kwargs...) where {I <: Integer} if data.ys[k] != 0 αk = dot(data.s[k], q) / data.ys[k] data.α[k] = αk - @. q -= αk * data.y[k] + q .-= αk .* data.y[k] end end @@ -140,7 +140,7 @@ function InverseLBFGSOperator(T::Type, n::I; kwargs...) where {I <: Integer} if data.ys[k] != 0 αk = data.α[k] β = αk - dot(data.y[k], q) / data.ys[k] - @. q += β * data.s[k] + q .+= β .* data.s[k] end end if βm == zero(T2) @@ -188,7 +188,7 @@ function LBFGSOperator(T::Type, n::I; kwargs...) where {I <: Integer} if data.ys[k] != 0 ax = dot(data.a[k], x) bx = dot(data.b[k], x) - @. q += bx .* data.b[k] - ax .* data.a[k] + q .+= bx .* data.b[k] .- ax .* data.a[k] end end if β == zero(T2) @@ -221,12 +221,12 @@ function push_common!( # Update arrays a and b used in forward products. if !op.inverse - @. data.b[insert] = y / sqrt(ys) + data.b[insert] .= y ./ sqrt(ys) @inbounds for i = 1:(data.mem) k = mod(insert + i - 1, data.mem) + 1 if data.ys[k] != 0 - @. data.a[k] = data.s[k] / data.scaling_factor # B₀ = I / γ. + data.a[k] .= data.s[k] ./ data.scaling_factor # B₀ = I / γ. @inbounds for j = 1:(i - 1) l = mod(insert + j - 1, data.mem) + 1 @@ -303,7 +303,7 @@ function push!( damp = true end if damp - @. y = θ * y + (1 - θ) * Bs # damped y + y = θ .* y .+ (1 - θ) .* Bs # damped y ys = θ * ys + (1 - θ) * sBs end @@ -328,7 +328,7 @@ function push!( σ₃ = op.data.σ₃ # Powell's damped update strategy - @. Bs = -α * g + Bs .= -α .* g sBs = dot(s, Bs) damp = false if ys < (1 - σ₂) * sBs @@ -339,7 +339,7 @@ function push!( damp = true end if damp - @. y = θ * y + (1 - θ) * Bs # damped y + y .= θ .* y .+ (1 - θ) .* Bs # damped y ys = θ * ys + (1 - θ) * sBs end @@ -378,7 +378,7 @@ function diag!(op::LBFGSOperator{T}, d) where {T} @inbounds for i = 1:(data.mem) k = mod(data.insert + i - 2, data.mem) + 1 if data.ys[k] != 0 - @. d += data.b[k] .^ 2 - data.a[k] .^ 2 + d .+= data.b[k] .^ 2 .- data.a[k] .^ 2 end end return d