Відповіді:
Ви також можете зробити це «себе» з використанням SSE (Streaming SIMD Extensions) інструкцій і вбудованих функцій (* mmintrin.h файли) вашого компілятора / Proc.
Підручники
Ось приклад використання інструкцій SSE при складанні:
http://neilkemp.us/src/sse_tutorial/sse_tutorial.html
Ось підручник про те, як використовувати інструкції SSE з внутрішніми елементами:
http://www.codeproject.com/KB/recipes/sseintro.aspx
Практичний посібник із використання SSE SIMD з C ++:
http://sci.tuomastonteri.fi/programming/sse/printable
Корисна інформація
Посилання на внутрішню практику Intel C ++ (корисно отримати список інструкцій):
http://cache-www.intel.com/cd/00/00/34/76/347603_347603.pdf
Внутрішня підтримка SSE & SSE2 для розширених наборів інструкцій, що підтримуються процесорами Intel та AMD (корисно для всіх видів інформації щодо SSE та SIMD):
http://msdn.microsoft.com/en-us/library/y0dh78ez%28v= vs.71% 29.aspx
Загальний список інструкцій та інформація про SSE, SSE2, SSE3, SSSE3, SSE4, 3DNow тощо (різні версії SSE для різних архітектурних систем):
http://softpixel.com/~cwright/programming/simd/sse.php
Якщо ви віддаєте перевагу лінійній алгебрній рамці, я хотів про Eigen:
http://eigen.tuxfamily.org/
http://eigen.tuxfamily.org/index.php?title=FAQ#Vectorization (про підтримку SIMD)
І нарешті, якщо вам потрібні додаткові відповіді про C ++ SIMD Frameworks, ось посилання на StackOverflow . (C ++ SSE SIMD Framework):
/programming/4953121/c-sse-simd-framework
Обидва ці векторні / матричні вкладки оптимізовані код SSE2, Sony також має комутатор Altivec for PowerPC:
Sony's vectormath SSE2 та Altivec
трохи затягнувшись, я думаю, що ви можете використовувати математичну бібліотеку кулі, сама куля є двигуном фізики відкритих джерел, і, здається, є потужна бібліотека з математики. ось ярлик для завантаження http://sourceforge.net/projects/bullet/files/SIMD%20and%20amp_%20Vector%20Math%20library/simd%20math%201.02%20and%20vector%20math%201.01/simdvectormath.tgz / скачати
simdvectormath
конкретний файл у файлах
Тут ще немає. Але буде бібліотека boost.simd (сподіваємось). Подивіться цю презентацію (дану минулого тижня на boostcon)
https://github.com/boostcon/2011_presentations/blob/master/thu/simd.pdf
AMD має проект з відкритим кодом SSEPlus , хоча я ніколи його не використовував, тому не можу коментувати його якість чи застосовність.
Не дивлячись точно на використання SIMD, я вважаю, що glm є дуже хорошою математикою загального призначення, коли мова йде про ігри. Він не підтримує довільних матриць тощо, але він має впорядковані функції для використання з тривимірною графікою і має функції для включення SSE, а також деяких швидших реалізацій загальних алгоритмів.
Хоча він спеціально розроблений для використання з OpenGL, я вважав, що це дуже корисно для різних завдань. Він сильно використовує операторські перевантаження, що робить його дуже простим у використанні та підтримці коду, який його використовує.
Він заснований на мові OpenGL GLSL, яка має дуже солідну документацію, і будь-які відмінності також добре задокументовані.