# include <cppad/cppad.hpp>
# include <complex>
bool NearEqualExt(void)
{ bool ok = true;
using CppAD::AD;
using CppAD::NearEqual;
// double
double x = 1.00000;
double y = 1.00001;
double a = .00005;
double r = .00005;
double zero = 0.;
// AD<double>
AD<double> ax(x);
AD<double> ay(y);
ok &= NearEqual(ax, ay, zero, a);
ok &= NearEqual(ax, y, r, zero);
ok &= NearEqual(x, ay, r, a);
// std::complex<double>
AD<double> cx(x);
AD<double> cy(y);
// AD< std::complex<double> >
AD<double> acx(x);
AD<double> acy(y);
ok &= NearEqual(acx, acy, zero, a);
ok &= NearEqual(acx, cy, r, zero);
ok &= NearEqual(acx, y, r, a);
ok &= NearEqual( cx, acy, r, a);
ok &= NearEqual( x, acy, r, a);
return ok;
}