Previous Le fichier header |
Parent Produit de Hadamard vectorisé |
Outline | Next Produit de Hadamard avec des fonctions intrinsèques |
Écrivons le fichier hadamard_product_vectorize.cpp :
1 |
#include "phoenix_intrinsics.h"
|
1 |
#include "hadamard_product_vectorize.h"
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
///Do the Hadamard product /** @param[out] ptabResult : table of results of tabX*tabY * @param ptabX : input table * @param ptabY : input table * @param nbElement : number of elements in the tables */ void hadamard_product_vectorize(float* __restrict__ ptabResult, const float* __restrict__ ptabX, const float* __restrict__ ptabY, size_t nbElement){ float* tabResult = (float*)__builtin_assume_aligned(ptabResult, PLIB_VECTOR_SIZE_BYTE_FLOAT); const float* tabX = (const float*)__builtin_assume_aligned(ptabX, PLIB_VECTOR_SIZE_BYTE_FLOAT); const float* tabY = (const float*)__builtin_assume_aligned(ptabY, PLIB_VECTOR_SIZE_BYTE_FLOAT); for(size_t i(0lu); i < nbElement; ++i){ tabResult[i] = tabX[i]*tabY[i]; } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
/*************************************** Auteur : Pierre Aubert Mail : aubertp7@gmail.com Licence : CeCILL-C ****************************************/ #include "phoenix_intrinsics.h" #include "hadamard_product_vectorize.h" ///Do the Hadamard product /** @param[out] ptabResult : table of results of tabX*tabY * @param ptabX : input table * @param ptabY : input table * @param nbElement : number of elements in the tables */ void hadamard_product_vectorize(float* __restrict__ ptabResult, const float* __restrict__ ptabX, const float* __restrict__ ptabY, size_t nbElement){ float* tabResult = (float*)__builtin_assume_aligned(ptabResult, PLIB_VECTOR_SIZE_BYTE_FLOAT); const float* tabX = (const float*)__builtin_assume_aligned(ptabX, PLIB_VECTOR_SIZE_BYTE_FLOAT); const float* tabY = (const float*)__builtin_assume_aligned(ptabY, PLIB_VECTOR_SIZE_BYTE_FLOAT); for(size_t i(0lu); i < nbElement; ++i){ tabResult[i] = tabX[i]*tabY[i]; } } |
Previous Le fichier header |
Parent Produit de Hadamard vectorisé |
Outline | Next Produit de Hadamard avec des fonctions intrinsèques |