diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..a7156c32eaa988758e5184766cf9a8fec074da12 --- /dev/null +++ b/Makefile @@ -0,0 +1,11 @@ + + + +testing_pivgen : + gcc -Iinclude/ src/* testings/testing_pivgen.c -lm + +testing_treewalk : + gcc -Iinclude/ src/* testings/testing_treewalk.c -lm + +clean : + rm testing_pivgen testing_treewalk src/*~ testings/*~ include/*~ diff --git a/include/libhqr.h b/include/libhqr.h index 5421c0d210c4b0c716be16565c54ef0a5005d057..85a458954b8419edb30c00b0bb6e48488f28b9e0 100644 --- a/include/libhqr.h +++ b/include/libhqr.h @@ -184,7 +184,7 @@ void libhqr_hqr_finalize( libhqr_tree_t *qrtree ); * function for treewalk */ -void libhqr_treewalk(libhqr_tree_t *qrtree,int k); +void libhqr_treewalk(const libhqr_tree_t *qrtree,int k); /* * Debugging functions diff --git a/src/treewalk.c b/src/treewalk.c index acb5fab15f0b092207bc1f608689b5b6c6f295b0..de909c4667af090b83ec3055cbb1c8c9eae3d1ad 100644 --- a/src/treewalk.c +++ b/src/treewalk.c @@ -141,7 +141,18 @@ void libhqr_queue_tile_delete (libhqr_queue_tile_t ** queue_tile) * LIBHQR_TREEWALK ***************************************************/ -void libhqr_treewalk(libhqr_tree_t *qrtree,int k){ +/** + * libhqr_treewalk + * + * @param[in] arg + * Arguments specific to the reduction tree used + * + * @param[in] k + * Factorization step + * + */ + +void libhqr_treewalk(const libhqr_tree_t *qrtree,int k){ int pivot = qrtree->mt; printf("%d\n" , pivot); int p = pivot; @@ -149,9 +160,8 @@ void libhqr_treewalk(libhqr_tree_t *qrtree,int k){ int a,b; libhqr_queue_tile_t *tt = libhqr_queue_tile_new(); libhqr_queue_tile_t *ts = libhqr_queue_tile_new(); - while(p = qrtree->nextpiv(qrtree, k, pivot, p) != -1){ - while(qrtree->prevpiv(qrtree, k, pivot, p)){ - p = qrtree->prevpiv(qrtree, k, pivot, p); + while(p = qrtree->nextpiv(qrtree, k, pivot, p)){ + while(p = qrtree->prevpiv(qrtree, k, pivot, p)){ printf("%d\n" , p); if(qrtree->gettype(qrtree, k, p)){ libhqr_queue_tile_post(&tt,p); @@ -171,7 +181,6 @@ void libhqr_treewalk(libhqr_tree_t *qrtree,int k){ printf("%d\n" , a); } libhqr_queue_tile_last(&tt); - p = tt->numero; libhqr_queue_tile_get(&tt); } } diff --git a/testings/testing_treewalk.c b/testings/testing_treewalk.c index 3ca3a0e06de8eea341f34745b60e997106e8a438..58dc610d0f153916ed5460150c0283a7beefc9dc 100644 --- a/testings/testing_treewalk.c +++ b/testings/testing_treewalk.c @@ -43,7 +43,6 @@ int main(int argc, char ** argv) rc = libhqr_tree_check( &matrix, &qrtree ); printf("%d\n", rc); for (k=0; k<minMN; k++) { - libhqr_treewalk( &qrtree, k); } libhqr_hqr_finalize( &qrtree );