2 #include "gromacs/utility/real.h"
4 #include "../gmx_lapack.h"
7 F77_FUNC(slas2
,SLAS2
)(float *f
,
16 float fhmin
,fhmax
,tmax
,tmin
,tmp1
,tmp2
;
19 fhmin
= (fa
<ha
) ? fa
: ha
;
20 fhmax
= (fa
>ha
) ? fa
: ha
;
22 if(fabs(fhmin
)<GMX_FLOAT_MIN
) {
24 if(fabs(fhmax
)<GMX_FLOAT_MIN
)
27 tmax
= (fhmax
>ga
) ? fhmax
: ga
;
28 tmin
= (fhmax
<ga
) ? fhmax
: ga
;
31 *ssmax
= tmax
*sqrt(1.0 + tmp1
);
35 as
= 1.0 + fhmin
/ fhmax
;
36 at
= (fhmax
-fhmin
) / fhmax
;
39 c
= 2.0 / ( sqrt(as
*as
+au
) + sqrt(at
*at
+au
) );
44 if(fabs(au
)<GMX_FLOAT_MIN
) {
45 *ssmin
= (fhmin
*fhmax
)/ga
;
48 as
= 1.0 + fhmin
/ fhmax
;
49 at
= (fhmax
-fhmin
)/fhmax
;
52 c
= 1.0 / ( sqrt(1.0+tmp1
*tmp1
) + sqrt(1.0+tmp2
*tmp2
));
53 *ssmin
= (fhmin
*c
)*au
;
54 *ssmin
= *ssmin
+ *ssmin
;