mat 加速模板

Posted goto_1600

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mat 加速模板相关的知识,希望对你有一定的参考价值。

垃圾vector nmsl

struct mat

	static const int md=1e9+7;
	ll a[4][4];
	mat()
	
		memset(a,0,sizeof(a));
	 
	mat(int x)
	
		memset(a,0,sizeof(a));
		a[0][0]=a[1][1]=a[2][2]=a[3][3]=1;
	 
	ll* operator[](int x)
	
		return a[x];
	
	mat operator+(mat r)
	
		mat res;	
		for (int i=0; i<4; ++i)
		
			for (int j=0; j<4; ++j)
			
				res[i][j]=(a[i][j]+r[i][j])%md;
			
		
		return res;
	 
	mat operator-(mat r)
	
		mat res;
		for (int i=0; i<4; ++i)
		
			for (int j=0; j<4; ++j)
			
				res[i][j]=(a[i][j]-r[i][j]+md)%md;
			
		
		return res;
	 
	mat operator*(mat r)
	
		
		mat res;
		for(int i=0; i<4; i++)
			for(int j=i; j<4; j++)
				for(int k=i; k<=j; k++)
					res[i][j]=add((res[i][j]+  a[i][k]*r[k][j] )%md,md);
		return res;
	
;

以上是关于mat 加速模板的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV如何处理Mat作为指针来加速代码?

图像梯度计算加速

Haskell 加速复制矩阵

未捕获的错误:模板解析错误:'mat-label' 不是已知元素:

访问 OpenCV Mat 元素时确定模板类型

编写接受 cv::Mat 或 cv::UMat 类型输入的模板函数