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

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

?? utils.c

?? 關于有直接稀疏PCA的方法
?? C
?? 第 1 頁 / 共 2 頁
字號:
		tol=eigcut/bufmata_shift; // Tolerance parameter for eigs		ncv=4*numeigs; // TODO: Should get a better size estimate here (cf. arapck manual)		info=simarpack(bufmata,n,numeigs,ncv,tol,which,maxitr,1,eig,evector_temp,&nconv,&nummatvec,arcount);		if (info!=0) {			mexPrintf("DSPCA: Not all eigs converged in Arpack. iter=%d.\n",k);			numeigs=n;} // Switch to full eig. decomposition.		alpha=0.0;cblas_dscal(n2,alpha,evector_store,incx);		evector_index=evector_store;  // Pointer to space for newest eigenvector		cblas_dcopy(numeigs*n,evector_temp,incx,evector_index,incx); // TODO: simplify this, evector_temp not really required?				evector_index+=(numeigs*n);		indmax=idxmax(eig,numeigs);dmax=eig[indmax];		alpha=0.0;cblas_dscal(n,alpha,Dvec,incx);cblas_dscal(n,alpha,hvec,incx);		nvls=numeigs;hs=0;minDvec=1.0;		for(h=0;h<numeigs;h++) {  			Dvec[h]=exp((eig[numeigs-1-h]-dmax)/mu);  // Dvec stores hvec, but in proper order.			hvec[h]=exp((eig[h]-dmax)/mu);			hs+=Dvec[h];			sum_sq_eigs+=(Dvec[h]*Dvec[h]);			minDvec=dminif(minDvec,Dvec[h]);
			l2normbound=(n-(h+1))*minDvec*pow(sum_sq_eigs,.5)/(hs*hs)+pow(n-(h+1),.5)*minDvec/hs;
			if (l2normbound<=eigcut && neceigs==0) neceigs=h+1;  // decreases number of eigenvalues if possible
		}		for(h=0;h<numeigs;h++) { // Remove eigenvectors from matrix
			alpha=-eig[h];
			cblas_dger(CblasColMajor,n,n,alpha,evector_temp+h*n,incx,evector_temp+h*n,incx,bufmata,n);}
		while(check_other_eigs==1 && l2normbound>eigcut && nvls<n-2 && (nvls*1.0/n)<perceigs) {			ncv=4*addeigs;				info=simarpack(bufmata,n,addeigs,ncv,tol,which,maxitr,0,eig,evector_temp,&nconv,&nummatvec,arcount);			cblas_dcopy(addeigs*n,evector_temp,incx,evector_index,incx);					evector_index+=(addeigs*n);
			if (info!=0) {				//mexPrintf("DSPCA: Not all eigs converged in Arpack.\n");				numeigs=n;} // Switch to full eig. decomposition.
			for(h=0;h<addeigs;h++) {				Dvec[nvls+h]=exp((eig[addeigs-1-h]-dmax)/mu);				hvec[nvls+h]=exp((eig[h]-dmax)/mu);				hs+=Dvec[nvls+h]; 				sum_sq_eigs+=(Dvec[nvls+h]*Dvec[nvls+h]);				minDvec=dminif(minDvec,Dvec[nvls+h]);
				l2normbound=(n-(nvls+h+1))*minDvec*pow(sum_sq_eigs,.5)/(hs*hs)+pow(n-(nvls+h+1),.5)*minDvec/hs;
				if (l2normbound<=eigcut && neceigs==0) neceigs=nvls+h+1;  // decreases number of eigenvalues if possible
			}			for(h=0;h<addeigs;h++) { // Remove eigenvectors from matrix
				alpha=-eig[h];
				cblas_dger(CblasColMajor,n,n,alpha,evector_temp+h*n,incx,evector_temp+h*n,incx,bufmata,n);}	
			nvls+=addeigs;
		}		numeigs=nvls;}	if (numeigs>=n-2 || (numeigs*1.0/n)>=perceigs){ //just do a full eigenvalue decomposition if already done too many partial or if error in arpack		*jobz='V';*uplo='U';lwork=3*n+n*n;		dsyev(jobz,uplo,&n,Vmat,&n,Dvec,workvec,&lwork,&inflapack); // call LAPACK for full eig.		// compute fmu(X) = mu*log(trace((exp(A+X)/mu)))-mu*log(n) reliably 		indmax=idxmax(Dvec,n);dmax=Dvec[indmax];		for (i=0;i<n;i++) {hvec[i]=exp((Dvec[i]-dmax)/mu);}		buf=doubsum(hvec,n);		fmu=dmax+mu*log(buf/n);		// compute gradient of fmu w.r.t. X, which is the dual variable U 		alpha=0.0;cblas_dscal(n2,alpha,bufmatb,incx);		for (i=0;i<n;i++) {gvec[i]=hvec[i]/buf;bufmatb[i*n+i]=gvec[i];}		alpha=1.0;beta=0.0;		cblas_dgemm(CblasColMajor,CblasNoTrans,CblasNoTrans,n,n,n,alpha,Vmat,n,bufmatb,n,beta,bufmata,n);		cblas_dgemm(CblasColMajor,CblasNoTrans,CblasTrans,n,n,n,alpha,bufmata,n,Vmat,n,beta,Umat,n);		numeigs=n;neceigs=n;}	else { // calculate fmu and Umat if partial eigenvalue approximation is satisfactory		fmu=dmax+mu*log(hs)-mu*log(n);		alpha=0.0;cblas_dscal(n2,alpha,Umat,incx);		for(h=0;h<nvls;h++) { // Reconstruct U matrix from partial eig. decomposition			alpha=hvec[h]/hs;			cblas_dger(CblasColMajor,n,n,alpha,evector_store+h*n,incx,evector_store+h*n,incx,Umat,n);}}	count[numeigs-1]++;	if (info==0){*numeigs_matlab=neceigs;} // Return numeigs. 	bufmata[0]=dmax;	return fmu;}// Simple wrapper for calls to ARPACK int simarpack(double *Amat, int n, int nev, int ncv, double tol, char* which, int maxitr, int printlevel, double* evals, double* evecs, int* nconv, int* nummatvec, int *count){	// From ARPACK examples. See dsvrv1.f, ... 	double *v, *workl, *workd, *d, *resid;	int *select, iparam[11], ipntr[11];	char bmat[2]="I",all[4]="All"; // ARPACK params we only solve simple eigenvalue problems	int ldv, ido, lworkl, info, ierr;	int mode, ishfts, rvec,i,incx=1;	double sigma,zero,minevalest;	double alpha=1.0,beta=0.0;	// Internal ARPACK parameters and vars	ldv=n;zero=0.0;lworkl=ncv*(ncv+10);	info=0;ido=0;ishfts =1;mode=1;rvec=1;	iparam[1-1]=ishfts;iparam[3-1]=maxitr;iparam[7-1]=mode;	*nummatvec=0;		// Allocate memory for arpack workspace	v = (double*)calloc(ldv*ncv, sizeof(double)); 	workl = (double*)calloc(lworkl, sizeof(double));	workd = (double*)calloc(3*n, sizeof(double));	d = (double*)calloc(ncv*2, sizeof(double));	resid = (double*)calloc(n, sizeof(double));	select = (int*)calloc(ncv, sizeof(int));			// ARPACK loop	*count=0;
	do {
		(*count)++;		dsaupd(&ido, bmat, &n, which, &nev, &tol, resid, &ncv, v, &ldv, iparam, ipntr, workd, workl, &lworkl, &info);		//if (iparam[3-1]>1000) printf("ARPACK dsaupd number iters: %d.\n", iparam[3-1]);
		if(ido == -1 || ido == 1) {			// *** Matrix vector product, X is at workd+ipntr[1-1]-1 and the product Y is at workd+ipntr[2-1]-1 ***			cblas_dgemv(CblasColMajor,CblasNoTrans,n,n,alpha,Amat,n,workd + ipntr[1-1] - 1,incx,beta,workd + ipntr[2-1] - 1,incx);			*nummatvec = *nummatvec + 1;}		else if(info != 0) {			if(printlevel > 0) printf("ARPACK dsaupd error (info = %d).\n", info);}} 	while(ido != 99);	// Post processing	dseupd(&rvec, all, select, d, v, &ldv, &sigma, bmat, &n, which, &nev, &tol, resid, &ncv, v, &ldv, iparam, ipntr, workd, workl, &lworkl, &ierr);	if(ierr != 0) {		if(printlevel > 0) printf("ARPACK dseupd error (ierr = %d)\n",ierr);		info = ierr;}	*nconv = iparam[5-1];	if(printlevel > 0 && *nconv < nev) {		printf("Warning: %d out of %d evals converged. dsaupd called %d times\n", *nconv, nev,*count);		if(nev == 1) printf("Best estimate returned.\n");		else printf("\n");}	else{// Store eigensystem		cblas_dcopy(nev,d,1,evals,1);		cblas_dcopy(nev*n,v,1,evecs,1);		if(nev == 1 && *nconv == 0) {			minevalest = 1.0e10;			for(i = 1; i <= ncv; i++) minevalest = -imaxf(-minevalest,-workl[ipntr[6-1]-2+i]);			evals[0] = minevalest;}}	// Free everything	free(select);	free(resid);	free(d);	free(workd);	free(workl);	free(v);	// Return status	if(*nconv < nev) return -1; // Not all eigenvalues were found
	return info;  // Return arapck info otherwise}// do partial eig approximation of exp(bufmata)
// return fmu, and get dmax and numeigs from parameter references
double partial_eig_matlab(int n,int k,double mu,double eigcut,double *bufmata,
				double *bufmatb,double *numeigs_matlab,double *evector_temp,
				double *evector_store,double *evalue,mxArray *input[4],mxArray *output[3],
				double *hvec,double *Vmat,double *Umat,double *workvec,int *count,
				double last_dmax,int addeigs, double perceigs,int check_for_more_eigs)
{
	int numeigs=(int)(*numeigs_matlab),nvls,h,i,incx=1,n2=n*n;
	int lwork,inflapack,indmax,check_other_eigs=0,neceigs=0;
	double alpha,beta,hs=0.0,dmax=1.0,fmu,buf,bufmata_shift=0.0,eigsflag;
	double *evector_index;
	char jobz[1],uplo[1],tolerance[100];	
	double sum_sq_eigs=0.0; // variable for eigcut check, hs is the sum of the eigs
	double l2normbound,minhvec;

	if(numeigs<n-2 && (numeigs*1.0/n)<perceigs) {  // skip all this if we already know we want many eigs
		if (k==0 || numeigs>1 || (numeigs==1 && k%check_for_more_eigs==0)) check_other_eigs=1;
		bufmata_shift=frobnorm(bufmata,n);// simple bound on largest magnitude eigenvalue
		sprintf(tolerance,"options.tol=%.15f;",eigcut/bufmata_shift); // this will be the tolerance parameter for eigs
		mexEvalString(tolerance);
		for (i=0;i<n;i++) bufmata[i*n+i]+=bufmata_shift;
		memcpy(mxGetPr(input[0]),bufmata,n*n*sizeof(double));
		memcpy(mxGetPr(input[1]),numeigs_matlab,sizeof(double));	
		mexCallMATLAB(3,output,4,input,"eigs");
		memcpy(evalue,mxGetPr(output[2]),sizeof(double));
		eigsflag=evalue[0];
		memcpy(evector_temp,mxGetPr(output[0]),numeigs*n*sizeof(double));
		alpha=0.0;cblas_dscal(n2,alpha,evector_store,incx);
		evector_index=evector_store;  // evector_index keeps track of place in evector_store to put newest eigenvector
		memcpy(evector_index,evector_temp,numeigs*n*sizeof(double));  // put the newest eigenvector in storage
		evector_index+=(numeigs*n);
		memcpy(evalue,mxGetPr(output[1]),numeigs*numeigs*sizeof(double));
		dmax=evalue[0];
		for (i=0;i<numeigs;i++) dmax=dmaxf(dmax,evalue[i*numeigs+i]); // get max eig from 1st call to eigs
		for(h=0;h<numeigs;h++) { // Remove eigenvectors from matrix
			alpha=-evalue[h*numeigs+h];
			cblas_dger(CblasColMajor,n,n,alpha,evector_temp+h*n,incx,evector_temp+h*n,incx,bufmata,n);
		}		
		alpha=0.0;cblas_dscal(n,alpha,hvec,incx);
		nvls=numeigs;
		hs=0;minhvec=1.0;
		for(h=0;h<numeigs;h++) {  
			hvec[h]=exp((evalue[h*numeigs+h]-dmax)/mu);
			hs+=hvec[h];
			sum_sq_eigs+=(hvec[h]*hvec[h]);
			minhvec=dminif(minhvec,hvec[h]);
			l2normbound=(n-(h+1))*minhvec*pow(sum_sq_eigs,.5)/(hs*hs)+pow(n-(h+1),.5)*minhvec/hs;
			if (l2normbound<=eigcut && neceigs==0) neceigs=h+1;  // decreases number of eigenvalues if possible
		}
		mxDestroyArray(output[0]); // free memory from MATLAB calls to eigs
		mxDestroyArray(output[1]);
		while(check_other_eigs==1 && l2normbound>eigcut && nvls<n-2 && (nvls*1.0/n)<perceigs) {
			symmetrize(bufmata,bufmatb,n);	// symmetrize A+X so no precision problems		
			cblas_dcopy(n2,bufmatb,incx,bufmata,incx);		
			memcpy(mxGetPr(input[0]),bufmata,n*n*sizeof(double));
			*numeigs_matlab=1.0*addeigs;	
			memcpy(mxGetPr(input[1]),numeigs_matlab,sizeof(double));	
			mexCallMATLAB(3,output,4,input,"eigs");
			if (eigsflag<0.5){
				memcpy(evalue,mxGetPr(output[2]),sizeof(double));
				eigsflag=evalue[0];
			}	
			memcpy(evector_temp,mxGetPr(output[0]),addeigs*n*sizeof(double));
			memcpy(evector_index,evector_temp,addeigs*n*sizeof(double));
			evector_index+=(addeigs*n);
			memcpy(evalue,mxGetPr(output[1]),addeigs*addeigs*sizeof(double));
			for(h=0;h<addeigs;h++) { // Remove eigenvectors from matrix
				alpha=-evalue[h*addeigs+h];
				cblas_dger(CblasColMajor,n,n,alpha,evector_temp+h*n,incx,evector_temp+h*n,incx,bufmata,n);
			}
			for(h=0;h<addeigs;h++) {
				hvec[nvls+h]=exp((evalue[h*addeigs+h]-dmax)/mu);
				hs+=hvec[nvls+h];
				sum_sq_eigs+=(hvec[nvls+h]*hvec[nvls+h]);
				minhvec=dminif(minhvec,hvec[nvls+h]);
				l2normbound=(n-(nvls+h+1))*minhvec*pow(sum_sq_eigs,.5)/(hs*hs)+pow(n-(nvls+h+1),.5)*minhvec/hs;
				if (l2normbound<=eigcut && neceigs==0) neceigs=nvls+h+1;  // decreases number of eigenvalues if possible
			}
			nvls+=addeigs;
			mxDestroyArray(output[0]); // free memory from MATLAB calls to eigs
			mxDestroyArray(output[1]);
			l2normbound=(n-nvls)*minhvec*pow(sum_sq_eigs,.5)/(hs*hs)+pow(n-nvls,.5)*minhvec/hs;
		}
		numeigs=nvls;
	}
	if (numeigs>=n-2 || (numeigs*1.0/n)>=perceigs){ //just do a full eigenvalue decomposition if already done many partial
		*jobz='V';*uplo='U';lwork=3*n+n*n;
		dsyev(jobz,uplo,&n,Vmat,&n,hvec,workvec,&lwork,&inflapack); // call LAPACK (most CPU time is here) (TODO: compute optimal lwork)
		// compute fmu(X) = mu*log(trace((exp(A+X)/mu)))-mu*log(n) reliably 
		indmax=idxmax(hvec,n);dmax=hvec[indmax];
		for (i=0;i<n;i++) {hvec[i]=exp((hvec[i]-dmax)/mu);}
		buf=doubsum(hvec,n);
		fmu=dmax+mu*log(buf/n);
		// compute gradient of fmu w.r.t. X, which is the dual variable U 
		alpha=0.0;cblas_dscal(n2,alpha,bufmatb,incx);
		for (i=0;i<n;i++) bufmatb[i*n+i]=hvec[i]/buf;
		alpha=1.0;beta=0.0;
		cblas_dgemm( CblasColMajor, CblasNoTrans, CblasNoTrans,n,n,n,alpha,Vmat,n,bufmatb,n,beta,bufmata,n);
		cblas_dgemm( CblasColMajor, CblasNoTrans, CblasTrans,n,n,n,alpha,bufmata,n,Vmat,n,beta,Umat,n);
		numeigs=n;neceigs=n;		
	} else { // calculate fmu and Umat if partial eigenvalue approximation is satisfactory
		fmu=(dmax-bufmata_shift)+mu*log(hs)-mu*log(n);
		alpha=0.0;cblas_dscal(n2,alpha,Umat,incx);
		for(h=0;h<nvls;h++) { // Reconstruct U matrix from partial eig. decomposition
			alpha=hvec[h]/hs;
			cblas_dger(CblasColMajor,n,n,alpha,evector_store+h*n,incx,evector_store+h*n,incx,Umat,n);
		}
	}
	if(eigsflag<0.5) *numeigs_matlab=neceigs; // to return from function
	
	if(numeigs<n) bufmata[0]=dmax-bufmata_shift; // to return from function
	else bufmata[0]=dmax;
	bufmata[1]=eigsflag;
	if (eigsflag>0.50) {
		mexPrintf("ERROR: Not all eigenvalues converged in calling Matlab eigs function in partial eigenvalue approximation.  Perhaps maxit not set high enough\n");
	}
	count[numeigs-1]++;
	return fmu;
}

// symmetrize a matrix xmat and return in matrix ymat
void symmetrize(double *xmat,double *ymat,int n)
{
	int i,j,incx=1,n2=n*n;
	double alpha=0.0;

	cblas_dscal(n2,alpha,ymat,incx);	
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			ymat[n*i+j]=(xmat[n*i+j]+xmat[n*j+i])/2;	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院免费观看| 成人福利电影精品一区二区在线观看 | 国产v综合v亚洲欧| 欧美做爰猛烈大尺度电影无法无天| 日韩精品自拍偷拍| 亚洲日韩欧美一区二区在线| 国产自产视频一区二区三区| 欧美性色综合网| 亚洲欧美日韩人成在线播放| 国产精品一区二区久激情瑜伽| 91精选在线观看| 亚洲午夜久久久久久久久久久| 本田岬高潮一区二区三区| 精品久久久久久久久久久院品网| 亚洲国产美国国产综合一区二区| 波多野结衣亚洲| 久久久久成人黄色影片| 精品午夜久久福利影院| 欧美一区二区网站| 日韩中文字幕亚洲一区二区va在线| 91色九色蝌蚪| 亚洲欧洲综合另类| 97精品国产97久久久久久久久久久久| 欧美不卡在线视频| 蓝色福利精品导航| 欧美成人高清电影在线| 蜜桃视频一区二区三区在线观看| 欧美日韩精品一区二区在线播放| 亚洲黄色av一区| 91成人看片片| 亚洲午夜久久久久久久久久久| 在线观看成人免费视频| 亚洲成人免费影院| 欧美精三区欧美精三区| 婷婷六月综合亚洲| 日韩久久久精品| 国产一区亚洲一区| 中文字幕+乱码+中文字幕一区| 成人午夜视频免费看| 国产精品嫩草影院com| 99久久99久久免费精品蜜臀| 亚洲人成精品久久久久久| 91福利在线播放| 亚洲18色成人| 精品剧情在线观看| 粉嫩av一区二区三区| 亚洲色图.com| 欧美日韩精品系列| 老司机免费视频一区二区三区| 精品久久五月天| 成人美女视频在线看| 伊人性伊人情综合网| 欧美日韩免费视频| 国产裸体歌舞团一区二区| 国产精品久久久久精k8| 欧美性高清videossexo| 韩国视频一区二区| 亚洲日本在线a| 制服.丝袜.亚洲.另类.中文| 国产成人在线视频网站| 亚洲午夜久久久久久久久电影网 | 国产夜色精品一区二区av| 91在线丨porny丨国产| 五月开心婷婷久久| 国产人成亚洲第一网站在线播放| 色爱区综合激月婷婷| 全国精品久久少妇| 国产精品成人一区二区艾草 | 色美美综合视频| 黑人巨大精品欧美一区| 亚洲麻豆国产自偷在线| 日韩免费看网站| www.亚洲精品| 美女在线一区二区| 亚洲女性喷水在线观看一区| 日韩你懂的电影在线观看| 色婷婷综合久久久| 国产乱子伦视频一区二区三区| 一区二区三区免费在线观看| 久久精品免费在线观看| 宅男噜噜噜66一区二区66| 成人一级黄色片| 麻豆高清免费国产一区| 亚洲激情第一区| 中文字幕第一区第二区| 日韩美女一区二区三区四区| 在线观看成人小视频| www.日韩精品| 国产一区二区在线视频| 日本三级亚洲精品| 一区二区三区在线视频免费观看| 国产欧美日韩综合精品一区二区| 91精品国产综合久久福利软件| 97久久精品人人做人人爽| 国产福利91精品一区二区三区| 日本不卡视频在线观看| 午夜精品123| 洋洋av久久久久久久一区| 亚洲欧洲av色图| 国产女人aaa级久久久级| 亚洲精品一区二区三区精华液| 91麻豆精品国产91| 欧美军同video69gay| 欧美日高清视频| 欧美日韩成人一区二区| 欧美特级限制片免费在线观看| 色综合中文综合网| 亚洲成av人片在线观看| 一区二区中文视频| 国产精品高清亚洲| 亚洲欧洲国产专区| 中文字幕一区二区三区在线观看| 国产日韩精品一区二区三区| 国产欧美视频一区二区三区| 国产喂奶挤奶一区二区三区| 久久久精品日韩欧美| 国产免费观看久久| 国产精品你懂的在线欣赏| 国产精品美女www爽爽爽| 国产欧美综合色| 国产精品你懂的在线欣赏| 一区二区中文字幕在线| 亚洲欧美激情一区二区| 亚洲国产人成综合网站| 日本人妖一区二区| 韩国成人福利片在线播放| 国产福利一区二区三区| av亚洲精华国产精华| 91老师片黄在线观看| 欧美视频一二三区| 日韩精品一区二区三区在线观看 | 国产一区二区电影| 不卡一区中文字幕| 欧美日韩视频在线观看一区二区三区| 欧美一区二区三区日韩| 精品国产一区二区在线观看| 国产精品卡一卡二| 亚洲成人在线网站| 国产老妇另类xxxxx| 色婷婷亚洲婷婷| 日韩天堂在线观看| 国产精品久久久久一区二区三区共| 国产精品久久久久久妇女6080| 亚洲1区2区3区视频| 经典一区二区三区| 91农村精品一区二区在线| 在线观看欧美日本| 26uuu色噜噜精品一区二区| 亚洲人亚洲人成电影网站色| 亚洲成人福利片| 国产不卡在线播放| 欧美日韩激情一区二区| 久久精品免费在线观看| 亚洲一级二级在线| 国产91丝袜在线观看| 欧美性猛交一区二区三区精品| 久久精品人人做人人爽人人| 亚洲高清免费观看| 成人av资源站| 精品国产百合女同互慰| 一区二区三区在线播| 国产一区二区福利| 欧美精品一二三| ●精品国产综合乱码久久久久| 视频一区在线播放| jlzzjlzz亚洲日本少妇| 欧美xxxxx牲另类人与| 一区二区三区在线观看网站| 国产精品1区2区3区在线观看| 欧美丝袜丝交足nylons图片| 国产精品色婷婷久久58| 久久99最新地址| 欧美少妇一区二区| 亚洲欧美日韩国产手机在线 | 中文字幕一区视频| 国产精品系列在线观看| 日韩欧美一区二区免费| 亚洲成人av中文| 在线观看www91| 亚洲视频在线一区观看| 国产91精品一区二区麻豆网站| 精品日韩在线一区| 日韩国产欧美在线播放| 欧美性大战xxxxx久久久| 亚洲精品一二三四区| av午夜一区麻豆| 国产精品视频第一区| 国产成人超碰人人澡人人澡| 亚洲精品一区二区三区影院| 久久成人麻豆午夜电影| 欧美日韩高清一区二区不卡| 亚洲综合丁香婷婷六月香| 色八戒一区二区三区| 一区二区成人在线视频| 欧美综合久久久| 亚洲图片欧美一区| 欧美男女性生活在线直播观看| 午夜精品久久久久久久99樱桃| 欧美绝品在线观看成人午夜影视| 天堂av在线一区|