var x >=-100, <= 100;
var y >=-100, <=100;
var z1 >= -10, <= 10;
var z2 >= -10, <= 10;
var sinp1 >= 0, <= 100;
var sinp2 >=0, <= 100;
var sinquad1 >=-10, <=10;
var sinquad2 >= -10, <=10;
var mt1 >=-1, <=1;
var mt2 >=-1, <=1;
var mt3 >=-1, <=1;
var mt4 >=-1, <=1;
var mt5 >=-1, <=1;
var y1 binary;
var y2 binary;
var y3 binary;
var y4 binary;
var i1 integer >=0, <=10;
var i2 integer >=2, <=20;
var i3 integer >=-5, <= 30;
maximize sinobj: sinp2 - sinp1 + 0.0001*sin(sinp1);
minimize myobj: x + y;
subject to mylinear: 2 * x + 3 * y <= 25;
subject to myquadratic: 2 * x^2 + 3 * y^2 <= 200;
subject to mynonlinear: x^3 - y^3 >= 20;
subject to myerrors: 999 * x^9 + 9999 * y^4 <= 20000;
subject to singularity: z2 - z1/(1 - z2/2) <= 100;
subject to sinquadratic: 0.1*sinquad1^2 + 0.1*sinquad2^2 + 0.1*sin(sinquad1+sinquad2) = 0;
subject to multipleChoice: y1 + y2 + y3 =1;
subject to mixedTypes: 12 * mt1 +15 * i1 + y4 <= 25;
subject to allInts: 10 <= i1 + 2 * i2 + 4.7 * i3 <= 20;
subject to impossible: mt1^2 >= 10;
subject to ineffective: mt1^2 + mt2^2 >= -1;
subject to ImpossEquality: 0.5 * x * y1 + 0.5 * y * y2 = 200;