⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlas2.c

📁 最著名最快的分子模拟软件
💻 C
字号:
#include <math.h>#include <types/simple.h>#include "gmx_lapack.h"voidF77_FUNC(dlas2,DLAS2)(double *f,       double *g,       double *h,       double *ssmin,       double *ssmax){  double fa = fabs(*f);  double ga = fabs(*g);  double ha = fabs(*h);  double fhmin,fhmax,tmax,tmin,tmp1,tmp2;  double as,at,au,c;  fhmin = (fa<ha) ? fa : ha;  fhmax = (fa>ha) ? fa : ha;    if(fabs(fhmin)<GMX_DOUBLE_MIN) {    *ssmin = 0.0;    if(fabs(fhmax)<GMX_DOUBLE_MIN)       *ssmax = ga;    else {      tmax = (fhmax>ga) ? fhmax : ga;      tmin = (fhmax<ga) ? fhmax : ga;      tmp1 = tmin / tmax;      tmp1 = tmp1 * tmp1;      *ssmax = tmax*sqrt(1.0 + tmp1);    }  } else {    if(ga<fhmax) {      as = 1.0 + fhmin / fhmax;      at = (fhmax-fhmin) / fhmax;      au = (ga/fhmax);      au = au * au;      c = 2.0 / ( sqrt(as*as+au) + sqrt(at*at+au) );      *ssmin = fhmin * c;      *ssmax = fhmax / c;    } else {      au = fhmax / ga;      if(fabs(au)<GMX_DOUBLE_MIN) {	*ssmin = (fhmin*fhmax)/ga;	*ssmax = ga;      } else {	as = 1.0 + fhmin / fhmax;	at = (fhmax-fhmin)/fhmax;	tmp1 = as*au;	tmp2 = at*au;	c = 1.0 / ( sqrt(1.0+tmp1*tmp1) + sqrt(1.0+tmp2*tmp2));	*ssmin = (fhmin*c)*au;	*ssmin = *ssmin + *ssmin;	*ssmax = ga / (c+c);      }    }  }  return;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -