Библиотеки, такие как intel- MKL
или amd- ACML
, предоставляют более простой интерфейс для SIMD-операций над векторами, но я хочу объединить несколько функций. Существуют ли легкодоступные библиотеки, в которых я могу зарегистрировать дерево разбора для выражения типа
log( tanh(x) + exp(x) )
и затем оценивать его на всех членах массива? Чего я хочу избежать, так это создавать временные массивы tanh(x)
, exp(x)
и tanh(x) + exp(x)
, вызывая функции mkl или acml для tanh()
, exp()
и +
.
Я могу развернуть цикл вручную и напрямую использовать инструкции sse, но мне было интересно, есть ли библиотеки C ++, которые делают это для вас, т.е.
1. Handles SIMD/SSE functions
2. Allows building of parse trees out of SIMD/SSE functions.
Я очень новичок и никогда раньше не использовал SSE или MKL / ACML, просто выходил на новую территорию.