前面在介绍vectorSpace时提到了两个模板类——innerProduct及crossProduct。今天就简单介绍引入这两个模板类的头文件products.h文件。从文件名里就可以看出在该头文件中定义了与乘积相关的类,的确是这样的。在该文件中除了定义了innerProduct和crossProduct之外还定义了outterProduct,scalarProduct及powProduct。下面分别介绍一下:
1、outerProduct模板
template<class arg1, class arg2>
class outerProduct {...} //定义了arg1类和arg2类进行外积之后得到的积的秩及其类型
2、crossProduct模板
template<class arg1, class arg2>
class crossProduct {...} //定义了arg1类和arg2类进行叉乘之后得到的积的秩及其类型
3、innerProduct模板
template<class arg1, class arg2>
class innerProduct {...} //定义了arg1类和arg2类进行内积之后得到的积的秩及其类型
4、scalarProduct模板
template<class arg1, class arg2>
class scalarProduct {...} //定义了arg1类和arg2类进行数乘之后得到的积的秩及其类型
5、powProduct模板
template<class arg1,int arg2>
class powProduct {...} //定义了arg1类进行arg2次乘幂之后得到的积的秩及其类型
以上这些模板类给标量,矢量及张量之间的乘积运算带来了统一的形式,因此使用起来更加方便。
评论