Skip to content

Commit 25da1ad

Browse files
committed
FZN: output the value for each variable.
1 parent 287b917 commit 25da1ad

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/FlatZinc/export.jl

+11-11
Original file line numberDiff line numberDiff line change
@@ -84,43 +84,43 @@ end
8484
# Variable printing.
8585

8686
function write_variable(io::IO, name::String, s::MOI.EqualTo{Float64})
87-
print(io, "var float: $(name) = $(s.value);")
87+
print(io, "var float: $(name) = $(s.value) :: output_var;")
8888
return nothing
8989
end
9090

9191
function write_variable(io::IO, name::String, s::MOI.EqualTo{Int})
92-
print(io, "var int: $(name) = $(s.value);")
92+
print(io, "var int: $(name) = $(s.value) :: output_var;")
9393
return nothing
9494
end
9595

9696
function write_variable(io::IO, name::String, s::MOI.EqualTo{Bool})
97-
print(io, "var bool: $(name) = $(s.value);")
97+
print(io, "var bool: $(name) = $(s.value) :: output_var;")
9898
return nothing
9999
end
100100

101101
function write_variable(io::IO, name::String, s::MOI.LessThan{Float64})
102102
# typemin(Float64) is -Inf, which is "-Inf" as a string (which is not
103103
# allowed by FlatZinc). Take the next smallest value as a proxy, because
104104
# it has a standard scientific notation (and this is allowed in FlatZinc).
105-
print(io, "var $(nextfloat(typemin(Float64)))..$(s.upper): $(name);")
105+
print(io, "var $(nextfloat(typemin(Float64)))..$(s.upper): $(name) :: output_var;")
106106
return nothing
107107
end
108108

109109
function write_variable(io::IO, name::String, s::MOI.LessThan{Int})
110-
print(io, "var $(typemin(Int))..$(s.upper): $(name);")
110+
print(io, "var $(typemin(Int))..$(s.upper): $(name) :: output_var;")
111111
return nothing
112112
end
113113

114114
function write_variable(io::IO, name::String, s::MOI.GreaterThan{Float64})
115115
# typemax(Float64) is Inf, which is "Inf" as a string (which is not
116116
# allowed by FlatZinc). Take the next largest value as a proxy, because
117117
# it has a standard scientific notation (and this is allowed in FlatZinc).
118-
print(io, "var $(s.lower)..$(prevfloat(typemax(Float64))): $(name);")
118+
print(io, "var $(s.lower)..$(prevfloat(typemax(Float64))): $(name) :: output_var;")
119119
return nothing
120120
end
121121

122122
function write_variable(io::IO, name::String, s::MOI.GreaterThan{Int})
123-
print(io, "var $(s.lower)..$(typemax(Int)): $(name);")
123+
print(io, "var $(s.lower)..$(typemax(Int)): $(name) :: output_var;")
124124
return nothing
125125
end
126126

@@ -129,22 +129,22 @@ function write_variable(
129129
name::String,
130130
s::MOI.Interval{T},
131131
) where {T <: Union{Int, Float64}}
132-
print(io, "var $(s.lower)..$(s.upper): $(name);")
132+
print(io, "var $(s.lower)..$(s.upper): $(name) :: output_var;")
133133
return nothing
134134
end
135135

136136
function write_variable(io::IO, name::String, ::MOI.Reals)
137-
print(io, "var float: $(name);")
137+
print(io, "var float: $(name) :: output_var;")
138138
return nothing
139139
end
140140

141141
function write_variable(io::IO, name::String, ::MOI.ZeroOne)
142-
print(io, "var bool: $(name);")
142+
print(io, "var bool: $(name) :: output_var;")
143143
return nothing
144144
end
145145

146146
function write_variable(io::IO, name::String, ::MOI.Integer)
147-
print(io, "var int: $(name);")
147+
print(io, "var int: $(name) :: output_var;")
148148
return nothing
149149
end
150150

0 commit comments

Comments
 (0)