Description
Tests some nonlinear expression reformulations that improve the formatted code. Contributor: Renke Kuhlmann
Small Model of Type : GAMS
Category : GAMS Test library
Main file : convert14.gms
$title CONVERT test suite - nonlinear expression reformulations (CONVERT14,SEQ=843)
$onText
Tests some nonlinear expression reformulations that improve the formatted code.
Contributor: Renke Kuhlmann
$offText
$onEcho > gamsin.gms
Variables
x, y, z, w, obj;
Equations
e01, e02, e03, e04, e05, e06, e07, e08, e09, e10, e11, e12, e13, e14, e15, e16,
e17, e18, e19, e20, e21, e22;
* clean formulas
e01.. obj + x + x*y + x**z =e= 2;
e02.. (-x) / (-y) =g= 0;
e03.. (-x) * (-y) =g= 0;
e04.. x / (-y) =g= 0;
e05.. -exp(x) * (-exp(y)) =g= 0;
e06.. x*(3*y)*4 =g= 0;
e07.. x*(3/y)*4 =g= 0;
e08.. (3*x)*y*4 =g= 0;
e09.. (3*x)/y*4 =g= 0;
e10.. x/(3*y)*4 =g= 0;
e11.. x/(3/y)*4 =g= 0;
e12.. (3/x)/y*4 =g= 0;
e13.. (3/x)*y*4 =g= 0;
e14.. x**1 =g= 0;
e15.. power(x, 1) =g= 0;
e16.. vcpower(x, 1) =g= 0;
e17.. rpower(x, 1) =g= 0;
* parenthesis
e18.. exp(x) * (-exp(y)) =g= 0;
e19.. x*y + (-(x*z + y*z)) =g= 0;
e20.. x*y + (-(-x*z + y*z)) =g= 0;
e21.. 3*x**(-1) + 4*y**(-0) =g= 0;
* sums and subs
e22.. -x + y - z + w =g= 0;
x.l = 1;
y.l = 1;
z.l = 1;
Model m / all /;
Solve m using DNLP minimizing obj;
$offEcho
$onEcho > gamswant.gms
e1.. x1 * x2 + x1 + x1**x3 + x5 =E= 2;
e2.. x1 / x2 =G= 0;
e3.. x1 * x2 =G= 0;
e4.. -x1 / x2 =G= 0;
e5.. exp(x1) * exp(x2) =G= 0;
e6.. 12 * x1 * x2 =G= 0;
e7.. 12 * x1 / x2 =G= 0;
e8.. 12 * x1 * x2 =G= 0;
e9.. 12 * x1 / x2 =G= 0;
e10.. 1.3333333333333333 * x1 / x2 =G= 0;
e11.. 1.3333333333333333 * x1 * x2 =G= 0;
e12.. 12 / (x2 * x1) =G= 0;
e13.. 12 * x2 / x1 =G= 0;
e14.. x1 =G= 0;
e15.. x1 =G= 0;
e16.. x1 =G= 0;
e17.. x1 =G= 0;
e18.. -exp(x1) * exp(x2) =G= 0;
e19.. x1 * x2 - x1 * x3 - x2 * x3 =G= 0;
e20.. x1 * x2 + x1 * x3 - x2 * x3 =G= 0;
e21.. 3 * x1**(-1) + 4 * x2**eps =G= 0;
e22.. -x1 + x2 - x3 + x4 =G= 0;
$offEcho
$call gams gamsin.gms lo=%GAMS.lo% solver=convert
$call grep "e[0-9]*\.\." gams.gms > gamsgot.gms
$call.checkErrorLevel =diff -b gamsgot.gms gamswant.gms