Prev | Next |
# include <cppad/utility/near_equal.hpp>
b = NearEqual(x, y, r, a)
x
and
y
are nearly equal,
and false otherwise.
x
has one of the following possible prototypes
const Type &x,
const std::complex<Type> &x,
y
has one of the following possible prototypes
const Type &y,
const std::complex<Type> &y,
r
has prototype
const Type &r
It must be greater than or equal to zero.
The relative error condition is defined as:
@[@
| x - y | \leq r ( |x| + |y| )
@]@
a
has prototype
const Type &a
It must be greater than or equal to zero.
The absolute error condition is defined as:
@[@
| x - y | \leq a
@]@
b
has prototype
bool b
If either
x
or
y
is infinite or not a number,
the return value is false.
Otherwise, if either the relative or absolute error
condition (defined above) is satisfied, the return value is true.
Otherwise, the return value is false.
Type
must be a
NumericType
.
The routine CheckNumericType
will generate
an error message if this is not the case.
In addition, the following operations must be defined objects
a
and
b
of type
Type
:
Operation | Description |
a <= b
|
less that or equal operator (returns a bool object)
|
cppad/utility/near_equal.hpp
is included by cppad/cppad.hpp
but it can also be included separately with out the rest of
the CppAD
routines.
NearEqual
.
It return true if it succeeds and false otherwise.
using std::complex;
using std::cout;
using std::endl;
complex<double> one(1., 0), i(0., 1);
complex<double> x = one / i;
complex<double> y = - i;
double r = 1e-12;
double a = 0;
bool ok = CppAD::NearEqual(x, y, r, a);
if( ok )
cout << "Ok" << endl;
else
cout << "Error" << endl;