関数doublecmp2 マニュアル

(The documentation of function doublecmp2)

Last Update: 2021/11/30


◆機能・用途(Purpose)

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\)が非常に近い値の場合は厳密に等しくなくても\(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.


◆使用例(Example)

double a,b;
if(doublecmp2(a,b)>0){
    printf("a>b\n");
}else if(doublecmp2(a,b)==0){
    printf("a=b\n");
}else{
    printf("a<b\n");
}