4.1.1.2.1 : Le fichier header

Écrivons le fichier sqrt_vectorize.h :



Nous commençons tout d'abord par éviter les inclusions multiples :

1
2
#ifndef __SQRT_VECTORIZE_H__
#define __SQRT_VECTORIZE_H__


Ensuite nous ajoutons un include standard :

1
#include <iostream>


Nous ajoutons le prototype de la fonction (qui à le même nom que le fichier ce qui simplifiera l'écriture du main). Nous devons aussi garantir au compilateur que les pointeurs que nous utilisons correspondent à des espaces mémoire distincts. Cela ce fait avec le mot clé __restrict__, sinon il ne vectorisera pas.

1
void sqrt_vectorize(float* __restrict__ ptabResult, const float* __restrict__ ptabX, size_t nbElement);


Enfin nous fermons la condition du tout début :

1
#endif


Le fichier sqrt_vectorize.h complet :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/***************************************
	Auteur : Pierre Aubert
	Mail : aubertp7@gmail.com
	Licence : CeCILL-C
****************************************/

#ifndef __SQRT_VECTORIZE_H__
#define __SQRT_VECTORIZE_H__

#include <iostream>

void sqrt_vectorize(float* __restrict__ ptabResult, const float* __restrict__ ptabX, size_t nbElement);

#endif


Vous pouvez le télécharger ici.