fnset_xy.inc : intrinsics tests for f(x,y)
``````\$ontext
How is relative accuracy defined?  Given:
1. a point x,
2. the computed value f(x), and
3. the known value fbar,

we can compute the relative accuracy of f vis-a-vis fbar in two ways:
1. |f-fbar| <= reps * |fbar|
2. |f-fbar| <= reps * max(1,|x|)

The first case is the most common, but for some functions
the second is more appropriate (e.g. sin(x)).

We can also pass a test if the absolute accuracy is within some
tolerance aeps:
1. |f-fbar| <= aeps

Contributor: Steven Dirkse, October 2004
\$offtext

set V / x, y, d
f,     f_,     f_a,     f_r
fx,    fx_,    fx_a,    fx_r
fy,    fy_,    fy_a,    fy_r
fxx,   fxx_,   fxx_a,   fxx_r
fxy,   fxy_,   fxy_a,   fxy_r
fyx,   fyx_,   fyx_a,   fyx_r
fyy,   fyy_,   fyy_a,   fyy_r
rc,    rc_,    rc_e
ec,    ec_,    ec_e
/;

scalar aeps       'absolute error tolerance';
scalar aeps0      'absolute error tolerance, function';
scalar aeps1      'absolute error tolerance, first derivative';
scalar aeps2      'absolute error tolerance, second derivative';
scalar reps       'relative error tolerance';
scalar reps0      'relative error tolerance, function';
scalar reps1      'relative error tolerance, first derivative';
scalar reps2      'relative error tolerance, second derivative';
scalar relToInput 'reps is relative to input (not output) magnitude';
sets
T          'all test instances'
badTV(T,V) 'only the items/checks that failed'
inV(V)     'inputs' / x, y, d /
fV(V)      'func info' /  f,   f_,   f_r,   f_a  /
fxV(V)     'grad info' /  fx,  fx_,  fx_r,  fx_a  /
fyV(V)     'grad info' /  fy,  fy_,  fy_r,  fy_a  /
fxxV(V)    'Hess info' /  fxx, fxx_, fxx_r, fxx_a  /
fxyV(V)    'Hess info' /  fxy, fxy_, fxy_r, fxy_a  /
fyxV(V)    'Hess info' /  fyx, fyx_, fyx_r, fyx_a  /
fyyV(V)    'Hess info' /  fyy, fyy_, fyy_r, fyy_a  /
rcV(V)     'rc info'   /  rc,  rc_,  rc_e /
ecV(V)     'ec info'   /  ec,  ec_,  ec_e /
;
parameters
data(T,V)
tmp(T)
failures(T,V) 'all data for failed test instances'
fail2(T,V)    'most relevant data for failed test instances'
;
``````
GAMS Development Corp.
GAMS Software GmbH

General Information and Sales
U.S. (+1) 202 342-0180
Europe: (+49) 221 949-9170