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

📄 dgetdiagu.c

📁 LU矩阵分解单机版最新版本
💻 C
字号:
/*  * -- Auxiliary routine in SuperLU (version 2.0) -- * Lawrence Berkeley National Lab, Univ. of California Berkeley. * Xiaoye S. Li * September 11, 2003 * */#include "dsp_defs.h"void dGetDiagU(SuperMatrix *L, double *diagU){  /*   * Purpose   * =======   *   * GetDiagU extracts the main diagonal of matrix U of the LU factorization.   *     * Arguments   * =========   *   * L      (input) SuperMatrix*   *        The factor L from the factorization Pr*A*Pc=L*U as computed by   *        dgstrf(). Use compressed row subscripts storage for supernodes,   *        i.e., L has types: Stype = SLU_SC, Dtype = SLU_D, Mtype = SLU_TRLU.   *   * diagU  (output) double*, dimension (n)   *        The main diagonal of matrix U.   *   * Note   * ====   * The diagonal blocks of the L and U matrices are stored in the L   * data structures.   *   */    int_t i, k, nsupers;    int_t fsupc, nsupr, nsupc, luptr;    double *dblock, *Lval;    SCformat *Lstore;    Lstore = L->Store;    Lval = Lstore->nzval;    nsupers = Lstore->nsuper + 1;    for (k = 0; k < nsupers; ++k) {      fsupc = L_FST_SUPC(k);      nsupc = L_FST_SUPC(k+1) - fsupc;      nsupr = L_SUB_START(fsupc+1) - L_SUB_START(fsupc);      luptr = L_NZ_START(fsupc);      dblock = &diagU[fsupc];      for (i = 0; i < nsupc; ++i) {	dblock[i] = Lval[luptr];	luptr += nsupr + 1;      }    }}

⌨️ 快捷键说明

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