3 * \brief routines d'allocation des differentes datas du snake2D3D
6 * \date 20 decembre 2009
11 #include <mm_malloc.h>
13 #include "lib_alloc.h"
16 * \brief allocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
18 * \param[in] i_dim dimension verticale du tableau
19 * \param[in] j_dim dimension horizontale du tableau
21 * \return pointeur sur le tableau
24 void ***new_matrix_ptr(int i_dim, int j_dim)
26 /* allocation en ligne */
28 void **vecteur ATT_ALIGN_SSE ;
31 vecteur = (void**)malloc(sizeof(void*)*i_dim*j_dim) ;
32 matrice = (void***)malloc(sizeof(void**)*i_dim) ;
34 matrice[i] = &(vecteur[i*j_dim]) ;
39 * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
41 * \param[in] image tableau int 2D avec allocation en ligne
42 * \param[in] i_dim dimension horizontale du tableau
46 void del_matrix_ptr(void ***image, int i_dim)
48 /* allocation en ligne */
56 * \brief allocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
58 * \param[in] i_dim dimension verticale du tableau
59 * \param[in] j_dim dimension horizontale du tableau
61 * \return pointeur sur le tableau
64 int **new_matrix_int(int i_dim, int j_dim)
66 /* allocation en ligne */
68 int *vecteur ATT_ALIGN_SSE ;
71 vecteur = (int*)_mm_malloc(sizeof(int)*i_dim*j_dim, ALIGN_SSE) ;
72 matrice = (int**)malloc(sizeof(int*)*i_dim) ;
74 matrice[i] = &(vecteur[i*j_dim]) ;
80 * \fn void del_matrix_int(int **image, int i_dim)
81 * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
83 * \param[in] image tableau int 2D avec allocation en ligne
84 * \param[in] i_dim dimension horizontale du tableau
88 void del_matrix_int(int **image, int i_dim)
90 /* allocation en ligne */
98 * \fn int **new_matrix_pixel_cumul_sse(int i_dim, int j_dim)
99 * \brief allocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])n et aligne(16)
101 * \param[in] i_dim dimension verticale du tableau
102 * \param[in] j_dim dimension horizontale du tableau
104 * \return pointeur sur le tableau
107 union pixel_cumul_sse **new_matrix_pixel_cumul_sse(int i_dim, int j_dim)
109 /* allocation en ligne */
110 union pixel_cumul_sse **matrice ;
111 union pixel_cumul_sse *vecteur ATT_ALIGN_SSE ;
114 vecteur = (union pixel_cumul_sse *)_mm_malloc(sizeof(union pixel_cumul_sse)*i_dim*j_dim, ALIGN_SSE) ;
115 matrice = (union pixel_cumul_sse **)malloc(sizeof(union pixel_cumul_sse*)*i_dim) ;
116 for (i=0;i<i_dim;i++)
117 matrice[i] = &(vecteur[i*j_dim]) ;
123 * \fn void del_matrix_pixel_cumul_sse(union pixel_cumul_sse **image, int i_dim)
124 * \brief deallocation d'un tableau 2D (tab[i][j]) avec data en ligne (tab[0][n])
126 * \param[in] image tableau int 2D avec allocation en ligne
127 * \param[in] i_dim dimension horizontale du tableau
131 void del_matrix_pixel_cumul_sse(union pixel_cumul_sse **image, int i_dim)
133 /* allocation en ligne */