Skip to content
This repository was archived by the owner on Jun 14, 2020. It is now read-only.

Commit d448b17

Browse files
carlobaldassiodow
authored andcommitted
Fixes for latest julia 0.7 (#36)
1 parent ebd36b1 commit d448b17

File tree

13 files changed

+61
-52
lines changed

13 files changed

+61
-52
lines changed

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ os:
55
# - osx
66
julia:
77
- 0.6
8-
# - nightly
8+
- 0.7
9+
- nightly
910
notifications:
1011
email: false
1112
git:

REQUIRE

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
julia 0.6
22
MathOptInterface 0.4 0.5
3+
Nullables
4+
Compat 0.59

appveyor.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ environment:
22
matrix:
33
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.6/julia-0.6-latest-win32.exe"
44
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.6/julia-0.6-latest-win64.exe"
5+
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x86/0.7/julia-0.7-latest-win32.exe"
6+
- JULIA_URL: "https://julialang-s3.julialang.org/bin/winnt/x64/0.7/julia-0.7-latest-win64.exe"
57
- JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x86/julia-latest-win32.exe"
68
- JULIA_URL: "https://julialangnightlies-s3.julialang.org/bin/winnt/x64/julia-latest-win64.exe"
79

src/LinQuadOptInterface.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
__precompile__()
99
module LinQuadOptInterface
1010

11+
using Nullables
12+
using Compat
13+
using Compat.SparseArrays
14+
1115
using MathOptInterface
1216
using MathOptInterface.Utilities
1317

src/constraints/scalaraffine.jl

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ end
3535

3636
function addlinearconstraint!(m::LinQuadOptimizer, func::Linear, sense::Cchar, rhs)
3737
if abs(func.constant) > eps(Float64)
38-
warn("Constant in scalar function moved into set.")
38+
Compat.@warn("Constant in scalar function moved into set.")
3939
end
4040
columns = [getcol(m, term.variable_index) for term in func.terms]
4141
coefficients = [term.coefficient for term in func.terms]
@@ -54,7 +54,7 @@ function MOI.addconstraints!(m::LinQuadOptimizer, func::Vector{Linear}, set::Vec
5454
@assert length(cfunc) == length(set)
5555
numrows = get_number_linear_constraints(m)
5656
addlinearconstraints!(m, cfunc, set)
57-
crefs = Vector{LCI{S}}(length(cfunc))
57+
crefs = Vector{LCI{S}}(undef, length(cfunc))
5858
for i in 1:length(cfunc)
5959
m.last_constraint_reference += 1
6060
ref = LCI{S}(m.last_constraint_reference)
@@ -69,7 +69,7 @@ function MOI.addconstraints!(m::LinQuadOptimizer, func::Vector{Linear}, set::Vec
6969
end
7070

7171
function addlinearconstraints!(m::LinQuadOptimizer, func::Vector{Linear}, set::Vector{S}) where S <: LinSets
72-
addlinearconstraints!(m, func, backend_type.(m,set), [_getrhs(s) for s in set])
72+
addlinearconstraints!(m, func, backend_type.(Ref(m),set), [_getrhs(s) for s in set])
7373
end
7474

7575
function addlinearconstraints!(m::LinQuadOptimizer, func::Vector{Linear}, set::Vector{IV})
@@ -79,15 +79,15 @@ function addlinearconstraints!(m::LinQuadOptimizer, func::Vector{Linear}, set::V
7979
nnz = 0
8080
for (i, f) in enumerate(func)
8181
if abs(f.constant) > eps(Float64)
82-
warn("Constant in scalar function moved into set.")
82+
Compat.@warn("Constant in scalar function moved into set.")
8383
lowerbounds[i] -= f.constant
8484
upperbounds[i] -= f.constant
8585
end
8686
nnz += length(f.terms)
8787
end
88-
row_pointers = Vector{Int}(length(func)) # index of start of each row
89-
columns = Vector{Int}(nnz) # flattened columns for each function
90-
coefficients = Vector{Float64}(nnz) # corresponding non-zeros
88+
row_pointers = Vector{Int}(undef, length(func)) # index of start of each row
89+
columns = Vector{Int}(undef, nnz) # flattened columns for each function
90+
coefficients = Vector{Float64}(undef, nnz) # corresponding non-zeros
9191
i = 1
9292
for (fi, f) in enumerate(func)
9393
row_pointers[fi] = i
@@ -106,14 +106,14 @@ function addlinearconstraints!(m::LinQuadOptimizer, func::Vector{Linear}, sense:
106106
nnz = 0
107107
for (i, f) in enumerate(func)
108108
if abs(f.constant) > eps(Float64)
109-
warn("Constant in scalar function moved into set.")
109+
Compat.@warn("Constant in scalar function moved into set.")
110110
rhs[i] -= f.constant
111111
end
112112
nnz += length(f.terms)
113113
end
114-
row_pointers = Vector{Int}(length(func)) # index of start of each row
115-
columns = Vector{Int}(nnz) # flattened columns for each function
116-
coefficients = Vector{Float64}(nnz) # corresponding non-zeros
114+
row_pointers = Vector{Int}(undef, length(func)) # index of start of each row
115+
columns = Vector{Int}(undef, nnz) # flattened columns for each function
116+
coefficients = Vector{Float64}(undef, nnz) # corresponding non-zeros
117117
i = 1
118118
for (row, f) in enumerate(func)
119119
row_pointers[row] = i

src/constraints/scalarquadratic.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ end
3030

3131
function addquadraticconstraint!(m::LinQuadOptimizer, f::Quad, sense::Cchar, rhs::Float64)
3232
if abs(f.constant) > 0
33-
warn("Constant in quadratic function. Moving into set")
33+
Compat.@warn("Constant in quadratic function. Moving into set")
3434
end
3535
quadratic_columns_1 = [getcol(m, term.variable_index_1) for term in f.quadratic_terms]
3636
quadratic_columns_2 = [getcol(m, term.variable_index_2) for term in f.quadratic_terms]

src/constraints/vectoraffine.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ function addlinearconstraint!(m::LinQuadOptimizer, func::VecLin, sense::Cchar)
3737
# check that there is at least a RHS for each row
3838
@assert maximum(outputindex) <= length(func.constants)
3939
# loop through to get starting position of each row
40-
row_pointers = Vector{Int}(length(func.constants))
40+
row_pointers = Vector{Int}(undef, length(func.constants))
4141
row_pointers[1] = 1
4242
row = 1
4343
for i in 2:length(pidx)

src/constraints/vectorofvariables.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ function MOI.addconstraint!(m::LinQuadOptimizer, func::VecVar, set::S) where S <
2222
rows = get_number_linear_constraints(m)
2323
n = MOI.dimension(set)
2424
add_linear_constraints!(m,
25-
CSRMatrix{Float64}(collect(1:n), getcol.(m, func.variables), ones(n)),
25+
CSRMatrix{Float64}(collect(1:n), getcol.(Ref(m), func.variables), ones(n)),
2626
fill(backend_type(m, set),n),
2727
zeros(n)
2828
)
@@ -86,7 +86,7 @@ end
8686

8787
function MOI.addconstraint!(m::LinQuadOptimizer, v::VecVar, sos::S) where S <: Union{MOI.SOS1, MOI.SOS2}
8888
make_problem_type_integer(m)
89-
add_sos_constraint!(m, getcol.(m, v.variables), sos.weights, backend_type(m, sos))
89+
add_sos_constraint!(m, getcol.(Ref(m), v.variables), sos.weights, backend_type(m, sos))
9090
m.last_constraint_reference += 1
9191
ref = VVCI{S}(m.last_constraint_reference)
9292
dict = constrdict(m, ref)

src/mockoptimizer.jl

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ mutable struct MockLinQuadModel # <: LinQuadOptInterface.LinQuadOptimizer
5858
ray_primal_solution::Vector{Float64}
5959
ray_primal_solution_stored::Vector{Vector{Float64}}
6060

61-
function MockLinQuadModel(env::Void,str::String="defaultname")
61+
function MockLinQuadModel(env::Nothing,str::String="defaultname")
6262
m = new()
6363

6464
m.sense = :minimize
@@ -117,7 +117,7 @@ function unload(from,to,warn = true)
117117
return out
118118
else
119119
if warn
120-
warn("cant solve this model no extra solution")
120+
Compat.@warn("cant solve this model no extra solution")
121121
end
122122
return to
123123
end
@@ -215,10 +215,10 @@ mutable struct MockLinQuadOptimizer <: LQOI.LinQuadOptimizer
215215
params::Dict{String,Any}
216216
l_rows::Vector{Int}
217217
q_rows::Vector{Int}
218-
MockLinQuadOptimizer(::Void) = new()
218+
MockLinQuadOptimizer(::Nothing) = new()
219219
end
220220

221-
LQOI.LinearQuadraticModel(::Type{MockLinQuadOptimizer},env::Void) = MockLinQuadModel(env,"defaultname")
221+
LQOI.LinearQuadraticModel(::Type{MockLinQuadOptimizer},env::Nothing) = MockLinQuadModel(env,"defaultname")
222222

223223
function MockLinQuadOptimizer(;kwargs...)
224224

@@ -275,15 +275,15 @@ backend_type(m::MockLinQuadOptimizer, ::Val{:Lowerbound}) = Cchar('L')
275275
function LQOI.change_variable_bounds!(instance::MockLinQuadOptimizer, colvec, valvec, sensevec)
276276

277277
lb_len = count(x->x==Cchar('L'), sensevec)
278-
LB_val = Array{Float64}(0)
278+
LB_val = Array{Float64}(undef, 0)
279279
sizehint!(LB_val, lb_len)
280-
LB_col = Array{Cint}(0)
280+
LB_col = Array{Cint}(undef, 0)
281281
sizehint!(LB_col, lb_len)
282282

283283
ub_len = count(x->x==Cchar('U'), sensevec)
284-
UB_val = Array{Float64}(0)
284+
UB_val = Array{Float64}(undef, 0)
285285
sizehint!(UB_val, ub_len)
286-
UB_col = Array{Cint}(0)
286+
UB_col = Array{Cint}(undef, 0)
287287
sizehint!(UB_col, ub_len)
288288

289289
if lb_len + ub_len != length(sensevec)
@@ -337,7 +337,7 @@ function LQOI.add_linear_constraints!(instance::MockLinQuadOptimizer, A::CSRMatr
337337
cols = size(instance.inner.A)[2]
338338
push!(rowvec,length(colvec)+1)
339339

340-
An = full(SparseMatrixCSC(cols,rows,rowvec,colvec,coefvec)')
340+
An = Array(SparseMatrixCSC(cols,rows,rowvec,colvec,coefvec)')
341341

342342
instance.inner.A = vcat(instance.inner.A,An)
343343

@@ -363,9 +363,9 @@ function LQOI.add_ranged_constraints!(instance::MockLinQuadOptimizer, A::CSRMatr
363363
cols = size(instance.inner.A)[2]
364364
push!(rowvec,length(colvec)+1)
365365

366-
# An = full(sparse(rowvec,colvec,coefvec,rows,cols))
366+
# An = Array(sparse(rowvec,colvec,coefvec,rows,cols))
367367
# @show cols,rows,rowvec,colvec,coefvec
368-
An = full(SparseMatrixCSC(cols,rows,rowvec,colvec,coefvec)')
368+
An = Array(SparseMatrixCSC(cols,rows,rowvec,colvec,coefvec)')
369369

370370
instance.inner.A = vcat(instance.inner.A,An)
371371

@@ -531,7 +531,7 @@ function LQOI.add_quadratic_constraint!(instance::MockLinQuadOptimizer, cols, co
531531
@assert length(I) == length(J) == length(V)
532532

533533
nvars = length(instance.inner.c)
534-
Q = full(sparse(I,J,V,nvars,nvars))
534+
Q = Array(sparse(I,J,V,nvars,nvars))
535535

536536
a = zeros(nvars)
537537
for i in eachindex(cols)
@@ -557,7 +557,7 @@ end
557557
function LQOI.set_quadratic_objective!(instance::MockLinQuadOptimizer, I, J, V)
558558
@assert length(I) == length(J) == length(V)
559559
n = num_vars(instance.inner)
560-
Q = full(sparse(I,J,V,n,n))
560+
Q = Array(sparse(I,J,V,n,n))
561561
# scalediagonal!(V, I, J, 0.5)
562562
instance.inner.Qobj = Q
563563
# scalediagonal!(V, I, J, 2.0)

src/solve.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ end
143143
MOI.canget(m::LinQuadOptimizer, ::MOI.VariablePrimal, ::Type{VarInd}) = true
144144

145145
function MOI.get(m::LinQuadOptimizer, ::MOI.VariablePrimal, v::Vector{VarInd})
146-
MOI.get.(m, MOI.VariablePrimal(), v)
146+
MOI.get.(Ref(m), MOI.VariablePrimal(), v)
147147
end
148148
MOI.canget(m::LinQuadOptimizer, ::MOI.VariablePrimal, ::Type{Vector{VarInd}}) = true
149149

0 commit comments

Comments
 (0)