2016-02-01 2 views
3

Почему System.Numerics namespace определяет типы Matrix3x2 и Matrix4x4, но не предлагает матрицы 2x2 или 3x3? Это было бы по крайней мере полезно.Почему только Matrix3x2 и Matrix4x4?

+0

Я думаю, что матрицы 3x2 и 4x4 часто возникают в контексте графического программирования. Разумеется, многие из методов этих типов предполагают, что их прецеденты являются преимущественно преобразованиями координат. –

+0

Поскольку SIMD/SSE в соответствии с [changelog] (https://msdn.microsoft.com/en-us/library/ms171868 (v = vs.110) .aspx), но я не знаю, является ли это действительным оправдание (например, возможно, поддержка ЦП для матриц разного размера, не знаю). – CodeCaster

+2

Они поступают из библиотеки Win2D, микро-оптимизированной, чтобы попытаться воспользоваться SIMD. Сообщение в блоге [находится здесь] (http://blogs.msdn.com/b/win2d/archive/2015/06/02/winrt-vector-and-matrix-types-in-windows-10.aspx). –

ответ

3

(Отказ от ответственности: Я работаю на библиотеках System.Numerics в Microsoft)

Комментарии выше являются правильными. Мы поддерживаем несколько типов фиксированного размера, потому что они очень часто используются в 2D и 3D-графических приложениях, для взаимодействия с основными числами Windows для Windows, а также для библиотек, таких как Win2D.

В ближайшем будущем, скорее всего, мы сосредоточимся на улучшении существующих типов в библиотеке (путем добавления дополнительных и улучшенных возможностей генерации кода SIMD), прежде чем добавлять новые библиотеки в библиотеку.