Привет, я пытаюсь использовать SIMD Моно для обработки координат (X, Y, Z) в моем проекте, но я вижу только поддержку типов Vector2 и Vector4. Кто-нибудь сталкивался с этим раньше, и есть ли обходные пути?
Заранее спасибо.
Это связано с тем, как работают регистры. Вы можете просто использовать Vector4f и установить для части W значение 0 или 1 (в зависимости от того, что вы хотите сделать с вектором), и все будет хорошо.
W
http://tirania.org/blog/archive/2008/Nov-03.html объясняет:
На x86 процессорах эти инструкции использовать новый банк регистрации (XMM регистры) и может быть настроен на работать на 16 байтов одновременно, используя количество возможных комбинаций: * byte-level operations on 16 elements. * short-level operations on 8 elements. * single precision or integer-level operations on 4 elements. * double precision or long-integer operations on 2 elements.
На x86 процессорах эти инструкции использовать новый банк регистрации (XMM регистры) и может быть настроен на работать на 16 байтов одновременно, используя количество возможных комбинаций:
* byte-level operations on 16 elements. * short-level operations on 8 elements. * single precision or integer-level operations on 4 elements. * double precision or long-integer operations on 2 elements.