Hello all:
I'm writting a wrapper around some functions of Lapack and PLASMA. The goal is to select Lapack or PLASMA at compiling time of my code in order to use one of them. Due to this fact the output arguments of my wrapper should be the same as in Lapack. Then I have some questions due to the behavior of PLASMA:
First of all, the PLASMA_dgetrf and PLASMA_dgels functions, that performs the LU factorization. In PLASMA_dgetrf and PLASMA_dgels documentation says that the A matrix arguments stores at output the TILE factors L and U from the factorization. In my wrapper these factors should be returned as a Lapack matrix. So how could I transform the tiled A matrix from PLASMA to the correct Lapack format? I know the function PLASMA_Tile_to_Lapack(PLASMA_desc *A,void *Af77,int LDA), but I'm a bit confused about the PLASMA_desc argument. The A matrix returned by PLASMA_dgetrf and PLASMA_dgels are of type double* and is tiled, but the A argument of PLASMA_Tile_to_Lapack is of type PLASMA_desc*. Should I use this function to convert A to Lapack format?
And about the PLASMA_dgetri and PLASMA_dgetrs? In my wrapper the input A matrix will be stored in Lapack format, but the PLASMA functions expect A in tiled format as output from PLASMA_dgetrf. I know the function PLASMA_Lapack_to_Tile(void *Af77,int LDA,PLASMA_desc *A), but again I have the doubt about the double* A type that PLASMA functions accept and PLASMA_desc *A type that PLASMA_Lapack_to_Tile returns. Can I use PLASMA_Lapack_to_Tile to this task?
I have the same questions about the matrix A in PLASMA_dgeqrf and PLASMA_dgelqf (QR and LQ factorizations) and in PLASMA_dorgqr (reconstruction A=QR).
The PLASMA_dgeqrf and PLASMA_dgelqf functions uses internally a double* T vector that should be allocated with the functions PLASMA_Alloc_Workspace_[dgeqrf|dgelqf]. Are these vectors the same as TAU vector used in DGEQRF and DGELQF in Lapack? Have the same dimensions? Can I copy the T to TAU after the PLASMA functions run? If in my wrapper I pass the TAU vectors with the correct dimensions (as stated in the reference Lapack documentation), could I use TAU instead T in PLASMA?
Thanks
