]> AND Private Git Repository - snake_gpu.git/blob - src/lib_alloc.c~
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Initial commit
[snake_gpu.git] / src / lib_alloc.c~
1 /**
2  * \file lib_alloc.c
3  * \brief routines d'allocation des differentes datas du snake2D3D
4  * \author NB - PhyTI 
5  * \version x.x
6  * \date 20 decembre 2009
7  *
8  */
9
10 #include <malloc.h>
11
12 #include "lib_alloc.h"
13
14 /**
15  * \fn int **new_matrix_int(int i_dim, int j_dim)
16  * \brief allocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
17  *
18  * \param[in]  i_dim dimension verticale du tableau
19  * \param[in]  j_dim dimension horizontale du tableau 
20  *
21  * \return pointeur sur le tableau
22  *
23  */
24 int **new_matrix_int(int i_dim, int j_dim)
25 {
26   // allocation en ligne
27   int **matrice ;
28   int *vecteur  ;
29   int i ;
30   
31   vecteur = malloc(sizeof(int)*i_dim*j_dim) ;
32   matrice = malloc(sizeof(int*)*i_dim) ;
33   for (i=0;i<i_dim;i++)
34     matrice[i] = &(vecteur[i*j_dim]) ;
35   return matrice;
36 }
37
38
39 /**
40  * \fn void del_matrix_int(int **image, int i_dim)
41  * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
42  *
43  * \param[in]  image tableau int 2D avec allocation en ligne 
44  * \param[in]  i_dim dimension horizontale du tableau 
45  *
46  *
47  */
48 void del_matrix_int(int **image, int i_dim)
49 {
50   // allocation en ligne
51   free(image[0]) ;
52   free(image) ;
53 }
54
55
56
57 /**
58  * \fn int **new_matrix_pixel_cumul_sse(int i_dim, int j_dim)
59  * \brief allocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
60  *
61  * \param[in]  i_dim dimension verticale du tableau
62  * \param[in]  j_dim dimension horizontale du tableau 
63  *
64  * \return pointeur sur le tableau
65  *
66  */
67 struct pixel_cumul **new_matrix_pixel_cumul(int i_dim, int j_dim)
68 {
69   // allocation en ligne
70   struct pixel_cumul **matrice ;
71   struct pixel_cumul *vecteur  ;
72   int i ;
73   
74   vecteur = malloc(sizeof(struct pixel_cumul)*i_dim*j_dim) ;
75   matrice = malloc(sizeof(struct pixel_cumul *)*i_dim) ;
76   for (i=0;i<i_dim;i++)
77     matrice[i] = &(vecteur[i*j_dim]) ;
78   return matrice;
79 }
80
81
82 /**
83  * \fn void del_matrix_pixel_cumul_sse(union pixel_cumul_sse **image, int i_dim)
84  * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
85  *
86  * \param[in]  image tableau int 2D avec allocation en ligne 
87  * \param[in]  i_dim dimension horizontale du tableau 
88  *
89  *
90  */
91 void del_matrix_pixel_cumul(struct pixel_cumul **image, int i_dim)
92 {
93   // allocation en ligne
94   free(image[0]) ;
95   free(image) ;
96 }