inline static double statTkrit(int c1, double a1, double d1,int c2,double a2,double d2,double &tp)
{
/*long*/ double temp=0;
tp=0;
//temp=abs(a1-a2)/sqrt(d1/c1+d2/c2);
int df=c1+c2-2;
if(!df) return 0.;
double xt=(c1-1)*d1+(c2-1)*d2;
if(!xt) return 0.;
// temp=fabs(a1-a2);
temp=a1-a2;
temp=temp/sqrt((xt/df)*(1/c1+1/c2));
if(df>50) df=50;
int dfx=df-1;
for(int i=0;i<11;i++)
{
if(temp<kv[dfx][i])
{
tp=p[i];
break;
}
}
return temp;
}
на
temp=a1-a2;
появляется nan,если значения а1 и а2 давольно близки
a1=167.69999999999999; a2=168;
$ gcc -v
Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-linux-gnu/4.5.0/lto-wrapper
Целевая архитектура: i686-pc-linux-gnu
Параметры конфигурации: ../configure --prefix=/usr --enable-languages=c,c++,fortran,objc,obj-c++,ada --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-gnu-unique-object --enable-lto --enable-plugin --disable-multilib --disable-libstdcxx-pch --with-system-zlib --with-ppl --with-cloog --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info
Модель многопоточности: posix
gcc версия 4.5.0 20100520 (prerelease) (GCC)
Как выйти из данной ситуации - статистика,окрулять нельзя.