Skip to content

Commit

Permalink
use convert instead of Vector(x)
Browse files Browse the repository at this point in the history
If x is already a Vector{Float64} and y = convert(Vector{Float64}, x),
then x == y and x === y, which isn't true if y = Vector{Float64}(x).
  • Loading branch information
dpo committed Aug 1, 2022
1 parent 464d610 commit 0c8951d
Showing 1 changed file with 24 additions and 24 deletions.
48 changes: 24 additions & 24 deletions src/julia_interface.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ using NLPModels, SparseArrays

function NLPModels.objcons(nlp::CUTEstModel, x::AbstractVector)
c = Vector{Float64}(undef, nlp.meta.ncon)
objcons!(nlp, Vector{Float64}(x), c)
objcons!(nlp, convert(Vector{Float64}, x), c)
end

function NLPModels.objcons!(
Expand Down Expand Up @@ -47,24 +47,24 @@ function NLPModels.objcons!(
end

function NLPModels.objcons!(nlp::CUTEstModel, x::AbstractVector, c::StrideOneVector{Float64})
objcons!(nlp, Vector{Float64}(x), c)
objcons!(nlp, convert(Vector{Float64}, x), c)
end

function NLPModels.objcons!(nlp::CUTEstModel, x::AbstractVector, c::AbstractVector)
m = nlp.meta.ncon
if m > 0
cc = zeros(m)
f, _ = objcons!(nlp, Vector{Float64}(x), cc)
f, _ = objcons!(nlp, convert(Vector{Float64}, x), cc)
c .= cc
return f, c
else
return objcons!(nlp, Vector{Float64}(x), zeros(0))
return objcons!(nlp, convert(Vector{Float64}, x), zeros(0))
end
end

function NLPModels.objgrad(nlp::CUTEstModel, x::AbstractVector)
g = Vector{Float64}(undef, nlp.meta.nvar)
objgrad!(nlp, Vector{Float64}(x), g)
objgrad!(nlp, convert(Vector{Float64}, x), g)
end

function NLPModels.objgrad!(
Expand Down Expand Up @@ -110,12 +110,12 @@ function NLPModels.objgrad!(
end

function NLPModels.objgrad!(nlp::CUTEstModel, x::AbstractVector, g::StrideOneVector{Float64})
objgrad!(nlp, Vector{Float64}(x), g)
objgrad!(nlp, convert(Vector{Float64}, x), g)
end

function NLPModels.objgrad!(nlp::CUTEstModel, x::AbstractVector, g::AbstractVector)
gc = zeros(nlp.meta.nvar)
f, _ = objgrad!(nlp, Vector{Float64}(x), gc)
gc = Vector{Float64}(undef, nlp.meta.nvar)
f, _ = objgrad!(nlp, convert(Vector{Float64}, x), gc)
g[1:(nlp.meta.nvar)] .= gc
return f, g
end
Expand Down Expand Up @@ -211,7 +211,7 @@ function cons_coord!(
cols_ = Vector{Int32}(undef, nlp.meta.nnzj)
vals_ = Vector{Float64}(undef, nlp.meta.nnzj)
c_ = Vector{Float64}(undef, nlp.meta.ncon)
cons_coord!(nlp, Vector{Float64}(x), c_, rows_, cols_, vals_)
cons_coord!(nlp, convert(Vector{Float64}, x), c_, rows_, cols_, vals_)
rows[1:(nlp.meta.nnzj)] .= rows_
cols[1:(nlp.meta.nnzj)] .= cols_
vals[1:(nlp.meta.nnzj)] .= vals_
Expand Down Expand Up @@ -244,7 +244,7 @@ function cons_coord(nlp::CUTEstModel, x::StrideOneVector{Float64})
end

function cons_coord(nlp::CUTEstModel, x::AbstractVector)
cons_coord(nlp, Vector{Float64}(x))
cons_coord(nlp, convert(Vector{Float64}, x))
end

"""
Expand Down Expand Up @@ -386,7 +386,7 @@ function NLPModels.jprod!(
v::AbstractVector,
jv::StrideOneVector{Float64},
)
jprod!(nlp, Vector{Float64}(x), Vector{Float64}(v), jv)
jprod!(nlp, convert(Vector{Float64}, x), convert(Vector{Float64}, v), jv)
end

function NLPModels.jprod!(
Expand All @@ -396,7 +396,7 @@ function NLPModels.jprod!(
jv::AbstractVector,
)
jvc = zeros(nlp.meta.ncon)
jprod!(nlp, Vector{Float64}(x), Vector{Float64}(v), jvc)
jprod!(nlp, convert(Vector{Float64}, x), convert(Vector{Float64}, v), jvc)
jv[1:(nlp.meta.ncon)] .= jvc
end

Expand Down Expand Up @@ -448,7 +448,7 @@ function NLPModels.jtprod!(
v::AbstractVector,
jtv::StrideOneVector{Float64},
)
jtprod!(nlp, Vector{Float64}(x), Vector{Float64}(v), jtv)
jtprod!(nlp, convert(Vector{Float64}, x), convert(Vector{Float64}, v), jtv)
end

function NLPModels.jtprod!(
Expand All @@ -458,7 +458,7 @@ function NLPModels.jtprod!(
jtv::AbstractVector,
)
jtvc = zeros(nlp.meta.nvar)
jtprod!(nlp, Vector{Float64}(x), Vector{Float64}(v), jtvc)
jtprod!(nlp, convert(Vector{Float64}, x), convert(Vector{Float64}, v), jtvc)
jtv[1:(nlp.meta.nvar)] .= jtvc
end

Expand Down Expand Up @@ -672,7 +672,7 @@ function NLPModels.hess_coord!(
obj_weight::Float64 = 1.0,
)
vals_ = Vector{Float64}(undef, nlp.meta.nnzh)
NLPModels.hess_coord!(nlp, Vector{Float64}(x), Vector{Float64}(y), vals_, obj_weight = obj_weight)
NLPModels.hess_coord!(nlp, convert(Vector{Float64}, x), convert(Vector{Float64}, y), vals_, obj_weight = obj_weight)
vals[1:(nlp.meta.nnzh)] .= vals_
return vals
end
Expand Down Expand Up @@ -782,9 +782,9 @@ function NLPModels.hprod!(
)
hprod!(
nlp,
Vector{Float64}(x),
Vector{Float64}(y),
Vector{Float64}(v),
convert(Vector{Float64}, x),
convert(Vector{Float64}, y),
convert(Vector{Float64}, v),
hv,
obj_weight = obj_weight,
)
Expand All @@ -801,9 +801,9 @@ function NLPModels.hprod!(
hvc = zeros(nlp.meta.nvar)
hprod!(
nlp,
Vector{Float64}(x),
Vector{Float64}(y),
Vector{Float64}(v),
convert(Vector{Float64}, x),
convert(Vector{Float64}, y),
convert(Vector{Float64}, v),
hvc,
obj_weight = obj_weight,
)
Expand All @@ -819,9 +819,9 @@ function NLPModels.hprod!(
)
hprod!(
nlp,
Vector{Float64}(x),
convert(Vector{Float64}, x),
zeros(nlp.meta.ncon),
Vector{Float64}(v),
convert(Vector{Float64}, v),
hv,
obj_weight = obj_weight,
)
Expand All @@ -835,6 +835,6 @@ function NLPModels.hprod!(
obj_weight::Float64 = 1.0,
)
hvc = zeros(nlp.meta.nvar)
hprod!(nlp, Vector{Float64}(x), Vector{Float64}(v), hvc, obj_weight = obj_weight)
hprod!(nlp, convert(Vector{Float64}, x), convert(Vector{Float64}, v), hvc, obj_weight = obj_weight)
hv[1:(nlp.meta.nvar)] .= hvc
end

0 comments on commit 0c8951d

Please sign in to comment.