Skip to content

Commit

Permalink
remove support for commutativity in @addConstraint (jump-dev#99).
Browse files Browse the repository at this point in the history
  • Loading branch information
joehuchette committed Jul 8, 2014
1 parent 95342dd commit e2d08c9
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 19 deletions.
6 changes: 1 addition & 5 deletions src/macros.jl
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,12 @@ function timesvar(x::Expr)
return x.args[end]
end

addToExpression(aff::AffExpr,x::Variable,c::Number) = addToExpression(aff,c,x)
addToExpression(aff::AffExpr,c::Number,x::Variable) = push!(aff,convert(Float64,c),x)

addToExpression(aff::AffExpr,c::Number,x::Number) = (aff.constant += c*x)

addToExpression(aff::AffExpr,c::Variable,x::Variable) = QuadExpr([c],[x],[1.0],aff)

addToExpression(aff::AffExpr,x::AffExpr,c::Number) = addToExpression(aff,c,x)
function addToExpression(aff::AffExpr,c::Number,x::AffExpr)
append!(aff.vars, x.vars)
append!(aff.coeffs, c*x.coeffs)
Expand All @@ -47,7 +45,6 @@ addToExpression(aff::AffExpr, c::Number, x::QuadExpr) = QuadExpr(copy(x.qvars1),
vcat(aff.coeffs,c*x.aff.coeffs),
aff.constant+c*x.aff.constant))

addToExpression(quad::QuadExpr,x::Variable,c::Float64) = addToExpression(quad,c,x)
addToExpression(quad::QuadExpr,c::Number,x::Variable) = push!(quad.aff,convert(Float64,c),x)

addToExpression(quad::QuadExpr,c::Number,x::Number) = (quad.aff.constant += c*x)
Expand All @@ -57,7 +54,6 @@ function addToExpression(quad::QuadExpr,c::Variable,x::Variable)
push!(quad.qvars2, c)
end

addToExpression(quad::QuadExpr,x::AffExpr,c::Number) = addToExpression(quad::QuadExpr,c::Number,x::AffExpr)
function addToExpression(quad::QuadExpr,c::Number,x::AffExpr)
append!(quad.aff.vars, x.vars)
append!(quad.aff.coeffs, c*x.coeffs)
Expand All @@ -72,7 +68,7 @@ function addToExpression(quad::QuadExpr,c::Variable,x::AffExpr)
addToExpression(quad.aff,x.constant,c)
end

addToExpression(quad::QuadExpr,x::QuadExpr,c::Number) = addToExpression(quad::QuadExpr,c::Number,x::QuadExpr)
addToExpression(quad::QuadExpr,x::QuadExpr,c::Number) = addToExpression(quad,c,x)
function addToExpression(quad::QuadExpr,c::Number,x::QuadExpr)
append!(quad.qvars1,x.qvars1)
append!(quad.qvars2,x.qvars2)
Expand Down
14 changes: 0 additions & 14 deletions test/macros.jl
Original file line number Diff line number Diff line change
Expand Up @@ -148,20 +148,6 @@ let
@test conToStr(m.linconstr[4]) == "y[1] + y[3] >= 3"
end

# test communitivity in sum{} in @addConstraint
let
m = Model()
@defVar(m, x[1:3])
c = [5.4, 3.2, 4]
@addConstraint(m, sum{x[i]*c[i], i=1:3} == 1)
@addConstraint(m, sum{x[i]*c[i], i=1:3; isodd(i)} == 1)
@addConstraint(m, x[1]*9 - 5*x[2] - 2*sum{ (x[i]+x[i])*2, i=1:3} <= 1)

@test conToStr(m.linconstr[1]) == "5.4 x[1] + 3.2 x[2] + 4 x[3] == 1"
@test conToStr(m.linconstr[2]) == "5.4 x[1] + 4 x[3] == 1"
@test conToStr(m.linconstr[3]) == "x[1] - 13 x[2] - 8 x[3] <= 1"
end

# test quadratic objective macro
let
m = Model()
Expand Down

0 comments on commit e2d08c9

Please sign in to comment.