linear_algebra plugged.
[scilab.git] / scilab / modules / linear_algebra / includes / svd.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2009 - DIGITEO - Bernard HUGUENEY 
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12 #ifndef __SVD_H__
13 #define __SVD_H__
14 #include "dynlib_linear_algebra.h"
15 /*
16  * perform singular value decomposition (cf. http://www.scilab.org/product/man/svd.html ), MALLOCating temporary buffers as needed.
17  *
18  * in  :
19  *
20  * @param pData double* (doublecomplex*) in / scratch data of the argument matrix
21  * @param iRows int in  nb of rows of the argument matrix
22  * @param iCols int in  nb of cols of the argument matrix
23  * @param complexArg int (bool semantics) in  if argument matrix is complex
24  * @param economy int (bool semantics) in  if economy mode
25  * @param tol double in  treshold for computing rank
26  *
27  * out :
28  *
29  * @param pSV double* out  result matrix s for lhs==1, NULL for lhs >1
30  * @param pU double* out  result matrix U for lhs>1, NULL for lhs ==1
31  * @param pS double* out  result matrix S for lhs>1, NULL for lhs ==1
32  * @param pV double* out  result matrix V for lhs>1, NULL for lhs ==1
33  * @param pRk double* out  result rank for lhs==4, NULL for lhs !=4
34  *
35  * @return 0 success, -1 MALLOC failure >0 Lapack convergence problems
36  *
37  */
38 LINEAR_ALGEBRA_IMPEXP int iSvdM(double* pData, int iRows, int iCols, int complexArg, int economy, double tol, double* pSV, double* pU, double* pS, double* pV, double* pRk);
39 #endif /* !__SVD_H__ */