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

📄 dnrm2.c

📁 svm的实现源码
💻 C
字号:
#include <math.h>  /* Needed for fabs() and sqrt() */#include "blas.h"double dnrm2_(int *n, double *x, int *incx){  long ix, nn, iincx;  double norm, scale, absxi, ssq, temp;/*  DNRM2 returns the euclidean norm of a vector via the function       name, so that          DNRM2 := sqrt( x'*x )       -- This version written on 25-October-1982.          Modified on 14-October-1993 to inline the call to SLASSQ.          Sven Hammarling, Nag Ltd.   */  /* Dereference inputs */  nn = *n;  iincx = *incx;  if( nn > 0 && iincx > 0 )  {    if (nn == 1)    {      norm = fabs(x[0]);    }      else    {      scale = 0.0;      ssq = 1.0;      /* The following loop is equivalent to this call to the LAPACK          auxiliary routine:   CALL SLASSQ( N, X, INCX, SCALE, SSQ ) */      for (ix=(nn-1)*iincx; ix>=0; ix-=iincx)      {        if (x[ix] != 0.0)        {          absxi = fabs(x[ix]);          if (scale < absxi)          {            temp = scale / absxi;            ssq = ssq * (temp * temp) + 1.0;            scale = absxi;          }          else          {            temp = absxi / scale;            ssq += temp * temp;          }        }      }      norm = scale * sqrt(ssq);    }  }  else    norm = 0.0;  return norm;} /* dnrm2_ */

⌨️ 快捷键说明

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