这里有一个想法;如果有人写了它,他们必须给我版权信用!自动内置任意矩阵模板,使得这些矩阵不是数学类型,而更像是存储或结构类型。根据模板参数,这些矩阵可以简单到标量值,也可以复杂到理论上近乎无限维的实体,如果计算机能够允许它而不会耗尽内存,但在实践中,这将受限于架构、操作系统和编译器整数或积分类型大小的固有细节。因此,一个低维度的体积矩阵可能是3维的,但由于它可能看起来像这样:
Matrix<type, 1000000000,1000000000,1000000000> matOutOfBounds
,所以会耗尽内存,而一个更高维度的矩阵,例如
Matrix<type, 2,2,2,2,2,2,2,2>
,它是一个8D体积矩阵。如果它们是“完美矩阵”,就可以进行简化。也就是说,每个维度都有相同数量的元素,而不管它们有多少维。例如:
<3,3>
<3,3,3>
<3,3,3,3>
都是完美矩阵。简化将是
Matrix<type, 4^4>
,与
Matrix<type, 4,4,4,4>
相同,给出一个4x4x4x4的4D体积矩阵,其中有96个元素在一个4D结构中。其中“Matrix”将是一个3D体积矩阵,具有许多元素,但具有3D体积结构,因为我们当前的时钟和指南针是这样运作的,即360度到整个圆,60分钟,60秒,除了有那么多浮点存储元素。
下面的内容目前看起来像是某人会在他们的项目中包含的可能的C++库; 但这里的想法是将其作为内置语言类型。然后,任何使用您的语言和编译器的人都可以随意使用它们。他们可以使用任意数量的维度,例如此模板所描绘的:
// Header Declaration
template<typename ClassType, unsigned int...>
matrix{
}; // No need to show body just declaration for concept
// User Code Would Be
matrix<float,2,3,4,5,7> mat; // This would create a 2x3x4x5x7 matrix that is a 5th dimensional volumetric matrix
// Default type
matrix<int> mat2; // This creates a 1x1 matrix that would in essence be a scalar.
现在我展示的是C++可变模板的当前语法。这里的想法是这些矩阵容器将成为内置类型!
想要使它们数学化?当然可以,但用户必须定义自己的“算法、方法、函数或例程”。
它们必须被独立定义的原因是:
mat<float, 3,3,3> mat1; 3x3x3 3D Volumetric Matrix - 27 elements
mat<float, 5,5> mat2; 5x5 2D Linear-Quadratic (Area) Matrix - 25 elements
mat<int, 6,7,8> mat3; 6x7x8 3D Volumetric Matrix - 336 elements
mat<bool, 8> mat4; 1x8 1D Linear Matrix (Array); transpose?
mat4::transpose;
mat4::transpose;
class TheMotherLoad {
mat<TheMotherLoad*, 9,9,9,9,9,9,9,9,9> mat9;
mat<TheMotherLoad*, 9^9> mat9
由于矩阵的属性决定了可以对它们进行哪种类型的数学运算,因此必须在外部进行。