2つのdouble型変数の大小関係を調べる。
関数doublecmpに比べて厳しい等号判定基準を用いる。
Compare two double-type variables.
A threshold more strict than that used in function doublecmp
is used for judgement of equality.
◆形式(Format)
#include <doublemath.h>
inline int doublecmp2(const double a,const double b)
◆引数(Arguments)
a
比較したい一方の実数。
One of the real numbers to be compared.
b
比較したいもう一つの実数。
The other one of the real numbers to be compared.
◆戻り値(Return value)
\(a > b\)のとき1
1 if \(a > b\)
\(a=b\)のとき0
0 if \(a=b\)
\(a < b\)のとき\(-1\)
\(-1\) if \(a < b\)
但し\(a\)と\(b\)が非常に近い値の場合は厳密に等しくなくても\(a=b\)と見なす。
「非常に近い」の判定基準として、
関数doublecmpではマクロZERO_THRESHOLDを用いていたところ、
この関数ではZERO_THRESHOLD\(^2\)を用いる。
これにより、関数doublecmpに比べて\(a=b\)と判定されるケースが少なくなる。
When \(a\) and \(b\) are very close to each other,
it is regarded that \(a=b\), even if they are not exactly equal.
Here, ZERO_THRESHOLD\(^2\) is used
as a threshold to judge that they are very close,
while a macro ZERO_THRESHOLD was used for the threshold
in function doublecmp.
Therefore it is less frequent that
\(a\) and \(b\) are regarded as equal.