📄 lsmatrxb.h
字号:
/* ARPACK++ v1.0 8/1/1997 c++ interface to ARPACK code. MODULE LSMatrxB.h Function template for the one dimensional discrete Laplacian on the interval [0, 1], with zero Dirichlet boundary conditions. ARPACK Authors Richard Lehoucq Danny Sorensen Chao Yang Dept. of Computational & Applied Mathematics Rice University Houston, Texas*/#ifndef LSMATRXB_H#define LSMATRXB_H#include <math.h>template<class FLOAT, class INT>void SymmetricMatrixB(INT n, INT& nnz, FLOAT* &A, INT* &irow, INT* &pcol, char uplo = 'L'){ // Defining internal variables. INT i, j; FLOAT h2, df, dd; // Defining constants. h2 = (FLOAT(n+1)*FLOAT(n+1)); dd = 2.0*h2; df = -h2; // Defining the number of nonzero elements in A. nnz = 2*n-1; // Creating output vectors. A = new FLOAT[nnz]; irow = new INT[nnz]; pcol = new INT[n+1]; // Defining matrix A. pcol[0] = 0; i = 0; if (uplo == 'U') { for (j = 0; j < n; j++) { if (j) { A[i] = df; irow[i++] = j-1; } A[i] = dd; irow[i++] = j; pcol[j+1] = i; } } else { for (j = 0; j < n; j++) { A[i] = dd; irow[i++] = j; if (n-j-1) { A[i] = df; irow[i++] = j+1; } pcol[j+1] = i; } }} // SymmetricMatrixB.#endif // LSMATRXB_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -