d7aa5aa51309eceff4321a1a331c859e9b2bfebd
[scilab.git] / scilab / modules / linear_algebra / includes / lsq.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) ????-2009 - INRIA
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 LSQ_H
13 #define LSQ_H
14
15 /*
16  * Linear least square problems. cf. http://www.scilab.org/product/man/lsq.html
17  * Calls Lapack [d|z]gelsy routines after performing memory allocations
18  *
19  * @param pMatrix double[complex]* in/out : input real or complex (in 'z' format) input matrix data, output complete orthogonal factorization
20  * @param iRows int in : nb of rows of the input matrix
21  * @param iCols int in : nb of cols of the input matrix
22  * @param pRhs double[complex]* in : input real or complex (in 'z' format) rhs matrix data
23  * @param iNRhs int in : nb of cols of the rhs matrix
24  * @param complexArgs int (boolean semantics) in : whether the input matrix are real or complex
25  *
26  * out:
27  * @param pResult double[complex]* out: iCols x nRhs solution matrix data
28  *
29  * in :
30  * @param pTreshold double* in: treshold used to compute the effective rank of the matrix. Using pass-by-pointer because it is optional.
31  * if NULL, then default value of sqrt(epsilon) is used.
32  *
33  * out :
34  * @param piRank int* out: effective rank of input matrix. if NULL, the result is not returned.
35  *
36  */
37
38 extern int iLsqM(double* pMatrix, int iRows, int iCols, double* pRhs, int iNRhs, int complexArgs, double* pResult, double* pTreshold, int* piRank);
39
40
41 #endif