亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ilupre_1.5.cc

?? sparselib庫
?? CC
字號:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*             ********   ***                                 SparseLib++    *//*          *******  **  ***       ***      ***                              *//*           *****      ***     ******** ********                            *//*            *****    ***     ******** ********              R. Pozo        *//*       **  *******  ***   **   ***      ***                 K. Remington   *//*        ********   ********                                 A. Lumsdaine   *//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*//*                                                                           *//*                                                                           *//*                     SparseLib++ : Sparse Matrix Library                   *//*                                                                           *//*               National Institute of Standards and Technology              *//*                        University of Notre Dame                           *//*              Authors: R. Pozo, K. Remington, A. Lumsdaine                 *//*                                                                           *//*                                 NOTICE                                    *//*                                                                           *//* Permission to use, copy, modify, and distribute this software and         *//* its documentation for any purpose and without fee is hereby granted       *//* provided that the above notice appear in all copies and supporting        *//* documentation.                                                            *//*                                                                           *//* Neither the Institutions (National Institute of Standards and Technology, *//* University of Notre Dame) nor the Authors make any representations about  *//* the suitability of this software for any purpose.  This software is       *//* provided ``as is'' without expressed or implied warranty.                 *//*                                                                           *//*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/#include <stdlib.h>#include "ilupre.h"#include "qsort.h"#include "spblas.h"CompCol_ILUPreconditioner::CompCol_ILUPreconditioner(const CompCol_MatDouble &A): l_colptr_(A.dim(1) + 1), u_colptr_(A.dim(1) + 1),   l_rowind_(0), u_rowind_(0),  l_val_(0), u_val_(0){  int i, j, k, pn, qn, rn;  double multiplier;  // Copy  dim_[0] = A.dim(0);  dim_[1] = A.dim(1);  l_nz_ = u_nz_ = 0;  // Get size of l and u  for (i = 0; i < dim_[1]; i++)    for (j = A.col_ptr(i); j < A.col_ptr(i+1); j++)      if (A.row_ind(j) > i)    l_nz_++;      else    u_nz_++;  l_val_.newsize(l_nz_);  u_val_.newsize(u_nz_);  l_rowind_.newsize(l_nz_);  u_rowind_.newsize(u_nz_);  l_colptr_(0) = u_colptr_(0) = 0;  // Split up A into l and u  for (i = 0; i < dim_[1]; i++) {    l_colptr_(i+1) = l_colptr_(i);    u_colptr_(i+1) = u_colptr_(i);        for (j = A.col_ptr(i); j < A.col_ptr(i+1); j++)      if (A.row_ind(j) > i) {    k = l_colptr_(i+1)++;    l_val_(k) = A.val(j);    l_rowind_(k) = A.row_ind(j);      } else if (A.row_ind(j) <= i) {    k = u_colptr_(i+1)++;    u_val_(k) = A.val(j);    u_rowind_(k) = A.row_ind(j);      }  }    for (i = 0; i < dim_[1]; i++) {    QSort(l_rowind_, l_val_, l_colptr_[i], l_colptr_[i+1] - l_colptr_[i]);    QSort(u_rowind_, u_val_, u_colptr_[i], u_colptr_[i+1] - u_colptr_[i]);  }  // Factor matrix  for (i = 0; i < dim_[0] - 1; i++) {    multiplier = u_val_(u_colptr_(i+1)-1);        for (j = l_colptr_[i]; j < l_colptr_[i+1]; j++)      l_val_[j] /= multiplier;        for (j = u_colptr_[i+1]; j < u_colptr_[i+2]-1; j++) {      multiplier = u_val_[j];      qn = j + 1;      rn = l_colptr_[i+1];      for (pn = l_colptr_[u_rowind_[j]];        l_rowind_[pn] <= i + 1 && pn < l_colptr_[u_rowind_[j]+1];        pn++) {    while (u_rowind_[qn] < l_rowind_[pn] && qn < u_colptr_[i+2])      qn++;    if (l_rowind_[pn] == u_rowind_[qn])      u_val_[qn] -= multiplier * l_val_[pn];      }      for (; pn < l_colptr_[u_rowind_[j]+1]; pn++) {    while (l_rowind_[rn] < l_rowind_[pn] && rn < l_colptr_[i+2])      rn++;    if (l_rowind_[pn] == l_rowind_[rn])      l_val_[rn] -= multiplier * l_val_[pn];      }    }  }}CompRow_ILUPreconditioner::CompRow_ILUPreconditioner(const CompRow_MatDouble &A): l_rowptr_(A.dim(1) + 1), u_rowptr_(A.dim(1) + 1),   l_colind_(0), u_colind_(0),  l_val_(0), u_val_(0){  int i, j, k, pn, qn, rn;  double multiplier;  // Copy  dim_[0] = A.dim(0);  dim_[1] = A.dim(1);  l_nz_ = u_nz_ = 0;  // Get size of l and u  for (i = 0; i < dim_[1]; i++)    for (j = A.row_ptr(i); j < A.row_ptr(i+1); j++)      if (A.col_ind(j) < i)    l_nz_++;      else    u_nz_++;  l_val_.newsize(l_nz_);  u_val_.newsize(u_nz_);  l_colind_.newsize(l_nz_);  u_colind_.newsize(u_nz_);  l_rowptr_(0) = u_rowptr_(0) = 0;  // Split up A into l and u  for (i = 0; i < dim_[1]; i++) {    l_rowptr_(i+1) = l_rowptr_(i);    u_rowptr_(i+1) = u_rowptr_(i);        for (j = A.row_ptr(i); j < A.row_ptr(i+1); j++)      if (A.col_ind(j) < i) {    k = l_rowptr_(i+1)++;    l_val_(k) = A.val(j);    l_colind_(k) = A.col_ind(j);      } else if (A.col_ind(j) >= i) {    k = u_rowptr_(i+1)++;    u_val_(k) = A.val(j);    u_colind_(k) = A.col_ind(j);      }  }  for (i = 0; i < dim_[1]; i++) {    QSort(l_colind_, l_val_, l_rowptr_[i], l_rowptr_[i+1] - l_rowptr_[i]);    QSort(u_colind_, u_val_, u_rowptr_[i], u_rowptr_[i+1] - u_rowptr_[i]);  }  // Factor matrix  for (i = 1; i < dim_[0]; i++) {    for (j = l_rowptr_[i]; j < l_rowptr_[i+1]; j++) {      pn = u_rowptr_[l_colind_[j]];      multiplier = (l_val_[j] /= u_val_[pn]);      qn = j + 1;      rn = u_rowptr_[i];      for (pn++; u_colind_[pn] < i && pn < u_rowptr_[l_colind_[j]+1]; pn++) {    while (l_colind_[qn] < u_colind_[pn] && qn < l_rowptr_[i+1])      qn++;    if (u_colind_[pn] == l_colind_[qn])      l_val_[qn] -= multiplier * u_val_[pn];      }      for (; pn < u_rowptr_[l_colind_[j]+1]; pn++) {    while (u_colind_[rn] < u_colind_[pn] && rn < u_rowptr_[i+1])      rn++;    if (u_colind_[pn] == u_colind_[rn])      u_val_[rn] -= multiplier * u_val_[pn];      }    }  }}MV_Vector<double>CompCol_ILUPreconditioner::solve(const MV_Vector<double> &x) const {  int M = x.size();  MV_Vector<double> y(M);  MV_Vector<double> work(M);  int descra[9];  descra[0] = 0;  // lower unit  descra[1] = 1;  descra[2] = 1;  F77NAME(dcscsm) (0, M, 1, 1, NULL, 1.0,           descra, &l_val_(0), &l_rowind_(0), &l_colptr_(0),           &x(0), M, 0.0, &y(1), M,           &work(0), M);  // upper diag  descra[1] = 2;  descra[2] = 0;  F77NAME(dcscsm) (0, M, 1, 1, NULL, 1.0,           descra, &u_val_(0), &u_rowind_(0), &u_colptr_(0),           &y(0), M, 0.0, &y(1), M,           &work(0), M);  return y;} MV_Vector<double>CompCol_ILUPreconditioner::trans_solve(const MV_Vector<double> &x) const {  int M = x.size();  MV_Vector<double> y(M);  MV_Vector<double> work(M);  int descra[9];  descra[0] = 0;  // upper diag transpose  descra[1] = 2;  descra[2] = 0;  F77NAME(dcscsm) (1, M, 1, 1, NULL, 1.0,           descra, &u_val_(0), &u_rowind_(0), &u_colptr_(0),           &x(0), M, 0.0, &y(1), M,           &work(0), M);  // lower unit transpose  descra[1] = 1;  descra[2] = 1;  F77NAME(dcscsm) (1, M, 1, 1, NULL, 1.0,           descra, &l_val_(0), &l_rowind_(0), &l_colptr_(0),           &y(0), M, 0.0, &y(1), M,           &work(0), M);  return y;}MV_Vector<double>CompRow_ILUPreconditioner::solve(const MV_Vector<double> &x) const {  int M = x.size();  MV_Vector<double> y(M);  MV_Vector<double> work(M);  int descra[9];  descra[0] = 0;  // lower unit  descra[1] = 1;  descra[2] = 1;  F77NAME(dcsrsm) (0, M, 1, 1, NULL, 1.0,           descra, &l_val_(0), &l_colind_(0), &l_rowptr_(0),           &x(0), M, 0.0, &y(1), M,           &work(0), M);  // upper diag  descra[1] = 2;  descra[2] = 0;  F77NAME(dcsrsm) (0, M, 1, 1, NULL, 1.0,           descra, &u_val_(0), &u_colind_(0), &u_rowptr_(0),           &y(0), M, 0.0, &y(1), M,           &work(0), M);  return y;} MV_Vector<double>CompRow_ILUPreconditioner::trans_solve(const MV_Vector<double> &x) const {  int M = x.size();  MV_Vector<double> y(M);  MV_Vector<double> work(M);  int descra[9];  descra[0] = 0;  // upper diag transpose  descra[1] = 2;  descra[2] = 0;  F77NAME(dcsrsm) (1, M, 1, 1, NULL, 1.0,           descra, &u_val_(0), &u_colind_(0), &u_rowptr_(0),           &x(0), M, 0.0, &y(1), M,           &work(0), M);  // lower unit transpose  descra[1] = 1;  descra[2] = 1;  F77NAME(dcsrsm) (1, M, 1, 1, NULL, 1.0,           descra, &l_val_(0), &l_colind_(0), &l_rowptr_(0),           &y(0), M, 0.0, &y(1), M,           &work(0), M);  return y;} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
7777精品伊人久久久大香线蕉 | 欧美一区二区视频观看视频| 国产一区二区视频在线| 欧美a级一区二区| 久久99久久99小草精品免视看| 亚洲福利视频三区| 亚洲成人精品一区| 日韩成人免费看| 丝袜美腿一区二区三区| 午夜视频在线观看一区二区| 天堂成人国产精品一区| 热久久久久久久| 久久国产视频网| 国产二区国产一区在线观看| 成人网在线播放| 91女神在线视频| 精品视频色一区| 日韩免费高清av| 国产三级欧美三级日产三级99| 2020国产精品| 中文字幕一区二区三区四区| 亚洲美女区一区| 天天色综合天天| 国产盗摄女厕一区二区三区| 成人久久18免费网站麻豆| 91小视频在线| 91精品国产乱码久久蜜臀| 欧美精品一区二区久久婷婷| 国产精品视频你懂的| 亚洲图片自拍偷拍| 国产米奇在线777精品观看| 懂色av一区二区三区蜜臀| 色拍拍在线精品视频8848| 5858s免费视频成人| 国产日韩欧美制服另类| 一区二区三区四区不卡视频| 美女一区二区三区| 一本久久a久久免费精品不卡| 欧美日韩视频在线观看一区二区三区 | 久久一留热品黄| 亚洲欧美日韩国产综合| 美女www一区二区| 日本高清不卡在线观看| wwww国产精品欧美| 午夜欧美电影在线观看| aa级大片欧美| 久久男人中文字幕资源站| 一区二区三区av电影| 国产精华液一区二区三区| 欧美日韩二区三区| 亚洲欧洲日韩一区二区三区| 久久福利视频一区二区| 一本久久精品一区二区| 国产网站一区二区| 男人操女人的视频在线观看欧美| 99精品久久免费看蜜臀剧情介绍| 日韩精品一区二区三区swag| 亚洲bt欧美bt精品777| 色婷婷精品久久二区二区蜜臀av| 久久久综合激的五月天| 日日摸夜夜添夜夜添国产精品| 色噜噜狠狠色综合中国| 日韩一区在线免费观看| 成人性色生活片免费看爆迷你毛片| 日韩午夜av电影| 日日摸夜夜添夜夜添精品视频| 色婷婷精品久久二区二区蜜臀av | 日韩欧美亚洲一区二区| 午夜不卡av在线| 欧美日产在线观看| 午夜久久福利影院| 欧美一区欧美二区| 日韩一区精品视频| 日韩欧美视频一区| 久久激情五月激情| 久久久午夜精品| 国产精品夜夜爽| 国产日韩三级在线| 99国产精品国产精品久久| 亚洲欧美韩国综合色| 在线一区二区视频| 日韩中文欧美在线| 精品少妇一区二区三区日产乱码 | 欧美日韩一区二区三区四区| 亚洲综合一区二区三区| 欧美三级韩国三级日本三斤| 亚洲bt欧美bt精品777| 日韩午夜激情免费电影| 国产麻豆视频一区二区| 国产精品私人影院| 色美美综合视频| 免费观看91视频大全| 久久久99精品免费观看不卡| 成人精品视频一区二区三区| 综合中文字幕亚洲| 538在线一区二区精品国产| 老鸭窝一区二区久久精品| 国产日韩一级二级三级| 在线观看视频一区| 麻豆国产欧美日韩综合精品二区| 精品成人佐山爱一区二区| 国产成人午夜高潮毛片| 亚洲综合清纯丝袜自拍| 欧美成人a∨高清免费观看| 成人污污视频在线观看| 午夜av电影一区| 日本一二三不卡| 91精品国产全国免费观看| 成人午夜激情在线| 男男gaygay亚洲| 国产精品麻豆欧美日韩ww| 在线不卡免费欧美| 成人av在线资源网站| 视频一区在线播放| 亚洲同性同志一二三专区| 欧美一级淫片007| 色综合夜色一区| 国产乱码一区二区三区| 亚洲一级片在线观看| 国产视频一区在线观看| 欧美久久久久免费| 一本一道波多野结衣一区二区| 奇米四色…亚洲| 一区二区三区不卡视频 | 一区二区国产盗摄色噜噜| 91精品国产综合久久小美女| 97se亚洲国产综合自在线观| 精品写真视频在线观看| 亚洲成人动漫av| 亚洲欧洲日韩av| 国产欧美va欧美不卡在线| 欧美一级xxx| 6080午夜不卡| 欧美蜜桃一区二区三区| 在线影院国内精品| 91网站在线观看视频| 国产成人av电影| 精品在线播放免费| 奇米四色…亚洲| 日韩精品视频网站| 日韩制服丝袜先锋影音| 亚洲动漫第一页| 一区二区三区免费网站| 一区二区三区日韩精品| 亚洲婷婷综合久久一本伊一区| 国产欧美日韩卡一| 久久久久久夜精品精品免费| 日韩一区二区高清| 91精品黄色片免费大全| 日韩欧美国产麻豆| 日韩欧美的一区| 精品国产电影一区二区| 精品国产乱码久久久久久图片 | 中文字幕成人网| 精品国产电影一区二区| 久久久影视传媒| 中文字幕第一区二区| 中文欧美字幕免费| 亚洲视频资源在线| 亚洲午夜一二三区视频| 午夜欧美在线一二页| 美女一区二区视频| 国产一区二区三区四区在线观看| 激情图片小说一区| 国产xxx精品视频大全| 91最新地址在线播放| 欧美色区777第一页| 欧美一区二区三区男人的天堂| 日韩一区二区精品| 国产午夜精品在线观看| 亚洲欧美色一区| 欧美aa在线视频| 丰满亚洲少妇av| 91福利国产成人精品照片| 在线不卡中文字幕播放| 久久在线观看免费| 亚洲欧美视频在线观看视频| 婷婷久久综合九色综合伊人色| 久久av中文字幕片| 91网站视频在线观看| 欧美一区二区三区日韩| 国产精品乱人伦一区二区| 亚洲成av人片在线观看无码| 老司机精品视频在线| 91麻豆精品秘密| 精品美女被调教视频大全网站| 中文字幕日韩精品一区| 日韩av中文字幕一区二区三区| 国产米奇在线777精品观看| 一本久道久久综合中文字幕 | 国产激情一区二区三区四区| 91视频在线观看免费| 欧美一区二区三区喷汁尤物| 国产精品久久看| 久久爱另类一区二区小说| 91捆绑美女网站| 久久久亚洲精品一区二区三区| 亚洲国产精品欧美一二99| av在线不卡网| 久久久亚洲综合|