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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? matrix.h

?? 該算法是張青復(fù)與周愛民的基于RM-MEDA算法的程序
?? H
字號:
//
//Please find details of the method from
//
//	Q. Zhang, A. Zhou and Y. Jin, "RM-MEDA: A Regularity Model Based Multiobjective Estimation of Distribution Algorithm", IEEE Trans. Evolutionary Computation, Vol. 12, no. 1, pp41-63, 2008.
//
//The source codes are free for reserach work. If you have any problem with the source codes, please contact with 
//	Qingfu Zhang, 
//		Department of Computing and Electronic Systems,
//		University of Essex,
//		Colchester, CO4 3SQ, UK
//		http://cswww.essex.ac.uk/staff/zhang
//		Email: qzhang@essex.ac.uk
//    Aimin Zhou
//		Department of Computing and Electronic Systems,
//		University of Essex,
//		Colchester, CO4 3SQ, UK
//		http://privatewww.essex.ac.uk/~azhou/
//		Email: azhou@essex.ac.uk or amzhou@gmail.com 
//Programmer:		
//		Aimin Zhou
//Last Update:
//		Feb. 21, 2008
//
//Matrix.h : 2-D data structure
//

#ifndef	AZ_CMatrix_H
#define	AZ_CMatrix_H

#include <list>
#include <iostream>
#include <string>
#include <iomanip>
#include <vector>

//!\brief	az namespace, the top namespace
namespace az
{

//!\brief	alg namespace, contains algorithms
namespace alg
{
	//!\brief error process for DATA namespace
	class error : public std::exception 
	{
	public:
		//!\brief	constructor
		//!\param	msg error message
		//!\return	void
		error(std::string const& msg) throw()
			: msg_(std::string("DATA error: ") + msg)
		{}
		
		//!\brief	destructor
		virtual ~error() throw() {}

		//!\brief	look up the error reason
		//!\return	error message
		virtual const char* what() const throw() { return msg_.c_str(); }
	protected:	
		std::string msg_;	//!< error message
	};

	//! check to ensure the expression is right
	#ifdef _DEBUG
		#define CHECK(cond, str)	if(!(cond))	{ throw error(str); }
	#else
		#define CHECK(cond, str)	{}	//if(!(cond))	{ throw error(str); }
	#endif

	//!\brief real vector
	typedef std::vector<double>	FVECTOR;

	//! index structure based on list
	typedef std::list< unsigned int >	LINDEX;

	//! index structure based on vector
	typedef std::vector< unsigned int > VINDEX;

	//!\brief Matrix class
	class Matrix
	{
	protected:
		unsigned int mRow,	//!< row size 
					 mCol;	//!< column size
		double*		 pData;	//!< pointer to the data		
	public:
		//!\brief	constructor
		//!\param	row row size
		//!\param	col column size
		//!\return	void
		Matrix(unsigned int row = 0, int unsigned col = 0);

		//!\brief	constructor
		//!\brief	mat reference matrix
		//!\return	void
		Matrix(const Matrix& mat);

		//!\brief	destructor
		//!\return	void
		~Matrix();

		//!\brief	reset the matrix size
		//!\param	row row size
		//!\param	col column size
		//!\return	reference of the matrix
		Matrix& Resize(unsigned int row, unsigned int col);

		//!\brief	create an identity matrix
		//!\param	size row and column size
		//!\return	reference of the matrix
		Matrix& Identity(unsigned int size);

		//!\brief	get the row size
		//!\return	row size
		inline unsigned int RowSize() {return mRow;}

		//!\brief	get the column size
		//!\return	column size
		inline unsigned int ColSize() {return mCol;}

		//!\brief	get the pointer to the data
		//!\return	the pointer to the data
		inline double* operator()() {return pData;}
		
		//!\brief	get an element
		//!\param	row row number
		//!\param	col column number
		//!\return	reference to the element
		double& operator()(unsigned int row, unsigned int col);

		//!\brief	reset to another matrix
		//!\param	mat matrix reference
		//!\return	reference of the matrix
		Matrix& operator= (const Matrix& mat);
		
		//!\brief	get a row
		//!\param	row row number
		//!\param	value a vector to store the row
		//!\return	reference to value
		FVECTOR& Row(unsigned int row, FVECTOR& value);

		//!\brief	get a column
		//!\param	col column number
		//!\param	value a vector to store the column
		//!\return	reference to value
		FVECTOR& Column(unsigned int col, FVECTOR& value);

		//!\brief	get a sub-matrix except a row and a column
		//!\param	row row number
		//!\param	col column number
		//!\param	mat a matrix to store the sub-matrix
		//!\return	sub-matrix
		Matrix& Sub(unsigned int row, unsigned int col, Matrix& mat);

		//!\brief	calculate the determinant of a square matrix
		//!\return	the deterministic
		double Det();

		//!\brief	translate the matrix
		//!\return	reference to the matrix
		Matrix& Trans();

		//!\brief	inverse the matrix
		//!\return	reference to the matrix
		Matrix& Inv();
		
		//!\brief	calculate the eigenvalue and egienvectors
		//!\param	eigvalue eigenvalue
		//!\param	eigvector eigenvector
		//!\return	void
		void Eig(FVECTOR& eigvalue, Matrix& eigvector);

		//!\brief	multiply a matrix
		//!\param	mat another matrix
		//!\param	result reuslt matrix
		//!\return	reuslt matrix
		Matrix& Multiply(Matrix& mat, Matrix& result);

		//!\brief	left multiply a vector
		//!\param	vec vector
		//!\param	result reuslt vector
		//!\return	reuslt vector
		FVECTOR& LeftMultiply(FVECTOR& vec, FVECTOR& result);

		//!\brief	right multiply a vector
		//!\param	vec vector
		//!\param	result reuslt vector
		//!\return	reuslt vector
		FVECTOR& RightMultiply(FVECTOR& vec, FVECTOR& result);

		//!\brief	divide a scalar
		//!\param	sca scalar
		//!\return	reference to the matrix
		Matrix& Divide(double sca);

		//!\brief	get the mean of all columns
		//!\param	mean the mean vector
		//!\return	mean vector
		FVECTOR& ColMean(FVECTOR& mean);

		//!\brief	get the mean of all rows
		//!\param	mean the mean vector
		//!\return	mean vector
		FVECTOR& RowMean(FVECTOR& mean);

		//!\brief	get standard variation of all columns
		//!\param	std the std vector
		//!\return	std vector
		FVECTOR& ColStd(FVECTOR& std);

		//!\brief	get standard variation of all rows
		//!\param	std the std vector
		//!\return	std vector
		FVECTOR& RowStd(FVECTOR& std);

		//!\brief	subtract a row vector
		//!\param	value row vector
		//!\return	reference to the matrix
		Matrix& RowSub(FVECTOR& value);

		//!\brief	subtract a column vector
		//!\param	value row vector
		//!\return	reference to the matrix
		Matrix& ColSub(FVECTOR& value);

		//!\brief	read a matrix
		//!\param	is input stream
		//!\param	mat matrix
		//!\return	reference to input stream
		friend std::istream& operator>> (std::istream& is, Matrix& mat);

		//!\brief	write a matrix
		//!\param	os output stream
		//!\param	mat matrix
		//!\return	reference to output stream
		friend std::ostream& operator<< (std::ostream& os, Matrix& mat);

		//!\brief	solve A X = b(Numerical Recipes in C++ pp.50-51)
		//!\param	mat LU docomposition of A
		//!\param	indx input vector that records the row permutation by LUdcmp
		//!\param	b right hand of equation
		//!\return	void
		friend void LUbksb(Matrix& mat, std::vector<unsigned int>& indx, std::vector<double>& b);

		//!\brief	LU decompostion of a rowwise permutation(Numerical Recipes in C++ pp.49-50)
		//!\param	mat input and output matrix
		//!\param	indx output vector that records the row permutation
		//!\param	d +-1 depending on whether the number of row interchanges was even or odd
		//!\return	void
		friend void LUdcmp(Matrix& mat, std::vector<unsigned int>& indx, double& d);
	protected:
		//!\brief Householder reduction of Matrix a to tridiagonal form.
		//!
		//! Algorithm: Martin et al., Num. Math. 11, 181-195, 1968.
		//! Ref: Smith et al., Matrix Eigensystem Routines -- EISPACK Guide
		//! Springer-Verlag, 1976, pp. 489-494.
		//! W H Press et al., Numerical Recipes in C, Cambridge U P,
		//! 1988, pp. 373-374. 
		//!\param	eigenvalue eigenvalue
		//!\param	interm temporal variable
		//!\param	eigenvector eigenvector
		//!\return	void
		void tred2(FVECTOR& eigenvalue, FVECTOR& interm, Matrix& eigenvector);

		//!\brief Tridiagonal QL algorithm -- Implicit 
		//!\param	eigenvalue eigenvalue
		//!\param	interm temporal variable
		//!\param	eigenvector eigenvector
		//!\return	void
		void tqli(FVECTOR& eigenvalue, FVECTOR& interm, Matrix& eigenvector);

		//!\brief	sort the eigenvalue by decreasing order
		//!\param	eigenvalue eigenvalue
		//!\param	eigenvector eigenvector
		//!\return	void
		void Sort(FVECTOR& eigenvalue, Matrix& eigenvector);
	};//class Matrix

	//!\brief linear algebra functions

	//!\brief	cholesky factorization of A: L*L'
	//!\param	L factorization matrix(output)
	//!\param	A a square matrix(input)
	//!\return	success or not
	bool Cholesky(Matrix&L, Matrix&A);

	//!\brief 	Solve a linear system A*X = B, using cholesky factorization of A: L*L'
	//!\param	X a matrix so that L*L'*X = B(output)
	//!\param	A a square matrix(input)
	//!\param	B righthand matrix(input)
	//!\return	success or not
	bool CholeskySolve(Matrix& X, Matrix& A, Matrix& B);

	//!\brief	For an m-by-n matrix A with m >= n, so that A = U*S*V'.
	//!\param	U m-by-n orthogonal matrix(output)
	//!\param	S n-by-n diagonal matrix(output)
	//!\param	V n-by-n orthogonal matrix V(output)
	//!\param	A m-by-n matrix(input)
	//!\param	no
	void SVD(Matrix& U, Matrix&S, Matrix&V, Matrix& A);

	//!\brief	find Pseudo inverse matrix by SVD
	//!\param	inA inverse A(output)
	//!\param	A m-by-n matrix(input)
	//!\param	no
	void pinv(Matrix& inA, Matrix& A);

} //namespace alg

} //namespace az

#endif //AZ_MATRIX_H

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久精品| 制服丝袜中文字幕亚洲| 久久看人人爽人人| 美女视频黄a大片欧美| 欧美日韩亚洲高清一区二区| 视频一区二区中文字幕| 一本久道中文字幕精品亚洲嫩| 久久精品欧美一区二区三区麻豆| 九九九久久久精品| 日韩一区二区精品葵司在线| 亚欧色一区w666天堂| 欧美午夜精品一区| 日韩精品五月天| 欧美夫妻性生活| 免费视频一区二区| www国产成人| 91在线观看污| 日韩制服丝袜av| 精品久久久久久久久久久久久久久久久 | 国产精品久久久久久久裸模| 色综合久久综合网欧美综合网 | 丝袜美腿亚洲一区| 国产精品久久久一区麻豆最新章节| jlzzjlzz国产精品久久| 亚洲视频一二三| 精品久久久久久久久久久久久久久| 精品一区免费av| 亚洲欧美日韩电影| 久久午夜国产精品| 欧美日韩精品专区| 97精品电影院| 韩日av一区二区| 亚洲高清在线视频| 亚洲天堂免费看| 国产欧美在线观看一区| 欧美在线观看一二区| 国产精品中文字幕欧美| 国产精品日日摸夜夜摸av| 欧美一区二区成人| 91原创在线视频| 成人av免费网站| 国产一区二区精品久久99| 日韩中文欧美在线| 天天做天天摸天天爽国产一区| 一区二区三区小说| 中文字幕亚洲在| 亚洲人成7777| 夜夜精品浪潮av一区二区三区| 亚洲综合精品自拍| 五月综合激情网| 美腿丝袜亚洲一区| 国产美女视频一区| 99久久久精品| 在线一区二区三区做爰视频网站| 一道本成人在线| 欧美亚洲尤物久久| 26uuu国产一区二区三区| 精品国产乱码久久久久久久久| 337p日本欧洲亚洲大胆精品| 国产日韩视频一区二区三区| 中文字幕av不卡| 午夜精品久久久久久| 国产黄色精品视频| 91丨porny丨最新| 在线观看免费视频综合| 91精品国产综合久久香蕉麻豆 | 久久蜜桃av一区精品变态类天堂| 精品国产99国产精品| 精品国产一区久久| 国产精品毛片a∨一区二区三区| 中国色在线观看另类| 亚洲成人一区二区| 国产91露脸合集magnet| 91久久香蕉国产日韩欧美9色| 日本精品免费观看高清观看| 欧美一区二区三区电影| 国产亚洲精品福利| 亚洲电影你懂得| 国产精品一卡二| 欧美剧在线免费观看网站| 久久久综合激的五月天| 国产成都精品91一区二区三| 东方aⅴ免费观看久久av| 欧美剧情片在线观看| 中文字幕中文在线不卡住| 日韩二区三区四区| 成人性生交大片免费看在线播放| 欧美日韩国产影片| 国产亚洲精品中文字幕| 蜜臀av一级做a爰片久久| 丁香激情综合五月| 久久众筹精品私拍模特| 天堂一区二区在线| 欧美视频一二三区| 国产精品麻豆视频| www.日韩在线| 国产欧美综合在线观看第十页| 精品一区二区三区欧美| 欧美日韩在线综合| 午夜精品福利久久久| 欧美色窝79yyyycom| 婷婷成人激情在线网| 欧美色成人综合| 日本色综合中文字幕| 国产精品丝袜黑色高跟| 粉嫩久久99精品久久久久久夜| 91同城在线观看| 日韩中文字幕一区二区三区| 制服丝袜亚洲色图| 韩国一区二区三区| 亚洲精品美国一| 日韩一区二区三区免费观看| 久久精品国产成人一区二区三区| 在线观看91av| 国产**成人网毛片九色 | 欧美性色综合网| 丝袜亚洲精品中文字幕一区| 久久综合色鬼综合色| 91丨porny丨国产入口| 美国十次了思思久久精品导航| 18欧美亚洲精品| 欧美v日韩v国产v| 欧美无乱码久久久免费午夜一区| 久久精品国产澳门| 一区二区三区中文在线| 日韩一区二区免费视频| 97久久精品人人爽人人爽蜜臀| 亚洲国产精品久久久久婷婷884| 国产视频一区不卡| 色成人在线视频| 99久久99久久免费精品蜜臀| 久久不见久久见中文字幕免费| 亚洲午夜三级在线| 亚洲欧美日韩久久精品| 国产精品剧情在线亚洲| 久久久精品日韩欧美| 欧美三级电影网| av网站免费线看精品| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲一区二区三区四区在线免费观看| 国产亚洲成aⅴ人片在线观看| 久久久亚洲欧洲日产国码αv| 2024国产精品| 久久亚洲精华国产精华液| 日韩一区二区三区视频| 欧美亚洲国产bt| 欧美日韩精品免费观看视频| 成人av在线一区二区| 色综合久久中文字幕| 色婷婷久久久亚洲一区二区三区| 91污在线观看| 7777精品伊人久久久大香线蕉超级流畅| 91蜜桃免费观看视频| 日本黄色一区二区| 欧美午夜影院一区| 久久精品亚洲麻豆av一区二区| 精品福利一区二区三区免费视频| 精品久久久久久久久久久久久久久久久 | 激情丁香综合五月| 大美女一区二区三区| 欧美综合色免费| 欧美videossexotv100| 亚洲天天做日日做天天谢日日欢| 奇米色一区二区| 国产91丝袜在线播放0| 不卡视频免费播放| 日韩女优av电影| 国产精品视频看| 美洲天堂一区二卡三卡四卡视频 | 国产精品免费视频一区| 日韩综合一区二区| 国产成人精品一区二区三区网站观看| 欧美伊人久久久久久久久影院| 欧美一区午夜视频在线观看| 国产精品不卡一区| 国产精品影视在线观看| 91.成人天堂一区| 亚洲午夜在线电影| 国产精品18久久久久久久久| 欧美一级一级性生活免费录像| 亚洲另类中文字| 成人性视频网站| 成人免费在线播放视频| 久久99精品国产麻豆婷婷洗澡| 欧美久久一二区| 亚洲综合精品久久| 欧美亚洲动漫另类| 亚洲影视资源网| 成人av网站在线| 亚洲美女在线国产| 99精品在线免费| 一区二区三区蜜桃网| 色婷婷久久综合| 亚洲欧美色图小说| 欧美日韩日本视频| 视频在线在亚洲| 久久网站最新地址| 91色婷婷久久久久合中文| 国产精品国产精品国产专区不片| 97久久超碰国产精品|