linear_algebra plugged.
[scilab.git] / scilab / modules / linear_algebra / src / cpp / schurSelect.h
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2011 - DIGITEO - Cedric DELAMARRE
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 /*--------------------------------------------------------------------------*/
13
14 #include "doublecomplex.h"
15
16 int schurSelect(types::Double** _pDblIn, types::Double** _pDblOut, bool _bIsComplex, bool _bIsDiscrete, bool _bIsContinu, ConfigVariable::EntryPointStr* pStrFunction);
17
18 double* allocDgeesWorkspace(int iCols, int* allocated);
19 doublecomplex* allocZgeesWorkspace(int iCols, int* allocated);
20 double* allocDggesWorkspace(int iCols, int* allocated);
21 doublecomplex* allocZggesWorkspace(int iCols, int* allocated);
22
23 typedef int (*schur_dgees_t)(double* real, double* complex);
24 typedef int (*schur_zgees_t)(doublecomplex* complex);
25 typedef int (*schur_dgges_t)(double* real, double* complex, double* beta);
26 typedef int (*schur_zgges_t)(doublecomplex* alpha, doublecomplex* beta);
27
28 extern void C2F(dgees)(char const jobVs[1], char const sort[1], schur_dgees_t select, int const* n, double* a, int const* ldA, int * sDim, double* wR, double* wI, double* VS, int const* ldVS, double* work, int const* lWork, int* bWork, int* info );
29
30 extern void C2F(zgees)(char const jobVs[1], char const sort[1],  schur_zgees_t select, int const* n, doublecomplex* a, int const* ldA, int * sDim, doublecomplex* w, doublecomplex* VS, int const* ldVS, doublecomplex* work, int const* lWork, double* rWork, int* bWork, int* info );
31
32 extern void C2F(dgges)(char const jobVsL[1], char const jobVsR[1], char const sort[1], schur_dgges_t select, int const* n, double* a, int const* ldA, double* b, int const* ldB, int* sDim, double* alphaR, double* alphaI, double* beta, double* VSL, int const* ldVSL, double* VSR, int const* ldVSR, double* work, int const* lWork, int* bWork, int* info );
33
34 extern void C2F(zgges)(char const jobVsL[1], char const jobVsR[1], char const sort[1],  schur_zgges_t select, int const* n, doublecomplex* a, int const* ldA, doublecomplex* b, int const* ldB, int* sDim, doublecomplex* alpha, doublecomplex* beta, doublecomplex* VSL, int const* ldVSL, doublecomplex* VSR, int const* ldVSR, doublecomplex* work, int const* lWork, double* rWork, int* bWork, int* info);
35
36