idamax.c

来自「最著名最快的分子模拟软件」· C语言 代码 · 共 45 行

C
45
字号
#include <math.h>#include "gmx_blas.h"intF77_FUNC(idamax,IDAMAX)(int *n__,                        double *dx,                        int *incx__){  int i,ix,idxmax;  double dmax,tmp;  int n    = *n__;  int incx = *incx__;    if(n<1 || incx<=0)    return -1;  if(n==1)    return 1;  dmax = fabs(dx[0]);  idxmax = 1;  if(incx==1) {    for(i=1;i<n;i++) {      tmp = fabs(dx[i]);      if(tmp>dmax) {	dmax = tmp;	idxmax = i+1;      }    }  } else {    /* Non-unit increments */    ix = incx; /* this is really 0 + an increment */    for(i=1;i<n;i++,ix+=incx) {      tmp = fabs(dx[ix]);      if(tmp>dmax) {	dmax = tmp;	idxmax = ix+1;      }    }      }  return idxmax;}

⌨️ 快捷键说明

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