externals/blas_lapack/SiconosLapack.h
/*
  DGESVD - The routine computes the singular value decomposition (SVD) of a rectangular real matrix A, optionally the left and/or right singular vectors.
  Note Franck : there is no common interface for the different lapack implementations.
  Either work/lwork must be provided (as in F77 interf, for internal memory management) or not.
  Some interfaces (lapacke from netlib, OpenBlas) provide both (middle and high level interfaces, see http://www.netlib.org/lapack/lapacke.html).
  Actually only Apple framework is missing the "no work/lwork" interface.
  So, two different cases :
  - fortran like interface, that needs a properly allocated work.
  - lapacke high-level interface, with work == superb, memory allocation hide from used.
*/
The routine computes the singular value decomposition (SVD) of a rectangular real matrix A, optionally the left and/or right singular vectors.
Note Franck : there is no common interface for the different lapack implementations.
Either work/lwork must be provided (as in F77 interf, for internal memory management) or not.
The routine computes the singular value decomposition ( SVD ) of a rectangular real matrix A optionally the left and / or right singular vectors . Note Franck : there is no common interface for the different lapack implementations . Either work / lwork must be provided ( as in F77 interf for internal memory management ) or not .
static inline void DGESVD(char JOBU, char JOBVT, lapack_int M, lapack_int N, double * A, lapack_int LDA, double * S, double * U, lapack_int LDU, double * VT, lapack_int LDVT, double * superb, lapack_int* INFO)
  {
    lapack_int C_M = M;
    lapack_int C_N = N;
    lapack_int C_LDA = LDA;
    lapack_int C_LDU = LDU;
    lapack_int C_LDVT = LDVT;
    lapack_int C_INFO = 0;
    WRAP_DGESVD(LAPACK_NAME(dgesvd), CHAR(JOBU), CHAR(JOBVT), INTEGER(C_M), INTEGER(C_N), A, INTEGER(C_LDA), S, U, INTEGER(C_LDU), VT, INTEGER(C_LDVT), superb, INTEGER(C_INFO));
    *INFO = C_INFO;
  }
static inline void DGESVD ( char JOBU , char JOBVT , lapack_int M , lapack_int N , double * A , lapack_int LDA , double * S , double * U , lapack_int LDU , double * VT , lapack_int LDVT , double * superb , lapack_int * INFO ) { lapack_int C_M = M ; lapack_int C_N = N ; lapack_int C_LDA = LDA ; lapack_int C_LDU = LDU ; lapack_int C_LDVT = LDVT ; lapack_int C_INFO = 0 ; WRAP_DGESVD ( LAPACK_NAME ( dgesvd ) , CHAR ( JOBU ) , CHAR ( JOBVT ) , INTEGER ( C_M ) , INTEGER ( C_N ) , A , INTEGER ( C_LDA ) , S , U , INTEGER ( C_LDU ) , VT , INTEGER ( C_LDVT ) , superb , INTEGER ( C_INFO ) ) ; * INFO = C_INFO ; }
DGESVD - The routine computes the singular value decomposition (SVD) of a rectangular real matrix A, optionally the left and/or right singular vectors.
DGESVD - The routine computes the singular value decomposition ( SVD ) of a rectangular real matrix A optionally the left and / or right singular vectors .