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

Private GIT Repository
Added paper source
[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 unsigned short  **new_matrix_ushort(int i_dim, int j_dim)
39 {
40   // allocation en ligne
41   unsigned short **matrice ;
42   unsigned short *vecteur  ;
43   int i ;
44   
45   vecteur = malloc(sizeof(unsigned short)*i_dim*j_dim) ;
46   matrice = malloc(sizeof(unsigned short*)*i_dim) ;
47   for (i=0;i<i_dim;i++)
48     matrice[i] = &(vecteur[i*j_dim]) ;
49   return matrice;
50 }
51
52
53 /**
54  * \fn void del_matrix_int(int **image, int i_dim)
55  * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
56  *
57  * \param[in]  image tableau int 2D avec allocation en ligne 
58  * \param[in]  i_dim dimension horizontale du tableau 
59  *
60  *
61  */
62 void del_matrix_int(int **image, int i_dim)
63 {
64   // allocation en ligne
65   free(image[0]) ;
66   free(image) ;
67 }
68
69
70
71 /**
72  * \fn int **new_matrix_pixel_cumul_sse(int i_dim, int j_dim)
73  * \brief allocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
74  *
75  * \param[in]  i_dim dimension verticale du tableau
76  * \param[in]  j_dim dimension horizontale du tableau 
77  *
78  * \return pointeur sur le tableau
79  *
80  */
81 struct pixel_cumul **new_matrix_pixel_cumul(int i_dim, int j_dim)
82 {
83   // allocation en ligne
84   struct pixel_cumul **matrice ;
85   struct pixel_cumul *vecteur  ;
86   int i ;
87   
88   vecteur = malloc(sizeof(struct pixel_cumul)*i_dim*j_dim) ;
89   matrice = malloc(sizeof(struct pixel_cumul *)*i_dim) ;
90   for (i=0;i<i_dim;i++)
91     matrice[i] = &(vecteur[i*j_dim]) ;
92   return matrice;
93 }
94
95
96 /**
97  * \fn void del_matrix_pixel_cumul_sse(union pixel_cumul_sse **image, int i_dim)
98  * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
99  *
100  * \param[in]  image tableau int 2D avec allocation en ligne 
101  * \param[in]  i_dim dimension horizontale du tableau 
102  *
103  *
104  */
105 void del_matrix_pixel_cumul(struct pixel_cumul **image, int i_dim)
106 {
107   // allocation en ligne
108   free(image[0]) ;
109   free(image) ;
110 }