scalars cx / 3 / cy / 5 / variables x, y, z; equations obj '1-norm' f ; obj.. abs(x) + abs(y) =E= z; f .. sqr(x-cx) + sqr(y-cy) =L= 1; model nonsmooth / obj, f /; solve nonsmooth using dnlp min z; file log /''/; putclose log ' ' / 'DNLP solution for 1-norm:' / 'x = ', x.L:10:4 / 'y = ', y.L:10:4 / 'z = ', z.L:10:4 / ; positive variables xPlus, xMinus, yPlus, yMinus; equations obj2 'smooth version of 1-norm' xDef yDef ; obj2.. xPlus + xMinus + yPlus + yMinus =E= z; xDef.. x =E= xPlus - xMinus; yDef.. y =E= yPlus - yMinus; model smooth / obj2, xDef, yDef, f /; solve smooth using nlp min z; putclose log ' ' / ' NLP solution for 1-norm:' / 'x = ', x.L:10:4 / 'y = ', y.L:10:4 / 'z = ', z.L:10:4 / ; $macro MYABS(t,d) [sqrt(sqr(t)+sqr(d))] scalar delta / 1e-4 / equation obj3; obj3.. MYABS(x,delta) + MYABS(y,delta) =E= z; model approx / obj3, f /; solve approx using nlp min z; putclose log ' ' / ' approximation solution for 1-norm:' / 'x = ', x.L:10:4 / 'y = ', y.L:10:4 / 'z = ', z.L:10:4 / ;