GPL + CeCILL Header change
[scilab.git] / scilab / modules / linear_algebra / includes / schur.h
1
2 /*
3  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
4  * Copyright (C) 2007-2008 - INRIA - Sylvestre LEDRU <sylvestre.ledru@inria.fr>
5  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  * === LICENSE_END ===
15  *
16  */
17
18 #ifndef __SCHUR_H__
19 #define __SCHUR_H__
20
21 #include "dynlib_linear_algebra.h"
22 #include "machine.h"
23 #include "linear_FTables.h"
24
25 /***********************************
26  * Search Table for schsel
27  ***********************************/
28
29 #define ARGS_schsel double *,double*
30 typedef int * (*schself)(ARGS_schsel);
31
32 /**
33  * function call : schsel
34  * @param alpha
35  * @param beta
36  * @return
37  */
38 LINEAR_ALGEBRA_IMPEXP int *C2F(schsel)(double *alpha, double *beta);
39
40 /**
41  * fixes the function associated to name
42  * @param len
43  * @param name
44  * @param rep
45  */
46 LINEAR_ALGEBRA_IMPEXP void C2F(setschsel)(int *len, char *name, int *rep);
47
48 /**************** schsel ***************/
49 LINEAR_ALGEBRA_IMPEXP void C2F(sb02mv)(ARGS_schsel);
50 LINEAR_ALGEBRA_IMPEXP void C2F(sb02mw)(ARGS_schsel);
51
52 FTAB FTab_schsel[] =
53 {
54     {"sb02mv", (voidf)  C2F(sb02mv)},
55     {"sb02mw", (voidf)  C2F(sb02mw)},
56     {(char *) 0, (voidf) 0}
57 };
58
59
60 /***********************************
61 * Search Table for gschur uses : gshsel
62 ***********************************/
63 /**
64  * @TODO : add comment
65  *
66  * @param alphar
67  * @param alphai
68  * @param beta
69  * @return <ReturnValue>
70  */
71 LINEAR_ALGEBRA_IMPEXP int *C2F(gshsel)(double *alphar, double *alphai, double *beta);
72
73 /**
74  *  fixes the function associated to name
75  *
76  * @param len
77  * @param name
78  * @param rep
79  */
80 LINEAR_ALGEBRA_IMPEXP void C2F(setgshsel)(int *len, char *name, int *rep);
81
82
83 /***********************************
84 * Search Table for schur uses : fschur
85 ***********************************/
86
87 /**
88  * @TODO : add comment
89  *
90  * @param alpha
91  * @param beta
92  * @return <ReturnValue>
93  */
94 LINEAR_ALGEBRA_IMPEXP int *C2F(gzhsel)(doublecmplx *alpha, doublecmplx *beta);
95
96 /**
97  *  fixes the function associated to name
98  *
99  * @param len
100  * @param name
101  * @param rep
102  */
103 LINEAR_ALGEBRA_IMPEXP void C2F(setgzhsel)(int *len, char *name, int *rep);
104
105 /***********************************
106 * Search Table for gschur uses : gzhsel
107 ***********************************/
108 /**
109  * @TODO : add comment
110  *
111  * @param alpha
112  * @param beta
113  * @return <ReturnValue>
114  */
115 LINEAR_ALGEBRA_IMPEXP int *C2F(gzhsel)(doublecmplx *alpha, doublecmplx *beta);
116
117 /**
118  *  fixes the function associated to name
119  *
120  * @param len
121  * @param name
122  * @param rep
123  */
124 LINEAR_ALGEBRA_IMPEXP void C2F(setgzhsel)(int *len, char *name, int *rep);
125
126
127 /***********************************
128 * Search Table for schur uses : zchsel
129 ***********************************/
130 /**
131  * @TODO : add comment
132  *
133  * @param alpha
134  * @return <ReturnValue>
135  */
136 LINEAR_ALGEBRA_IMPEXP int *C2F(zchsel)(doublecmplx *alpha);
137
138 /**
139  *  fixes the function associated to name
140  *
141  * @param len
142  * @param name
143  * @param rep
144  */
145 LINEAR_ALGEBRA_IMPEXP void C2F(setzchsel)(int *len, char *name, int *rep);
146
147 /***********************************
148 * Search Table for schur uses : fschur
149 ***********************************/
150
151 /**
152  * @TODO add comment
153  *
154  * @param lsize
155  * @param alpha
156  * @param beta
157  * @param s
158  * @param p
159  * @return <ReturnValue>
160  */
161 LINEAR_ALGEBRA_IMPEXP int *C2F(fschur)(int *lsize, double *alpha, double *beta, double *s, double *p);
162
163 /**
164  *  fixes the function associated to name
165  *
166  * @param name
167  * @param rep
168  */
169 LINEAR_ALGEBRA_IMPEXP void C2F(setfschur)(char *name, int *rep);
170
171
172
173 /***********************************
174  * Search Table for zchsel
175  ***********************************/
176
177 #define ARGS_zchsel doublecmplx *
178 typedef int * (*zchself)(ARGS_zchsel);
179
180
181 /**************** zchsel ***************/
182 LINEAR_ALGEBRA_IMPEXP void C2F(zb02mv)(ARGS_zchsel);
183 LINEAR_ALGEBRA_IMPEXP void C2F(zb02mw)(ARGS_zchsel);
184
185 FTAB FTab_zchsel[] =
186 {
187     {"zb02mv", (voidf)  C2F(zb02mv)},
188     {"zb02mw", (voidf)  C2F(zb02mw)},
189     {(char *) 0, (voidf) 0}
190 };
191
192 #endif /* __SCHUR_H__ */