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

📄 tnt_sparse_matrix_csr.h

📁 一个矩阵计算的库 包括几乎所有需要的矩阵运算 对3d计算和图形处理有很大帮助
💻 H
字号:
/*** Template Numerical Toolkit (TNT)** Mathematical and Computational Sciences Division* National Institute of Technology,* Gaithersburg, MD USA*** This software was developed at the National Institute of Standards and* Technology (NIST) by employees of the Federal Government in the course* of their official duties. Pursuant to title 17 Section 105 of the* United States Code, this software is not subject to copyright protection* and is in the public domain. NIST assumes no responsibility whatsoever for* its use by other parties, and makes no guarantees, expressed or implied,* about its quality, reliability, or any other characteristic.**/#ifndef TNT_SPARSE_MATRIX_CSR_H#define TNT_SPARSE_MATRIX_CSR_H#include "tnt_array1d.h"namespace TNT{/**	Read-only view of a sparse matrix in compressed-row storage	format.  Neither array elements (nonzeros) nor sparsity	structure can be modified.  If modifications are required,	create a new view.	<p>	Index values begin at 0.	<p>	<b>Storage requirements:</b> An (m x n) matrix with	nz nonzeros requires no more than  ((T+I)*nz + M*I)	bytes, where T is the size of data elements and	I is the size of integers.	*/template <class T>class Sparse_Matrix_CompRow {private:	Array1D<T>    val_;       // data values (nz_ elements)    Array1D<int>  rowptr_;    // row_ptr (dim_[0]+1 elements)    Array1D<int>  colind_;    // col_ind  (nz_ elements)    int dim1_;        // number of rows    int dim2_;        // number of cols  public:	Sparse_Matrix_CompRow(const Sparse_Matrix_CompRow &S);	Sparse_Matrix_CompRow(int M, int N, int nz, const T *val, 						const int *r, const int *c);        inline   const T&      val(int i) const { return val_[i]; }    inline   const int&         row_ptr(int i) const { return rowptr_[i]; }    inline   const int&         col_ind(int i) const { return colind_[i];}    inline   int    dim1() const {return dim1_;}    inline   int    dim2() const {return dim2_;}       int          NumNonzeros() const {return val_.dim1();}    Sparse_Matrix_CompRow& operator=(					const Sparse_Matrix_CompRow &R);};/**	Construct a read-only view of existing sparse matrix in	compressed-row storage format.	@param M the number of rows of sparse matrix	@param N the  number of columns of sparse matrix	@param nz the number of nonzeros	@param val a contiguous list of nonzero values	@param r row-pointers: r[i] denotes the begining position of row i		(i.e. the ith row begins at val[row[i]]).	@param c column-indices: c[i] denotes the column location of val[i]*/template <class T>Sparse_Matrix_CompRow<T>::Sparse_Matrix_CompRow(int M, int N, int nz,	const T *val, const int *r, const int *c) : val_(nz,val), 		rowptr_(M, r), colind_(nz, c), dim1_(M), dim2_(N) {}}// namespace TNT#endif

⌨️ 快捷键说明

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