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

📄 unscale.c

📁 a software code for computing selected eigenvalues of large sparse symmetric matrices
💻 C
字号:
#include <string.h>#include <ilupack.h>#include <ilupackmacros.h>// #define PRINT_INFOvoid ILUPACKUNDOSCALING(size_t *Fparam, 			size_t *FPREC,			integer   *nlev,			integer   *n,			integer   *ia,			integer   *ja,			FLOAT     *a) {   /*     ILUPACK FORTRAN interface for initialization     param       parameter pointer casted to INTEGER*8     PRE         preconditioner pointer casted to INTEGER*8     nlev        number of AMG levels     n           size of the system     ia          pointer         \     ja          column indices  | of an NxN matrix in sparse row format     a           numerical values/   */  ILUPACKPARAM *param;  AMGLEVELMAT *PRE;  FLOAT  *r, *c;  REALS  val;  integer      i,j,k;  memcpy(&param, Fparam, sizeof(size_t));  memcpy(&PRE,   FPREC,  sizeof(size_t));      /* finally release memory of the preconditioner */  r=PRE->rowscal;  c=PRE->colscal;  // adjust arrays  ja--;  a--;  c--;  for (i=0; i<*n; i++) {      for (j=ia[i]; j<ia[i+1]; j++) {	  k=ja[j];#if defined _SINGLE_REAL_ || defined _DOUBLE_REAL_	  a[j]/=r[i]*c[k];#else	  a[j].r/=r[i].r*c[k].r;	  a[j].i/=r[i].r*c[k].r;#endif	        }  }} // unscale

⌨️ 快捷键说明

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