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

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

?? vector.h

?? 矩陣運算的模板類
?? H
?? 第 1 頁 / 共 3 頁
字號:
	Vector<T> C=A;
	for(int i=1;i<=C.Size();i++) C.vec[i]*=B.vec[i];
	return C;
}


template <typename T> Vector<T> mtl_divide(const Vector<T>& A, const Vector<T>& B){
	assert(A.Size()==B.Size());
	assert(A.type==B.type);
	Vector<T> C=A;
	for(int i=1;i<=C.Size();i++) C.vec[i]/=B.vec[i];
	return C;
}

template <typename T> ostream& mtl_ostream(ostream& s, const Vector<T>& A) {	s << "  ";	for(int i=1; i<=A.n; i++) {
		s << Num2str(A[i]) << " ";
	}	s << endl;	return s;}

template <typename T> istream& mtl_istream(istream& s, Vector<T>& A) {	for (int i=1; i<=A.n; i++)		s >> A[i];	return s;}

template <typename T> inline int Length(const Vector<T>& A) {
	return A.Size(); 
}


template <typename T> inline T Sum(const Vector<T>& A) {
	return A.Sum_(); 
}


template <typename T> inline T Max(const Vector<T>& A,int* idx=0){
	return A.Max_(idx); 
}


template <typename T> Matrix<T> Diag(const Vector<T> A){	Matrix<T> C(A.Size(),A.Size());	C=0;	for(int i=1;i<=NumRows(C);i++) C[i][i]=A[i];	return C;}

template <typename T> double Norm(const Vector<T>& A, int p=2){
	if(p==mtl_numeric_limits<int>::max()) {
		double maxA=0;
		for(int i=1;i<=A.Size();i++) if(maxA<Abs(A[i])) maxA=Abs(A[i]);
		return maxA;		
	}
	else if(p==mtl_numeric_limits<int>::min()) {
		double minA=mtl_numeric_limits<double>::max();
		for(int i=1;i<=A.Size();i++) if(minA>Abs(A[i])) minA=Abs(A[i]);
		return minA;
	}
	else return Vector<T>::normp(A,p);}


template <typename T> double Vector<T>::normp(const Vector<T>& A, int p) {
	double z=0, sum=0;
	int i;
	for(i=1;i<=A.Size();i++) if(z<Abs(A.vec[i])) z=Abs(A.vec[i]);
	if(z==0) return 0;
	for(i=1;i<=A.Size();i++) sum+=Ipow(Abs(A.vec[i])/z,p);
	return (z*pow(sum,1.0/p));
}

template <typename T> inline T Mean(const Vector<T>& A){	return A.Sum_()/A.n;}


template <typename T> Vector<T> Cumsum(const Vector<T>& A){
	Vector<T> C(A.n);
	T s=0;
	for(int i=1;i<=A.n;i++) { C(i)=s+A(i); s+=A(i); }
	return C;
}


template <typename T> Vector<T> Cumprod(const Vector<T>& A){
	Vector<T> C(A.n);
	T p=1;
	for(int i=1;i<=A.n;i++) { C(i)=p*A(i); p*=A(i); }
	return C;
}

template <typename T> string Num2str(const Vector<T>& A){	string s;	for(int i=1;i<=A.Size();i++){		if(i>1) s += " ";		s += Num2str(A[i]);	}	return s;}

// order=1: ascending order// order=-1: descending ordertemplate <typename T> int VecSort(const Vector<T>& A, Vector<T>& v, Vector<int>& orderA, int order){	int i;	int n_=A.Size();	v=A;	orderA.Resize(n_);	for(i=1;i<=n_;i++) orderA[i]=i;	for(i=1;i<=n_;i++){		for(int j=i+1;j<=n_;j++){			if(order*v[i] > order*v[j]){				T a=v[i];				v[i]=v[j];				v[j]=a;				int b=orderA[i];				orderA[i]=orderA[j];				orderA[j]=b;			}		}	}	return 1;}

template <typename T> inline Vector<T> Transpose(const Vector<T>& A){
	return A.ct();}

template <typename T> Matrix<T> OuterProd(const Vector<T>& A, const Vector<T>& B){	Matrix<T> C(A.Size(),B.Size());	for(int i=1;i<=A.Size();i++) for(int j=1;j<=B.Size();j++) C[i][j]=A.vec[i]*B.vec[j];	return C;}

template <typename T> T InnerProd(const Vector<T>& A, const Vector<T>& B){	assert(A.Size()==B.Size());	T sum=T();	for(int i=1;i<=A.Size();i++) sum+=A.vec[i]*B.vec[i];	return sum;}


template <typename T> Vector<T> Cross(const Vector<T>& A, const Vector<T>& B){
	assert(A.Size()==3 && B.Size()==3);
	Vector<T> C(3,A.Type());
	C[1]=A[2]*B[3]-A[3]*B[2];
	C[2]=A[3]*B[1]-A[1]*B[3];
	C[3]=A[1]*B[2]-A[2]*B[1];
	return C;
}


template <typename T> inline T Dot(const Vector<T>& A, const Vector<T>& B){
	return InnerProd(A,B);
}

template <typename T> inline Vector<T> ArrayMultiply(const Vector<T>& A, const Vector<T>& B){	return mtl_times(A,B);}

template <typename T> inline Vector<T> ArrayDivide(const Vector<T>& A, const Vector<T>& B){	return mtl_divide(A,B);}

// ToMatrix returns mxn matrix whose rows are repetitions of vector Atemplate <typename T> Matrix<T> ToMatrix(const Vector<T>& A, int m=1){
	assert(A.Type()==ROW_VECTOR);	Matrix<T> C(m,A.Size());	for(int i=1;i<=m;i++) C[i]=A;	return C;}


template <typename T> void Vector<T>::FromInt(const Vector<int>& A){
	Resize(A.Size());
	for(int i=1;i<=A.Size();i++) (*this)[i]=T(A[i]);
	return;
}


template <typename T> void Vector<T>::FromFloat(const Vector<float>& A){
	Resize(A.Size());
	for(int i=1;i<=A.Size();i++) (*this)[i]=T(A[i]);
	return;
}


template <typename T> void Vector<T>::FromDouble(const Vector<double>& A){
	Resize(A.Size());
	for(int i=1;i<=A.Size();i++) (*this)[i]=T(A[i]);
	return;
}


template <typename T> Vector<int> Vector<T>::ToInt(){
	Vector<int> C(Size());
	for(int i=1;i<=A.Size();i++) C[i]=(double)(*this)[i];
	return C;
}


template <typename T> Vector<float> Vector<T>::ToFloat(){
	Vector<float> C(Size());
	for(int i=1;i<=A.Size();i++) C[i]=(float)(*this)[i];
	return C;
}


template <typename T> Vector<double> Vector<T>::ToDouble(){
	Vector<double> C(Size());
	for(int i=1;i<=A.Size();i++) C[i]=(double)(*this)[i];
	return C;
}


template <typename T> Vector<int> Int(const Vector<T>& A){
	Vector<int> C(A.Size());
	for(int i=1;i<=A.Size();i++) C[i]=(int)A[i];
	return C;
}


template <typename T> Vector<float> Float(const Vector<T>& A){
	Vector<float> C(A.Size());
	for(int i=1;i<=A.Size();i++) C[i]=(float)A[i];
	return C;
}

template <typename T> Vector<double> Double(const Vector<T>& A){	Vector<double> C(A.Size());	for(int i=1;i<=A.Size();i++) C[i]=(double)A[i];	return C;}


template <typename T> Vector<T> Abs(const Vector<T>& A){
	Vector<T> C(A.Size());
	for(int i=1;i<=A.Size();i++) C.vec[i]=T(Abs(A.vec[i]));
	return C;
}


template <typename T> Vector<T> Sign(const Vector<T>& A){
	Vector<T> C(A.Size());
	for(int i=1;i<=A.Size();i++) C.vec[i]=T( ( (A.vec[i]>0) ? 1 : ((A.vec[i]<0) ? (-1) : 0) ) );
	return C;
}

template <typename T> Vector<T> Pow(const Vector<T>& A, double b){
	Vector<T> C(A.Size());
	for(int i=1;i<=A.Size();i++) C.vec[i]=pow((double)A.vec[i],b);
	return C;
}


template <typename T> Vector<T> Pow(const Vector<T>& A, int b){
	Vector<T> C(A.Size());
	for(int i=1;i<=A.Size();i++) C.vec[i]=Ipow(A.vec[i],b);
	return C;
}


template <typename T> Vector<T> Exp(const Vector<T>& A){	Vector<T> C(A.Size());	for(int i=1;i<=A.Size();i++) C.vec[i]=exp(A.vec[i]);	return C;}

template <typename T> Vector<T> Log(const Vector<T>& A){	Vector<T> C(A.Size());	for(int i=1;i<=A.Size();i++) C.vec[i]=Log(A.vec[i]);	return C;}

template <typename T> Vector<T> Digamma(const Vector<T>& A){	Vector<T> C(A.Size());	for(int i=1;i<=A.Size();i++) C.vec[i]=Digamma(A.vec[i]);	return C;}

template <typename T> Vector<T> Gammaln(const Vector<T>& A){	Vector<T> C(A.Size());	for(int i=1;i<=A.Size();i++) C.vec[i]=Gammaln(A.vec[i]);	return C;}


template <typename T> Vector<T> FFT(const Vector<T>& A,int N){
	Vector<T> C;
	Vector<T>::FFTBase(A,N,1,C);
	return C;
}


template <typename T> Vector<T> IFFT(const Vector<T>& A,int N){
	Vector<T> C;
	Vector<T>::FFTBase(A,N,-1,C);
	return C;
}


template <typename T> int Vector<T>::FFTBase(const Vector<T>& A,int N,int isign,Vector<T>& C){
	int log2n=0; int pow2n=1;
	for(log2n=0;pow2n<N;log2n++) pow2n*=2;
	C.Resize(2*pow2n);
	for(int i=1;i<=A.Size();i++) C[i]=A[i];
	Vector<T>::FFTCore(C,pow2n,isign);
	if(isign<0) C /= T(pow2n);
	return pow2n;
}


template <typename T> inline void FFT_SWAP(T& a,T& b){
	T temp=a;
	a=b;
	b=temp;
}


template <typename T> int Vector<T>::FFTCore(Vector<T>& data,int nn,int isign)
{
	int n,mmax,m,j,istep,i;
	double wtemp,wr,wpr,wpi,wi,theta;
	double tempr,tempi;

	n=nn << 1;
	j=1;
	for (i=1;i<n;i+=2) {
		if (j > i) {
			FFT_SWAP(data[j],data[i]);
			FFT_SWAP(data[j+1],data[i+1]);
		}
		m=n >> 1;
		while (m >= 2 && j > m) {
			j -= m;
			m >>= 1;
		}
		j += m;
	}
	mmax=2;
	while (n > mmax) {
		istep=2*mmax;
		theta=6.28318530717959/(isign*mmax);
		wtemp=sin(0.5*theta);
		wpr = -2.0*wtemp*wtemp;
		wpi=sin(theta);
		wr=1.0;
		wi=0.0;
		for (m=1;m<mmax;m+=2) {
			for (i=m;i<=n;i+=istep) {
				j=i+mmax;
				tempr=wr*data[j]-wi*data[j+1];
				tempi=wr*data[j+1]+wi*data[j];
				data[j]=data[i]-tempr;
				data[j+1]=data[i+1]-tempi;
				data[i] += tempr;
				data[i+1] += tempi;
			}
			wr=(wtemp=wr)*wpr-wi*wpi+wr;
			wi=wi*wpr+wtemp*wpi+wi;
		}
		mmax=istep;
	}
	return 1;
}


template <typename T> Vector<T> Merge(const Vector<T>& A, const Vector<T>& B)
{
	Vector<T> C(A.Size()+B.Size());
	int i=1,n=1;
	for(i=1;i<=A.Size();i++,n++) C[n]=A[i];
	for(i=1;i<=B.Size();i++,n++) C[n]=B[i];
	return C;
}


// ------------------------------------------------------------------------
// Vector utilities
// ------------------------------------------------------------------------
template <typename T> Vector<T> Vector<T>::Rand(int m)
{
	Vector<T> C(m);
	for(int i=1;i<=m;i++) C[i]=(float)RANDF();
	return C;
}


template <typename T> Vector<T> Vector<T>::Randn(int m)
{
	Vector<T> C(m);
	for(int i=1;i<=m;i++) C[i]=T(GaussianRandom());
	return C;
}


template <typename T> Vector<T> Vector<T>::CRandn(int m)
{
	Vector<T> C(m);
	for(int i=1;i<=m;i++) {
		C[i]=T(GaussianRandom(),GaussianRandom());
	}
	return C;
}


template <typename T> void Vector<T>::SetPermIdentity()
{
	for(int i=1;i<=n;i++) (*this)[i]=T(i);
}


#ifndef DISABLE_COMPLEX
#ifdef __GNUC__template <typename T> ostream& operator<<(ostream& s, const complex<T>& c) {   s << "(" << c.real() << "," << c.imag() << ")";   return s;}#endif
#endif#undef local_max#undef local_min
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产视频在线| 99精品热视频| 在线亚洲一区二区| 亚洲精品一区二区三区福利| 一区二区三区在线不卡| 成人免费看片app下载| 日韩欧美在线123| 亚洲一区二区视频在线观看| 成人午夜在线播放| 日韩欧美不卡一区| 丝袜a∨在线一区二区三区不卡| av一区二区三区黑人| 国产人久久人人人人爽| 久久er99精品| 日韩午夜在线观看视频| 亚洲国产欧美日韩另类综合| 色哟哟欧美精品| 中文字幕日韩一区| 丰满岳乱妇一区二区三区| 亚洲精品一区二区三区99 | 欧美一区国产二区| 亚洲最色的网站| 色网站国产精品| 亚洲欧洲另类国产综合| 高清shemale亚洲人妖| 精品国产百合女同互慰| 老色鬼精品视频在线观看播放| 欧美日韩精品欧美日韩精品| 亚洲无线码一区二区三区| 欧美亚洲一区二区在线| 伊人色综合久久天天| 91女神在线视频| 亚洲国产精品嫩草影院| 欧美日韩国产免费一区二区| 午夜欧美在线一二页| 欧美人与z0zoxxxx视频| 美女精品自拍一二三四| 精品电影一区二区| 国产露脸91国语对白| 国产欧美日韩综合精品一区二区| 国产激情精品久久久第一区二区| 国产日韩欧美一区二区三区乱码| 欧美一区二区在线免费观看| 中文字幕亚洲欧美在线不卡| 93久久精品日日躁夜夜躁欧美| 成人免费一区二区三区视频| 欧美系列在线观看| 日本强好片久久久久久aaa| 2023国产精品| 欧美三级韩国三级日本三斤 | 欧美色爱综合网| 日韩精品电影在线观看| 欧美一级国产精品| 国产精品一区二区不卡| 亚洲欧美一区二区三区孕妇| 欧美日韩不卡在线| 国产激情视频一区二区在线观看| 亚洲欧洲综合另类| 日韩欧美美女一区二区三区| 国产又粗又猛又爽又黄91精品| 国产精品麻豆网站| 欧美日韩在线直播| 国产成人综合在线观看| 夜夜爽夜夜爽精品视频| 日韩精品一区二区三区中文不卡| www.日本不卡| 日韩电影免费在线看| 国产精品乱人伦中文| 欧美三级日韩三级| 成人国产视频在线观看| 午夜精品一区二区三区三上悠亚| 国产日韩v精品一区二区| 欧美亚洲动漫精品| 成人国产精品免费| 日本中文一区二区三区| 国产精品久久久久久久久久久免费看 | 欧美午夜电影一区| 国产不卡视频在线播放| 天天av天天翘天天综合网| 欧美国产97人人爽人人喊| 欧美高清精品3d| 97久久超碰国产精品| 国产在线麻豆精品观看| 爽好多水快深点欧美视频| 亚洲欧美一区二区久久| 久久久久久久久一| 欧美电视剧免费全集观看| 欧美中文字幕不卡| 9i在线看片成人免费| 经典三级一区二区| 五月天激情综合网| 尤物av一区二区| 国产精品不卡在线观看| 久久伊人蜜桃av一区二区| 正在播放亚洲一区| 欧美日韩中字一区| 在线影视一区二区三区| 不卡一区在线观看| 成人精品视频一区二区三区| 狠狠色丁香九九婷婷综合五月| 日韩av二区在线播放| 午夜精品成人在线| 亚洲午夜影视影院在线观看| 亚洲激情五月婷婷| 亚洲图片激情小说| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 久久九九影视网| 久久综合色鬼综合色| 亚洲精品一区二区在线观看| 欧美一级片免费看| 欧美电视剧在线看免费| 精品久久免费看| 欧美成人精品高清在线播放| 日韩精品一区国产麻豆| 精品国产乱码久久| 26uuu亚洲| 国产精品毛片久久久久久| 欧美激情一区三区| 亚洲欧美一区二区三区孕妇| 亚洲影视在线播放| 午夜成人在线视频| 青青草国产成人av片免费| 久久99国产乱子伦精品免费| 韩国精品主播一区二区在线观看 | 日本道色综合久久| 欧美日韩一区精品| 日韩久久精品一区| 国产免费观看久久| 亚洲女同ⅹxx女同tv| 亚洲mv大片欧洲mv大片精品| 日本视频一区二区| 国产精品一区二区91| 色综合久久久网| 91精品国产色综合久久ai换脸 | 日韩无一区二区| 亚洲精品一区二区三区蜜桃下载 | 日韩精品电影在线| 国产成人精品三级麻豆| 91影院在线免费观看| 欧美精品色一区二区三区| 精品国产91洋老外米糕| 中文字幕一区二区三区在线观看| 亚洲高清中文字幕| 国产成人精品综合在线观看 | 丁香一区二区三区| 色婷婷av一区| www激情久久| 亚洲精品乱码久久久久久黑人| 免费在线成人网| 92精品国产成人观看免费| 91精品欧美久久久久久动漫| 国产精品欧美综合在线| 婷婷一区二区三区| 懂色av一区二区三区蜜臀| 欧美日韩亚洲综合在线 | 精品一区二区久久| 91蜜桃免费观看视频| 日韩欧美激情四射| 一区二区免费在线| 国产高清不卡一区| 欧美卡1卡2卡| 亚洲精品水蜜桃| 国产麻豆精品在线| 日韩一区二区麻豆国产| 一个色综合网站| 国产成人在线看| 欧美电视剧在线观看完整版| 一区二区三区四区在线播放| 高清国产午夜精品久久久久久| 91精品国产高清一区二区三区| 国产精品丝袜久久久久久app| 免费av成人在线| 在线影视一区二区三区| 国产精品灌醉下药二区| 精品一区二区三区欧美| 欧美日韩精品高清| 亚洲欧洲综合另类在线| 成人av电影在线观看| 久久婷婷色综合| 精品午夜一区二区三区在线观看| 欧美巨大另类极品videosbest| 亚洲美女免费视频| av影院午夜一区| 国产精品狼人久久影院观看方式| 国产一区二区毛片| 精品国产一区二区三区久久久蜜月| 污片在线观看一区二区| 欧美性色aⅴ视频一区日韩精品| 国产精品国模大尺度视频| 成人激情av网| 国产精品美女视频| 成人免费福利片| 日韩毛片精品高清免费| 成人少妇影院yyyy| 中文字幕一区三区| 91看片淫黄大片一级在线观看| 国产精品久久久久aaaa樱花| 91一区二区三区在线观看| 国产精品成人一区二区艾草| 91免费小视频|