Skip to content

Commit 837b416

Browse files
authored
Add JuliaFormatter (#30)
1 parent fb5b320 commit 837b416

File tree

9 files changed

+783
-298
lines changed

9 files changed

+783
-298
lines changed

.JuliaFormatter.toml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Configuration file for JuliaFormatter.jl
2+
# For more information, see: https://domluna.github.io/JuliaFormatter.jl/stable/config/
3+
4+
always_for_in = true
5+
always_use_return = true
6+
margin = 80
7+
remove_extra_newlines = true
8+
short_to_long_function_def = true

.github/workflows/format_check.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: format-check
2+
on:
3+
push:
4+
branches:
5+
- master
6+
- release-*
7+
pull_request:
8+
types: [opened, synchronize, reopened]
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: julia-actions/setup-julia@latest
14+
with:
15+
version: '1'
16+
- uses: actions/checkout@v1
17+
- name: Format check
18+
shell: julia --color=yes {0}
19+
run: |
20+
using Pkg
21+
Pkg.add(PackageSpec(name="JuliaFormatter", version="1"))
22+
using JuliaFormatter
23+
format(".", verbose=true)
24+
out = String(read(Cmd(`git diff`)))
25+
if isempty(out)
26+
exit(0)
27+
end
28+
@error "Some files have not been formatted !!!"
29+
write(stdout, out)
30+
exit(1)

src/MatrixOptInterface.jl

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Copyright (c) 2019: Joaquim Dias Garcia, and contributors
2+
#
3+
# Use of this source code is governed by an MIT-style license that can be found
4+
# in the LICENSE.md file or at https://opensource.org/licenses/MIT.
5+
16
module MatrixOptInterface
27

38
using LinearAlgebra, SparseArrays
@@ -8,8 +13,6 @@ const MOIU = MathOptInterface.Utilities
813
const CI = MOI.ConstraintIndex
914
const VI = MOI.VariableIndex
1015

11-
# export MatrixOptimizer
12-
1316
@enum ConstraintSense EQUAL_TO GREATER_THAN LESS_THAN INTERVAL
1417
_sense(::Type{<:MOI.EqualTo}) = EQUAL_TO
1518
_sense(::Type{<:MOI.LessThan}) = LESS_THAN
@@ -39,7 +42,7 @@ function _bound_sense(lb::T, ub::T) where {T}
3942
end
4043
end
4144

42-
function _bound_set(lb::T, ub::T) where T
45+
function _bound_set(lb::T, ub::T) where {T}
4346
if _no_upper(ub)
4447
if _no_lower(lb)
4548
if ub == lb

src/change_form.jl

Lines changed: 89 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,25 @@
1-
function change_form(::Type{LPForm{T, AT, VT}}, lp::LPForm) where {T, AT, VT}
2-
return LPForm{T, AT, VT}(
1+
# Copyright (c) 2019: Joaquim Dias Garcia, and contributors
2+
#
3+
# Use of this source code is governed by an MIT-style license that can be found
4+
# in the LICENSE.md file or at https://opensource.org/licenses/MIT.
5+
6+
function change_form(::Type{LPForm{T,AT,VT}}, lp::LPForm) where {T,AT,VT}
7+
return LPForm{T,AT,VT}(
38
lp.sense,
49
lp.c,
510
lp.A,
611
lp.c_lb,
712
lp.c_ub,
813
lp.v_lb,
9-
lp.v_ub
14+
lp.v_ub,
1015
)
1116
end
1217

13-
function change_form(::Type{LPForm{T, AT, VT}}, lp::LPStandardForm{T}) where {T, AT, VT}
14-
return LPForm{T, AT, VT}(
18+
function change_form(
19+
::Type{LPForm{T,AT,VT}},
20+
lp::LPStandardForm{T},
21+
) where {T,AT,VT}
22+
return LPForm{T,AT,VT}(
1523
lp.sense,
1624
lp.c,
1725
lp.A,
@@ -21,8 +29,12 @@ function change_form(::Type{LPForm{T, AT, VT}}, lp::LPStandardForm{T}) where {T,
2129
fill(typemax(T), length(lp.c)),
2230
)
2331
end
24-
function change_form(::Type{LPForm{T, AT, VT}}, lp::LPGeometricForm{T}) where {T, AT, VT}
25-
return LPForm{T, AT, VT}(
32+
33+
function change_form(
34+
::Type{LPForm{T,AT,VT}},
35+
lp::LPGeometricForm{T},
36+
) where {T,AT,VT}
37+
return LPForm{T,AT,VT}(
2638
lp.sense,
2739
lp.c,
2840
lp.A,
@@ -32,7 +44,11 @@ function change_form(::Type{LPForm{T, AT, VT}}, lp::LPGeometricForm{T}) where {T
3244
fill(typemax(T), length(lp.c)),
3345
)
3446
end
35-
function change_form(::Type{LPForm{T, AT, VT}}, lp::LPSolverForm{T}) where {T, AT, VT}
47+
48+
function change_form(
49+
::Type{LPForm{T,AT,VT}},
50+
lp::LPSolverForm{T},
51+
) where {T,AT,VT}
3652
c_lb = fill(typemin(T), length(lp.b))
3753
c_ub = fill(typemax(T), length(lp.b))
3854
for i in eachindex(lp.b)
@@ -47,26 +63,20 @@ function change_form(::Type{LPForm{T, AT, VT}}, lp::LPSolverForm{T}) where {T, A
4763
error("invalid sign $(lp.senses[i])")
4864
end
4965
end
50-
return LPForm{T, AT, VT}(
51-
lp.sense,
52-
lp.c,
53-
lp.A,
54-
c_lb,
55-
c_ub,
56-
lp.v_lb,
57-
lp.v_ub,
58-
)
66+
return LPForm{T,AT,VT}(lp.sense, lp.c, lp.A, c_lb, c_ub, lp.v_lb, lp.v_ub)
5967
end
6068

61-
function change_form(::Type{LPGeometricForm{T, AT, VT}}, lp::LPGeometricForm) where {T, AT, VT}
62-
return LPGeometricForm{T, AT, VT}(
63-
lp.sense,
64-
lp.c,
65-
lp.A,
66-
lp.b
67-
)
69+
function change_form(
70+
::Type{LPGeometricForm{T,AT,VT}},
71+
lp::LPGeometricForm,
72+
) where {T,AT,VT}
73+
return LPGeometricForm{T,AT,VT}(lp.sense, lp.c, lp.A, lp.b)
6874
end
69-
function change_form(::Type{LPGeometricForm{T, AT, VT}}, lp::LPForm{T}) where {T, AT, VT}
75+
76+
function change_form(
77+
::Type{LPGeometricForm{T,AT,VT}},
78+
lp::LPForm{T},
79+
) where {T,AT,VT}
7080
has_c_upper = Int[]
7181
has_c_lower = Int[]
7282
sizehint!(has_c_upper, length(lp.c_ub))
@@ -93,73 +103,72 @@ function change_form(::Type{LPGeometricForm{T, AT, VT}}, lp::LPForm{T}) where {T
93103
end
94104
Id = Matrix{T}(I, length(lp.c), length(lp.c))
95105
new_A = vcat(
96-
lp.A[has_c_upper,:],
97-
-lp.A[has_c_lower,:],
98-
Id[has_v_upper,:],
99-
-Id[has_v_lower,:],
100-
)
106+
lp.A[has_c_upper, :],
107+
-lp.A[has_c_lower, :],
108+
Id[has_v_upper, :],
109+
-Id[has_v_lower, :],
110+
)
101111
new_b = vcat(
102112
lp.c_ub[has_c_upper],
103113
-lp.c_lb[has_c_lower],
104114
lp.v_ub[has_v_upper],
105115
-lp.v_lb[has_v_lower],
106116
)
107-
return LPGeometricForm{T, AT, VT}(
108-
lp.sense,
109-
lp.c,
110-
new_A,
111-
new_b
112-
)
117+
return LPGeometricForm{T,AT,VT}(lp.sense, lp.c, new_A, new_b)
113118
end
114-
function change_form(::Type{LPGeometricForm{T, AT, VT}}, lp::F) where {T, AT, VT, F <: AbstractLPForm{T}}
115-
temp_lp = change_form(LPForm{T, AT, VT}, lp)
116-
return change_form(LPGeometricForm{T, AT, VT}, temp_lp)
119+
120+
function change_form(
121+
::Type{LPGeometricForm{T,AT,VT}},
122+
lp::F,
123+
) where {T,AT,VT,F<:AbstractLPForm{T}}
124+
temp_lp = change_form(LPForm{T,AT,VT}, lp)
125+
return change_form(LPGeometricForm{T,AT,VT}, temp_lp)
117126
end
118127

119-
function change_form(::Type{LPStandardForm{T, AT, VT}}, lp::LPStandardForm) where {T, AT, VT}
120-
return LPStandardForm(
121-
lp.sense,
122-
lp.c,
123-
lp.A,
124-
lp.b
125-
)
128+
function change_form(
129+
::Type{LPStandardForm{T,AT,VT}},
130+
lp::LPStandardForm,
131+
) where {T,AT,VT}
132+
return LPStandardForm(lp.sense, lp.c, lp.A, lp.b)
126133
end
127-
function change_form(::Type{LPStandardForm{T, AT, VT}}, lp::LPGeometricForm{T}) where {T, AT, VT}
128-
new_A = hcat(
129-
lp.A,
130-
-lp.A,
131-
AT(I, length(lp.b), length(lp.b))
132-
)
133-
new_c = vcat(
134-
lp.c,
135-
-lp.c,
136-
fill(0.0, length(lp.b))
137-
)
138-
return LPStandardForm{T, AT, VT}(
139-
lp.sense,
140-
new_c,
141-
new_A,
142-
copy(lp.b)
143-
)
134+
135+
function change_form(
136+
::Type{LPStandardForm{T,AT,VT}},
137+
lp::LPGeometricForm{T},
138+
) where {T,AT,VT}
139+
new_A = hcat(lp.A, -lp.A, AT(I, length(lp.b), length(lp.b)))
140+
new_c = vcat(lp.c, -lp.c, fill(0.0, length(lp.b)))
141+
return LPStandardForm{T,AT,VT}(lp.sense, new_c, new_A, copy(lp.b))
144142
end
145-
function change_form(::Type{LPStandardForm{T, AT, VT}}, lp::F) where {T, AT, VT, F <: AbstractLPForm{T}}
146-
temp_lp = change_form(LPForm{T, AT, VT}, lp)
147-
new_lp = change_form(LPGeometricForm{T, AT, VT}, temp_lp)
148-
change_form(LPStandardForm{T, AT, VT}, new_lp)
143+
144+
function change_form(
145+
::Type{LPStandardForm{T,AT,VT}},
146+
lp::F,
147+
) where {T,AT,VT,F<:AbstractLPForm{T}}
148+
temp_lp = change_form(LPForm{T,AT,VT}, lp)
149+
new_lp = change_form(LPGeometricForm{T,AT,VT}, temp_lp)
150+
return change_form(LPStandardForm{T,AT,VT}, new_lp)
149151
end
150152

151-
function change_form(::Type{LPSolverForm{T, AT, VT}}, lp::LPSolverForm) where {T, AT, VT}
152-
return LPSolverForm{T, AT, VT}(
153+
function change_form(
154+
::Type{LPSolverForm{T,AT,VT}},
155+
lp::LPSolverForm,
156+
) where {T,AT,VT}
157+
return LPSolverForm{T,AT,VT}(
153158
lp.sense,
154159
lp.c,
155160
lp.A,
156161
lp.b,
157162
lp.senses,
158163
lp.v_lb,
159-
lp.v_ub
164+
lp.v_ub,
160165
)
161166
end
162-
function change_form(::Type{LPSolverForm{T, AT, VT}}, lp::LPForm{T}) where {T, AT, VT}
167+
168+
function change_form(
169+
::Type{LPSolverForm{T,AT,VT}},
170+
lp::LPForm{T},
171+
) where {T,AT,VT}
163172
new_A = copy(lp.A)
164173
senses = fill(LESS_THAN, length(lp.c_lb))
165174
new_b = fill(NaN, length(lp.c_lb))
@@ -172,7 +181,7 @@ function change_form(::Type{LPSolverForm{T, AT, VT}}, lp::LPForm{T}) where {T, A
172181
new_b[i] = lp.c_lb[i]
173182
push!(new_b, lp.c_ub[i])
174183
push!(sense, LESS_THAN)
175-
new_A = vcat(new_A, lp.A[i,:])
184+
new_A = vcat(new_A, lp.A[i, :])
176185
elseif lp.c_lb[i] > -Inf
177186
senses[i] = GREATER_THAN
178187
new_b[i] = lp.c_lb[i]
@@ -181,7 +190,7 @@ function change_form(::Type{LPSolverForm{T, AT, VT}}, lp::LPForm{T}) where {T, A
181190
new_b[i] = lp.c_ub[i]
182191
end
183192
end
184-
return LPSolverForm{T, AT, VT}(
193+
return LPSolverForm{T,AT,VT}(
185194
lp.sense,
186195
lp.c,
187196
new_A,
@@ -191,7 +200,11 @@ function change_form(::Type{LPSolverForm{T, AT, VT}}, lp::LPForm{T}) where {T, A
191200
lp.v_ub,
192201
)
193202
end
194-
function change_form(::Type{LPSolverForm{T, AT, VT}}, lp::F) where {T, AT, VT, F <: AbstractLPForm{T}}
195-
temp_lp = change_form(LPForm{T, AT, VT}, lp)
196-
change_form(LPSolverForm{T, AT, VT}, temp_lp)
203+
204+
function change_form(
205+
::Type{LPSolverForm{T,AT,VT}},
206+
lp::F,
207+
) where {T,AT,VT,F<:AbstractLPForm{T}}
208+
temp_lp = change_form(LPForm{T,AT,VT}, lp)
209+
return change_form(LPSolverForm{T,AT,VT}, temp_lp)
197210
end

0 commit comments

Comments
 (0)