diff --git a/include/libhqr.h b/include/libhqr.h index 8116981dd8c56d0e993cb77b7e3990ec92e2fdb0..5421c0d210c4b0c716be16565c54ef0a5005d057 100644 --- a/include/libhqr.h +++ b/include/libhqr.h @@ -1,11 +1,23 @@ -/* - * Copyright (c) 2010 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * - * @precisions normal z -> z c d s - * - */ +/** + * + * @file libhqr.c + * + * PaStiX symbol structure routines + * + * Copyright (c) 2010 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * + * @copyright 2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + * @version 1.0.0 + * @author Raphael Boucherie + * @author Matthieu Faverge + * @date 2017-03-21 + * + **/ + #ifndef _LIBHQR_H_ #define _LIBHQR_H_ diff --git a/src/libhqr.c b/src/libhqr.c index 36b4c8dc69b3aef07f51f02310274bca9e78c9d5..a5df560eb1f1037f0fe2513e89172c3b5233b87c 100644 --- a/src/libhqr.c +++ b/src/libhqr.c @@ -1,75 +1,23 @@ -/* - * Copyright (c) 2010 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * - * @precisions normal z -> s d c - * - * - * This file contains all the function to describe the dependencies - * used in the Xgeqrf_param.jdf file. - * The QR factorization done with this file relies on three levels: - * - the first one is using a flat tree with TS kernels. The - * height of this tree is defined by the parameter 'a'. If 'a' - * is set to A->mt, the factorization is identical to the one - * perform by PLASMA_zgeqrf. - * For all subdiagonal "macro-tiles", the line reduced is always - * the first. For all diagonal "macro-tiles", the factorization - * performed is identical to the one performed by PLASMA_zgeqrf. - * - * - the third level is using a reduction tree of size 'p'. By - * default, the parameter 'p' should be equal to the number of - * processors used for the computation, but can be set - * differently. (see further example). The type of tree used at - * this level is defined by the hlvl parameter. It can be flat - * or greedy. - * CODE DETAILS: This tree and all the function related to it - * are performing a QR factorization on a band matrix with 'p' - * the size of the band. All the functions take global indices - * as input and return global indices as output. - * - * - Finally, a second 'low' level of reduction tree is applied. - * The size of this tree is induced by the parameters 'a' and 'p' - * from the first and third levels and is A->mt / ( p * a ). This - * tree is reproduced p times for each subset of tiles - * S_k = {i in [0, A->mt-1] \ i%p*a = k } with k in [0, p-1]. - * The tree used for the reduction is defined by the llvl - * parameter and can be: flat, greedy, fibonacci or binary. - * CODE DETAILS: For commodity, the size of this tree is always - * ceil(A->mt / (p * a) ) inducing some extra tests in the code. - * All the functions related to this level of tree take as input - * the local indices in the A->mt / (p*a) matrix and the global - * k. They return the local index. The reductions are so - * performed on a trapezoidal matrices where the step is defined - * by a: - * <- min( lhlvl_mt, min( mt, nt ) ) -> - * __a__ a a - * | |_____ - * | |_____ - * | |_____ - * llvl_mt = ceil(MT/ (a*p)) | |_____ - * | |_____ - * |___________________________________| - * - * - * - * At each step of the factorization, the lines of tiles are divided - * in 4 types: - * - QRPARAM_TILE_TS: They are the lines annihilated by a TS - * kernel, these lines are never used as an annihilator. They are - * the lines i, with 1 < (i/p)%a < a and i > (k+1)*p - * - QRPARAM_TILE_LOCALTT: They are the lines used as annhilitor - * in the TS kernels annihiling the QRPARAM_TILE_TS lines. They - * are themselves annihilated by the TT kernel of the low level - * reduction tree. The roots of the local trees are the lines i, - * with i/p = k. - * - QRPARAM_TILE_DOMINO: These are the lines that are - * annhilihated with a domino effect in the band defined by (i/p) - * <= k and i >= k - * - QRPARAM_TILE_DISTTT: These are the lines annihilated by the - * high level tree to reduce communications. - * These lines are defined by (i-k)/p = 0. - */ +/** + * + * @file libhqr.c + * + * PaStiX symbol structure routines + * + * Copyright (c) 2010 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * + * @copyright 2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + * @version 1.0.0 + * @author Raphael Boucherie + * @author Matthieu Faverge + * @date 2017-03-21 + * + **/ + #include "libhqr.h" #include <assert.h> #include <stdlib.h> diff --git a/src/libhqr_dbg.c b/src/libhqr_dbg.c index c87f34b29dfeaf4a9b1f207f7d0ff7667696ff3c..05ff4b722fb0a0d6ecc9cbf201f0bb09153ff755 100644 --- a/src/libhqr_dbg.c +++ b/src/libhqr_dbg.c @@ -1,75 +1,23 @@ -/* - * Copyright (c) 2010 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * - * @precisions normal z -> s d c - * - * - * This file contains all the function to describe the dependencies - * used in the Xgeqrf_param.jdf file. - * The QR factorization done with this file relies on three levels: - * - the first one is using a flat tree with TS kernels. The - * height of this tree is defined by the parameter 'a'. If 'a' - * is set to A->mt, the factorization is identical to the one - * perform by PLASMA_zgeqrf. - * For all subdiagonal "macro-tiles", the line reduced is always the first. - * For all diagonal "macro-tiles", the factorization performed - * is identical to the one performed by PLASMA_zgeqrf. - * - * - the third level is using a reduction tree of size 'p'. By - * default, the parameter 'p' should be equal to the number of - * processors used for the computation, but can be set - * differently. (see further example). The type of tree used at - * this level is defined by the hlvl parameter. It can be flat - * or greedy. - * CODE DETAILS: This tree and all the function related to it - * are performing a QR factorization on a band matrix with 'p' - * the size of the band. All the functions take global indices - * as input and return global indices as output. - * - * - Finally, a second 'low' level of reduction tree is applied. - * The size of this tree is induced by the parameters 'a' and 'p' - * from the first and third levels and is A->mt / ( p * a ). This - * tree is reproduced p times for each subset of tiles - * S_k = {i in [0, A->mt-1] \ i%p*a = k } with k in [0, p-1]. - * The tree used for the reduction is defined by the llvl - * parameter and can be: flat, greedy, fibonacci or binary. - * CODE DETAILS: For commodity, the size of this tree is always - * ceil(A->mt / (p * a) ) inducing some extra tests in the code. - * All the functions related to this level of tree take as input - * the local indices in the A->mt / (p*a) matrix and the global - * k. They return the local index. The reductions are so - * performed on a trapezoidal matrices where the step is defined - * by a: - * <- min( lhlvl_mt, min( mt, nt ) ) -> - * __a__ a a - * | |_____ - * | |_____ - * | |_____ - * llvl_mt = ceil(MT/ (a*p)) | |_____ - * | |_____ - * |___________________________________| - * - * - * - * At each step of the factorization, the lines of tiles are divided - * in 4 types: - * - QRPARAM_TILE_TS: They are the lines annihilated by a TS - * kernel, these lines are never used as an annihilator. They are - * the lines i, with 1 < (i/p)%a < a and i > (k+1)*p - * - QRPARAM_TILE_LOCALTT: They are the lines used as annhilitor - * in the TS kernels annihiling the QRPARAM_TILE_TS lines. They - * are themselves annihilated by the TT kernel of the low level - * reduction tree. The roots of the local trees are the lines i, - * with i/p = k. - * - QRPARAM_TILE_DOMINO: These are the lines that are - * annhilihated with a domino effect in the band defined by (i/p) - * <= k and i >= k - * - QRPARAM_TILE_DISTTT: These are the lines annihilated by the - * high level tree to reduce communications. - * These lines are defined by (i-k)/p = 0. - */ +/** + * + * @file libhqr_dbg.c + * + * PaStiX symbol structure routines + * + * Copyright (c) 2010 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * + * @copyright 2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + * @version 1.0.0 + * @author Raphael Boucherie + * @author Matthieu Faverge + * @date 2017-03-21 + * + **/ + #include "libhqr.h" #include <stdio.h> #include <stdlib.h> diff --git a/src/libhqr_systolic.c b/src/libhqr_systolic.c index a60adfdba0044b25a9a1a51af654628a6cca0bed..6313fc4a5d305407bc4074fac5068fa436690bb1 100644 --- a/src/libhqr_systolic.c +++ b/src/libhqr_systolic.c @@ -1,15 +1,22 @@ -/* - * Copyright (c) 2010 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * - * @precisions normal z -> s d c - * - * - * This file contains all the function to describe the dependencies - * used in the Xgeqrf_param.jdf file. - * - */ +/** + * + * @file libhqr_systolic.c + * + * PaStiX symbol structure routines + * + * Copyright (c) 2010 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * + * @copyright 2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + * @version 1.0.0 + * @author Raphael Boucherie + * @author Matthieu Faverge + * @date 2017-03-21 + * + **/ #include "libhqr.h" #include <assert.h> diff --git a/testings/testing_pivgen.c b/testings/testing_pivgen.c index 67f85dbfe9d1563d1efc680a0d7ec1f484fb5809..c5b717e1a48e5cd7c4b4f04d0c24702f5cba9e94 100644 --- a/testings/testing_pivgen.c +++ b/testings/testing_pivgen.c @@ -1,11 +1,22 @@ -/* - * Copyright (c) 2009-2011 The University of Tennessee and The University - * of Tennessee Research Foundation. All rights - * reserved. - * - * @precisions normal z -> s d c - * - */ +/** + * + * @file testing_pivgen.c + * + * PaStiX symbol structure routines + * + * Copyright (c) 2010 The University of Tennessee and The University + * of Tennessee Research Foundation. All rights + * reserved. + * + * @copyright 2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, + * Univ. Bordeaux. All rights reserved. + * + * @version 1.0.0 + * @author Raphael Boucherie + * @author Matthieu Faverge + * @date 2017-03-21 + * + **/ #include "libhqr.h" #include <stdlib.h>