diff --git a/Makefile b/Makefile
index 803ab991aa7dd7d172da46c1bb10650b484cc58c..3a7f943df664ce6aa46ab5052fcfd89e73a56649 100644
--- a/Makefile
+++ b/Makefile
@@ -3,7 +3,7 @@ CFLAGS = -Iinclude -Wall -g3
 LDFLAGS = -lm
 LIBHQR=src/libhqr.a
 
-default: testing_pivgen testing_treedraw
+default: testing_pivgen testing_treedraw testing_tileinit
 
 src/queue.o:           include/queue.h include/common.h
 src/libhqr.o:          include/common.h include/libhqr.h
@@ -24,6 +24,9 @@ testing_pivgen : testings/testing_pivgen.o ${LIBHQR}
 testing_treedraw : testings/testing_treedraw.o ${LIBHQR}
 	$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
 
+testing_tileinit : testings/testing_tileinit.o ${LIBHQR}
+	$(CC) -o $@ $^ $(CFLAGS) $(LDFLAGS)
+
 clean :
 	rm -f include/*~
 	rm -f src/*.o src/*~
@@ -31,4 +34,4 @@ clean :
 
 cleanall: clean
 	rm -f ${LIBHQR}
-	rm -f testing_pivgen testing_treedraw tree.svg
+	rm -f testing_pivgen testing_treedraw testing_tileinit tree.svg
diff --git a/include/libhqr.h b/include/libhqr.h
index f5d10bd846faeacf3dd2520c8d61b9614d9c1908..657f61c614f0096c9cd6d68171f7ed7ac0c2ddf5 100644
--- a/include/libhqr.h
+++ b/include/libhqr.h
@@ -95,7 +95,7 @@ typedef struct libhqr_tiledesc_s{
 
 typedef struct libhqr_tileinfo_s{
     int type;
-    int *currpiv;
+    int currpiv;
     int *nextpiv;
     int *prevpiv;
     int first_nextpiv;
@@ -213,6 +213,12 @@ void draw_horizontal_line(int k, int p, int m, int *tiles, FILE *file);
 void draw_vertical_line(int k, int p, int m, int *tiles, FILE *file);
 void libhqr_print_tree(const libhqr_tree_t *qrtree, libhqr_tiledesc_t *matrix);
 
+/*
+ * functions for stocking the information of each tile
+ */
+
+void libhqr_tile_init(const libhqr_tree_t *qrtree, int k, libhqr_tileinfo_t *tiles);
+
 /*
  * Debugging functions
  */
diff --git a/src/libhqr.c b/src/libhqr.c
index 434bf2fb4e9cdca5237def9ce60e89086a119cdc..74775c67a6c1813687024005a94847da92ea6b17 100644
--- a/src/libhqr.c
+++ b/src/libhqr.c
@@ -2740,3 +2740,15 @@ libhqr_svd_init( libhqr_tree_t *qrtree,
     return 0;
 }
 
+void libhqr_tile_init(const libhqr_tree_t *qrtree, int k, libhqr_tileinfo_t *tiles){
+    int i, maxMN;
+    maxMN = libhqr_imax(qrtree->nt, qrtree->mt);
+    for (i = 0; i < maxMN; i++){
+        tiles[i].first_nextpiv = qrtree->nextpiv(qrtree, k, i, qrtree->mt);
+        tiles[i].first_prevpiv = qrtree->prevpiv(qrtree, k, i, i);
+        tiles[i].type = qrtree->gettype(qrtree, k, i);
+        tiles[i].currpiv = qrtree->currpiv(qrtree, k, i);
+        printf("Info on tiles %d on step %d :\n first_nextpiv = %d\n first_prevpiv = %d\n currpiv = %d\n",
+               i, k, tiles[i].first_nextpiv, tiles[i].first_prevpiv, tiles[i].currpiv);
+    }
+}
diff --git a/testings/testing_tileinit.c b/testings/testing_tileinit.c
new file mode 100644
index 0000000000000000000000000000000000000000..7938c86dbd2400c49bf76e41bf4ca32897e59383
--- /dev/null
+++ b/testings/testing_tileinit.c
@@ -0,0 +1,39 @@
+/**
+ *
+ * @file testting_tileinit.c
+ *
+ * Testing file for the functions stocking the informations of the tiles
+ *
+ * @copyright 2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @version 1.0.0
+ * @author Raphael Boucherie
+ * @author Mathieu Faverge
+ * @date 2017-04-18
+ *
+ */
+
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "libhqr.h"
+
+int
+main(int argc, char ** argv)
+{
+    libhqr_tree_t qrtree;
+    libhqr_tiledesc_t matrix;
+    libhqr_tileinfo_t *tiles;
+    matrix.nodes = 1;
+    matrix.p     = 1;
+    matrix.mt    = 16;
+    matrix.nt    = 4;
+    tiles = (libhqr_tileinfo_t*)malloc(matrix.mt*sizeof(libhqr_tileinfo_t));
+    libhqr_hqr_init( &qrtree, LIBHQR_QR, &matrix, LIBHQR_BINARY_TREE, LIBHQR_FLAT_TREE, 1, 2, 0, 0);
+    libhqr_tile_init(&qrtree, 0, tiles);
+    libhqr_hqr_finalize( &qrtree );
+    free(tiles);
+    return 1;
+}