GPL + CeCILL Header change
[scilab.git] / scilab / modules / linear_algebra / includes / det.h
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) ????-2008 - INRIA
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  * === LICENSE_END ===
14  *
15  */
16 #ifndef DET_H
17 #define DET_H
18 #include "dynlib_linear_algebra.h"
19 /*
20  * computes the determinant of a real or complex square matrix, performing MALLOCation of temp variables as needed.
21  * Cf. http://www.scilab.org/product/man/det.html
22  *
23  * in :
24  *
25  * @param pData double[complex]* in/scratch data of the real or complex (in 'z' format, see below pMantissaImg) argument matrix
26  * @param iCols int in nb of rows / cols of the argument matrix
27  *
28  * out:
29  *
30  * @param pMantissaReal double* ptr where the real part of the determinant [mantissa] will be stored
31  * @param pMantissaImg double* ptr where the imaginary part of the determinant [mantissa] will be stored, NULL indicates that matrix is real.
32  * @param piExponent int* ptr where the exponent will be stored, NULL if the determinant is not to be computed in mantissa, exponent form.
33  *
34  * @return error code : 0 for success, -1 for MALLOC failure, other values from LAPACK [z|g]etrf.
35  *
36  */
37
38 LINEAR_ALGEBRA_IMPEXP int iDetM(double* pData, int iCols, double* pMantissaReal, double* pMantissaImg, int* piExponent);
39
40 #endif