bug 15811: fix Cell::operator== function
[scilab.git] / scilab / modules / ast / src / cpp / operations / types_comparison_eq.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2012 - Scilab Enterprises - Antoine ELIAS
4  *  Copyright (C) 2015 - Scilab Enterprises - Sylvain GENIN
5  *  Copyright (C) 2016 - Scilab Enterprises - Pierre-Aimé AGNEL
6  *
7  * Copyright (C) 2012 - 2016 - Scilab Enterprises
8  *
9  * This file is hereby licensed under the terms of the GNU GPL v2.0,
10  * pursuant to article 5.3.4 of the CeCILL v.2.1.
11  * This file was originally licensed under the terms of the CeCILL v2.1,
12  * and continues to be available under such terms.
13  * For more information, see the COPYING file which you should have received
14  * along with this program.
15  *
16  */
17
18 #include "types_comparison_eq.hxx"
19 #include "bool.hxx"
20 #include "double.hxx"
21 #include "string.hxx"
22 #include "polynom.hxx"
23 #include "cell.hxx"
24 #include "struct.hxx"
25 #include "sparse.hxx"
26 #include "int.hxx"
27 #include "graphichandle.hxx"
28 #include "mlist.hxx"
29 #include "macro.hxx"
30 #include "macrofile.hxx"
31 #include "overload.hxx"
32 #include "user.hxx"
33 #include "opexp.hxx"
34
35 using namespace types;
36
37 //define arrays on operation functions
38 static compequal_function pComparisonEqualfunction[types::InternalType::IdLast][types::InternalType::IdLast] = { NULL };
39
40
41 void fillComparisonEqualFunction()
42 {
43 #define scilab_fill_comparisonequal(id1, id2, func, typeIn1, typeIn2, typeOut) \
44     pComparisonEqualfunction[types::InternalType::Id ## id1][types::InternalType::Id ## id2] = (compequal_function)&compequal_##func<typeIn1, typeIn2, typeOut>
45
46     //String == String
47     scilab_fill_comparisonequal(String, String, M_M, String, String, Bool);
48     scilab_fill_comparisonequal(String, ScalarString, M_M, String, String, Bool);
49     scilab_fill_comparisonequal(ScalarString, ScalarString, M_M, String, String, Bool);
50     scilab_fill_comparisonequal(ScalarString, String, M_M, String, String, Bool);
51     //String == Empty
52     scilab_fill_comparisonequal(Empty, ScalarString, E_M, String, String, Bool);
53     scilab_fill_comparisonequal(ScalarString, Empty, M_E, String, String, Bool);
54     scilab_fill_comparisonequal(String, Empty, M_E, String, String, Bool);
55     scilab_fill_comparisonequal(Empty, String, E_M, String, String, Bool);
56     //String == Double
57     scilab_fill_comparisonequal(Double, ScalarString, M_E, Double, String, Bool);
58     scilab_fill_comparisonequal(ScalarString, Double, M_E, String, Double, Bool);
59     scilab_fill_comparisonequal(String, Double, M_E, String, Double, Bool);
60     scilab_fill_comparisonequal(Double, String, M_E, Double, String, Bool);
61     //String == ScalarDouble
62     scilab_fill_comparisonequal(ScalarDouble, ScalarString, M_E, Double, String, Bool);
63     scilab_fill_comparisonequal(ScalarString, ScalarDouble, M_E, String, Double, Bool);
64     scilab_fill_comparisonequal(String, ScalarDouble, M_E, String, Double, Bool);
65     scilab_fill_comparisonequal(ScalarDouble, String, M_E, Double, String, Bool);
66     //String == Int8
67     scilab_fill_comparisonequal(Int8, ScalarString, M_E, Int8, String, Bool);
68     scilab_fill_comparisonequal(ScalarString, Int8, M_E, String, Int8, Bool);
69     scilab_fill_comparisonequal(String, Int8, M_E, String, Int8, Bool);
70     scilab_fill_comparisonequal(Int8, String, M_E, Int8, String, Bool);
71     //String == UInt8
72     scilab_fill_comparisonequal(UInt8, ScalarString, M_E, UInt8, String, Bool);
73     scilab_fill_comparisonequal(ScalarString, UInt8, M_E, String, UInt8, Bool);
74     scilab_fill_comparisonequal(String, UInt8, M_E, String, UInt8, Bool);
75     scilab_fill_comparisonequal(UInt8, String, M_E, UInt8, String, Bool);
76     //String == Int16
77     scilab_fill_comparisonequal(Int16, ScalarString, M_E, Int16, String, Bool);
78     scilab_fill_comparisonequal(ScalarString, Int16, M_E, String, Int16, Bool);
79     scilab_fill_comparisonequal(String, Int16, M_E, String, Int16, Bool);
80     scilab_fill_comparisonequal(Int16, String, M_E, Int16, String, Bool);
81     //String == UInt16
82     scilab_fill_comparisonequal(UInt16, ScalarString, M_E, UInt16, String, Bool);
83     scilab_fill_comparisonequal(ScalarString, UInt16, M_E, String, UInt16, Bool);
84     scilab_fill_comparisonequal(String, UInt16, M_E, String, UInt16, Bool);
85     scilab_fill_comparisonequal(UInt16, String, M_E, UInt16, String, Bool);
86     //String == Int32
87     scilab_fill_comparisonequal(Int32, ScalarString, M_E, Int32, String, Bool);
88     scilab_fill_comparisonequal(ScalarString, Int32, M_E, String, Int32, Bool);
89     scilab_fill_comparisonequal(String, Int32, M_E, String, Int32, Bool);
90     scilab_fill_comparisonequal(Int32, String, M_E, Int32, String, Bool);
91     //String == UInt32
92     scilab_fill_comparisonequal(UInt32, ScalarString, M_E, UInt32, String, Bool);
93     scilab_fill_comparisonequal(ScalarString, UInt32, M_E, String, UInt32, Bool);
94     scilab_fill_comparisonequal(String, UInt32, M_E, String, UInt32, Bool);
95     scilab_fill_comparisonequal(UInt32, String, M_E, UInt32, String, Bool);
96     //String == Int64
97     scilab_fill_comparisonequal(Int64, ScalarString, M_E, Int64, String, Bool);
98     scilab_fill_comparisonequal(ScalarString, Int64, M_E, String, Int64, Bool);
99     scilab_fill_comparisonequal(String, Int64, M_E, String, Int64, Bool);
100     scilab_fill_comparisonequal(Int64, String, M_E, Int64, String, Bool);
101     //String == UInt64
102     scilab_fill_comparisonequal(UInt64, ScalarString, M_E, UInt64, String, Bool);
103     scilab_fill_comparisonequal(ScalarString, UInt64, M_E, String, UInt64, Bool);
104     scilab_fill_comparisonequal(String, UInt64, M_E, String, UInt64, Bool);
105     scilab_fill_comparisonequal(UInt64, String, M_E, UInt64, String, Bool);
106     //String == Bool
107     scilab_fill_comparisonequal(Bool, ScalarString, M_E, Bool, String, Bool);
108     scilab_fill_comparisonequal(ScalarString, Bool, M_E, String, Bool, Bool);
109     scilab_fill_comparisonequal(String, Bool, M_E, String, Bool, Bool);
110     scilab_fill_comparisonequal(Bool, String, M_E, Bool, String, Bool);
111     //String == Polynom
112     scilab_fill_comparisonequal(Polynom, ScalarString, M_E, Polynom, String, Bool);
113     scilab_fill_comparisonequal(ScalarString, Polynom, M_E, String, Polynom, Bool);
114     scilab_fill_comparisonequal(String, Polynom, M_E, String, Polynom, Bool);
115     scilab_fill_comparisonequal(Polynom, String, M_E, Polynom, String, Bool);
116     //String == PolynomComplex
117     scilab_fill_comparisonequal(PolynomComplex, ScalarString, M_E, Polynom, String, Bool);
118     scilab_fill_comparisonequal(ScalarString, PolynomComplex, M_E, String, Polynom, Bool);
119     scilab_fill_comparisonequal(String, PolynomComplex, M_E, String, Polynom, Bool);
120     scilab_fill_comparisonequal(PolynomComplex, String, M_E, Polynom, String, Bool);
121     //String == ScalarPolynom
122     scilab_fill_comparisonequal(ScalarPolynom, ScalarString, M_E, Polynom, String, Bool);
123     scilab_fill_comparisonequal(ScalarString, ScalarPolynom, M_E, String, Polynom, Bool);
124     scilab_fill_comparisonequal(String, ScalarPolynom, M_E, String, Polynom, Bool);
125     scilab_fill_comparisonequal(ScalarPolynom, String, M_E, Polynom, String, Bool);
126     //String == ScalarPolynomComplex
127     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarString, M_E, Polynom, String, Bool);
128     scilab_fill_comparisonequal(ScalarString, ScalarPolynomComplex, M_E, String, Polynom, Bool);
129     scilab_fill_comparisonequal(String, ScalarPolynomComplex, M_E, String, Polynom, Bool);
130     scilab_fill_comparisonequal(ScalarPolynomComplex, String, M_E, Polynom, String, Bool);
131     //String == Sparse
132     scilab_fill_comparisonequal(Sparse, ScalarString, M_E, Sparse, String, Bool);
133     scilab_fill_comparisonequal(ScalarString, Sparse, M_E, String, Sparse, Bool);
134     scilab_fill_comparisonequal(String, Sparse, M_E, String, Sparse, Bool);
135     scilab_fill_comparisonequal(Sparse, String, M_E, Sparse, String, Bool);
136     //String == SparseBool
137     scilab_fill_comparisonequal(SparseBool, ScalarString, M_E, SparseBool, String, Bool);
138     scilab_fill_comparisonequal(ScalarString, SparseBool, M_E, String, SparseBool, Bool);
139     scilab_fill_comparisonequal(String, SparseBool, M_E, String, SparseBool, Bool);
140     scilab_fill_comparisonequal(SparseBool, String, M_E, SparseBool, String, Bool);
141     //String == ScalarInt8
142     scilab_fill_comparisonequal(ScalarInt8, ScalarString, M_E, Int8, String, Bool);
143     scilab_fill_comparisonequal(ScalarString, ScalarInt8, M_E, String, Int8, Bool);
144     scilab_fill_comparisonequal(String, ScalarInt8, M_E, String, Int8, Bool);
145     scilab_fill_comparisonequal(ScalarInt8, String, M_E, Int8, String, Bool);
146     //String == ScalarUInt8
147     scilab_fill_comparisonequal(ScalarUInt8, ScalarString, M_E, UInt8, String, Bool);
148     scilab_fill_comparisonequal(ScalarString, ScalarUInt8, M_E, String, UInt8, Bool);
149     scilab_fill_comparisonequal(String, ScalarUInt8, M_E, String, UInt8, Bool);
150     scilab_fill_comparisonequal(ScalarUInt8, String, M_E, UInt8, String, Bool);
151     //String == ScalarInt16
152     scilab_fill_comparisonequal(ScalarInt16, ScalarString, M_E, Int16, String, Bool);
153     scilab_fill_comparisonequal(ScalarString, ScalarInt16, M_E, String, Int16, Bool);
154     scilab_fill_comparisonequal(String, ScalarInt16, M_E, String, Int16, Bool);
155     scilab_fill_comparisonequal(ScalarInt16, String, M_E, Int16, String, Bool);
156     //String == ScalarUInt16
157     scilab_fill_comparisonequal(ScalarUInt16, ScalarString, M_E, UInt16, String, Bool);
158     scilab_fill_comparisonequal(ScalarString, ScalarUInt16, M_E, String, UInt16, Bool);
159     scilab_fill_comparisonequal(String, ScalarUInt16, M_E, String, UInt16, Bool);
160     scilab_fill_comparisonequal(ScalarUInt16, String, M_E, UInt16, String, Bool);
161     //String == ScalarInt32
162     scilab_fill_comparisonequal(ScalarInt32, ScalarString, M_E, Int32, String, Bool);
163     scilab_fill_comparisonequal(ScalarString, ScalarInt32, M_E, String, Int32, Bool);
164     scilab_fill_comparisonequal(String, ScalarInt32, M_E, String, Int32, Bool);
165     scilab_fill_comparisonequal(ScalarInt32, String, M_E, Int32, String, Bool);
166     //String == ScalarUInt32
167     scilab_fill_comparisonequal(ScalarUInt32, ScalarString, M_E, UInt32, String, Bool);
168     scilab_fill_comparisonequal(ScalarString, ScalarUInt32, M_E, String, UInt32, Bool);
169     scilab_fill_comparisonequal(String, ScalarUInt32, M_E, String, UInt32, Bool);
170     scilab_fill_comparisonequal(ScalarUInt32, String, M_E, UInt32, String, Bool);
171     //String == ScalarInt64
172     scilab_fill_comparisonequal(ScalarInt64, ScalarString, M_E, Int64, String, Bool);
173     scilab_fill_comparisonequal(ScalarString, ScalarInt64, M_E, String, Int64, Bool);
174     scilab_fill_comparisonequal(String, ScalarInt64, M_E, String, Int64, Bool);
175     scilab_fill_comparisonequal(ScalarInt64, String, M_E, Int64, String, Bool);
176     //String == ScalarUInt64
177     scilab_fill_comparisonequal(ScalarUInt64, ScalarString, M_E, UInt64, String, Bool);
178     scilab_fill_comparisonequal(ScalarString, ScalarUInt64, M_E, String, UInt64, Bool);
179     scilab_fill_comparisonequal(String, ScalarUInt64, M_E, String, UInt64, Bool);
180     scilab_fill_comparisonequal(ScalarUInt64, String, M_E, UInt64, String, Bool);
181     //String == ScalarBool
182     scilab_fill_comparisonequal(ScalarBool, ScalarString, M_E, Bool, String, Bool);
183     scilab_fill_comparisonequal(ScalarString, ScalarBool, M_E, String, Bool, Bool);
184     scilab_fill_comparisonequal(String, ScalarBool, M_E, String, Bool, Bool);
185     scilab_fill_comparisonequal(ScalarBool, String, M_E, Bool, String, Bool);
186     //String == ScalarPolynom
187     scilab_fill_comparisonequal(ScalarPolynom, ScalarString, M_E, Polynom, String, Bool);
188     scilab_fill_comparisonequal(ScalarString, ScalarPolynom, M_E, String, Polynom, Bool);
189     scilab_fill_comparisonequal(String, ScalarPolynom, M_E, String, Polynom, Bool);
190     scilab_fill_comparisonequal(ScalarPolynom, String, M_E, Polynom, String, Bool);
191     //String == ScalarDoubleComplex
192     scilab_fill_comparisonequal(ScalarDoubleComplex, ScalarString, M_E, Double, String, Bool);
193     scilab_fill_comparisonequal(ScalarString, ScalarDoubleComplex, M_E, String, Double, Bool);
194     scilab_fill_comparisonequal(String, ScalarDoubleComplex, M_E, String, Double, Bool);
195     scilab_fill_comparisonequal(ScalarDoubleComplex, String, M_E, Double, String, Bool);
196     //String == DoubleComplex
197     scilab_fill_comparisonequal(DoubleComplex, ScalarString, M_E, Double, String, Bool);
198     scilab_fill_comparisonequal(ScalarString, DoubleComplex, M_E, String, Double, Bool);
199     scilab_fill_comparisonequal(String, DoubleComplex, M_E, String, Double, Bool);
200     scilab_fill_comparisonequal(DoubleComplex, String, M_E, Double, String, Bool);
201     //String == ScalarPolynomComplex
202     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarString, M_E, Polynom, String, Bool);
203     scilab_fill_comparisonequal(ScalarString, ScalarPolynomComplex, M_E, String, Polynom, Bool);
204     scilab_fill_comparisonequal(String, ScalarPolynomComplex, M_E, String, Polynom, Bool);
205     scilab_fill_comparisonequal(ScalarPolynomComplex, String, M_E, Polynom, String, Bool);
206     //String == SparseComplex
207     scilab_fill_comparisonequal(SparseComplex, ScalarString, M_E, Sparse, String, Bool);
208     scilab_fill_comparisonequal(ScalarString, SparseComplex, M_E, String, Sparse, Bool);
209     scilab_fill_comparisonequal(String, SparseComplex, M_E, String, Sparse, Bool);
210     scilab_fill_comparisonequal(SparseComplex, String, M_E, Sparse, String, Bool);
211     //String == Identity
212     scilab_fill_comparisonequal(Identity, ScalarString, M_E, Double, String, Bool);
213     scilab_fill_comparisonequal(ScalarString, Identity, M_E, String, Double, Bool);
214     scilab_fill_comparisonequal(String, Identity, M_E, String, Double, Bool);
215     scilab_fill_comparisonequal(Identity, String, M_E, Double, String, Bool);
216     //String == IdentityComplex
217     scilab_fill_comparisonequal(IdentityComplex, ScalarString, M_E, Double, String, Bool);
218     scilab_fill_comparisonequal(ScalarString, IdentityComplex, M_E, String, Double, Bool);
219     scilab_fill_comparisonequal(String, IdentityComplex, M_E, String, Double, Bool);
220     scilab_fill_comparisonequal(IdentityComplex, String, M_E, Double, String, Bool);
221
222     //Double
223     //Matrix == Matrix
224     scilab_fill_comparisonequal(Double, Double, M_M, Double, Double, Bool);
225     scilab_fill_comparisonequal(Double, Int8, M_M, Double, Int8, Bool);
226     scilab_fill_comparisonequal(Double, UInt8, M_M, Double, UInt8, Bool);
227     scilab_fill_comparisonequal(Double, Int16, M_M, Double, Int16, Bool);
228     scilab_fill_comparisonequal(Double, UInt16, M_M, Double, UInt16, Bool);
229     scilab_fill_comparisonequal(Double, Int32, M_M, Double, Int32, Bool);
230     scilab_fill_comparisonequal(Double, UInt32, M_M, Double, UInt32, Bool);
231     scilab_fill_comparisonequal(Double, Int64, M_M, Double, Int64, Bool);
232     scilab_fill_comparisonequal(Double, UInt64, M_M, Double, UInt64, Bool);
233     scilab_fill_comparisonequal(Double, Bool, M_E, Double, Bool, Bool);
234     scilab_fill_comparisonequal(Double, Polynom, M_P, Double, Polynom, Bool);
235     scilab_fill_comparisonequal(Double, Sparse, M_SP, Double, Sparse, SparseBool);
236
237     //Matrix == Matrix Complex
238     scilab_fill_comparisonequal(Double, DoubleComplex, M_MC, Double, Double, Bool);
239     scilab_fill_comparisonequal(Double, PolynomComplex, M_P, Double, Polynom, Bool);
240     scilab_fill_comparisonequal(Double, SparseComplex, M_SP, Double, Sparse, SparseBool);
241
242     //Matrix == Scalar
243     scilab_fill_comparisonequal(Double, ScalarDouble, M_S, Double, Double, Bool);
244     scilab_fill_comparisonequal(Double, ScalarInt8, M_S, Double, Int8, Bool);
245     scilab_fill_comparisonequal(Double, ScalarUInt8, M_S, Double, UInt8, Bool);
246     scilab_fill_comparisonequal(Double, ScalarInt16, M_S, Double, Int16, Bool);
247     scilab_fill_comparisonequal(Double, ScalarUInt16, M_S, Double, UInt16, Bool);
248     scilab_fill_comparisonequal(Double, ScalarInt32, M_S, Double, Int32, Bool);
249     scilab_fill_comparisonequal(Double, ScalarUInt32, M_S, Double, UInt32, Bool);
250     scilab_fill_comparisonequal(Double, ScalarInt64, M_S, Double, Int64, Bool);
251     scilab_fill_comparisonequal(Double, ScalarUInt64, M_S, Double, UInt64, Bool);
252     scilab_fill_comparisonequal(Double, ScalarBool, M_E, Double, Bool, Bool);
253     scilab_fill_comparisonequal(Double, ScalarPolynom, M_P, Double, Polynom, Bool);
254
255     //Matrix == Scalar Complex
256     scilab_fill_comparisonequal(Double, ScalarDoubleComplex, M_SC, Double, Double, Bool);
257     scilab_fill_comparisonequal(Double, ScalarPolynomComplex, M_P, Double, Polynom, Bool);
258
259     //Matrix == Empty
260     scilab_fill_comparisonequal(Double, Empty, M_E, Double, Double, Bool);
261
262
263     //Matrix Complex == Matrix
264     scilab_fill_comparisonequal(DoubleComplex, Double, MC_M, Double, Double, Bool);
265     scilab_fill_comparisonequal(DoubleComplex, DoubleComplex, MC_MC, Double, Double, Bool);
266     scilab_fill_comparisonequal(DoubleComplex, ScalarDouble, MC_S, Double, Double, Bool);
267     scilab_fill_comparisonequal(DoubleComplex, ScalarDoubleComplex, MC_SC, Double, Double, Bool);
268     scilab_fill_comparisonequal(DoubleComplex, Empty, M_E, Double, Double, Bool);
269     scilab_fill_comparisonequal(DoubleComplex, Polynom, M_P, Double, Polynom, Bool);
270     scilab_fill_comparisonequal(DoubleComplex, PolynomComplex, M_P, Double, Polynom, Bool);
271     scilab_fill_comparisonequal(DoubleComplex, ScalarPolynom, M_P, Double, Polynom, Bool);
272     scilab_fill_comparisonequal(DoubleComplex, ScalarPolynomComplex, M_P, Double, Polynom, Bool);
273     scilab_fill_comparisonequal(DoubleComplex, Sparse, M_SP, Double, Sparse, SparseBool);
274     scilab_fill_comparisonequal(DoubleComplex, SparseComplex, M_SP, Double, Sparse, SparseBool);
275
276     //Scalar == Matrix
277     scilab_fill_comparisonequal(ScalarDouble, Double, S_M, Double, Double, Bool);
278     scilab_fill_comparisonequal(ScalarDouble, Int8, S_M, Double, Int8, Bool);
279     scilab_fill_comparisonequal(ScalarDouble, UInt8, S_M, Double, UInt8, Bool);
280     scilab_fill_comparisonequal(ScalarDouble, Int16, S_M, Double, Int16, Bool);
281     scilab_fill_comparisonequal(ScalarDouble, UInt16, S_M, Double, UInt16, Bool);
282     scilab_fill_comparisonequal(ScalarDouble, Int32, S_M, Double, Int32, Bool);
283     scilab_fill_comparisonequal(ScalarDouble, UInt32, S_M, Double, UInt32, Bool);
284     scilab_fill_comparisonequal(ScalarDouble, Int64, S_M, Double, Int64, Bool);
285     scilab_fill_comparisonequal(ScalarDouble, UInt64, S_M, Double, UInt64, Bool);
286     scilab_fill_comparisonequal(ScalarDouble, Bool, M_E, Double, Bool, Bool);
287     scilab_fill_comparisonequal(ScalarDouble, Polynom, M_P, Double, Polynom, Bool);
288     scilab_fill_comparisonequal(ScalarDouble, Sparse, M_SP, Double, Sparse, SparseBool);
289
290     //Scalar == Matrix Complex
291     scilab_fill_comparisonequal(ScalarDouble, DoubleComplex, S_MC, Double, Double, Bool);
292     scilab_fill_comparisonequal(ScalarDouble, PolynomComplex, M_P, Double, Polynom, Bool);
293     scilab_fill_comparisonequal(ScalarDouble, SparseComplex, M_SP, Double, Sparse, SparseBool);
294
295     //Scalar == Scalar
296     scilab_fill_comparisonequal(ScalarDouble, ScalarDouble, S_S, Double, Double, Bool);
297     scilab_fill_comparisonequal(ScalarDouble, ScalarInt8, S_S, Double, Int8, Bool);
298     scilab_fill_comparisonequal(ScalarDouble, ScalarUInt8, S_S, Double, UInt8, Bool);
299     scilab_fill_comparisonequal(ScalarDouble, ScalarInt16, S_S, Double, Int16, Bool);
300     scilab_fill_comparisonequal(ScalarDouble, ScalarUInt16, S_S, Double, UInt16, Bool);
301     scilab_fill_comparisonequal(ScalarDouble, ScalarInt32, S_S, Double, Int32, Bool);
302     scilab_fill_comparisonequal(ScalarDouble, ScalarUInt32, S_S, Double, UInt32, Bool);
303     scilab_fill_comparisonequal(ScalarDouble, ScalarInt64, S_S, Double, Int64, Bool);
304     scilab_fill_comparisonequal(ScalarDouble, ScalarUInt64, S_S, Double, UInt64, Bool);
305     scilab_fill_comparisonequal(ScalarDouble, ScalarBool, M_E, Double, Bool, Bool);
306     scilab_fill_comparisonequal(ScalarDouble, ScalarPolynom, M_P, Double, Polynom, Bool);
307
308     //Scalar == Scalar Complex
309     scilab_fill_comparisonequal(ScalarDouble, ScalarDoubleComplex, S_SC, Double, Double, Bool);
310     scilab_fill_comparisonequal(ScalarDouble, PolynomComplex, M_P, Double, Polynom, Bool);
311     scilab_fill_comparisonequal(ScalarDouble, ScalarPolynomComplex, M_P, Double, Polynom, Bool);
312
313     //Scalar == Empty
314     scilab_fill_comparisonequal(ScalarDouble, Empty, M_E, Double, Double, Bool);
315
316     //Scalar Complex == Matrix
317     scilab_fill_comparisonequal(ScalarDoubleComplex, Double, SC_M, Double, Double, Bool);
318     scilab_fill_comparisonequal(ScalarDoubleComplex, Polynom, M_P, Double, Polynom, Bool);
319     scilab_fill_comparisonequal(ScalarDoubleComplex, Sparse, M_SP, Double, Sparse, SparseBool);
320     //Scalar Complex == Matrix Complex
321     scilab_fill_comparisonequal(ScalarDoubleComplex, DoubleComplex, SC_MC, Double, Double, Bool);
322     scilab_fill_comparisonequal(ScalarDoubleComplex, PolynomComplex, M_P, Double, Polynom, Bool);
323     scilab_fill_comparisonequal(ScalarDoubleComplex, SparseComplex, M_SP, Double, Sparse, SparseBool);
324     //Scalar Complex == Scalar
325     scilab_fill_comparisonequal(ScalarDoubleComplex, ScalarDouble, SC_S, Double, Double, Bool);
326     scilab_fill_comparisonequal(ScalarDoubleComplex, ScalarPolynom, M_P, Double, Polynom, Bool);
327     //Scalar Complex == Scalar Complex
328     scilab_fill_comparisonequal(ScalarDoubleComplex, ScalarDoubleComplex, SC_SC, Double, Double, Bool);
329     scilab_fill_comparisonequal(ScalarDoubleComplex, ScalarPolynomComplex, M_P, Double, Polynom, Bool);
330     //Scalar Complex == Empty
331     scilab_fill_comparisonequal(ScalarDoubleComplex, Empty, M_E, Double, Double, Bool);
332
333     //Empty == Matrix
334     scilab_fill_comparisonequal(Empty, Double, E_M, Double, Double, Bool);
335     scilab_fill_comparisonequal(Empty, Int8, E_M, Double, Int8, Bool);
336     scilab_fill_comparisonequal(Empty, UInt8, E_M, Double, UInt8, Bool);
337     scilab_fill_comparisonequal(Empty, Int16, E_M, Double, Int16, Bool);
338     scilab_fill_comparisonequal(Empty, UInt16, E_M, Double, UInt16, Bool);
339     scilab_fill_comparisonequal(Empty, Int32, E_M, Double, Int32, Bool);
340     scilab_fill_comparisonequal(Empty, UInt32, E_M, Double, UInt32, Bool);
341     scilab_fill_comparisonequal(Empty, Int64, E_M, Double, Int64, Bool);
342     scilab_fill_comparisonequal(Empty, UInt64, E_M, Double, UInt64, Bool);
343
344     scilab_fill_comparisonequal(Empty, Polynom, E_M, Double, Polynom, Bool);
345     scilab_fill_comparisonequal(Empty, PolynomComplex, E_M, Double, Polynom, Bool);
346     scilab_fill_comparisonequal(Empty, Sparse, E_M, Double, Sparse, Bool);
347     scilab_fill_comparisonequal(Empty, SparseComplex, E_M, Double, Sparse, Bool);
348
349     //Empty == Matrix Complex
350     scilab_fill_comparisonequal(Empty, DoubleComplex, E_M, Double, Double, Bool);
351     //Empty == Scalar
352     scilab_fill_comparisonequal(Empty, ScalarDouble, E_M, Double, Double, Bool);
353     scilab_fill_comparisonequal(Empty, ScalarInt8, E_M, Double, Int8, Bool);
354     scilab_fill_comparisonequal(Empty, ScalarUInt8, E_M, Double, UInt8, Bool);
355     scilab_fill_comparisonequal(Empty, ScalarInt16, E_M, Double, Int16, Bool);
356     scilab_fill_comparisonequal(Empty, ScalarUInt16, E_M, Double, UInt16, Bool);
357     scilab_fill_comparisonequal(Empty, ScalarInt32, E_M, Double, Int32, Bool);
358     scilab_fill_comparisonequal(Empty, ScalarUInt32, E_M, Double, UInt32, Bool);
359     scilab_fill_comparisonequal(Empty, ScalarInt64, E_M, Double, Int64, Bool);
360     scilab_fill_comparisonequal(Empty, ScalarUInt64, E_M, Double, UInt64, Bool);
361     scilab_fill_comparisonequal(Empty, ScalarBool, E_M, Double, Bool, Bool);
362     scilab_fill_comparisonequal(Empty, ScalarPolynom, E_M, Double, Polynom, Bool);
363
364     //Empty == Scalar Complex
365     scilab_fill_comparisonequal(Empty, ScalarDoubleComplex, E_M, Double, Double, Bool);
366     scilab_fill_comparisonequal(Empty, ScalarPolynomComplex, E_M, Double, Polynom, Bool);
367     //Empty == Empty
368     scilab_fill_comparisonequal(Empty, Empty, E_E, Double, Double, Bool);
369     //Empty == eye
370     scilab_fill_comparisonequal(Empty, Identity, E_M, Double, Double, Bool);
371     scilab_fill_comparisonequal(Empty, IdentityComplex, E_M, Double, Double, Bool);
372
373     //Matrix == Identity
374     scilab_fill_comparisonequal(Double, Identity, M_I, Double, Double, Bool);
375     scilab_fill_comparisonequal(Double, IdentityComplex, M_IC, Double, Double, Bool);
376     scilab_fill_comparisonequal(DoubleComplex, Identity, MC_I, Double, Double, Bool);
377     scilab_fill_comparisonequal(DoubleComplex, IdentityComplex, MC_IC, Double, Double, Bool);
378     scilab_fill_comparisonequal(ScalarDouble, Identity, S_I, Double, Double, Bool);
379     scilab_fill_comparisonequal(ScalarDouble, IdentityComplex, S_IC, Double, Double, Bool);
380     scilab_fill_comparisonequal(ScalarDoubleComplex, Identity, SC_I, Double, Double, Bool);
381     scilab_fill_comparisonequal(ScalarDoubleComplex, IdentityComplex, SC_IC, Double, Double, Bool);
382
383     //Int8
384     //Matrix == Matrix
385     scilab_fill_comparisonequal(Int8, Double, M_M, Int8, Double, Bool);
386     scilab_fill_comparisonequal(Int8, Int8, M_M, Int8, Int8, Bool);
387     scilab_fill_comparisonequal(Int8, UInt8, M_M, Int8, UInt8, Bool);
388     scilab_fill_comparisonequal(Int8, Int16, M_M, Int8, Int16, Bool);
389     scilab_fill_comparisonequal(Int8, UInt16, M_M, Int8, UInt16, Bool);
390     scilab_fill_comparisonequal(Int8, Int32, M_M, Int8, Int32, Bool);
391     scilab_fill_comparisonequal(Int8, UInt32, M_M, Int8, UInt32, Bool);
392     scilab_fill_comparisonequal(Int8, Int64, M_M, Int8, Int64, Bool);
393     scilab_fill_comparisonequal(Int8, UInt64, M_M, Int8, UInt64, Bool);
394     scilab_fill_comparisonequal(Int8, Bool, M_B, Int8, Bool, Bool);
395     scilab_fill_comparisonequal(Int8, Empty, M_E, Int8, Double, Bool);
396
397     //Matrix == Scalar
398     scilab_fill_comparisonequal(Int8, ScalarDouble, M_S, Int8, Double, Bool);
399     scilab_fill_comparisonequal(Int8, ScalarInt8, M_S, Int8, Int8, Bool);
400     scilab_fill_comparisonequal(Int8, ScalarUInt8, M_S, Int8, UInt8, Bool);
401     scilab_fill_comparisonequal(Int8, ScalarInt16, M_S, Int8, Int16, Bool);
402     scilab_fill_comparisonequal(Int8, ScalarUInt16, M_S, Int8, UInt16, Bool);
403     scilab_fill_comparisonequal(Int8, ScalarInt32, M_S, Int8, Int32, Bool);
404     scilab_fill_comparisonequal(Int8, ScalarUInt32, M_S, Int8, UInt32, Bool);
405     scilab_fill_comparisonequal(Int8, ScalarInt64, M_S, Int8, Int64, Bool);
406     scilab_fill_comparisonequal(Int8, ScalarUInt64, M_S, Int8, UInt64, Bool);
407     scilab_fill_comparisonequal(Int8, ScalarBool, M_B, Int8, Bool, Bool);
408
409     //Scalar == Matrix
410     scilab_fill_comparisonequal(ScalarInt8, Double, S_M, Int8, Double, Bool);
411     scilab_fill_comparisonequal(ScalarInt8, Int8, S_M, Int8, Int8, Bool);
412     scilab_fill_comparisonequal(ScalarInt8, UInt8, S_M, Int8, UInt8, Bool);
413     scilab_fill_comparisonequal(ScalarInt8, Int16, S_M, Int8, Int16, Bool);
414     scilab_fill_comparisonequal(ScalarInt8, UInt16, S_M, Int8, UInt16, Bool);
415     scilab_fill_comparisonequal(ScalarInt8, Int32, S_M, Int8, Int32, Bool);
416     scilab_fill_comparisonequal(ScalarInt8, UInt32, S_M, Int8, UInt32, Bool);
417     scilab_fill_comparisonequal(ScalarInt8, Int64, S_M, Int8, Int64, Bool);
418     scilab_fill_comparisonequal(ScalarInt8, UInt64, S_M, Int8, UInt64, Bool);
419     scilab_fill_comparisonequal(ScalarInt8, Bool, S_B, Int8, Bool, Bool);
420     scilab_fill_comparisonequal(ScalarInt8, Empty, M_E, Int8, Double, Bool);
421
422     //Scalar == Scalar
423     scilab_fill_comparisonequal(ScalarInt8, ScalarDouble, S_S, Int8, Double, Bool);
424     scilab_fill_comparisonequal(ScalarInt8, ScalarInt8, S_S, Int8, Int8, Bool);
425     scilab_fill_comparisonequal(ScalarInt8, ScalarUInt8, S_S, Int8, UInt8, Bool);
426     scilab_fill_comparisonequal(ScalarInt8, ScalarInt16, S_S, Int8, Int16, Bool);
427     scilab_fill_comparisonequal(ScalarInt8, ScalarUInt16, S_S, Int8, UInt16, Bool);
428     scilab_fill_comparisonequal(ScalarInt8, ScalarInt32, S_S, Int8, Int32, Bool);
429     scilab_fill_comparisonequal(ScalarInt8, ScalarUInt32, S_S, Int8, UInt32, Bool);
430     scilab_fill_comparisonequal(ScalarInt8, ScalarInt64, S_S, Int8, Int64, Bool);
431     scilab_fill_comparisonequal(ScalarInt8, ScalarUInt64, S_S, Int8, UInt64, Bool);
432     scilab_fill_comparisonequal(ScalarInt8, ScalarBool, M_E, Int8, Bool, Bool);
433
434     //UInt8
435     //Matrix == Matrix
436     scilab_fill_comparisonequal(UInt8, Double, M_M, UInt8, Double, Bool);
437     scilab_fill_comparisonequal(UInt8, Int8, M_M, UInt8, Int8, Bool);
438     scilab_fill_comparisonequal(UInt8, UInt8, M_M, UInt8, UInt8, Bool);
439     scilab_fill_comparisonequal(UInt8, Int16, M_M, UInt8, Int16, Bool);
440     scilab_fill_comparisonequal(UInt8, UInt16, M_M, UInt8, UInt16, Bool);
441     scilab_fill_comparisonequal(UInt8, Int32, M_M, UInt8, Int32, Bool);
442     scilab_fill_comparisonequal(UInt8, UInt32, M_M, UInt8, UInt32, Bool);
443     scilab_fill_comparisonequal(UInt8, Int64, M_M, UInt8, Int64, Bool);
444     scilab_fill_comparisonequal(UInt8, UInt64, M_M, UInt8, UInt64, Bool);
445     scilab_fill_comparisonequal(UInt8, Bool, M_B, UInt8, Bool, Bool);
446     scilab_fill_comparisonequal(UInt8, Empty, M_E, UInt8, Double, Bool);
447
448     //Matrix == Scalar
449     scilab_fill_comparisonequal(UInt8, ScalarDouble, M_S, UInt8, Double, Bool);
450     scilab_fill_comparisonequal(UInt8, ScalarInt8, M_S, UInt8, Int8, Bool);
451     scilab_fill_comparisonequal(UInt8, ScalarUInt8, M_S, UInt8, UInt8, Bool);
452     scilab_fill_comparisonequal(UInt8, ScalarInt16, M_S, UInt8, Int16, Bool);
453     scilab_fill_comparisonequal(UInt8, ScalarUInt16, M_S, UInt8, UInt16, Bool);
454     scilab_fill_comparisonequal(UInt8, ScalarInt32, M_S, UInt8, Int32, Bool);
455     scilab_fill_comparisonequal(UInt8, ScalarUInt32, M_S, UInt8, UInt32, Bool);
456     scilab_fill_comparisonequal(UInt8, ScalarInt64, M_S, UInt8, Int64, Bool);
457     scilab_fill_comparisonequal(UInt8, ScalarUInt64, M_S, UInt8, UInt64, Bool);
458     scilab_fill_comparisonequal(UInt8, ScalarBool, M_B, UInt8, Bool, Bool);
459
460     //Scalar == Matrix
461     scilab_fill_comparisonequal(ScalarUInt8, Double, S_M, UInt8, Double, Bool);
462     scilab_fill_comparisonequal(ScalarUInt8, Int8, S_M, UInt8, Int8, Bool);
463     scilab_fill_comparisonequal(ScalarUInt8, UInt8, S_M, UInt8, UInt8, Bool);
464     scilab_fill_comparisonequal(ScalarUInt8, Int16, S_M, UInt8, Int16, Bool);
465     scilab_fill_comparisonequal(ScalarUInt8, UInt16, S_M, UInt8, UInt16, Bool);
466     scilab_fill_comparisonequal(ScalarUInt8, Int32, S_M, UInt8, Int32, Bool);
467     scilab_fill_comparisonequal(ScalarUInt8, UInt32, S_M, UInt8, UInt32, Bool);
468     scilab_fill_comparisonequal(ScalarUInt8, Int64, S_M, UInt8, Int64, Bool);
469     scilab_fill_comparisonequal(ScalarUInt8, UInt64, S_M, UInt8, UInt64, Bool);
470     scilab_fill_comparisonequal(ScalarUInt8, Bool, S_B, UInt8, Bool, Bool);
471     scilab_fill_comparisonequal(ScalarUInt8, Empty, M_E, UInt8, Double, Bool);
472
473     //Scalar == Scalar
474     scilab_fill_comparisonequal(ScalarUInt8, ScalarDouble, S_S, UInt8, Double, Bool);
475     scilab_fill_comparisonequal(ScalarUInt8, ScalarInt8, S_S, UInt8, Int8, Bool);
476     scilab_fill_comparisonequal(ScalarUInt8, ScalarUInt8, S_S, UInt8, UInt8, Bool);
477     scilab_fill_comparisonequal(ScalarUInt8, ScalarInt16, S_S, UInt8, Int16, Bool);
478     scilab_fill_comparisonequal(ScalarUInt8, ScalarUInt16, S_S, UInt8, UInt16, Bool);
479     scilab_fill_comparisonequal(ScalarUInt8, ScalarInt32, S_S, UInt8, Int32, Bool);
480     scilab_fill_comparisonequal(ScalarUInt8, ScalarUInt32, S_S, UInt8, UInt32, Bool);
481     scilab_fill_comparisonequal(ScalarUInt8, ScalarInt64, S_S, UInt8, Int64, Bool);
482     scilab_fill_comparisonequal(ScalarUInt8, ScalarUInt64, S_S, UInt8, UInt64, Bool);
483     scilab_fill_comparisonequal(ScalarUInt8, ScalarBool, M_E, UInt8, Bool, Bool);
484
485     //Int16
486     //Matrix == Matrix
487     scilab_fill_comparisonequal(Int16, Double, M_M, Int16, Double, Bool);
488     scilab_fill_comparisonequal(Int16, Int8, M_M, Int16, Int8, Bool);
489     scilab_fill_comparisonequal(Int16, UInt8, M_M, Int16, UInt8, Bool);
490     scilab_fill_comparisonequal(Int16, Int16, M_M, Int16, Int16, Bool);
491     scilab_fill_comparisonequal(Int16, UInt16, M_M, Int16, UInt16, Bool);
492     scilab_fill_comparisonequal(Int16, Int32, M_M, Int16, Int32, Bool);
493     scilab_fill_comparisonequal(Int16, UInt32, M_M, Int16, UInt32, Bool);
494     scilab_fill_comparisonequal(Int16, Int64, M_M, Int16, Int64, Bool);
495     scilab_fill_comparisonequal(Int16, UInt64, M_M, Int16, UInt64, Bool);
496     scilab_fill_comparisonequal(Int16, Bool, M_B, Int16, Bool, Bool);
497     scilab_fill_comparisonequal(Int16, Empty, M_E, Int16, Double, Bool);
498
499     //Matrix == Scalar
500     scilab_fill_comparisonequal(Int16, ScalarDouble, M_S, Int16, Double, Bool);
501     scilab_fill_comparisonequal(Int16, ScalarInt8, M_S, Int16, Int8, Bool);
502     scilab_fill_comparisonequal(Int16, ScalarUInt8, M_S, Int16, UInt8, Bool);
503     scilab_fill_comparisonequal(Int16, ScalarInt16, M_S, Int16, Int16, Bool);
504     scilab_fill_comparisonequal(Int16, ScalarUInt16, M_S, Int16, UInt16, Bool);
505     scilab_fill_comparisonequal(Int16, ScalarInt32, M_S, Int16, Int32, Bool);
506     scilab_fill_comparisonequal(Int16, ScalarUInt32, M_S, Int16, UInt32, Bool);
507     scilab_fill_comparisonequal(Int16, ScalarInt64, M_S, Int16, Int64, Bool);
508     scilab_fill_comparisonequal(Int16, ScalarUInt64, M_S, Int16, UInt64, Bool);
509     scilab_fill_comparisonequal(Int16, ScalarBool, M_B, Int16, Bool, Bool);
510
511     //Scalar == Matrix
512     scilab_fill_comparisonequal(ScalarInt16, Double, S_M, Int16, Double, Bool);
513     scilab_fill_comparisonequal(ScalarInt16, Int8, S_M, Int16, Int8, Bool);
514     scilab_fill_comparisonequal(ScalarInt16, UInt8, S_M, Int16, UInt8, Bool);
515     scilab_fill_comparisonequal(ScalarInt16, Int16, S_M, Int16, Int16, Bool);
516     scilab_fill_comparisonequal(ScalarInt16, UInt16, S_M, Int16, UInt16, Bool);
517     scilab_fill_comparisonequal(ScalarInt16, Int32, S_M, Int16, Int32, Bool);
518     scilab_fill_comparisonequal(ScalarInt16, UInt32, S_M, Int16, UInt32, Bool);
519     scilab_fill_comparisonequal(ScalarInt16, Int64, S_M, Int16, Int64, Bool);
520     scilab_fill_comparisonequal(ScalarInt16, UInt64, S_M, Int16, UInt64, Bool);
521     scilab_fill_comparisonequal(ScalarInt16, Bool, S_B, Int16, Bool, Bool);
522     scilab_fill_comparisonequal(ScalarInt16, Empty, M_E, Int16, Double, Bool);
523
524     //Scalar == Scalar
525     scilab_fill_comparisonequal(ScalarInt16, ScalarDouble, S_S, Int16, Double, Bool);
526     scilab_fill_comparisonequal(ScalarInt16, ScalarInt8, S_S, Int16, Int8, Bool);
527     scilab_fill_comparisonequal(ScalarInt16, ScalarUInt8, S_S, Int16, UInt8, Bool);
528     scilab_fill_comparisonequal(ScalarInt16, ScalarInt16, S_S, Int16, Int16, Bool);
529     scilab_fill_comparisonequal(ScalarInt16, ScalarUInt16, S_S, Int16, UInt16, Bool);
530     scilab_fill_comparisonequal(ScalarInt16, ScalarInt32, S_S, Int16, Int32, Bool);
531     scilab_fill_comparisonequal(ScalarInt16, ScalarUInt32, S_S, Int16, UInt32, Bool);
532     scilab_fill_comparisonequal(ScalarInt16, ScalarInt64, S_S, Int16, Int64, Bool);
533     scilab_fill_comparisonequal(ScalarInt16, ScalarUInt64, S_S, Int16, UInt64, Bool);
534     scilab_fill_comparisonequal(ScalarInt16, ScalarBool, M_E, Int16, Bool, Bool);
535
536     //UInt16
537     //Matrix == Matrix
538     scilab_fill_comparisonequal(UInt16, Double, M_M, UInt16, Double, Bool);
539     scilab_fill_comparisonequal(UInt16, Int8, M_M, UInt16, Int8, Bool);
540     scilab_fill_comparisonequal(UInt16, UInt8, M_M, UInt16, UInt8, Bool);
541     scilab_fill_comparisonequal(UInt16, Int16, M_M, UInt16, Int16, Bool);
542     scilab_fill_comparisonequal(UInt16, UInt16, M_M, UInt16, UInt16, Bool);
543     scilab_fill_comparisonequal(UInt16, Int32, M_M, UInt16, Int32, Bool);
544     scilab_fill_comparisonequal(UInt16, UInt32, M_M, UInt16, UInt32, Bool);
545     scilab_fill_comparisonequal(UInt16, Int64, M_M, UInt16, Int64, Bool);
546     scilab_fill_comparisonequal(UInt16, UInt64, M_M, UInt16, UInt64, Bool);
547     scilab_fill_comparisonequal(UInt16, Bool, M_B, UInt16, Bool, Bool);
548     scilab_fill_comparisonequal(UInt16, Empty, M_E, UInt16, Double, Bool);
549
550     //Matrix == Scalar
551     scilab_fill_comparisonequal(UInt16, ScalarDouble, M_S, UInt16, Double, Bool);
552     scilab_fill_comparisonequal(UInt16, ScalarInt8, M_S, UInt16, Int8, Bool);
553     scilab_fill_comparisonequal(UInt16, ScalarUInt8, M_S, UInt16, UInt8, Bool);
554     scilab_fill_comparisonequal(UInt16, ScalarInt16, M_S, UInt16, Int16, Bool);
555     scilab_fill_comparisonequal(UInt16, ScalarUInt16, M_S, UInt16, UInt16, Bool);
556     scilab_fill_comparisonequal(UInt16, ScalarInt32, M_S, UInt16, Int32, Bool);
557     scilab_fill_comparisonequal(UInt16, ScalarUInt32, M_S, UInt16, UInt32, Bool);
558     scilab_fill_comparisonequal(UInt16, ScalarInt64, M_S, UInt16, Int64, Bool);
559     scilab_fill_comparisonequal(UInt16, ScalarUInt64, M_S, UInt16, UInt64, Bool);
560     scilab_fill_comparisonequal(UInt16, ScalarBool, M_B, UInt16, Bool, Bool);
561
562     //Scalar == Matrix
563     scilab_fill_comparisonequal(ScalarUInt16, Double, S_M, UInt16, Double, Bool);
564     scilab_fill_comparisonequal(ScalarUInt16, Int8, S_M, UInt16, Int8, Bool);
565     scilab_fill_comparisonequal(ScalarUInt16, UInt8, S_M, UInt16, UInt8, Bool);
566     scilab_fill_comparisonequal(ScalarUInt16, Int16, S_M, UInt16, Int16, Bool);
567     scilab_fill_comparisonequal(ScalarUInt16, UInt16, S_M, UInt16, UInt16, Bool);
568     scilab_fill_comparisonequal(ScalarUInt16, Int32, S_M, UInt16, Int32, Bool);
569     scilab_fill_comparisonequal(ScalarUInt16, UInt32, S_M, UInt16, UInt32, Bool);
570     scilab_fill_comparisonequal(ScalarUInt16, Int64, S_M, UInt16, Int64, Bool);
571     scilab_fill_comparisonequal(ScalarUInt16, UInt64, S_M, UInt16, UInt64, Bool);
572     scilab_fill_comparisonequal(ScalarUInt16, Bool, S_B, UInt16, Bool, Bool);
573     scilab_fill_comparisonequal(ScalarUInt16, Empty, M_E, UInt16, Double, Bool);
574
575     //Scalar == Scalar
576     scilab_fill_comparisonequal(ScalarUInt16, ScalarDouble, S_S, UInt16, Double, Bool);
577     scilab_fill_comparisonequal(ScalarUInt16, ScalarInt8, S_S, UInt16, Int8, Bool);
578     scilab_fill_comparisonequal(ScalarUInt16, ScalarUInt8, S_S, UInt16, UInt8, Bool);
579     scilab_fill_comparisonequal(ScalarUInt16, ScalarInt16, S_S, UInt16, Int16, Bool);
580     scilab_fill_comparisonequal(ScalarUInt16, ScalarUInt16, S_S, UInt16, UInt16, Bool);
581     scilab_fill_comparisonequal(ScalarUInt16, ScalarInt32, S_S, UInt16, Int32, Bool);
582     scilab_fill_comparisonequal(ScalarUInt16, ScalarUInt32, S_S, UInt16, UInt32, Bool);
583     scilab_fill_comparisonequal(ScalarUInt16, ScalarInt64, S_S, UInt16, Int64, Bool);
584     scilab_fill_comparisonequal(ScalarUInt16, ScalarUInt64, S_S, UInt16, UInt64, Bool);
585     scilab_fill_comparisonequal(ScalarUInt16, ScalarBool, M_E, UInt16, Bool, Bool);
586
587     //Int32
588     //Matrix == Matrix
589     scilab_fill_comparisonequal(Int32, Double, M_M, Int32, Double, Bool);
590     scilab_fill_comparisonequal(Int32, Int8, M_M, Int32, Int8, Bool);
591     scilab_fill_comparisonequal(Int32, UInt8, M_M, Int32, UInt8, Bool);
592     scilab_fill_comparisonequal(Int32, Int16, M_M, Int32, Int16, Bool);
593     scilab_fill_comparisonequal(Int32, UInt16, M_M, Int32, UInt16, Bool);
594     scilab_fill_comparisonequal(Int32, Int32, M_M, Int32, Int32, Bool);
595     scilab_fill_comparisonequal(Int32, UInt32, M_M, Int32, UInt32, Bool);
596     scilab_fill_comparisonequal(Int32, Int64, M_M, Int32, Int64, Bool);
597     scilab_fill_comparisonequal(Int32, UInt64, M_M, Int32, UInt64, Bool);
598     scilab_fill_comparisonequal(Int32, Bool, M_B, Int32, Bool, Bool);
599     scilab_fill_comparisonequal(Int32, Empty, M_E, Int32, Double, Bool);
600
601     //Matrix == Scalar
602     scilab_fill_comparisonequal(Int32, ScalarDouble, M_S, Int32, Double, Bool);
603     scilab_fill_comparisonequal(Int32, ScalarInt8, M_S, Int32, Int8, Bool);
604     scilab_fill_comparisonequal(Int32, ScalarUInt8, M_S, Int32, UInt8, Bool);
605     scilab_fill_comparisonequal(Int32, ScalarInt16, M_S, Int32, Int16, Bool);
606     scilab_fill_comparisonequal(Int32, ScalarUInt16, M_S, Int32, UInt16, Bool);
607     scilab_fill_comparisonequal(Int32, ScalarInt32, M_S, Int32, Int32, Bool);
608     scilab_fill_comparisonequal(Int32, ScalarUInt32, M_S, Int32, UInt32, Bool);
609     scilab_fill_comparisonequal(Int32, ScalarInt64, M_S, Int32, Int64, Bool);
610     scilab_fill_comparisonequal(Int32, ScalarUInt64, M_S, Int32, UInt64, Bool);
611     scilab_fill_comparisonequal(Int32, ScalarBool, M_B, Int32, Bool, Bool);
612
613     //Scalar == Matrix
614     scilab_fill_comparisonequal(ScalarInt32, Double, S_M, Int32, Double, Bool);
615     scilab_fill_comparisonequal(ScalarInt32, Int8, S_M, Int32, Int8, Bool);
616     scilab_fill_comparisonequal(ScalarInt32, UInt8, S_M, Int32, UInt8, Bool);
617     scilab_fill_comparisonequal(ScalarInt32, Int16, S_M, Int32, Int16, Bool);
618     scilab_fill_comparisonequal(ScalarInt32, UInt16, S_M, Int32, UInt16, Bool);
619     scilab_fill_comparisonequal(ScalarInt32, Int32, S_M, Int32, Int32, Bool);
620     scilab_fill_comparisonequal(ScalarInt32, UInt32, S_M, Int32, UInt32, Bool);
621     scilab_fill_comparisonequal(ScalarInt32, Int64, S_M, Int32, Int64, Bool);
622     scilab_fill_comparisonequal(ScalarInt32, UInt64, S_M, Int32, UInt64, Bool);
623     scilab_fill_comparisonequal(ScalarInt32, Bool, S_B, Int32, Bool, Bool);
624     scilab_fill_comparisonequal(ScalarInt32, Empty, M_E, Int32, Double, Bool);
625
626     //Scalar == Scalar
627     scilab_fill_comparisonequal(ScalarInt32, ScalarDouble, S_S, Int32, Double, Bool);
628     scilab_fill_comparisonequal(ScalarInt32, ScalarInt8, S_S, Int32, Int8, Bool);
629     scilab_fill_comparisonequal(ScalarInt32, ScalarUInt8, S_S, Int32, UInt8, Bool);
630     scilab_fill_comparisonequal(ScalarInt32, ScalarInt16, S_S, Int32, Int16, Bool);
631     scilab_fill_comparisonequal(ScalarInt32, ScalarUInt16, S_S, Int32, UInt16, Bool);
632     scilab_fill_comparisonequal(ScalarInt32, ScalarInt32, S_S, Int32, Int32, Bool);
633     scilab_fill_comparisonequal(ScalarInt32, ScalarUInt32, S_S, Int32, UInt32, Bool);
634     scilab_fill_comparisonequal(ScalarInt32, ScalarInt64, S_S, Int32, Int64, Bool);
635     scilab_fill_comparisonequal(ScalarInt32, ScalarUInt64, S_S, Int32, UInt64, Bool);
636     scilab_fill_comparisonequal(ScalarInt32, ScalarBool, M_E, Int32, Bool, Bool);
637
638     //UInt32
639     //Matrix == Matrix
640     scilab_fill_comparisonequal(UInt32, Double, M_M, UInt32, Double, Bool);
641     scilab_fill_comparisonequal(UInt32, Int8, M_M, UInt32, Int8, Bool);
642     scilab_fill_comparisonequal(UInt32, UInt8, M_M, UInt32, UInt8, Bool);
643     scilab_fill_comparisonequal(UInt32, Int16, M_M, UInt32, Int16, Bool);
644     scilab_fill_comparisonequal(UInt32, UInt16, M_M, UInt32, UInt16, Bool);
645     scilab_fill_comparisonequal(UInt32, Int32, M_M, UInt32, Int32, Bool);
646     scilab_fill_comparisonequal(UInt32, UInt32, M_M, UInt32, UInt32, Bool);
647     scilab_fill_comparisonequal(UInt32, Int64, M_M, UInt32, Int64, Bool);
648     scilab_fill_comparisonequal(UInt32, UInt64, M_M, UInt32, UInt64, Bool);
649     scilab_fill_comparisonequal(UInt32, Bool, M_B, UInt32, Bool, Bool);
650     scilab_fill_comparisonequal(UInt32, Empty, M_E, UInt32, Double, Bool);
651
652     //Matrix == Scalar
653     scilab_fill_comparisonequal(UInt32, ScalarDouble, M_S, UInt32, Double, Bool);
654     scilab_fill_comparisonequal(UInt32, ScalarInt8, M_S, UInt32, Int8, Bool);
655     scilab_fill_comparisonequal(UInt32, ScalarUInt8, M_S, UInt32, UInt8, Bool);
656     scilab_fill_comparisonequal(UInt32, ScalarInt16, M_S, UInt32, Int16, Bool);
657     scilab_fill_comparisonequal(UInt32, ScalarUInt16, M_S, UInt32, UInt16, Bool);
658     scilab_fill_comparisonequal(UInt32, ScalarInt32, M_S, UInt32, Int32, Bool);
659     scilab_fill_comparisonequal(UInt32, ScalarUInt32, M_S, UInt32, UInt32, Bool);
660     scilab_fill_comparisonequal(UInt32, ScalarInt64, M_S, UInt32, Int64, Bool);
661     scilab_fill_comparisonequal(UInt32, ScalarUInt64, M_S, UInt32, UInt64, Bool);
662     scilab_fill_comparisonequal(UInt32, ScalarBool, M_B, UInt32, Bool, Bool);
663
664     //Scalar == Matrix
665     scilab_fill_comparisonequal(ScalarUInt32, Double, S_M, UInt32, Double, Bool);
666     scilab_fill_comparisonequal(ScalarUInt32, Int8, S_M, UInt32, Int8, Bool);
667     scilab_fill_comparisonequal(ScalarUInt32, UInt8, S_M, UInt32, UInt8, Bool);
668     scilab_fill_comparisonequal(ScalarUInt32, Int16, S_M, UInt32, Int16, Bool);
669     scilab_fill_comparisonequal(ScalarUInt32, UInt16, S_M, UInt32, UInt16, Bool);
670     scilab_fill_comparisonequal(ScalarUInt32, Int32, S_M, UInt32, Int32, Bool);
671     scilab_fill_comparisonequal(ScalarUInt32, UInt32, S_M, UInt32, UInt32, Bool);
672     scilab_fill_comparisonequal(ScalarUInt32, Int64, S_M, UInt32, Int64, Bool);
673     scilab_fill_comparisonequal(ScalarUInt32, UInt64, S_M, UInt32, UInt64, Bool);
674     scilab_fill_comparisonequal(ScalarUInt32, Bool, S_B, UInt32, Bool, Bool);
675     scilab_fill_comparisonequal(ScalarUInt32, Empty, M_E, UInt32, Double, Bool);
676
677     //Scalar == Scalar
678     scilab_fill_comparisonequal(ScalarUInt32, ScalarDouble, S_S, UInt32, Double, Bool);
679     scilab_fill_comparisonequal(ScalarUInt32, ScalarInt8, S_S, UInt32, Int8, Bool);
680     scilab_fill_comparisonequal(ScalarUInt32, ScalarUInt8, S_S, UInt32, UInt8, Bool);
681     scilab_fill_comparisonequal(ScalarUInt32, ScalarInt16, S_S, UInt32, Int16, Bool);
682     scilab_fill_comparisonequal(ScalarUInt32, ScalarUInt16, S_S, UInt32, UInt16, Bool);
683     scilab_fill_comparisonequal(ScalarUInt32, ScalarInt32, S_S, UInt32, Int32, Bool);
684     scilab_fill_comparisonequal(ScalarUInt32, ScalarUInt32, S_S, UInt32, UInt32, Bool);
685     scilab_fill_comparisonequal(ScalarUInt32, ScalarInt64, S_S, UInt32, Int64, Bool);
686     scilab_fill_comparisonequal(ScalarUInt32, ScalarUInt64, S_S, UInt32, UInt64, Bool);
687     scilab_fill_comparisonequal(ScalarUInt32, ScalarBool, M_E, UInt32, Bool, Bool);
688
689     //Int64
690     //Matrix == Matrix
691     scilab_fill_comparisonequal(Int64, Double, M_M, Int64, Double, Bool);
692     scilab_fill_comparisonequal(Int64, Int8, M_M, Int64, Int8, Bool);
693     scilab_fill_comparisonequal(Int64, UInt8, M_M, Int64, UInt8, Bool);
694     scilab_fill_comparisonequal(Int64, Int16, M_M, Int64, Int16, Bool);
695     scilab_fill_comparisonequal(Int64, UInt16, M_M, Int64, UInt16, Bool);
696     scilab_fill_comparisonequal(Int64, Int32, M_M, Int64, Int32, Bool);
697     scilab_fill_comparisonequal(Int64, UInt32, M_M, Int64, UInt32, Bool);
698     scilab_fill_comparisonequal(Int64, Int64, M_M, Int64, Int64, Bool);
699     scilab_fill_comparisonequal(Int64, UInt64, M_M, Int64, UInt64, Bool);
700     scilab_fill_comparisonequal(Int64, Bool, M_B, Int64, Bool, Bool);
701     scilab_fill_comparisonequal(Int64, Empty, M_E, Int64, Double, Bool);
702
703     //Matrix == Scalar
704     scilab_fill_comparisonequal(Int64, ScalarDouble, M_S, Int64, Double, Bool);
705     scilab_fill_comparisonequal(Int64, ScalarInt8, M_S, Int64, Int8, Bool);
706     scilab_fill_comparisonequal(Int64, ScalarUInt8, M_S, Int64, UInt8, Bool);
707     scilab_fill_comparisonequal(Int64, ScalarInt16, M_S, Int64, Int16, Bool);
708     scilab_fill_comparisonequal(Int64, ScalarUInt16, M_S, Int64, UInt16, Bool);
709     scilab_fill_comparisonequal(Int64, ScalarInt32, M_S, Int64, Int32, Bool);
710     scilab_fill_comparisonequal(Int64, ScalarUInt32, M_S, Int64, UInt32, Bool);
711     scilab_fill_comparisonequal(Int64, ScalarInt64, M_S, Int64, Int64, Bool);
712     scilab_fill_comparisonequal(Int64, ScalarUInt64, M_S, Int64, UInt64, Bool);
713     scilab_fill_comparisonequal(Int64, ScalarBool, M_B, Int64, Bool, Bool);
714
715     //Scalar == Matrix
716     scilab_fill_comparisonequal(ScalarInt64, Double, S_M, Int64, Double, Bool);
717     scilab_fill_comparisonequal(ScalarInt64, Int8, S_M, Int64, Int8, Bool);
718     scilab_fill_comparisonequal(ScalarInt64, UInt8, S_M, Int64, UInt8, Bool);
719     scilab_fill_comparisonequal(ScalarInt64, Int16, S_M, Int64, Int16, Bool);
720     scilab_fill_comparisonequal(ScalarInt64, UInt16, S_M, Int64, UInt16, Bool);
721     scilab_fill_comparisonequal(ScalarInt64, Int32, S_M, Int64, Int32, Bool);
722     scilab_fill_comparisonequal(ScalarInt64, UInt32, S_M, Int64, UInt32, Bool);
723     scilab_fill_comparisonequal(ScalarInt64, Int64, S_M, Int64, Int64, Bool);
724     scilab_fill_comparisonequal(ScalarInt64, UInt64, S_M, Int64, UInt64, Bool);
725     scilab_fill_comparisonequal(ScalarInt64, Bool, S_B, Int64, Bool, Bool);
726     scilab_fill_comparisonequal(ScalarInt64, Empty, M_E, Int64, Double, Bool);
727
728     //Scalar == Scalar
729     scilab_fill_comparisonequal(ScalarInt64, ScalarDouble, S_S, Int64, Double, Bool);
730     scilab_fill_comparisonequal(ScalarInt64, ScalarInt8, S_S, Int64, Int8, Bool);
731     scilab_fill_comparisonequal(ScalarInt64, ScalarUInt8, S_S, Int64, UInt8, Bool);
732     scilab_fill_comparisonequal(ScalarInt64, ScalarInt16, S_S, Int64, Int16, Bool);
733     scilab_fill_comparisonequal(ScalarInt64, ScalarUInt16, S_S, Int64, UInt16, Bool);
734     scilab_fill_comparisonequal(ScalarInt64, ScalarInt32, S_S, Int64, Int32, Bool);
735     scilab_fill_comparisonequal(ScalarInt64, ScalarUInt32, S_S, Int64, UInt32, Bool);
736     scilab_fill_comparisonequal(ScalarInt64, ScalarInt64, S_S, Int64, Int64, Bool);
737     scilab_fill_comparisonequal(ScalarInt64, ScalarUInt64, S_S, Int64, UInt64, Bool);
738     scilab_fill_comparisonequal(ScalarInt64, ScalarBool, M_E, Int64, Bool, Bool);
739
740     //UInt64
741     //Matrix == Matrix
742     scilab_fill_comparisonequal(UInt64, Double, M_M, UInt64, Double, Bool);
743     scilab_fill_comparisonequal(UInt64, Int8, M_M, UInt64, Int8, Bool);
744     scilab_fill_comparisonequal(UInt64, UInt8, M_M, UInt64, UInt8, Bool);
745     scilab_fill_comparisonequal(UInt64, Int16, M_M, UInt64, Int16, Bool);
746     scilab_fill_comparisonequal(UInt64, UInt16, M_M, UInt64, UInt16, Bool);
747     scilab_fill_comparisonequal(UInt64, Int32, M_M, UInt64, Int32, Bool);
748     scilab_fill_comparisonequal(UInt64, UInt32, M_M, UInt64, UInt32, Bool);
749     scilab_fill_comparisonequal(UInt64, Int64, M_M, UInt64, Int64, Bool);
750     scilab_fill_comparisonequal(UInt64, UInt64, M_M, UInt64, UInt64, Bool);
751     scilab_fill_comparisonequal(UInt64, Bool, M_B, UInt64, Bool, Bool);
752     scilab_fill_comparisonequal(UInt64, Empty, M_E, UInt64, Double, Bool);
753
754     //Matrix == Scalar
755     scilab_fill_comparisonequal(UInt64, ScalarDouble, M_S, UInt64, Double, Bool);
756     scilab_fill_comparisonequal(UInt64, ScalarInt8, M_S, UInt64, Int8, Bool);
757     scilab_fill_comparisonequal(UInt64, ScalarUInt8, M_S, UInt64, UInt8, Bool);
758     scilab_fill_comparisonequal(UInt64, ScalarInt16, M_S, UInt64, Int16, Bool);
759     scilab_fill_comparisonequal(UInt64, ScalarUInt16, M_S, UInt64, UInt16, Bool);
760     scilab_fill_comparisonequal(UInt64, ScalarInt32, M_S, UInt64, Int32, Bool);
761     scilab_fill_comparisonequal(UInt64, ScalarUInt32, M_S, UInt64, UInt32, Bool);
762     scilab_fill_comparisonequal(UInt64, ScalarInt64, M_S, UInt64, Int64, Bool);
763     scilab_fill_comparisonequal(UInt64, ScalarUInt64, M_S, UInt64, UInt64, Bool);
764     scilab_fill_comparisonequal(UInt64, ScalarBool, M_B, UInt64, Bool, Bool);
765
766     //Scalar == Matrix
767     scilab_fill_comparisonequal(ScalarUInt64, Double, S_M, UInt64, Double, Bool);
768     scilab_fill_comparisonequal(ScalarUInt64, Int8, S_M, UInt64, Int8, Bool);
769     scilab_fill_comparisonequal(ScalarUInt64, UInt8, S_M, UInt64, UInt8, Bool);
770     scilab_fill_comparisonequal(ScalarUInt64, Int16, S_M, UInt64, Int16, Bool);
771     scilab_fill_comparisonequal(ScalarUInt64, UInt16, S_M, UInt64, UInt16, Bool);
772     scilab_fill_comparisonequal(ScalarUInt64, Int32, S_M, UInt64, Int32, Bool);
773     scilab_fill_comparisonequal(ScalarUInt64, UInt32, S_M, UInt64, UInt32, Bool);
774     scilab_fill_comparisonequal(ScalarUInt64, Int64, S_M, UInt64, Int64, Bool);
775     scilab_fill_comparisonequal(ScalarUInt64, UInt64, S_M, UInt64, UInt64, Bool);
776     scilab_fill_comparisonequal(ScalarUInt64, Bool, S_B, UInt64, Bool, Bool);
777     scilab_fill_comparisonequal(ScalarUInt64, Empty, M_E, UInt64, Double, Bool);
778
779     //Scalar == Scalar
780     scilab_fill_comparisonequal(ScalarUInt64, ScalarDouble, S_S, UInt64, Double, Bool);
781     scilab_fill_comparisonequal(ScalarUInt64, ScalarInt8, S_S, UInt64, Int8, Bool);
782     scilab_fill_comparisonequal(ScalarUInt64, ScalarUInt8, S_S, UInt64, UInt8, Bool);
783     scilab_fill_comparisonequal(ScalarUInt64, ScalarInt16, S_S, UInt64, Int16, Bool);
784     scilab_fill_comparisonequal(ScalarUInt64, ScalarUInt16, S_S, UInt64, UInt16, Bool);
785     scilab_fill_comparisonequal(ScalarUInt64, ScalarInt32, S_S, UInt64, Int32, Bool);
786     scilab_fill_comparisonequal(ScalarUInt64, ScalarUInt32, S_S, UInt64, UInt32, Bool);
787     scilab_fill_comparisonequal(ScalarUInt64, ScalarInt64, S_S, UInt64, Int64, Bool);
788     scilab_fill_comparisonequal(ScalarUInt64, ScalarUInt64, S_S, UInt64, UInt64, Bool);
789     scilab_fill_comparisonequal(ScalarUInt64, ScalarBool, M_E, UInt64, Bool, Bool);
790
791     //Bool
792     //Matrix == Matrix
793     scilab_fill_comparisonequal(Bool, Double, M_E, Bool, Double, Bool);
794     scilab_fill_comparisonequal(Bool, Int8, B_M, Bool, Int8, Bool);
795     scilab_fill_comparisonequal(Bool, UInt8, B_M, Bool, UInt8, Bool);
796     scilab_fill_comparisonequal(Bool, Int16, B_M, Bool, Int16, Bool);
797     scilab_fill_comparisonequal(Bool, UInt16, B_M, Bool, UInt16, Bool);
798     scilab_fill_comparisonequal(Bool, Int32, B_M, Bool, Int32, Bool);
799     scilab_fill_comparisonequal(Bool, UInt32, B_M, Bool, UInt32, Bool);
800     scilab_fill_comparisonequal(Bool, Int64, B_M, Bool, Int64, Bool);
801     scilab_fill_comparisonequal(Bool, UInt64, B_M, Bool, UInt64, Bool);
802     scilab_fill_comparisonequal(Bool, Bool, M_M, Bool, Bool, Bool);
803     scilab_fill_comparisonequal(Bool, Empty, M_E, Bool, Double, Bool);
804
805     //Matrix == Scalar
806     scilab_fill_comparisonequal(Bool, ScalarDouble, M_E, Bool, Double, Bool);
807     scilab_fill_comparisonequal(Bool, ScalarInt8, B_S, Bool, Int8, Bool);
808     scilab_fill_comparisonequal(Bool, ScalarUInt8, B_S, Bool, UInt8, Bool);
809     scilab_fill_comparisonequal(Bool, ScalarInt16, B_S, Bool, Int16, Bool);
810     scilab_fill_comparisonequal(Bool, ScalarUInt16, B_S, Bool, UInt16, Bool);
811     scilab_fill_comparisonequal(Bool, ScalarInt32, B_S, Bool, Int32, Bool);
812     scilab_fill_comparisonequal(Bool, ScalarUInt32, B_S, Bool, UInt32, Bool);
813     scilab_fill_comparisonequal(Bool, ScalarInt64, B_S, Bool, Int64, Bool);
814     scilab_fill_comparisonequal(Bool, ScalarUInt64, B_S, Bool, UInt64, Bool);
815     scilab_fill_comparisonequal(Bool, ScalarBool, M_S, Bool, Bool, Bool);
816
817     //Scalar == Matrix
818     scilab_fill_comparisonequal(ScalarBool, Double, M_E, Bool, Double, Bool);
819     scilab_fill_comparisonequal(ScalarBool, Int8, B_M, Bool, Int8, Bool);
820     scilab_fill_comparisonequal(ScalarBool, UInt8, B_M, Bool, UInt8, Bool);
821     scilab_fill_comparisonequal(ScalarBool, Int16, B_M, Bool, Int16, Bool);
822     scilab_fill_comparisonequal(ScalarBool, UInt16, B_M, Bool, UInt16, Bool);
823     scilab_fill_comparisonequal(ScalarBool, Int32, B_M, Bool, Int32, Bool);
824     scilab_fill_comparisonequal(ScalarBool, UInt32, B_M, Bool, UInt32, Bool);
825     scilab_fill_comparisonequal(ScalarBool, Int64, B_M, Bool, Int64, Bool);
826     scilab_fill_comparisonequal(ScalarBool, UInt64, B_M, Bool, UInt64, Bool);
827     scilab_fill_comparisonequal(ScalarBool, Bool, S_M, Bool, Bool, Bool);
828     scilab_fill_comparisonequal(ScalarBool, Empty, M_E, Bool, Double, Bool);
829
830     //Scalar == Scalar
831     scilab_fill_comparisonequal(ScalarBool, ScalarDouble, M_E, Bool, Double, Bool);
832     scilab_fill_comparisonequal(ScalarBool, ScalarInt8, M_E, Bool, Int8, Bool);
833     scilab_fill_comparisonequal(ScalarBool, ScalarUInt8, M_E, Bool, UInt8, Bool);
834     scilab_fill_comparisonequal(ScalarBool, ScalarInt16, M_E, Bool, Int16, Bool);
835     scilab_fill_comparisonequal(ScalarBool, ScalarUInt16, M_E, Bool, UInt16, Bool);
836     scilab_fill_comparisonequal(ScalarBool, ScalarInt32, M_E, Bool, Int32, Bool);
837     scilab_fill_comparisonequal(ScalarBool, ScalarUInt32, M_E, Bool, UInt32, Bool);
838     scilab_fill_comparisonequal(ScalarBool, ScalarInt64, M_E, Bool, Int64, Bool);
839     scilab_fill_comparisonequal(ScalarBool, ScalarUInt64, M_E, Bool, UInt64, Bool);
840     scilab_fill_comparisonequal(ScalarBool, ScalarBool, S_S, Bool, Bool, Bool);
841
842     //Bool == Identity
843     scilab_fill_comparisonequal(Bool, Identity, M_E, Bool, Double, Bool);
844     scilab_fill_comparisonequal(Bool, IdentityComplex, M_E, Bool, Double, Bool);
845     scilab_fill_comparisonequal(ScalarBool, Identity, M_E, Bool, Double, Bool);
846     scilab_fill_comparisonequal(ScalarBool, IdentityComplex, M_E, Bool, Double, Bool);
847
848     //Bool == Polynom
849     scilab_fill_comparisonequal(Bool, Polynom, M_E, Bool, Polynom, Bool);
850     scilab_fill_comparisonequal(Bool, PolynomComplex, M_E, Bool, Polynom, Bool);
851     scilab_fill_comparisonequal(Bool, ScalarPolynom, M_E, Bool, Polynom, Bool);
852     scilab_fill_comparisonequal(Bool, ScalarPolynomComplex, M_E, Bool, Polynom, Bool);
853     scilab_fill_comparisonequal(ScalarBool, Polynom, M_E, Bool, Polynom, Bool);
854     scilab_fill_comparisonequal(ScalarBool, PolynomComplex, M_E, Bool, Polynom, Bool);
855     scilab_fill_comparisonequal(ScalarBool, ScalarPolynom, M_E, Bool, Polynom, Bool);
856     scilab_fill_comparisonequal(ScalarBool, ScalarPolynomComplex, M_E, Bool, Polynom, Bool);
857
858     //Bool == Sparse
859     scilab_fill_comparisonequal(Bool, Sparse, M_E, Bool, Sparse, Bool);
860     scilab_fill_comparisonequal(Bool, SparseComplex, M_E, Bool, Sparse, Bool);
861     scilab_fill_comparisonequal(ScalarBool, Sparse, M_E, Bool, Sparse, Bool);
862     scilab_fill_comparisonequal(ScalarBool, SparseComplex, M_E, Bool, Sparse, Bool);
863
864     //Identity
865     scilab_fill_comparisonequal(Identity, Double, I_M, Double, Double, Bool);
866     scilab_fill_comparisonequal(Identity, DoubleComplex, I_MC, Double, Double, Bool);
867     scilab_fill_comparisonequal(Identity, ScalarDouble, I_S, Double, Double, Bool);
868     scilab_fill_comparisonequal(Identity, ScalarDoubleComplex, I_SC, Double, Double, Bool);
869     scilab_fill_comparisonequal(Identity, Identity, I_I, Double, Double, Bool);
870     scilab_fill_comparisonequal(Identity, IdentityComplex, I_IC, Double, Double, Bool);
871     scilab_fill_comparisonequal(Identity, Empty, M_E, Double, Double, Bool);
872
873     scilab_fill_comparisonequal(Identity, Polynom, M_P, Double, Polynom, Bool);
874     scilab_fill_comparisonequal(Identity, PolynomComplex, M_P, Double, Polynom, Bool);
875     scilab_fill_comparisonequal(Identity, ScalarPolynom, M_P, Double, Polynom, Bool);
876     scilab_fill_comparisonequal(Identity, ScalarPolynomComplex, M_P, Double, Polynom, Bool);
877     scilab_fill_comparisonequal(Identity, Sparse, M_E, Double, Sparse, SparseBool);
878     scilab_fill_comparisonequal(Identity, SparseComplex, M_E, Double, Sparse, SparseBool);
879
880     scilab_fill_comparisonequal(IdentityComplex, Double, IC_M, Double, Double, Bool);
881     scilab_fill_comparisonequal(IdentityComplex, DoubleComplex, IC_MC, Double, Double, Bool);
882     scilab_fill_comparisonequal(IdentityComplex, ScalarDouble, IC_S, Double, Double, Bool);
883     scilab_fill_comparisonequal(IdentityComplex, ScalarDoubleComplex, IC_SC, Double, Double, Bool);
884     scilab_fill_comparisonequal(IdentityComplex, Identity, IC_I, Double, Double, Bool);
885     scilab_fill_comparisonequal(IdentityComplex, IdentityComplex, IC_IC, Double, Double, Bool);
886     scilab_fill_comparisonequal(IdentityComplex, Empty, M_E, Double, Double, Bool);
887
888     scilab_fill_comparisonequal(IdentityComplex, Polynom, M_P, Double, Polynom, Bool);
889     scilab_fill_comparisonequal(IdentityComplex, PolynomComplex, M_P, Double, Polynom, Bool);
890     scilab_fill_comparisonequal(IdentityComplex, ScalarPolynom, M_P, Double, Polynom, Bool);
891     scilab_fill_comparisonequal(IdentityComplex, ScalarPolynomComplex, M_P, Double, Polynom, Bool);
892     scilab_fill_comparisonequal(IdentityComplex, Sparse, M_E, Double, Sparse, SparseBool);
893     scilab_fill_comparisonequal(IdentityComplex, SparseComplex, M_E, Double, Sparse, SparseBool);
894
895     scilab_fill_comparisonequal(Identity, Bool, M_E, Double, Bool, Bool);
896     scilab_fill_comparisonequal(IdentityComplex, Bool, M_E, Double, Bool, Bool);
897     scilab_fill_comparisonequal(Identity, ScalarBool, M_E, Double, Bool, Bool);
898     scilab_fill_comparisonequal(IdentityComplex, ScalarBool, M_E, Double, Bool, Bool);
899
900     //Polynom
901
902     //poly == poly
903     scilab_fill_comparisonequal(Polynom, Polynom, M_M, Polynom, Polynom, Bool);
904     scilab_fill_comparisonequal(Polynom, PolynomComplex, M_M, Polynom, Polynom, Bool);
905     scilab_fill_comparisonequal(PolynomComplex, Polynom, M_M, Polynom, Polynom, Bool);
906     scilab_fill_comparisonequal(PolynomComplex, PolynomComplex, M_M, Polynom, Polynom, Bool);
907
908     //poly == scalar poly
909     scilab_fill_comparisonequal(Polynom, ScalarPolynom, M_M, Polynom, Polynom, Bool);
910     scilab_fill_comparisonequal(Polynom, ScalarPolynomComplex, M_M, Polynom, Polynom, Bool);
911     scilab_fill_comparisonequal(PolynomComplex, ScalarPolynom, M_M, Polynom, Polynom, Bool);
912     scilab_fill_comparisonequal(PolynomComplex, ScalarPolynomComplex, M_M, Polynom, Polynom, Bool);
913
914     //poly == double
915     scilab_fill_comparisonequal(Polynom, Double, P_M, Polynom, Double, Bool);
916     scilab_fill_comparisonequal(Polynom, DoubleComplex, P_M, Polynom, Double, Bool);
917     scilab_fill_comparisonequal(PolynomComplex, Double, P_M, Polynom, Double, Bool);
918     scilab_fill_comparisonequal(PolynomComplex, DoubleComplex, P_M, Polynom, Double, Bool);
919
920     //poly == scalar double
921     scilab_fill_comparisonequal(Polynom, ScalarDouble, P_M, Polynom, Double, Bool);
922     scilab_fill_comparisonequal(Polynom, ScalarDoubleComplex, P_M, Polynom, Double, Bool);
923     scilab_fill_comparisonequal(PolynomComplex, ScalarDouble, P_M, Polynom, Double, Bool);
924     scilab_fill_comparisonequal(PolynomComplex, ScalarDoubleComplex, P_M, Polynom, Double, Bool);
925
926     //poly == Bool
927     scilab_fill_comparisonequal(Polynom, Bool, E_M, Polynom, Bool, Bool);
928     scilab_fill_comparisonequal(Polynom, ScalarBool, E_M, Polynom, Bool, Bool);
929     scilab_fill_comparisonequal(PolynomComplex, Bool, E_M, Polynom, Bool, Bool);
930     scilab_fill_comparisonequal(PolynomComplex, ScalarBool, E_M, Polynom, Bool, Bool);
931
932     //poly == []
933     scilab_fill_comparisonequal(Polynom, Empty, M_E, Polynom, Double, Bool);
934     scilab_fill_comparisonequal(PolynomComplex, Empty, M_E, Polynom, Double, Bool);
935
936     //poly == eye
937     scilab_fill_comparisonequal(Polynom, Identity, P_M, Polynom, Double, Bool);
938     scilab_fill_comparisonequal(Polynom, IdentityComplex, P_M, Polynom, Double, Bool);
939     scilab_fill_comparisonequal(PolynomComplex, Identity, P_M, Polynom, Double, Bool);
940     scilab_fill_comparisonequal(PolynomComplex, IdentityComplex, P_M, Polynom, Double, Bool);
941
942     //scalar poly == poly
943     scilab_fill_comparisonequal(ScalarPolynom, Polynom, M_M, Polynom, Polynom, Bool);
944     scilab_fill_comparisonequal(ScalarPolynom, PolynomComplex, M_M, Polynom, Polynom, Bool);
945     scilab_fill_comparisonequal(ScalarPolynomComplex, Polynom, M_M, Polynom, Polynom, Bool);
946     scilab_fill_comparisonequal(ScalarPolynomComplex, PolynomComplex, M_M, Polynom, Polynom, Bool);
947
948     //scalar poly == scalar poly
949     scilab_fill_comparisonequal(ScalarPolynom, ScalarPolynom, M_M, Polynom, Polynom, Bool);
950     scilab_fill_comparisonequal(ScalarPolynom, ScalarPolynomComplex, M_M, Polynom, Polynom, Bool);
951     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarPolynom, M_M, Polynom, Polynom, Bool);
952     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarPolynomComplex, M_M, Polynom, Polynom, Bool);
953
954     //scalar poly == double
955     scilab_fill_comparisonequal(ScalarPolynom, Double, P_M, Polynom, Double, Bool);
956     scilab_fill_comparisonequal(ScalarPolynom, DoubleComplex, P_M, Polynom, Double, Bool);
957     scilab_fill_comparisonequal(ScalarPolynomComplex, Double, P_M, Polynom, Double, Bool);
958     scilab_fill_comparisonequal(ScalarPolynomComplex, DoubleComplex, P_M, Polynom, Double, Bool);
959
960     //scalar poly == scalar double
961     scilab_fill_comparisonequal(ScalarPolynom, ScalarDouble, P_M, Polynom, Double, Bool);
962     scilab_fill_comparisonequal(ScalarPolynom, ScalarDoubleComplex, P_M, Polynom, Double, Bool);
963     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarDouble, P_M, Polynom, Double, Bool);
964     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarDoubleComplex, P_M, Polynom, Double, Bool);
965
966     //poly == Bool
967     scilab_fill_comparisonequal(ScalarPolynom, Bool, E_M, Polynom, Bool, Bool);
968     scilab_fill_comparisonequal(ScalarPolynom, ScalarBool, E_M, Polynom, Bool, Bool);
969     scilab_fill_comparisonequal(ScalarPolynomComplex, Bool, E_M, Polynom, Bool, Bool);
970     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarBool, E_M, Polynom, Bool, Bool);
971
972     //scalar poly == []
973     scilab_fill_comparisonequal(ScalarPolynom, Empty, M_E, Polynom, Double, Bool);
974     scilab_fill_comparisonequal(ScalarPolynomComplex, Empty, M_E, Polynom, Double, Bool);
975
976     //scalar poly == eye
977     scilab_fill_comparisonequal(ScalarPolynom, Identity, P_M, Polynom, Double, Bool);
978     scilab_fill_comparisonequal(ScalarPolynom, IdentityComplex, P_M, Polynom, Double, Bool);
979     scilab_fill_comparisonequal(ScalarPolynomComplex, Identity, P_M, Polynom, Double, Bool);
980     scilab_fill_comparisonequal(ScalarPolynomComplex, IdentityComplex, P_M, Polynom, Double, Bool);
981
982     //poly == Int8
983     scilab_fill_comparisonequal(Polynom, Int8, P_M, Polynom, Int8, Bool);
984     scilab_fill_comparisonequal(Polynom, UInt8, P_M, Polynom, UInt8, Bool);
985     scilab_fill_comparisonequal(PolynomComplex, Int8, P_M, Polynom, Int8, Bool);
986     scilab_fill_comparisonequal(PolynomComplex, UInt8, P_M, Polynom, UInt8, Bool);
987
988     scilab_fill_comparisonequal(Int8, Polynom, M_P, Int8, Polynom, Bool);
989     scilab_fill_comparisonequal(UInt8, Polynom, M_P, UInt8, Polynom, Bool);
990     scilab_fill_comparisonequal(Int8, PolynomComplex, M_P, Int8, Polynom, Bool);
991     scilab_fill_comparisonequal(UInt8, PolynomComplex, M_P, UInt8, Polynom, Bool);
992
993     scilab_fill_comparisonequal(ScalarPolynom, Int8, P_M, Polynom, Int8, Bool);
994     scilab_fill_comparisonequal(ScalarPolynom, UInt8, P_M, Polynom, UInt8, Bool);
995     scilab_fill_comparisonequal(ScalarPolynomComplex, Int8, P_M, Polynom, Int8, Bool);
996     scilab_fill_comparisonequal(ScalarPolynomComplex, UInt8, P_M, Polynom, UInt8, Bool);
997
998     scilab_fill_comparisonequal(Int8, ScalarPolynom, M_P, Int8, Polynom, Bool);
999     scilab_fill_comparisonequal(UInt8, ScalarPolynom, M_P, UInt8, Polynom, Bool);
1000     scilab_fill_comparisonequal(Int8, ScalarPolynomComplex, M_P, Int8, Polynom, Bool);
1001     scilab_fill_comparisonequal(UInt8, ScalarPolynomComplex, M_P, UInt8, Polynom, Bool);
1002
1003     //poly == Int16
1004     scilab_fill_comparisonequal(Polynom, Int16, P_M, Polynom, Int16, Bool);
1005     scilab_fill_comparisonequal(Polynom, UInt16, P_M, Polynom, UInt16, Bool);
1006     scilab_fill_comparisonequal(PolynomComplex, Int16, P_M, Polynom, Int16, Bool);
1007     scilab_fill_comparisonequal(PolynomComplex, UInt16, P_M, Polynom, UInt16, Bool);
1008
1009     scilab_fill_comparisonequal(Int16, Polynom, M_P, Int16, Polynom, Bool);
1010     scilab_fill_comparisonequal(UInt16, Polynom, M_P, UInt16, Polynom, Bool);
1011     scilab_fill_comparisonequal(Int16, PolynomComplex, M_P, Int16, Polynom, Bool);
1012     scilab_fill_comparisonequal(UInt16, PolynomComplex, M_P, UInt16, Polynom, Bool);
1013
1014     scilab_fill_comparisonequal(ScalarPolynom, Int16, P_M, Polynom, Int16, Bool);
1015     scilab_fill_comparisonequal(ScalarPolynom, UInt16, P_M, Polynom, UInt16, Bool);
1016     scilab_fill_comparisonequal(ScalarPolynomComplex, Int16, P_M, Polynom, Int16, Bool);
1017     scilab_fill_comparisonequal(ScalarPolynomComplex, UInt16, P_M, Polynom, UInt16, Bool);
1018
1019     scilab_fill_comparisonequal(Int16, ScalarPolynom, M_P, Int16, Polynom, Bool);
1020     scilab_fill_comparisonequal(UInt16, ScalarPolynom, M_P, UInt16, Polynom, Bool);
1021     scilab_fill_comparisonequal(Int16, ScalarPolynomComplex, M_P, Int16, Polynom, Bool);
1022     scilab_fill_comparisonequal(UInt16, ScalarPolynomComplex, M_P, UInt16, Polynom, Bool);
1023
1024     //poly == Int32
1025     scilab_fill_comparisonequal(Polynom, Int32, P_M, Polynom, Int32, Bool);
1026     scilab_fill_comparisonequal(Polynom, UInt32, P_M, Polynom, UInt32, Bool);
1027     scilab_fill_comparisonequal(PolynomComplex, Int32, P_M, Polynom, Int32, Bool);
1028     scilab_fill_comparisonequal(PolynomComplex, UInt32, P_M, Polynom, UInt32, Bool);
1029
1030     scilab_fill_comparisonequal(Int32, Polynom, M_P, Int32, Polynom, Bool);
1031     scilab_fill_comparisonequal(UInt32, Polynom, M_P, UInt32, Polynom, Bool);
1032     scilab_fill_comparisonequal(Int32, PolynomComplex, M_P, Int32, Polynom, Bool);
1033     scilab_fill_comparisonequal(UInt32, PolynomComplex, M_P, UInt32, Polynom, Bool);
1034
1035     scilab_fill_comparisonequal(ScalarPolynom, Int32, P_M, Polynom, Int32, Bool);
1036     scilab_fill_comparisonequal(ScalarPolynom, UInt32, P_M, Polynom, UInt32, Bool);
1037     scilab_fill_comparisonequal(ScalarPolynomComplex, Int32, P_M, Polynom, Int32, Bool);
1038     scilab_fill_comparisonequal(ScalarPolynomComplex, UInt32, P_M, Polynom, UInt32, Bool);
1039
1040     scilab_fill_comparisonequal(Int32, ScalarPolynom, M_P, Int32, Polynom, Bool);
1041     scilab_fill_comparisonequal(UInt32, ScalarPolynom, M_P, UInt32, Polynom, Bool);
1042     scilab_fill_comparisonequal(Int32, ScalarPolynomComplex, M_P, Int32, Polynom, Bool);
1043     scilab_fill_comparisonequal(UInt32, ScalarPolynomComplex, M_P, UInt32, Polynom, Bool);
1044
1045     //poly == Int64
1046     scilab_fill_comparisonequal(Polynom, Int64, P_M, Polynom, Int64, Bool);
1047     scilab_fill_comparisonequal(Polynom, UInt64, P_M, Polynom, UInt64, Bool);
1048     scilab_fill_comparisonequal(PolynomComplex, Int64, P_M, Polynom, Int64, Bool);
1049     scilab_fill_comparisonequal(PolynomComplex, UInt64, P_M, Polynom, UInt64, Bool);
1050
1051     scilab_fill_comparisonequal(Int64, Polynom, M_P, Int64, Polynom, Bool);
1052     scilab_fill_comparisonequal(UInt64, Polynom, M_P, UInt64, Polynom, Bool);
1053     scilab_fill_comparisonequal(Int64, PolynomComplex, M_P, Int64, Polynom, Bool);
1054     scilab_fill_comparisonequal(UInt64, PolynomComplex, M_P, UInt64, Polynom, Bool);
1055
1056     scilab_fill_comparisonequal(ScalarPolynom, Int64, P_M, Polynom, Int64, Bool);
1057     scilab_fill_comparisonequal(ScalarPolynom, UInt64, P_M, Polynom, UInt64, Bool);
1058     scilab_fill_comparisonequal(ScalarPolynomComplex, Int64, P_M, Polynom, Int64, Bool);
1059     scilab_fill_comparisonequal(ScalarPolynomComplex, UInt64, P_M, Polynom, UInt64, Bool);
1060
1061     scilab_fill_comparisonequal(Int64, ScalarPolynom, M_P, Int64, Polynom, Bool);
1062     scilab_fill_comparisonequal(UInt64, ScalarPolynom, M_P, UInt64, Polynom, Bool);
1063     scilab_fill_comparisonequal(Int64, ScalarPolynomComplex, M_P, Int64, Polynom, Bool);
1064     scilab_fill_comparisonequal(UInt64, ScalarPolynomComplex, M_P, UInt64, Polynom, Bool);
1065
1066     //poly == Int8
1067     scilab_fill_comparisonequal(Polynom, ScalarInt8, P_M, Polynom, Int8, Bool);
1068     scilab_fill_comparisonequal(Polynom, ScalarUInt8, P_M, Polynom, UInt8, Bool);
1069     scilab_fill_comparisonequal(PolynomComplex, ScalarInt8, P_M, Polynom, Int8, Bool);
1070     scilab_fill_comparisonequal(PolynomComplex, ScalarUInt8, P_M, Polynom, UInt8, Bool);
1071
1072     scilab_fill_comparisonequal(ScalarInt8, Polynom, M_P, Int8, Polynom, Bool);
1073     scilab_fill_comparisonequal(ScalarUInt8, Polynom, M_P, UInt8, Polynom, Bool);
1074     scilab_fill_comparisonequal(ScalarInt8, PolynomComplex, M_P, Int8, Polynom, Bool);
1075     scilab_fill_comparisonequal(ScalarUInt8, PolynomComplex, M_P, UInt8, Polynom, Bool);
1076
1077     scilab_fill_comparisonequal(ScalarPolynom, ScalarInt8, P_M, Polynom, Int8, Bool);
1078     scilab_fill_comparisonequal(ScalarPolynom, ScalarUInt8, P_M, Polynom, UInt8, Bool);
1079     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarInt8, P_M, Polynom, Int8, Bool);
1080     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarUInt8, P_M, Polynom, UInt8, Bool);
1081
1082     scilab_fill_comparisonequal(ScalarInt8, ScalarPolynom, M_P, Int8, Polynom, Bool);
1083     scilab_fill_comparisonequal(ScalarUInt8, ScalarPolynom, M_P, UInt8, Polynom, Bool);
1084     scilab_fill_comparisonequal(ScalarInt8, ScalarPolynomComplex, M_P, Int8, Polynom, Bool);
1085     scilab_fill_comparisonequal(ScalarUInt8, ScalarPolynomComplex, M_P, UInt8, Polynom, Bool);
1086
1087     //poly == Int16
1088     scilab_fill_comparisonequal(Polynom, ScalarInt16, P_M, Polynom, Int16, Bool);
1089     scilab_fill_comparisonequal(Polynom, ScalarUInt16, P_M, Polynom, UInt16, Bool);
1090     scilab_fill_comparisonequal(PolynomComplex, ScalarInt16, P_M, Polynom, Int16, Bool);
1091     scilab_fill_comparisonequal(PolynomComplex, ScalarUInt16, P_M, Polynom, UInt16, Bool);
1092
1093     scilab_fill_comparisonequal(ScalarInt16, Polynom, M_P, Polynom, Int16, Bool);
1094     scilab_fill_comparisonequal(ScalarUInt16, Polynom, M_P, Polynom, UInt16, Bool);
1095     scilab_fill_comparisonequal(ScalarInt16, PolynomComplex, M_P, Int16, Polynom, Bool);
1096     scilab_fill_comparisonequal(ScalarUInt16, PolynomComplex, M_P, UInt16, Polynom, Bool);
1097
1098     scilab_fill_comparisonequal(ScalarPolynom, ScalarInt16, P_M, Polynom, Int16, Bool);
1099     scilab_fill_comparisonequal(ScalarPolynom, ScalarUInt16, P_M, Polynom, UInt16, Bool);
1100     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarInt16, P_M, Polynom, Int16, Bool);
1101     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarUInt16, P_M, Polynom, UInt16, Bool);
1102
1103     scilab_fill_comparisonequal(ScalarInt16, ScalarPolynom, M_P, Int16, Polynom, Bool);
1104     scilab_fill_comparisonequal(ScalarUInt16, ScalarPolynom, M_P, UInt16, Polynom, Bool);
1105     scilab_fill_comparisonequal(ScalarInt16, ScalarPolynomComplex, M_P, Int16, Polynom, Bool);
1106     scilab_fill_comparisonequal(ScalarUInt16, ScalarPolynomComplex, M_P, UInt16, Polynom, Bool);
1107
1108     //poly == Int32
1109     scilab_fill_comparisonequal(Polynom, ScalarInt32, P_M, Polynom, Int32, Bool);
1110     scilab_fill_comparisonequal(Polynom, ScalarUInt32, P_M, Polynom, UInt32, Bool);
1111     scilab_fill_comparisonequal(PolynomComplex, ScalarInt32, P_M, Polynom, Int32, Bool);
1112     scilab_fill_comparisonequal(PolynomComplex, ScalarUInt32, P_M, Polynom, UInt32, Bool);
1113
1114     scilab_fill_comparisonequal(ScalarInt32, Polynom, M_P, Int32, Polynom, Bool);
1115     scilab_fill_comparisonequal(ScalarUInt32, Polynom, M_P, UInt32, Polynom, Bool);
1116     scilab_fill_comparisonequal(ScalarInt32, PolynomComplex, M_P, Int32, Polynom, Bool);
1117     scilab_fill_comparisonequal(ScalarUInt32, PolynomComplex, M_P, UInt32, Polynom, Bool);
1118
1119     scilab_fill_comparisonequal(ScalarPolynom, ScalarInt32, P_M, Polynom, Int32, Bool);
1120     scilab_fill_comparisonequal(ScalarPolynom, ScalarUInt32, P_M, Polynom, UInt32, Bool);
1121     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarInt32, P_M, Polynom, Int32, Bool);
1122     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarUInt32, P_M, Polynom, UInt32, Bool);
1123
1124     scilab_fill_comparisonequal(ScalarInt32, ScalarPolynom, M_P, Int32, Polynom, Bool);
1125     scilab_fill_comparisonequal(ScalarUInt32, ScalarPolynom, M_P, UInt32, Polynom, Bool);
1126     scilab_fill_comparisonequal(ScalarInt32, ScalarPolynomComplex, M_P, Int32, Polynom, Bool);
1127     scilab_fill_comparisonequal(ScalarUInt32, ScalarPolynomComplex, M_P, UInt32, Polynom, Bool);
1128
1129     //poly == Int64
1130     scilab_fill_comparisonequal(Polynom, ScalarInt64, P_M, Polynom, Int64, Bool);
1131     scilab_fill_comparisonequal(Polynom, ScalarUInt64, P_M, Polynom, UInt64, Bool);
1132     scilab_fill_comparisonequal(PolynomComplex, ScalarInt64, P_M, Polynom, Int64, Bool);
1133     scilab_fill_comparisonequal(PolynomComplex, ScalarUInt64, P_M, Polynom, UInt64, Bool);
1134
1135     scilab_fill_comparisonequal(ScalarInt64, Polynom, M_P, Int64, Polynom, Bool);
1136     scilab_fill_comparisonequal(ScalarUInt64, Polynom, M_P, UInt64, Polynom, Bool);
1137     scilab_fill_comparisonequal(ScalarInt64, PolynomComplex, M_P, Int64, Polynom, Bool);
1138     scilab_fill_comparisonequal(ScalarUInt64, PolynomComplex, M_P, UInt64, Polynom, Bool);
1139
1140     scilab_fill_comparisonequal(ScalarPolynom, ScalarInt64, P_M, Polynom, Int64, Bool);
1141     scilab_fill_comparisonequal(ScalarPolynom, ScalarUInt64, P_M, Polynom, UInt64, Bool);
1142     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarInt64, P_M, Polynom, Int64, Bool);
1143     scilab_fill_comparisonequal(ScalarPolynomComplex, ScalarUInt64, P_M, Polynom, UInt64, Bool);
1144
1145     scilab_fill_comparisonequal(ScalarInt64, ScalarPolynom, M_P, Int64, Polynom, Bool);
1146     scilab_fill_comparisonequal(ScalarUInt64, ScalarPolynom, M_P, UInt64, Polynom, Bool);
1147     scilab_fill_comparisonequal(ScalarInt64, ScalarPolynomComplex, M_P, Int64, Polynom, Bool);
1148     scilab_fill_comparisonequal(ScalarUInt64, ScalarPolynomComplex, M_P, UInt64, Polynom, Bool);
1149
1150     //poly == bool
1151     scilab_fill_comparisonequal(Polynom, Bool, M_E, Polynom, Bool, Bool);
1152     scilab_fill_comparisonequal(PolynomComplex, Bool, M_E, Polynom, Bool, Bool);
1153     scilab_fill_comparisonequal(ScalarPolynom, Bool, M_E, Polynom, Bool, Bool);
1154     scilab_fill_comparisonequal(ScalarPolynomComplex, Bool, M_E, Polynom, Bool, Bool);
1155
1156     scilab_fill_comparisonequal(Bool, Polynom, M_E, Bool, Polynom, Bool);
1157     scilab_fill_comparisonequal(Bool, PolynomComplex, M_E, Bool, Polynom, Bool);
1158     scilab_fill_comparisonequal(Bool, ScalarPolynom, M_E, Bool, Polynom, Bool);
1159     scilab_fill_comparisonequal(Bool, ScalarPolynomComplex, M_E, Bool, Polynom, Bool);
1160
1161     //Sparse
1162     scilab_fill_comparisonequal(Sparse, Sparse, M_M, Sparse, Sparse, SparseBool);
1163     scilab_fill_comparisonequal(Sparse, SparseComplex, M_M, Sparse, Sparse, SparseBool);
1164     scilab_fill_comparisonequal(Sparse, Double, SP_M, Sparse, Double, SparseBool);
1165     scilab_fill_comparisonequal(Sparse, DoubleComplex, SP_M, Sparse, Double, SparseBool);
1166     scilab_fill_comparisonequal(Sparse, ScalarDouble, SP_M, Sparse, Double, SparseBool);
1167     scilab_fill_comparisonequal(Sparse, ScalarDoubleComplex, SP_M, Sparse, Double, SparseBool);
1168
1169     scilab_fill_comparisonequal(Sparse, Empty, M_E, Sparse, Double, Bool);
1170     scilab_fill_comparisonequal(Sparse, Identity, M_E, Sparse, Double, SparseBool);
1171     scilab_fill_comparisonequal(Sparse, IdentityComplex, M_E, Sparse, Double, SparseBool);
1172
1173     scilab_fill_comparisonequal(SparseComplex, Sparse, M_M, Sparse, Sparse, SparseBool);
1174     scilab_fill_comparisonequal(SparseComplex, SparseComplex, M_M, Sparse, Sparse, SparseBool);
1175     scilab_fill_comparisonequal(SparseComplex, Double, SP_M, Sparse, Double, SparseBool);
1176     scilab_fill_comparisonequal(SparseComplex, DoubleComplex, SP_M, Sparse, Double, SparseBool);
1177     scilab_fill_comparisonequal(SparseComplex, ScalarDouble, SP_M, Sparse, Double, SparseBool);
1178     scilab_fill_comparisonequal(SparseComplex, ScalarDoubleComplex, SP_M, Sparse, Double, SparseBool);
1179
1180     scilab_fill_comparisonequal(SparseComplex, Empty, M_E, Sparse, Double, Bool);
1181     scilab_fill_comparisonequal(SparseComplex, Identity, M_E, Sparse, Double, SparseBool);
1182     scilab_fill_comparisonequal(SparseComplex, IdentityComplex, M_E, Sparse, Double, SparseBool);
1183
1184     scilab_fill_comparisonequal(Sparse, Bool, M_E, Sparse, Bool, Bool);
1185     scilab_fill_comparisonequal(Sparse, ScalarBool, M_E, Sparse, Bool, Bool);
1186     scilab_fill_comparisonequal(SparseComplex, Bool, M_E, Sparse, Bool, Bool);
1187     scilab_fill_comparisonequal(SparseComplex, ScalarBool, M_E, Sparse, Bool, Bool);
1188
1189     scilab_fill_comparisonequal(Sparse, Int8, SP_M, Sparse, Int8, SparseBool);
1190     scilab_fill_comparisonequal(Int8, Sparse, M_SP, Int8, Sparse, SparseBool);
1191     scilab_fill_comparisonequal(SparseComplex, Int8, SP_M, Sparse, Int8, SparseBool);
1192     scilab_fill_comparisonequal(Int8, SparseComplex, M_SP, Int8, Sparse, SparseBool);
1193
1194     scilab_fill_comparisonequal(Sparse, UInt8, SP_M, Sparse, UInt8, SparseBool);
1195     scilab_fill_comparisonequal(UInt8, Sparse, M_SP, UInt8, Sparse, SparseBool);
1196     scilab_fill_comparisonequal(SparseComplex, UInt8, SP_M, Sparse, UInt8, SparseBool);
1197     scilab_fill_comparisonequal(UInt8, SparseComplex, M_SP, UInt8, Sparse, SparseBool);
1198
1199     scilab_fill_comparisonequal(Sparse, Int16, SP_M, Sparse, Int16, SparseBool);
1200     scilab_fill_comparisonequal(Int16, Sparse, M_SP, Int16, Sparse, SparseBool);
1201     scilab_fill_comparisonequal(SparseComplex, Int16, SP_M, Sparse, Int16, SparseBool);
1202     scilab_fill_comparisonequal(Int16, SparseComplex, M_SP, Int16, Sparse, SparseBool);
1203
1204     scilab_fill_comparisonequal(Sparse, UInt16, SP_M, Sparse, UInt16, SparseBool);
1205     scilab_fill_comparisonequal(UInt16, Sparse, M_SP, UInt16, Sparse, SparseBool);
1206     scilab_fill_comparisonequal(SparseComplex, UInt16, SP_M, Sparse, UInt16, SparseBool);
1207     scilab_fill_comparisonequal(UInt16, SparseComplex, M_SP, UInt16, Sparse, SparseBool);
1208
1209     scilab_fill_comparisonequal(Sparse, Int32, SP_M, Sparse, Int32, SparseBool);
1210     scilab_fill_comparisonequal(Int32, Sparse, M_SP, Int32, Sparse, SparseBool);
1211     scilab_fill_comparisonequal(SparseComplex, Int32, SP_M, Sparse, Int32, SparseBool);
1212     scilab_fill_comparisonequal(Int32, SparseComplex, M_SP, Int32, Sparse, SparseBool);
1213
1214     scilab_fill_comparisonequal(Sparse, UInt32, SP_M, Sparse, UInt32, SparseBool);
1215     scilab_fill_comparisonequal(UInt32, Sparse, M_SP, UInt32, Sparse, SparseBool);
1216     scilab_fill_comparisonequal(SparseComplex, UInt32, SP_M, Sparse, UInt32, SparseBool);
1217     scilab_fill_comparisonequal(UInt32, SparseComplex, M_SP, UInt32, Sparse, SparseBool);
1218
1219     scilab_fill_comparisonequal(Sparse, Int64, SP_M, Sparse, Int64, SparseBool);
1220     scilab_fill_comparisonequal(Int64, Sparse, M_SP, Int64, Sparse, SparseBool);
1221     scilab_fill_comparisonequal(SparseComplex, Int64, SP_M, Sparse, Int64, SparseBool);
1222     scilab_fill_comparisonequal(Int64, SparseComplex, M_SP, Int64, Sparse, SparseBool);
1223
1224     scilab_fill_comparisonequal(Sparse, UInt64, SP_M, Sparse, UInt64, SparseBool);
1225     scilab_fill_comparisonequal(UInt64, Sparse, M_SP, UInt64, Sparse, SparseBool);
1226     scilab_fill_comparisonequal(SparseComplex, UInt64, SP_M, Sparse, UInt64, SparseBool);
1227     scilab_fill_comparisonequal(UInt64, SparseComplex, M_SP, UInt64, Sparse, SparseBool);
1228
1229     scilab_fill_comparisonequal(Sparse, ScalarInt8, SP_M, Sparse, Int8, SparseBool);
1230     scilab_fill_comparisonequal(ScalarInt8, Sparse, M_SP, Int8, Sparse, SparseBool);
1231     scilab_fill_comparisonequal(SparseComplex, ScalarInt8, SP_M, Sparse, Int8, SparseBool);
1232     scilab_fill_comparisonequal(ScalarInt8, SparseComplex, M_SP, Int8, Sparse, SparseBool);
1233
1234     scilab_fill_comparisonequal(Sparse, ScalarUInt8, SP_M, Sparse, UInt8, SparseBool);
1235     scilab_fill_comparisonequal(ScalarUInt8, Sparse, M_SP, UInt8, Sparse, SparseBool);
1236     scilab_fill_comparisonequal(SparseComplex, ScalarUInt8, SP_M, Sparse, UInt8, SparseBool);
1237     scilab_fill_comparisonequal(ScalarUInt8, SparseComplex, M_SP, UInt8, Sparse, SparseBool);
1238
1239     scilab_fill_comparisonequal(Sparse, ScalarInt16, SP_M, Sparse, Int16, SparseBool);
1240     scilab_fill_comparisonequal(ScalarInt16, Sparse, M_SP, Int16, Sparse, SparseBool);
1241     scilab_fill_comparisonequal(SparseComplex, ScalarInt16, SP_M, Sparse, Int16, SparseBool);
1242     scilab_fill_comparisonequal(ScalarInt16, SparseComplex, M_SP, Int16, Sparse, SparseBool);
1243
1244     scilab_fill_comparisonequal(Sparse, ScalarUInt16, SP_M, Sparse, UInt16, SparseBool);
1245     scilab_fill_comparisonequal(ScalarUInt16, Sparse, M_SP, UInt16, Sparse, SparseBool);
1246     scilab_fill_comparisonequal(SparseComplex, ScalarUInt16, SP_M, Sparse, UInt16, SparseBool);
1247     scilab_fill_comparisonequal(ScalarUInt16, SparseComplex, M_SP, UInt16, Sparse, SparseBool);
1248
1249     scilab_fill_comparisonequal(Sparse, ScalarInt32, SP_M, Sparse, Int32, SparseBool);
1250     scilab_fill_comparisonequal(ScalarInt32, Sparse, M_SP, Int32, Sparse, SparseBool);
1251     scilab_fill_comparisonequal(SparseComplex, ScalarInt32, SP_M, Sparse, Int32, SparseBool);
1252     scilab_fill_comparisonequal(ScalarInt32, SparseComplex, M_SP, Int32, Sparse, SparseBool);
1253
1254     scilab_fill_comparisonequal(Sparse, ScalarUInt32, SP_M, Sparse, UInt32, SparseBool);
1255     scilab_fill_comparisonequal(ScalarUInt32, Sparse, M_SP, UInt32, Sparse, SparseBool);
1256     scilab_fill_comparisonequal(SparseComplex, ScalarUInt32, SP_M, Sparse, UInt32, SparseBool);
1257     scilab_fill_comparisonequal(ScalarUInt32, SparseComplex, M_SP, UInt32, Sparse, SparseBool);
1258
1259     scilab_fill_comparisonequal(Sparse, ScalarInt64, SP_M, Sparse, Int64, SparseBool);
1260     scilab_fill_comparisonequal(ScalarInt64, Sparse, M_SP, Int64, Sparse, SparseBool);
1261     scilab_fill_comparisonequal(SparseComplex, ScalarInt64, SP_M, Sparse, Int64, SparseBool);
1262     scilab_fill_comparisonequal(ScalarInt64, SparseComplex, M_SP, Int64, Sparse, SparseBool);
1263
1264     scilab_fill_comparisonequal(Sparse, ScalarUInt64, SP_M, Sparse, UInt64, SparseBool);
1265     scilab_fill_comparisonequal(ScalarUInt64, Sparse, M_SP, UInt64, Sparse, SparseBool);
1266     scilab_fill_comparisonequal(SparseComplex, ScalarUInt64, SP_M, Sparse, UInt64, SparseBool);
1267     scilab_fill_comparisonequal(ScalarUInt64, SparseComplex, M_SP, UInt64, Sparse, SparseBool);
1268
1269
1270     //SparseBool
1271     scilab_fill_comparisonequal(SparseBool, SparseBool, M_M, SparseBool, SparseBool, SparseBool);
1272     scilab_fill_comparisonequal(SparseBool, Bool, M_M, SparseBool, Bool, SparseBool);
1273     scilab_fill_comparisonequal(Bool, SparseBool, M_M, Bool, SparseBool, SparseBool);
1274     scilab_fill_comparisonequal(SparseBool, ScalarBool, M_M, SparseBool, Bool, SparseBool);
1275     scilab_fill_comparisonequal(ScalarBool, SparseBool, M_M, Bool, SparseBool, SparseBool);
1276
1277     scilab_fill_comparisonequal(SparseBool, Double, M_E, SparseBool, Double, Bool);
1278     scilab_fill_comparisonequal(Double, SparseBool, M_E, Double, SparseBool, Bool);
1279     scilab_fill_comparisonequal(SparseBool, DoubleComplex, M_E, SparseBool, Double, Bool);
1280     scilab_fill_comparisonequal(DoubleComplex, SparseBool, M_E, Double, SparseBool, Bool);
1281
1282     scilab_fill_comparisonequal(SparseBool, ScalarDouble, M_E, SparseBool, Double, Bool);
1283     scilab_fill_comparisonequal(ScalarDouble, SparseBool, M_E, Double, SparseBool, Bool);
1284     scilab_fill_comparisonequal(SparseBool, ScalarDoubleComplex, M_E, SparseBool, Double, Bool);
1285     scilab_fill_comparisonequal(ScalarDoubleComplex, SparseBool, M_E, Double, SparseBool, Bool);
1286
1287     scilab_fill_comparisonequal(SparseBool, Empty, M_E, SparseBool, Double, Bool);
1288     scilab_fill_comparisonequal(Empty, SparseBool, M_E, Double, SparseBool, Bool);
1289     scilab_fill_comparisonequal(SparseBool, Identity, M_E, SparseBool, Double, Bool);
1290     scilab_fill_comparisonequal(Identity, SparseBool, M_E, Double, SparseBool, Bool);
1291     scilab_fill_comparisonequal(SparseBool, IdentityComplex, M_E, SparseBool, Double, Bool);
1292     scilab_fill_comparisonequal(IdentityComplex, SparseBool, M_E, Double, SparseBool, Bool);
1293
1294     scilab_fill_comparisonequal(SparseBool, Int8, M_E, SparseBool, Int8, Bool);
1295     scilab_fill_comparisonequal(Int8, SparseBool, M_E, Int8, SparseBool, Bool);
1296     scilab_fill_comparisonequal(SparseBool, UInt8, M_E, SparseBool, UInt8, Bool);
1297     scilab_fill_comparisonequal(UInt8, SparseBool, M_E, UInt8, SparseBool, Bool);
1298
1299     scilab_fill_comparisonequal(SparseBool, Int16, M_E, SparseBool, Int16, Bool);
1300     scilab_fill_comparisonequal(Int16, SparseBool, M_E, Int16, SparseBool, Bool);
1301     scilab_fill_comparisonequal(SparseBool, UInt16, M_E, SparseBool, UInt16, Bool);
1302     scilab_fill_comparisonequal(UInt16, SparseBool, M_E, UInt16, SparseBool, Bool);
1303
1304     scilab_fill_comparisonequal(SparseBool, Int32, M_E, SparseBool, Int32, Bool);
1305     scilab_fill_comparisonequal(Int32, SparseBool, M_E, Int32, SparseBool, Bool);
1306     scilab_fill_comparisonequal(SparseBool, UInt32, M_E, SparseBool, UInt32, Bool);
1307     scilab_fill_comparisonequal(UInt32, SparseBool, M_E, UInt32, SparseBool, Bool);
1308
1309     scilab_fill_comparisonequal(SparseBool, Int64, M_E, SparseBool, Int64, Bool);
1310     scilab_fill_comparisonequal(Int64, SparseBool, M_E, Int64, SparseBool, Bool);
1311     scilab_fill_comparisonequal(SparseBool, UInt64, M_E, SparseBool, UInt64, Bool);
1312     scilab_fill_comparisonequal(UInt64, SparseBool, M_E, UInt64, SparseBool, Bool);
1313
1314     scilab_fill_comparisonequal(SparseBool, ScalarInt8, M_E, SparseBool, Int8, Bool);
1315     scilab_fill_comparisonequal(ScalarInt8, SparseBool, M_E, Int8, SparseBool, Bool);
1316     scilab_fill_comparisonequal(SparseBool, ScalarUInt8, M_E, SparseBool, UInt8, Bool);
1317     scilab_fill_comparisonequal(ScalarUInt8, SparseBool, M_E, UInt8, SparseBool, Bool);
1318
1319     scilab_fill_comparisonequal(SparseBool, ScalarInt16, M_E, SparseBool, Int16, Bool);
1320     scilab_fill_comparisonequal(ScalarInt16, SparseBool, M_E, Int16, SparseBool, Bool);
1321     scilab_fill_comparisonequal(SparseBool, ScalarUInt16, M_E, SparseBool, UInt16, Bool);
1322     scilab_fill_comparisonequal(ScalarUInt16, SparseBool, M_E, UInt16, SparseBool, Bool);
1323
1324     scilab_fill_comparisonequal(SparseBool, ScalarInt32, M_E, SparseBool, Int32, Bool);
1325     scilab_fill_comparisonequal(ScalarInt32, SparseBool, M_E, Int32, SparseBool, Bool);
1326     scilab_fill_comparisonequal(SparseBool, ScalarUInt32, M_E, SparseBool, UInt32, Bool);
1327     scilab_fill_comparisonequal(ScalarUInt32, SparseBool, M_E, UInt32, SparseBool, Bool);
1328
1329     scilab_fill_comparisonequal(SparseBool, ScalarInt64, M_E, SparseBool, Int64, Bool);
1330     scilab_fill_comparisonequal(ScalarInt64, SparseBool, M_E, Int64, SparseBool, Bool);
1331     scilab_fill_comparisonequal(SparseBool, ScalarUInt64, M_E, SparseBool, UInt64, Bool);
1332     scilab_fill_comparisonequal(ScalarUInt64, SparseBool, M_E, UInt64, SparseBool, Bool);
1333
1334     scilab_fill_comparisonequal(SparseBool, String, M_E, SparseBool, String, Bool);
1335     scilab_fill_comparisonequal(String, SparseBool, M_E, String, SparseBool, Bool);
1336     scilab_fill_comparisonequal(SparseBool, ScalarString, M_E, SparseBool, String, Bool);
1337     scilab_fill_comparisonequal(ScalarString, SparseBool, M_E, String, SparseBool, Bool);
1338
1339     scilab_fill_comparisonequal(SparseBool, SparseComplex, M_E, SparseBool, Sparse, Bool);
1340     scilab_fill_comparisonequal(SparseComplex, SparseBool, M_E, Sparse, SparseBool, Bool);
1341
1342     scilab_fill_comparisonequal(SparseBool, Sparse, M_E, SparseBool, Sparse, Bool);
1343     scilab_fill_comparisonequal(Sparse, SparseBool, M_E, Sparse, SparseBool, Bool);
1344
1345     scilab_fill_comparisonequal(SparseBool, Sparse, M_E, SparseBool, Sparse, Bool);
1346     scilab_fill_comparisonequal(Sparse, SparseBool, M_E, Sparse, SparseBool, Bool);
1347
1348     //struct
1349     scilab_fill_comparisonequal(Struct, Struct, M_M, Struct, Struct, Bool);
1350
1351     scilab_fill_comparisonequal(Struct, Empty, M_E, Struct, Double, Bool);
1352     scilab_fill_comparisonequal(Empty, Struct, E_M, Double, Struct, Bool);
1353
1354     scilab_fill_comparisonequal(Struct, Double, M_E, Struct, Double, Bool);
1355     scilab_fill_comparisonequal(Double, Struct, M_E, Double, Struct, Bool);
1356     scilab_fill_comparisonequal(Struct, DoubleComplex, M_E, Struct, Double, Bool);
1357     scilab_fill_comparisonequal(DoubleComplex, Struct, M_E, Double, Struct, Bool);
1358
1359     scilab_fill_comparisonequal(Struct, ScalarDouble, M_E, Struct, Double, Bool);
1360     scilab_fill_comparisonequal(ScalarDouble, Struct, M_E, Double, Struct, Bool);
1361     scilab_fill_comparisonequal(Struct, ScalarDoubleComplex, M_E, Struct, Double, Bool);
1362     scilab_fill_comparisonequal(ScalarDoubleComplex, Struct, M_E, Double, Struct, Bool);
1363
1364     scilab_fill_comparisonequal(Struct, Identity, M_E, Struct, Double, Bool);
1365     scilab_fill_comparisonequal(Identity, Struct, M_E, Double, Struct, Bool);
1366     scilab_fill_comparisonequal(Struct, IdentityComplex, M_E, Struct, Double, Bool);
1367     scilab_fill_comparisonequal(IdentityComplex, Struct, M_E, Double, Struct, Bool);
1368
1369     scilab_fill_comparisonequal(Struct, Int8, M_E, Struct, Int8, Bool);
1370     scilab_fill_comparisonequal(Int8, Struct, M_E, Int8, Struct, Bool);
1371     scilab_fill_comparisonequal(Struct, UInt8, M_E, Struct, UInt8, Bool);
1372     scilab_fill_comparisonequal(UInt8, Struct, M_E, UInt8, Struct, Bool);
1373
1374     scilab_fill_comparisonequal(Struct, Int16, M_E, Struct, Int16, Bool);
1375     scilab_fill_comparisonequal(Int16, Struct, M_E, Int16, Struct, Bool);
1376     scilab_fill_comparisonequal(Struct, UInt16, M_E, Struct, UInt16, Bool);
1377     scilab_fill_comparisonequal(UInt16, Struct, M_E, UInt16, Struct, Bool);
1378
1379     scilab_fill_comparisonequal(Struct, Int32, M_E, Struct, Int32, Bool);
1380     scilab_fill_comparisonequal(Int32, Struct, M_E, Int32, Struct, Bool);
1381     scilab_fill_comparisonequal(Struct, UInt32, M_E, Struct, UInt32, Bool);
1382     scilab_fill_comparisonequal(UInt32, Struct, M_E, UInt32, Struct, Bool);
1383
1384     scilab_fill_comparisonequal(Struct, Int64, M_E, Struct, Int64, Bool);
1385     scilab_fill_comparisonequal(Int64, Struct, M_E, Int64, Struct, Bool);
1386     scilab_fill_comparisonequal(Struct, UInt64, M_E, Struct, UInt64, Bool);
1387     scilab_fill_comparisonequal(UInt64, Struct, M_E, UInt64, Struct, Bool);
1388
1389     scilab_fill_comparisonequal(Struct, ScalarInt8, M_E, Struct, Int8, Bool);
1390     scilab_fill_comparisonequal(ScalarInt8, Struct, M_E, Int8, Struct, Bool);
1391     scilab_fill_comparisonequal(Struct, ScalarUInt8, M_E, Struct, UInt8, Bool);
1392     scilab_fill_comparisonequal(ScalarUInt8, Struct, M_E, UInt8, Struct, Bool);
1393
1394     scilab_fill_comparisonequal(Struct, ScalarInt16, M_E, Struct, Int16, Bool);
1395     scilab_fill_comparisonequal(ScalarInt16, Struct, M_E, Int16, Struct, Bool);
1396     scilab_fill_comparisonequal(Struct, ScalarUInt16, M_E, Struct, UInt16, Bool);
1397     scilab_fill_comparisonequal(ScalarUInt16, Struct, M_E, UInt16, Struct, Bool);
1398
1399     scilab_fill_comparisonequal(Struct, ScalarInt32, M_E, Struct, Int32, Bool);
1400     scilab_fill_comparisonequal(ScalarInt32, Struct, M_E, Int32, Struct, Bool);
1401     scilab_fill_comparisonequal(Struct, ScalarUInt32, M_E, Struct, UInt32, Bool);
1402     scilab_fill_comparisonequal(ScalarUInt32, Struct, M_E, UInt32, Struct, Bool);
1403
1404     scilab_fill_comparisonequal(Struct, ScalarInt64, M_E, Struct, Int64, Bool);
1405     scilab_fill_comparisonequal(ScalarInt64, Struct, M_E, Int64, Struct, Bool);
1406     scilab_fill_comparisonequal(Struct, ScalarUInt64, M_E, Struct, UInt64, Bool);
1407     scilab_fill_comparisonequal(ScalarUInt64, Struct, M_E, UInt64, Struct, Bool);
1408
1409     scilab_fill_comparisonequal(Struct, String, M_E, Struct, String, Bool);
1410     scilab_fill_comparisonequal(String, Struct, M_E, String, Struct, Bool);
1411     scilab_fill_comparisonequal(Struct, ScalarString, M_E, Struct, String, Bool);
1412     scilab_fill_comparisonequal(ScalarString, Struct, M_E, String, Struct, Bool);
1413
1414     scilab_fill_comparisonequal(Struct, SparseComplex, M_E, Struct, Sparse, Bool);
1415     scilab_fill_comparisonequal(SparseComplex, Struct, M_E, Sparse, Struct, Bool);
1416
1417     scilab_fill_comparisonequal(Struct, Sparse, M_E, Struct, Sparse, Bool);
1418     scilab_fill_comparisonequal(Sparse, Struct, M_E, Sparse, Struct, Bool);
1419
1420     scilab_fill_comparisonequal(Struct, SparseBool, M_E, Struct, SparseBool, Bool);
1421     scilab_fill_comparisonequal(SparseBool, Struct, M_E, SparseBool, Struct, Bool);
1422
1423     //List, TList, MList
1424     scilab_fill_comparisonequal(List, List, LT_LT, List, List, Bool);
1425     scilab_fill_comparisonequal(MList, MList, LT_LT, MList, MList, Bool);
1426     scilab_fill_comparisonequal(TList, TList, LT_LT, TList, TList, Bool);
1427
1428     scilab_fill_comparisonequal(List, TList, LT_LT, List, TList, Bool);
1429     scilab_fill_comparisonequal(TList, List, LT_LT, TList, List, Bool);
1430     scilab_fill_comparisonequal(List, MList, LT_LT, List, MList, Bool);
1431     scilab_fill_comparisonequal(MList, List, LT_LT, MList, List, Bool);
1432
1433     scilab_fill_comparisonequal(TList, MList, LT_LT, TList, MList, Bool);
1434     scilab_fill_comparisonequal(MList, TList, LT_LT, MList, TList, Bool);
1435
1436     scilab_fill_comparisonequal(List, Empty, M_E, List, Double, Bool);
1437     scilab_fill_comparisonequal(TList, Empty, M_E, MList, Double, Bool);
1438     scilab_fill_comparisonequal(MList, Empty, M_E, TList, Double, Bool);
1439     scilab_fill_comparisonequal(Empty, List, E_M, Double, List, Bool);
1440     scilab_fill_comparisonequal(Empty, TList, E_M, Double, TList, Bool);
1441     scilab_fill_comparisonequal(Empty, MList, E_M, Double, MList, Bool);
1442
1443     scilab_fill_comparisonequal(List, Double, M_E, List, Double, Bool);
1444     scilab_fill_comparisonequal(Double, List, M_E, Double, List, Bool);
1445     scilab_fill_comparisonequal(List, DoubleComplex, M_E, List, Double, Bool);
1446     scilab_fill_comparisonequal(DoubleComplex, List, M_E, Double, List, Bool);
1447
1448     scilab_fill_comparisonequal(List, ScalarDouble, M_E, List, Double, Bool);
1449     scilab_fill_comparisonequal(ScalarDouble, List, M_E, Double, List, Bool);
1450     scilab_fill_comparisonequal(List, ScalarDoubleComplex, M_E, List, Double, Bool);
1451     scilab_fill_comparisonequal(ScalarDoubleComplex, List, M_E, Double, List, Bool);
1452
1453     scilab_fill_comparisonequal(List, Identity, M_E, List, Double, Bool);
1454     scilab_fill_comparisonequal(Identity, List, M_E, Double, List, Bool);
1455     scilab_fill_comparisonequal(List, IdentityComplex, M_E, List, Double, Bool);
1456     scilab_fill_comparisonequal(IdentityComplex, List, M_E, Double, List, Bool);
1457
1458     scilab_fill_comparisonequal(List, Int8, M_E, List, Int8, Bool);
1459     scilab_fill_comparisonequal(Int8, List, M_E, Int8, List, Bool);
1460     scilab_fill_comparisonequal(List, UInt8, M_E, List, UInt8, Bool);
1461     scilab_fill_comparisonequal(UInt8, List, M_E, UInt8, List, Bool);
1462
1463     scilab_fill_comparisonequal(List, Int16, M_E, List, Int16, Bool);
1464     scilab_fill_comparisonequal(Int16, List, M_E, Int16, List, Bool);
1465     scilab_fill_comparisonequal(List, UInt16, M_E, List, UInt16, Bool);
1466     scilab_fill_comparisonequal(UInt16, List, M_E, UInt16, List, Bool);
1467
1468     scilab_fill_comparisonequal(List, Int32, M_E, List, Int32, Bool);
1469     scilab_fill_comparisonequal(Int32, List, M_E, Int32, List, Bool);
1470     scilab_fill_comparisonequal(List, UInt32, M_E, List, UInt32, Bool);
1471     scilab_fill_comparisonequal(UInt32, List, M_E, UInt32, List, Bool);
1472
1473     scilab_fill_comparisonequal(List, Int64, M_E, List, Int64, Bool);
1474     scilab_fill_comparisonequal(Int64, List, M_E, Int64, List, Bool);
1475     scilab_fill_comparisonequal(List, UInt64, M_E, List, UInt64, Bool);
1476     scilab_fill_comparisonequal(UInt64, List, M_E, UInt64, List, Bool);
1477
1478     scilab_fill_comparisonequal(List, ScalarInt8, M_E, List, Int8, Bool);
1479     scilab_fill_comparisonequal(ScalarInt8, List, M_E, Int8, List, Bool);
1480     scilab_fill_comparisonequal(List, ScalarUInt8, M_E, List, UInt8, Bool);
1481     scilab_fill_comparisonequal(ScalarUInt8, List, M_E, UInt8, List, Bool);
1482
1483     scilab_fill_comparisonequal(List, ScalarInt16, M_E, List, Int16, Bool);
1484     scilab_fill_comparisonequal(ScalarInt16, List, M_E, Int16, List, Bool);
1485     scilab_fill_comparisonequal(List, ScalarUInt16, M_E, List, UInt16, Bool);
1486     scilab_fill_comparisonequal(ScalarUInt16, List, M_E, UInt16, List, Bool);
1487
1488     scilab_fill_comparisonequal(List, ScalarInt32, M_E, List, Int32, Bool);
1489     scilab_fill_comparisonequal(ScalarInt32, List, M_E, Int32, List, Bool);
1490     scilab_fill_comparisonequal(List, ScalarUInt32, M_E, List, UInt32, Bool);
1491     scilab_fill_comparisonequal(ScalarUInt32, List, M_E, UInt32, List, Bool);
1492
1493     scilab_fill_comparisonequal(List, ScalarInt64, M_E, List, Int64, Bool);
1494     scilab_fill_comparisonequal(ScalarInt64, List, M_E, Int64, List, Bool);
1495     scilab_fill_comparisonequal(List, ScalarUInt64, M_E, List, UInt64, Bool);
1496     scilab_fill_comparisonequal(ScalarUInt64, List, M_E, UInt64, List, Bool);
1497
1498     scilab_fill_comparisonequal(List, String, M_E, List, String, Bool);
1499     scilab_fill_comparisonequal(String, List, M_E, String, List, Bool);
1500     scilab_fill_comparisonequal(List, ScalarString, M_E, List, String, Bool);
1501     scilab_fill_comparisonequal(ScalarString, List, M_E, String, List, Bool);
1502
1503     scilab_fill_comparisonequal(List, SparseComplex, M_E, List, Sparse, Bool);
1504     scilab_fill_comparisonequal(SparseComplex, List, M_E, Sparse, List, Bool);
1505
1506     scilab_fill_comparisonequal(List, Sparse, M_E, List, Sparse, Bool);
1507     scilab_fill_comparisonequal(Sparse, List, M_E, Sparse, List, Bool);
1508
1509     scilab_fill_comparisonequal(List, SparseBool, M_E, List, SparseBool, Bool);
1510     scilab_fill_comparisonequal(SparseBool, List, M_E, SparseBool, List, Bool);
1511
1512     scilab_fill_comparisonequal(List, Struct, M_E, List, Struct, Bool);
1513     scilab_fill_comparisonequal(Struct, List, M_E, Struct, List, Bool);
1514
1515     scilab_fill_comparisonequal(TList, Double, M_E, TList, Double, Bool);
1516     scilab_fill_comparisonequal(Double, TList, M_E, Double, TList, Bool);
1517     scilab_fill_comparisonequal(TList, DoubleComplex, M_E, TList, Double, Bool);
1518     scilab_fill_comparisonequal(DoubleComplex, TList, M_E, Double, TList, Bool);
1519
1520     scilab_fill_comparisonequal(TList, ScalarDouble, M_E, TList, Double, Bool);
1521     scilab_fill_comparisonequal(ScalarDouble, TList, M_E, Double, TList, Bool);
1522     scilab_fill_comparisonequal(TList, ScalarDoubleComplex, M_E, TList, Double, Bool);
1523     scilab_fill_comparisonequal(ScalarDoubleComplex, TList, M_E, Double, TList, Bool);
1524
1525     scilab_fill_comparisonequal(TList, Identity, M_E, TList, Double, Bool);
1526     scilab_fill_comparisonequal(Identity, TList, M_E, Double, TList, Bool);
1527     scilab_fill_comparisonequal(TList, IdentityComplex, M_E, TList, Double, Bool);
1528     scilab_fill_comparisonequal(IdentityComplex, TList, M_E, Double, TList, Bool);
1529
1530     scilab_fill_comparisonequal(TList, Int8, M_E, TList, Int8, Bool);
1531     scilab_fill_comparisonequal(Int8, TList, M_E, Int8, TList, Bool);
1532     scilab_fill_comparisonequal(TList, UInt8, M_E, TList, UInt8, Bool);
1533     scilab_fill_comparisonequal(UInt8, TList, M_E, UInt8, TList, Bool);
1534
1535     scilab_fill_comparisonequal(TList, Int16, M_E, TList, Int16, Bool);
1536     scilab_fill_comparisonequal(Int16, TList, M_E, Int16, TList, Bool);
1537     scilab_fill_comparisonequal(TList, UInt16, M_E, TList, UInt16, Bool);
1538     scilab_fill_comparisonequal(UInt16, TList, M_E, UInt16, TList, Bool);
1539
1540     scilab_fill_comparisonequal(TList, Int32, M_E, TList, Int32, Bool);
1541     scilab_fill_comparisonequal(Int32, TList, M_E, Int32, TList, Bool);
1542     scilab_fill_comparisonequal(TList, UInt32, M_E, TList, UInt32, Bool);
1543     scilab_fill_comparisonequal(UInt32, TList, M_E, UInt32, TList, Bool);
1544
1545     scilab_fill_comparisonequal(TList, Int64, M_E, TList, Int64, Bool);
1546     scilab_fill_comparisonequal(Int64, TList, M_E, Int64, TList, Bool);
1547     scilab_fill_comparisonequal(TList, UInt64, M_E, TList, UInt64, Bool);
1548     scilab_fill_comparisonequal(UInt64, TList, M_E, UInt64, TList, Bool);
1549
1550     scilab_fill_comparisonequal(TList, ScalarInt8, M_E, TList, Int8, Bool);
1551     scilab_fill_comparisonequal(ScalarInt8, TList, M_E, Int8, TList, Bool);
1552     scilab_fill_comparisonequal(TList, ScalarUInt8, M_E, TList, UInt8, Bool);
1553     scilab_fill_comparisonequal(ScalarUInt8, TList, M_E, UInt8, TList, Bool);
1554
1555     scilab_fill_comparisonequal(TList, ScalarInt16, M_E, TList, Int16, Bool);
1556     scilab_fill_comparisonequal(ScalarInt16, TList, M_E, Int16, TList, Bool);
1557     scilab_fill_comparisonequal(TList, ScalarUInt16, M_E, TList, UInt16, Bool);
1558     scilab_fill_comparisonequal(ScalarUInt16, TList, M_E, UInt16, TList, Bool);
1559
1560     scilab_fill_comparisonequal(TList, ScalarInt32, M_E, TList, Int32, Bool);
1561     scilab_fill_comparisonequal(ScalarInt32, TList, M_E, Int32, TList, Bool);
1562     scilab_fill_comparisonequal(TList, ScalarUInt32, M_E, TList, UInt32, Bool);
1563     scilab_fill_comparisonequal(ScalarUInt32, TList, M_E, UInt32, TList, Bool);
1564
1565     scilab_fill_comparisonequal(TList, ScalarInt64, M_E, TList, Int64, Bool);
1566     scilab_fill_comparisonequal(ScalarInt64, TList, M_E, Int64, TList, Bool);
1567     scilab_fill_comparisonequal(TList, ScalarUInt64, M_E, TList, UInt64, Bool);
1568     scilab_fill_comparisonequal(ScalarUInt64, TList, M_E, UInt64, TList, Bool);
1569
1570     scilab_fill_comparisonequal(TList, String, M_E, TList, String, Bool);
1571     scilab_fill_comparisonequal(String, TList, M_E, String, TList, Bool);
1572     scilab_fill_comparisonequal(TList, ScalarString, M_E, TList, String, Bool);
1573     scilab_fill_comparisonequal(ScalarString, TList, M_E, String, TList, Bool);
1574
1575     scilab_fill_comparisonequal(TList, SparseComplex, M_E, TList, Sparse, Bool);
1576     scilab_fill_comparisonequal(SparseComplex, TList, M_E, Sparse, TList, Bool);
1577
1578     scilab_fill_comparisonequal(TList, Sparse, M_E, TList, Sparse, Bool);
1579     scilab_fill_comparisonequal(Sparse, TList, M_E, Sparse, TList, Bool);
1580
1581     scilab_fill_comparisonequal(TList, SparseBool, M_E, TList, SparseBool, Bool);
1582     scilab_fill_comparisonequal(SparseBool, TList, M_E, SparseBool, TList, Bool);
1583
1584     scilab_fill_comparisonequal(TList, Struct, M_E, TList, Struct, Bool);
1585     scilab_fill_comparisonequal(Struct, TList, M_E, Struct, TList, Bool);
1586
1587     scilab_fill_comparisonequal(MList, Double, M_E, MList, Double, Bool);
1588     scilab_fill_comparisonequal(Double, MList, M_E, Double, MList, Bool);
1589     scilab_fill_comparisonequal(MList, DoubleComplex, M_E, MList, Double, Bool);
1590     scilab_fill_comparisonequal(DoubleComplex, MList, M_E, Double, MList, Bool);
1591
1592     scilab_fill_comparisonequal(MList, ScalarDouble, M_E, MList, Double, Bool);
1593     scilab_fill_comparisonequal(ScalarDouble, MList, M_E, Double, MList, Bool);
1594     scilab_fill_comparisonequal(MList, ScalarDoubleComplex, M_E, MList, Double, Bool);
1595     scilab_fill_comparisonequal(ScalarDoubleComplex, MList, M_E, Double, MList, Bool);
1596
1597     scilab_fill_comparisonequal(MList, Identity, M_E, MList, Double, Bool);
1598     scilab_fill_comparisonequal(Identity, MList, M_E, Double, MList, Bool);
1599     scilab_fill_comparisonequal(MList, IdentityComplex, M_E, MList, Double, Bool);
1600     scilab_fill_comparisonequal(IdentityComplex, MList, M_E, Double, MList, Bool);
1601
1602     scilab_fill_comparisonequal(MList, Int8, M_E, MList, Int8, Bool);
1603     scilab_fill_comparisonequal(Int8, MList, M_E, Int8, MList, Bool);
1604     scilab_fill_comparisonequal(MList, UInt8, M_E, MList, UInt8, Bool);
1605     scilab_fill_comparisonequal(UInt8, MList, M_E, UInt8, MList, Bool);
1606
1607     scilab_fill_comparisonequal(MList, Int16, M_E, MList, Int16, Bool);
1608     scilab_fill_comparisonequal(Int16, MList, M_E, Int16, MList, Bool);
1609     scilab_fill_comparisonequal(MList, UInt16, M_E, MList, UInt16, Bool);
1610     scilab_fill_comparisonequal(UInt16, MList, M_E, UInt16, MList, Bool);
1611
1612     scilab_fill_comparisonequal(MList, Int32, M_E, MList, Int32, Bool);
1613     scilab_fill_comparisonequal(Int32, MList, M_E, Int32, MList, Bool);
1614     scilab_fill_comparisonequal(MList, UInt32, M_E, MList, UInt32, Bool);
1615     scilab_fill_comparisonequal(UInt32, MList, M_E, UInt32, MList, Bool);
1616
1617     scilab_fill_comparisonequal(MList, Int64, M_E, MList, Int64, Bool);
1618     scilab_fill_comparisonequal(Int64, MList, M_E, Int64, MList, Bool);
1619     scilab_fill_comparisonequal(MList, UInt64, M_E, MList, UInt64, Bool);
1620     scilab_fill_comparisonequal(UInt64, MList, M_E, UInt64, MList, Bool);
1621
1622     scilab_fill_comparisonequal(MList, ScalarInt8, M_E, MList, Int8, Bool);
1623     scilab_fill_comparisonequal(ScalarInt8, MList, M_E, Int8, MList, Bool);
1624     scilab_fill_comparisonequal(MList, ScalarUInt8, M_E, MList, UInt8, Bool);
1625     scilab_fill_comparisonequal(ScalarUInt8, MList, M_E, UInt8, MList, Bool);
1626
1627     scilab_fill_comparisonequal(MList, ScalarInt16, M_E, MList, Int16, Bool);
1628     scilab_fill_comparisonequal(ScalarInt16, MList, M_E, Int16, MList, Bool);
1629     scilab_fill_comparisonequal(MList, ScalarUInt16, M_E, MList, UInt16, Bool);
1630     scilab_fill_comparisonequal(ScalarUInt16, MList, M_E, UInt16, MList, Bool);
1631
1632     scilab_fill_comparisonequal(MList, ScalarInt32, M_E, MList, Int32, Bool);
1633     scilab_fill_comparisonequal(ScalarInt32, MList, M_E, Int32, MList, Bool);
1634     scilab_fill_comparisonequal(MList, ScalarUInt32, M_E, MList, UInt32, Bool);
1635     scilab_fill_comparisonequal(ScalarUInt32, MList, M_E, UInt32, MList, Bool);
1636
1637     scilab_fill_comparisonequal(MList, ScalarInt64, M_E, MList, Int64, Bool);
1638     scilab_fill_comparisonequal(ScalarInt64, MList, M_E, Int64, MList, Bool);
1639     scilab_fill_comparisonequal(MList, ScalarUInt64, M_E, MList, UInt64, Bool);
1640     scilab_fill_comparisonequal(ScalarUInt64, MList, M_E, UInt64, MList, Bool);
1641
1642     scilab_fill_comparisonequal(MList, String, M_E, MList, String, Bool);
1643     scilab_fill_comparisonequal(String, MList, M_E, String, MList, Bool);
1644     scilab_fill_comparisonequal(MList, ScalarString, M_E, MList, String, Bool);
1645     scilab_fill_comparisonequal(ScalarString, MList, M_E, String, MList, Bool);
1646
1647     scilab_fill_comparisonequal(MList, SparseComplex, M_E, MList, Sparse, Bool);
1648     scilab_fill_comparisonequal(SparseComplex, MList, M_E, Sparse, MList, Bool);
1649
1650     scilab_fill_comparisonequal(MList, Sparse, M_E, MList, Sparse, Bool);
1651     scilab_fill_comparisonequal(Sparse, MList, M_E, Sparse, MList, Bool);
1652
1653     scilab_fill_comparisonequal(MList, SparseBool, M_E, MList, SparseBool, Bool);
1654     scilab_fill_comparisonequal(SparseBool, MList, M_E, SparseBool, MList, Bool);
1655
1656     scilab_fill_comparisonequal(MList, Struct, M_E, MList, Struct, Bool);
1657     scilab_fill_comparisonequal(Struct, MList, M_E, Struct, MList, Bool);
1658
1659     //Cell
1660     scilab_fill_comparisonequal(Cell, Cell, M_M, Cell, Cell, Bool);
1661
1662     scilab_fill_comparisonequal(Cell, Empty, M_E, Cell, Double, Bool);
1663     scilab_fill_comparisonequal(Empty, Cell, E_M, Double, Cell, Bool);
1664
1665     scilab_fill_comparisonequal(Cell, Double, M_E, Cell, Double, Bool);
1666     scilab_fill_comparisonequal(Double, Cell, M_E, Double, Cell, Bool);
1667     scilab_fill_comparisonequal(Cell, DoubleComplex, M_E, Cell, Double, Bool);
1668     scilab_fill_comparisonequal(DoubleComplex, Cell, M_E, Double, Cell, Bool);
1669
1670     scilab_fill_comparisonequal(Cell, ScalarDouble, M_E, Cell, Double, Bool);
1671     scilab_fill_comparisonequal(ScalarDouble, Cell, M_E, Double, Cell, Bool);
1672     scilab_fill_comparisonequal(Cell, ScalarDoubleComplex, M_E, Cell, Double, Bool);
1673     scilab_fill_comparisonequal(ScalarDoubleComplex, Cell, M_E, Double, Cell, Bool);
1674
1675     scilab_fill_comparisonequal(Cell, Empty, M_E, Cell, Double, Bool);
1676     scilab_fill_comparisonequal(Empty, Cell, M_E, Double, Cell, Bool);
1677     scilab_fill_comparisonequal(Cell, Identity, M_E, Cell, Double, Bool);
1678     scilab_fill_comparisonequal(Identity, Cell, M_E, Double, Cell, Bool);
1679     scilab_fill_comparisonequal(Cell, IdentityComplex, M_E, Cell, Double, Bool);
1680     scilab_fill_comparisonequal(IdentityComplex, Cell, M_E, Double, Cell, Bool);
1681
1682     scilab_fill_comparisonequal(Cell, Int8, M_E, Cell, Int8, Bool);
1683     scilab_fill_comparisonequal(Int8, Cell, M_E, Int8, Cell, Bool);
1684     scilab_fill_comparisonequal(Cell, UInt8, M_E, Cell, UInt8, Bool);
1685     scilab_fill_comparisonequal(UInt8, Cell, M_E, UInt8, Cell, Bool);
1686
1687     scilab_fill_comparisonequal(Cell, Int16, M_E, Cell, Int16, Bool);
1688     scilab_fill_comparisonequal(Int16, Cell, M_E, Int16, Cell, Bool);
1689     scilab_fill_comparisonequal(Cell, UInt16, M_E, Cell, UInt16, Bool);
1690     scilab_fill_comparisonequal(UInt16, Cell, M_E, UInt16, Cell, Bool);
1691
1692     scilab_fill_comparisonequal(Cell, Int32, M_E, Cell, Int32, Bool);
1693     scilab_fill_comparisonequal(Int32, Cell, M_E, Int32, Cell, Bool);
1694     scilab_fill_comparisonequal(Cell, UInt32, M_E, Cell, UInt32, Bool);
1695     scilab_fill_comparisonequal(UInt32, Cell, M_E, UInt32, Cell, Bool);
1696
1697     scilab_fill_comparisonequal(Cell, Int64, M_E, Cell, Int64, Bool);
1698     scilab_fill_comparisonequal(Int64, Cell, M_E, Int64, Cell, Bool);
1699     scilab_fill_comparisonequal(Cell, UInt64, M_E, Cell, UInt64, Bool);
1700     scilab_fill_comparisonequal(UInt64, Cell, M_E, UInt64, Cell, Bool);
1701
1702     scilab_fill_comparisonequal(Cell, ScalarInt8, M_E, Cell, Int8, Bool);
1703     scilab_fill_comparisonequal(ScalarInt8, Cell, M_E, Int8, Cell, Bool);
1704     scilab_fill_comparisonequal(Cell, ScalarUInt8, M_E, Cell, UInt8, Bool);
1705     scilab_fill_comparisonequal(ScalarUInt8, Cell, M_E, UInt8, Cell, Bool);
1706
1707     scilab_fill_comparisonequal(Cell, ScalarInt16, M_E, Cell, Int16, Bool);
1708     scilab_fill_comparisonequal(ScalarInt16, Cell, M_E, Int16, Cell, Bool);
1709     scilab_fill_comparisonequal(Cell, ScalarUInt16, M_E, Cell, UInt16, Bool);
1710     scilab_fill_comparisonequal(ScalarUInt16, Cell, M_E, UInt16, Cell, Bool);
1711
1712     scilab_fill_comparisonequal(Cell, ScalarInt32, M_E, Cell, Int32, Bool);
1713     scilab_fill_comparisonequal(ScalarInt32, Cell, M_E, Int32, Cell, Bool);
1714     scilab_fill_comparisonequal(Cell, ScalarUInt32, M_E, Cell, UInt32, Bool);
1715     scilab_fill_comparisonequal(ScalarUInt32, Cell, M_E, UInt32, Cell, Bool);
1716
1717     scilab_fill_comparisonequal(Cell, ScalarInt64, M_E, Cell, Int64, Bool);
1718     scilab_fill_comparisonequal(ScalarInt64, Cell, M_E, Int64, Cell, Bool);
1719     scilab_fill_comparisonequal(Cell, ScalarUInt64, M_E, Cell, UInt64, Bool);
1720     scilab_fill_comparisonequal(ScalarUInt64, Cell, M_E, UInt64, Cell, Bool);
1721
1722     scilab_fill_comparisonequal(Cell, String, M_E, Cell, String, Bool);
1723     scilab_fill_comparisonequal(String, Cell, M_E, String, Cell, Bool);
1724     scilab_fill_comparisonequal(Cell, ScalarString, M_E, Cell, String, Bool);
1725     scilab_fill_comparisonequal(ScalarString, Cell, M_E, String, Cell, Bool);
1726
1727     scilab_fill_comparisonequal(Cell, SparseComplex, M_E, Cell, Sparse, Bool);
1728     scilab_fill_comparisonequal(SparseComplex, Cell, M_E, Sparse, Cell, Bool);
1729
1730     scilab_fill_comparisonequal(Cell, Sparse, M_E, Cell, Sparse, Bool);
1731     scilab_fill_comparisonequal(Sparse, Cell, M_E, Sparse, Cell, Bool);
1732
1733     scilab_fill_comparisonequal(Cell, SparseBool, M_E, Cell, SparseBool, Bool);
1734     scilab_fill_comparisonequal(SparseBool, Cell, M_E, SparseBool, Cell, Bool);
1735
1736     scilab_fill_comparisonequal(Cell, Struct, M_E, Cell, Struct, Bool);
1737     scilab_fill_comparisonequal(Struct, Cell, M_E, Struct, Cell, Bool);
1738
1739     scilab_fill_comparisonequal(Cell, List, M_E, Cell, List, Bool);
1740     scilab_fill_comparisonequal(List, Cell, M_E, List, Cell, Bool);
1741
1742     scilab_fill_comparisonequal(Cell, TList, M_E, Cell, TList, Bool);
1743     scilab_fill_comparisonequal(TList, Cell, M_E, TList, Cell, Bool);
1744
1745     scilab_fill_comparisonequal(Cell, MList, M_E, Cell, MList, Bool);
1746     scilab_fill_comparisonequal(MList, Cell, M_E, MList, Cell, Bool);
1747
1748     //Handle
1749     scilab_fill_comparisonequal(Handle, Handle, M_M, GraphicHandle, GraphicHandle, Bool);
1750
1751     scilab_fill_comparisonequal(Handle, Empty, M_E, GraphicHandle, Double, Bool);
1752     scilab_fill_comparisonequal(Empty, Handle, E_M, Double, GraphicHandle, Bool);
1753
1754     scilab_fill_comparisonequal(Handle, Double, M_E, GraphicHandle, Double, Bool);
1755     scilab_fill_comparisonequal(Double, Handle, M_E, Double, GraphicHandle, Bool);
1756     scilab_fill_comparisonequal(Handle, DoubleComplex, M_E, GraphicHandle, Double, Bool);
1757     scilab_fill_comparisonequal(DoubleComplex, Handle, M_E, Double, GraphicHandle, Bool);
1758
1759     scilab_fill_comparisonequal(Handle, ScalarDouble, M_E, GraphicHandle, Double, Bool);
1760     scilab_fill_comparisonequal(ScalarDouble, Handle, M_E, Double, GraphicHandle, Bool);
1761     scilab_fill_comparisonequal(Handle, ScalarDoubleComplex, M_E, GraphicHandle, Double, Bool);
1762     scilab_fill_comparisonequal(ScalarDoubleComplex, Handle, M_E, Double, GraphicHandle, Bool);
1763
1764     scilab_fill_comparisonequal(Handle, Empty, M_E, GraphicHandle, Double, Bool);
1765     scilab_fill_comparisonequal(Empty, Handle, M_E, Double, GraphicHandle, Bool);
1766     scilab_fill_comparisonequal(Handle, Identity, M_E, GraphicHandle, Double, Bool);
1767     scilab_fill_comparisonequal(Identity, Handle, M_E, Double, GraphicHandle, Bool);
1768     scilab_fill_comparisonequal(Handle, IdentityComplex, M_E, GraphicHandle, Double, Bool);
1769     scilab_fill_comparisonequal(IdentityComplex, Handle, M_E, Double, GraphicHandle, Bool);
1770
1771     scilab_fill_comparisonequal(Handle, Int8, M_E, GraphicHandle, Int8, Bool);
1772     scilab_fill_comparisonequal(Int8, Handle, M_E, Int8, GraphicHandle, Bool);
1773     scilab_fill_comparisonequal(Handle, UInt8, M_E, GraphicHandle, UInt8, Bool);
1774     scilab_fill_comparisonequal(UInt8, Handle, M_E, UInt8, GraphicHandle, Bool);
1775
1776     scilab_fill_comparisonequal(Handle, Int16, M_E, GraphicHandle, Int16, Bool);
1777     scilab_fill_comparisonequal(Int16, Handle, M_E, Int16, GraphicHandle, Bool);
1778     scilab_fill_comparisonequal(Handle, UInt16, M_E, GraphicHandle, UInt16, Bool);
1779     scilab_fill_comparisonequal(UInt16, Handle, M_E, UInt16, GraphicHandle, Bool);
1780
1781     scilab_fill_comparisonequal(Handle, Int32, M_E, GraphicHandle, Int32, Bool);
1782     scilab_fill_comparisonequal(Int32, Handle, M_E, Int32, GraphicHandle, Bool);
1783     scilab_fill_comparisonequal(Handle, UInt32, M_E, GraphicHandle, UInt32, Bool);
1784     scilab_fill_comparisonequal(UInt32, Handle, M_E, UInt32, GraphicHandle, Bool);
1785
1786     scilab_fill_comparisonequal(Handle, Int64, M_E, GraphicHandle, Int64, Bool);
1787     scilab_fill_comparisonequal(Int64, Handle, M_E, Int64, GraphicHandle, Bool);
1788     scilab_fill_comparisonequal(Handle, UInt64, M_E, GraphicHandle, UInt64, Bool);
1789     scilab_fill_comparisonequal(UInt64, Handle, M_E, UInt64, GraphicHandle, Bool);
1790
1791     scilab_fill_comparisonequal(Handle, ScalarInt8, M_E, GraphicHandle, Int8, Bool);
1792     scilab_fill_comparisonequal(ScalarInt8, Handle, M_E, Int8, GraphicHandle, Bool);
1793     scilab_fill_comparisonequal(Handle, ScalarUInt8, M_E, GraphicHandle, UInt8, Bool);
1794     scilab_fill_comparisonequal(ScalarUInt8, Handle, M_E, UInt8, GraphicHandle, Bool);
1795
1796     scilab_fill_comparisonequal(Handle, ScalarInt16, M_E, GraphicHandle, Int16, Bool);
1797     scilab_fill_comparisonequal(ScalarInt16, Handle, M_E, Int16, GraphicHandle, Bool);
1798     scilab_fill_comparisonequal(Handle, ScalarUInt16, M_E, GraphicHandle, UInt16, Bool);
1799     scilab_fill_comparisonequal(ScalarUInt16, Handle, M_E, UInt16, GraphicHandle, Bool);
1800
1801     scilab_fill_comparisonequal(Handle, ScalarInt32, M_E, GraphicHandle, Int32, Bool);
1802     scilab_fill_comparisonequal(ScalarInt32, Handle, M_E, Int32, GraphicHandle, Bool);
1803     scilab_fill_comparisonequal(Handle, ScalarUInt32, M_E, GraphicHandle, UInt32, Bool);
1804     scilab_fill_comparisonequal(ScalarUInt32, Handle, M_E, UInt32, GraphicHandle, Bool);
1805
1806     scilab_fill_comparisonequal(Handle, ScalarInt64, M_E, GraphicHandle, Int64, Bool);
1807     scilab_fill_comparisonequal(ScalarInt64, Handle, M_E, Int64, GraphicHandle, Bool);
1808     scilab_fill_comparisonequal(Handle, ScalarUInt64, M_E, GraphicHandle, UInt64, Bool);
1809     scilab_fill_comparisonequal(ScalarUInt64, Handle, M_E, UInt64, GraphicHandle, Bool);
1810
1811     scilab_fill_comparisonequal(Handle, String, M_E, GraphicHandle, String, Bool);
1812     scilab_fill_comparisonequal(String, Handle, M_E, String, GraphicHandle, Bool);
1813     scilab_fill_comparisonequal(Handle, ScalarString, M_E, GraphicHandle, String, Bool);
1814     scilab_fill_comparisonequal(ScalarString, Handle, M_E, String, GraphicHandle, Bool);
1815
1816     scilab_fill_comparisonequal(Handle, SparseComplex, M_E, GraphicHandle, Sparse, Bool);
1817     scilab_fill_comparisonequal(SparseComplex, Handle, M_E, Sparse, GraphicHandle, Bool);
1818
1819     scilab_fill_comparisonequal(Handle, Sparse, M_E, GraphicHandle, Sparse, Bool);
1820     scilab_fill_comparisonequal(Sparse, Handle, M_E, Sparse, GraphicHandle, Bool);
1821
1822     scilab_fill_comparisonequal(Handle, SparseBool, M_E, GraphicHandle, SparseBool, Bool);
1823     scilab_fill_comparisonequal(SparseBool, Handle, M_E, SparseBool, GraphicHandle, Bool);
1824
1825     scilab_fill_comparisonequal(Handle, Struct, M_E, GraphicHandle, Struct, Bool);
1826     scilab_fill_comparisonequal(Struct, Handle, M_E, Struct, GraphicHandle, Bool);
1827
1828     scilab_fill_comparisonequal(Handle, List, M_E, GraphicHandle, List, Bool);
1829     scilab_fill_comparisonequal(List, Handle, M_E, List, GraphicHandle, Bool);
1830
1831     scilab_fill_comparisonequal(Handle, TList, M_E, GraphicHandle, TList, Bool);
1832     scilab_fill_comparisonequal(TList, Handle, M_E, TList, GraphicHandle, Bool);
1833
1834     scilab_fill_comparisonequal(Handle, MList, M_E, GraphicHandle, MList, Bool);
1835     scilab_fill_comparisonequal(MList, Handle, M_E, MList, GraphicHandle, Bool);
1836
1837     scilab_fill_comparisonequal(Handle, Cell, M_E, GraphicHandle, Cell, Bool);
1838     scilab_fill_comparisonequal(Cell, Handle, M_E, Cell, GraphicHandle, Bool);
1839
1840     //Macro
1841     scilab_fill_comparisonequal(Macro, Macro, MCR_MCR, Macro, Macro, Bool);
1842     scilab_fill_comparisonequal(MacroFile, MacroFile, MCR_MCR, MacroFile, MacroFile, Bool);
1843     scilab_fill_comparisonequal(Macro, MacroFile, MCR_MCR, Macro, MacroFile, Bool);
1844     scilab_fill_comparisonequal(MacroFile, Macro, MCR_MCR, MacroFile, Macro, Bool);
1845
1846     scilab_fill_comparisonequal(Macro, Empty, M_E, Macro, Double, Bool);
1847     scilab_fill_comparisonequal(Empty, Macro, E_M, Double, Macro, Bool);
1848     scilab_fill_comparisonequal(MacroFile, Empty, M_E, MacroFile, Double, Bool);
1849     scilab_fill_comparisonequal(Empty, MacroFile, E_M, Double, MacroFile, Bool);
1850
1851     scilab_fill_comparisonequal(Macro, Double, M_E, Macro, Double, Bool);
1852     scilab_fill_comparisonequal(Double, Macro, M_E, Double, Macro, Bool);
1853     scilab_fill_comparisonequal(Macro, DoubleComplex, M_E, Macro, Double, Bool);
1854     scilab_fill_comparisonequal(DoubleComplex, Macro, M_E, Double, Macro, Bool);
1855
1856     scilab_fill_comparisonequal(Macro, ScalarDouble, M_E, Macro, Double, Bool);
1857     scilab_fill_comparisonequal(ScalarDouble, Macro, M_E, Double, Macro, Bool);
1858     scilab_fill_comparisonequal(Macro, ScalarDoubleComplex, M_E, Macro, Double, Bool);
1859     scilab_fill_comparisonequal(ScalarDoubleComplex, Macro, M_E, Double, Macro, Bool);
1860
1861     scilab_fill_comparisonequal(Macro, Empty, M_E, Macro, Double, Bool);
1862     scilab_fill_comparisonequal(Empty, Macro, M_E, Double, Macro, Bool);
1863     scilab_fill_comparisonequal(Macro, Identity, M_E, Macro, Double, Bool);
1864     scilab_fill_comparisonequal(Identity, Macro, M_E, Double, Macro, Bool);
1865     scilab_fill_comparisonequal(Macro, IdentityComplex, M_E, Macro, Double, Bool);
1866     scilab_fill_comparisonequal(IdentityComplex, Macro, M_E, Double, Macro, Bool);
1867
1868     scilab_fill_comparisonequal(Macro, Int8, M_E, Macro, Int8, Bool);
1869     scilab_fill_comparisonequal(Int8, Macro, M_E, Int8, Macro, Bool);
1870     scilab_fill_comparisonequal(Macro, UInt8, M_E, Macro, UInt8, Bool);
1871     scilab_fill_comparisonequal(UInt8, Macro, M_E, UInt8, Macro, Bool);
1872
1873     scilab_fill_comparisonequal(Macro, Int16, M_E, Macro, Int16, Bool);
1874     scilab_fill_comparisonequal(Int16, Macro, M_E, Int16, Macro, Bool);
1875     scilab_fill_comparisonequal(Macro, UInt16, M_E, Macro, UInt16, Bool);
1876     scilab_fill_comparisonequal(UInt16, Macro, M_E, UInt16, Macro, Bool);
1877
1878     scilab_fill_comparisonequal(Macro, Int32, M_E, Macro, Int32, Bool);
1879     scilab_fill_comparisonequal(Int32, Macro, M_E, Int32, Macro, Bool);
1880     scilab_fill_comparisonequal(Macro, UInt32, M_E, Macro, UInt32, Bool);
1881     scilab_fill_comparisonequal(UInt32, Macro, M_E, UInt32, Macro, Bool);
1882
1883     scilab_fill_comparisonequal(Macro, Int64, M_E, Macro, Int64, Bool);
1884     scilab_fill_comparisonequal(Int64, Macro, M_E, Int64, Macro, Bool);
1885     scilab_fill_comparisonequal(Macro, UInt64, M_E, Macro, UInt64, Bool);
1886     scilab_fill_comparisonequal(UInt64, Macro, M_E, UInt64, Macro, Bool);
1887
1888     scilab_fill_comparisonequal(Macro, ScalarInt8, M_E, Macro, Int8, Bool);
1889     scilab_fill_comparisonequal(ScalarInt8, Macro, M_E, Int8, Macro, Bool);
1890     scilab_fill_comparisonequal(Macro, ScalarUInt8, M_E, Macro, UInt8, Bool);
1891     scilab_fill_comparisonequal(ScalarUInt8, Macro, M_E, UInt8, Macro, Bool);
1892
1893     scilab_fill_comparisonequal(Macro, ScalarInt16, M_E, Macro, Int16, Bool);
1894     scilab_fill_comparisonequal(ScalarInt16, Macro, M_E, Int16, Macro, Bool);
1895     scilab_fill_comparisonequal(Macro, ScalarUInt16, M_E, Macro, UInt16, Bool);
1896     scilab_fill_comparisonequal(ScalarUInt16, Macro, M_E, UInt16, Macro, Bool);
1897
1898     scilab_fill_comparisonequal(Macro, ScalarInt32, M_E, Macro, Int32, Bool);
1899     scilab_fill_comparisonequal(ScalarInt32, Macro, M_E, Int32, Macro, Bool);
1900     scilab_fill_comparisonequal(Macro, ScalarUInt32, M_E, Macro, UInt32, Bool);
1901     scilab_fill_comparisonequal(ScalarUInt32, Macro, M_E, UInt32, Macro, Bool);
1902
1903     scilab_fill_comparisonequal(Macro, ScalarInt64, M_E, Macro, Int64, Bool);
1904     scilab_fill_comparisonequal(ScalarInt64, Macro, M_E, Int64, Macro, Bool);
1905     scilab_fill_comparisonequal(Macro, ScalarUInt64, M_E, Macro, UInt64, Bool);
1906     scilab_fill_comparisonequal(ScalarUInt64, Macro, M_E, UInt64, Macro, Bool);
1907
1908     scilab_fill_comparisonequal(Macro, String, M_E, Macro, String, Bool);
1909     scilab_fill_comparisonequal(String, Macro, M_E, String, Macro, Bool);
1910     scilab_fill_comparisonequal(Macro, ScalarString, M_E, Macro, String, Bool);
1911     scilab_fill_comparisonequal(ScalarString, Macro, M_E, String, Macro, Bool);
1912
1913     scilab_fill_comparisonequal(Macro, SparseComplex, M_E, Macro, Sparse, Bool);
1914     scilab_fill_comparisonequal(SparseComplex, Macro, M_E, Sparse, Macro, Bool);
1915
1916     scilab_fill_comparisonequal(Macro, Sparse, M_E, Macro, Sparse, Bool);
1917     scilab_fill_comparisonequal(Sparse, Macro, M_E, Sparse, Macro, Bool);
1918
1919     scilab_fill_comparisonequal(Macro, SparseBool, M_E, Macro, SparseBool, Bool);
1920     scilab_fill_comparisonequal(SparseBool, Macro, M_E, SparseBool, Macro, Bool);
1921
1922     scilab_fill_comparisonequal(Macro, Struct, M_E, Macro, Struct, Bool);
1923     scilab_fill_comparisonequal(Struct, Macro, M_E, Struct, Macro, Bool);
1924
1925     scilab_fill_comparisonequal(Macro, List, M_E, Macro, List, Bool);
1926     scilab_fill_comparisonequal(List, Macro, M_E, List, Macro, Bool);
1927
1928     scilab_fill_comparisonequal(Macro, TList, M_E, Macro, TList, Bool);
1929     scilab_fill_comparisonequal(TList, Macro, M_E, TList, Macro, Bool);
1930
1931     scilab_fill_comparisonequal(Macro, MList, M_E, Macro, MList, Bool);
1932     scilab_fill_comparisonequal(MList, Macro, M_E, MList, Macro, Bool);
1933
1934     scilab_fill_comparisonequal(Macro, Cell, M_E, Macro, Cell, Bool);
1935     scilab_fill_comparisonequal(Cell, Macro, M_E, Cell, Macro, Bool);
1936
1937     scilab_fill_comparisonequal(Macro, Handle, M_E, Macro, GraphicHandle, Bool);
1938     scilab_fill_comparisonequal(Handle, Macro, M_E, GraphicHandle, Macro, Bool);
1939
1940     scilab_fill_comparisonequal(MacroFile, Double, M_E, MacroFile, Double, Bool);
1941     scilab_fill_comparisonequal(Double, MacroFile, M_E, Double, MacroFile, Bool);
1942     scilab_fill_comparisonequal(MacroFile, DoubleComplex, M_E, MacroFile, Double, Bool);
1943     scilab_fill_comparisonequal(DoubleComplex, MacroFile, M_E, Double, MacroFile, Bool);
1944
1945     scilab_fill_comparisonequal(MacroFile, ScalarDouble, M_E, MacroFile, Double, Bool);
1946     scilab_fill_comparisonequal(ScalarDouble, MacroFile, M_E, Double, MacroFile, Bool);
1947     scilab_fill_comparisonequal(MacroFile, ScalarDoubleComplex, M_E, MacroFile, Double, Bool);
1948     scilab_fill_comparisonequal(ScalarDoubleComplex, MacroFile, M_E, Double, MacroFile, Bool);
1949
1950     scilab_fill_comparisonequal(MacroFile, Empty, M_E, MacroFile, Double, Bool);
1951     scilab_fill_comparisonequal(Empty, MacroFile, M_E, Double, MacroFile, Bool);
1952     scilab_fill_comparisonequal(MacroFile, Identity, M_E, MacroFile, Double, Bool);
1953     scilab_fill_comparisonequal(Identity, MacroFile, M_E, Double, MacroFile, Bool);
1954     scilab_fill_comparisonequal(MacroFile, IdentityComplex, M_E, MacroFile, Double, Bool);
1955     scilab_fill_comparisonequal(IdentityComplex, MacroFile, M_E, Double, MacroFile, Bool);
1956
1957     scilab_fill_comparisonequal(MacroFile, Int8, M_E, MacroFile, Int8, Bool);
1958     scilab_fill_comparisonequal(Int8, MacroFile, M_E, Int8, MacroFile, Bool);
1959     scilab_fill_comparisonequal(MacroFile, UInt8, M_E, MacroFile, UInt8, Bool);
1960     scilab_fill_comparisonequal(UInt8, MacroFile, M_E, UInt8, MacroFile, Bool);
1961
1962     scilab_fill_comparisonequal(MacroFile, Int16, M_E, MacroFile, Int16, Bool);
1963     scilab_fill_comparisonequal(Int16, MacroFile, M_E, Int16, MacroFile, Bool);
1964     scilab_fill_comparisonequal(MacroFile, UInt16, M_E, MacroFile, UInt16, Bool);
1965     scilab_fill_comparisonequal(UInt16, MacroFile, M_E, UInt16, MacroFile, Bool);
1966
1967     scilab_fill_comparisonequal(MacroFile, Int32, M_E, MacroFile, Int32, Bool);
1968     scilab_fill_comparisonequal(Int32, MacroFile, M_E, Int32, MacroFile, Bool);
1969     scilab_fill_comparisonequal(MacroFile, UInt32, M_E, MacroFile, UInt32, Bool);
1970     scilab_fill_comparisonequal(UInt32, MacroFile, M_E, UInt32, MacroFile, Bool);
1971
1972     scilab_fill_comparisonequal(MacroFile, Int64, M_E, MacroFile, Int64, Bool);
1973     scilab_fill_comparisonequal(Int64, MacroFile, M_E, Int64, MacroFile, Bool);
1974     scilab_fill_comparisonequal(MacroFile, UInt64, M_E, MacroFile, UInt64, Bool);
1975     scilab_fill_comparisonequal(UInt64, MacroFile, M_E, UInt64, MacroFile, Bool);
1976
1977     scilab_fill_comparisonequal(MacroFile, ScalarInt8, M_E, MacroFile, Int8, Bool);
1978     scilab_fill_comparisonequal(ScalarInt8, MacroFile, M_E, Int8, MacroFile, Bool);
1979     scilab_fill_comparisonequal(MacroFile, ScalarUInt8, M_E, MacroFile, UInt8, Bool);
1980     scilab_fill_comparisonequal(ScalarUInt8, MacroFile, M_E, UInt8, MacroFile, Bool);
1981
1982     scilab_fill_comparisonequal(MacroFile, ScalarInt16, M_E, MacroFile, Int16, Bool);
1983     scilab_fill_comparisonequal(ScalarInt16, MacroFile, M_E, Int16, MacroFile, Bool);
1984     scilab_fill_comparisonequal(MacroFile, ScalarUInt16, M_E, MacroFile, UInt16, Bool);
1985     scilab_fill_comparisonequal(ScalarUInt16, MacroFile, M_E, UInt16, MacroFile, Bool);
1986
1987     scilab_fill_comparisonequal(MacroFile, ScalarInt32, M_E, MacroFile, Int32, Bool);
1988     scilab_fill_comparisonequal(ScalarInt32, MacroFile, M_E, Int32, MacroFile, Bool);
1989     scilab_fill_comparisonequal(MacroFile, ScalarUInt32, M_E, MacroFile, UInt32, Bool);
1990     scilab_fill_comparisonequal(ScalarUInt32, MacroFile, M_E, UInt32, MacroFile, Bool);
1991
1992     scilab_fill_comparisonequal(MacroFile, ScalarInt64, M_E, MacroFile, Int64, Bool);
1993     scilab_fill_comparisonequal(ScalarInt64, MacroFile, M_E, Int64, MacroFile, Bool);
1994     scilab_fill_comparisonequal(MacroFile, ScalarUInt64, M_E, MacroFile, UInt64, Bool);
1995     scilab_fill_comparisonequal(ScalarUInt64, MacroFile, M_E, UInt64, MacroFile, Bool);
1996
1997     scilab_fill_comparisonequal(MacroFile, String, M_E, MacroFile, String, Bool);
1998     scilab_fill_comparisonequal(String, MacroFile, M_E, String, MacroFile, Bool);
1999     scilab_fill_comparisonequal(MacroFile, ScalarString, M_E, MacroFile, String, Bool);
2000     scilab_fill_comparisonequal(ScalarString, MacroFile, M_E, String, MacroFile, Bool);
2001
2002     scilab_fill_comparisonequal(MacroFile, SparseComplex, M_E, MacroFile, Sparse, Bool);
2003     scilab_fill_comparisonequal(SparseComplex, MacroFile, M_E, Sparse, MacroFile, Bool);
2004
2005     scilab_fill_comparisonequal(MacroFile, Sparse, M_E, MacroFile, Sparse, Bool);
2006     scilab_fill_comparisonequal(Sparse, MacroFile, M_E, Sparse, MacroFile, Bool);
2007
2008     scilab_fill_comparisonequal(MacroFile, SparseBool, M_E, MacroFile, SparseBool, Bool);
2009     scilab_fill_comparisonequal(SparseBool, MacroFile, M_E, SparseBool, MacroFile, Bool);
2010
2011     scilab_fill_comparisonequal(MacroFile, Struct, M_E, MacroFile, Struct, Bool);
2012     scilab_fill_comparisonequal(Struct, MacroFile, M_E, Struct, MacroFile, Bool);
2013
2014     scilab_fill_comparisonequal(MacroFile, List, M_E, MacroFile, List, Bool);
2015     scilab_fill_comparisonequal(List, MacroFile, M_E, List, MacroFile, Bool);
2016
2017     scilab_fill_comparisonequal(MacroFile, TList, M_E, MacroFile, TList, Bool);
2018     scilab_fill_comparisonequal(TList, MacroFile, M_E, TList, MacroFile, Bool);
2019
2020     scilab_fill_comparisonequal(MacroFile, MList, M_E, MacroFile, MList, Bool);
2021     scilab_fill_comparisonequal(MList, MacroFile, M_E, MList, MacroFile, Bool);
2022
2023     scilab_fill_comparisonequal(MacroFile, Cell, M_E, MacroFile, Cell, Bool);
2024     scilab_fill_comparisonequal(Cell, MacroFile, M_E, Cell, MacroFile, Bool);
2025
2026     scilab_fill_comparisonequal(MacroFile, Handle, M_E, MacroFile, GraphicHandle, Bool);
2027     scilab_fill_comparisonequal(Handle, MacroFile, M_E, GraphicHandle, MacroFile, Bool);
2028
2029     //ScalarHandle
2030     scilab_fill_comparisonequal(ScalarHandle, ScalarHandle, M_M, GraphicHandle, GraphicHandle, Bool);
2031     scilab_fill_comparisonequal(Handle, ScalarHandle, M_M, GraphicHandle, GraphicHandle, Bool);
2032     scilab_fill_comparisonequal(ScalarHandle, Handle, M_M, GraphicHandle, GraphicHandle, Bool);
2033
2034     scilab_fill_comparisonequal(ScalarHandle, Empty, M_E, GraphicHandle, Double, Bool);
2035     scilab_fill_comparisonequal(Empty, ScalarHandle, E_M, Double, GraphicHandle, Bool);
2036
2037     scilab_fill_comparisonequal(ScalarHandle, Double, M_E, GraphicHandle, Double, Bool);
2038     scilab_fill_comparisonequal(Double, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2039     scilab_fill_comparisonequal(ScalarHandle, DoubleComplex, M_E, GraphicHandle, Double, Bool);
2040     scilab_fill_comparisonequal(DoubleComplex, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2041
2042     scilab_fill_comparisonequal(ScalarHandle, ScalarDouble, M_E, GraphicHandle, Double, Bool);
2043     scilab_fill_comparisonequal(ScalarDouble, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2044     scilab_fill_comparisonequal(ScalarHandle, ScalarDoubleComplex, M_E, GraphicHandle, Double, Bool);
2045     scilab_fill_comparisonequal(ScalarDoubleComplex, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2046
2047     scilab_fill_comparisonequal(ScalarHandle, Empty, M_E, GraphicHandle, Double, Bool);
2048     scilab_fill_comparisonequal(Empty, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2049     scilab_fill_comparisonequal(ScalarHandle, Identity, M_E, GraphicHandle, Double, Bool);
2050     scilab_fill_comparisonequal(Identity, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2051     scilab_fill_comparisonequal(ScalarHandle, IdentityComplex, M_E, GraphicHandle, Double, Bool);
2052     scilab_fill_comparisonequal(IdentityComplex, ScalarHandle, M_E, Double, GraphicHandle, Bool);
2053
2054     scilab_fill_comparisonequal(ScalarHandle, Int8, M_E, GraphicHandle, Int8, Bool);
2055     scilab_fill_comparisonequal(Int8, ScalarHandle, M_E, Int8, GraphicHandle, Bool);
2056     scilab_fill_comparisonequal(ScalarHandle, UInt8, M_E, GraphicHandle, UInt8, Bool);
2057     scilab_fill_comparisonequal(UInt8, ScalarHandle, M_E, UInt8, GraphicHandle, Bool);
2058
2059     scilab_fill_comparisonequal(ScalarHandle, Int16, M_E, GraphicHandle, Int16, Bool);
2060     scilab_fill_comparisonequal(Int16, ScalarHandle, M_E, Int16, GraphicHandle, Bool);
2061     scilab_fill_comparisonequal(ScalarHandle, UInt16, M_E, GraphicHandle, UInt16, Bool);
2062     scilab_fill_comparisonequal(UInt16, ScalarHandle, M_E, UInt16, GraphicHandle, Bool);
2063
2064     scilab_fill_comparisonequal(ScalarHandle, Int32, M_E, GraphicHandle, Int32, Bool);
2065     scilab_fill_comparisonequal(Int32, ScalarHandle, M_E, Int32, GraphicHandle, Bool);
2066     scilab_fill_comparisonequal(ScalarHandle, UInt32, M_E, GraphicHandle, UInt32, Bool);
2067     scilab_fill_comparisonequal(UInt32, ScalarHandle, M_E, UInt32, GraphicHandle, Bool);
2068
2069     scilab_fill_comparisonequal(ScalarHandle, Int64, M_E, GraphicHandle, Int64, Bool);
2070     scilab_fill_comparisonequal(Int64, ScalarHandle, M_E, Int64, GraphicHandle, Bool);
2071     scilab_fill_comparisonequal(ScalarHandle, UInt64, M_E, GraphicHandle, UInt64, Bool);
2072     scilab_fill_comparisonequal(UInt64, ScalarHandle, M_E, UInt64, GraphicHandle, Bool);
2073
2074     scilab_fill_comparisonequal(ScalarHandle, ScalarInt8, M_E, GraphicHandle, Int8, Bool);
2075     scilab_fill_comparisonequal(ScalarInt8, ScalarHandle, M_E, Int8, GraphicHandle, Bool);
2076     scilab_fill_comparisonequal(ScalarHandle, ScalarUInt8, M_E, GraphicHandle, UInt8, Bool);
2077     scilab_fill_comparisonequal(ScalarUInt8, ScalarHandle, M_E, UInt8, GraphicHandle, Bool);
2078
2079     scilab_fill_comparisonequal(ScalarHandle, ScalarInt16, M_E, GraphicHandle, Int16, Bool);
2080     scilab_fill_comparisonequal(ScalarInt16, ScalarHandle, M_E, Int16, GraphicHandle, Bool);
2081     scilab_fill_comparisonequal(ScalarHandle, ScalarUInt16, M_E, GraphicHandle, UInt16, Bool);
2082     scilab_fill_comparisonequal(ScalarUInt16, ScalarHandle, M_E, UInt16, GraphicHandle, Bool);
2083
2084     scilab_fill_comparisonequal(ScalarHandle, ScalarInt32, M_E, GraphicHandle, Int32, Bool);
2085     scilab_fill_comparisonequal(ScalarInt32, ScalarHandle, M_E, Int32, GraphicHandle, Bool);
2086     scilab_fill_comparisonequal(ScalarHandle, ScalarUInt32, M_E, GraphicHandle, UInt32, Bool);
2087     scilab_fill_comparisonequal(ScalarUInt32, ScalarHandle, M_E, UInt32, GraphicHandle, Bool);
2088
2089     scilab_fill_comparisonequal(ScalarHandle, ScalarInt64, M_E, GraphicHandle, Int64, Bool);
2090     scilab_fill_comparisonequal(ScalarInt64, ScalarHandle, M_E, Int64, GraphicHandle, Bool);
2091     scilab_fill_comparisonequal(ScalarHandle, ScalarUInt64, M_E, GraphicHandle, UInt64, Bool);
2092     scilab_fill_comparisonequal(ScalarUInt64, ScalarHandle, M_E, UInt64, GraphicHandle, Bool);
2093
2094     scilab_fill_comparisonequal(ScalarHandle, String, M_E, GraphicHandle, String, Bool);
2095     scilab_fill_comparisonequal(String, ScalarHandle, M_E, String, GraphicHandle, Bool);
2096     scilab_fill_comparisonequal(ScalarHandle, ScalarString, M_E, GraphicHandle, String, Bool);
2097     scilab_fill_comparisonequal(ScalarString, ScalarHandle, M_E, String, GraphicHandle, Bool);
2098
2099     scilab_fill_comparisonequal(ScalarHandle, SparseComplex, M_E, GraphicHandle, Sparse, Bool);
2100     scilab_fill_comparisonequal(SparseComplex, ScalarHandle, M_E, Sparse, GraphicHandle, Bool);
2101
2102     scilab_fill_comparisonequal(ScalarHandle, Sparse, M_E, GraphicHandle, Sparse, Bool);
2103     scilab_fill_comparisonequal(Sparse, ScalarHandle, M_E, Sparse, GraphicHandle, Bool);
2104
2105     scilab_fill_comparisonequal(ScalarHandle, SparseBool, M_E, GraphicHandle, SparseBool, Bool);
2106     scilab_fill_comparisonequal(SparseBool, ScalarHandle, M_E, SparseBool, GraphicHandle, Bool);
2107
2108     scilab_fill_comparisonequal(ScalarHandle, Struct, M_E, GraphicHandle, Struct, Bool);
2109     scilab_fill_comparisonequal(Struct, ScalarHandle, M_E, Struct, GraphicHandle, Bool);
2110
2111     scilab_fill_comparisonequal(ScalarHandle, List, M_E, GraphicHandle, List, Bool);
2112     scilab_fill_comparisonequal(List, ScalarHandle, M_E, List, GraphicHandle, Bool);
2113
2114     scilab_fill_comparisonequal(ScalarHandle, TList, M_E, GraphicHandle, TList, Bool);
2115     scilab_fill_comparisonequal(TList, ScalarHandle, M_E, TList, GraphicHandle, Bool);
2116
2117     scilab_fill_comparisonequal(ScalarHandle, MList, M_E, GraphicHandle, MList, Bool);
2118     scilab_fill_comparisonequal(MList, ScalarHandle, M_E, MList, GraphicHandle, Bool);
2119
2120     scilab_fill_comparisonequal(ScalarHandle, Cell, M_E, GraphicHandle, Cell, Bool);
2121     scilab_fill_comparisonequal(Cell, ScalarHandle, M_E, Cell, GraphicHandle, Bool);
2122
2123     scilab_fill_comparisonequal(ScalarHandle, Macro, M_E, GraphicHandle, Macro, Bool);
2124     scilab_fill_comparisonequal(Macro, ScalarHandle, M_E, Macro, GraphicHandle, Bool);
2125     scilab_fill_comparisonequal(ScalarHandle, MacroFile, M_E, GraphicHandle, MacroFile, Bool);
2126     scilab_fill_comparisonequal(MacroFile, ScalarHandle, M_E, MacroFile, GraphicHandle, Bool);
2127
2128     //UserType
2129     scilab_fill_comparisonequal(UserType, UserType, UT_UT, UserType, UserType, Bool);
2130
2131 #undef scilab_fill_comparisonequal
2132
2133 }
2134
2135 InternalType *GenericComparisonEqual(InternalType *_pLeftOperand, InternalType *_pRightOperand)
2136 {
2137     InternalType *pResult = NULL;
2138
2139     compequal_function compequal = pComparisonEqualfunction[_pLeftOperand->getId()][_pRightOperand->getId()];
2140     if (compequal)
2141     {
2142         pResult = compequal(_pLeftOperand, _pRightOperand);
2143         if (pResult)
2144         {
2145             return pResult;
2146         }
2147     }
2148
2149     /*
2150     ** Default case : Return NULL will Call Overloading.
2151     */
2152     return NULL;
2153 }
2154
2155
2156 //Matrix == x
2157 template<class T, class U, class O>
2158 InternalType* compequal_M_M(T *_pL, U *_pR)
2159 {
2160     //check dims
2161     int iDimsL = _pL->getDims();
2162     int iDimsR = _pR->getDims();
2163
2164     if (iDimsL != iDimsR)
2165     {
2166         return new Bool(false);
2167     }
2168
2169     int* piDimsL = _pL->getDimsArray();
2170     int* piDimsR = _pR->getDimsArray();
2171
2172     for (int i = 0; i < iDimsL; ++i)
2173     {
2174         if (piDimsL[i] != piDimsR[i])
2175         {
2176             return new Bool(false);
2177         }
2178     }
2179
2180     O* pOut = new O(iDimsL, piDimsL);
2181     int iSize = pOut->getSize();
2182
2183     compequal(_pL->get(), iSize, _pR->get(), pOut->get());
2184     return pOut;
2185 }
2186
2187 template<class T, class U, class O>
2188 InternalType* compequal_M_MC(T *_pL, U *_pR)
2189 {
2190     //check dims
2191     int iDimsL = _pL->getDims();
2192     int iDimsR = _pR->getDims();
2193
2194     if (iDimsL != iDimsR)
2195     {
2196         return new Bool(false);
2197     }
2198
2199     int* piDimsL = _pL->getDimsArray();
2200     int* piDimsR = _pR->getDimsArray();
2201
2202     for (int i = 0; i < iDimsL; ++i)
2203     {
2204         if (piDimsL[i] != piDimsR[i])
2205         {
2206             return new Bool(false);
2207         }
2208     }
2209
2210     O* pOut = new O(iDimsL, piDimsL);
2211     int iSize = pOut->getSize();
2212
2213     compequal(_pL->get(), iSize, _pR->get(), _pR->getImg(), pOut->get());
2214     return pOut;
2215 }
2216
2217 template<class T, class U, class O>
2218 InternalType* compequal_M_S(T *_pL, U *_pR)
2219 {
2220     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2221     compequal(_pL->get(), (size_t)pOut->getSize(), _pR->get(0), pOut->get());
2222     return pOut;
2223 }
2224
2225 template<class T, class U, class O>
2226 InternalType* compequal_M_SC(T *_pL, U *_pR)
2227 {
2228     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2229     compequal(_pL->get(), pOut->getSize(), _pR->get(0), _pR->getImg(0), pOut->get());
2230     return pOut;
2231 }
2232
2233 template<class T, class U, class O>
2234 InternalType* compequal_M_I(T *_pL, U *_pR)
2235 {
2236     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2237     Double* pIdentity = Double::Identity(_pL->getDims(), _pL->getDimsArray(), _pR->get(0));
2238     compequal(_pL->get(), (size_t)pOut->getSize(), pIdentity->get(), pOut->get());
2239     delete pIdentity;
2240     return pOut;
2241 }
2242
2243 template<class T, class U, class O>
2244 InternalType* compequal_M_IC(T *_pL, U *_pR)
2245 {
2246     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2247     Double* pIdentity = Double::Identity(_pL->getDims(), _pL->getDimsArray(), _pR->get(0), _pR->getImg(0));
2248     compequal(_pL->get(), (size_t)pOut->getSize(), pIdentity->get(), pIdentity->getImg(), pOut->get());
2249     delete pIdentity;
2250     return pOut;
2251 }
2252
2253 template<class T, class U, class O>
2254 InternalType* compequal_M_E(T *_pL, U *_pR)
2255 {
2256     // Try to find an overload and call it if exists
2257     types::typed_list tmp;
2258     tmp.push_back(_pL);
2259     tmp.push_back(_pR);
2260     std::wstring overloadName(Overload::buildOverloadName(Overload::getNameFromOper(ast::OpExp::eq), tmp, 1, true));
2261     types::InternalType* pIT = symbol::Context::getInstance()->get(symbol::Symbol(overloadName));
2262     if (pIT)
2263     {
2264         return NULL;
2265     }
2266     else
2267     {
2268         return new Bool(false);
2269     }
2270 }
2271
2272 template<class T, class U, class O>
2273 InternalType* compequal_E_M(T *_pL, U *_pR)
2274 {
2275     return compequal_M_E<U, T, O>(_pR, _pL);
2276 }
2277
2278 template<class T, class U, class O>
2279 InternalType* compequal_E_E(T *_pL, U *_pR)
2280 {
2281     return new Bool(true);
2282 }
2283
2284 //B == x
2285 template<class T, class U, class O>
2286 InternalType* compequal_B_M(T *_pL, U *_pR)
2287 {
2288     //check dims
2289     int iDimsL = _pL->getDims();
2290     int iDimsR = _pR->getDims();
2291     int* piDimsR = _pR->getDimsArray();
2292
2293     if (_pL->isScalar() == false)
2294     {
2295         if (iDimsL != iDimsR)
2296         {
2297             return new Bool(false);
2298         }
2299
2300         int* piDimsL = _pL->getDimsArray();
2301
2302         for (int i = 0; i < iDimsL; ++i)
2303         {
2304             if (piDimsL[i] != piDimsR[i])
2305             {
2306                 return new Bool(false);
2307             }
2308         }
2309     }
2310
2311     O* pOut = new O(iDimsR, piDimsR);
2312
2313     pOut->setFalse();
2314
2315     return pOut;
2316 }
2317
2318 template<class T, class U, class O>
2319 InternalType* compequal_M_B(T *_pL, U *_pR)
2320 {
2321     //check dims
2322     int iDimsL = _pL->getDims();
2323     int iDimsR = _pR->getDims();
2324     int* piDimsL = _pL->getDimsArray();
2325
2326     if (_pR->isScalar() == false)
2327     {
2328         if (iDimsL != iDimsR)
2329         {
2330             return new Bool(false);
2331         }
2332
2333         int* piDimsR = _pR->getDimsArray();
2334
2335         for (int i = 0; i < iDimsL; ++i)
2336         {
2337             if (piDimsL[i] != piDimsR[i])
2338             {
2339                 return new Bool(false);
2340             }
2341         }
2342     }
2343
2344     O* pOut = new O(iDimsL, piDimsL);
2345
2346     pOut->setFalse();
2347
2348     return pOut;
2349 }
2350
2351 //B == x
2352 template<class T, class U, class O>
2353 InternalType* compequal_B_S(T *_pL, U *_pR)
2354 {
2355
2356     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2357
2358     pOut->setFalse();
2359
2360     return pOut;
2361 }
2362
2363 template<class T, class U, class O>
2364 InternalType* compequal_S_B(T *_pL, U *_pR)
2365 {
2366
2367     O* pOut = new O(_pR->getDims(), _pR->getDimsArray());
2368
2369     pOut->setFalse();
2370
2371     return pOut;
2372 }
2373
2374
2375
2376 //Matrix complex == x
2377 template<class T, class U, class O>
2378 InternalType* compequal_MC_M(T *_pL, U *_pR)
2379 {
2380     //check dims
2381     int iDimsL = _pL->getDims();
2382     int iDimsR = _pR->getDims();
2383
2384     if (iDimsL != iDimsR)
2385     {
2386         return new Bool(false);
2387     }
2388
2389     int* piDimsL = _pL->getDimsArray();
2390     int* piDimsR = _pR->getDimsArray();
2391
2392     for (int i = 0; i < iDimsL; ++i)
2393     {
2394         if (piDimsL[i] != piDimsR[i])
2395         {
2396             return new Bool(false);
2397         }
2398     }
2399
2400     O* pOut = new O(iDimsL, piDimsL);
2401     int iSize = pOut->getSize();
2402
2403     compequal(_pL->get(), _pL->getImg(), iSize, _pR->get(), pOut->get());
2404     return pOut;
2405 }
2406
2407 template<class T, class U, class O>
2408 InternalType* compequal_MC_MC(T *_pL, U *_pR)
2409 {
2410     //check dims
2411     int iDimsL = _pL->getDims();
2412     int iDimsR = _pR->getDims();
2413
2414     if (iDimsL != iDimsR)
2415     {
2416         return new Bool(false);
2417     }
2418
2419     int* piDimsL = _pL->getDimsArray();
2420     int* piDimsR = _pR->getDimsArray();
2421
2422     for (int i = 0; i < iDimsL; ++i)
2423     {
2424         if (piDimsL[i] != piDimsR[i])
2425         {
2426             return new Bool(false);
2427         }
2428     }
2429
2430     O* pOut = new O(iDimsL, piDimsL);
2431     int iSize = pOut->getSize();
2432
2433     compequal(_pL->get(), _pL->getImg(), iSize, _pR->get(), _pR->getImg(), pOut->get());
2434     return pOut;
2435 }
2436
2437 template<class T, class U, class O>
2438 InternalType* compequal_MC_S(T *_pL, U *_pR)
2439 {
2440     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2441     compequal(_pL->get(), _pL->getImg(), pOut->getSize(), _pR->get(0), pOut->get());
2442     return pOut;
2443 }
2444
2445 template<class T, class U, class O>
2446 InternalType* compequal_MC_SC(T *_pL, U *_pR)
2447 {
2448     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2449     compequal(_pL->get(), _pL->getImg(), pOut->getSize(), _pR->get(0), _pR->getImg(0), pOut->get());
2450     return pOut;
2451 }
2452
2453 template<class T, class U, class O>
2454 InternalType* compequal_MC_I(T *_pL, U *_pR)
2455 {
2456     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2457     Double* pIdentity = Double::Identity(_pL->getDims(), _pL->getDimsArray(), _pR->get(0));
2458     compequal(_pL->get(), _pL->getImg(), (size_t)pOut->getSize(), pIdentity->get(), pOut->get());
2459     delete pIdentity;
2460     return pOut;
2461 }
2462
2463 template<class T, class U, class O>
2464 InternalType* compequal_MC_IC(T *_pL, U *_pR)
2465 {
2466     O* pOut = new O(_pL->getDims(), _pL->getDimsArray());
2467     Double* pIdentity = Double::Identity(_pL->getDims(), _pL->getDimsArray(), _pR->get(0), _pR->getImg(0));
2468     compequal(_pL->get(), _pL->getImg(), (size_t)pOut->getSize(), pIdentity->get(), pIdentity->getImg(), pOut->get());
2469     delete pIdentity;
2470     return pOut;
2471 }
2472
2473 //Scalar == x
2474 template<class T, class U, class O>
2475 InternalType* compequal_S_M(T *_pL, U *_pR)
2476 {
2477     O* pOut = new O(_pR->getDims(), _pR->getDimsArray());
2478     compequal(_pL->get(0), (size_t)pOut->getSize(), _pR->get(), pOut->get());
2479     return pOut;
2480 }
2481
2482 template<class T, class U, class O>
2483 InternalType* compequal_S_MC(T *_pL, U *_pR)
2484 {
2485     O* pOut = new O(_pR->getDims(), _pR->getDimsArray());
2486     compequal(_pL->get(0), pOut->getSize(), _pR->get(), _pR->getImg(), pOut->get());
2487     return pOut;
2488 }
2489
2490 template<class T, class U, class O>
2491 InternalType* compequal_S_S(T *_pL, U *_pR)
2492 {
2493     O* pOut = new O(1, 1);
2494     compequal(_pL->get(0), _pR->get(0), pOut->get());
2495     return pOut;
2496 }
2497
2498 template<class T, class U, class O>
2499 InternalType* compequal_S_SC(T *_pL, U *_pR)
2500 {
2501     O* pOut = new O(1, 1);
2502     compequal(_pL->get(), 1, _pR->get(0), _pR->getImg(0), pOut->get());
2503     return pOut;
2504 }
2505
2506 template<class T, class U, class O>
2507 InternalType* compequal_S_I(T *_pL, U *_pR)
2508 {
2509     O* pOut = new O(1, 1);
2510     compequal(_pL->get(0), _pR->get(0), pOut->get());
2511     return pOut;
2512 }
2513
2514 template<class T, class U, class O>
2515 InternalType* compequal_S_IC(T *_pL, U *_pR)
2516 {
2517
2518     O* pOut = new  Bool(false);
2519     compequal(_pL->get(0), 1, _pR->get(), _pR->getImg(), pOut->get());
2520     return pOut;
2521 }
2522 //Scalar complex == x
2523 template<class T, class U, class O>
2524 InternalType* compequal_SC_M(T *_pL, U *_pR)
2525 {
2526     O* pOut = new O(_pR->getDims(), _pR->getDimsArray());
2527     compequal(_pL->get(0), _pL->getImg(0), pOut->getSize(), _pR->get(), pOut->get());
2528     return pOut;
2529 }
2530
2531 template<class T, class U, class O>
2532 InternalType* compequal_SC_MC(T *_pL, U *_pR)
2533 {
2534     O* pOut = new O(_pR->getDims(), _pR->getDimsArray());
2535     compequal(_pL->get(0), _pL->getImg(0), pOut->getSize(), _pR->get(), _pR->getImg(), pOut->get());
2536     return pOut;
2537 }
2538
2539 template<class T, class U, class O>
2540 InternalType* compequal_SC_S(T *_pL, U *_pR)
2541 {
2542     O* pOut = new O(false);
2543     if (_pL->getImg(0) == 0)
2544     {
2545         compequal(_pL->get(0), _pR->get(0), pOut->get());
2546     }
2547     return pOut;
2548 }
2549
2550 template<class T, class U, class O>
2551 InternalType* compequal_SC_SC(T *_pL, U *_pR)
2552 {
2553     O* pOut = new O(true);
2554     compequal(_pL->get(0), _pL->getImg(0), _pR->get(0), _pR->getImg(0), pOut->get());
2555     return pOut;
2556 }
2557
2558 template<class T, class U, class O>
2559 InternalType* compequal_SC_I(T *_pL, U *_pR)
2560 {
2561     O* pOut = new Bool(false);
2562     if (_pL->getImg(0) == 0)
2563     {
2564         compequal(_pL->get(0), _pR->get(0), pOut->get());
2565     }
2566     return pOut;
2567 }
2568
2569 template<class T, class U, class O>
2570 InternalType* compequal_SC_IC(T *_pL, U *_pR)
2571 {
2572     O* pOut = new Bool(false);
2573     compequal(_pL->get(0), _pL->getImg(0), _pR->get(0), _pR->getImg(0), pOut->get());
2574     return pOut;
2575 }
2576
2577 //Identity == x
2578 template<class T, class U, class O>
2579 InternalType* compequal_I_M(T *_pL, U *_pR)
2580 {
2581     O* pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
2582     Double* pIdentity = Double::Identity(_pR->getDims(), _pR->getDimsArray(), _pL->get(0));
2583     compequal(pIdentity->get(), pOut->getSize(), _pR->get(), pOut->get());
2584     delete pIdentity;
2585     return pOut;
2586 }
2587
2588 template<class T, class U, class O>
2589 InternalType* compequal_I_MC(T *_pL, U *_pR)
2590 {
2591     O* pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
2592     Double* pIdentity = Double::Identity(_pR->getDims(), _pR->getDimsArray(), _pL->get(0));
2593     compequal(pIdentity->get(), pOut->getSize(), _pR->get(), _pR->getImg(), pOut->get());
2594     delete pIdentity;
2595     return pOut;
2596 }
2597
2598 template<class T, class U, class O>
2599 InternalType* compequal_I_S(T *_pL, U *_pR)
2600 {
2601     O* pOut = new Bool(1, 1);
2602     compequal(_pL->get(0), _pR->get(0), pOut->get());
2603     return pOut;
2604 }
2605
2606 template<class T, class U, class O>
2607 InternalType* compequal_I_SC(T *_pL, U *_pR)
2608 {
2609     return compequal_SC_I<U, T, O>(_pR, _pL);
2610 }
2611
2612 template<class T, class U, class O>
2613 InternalType* compequal_I_I(T *_pL, U *_pR)
2614 {
2615     O* pOut = new Bool(1, 1);
2616     compequal(_pL->get(0), _pR->get(0), pOut->get());
2617     return pOut;
2618 }
2619
2620 template<class T, class U, class O>
2621 InternalType* compequal_I_IC(T *_pL, U *_pR)
2622 {
2623     O* pOut = new Bool(false);
2624     if (_pR->getImg(0) == 0)
2625     {
2626         compequal(_pL->get(0), _pR->get(0), pOut->get());
2627     }
2628     return pOut;
2629 }
2630
2631 //Identity complex == x
2632 template<class T, class U, class O>
2633 InternalType* compequal_IC_M(T *_pL, U *_pR)
2634 {
2635     O* pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
2636     Double* pIdentity = Double::Identity(_pR->getDims(), _pR->getDimsArray(), _pL->get(0), _pL->getImg(0));
2637     compequal(pIdentity->get(), pIdentity->getImg(), pOut->getSize(), _pR->get(), pOut->get());
2638     delete pIdentity;
2639     return pOut;
2640 }
2641
2642 template<class T, class U, class O>
2643 InternalType* compequal_IC_MC(T *_pL, U *_pR)
2644 {
2645     O* pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
2646     Double* pIdentity = Double::Identity(_pR->getDims(), _pR->getDimsArray(), _pL->get(0), _pL->getImg(0));
2647     compequal(pIdentity->get(), pIdentity->getImg(), pOut->getSize(), _pR->get(), _pR->getImg(), pOut->get());
2648     delete pIdentity;
2649     return pOut;
2650 }
2651
2652 template<class T, class U, class O>
2653 InternalType* compequal_IC_S(T *_pL, U *_pR)
2654 {
2655     O* pOut = new Bool(false);
2656     if (_pL->getImg(0) == 0)
2657     {
2658         compequal(_pL->get(0), _pR->get(0), pOut->get());
2659     }
2660     return pOut;
2661 }
2662
2663 template<class T, class U, class O>
2664 InternalType* compequal_IC_SC(T *_pL, U *_pR)
2665 {
2666     O* pOut = new Bool(1, 1);
2667     compequal(_pL->get(0), _pL->getImg(0), _pR->get(0), _pR->getImg(0), pOut->get());
2668     return pOut;
2669 }
2670
2671 template<class T, class U, class O>
2672 InternalType* compequal_IC_I(T *_pL, U *_pR)
2673 {
2674     O* pOut = new Bool(false);
2675     if (_pL->getImg(0) == 0)
2676     {
2677         compequal(_pL->get(0), _pR->get(0), pOut->get());
2678     }
2679     return pOut;
2680 }
2681
2682 template<class T, class U, class O>
2683 InternalType* compequal_IC_IC(T *_pL, U *_pR)
2684 {
2685     O* pOut = new Bool(1, 1);
2686     compequal(_pL->get(0), _pL->getImg(0), _pR->get(0), _pR->getImg(0), pOut->get());
2687     return pOut;
2688 }
2689
2690 template<>
2691 InternalType* compequal_M_M<SparseBool, SparseBool, SparseBool>(SparseBool* _pL, SparseBool* _pR)
2692 {
2693     //pending changes
2694     if (((_pL->getRows() != _pR->getRows()) || (_pL->getCols() != _pR->getCols())) && (_pL->getSize() != 1) && (_pR->getSize() != 1))
2695     {
2696         return new Bool(false);
2697     }
2698
2699     return _pR->newEqualTo(*_pL);
2700 }
2701
2702 template<>
2703 InternalType* compequal_M_M<Sparse, Sparse, SparseBool>(Sparse* _pL, Sparse* _pR)
2704 {
2705     //pending changes
2706     if (((_pL->getRows() != _pR->getRows()) || (_pL->getCols() != _pR->getCols())) && (_pL->getSize() != 1) && (_pR->getSize() != 1))
2707     {
2708         return new Bool(false);
2709     }
2710
2711     return _pR->newEqualTo(*_pL);
2712 }
2713
2714 //[] == SP
2715 template<>
2716 InternalType* compequal_M_M<Double, Sparse, Bool>(Double* _pL, Sparse* _pR)
2717 {
2718     return new Bool(false);
2719 }
2720
2721 //SP == []
2722 template<>
2723 InternalType* compequal_M_M<Sparse, Double, Bool>(Sparse* _pL, Double* _pR)
2724 {
2725     return new Bool(false);
2726 }
2727
2728 //sparse
2729 template<class T, class U, class O>
2730 InternalType* compequal_M_SP(T* _pL, U* _pR)
2731 {
2732     //pending changes
2733
2734     //D -> SP == SP
2735     Sparse* pspConvert = NULL;
2736     types::SparseBool* pOut = NULL;
2737
2738
2739     if (_pL->isScalar())
2740     {
2741         int iSizeOut = _pR->getSize();
2742         if (_pL->isComplex())
2743         {
2744             pspConvert = new Sparse(_pR->getRows(), _pR->getCols(), true);
2745             std::complex<double> stComplex((double)_pL->get(0), (double)_pL->getImg(0));
2746             for (int i = 0; i < iSizeOut; i++)
2747             {
2748                 pspConvert->set(i, stComplex, false);
2749             }
2750         }
2751         else
2752         {
2753             pspConvert = new Sparse(_pR->getRows(), _pR->getCols(), _pR->isComplex());
2754             for (int i = 0; i < iSizeOut; i++)
2755             {
2756                 pspConvert->set(i, (double)_pL->get(0), false);
2757             }
2758         }
2759     }
2760     else
2761     {
2762         //check dimensions
2763         if (_pL->getDims() != 2 || _pL->getRows() != _pR->getRows() || _pL->getCols() != _pR->getCols())
2764         {
2765             return new Bool(false);
2766         }
2767
2768         int iSizeOut = _pR->getSize();
2769         if (_pL->isComplex())
2770         {
2771             pspConvert = new Sparse(_pR->getRows(), _pR->getCols(), true);
2772
2773             for (int i = 0; i < iSizeOut; i++)
2774             {
2775                 std::complex<double> stComplex((double)_pL->get(i), (double)_pL->getImg(i));
2776                 pspConvert->set(i, stComplex, false);
2777             }
2778         }
2779         else
2780         {
2781             pspConvert = new Sparse(_pR->getRows(), _pR->getCols(), _pR->isComplex());
2782             for (int i = 0; i < iSizeOut; i++)
2783             {
2784                 pspConvert->set(i, (double)_pL->get(i), false);
2785             }
2786         }
2787     }
2788
2789     pspConvert->finalize();
2790     pOut = _pR->newEqualTo(*pspConvert);
2791     delete pspConvert;
2792     return pOut;
2793 }
2794
2795 template<class T, class U, class O>
2796 InternalType* compequal_SP_M(T* _pL, U* _pR)
2797 {
2798     //pending changes
2799
2800     Sparse* pspConvert = NULL;
2801     types::SparseBool* pOut = NULL;
2802
2803     if (_pR->isScalar())
2804     {
2805         int iSizeOut = _pL->getSize();
2806         if (_pR->isComplex())
2807         {
2808             pspConvert = new Sparse(_pL->getRows(), _pL->getCols(), true);
2809             std::complex<double> stComplex((double)_pR->get(0), (double)_pR->getImg(0));
2810             for (int i = 0; i < iSizeOut; i++)
2811             {
2812                 pspConvert->set(i, stComplex, false);
2813             }
2814         }
2815         else
2816         {
2817             pspConvert = new Sparse(_pL->getRows(), _pL->getCols(), _pL->isComplex());
2818             for (int i = 0; i < iSizeOut; i++)
2819             {
2820                 pspConvert->set(i, (double)_pR->get(0), false);
2821             }
2822         }
2823     }
2824     else
2825     {
2826         //check dimensions
2827         if (_pR->getDims() != 2 || _pR->getRows() != _pL->getRows() || _pR->getCols() != _pL->getCols())
2828         {
2829             return new Bool(false);
2830         }
2831
2832         int iSizeOut = _pL->getSize();
2833         if (_pR->isComplex())
2834         {
2835             pspConvert = new Sparse(_pL->getRows(), _pL->getCols(), true);
2836
2837             for (int i = 0; i < iSizeOut; i++)
2838             {
2839                 std::complex<double> stComplex((double)_pR->get(i), (double)_pR->getImg(i));
2840                 pspConvert->set(i, stComplex, false);
2841             }
2842         }
2843         else
2844         {
2845             pspConvert = new Sparse(_pL->getRows(), _pL->getCols(), _pL->isComplex());
2846             for (int i = 0; i < iSizeOut; i++)
2847             {
2848                 pspConvert->set(i, (double)_pR->get(i), false);
2849             }
2850         }
2851     }
2852
2853     pspConvert->finalize();
2854     pOut = _pL->newEqualTo(*pspConvert);
2855     delete pspConvert;
2856     return pOut;
2857
2858 }
2859
2860 //sparsebool
2861 template<>
2862 InternalType* compequal_M_M<Bool, SparseBool, SparseBool>(Bool* _pL, SparseBool* _pR)
2863 {
2864     //pending changes
2865
2866     //D -> SP == SP
2867     SparseBool* pspConvert = NULL;
2868     types::SparseBool* pOut = NULL;
2869
2870
2871     if (_pL->isScalar())
2872     {
2873         int iSizeOut = _pR->getSize();
2874
2875         pspConvert = new SparseBool(_pR->getRows(), _pR->getCols());
2876         for (int i = 0; i < iSizeOut; i++)
2877         {
2878             pspConvert->set(i, _pL->get(0) == 1, false);
2879         }
2880
2881     }
2882     else
2883     {
2884         //check dimensions
2885         if (_pL->getDims() != 2 || _pL->getRows() != _pR->getRows() || _pL->getCols() != _pR->getCols())
2886         {
2887             return new Bool(false);
2888         }
2889
2890         int iSizeOut = _pR->getSize();
2891
2892         pspConvert = new SparseBool(_pR->getRows(), _pR->getCols());
2893         for (int i = 0; i < iSizeOut; i++)
2894         {
2895             pspConvert->set(i, _pL->get(i) == 1, false);
2896         }
2897     }
2898
2899     pspConvert->finalize();
2900     pOut = _pR->newEqualTo(*pspConvert);
2901     delete pspConvert;
2902     return pOut;
2903 }
2904
2905 template<>
2906 InternalType* compequal_M_M<SparseBool, Bool, SparseBool>(SparseBool* _pL, Bool* _pR)
2907 {
2908     //pending changes
2909
2910     SparseBool* pspConvert = NULL;
2911     types::SparseBool* pOut = NULL;
2912
2913     if (_pR->isScalar())
2914     {
2915         int iSizeOut = _pL->getSize();
2916
2917         pspConvert = new SparseBool(_pL->getRows(), _pL->getCols());
2918         for (int i = 0; i < iSizeOut; i++)
2919         {
2920             pspConvert->set(i, _pR->get(0) == 1, false);
2921         }
2922
2923     }
2924     else
2925     {
2926         //check dimensions
2927         if (_pR->getDims() != 2 || _pR->getRows() != _pL->getRows() || _pR->getCols() != _pL->getCols())
2928         {
2929             return new Bool(false);
2930         }
2931
2932         int iSizeOut = _pL->getSize();
2933
2934         pspConvert = new SparseBool(_pL->getRows(), _pL->getCols());
2935         for (int i = 0; i < iSizeOut; i++)
2936         {
2937             pspConvert->set(i, _pR->get(i) == 1, false);
2938         }
2939     }
2940
2941     pspConvert->finalize();
2942     pOut = _pL->newEqualTo(*pspConvert);
2943     delete pspConvert;
2944     return pOut;
2945
2946 }
2947
2948 //Polynom
2949 template<>
2950 InternalType* compequal_M_M<Polynom, Polynom, Bool>(Polynom* _pL, Polynom* _pR)
2951 {
2952     Bool* pbOut = NULL;
2953     bool bPoise = true;
2954
2955     SinglePoly** pSPL = _pL->get();
2956     SinglePoly** pSPR = _pR->get();
2957
2958     if (_pL->getVariableName() != _pR->getVariableName())
2959     {
2960         return new Bool(false);
2961     }
2962
2963     if (_pR->isScalar())
2964     {
2965         pbOut = new Bool(_pL->getDims(), _pL->getDimsArray());
2966         int iSize = pbOut->getSize();
2967
2968         if (_pL->isComplex())
2969         {
2970             if (_pR->isComplex())
2971             {
2972                 for (int i = 0; i < iSize; i++)
2973                 {
2974                     if (pSPL[i]->getSize() != pSPR[0]->getSize())
2975                     {
2976                         bPoise = false;
2977                     }
2978                     else
2979                     {
2980                         bPoise = true;
2981                         for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
2982                         {
2983                             compequal(pSPR[0]->get(j), pSPR[0]->getImg(j), pSPL[i]->get(j), pSPL[i]->getImg(j), &bPoise);
2984                         }
2985                     }
2986                     pbOut->set(i, bPoise);
2987
2988                 }
2989             }
2990             else
2991             {
2992                 for (int i = 0; i < iSize; i++)
2993                 {
2994                     if (pSPL[i]->getSize() != pSPR[0]->getSize())
2995                     {
2996                         bPoise = false;
2997                     }
2998                     else
2999                     {
3000                         bPoise = true;
3001                         for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
3002                         {
3003                             compequal(pSPR[0]->get(j), (double)0, pSPL[i]->get(j), pSPL[i]->getImg(j), &bPoise);
3004                         }
3005                     }
3006                     pbOut->set(i, bPoise);
3007                 }
3008             }
3009         }
3010         else
3011         {
3012             if (_pR->isComplex())
3013             {
3014                 for (int i = 0; i < iSize; i++)
3015                 {
3016                     if (pSPL[i]->getSize() != pSPR[0]->getSize())
3017                     {
3018                         bPoise = false;
3019                     }
3020                     else
3021                     {
3022                         bPoise = true;
3023                         for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
3024                         {
3025                             compequal(pSPR[0]->get(j), pSPR[0]->getImg(j), pSPL[i]->get(j), (double)0, &bPoise);
3026                         }
3027                     }
3028                     pbOut->set(i, bPoise);
3029                 }
3030             }
3031             else
3032             {
3033                 for (int i = 0; i < iSize; i++)
3034                 {
3035                     if (pSPL[i]->getSize() != pSPR[0]->getSize())
3036                     {
3037                         bPoise = false;
3038                     }
3039                     else
3040                     {
3041                         bPoise = true;
3042                         for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
3043                         {
3044                             compequal(pSPR[0]->get(j), pSPL[i]->get(j), &bPoise);
3045                         }
3046                     }
3047                     pbOut->set(i, bPoise);
3048                 }
3049             }
3050         }
3051     }
3052     else if (_pL->isScalar())
3053     {
3054         pbOut = new Bool(_pR->getDims(), _pR->getDimsArray());
3055         int iSize = pbOut->getSize();
3056
3057         if (pSPR[0]->getSize() != 1)
3058         {
3059             if (_pL->isComplex())
3060             {
3061                 if (_pR->isComplex())
3062                 {
3063                     for (int i = 0; i < iSize; i++)
3064                     {
3065                         if (pSPL[0]->getSize() != pSPR[i]->getSize())
3066                         {
3067                             bPoise = false;
3068                         }
3069                         else
3070                         {
3071                             bPoise = true;
3072                             for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
3073                             {
3074                                 compequal(pSPL[0]->get(j), pSPL[0]->getImg(j), pSPR[i]->get(j), pSPR[i]->getImg(j), &bPoise);
3075                             }
3076                         }
3077                         pbOut->set(i, bPoise);
3078                     }
3079                 }
3080                 else
3081                 {
3082                     for (int i = 0; i < iSize; i++)
3083                     {
3084                         if (pSPL[0]->getSize() != pSPR[i]->getSize())
3085                         {
3086                             bPoise = false;
3087                         }
3088                         else
3089                         {
3090                             bPoise = true;
3091                             for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
3092                             {
3093                                 compequal(pSPL[0]->get(j), pSPL[0]->getImg(j), pSPR[i]->get(j), (double)0, &bPoise);
3094                             }
3095                         }
3096                         pbOut->set(i, bPoise);
3097                     }
3098                 }
3099             }
3100             else
3101             {
3102
3103                 if (_pR->isComplex())
3104                 {
3105                     for (int i = 0; i < iSize; i++)
3106                     {
3107                         if (pSPL[0]->getSize() != pSPR[i]->getSize())
3108                         {
3109                             bPoise = false;
3110                         }
3111                         else
3112                         {
3113                             bPoise = true;
3114                             for (int j = 0; j < pSPL[0]->getSize() && (bPoise == true); j++)
3115                             {
3116                                 compequal(pSPL[0]->get(j), (double)0, pSPR[i]->get(j), pSPR[i]->get(j), &bPoise);
3117                             }
3118                         }
3119                         pbOut->set(i, bPoise);
3120                     }
3121                 }
3122                 else
3123                 {
3124                     for (int i = 0; i < iSize; i++)
3125                     {
3126                         if (pSPL[0]->getSize() != pSPR[i]->getSize())
3127                         {
3128                             bPoise = false;
3129                         }
3130                         else
3131                         {
3132                             bPoise = true;
3133                             for (int j = 0; j < pSPR[i]->getSize() && (bPoise == true); j++)
3134                             {
3135                                 compequal(pSPL[0]->get(j), pSPR[i]->get(j), &bPoise);
3136                             }
3137                         }
3138                         pbOut->set(i, bPoise);
3139                     }
3140                 }
3141
3142             }
3143         }
3144     }
3145     else
3146     {
3147         //check dimensions
3148         if (_pL->getDims() != _pR->getDims())
3149         {
3150             return new Bool(false);
3151         }
3152
3153         for (int i = 0; i < _pL->getDims(); i++)
3154         {
3155             if (_pL->getDimsArray()[i] != _pR->getDimsArray()[i])
3156             {
3157                 return new Bool(false);
3158             }
3159         }
3160
3161         pbOut = new Bool(_pL->getDims(), _pL->getDimsArray());
3162         int iSize = pbOut->getSize();
3163
3164         if (_pL->isComplex())
3165         {
3166             if (_pR->isComplex())
3167             {
3168                 for (int i = 0; i < iSize; i++)
3169                 {
3170                     if (pSPL[i]->getSize() != pSPR[i]->getSize())
3171                     {
3172                         bPoise = false;
3173                     }
3174                     else
3175                     {
3176                         bPoise = true;
3177                         for (int j = 0; j < pSPR[i]->getSize() && (bPoise == true); j++)
3178                         {
3179                             compequal(pSPR[i]->get(j), pSPR[i]->getImg(j), pSPL[i]->get(j), pSPL[i]->getImg(j), &bPoise);
3180                         }
3181                     }
3182                     pbOut->set(i, bPoise);
3183                 }
3184             }
3185             else
3186             {
3187                 for (int i = 0; i < iSize; i++)
3188                 {
3189                     if (pSPL[i]->getSize() != pSPR[i]->getSize())
3190                     {
3191                         bPoise = false;
3192                     }
3193                     else
3194                     {
3195                         bPoise = true;
3196                         for (int j = 0; j < pSPR[i]->getSize() && (bPoise == true); j++)
3197                         {
3198                             compequal(pSPL[i]->get(j), pSPL[i]->getImg(j), pSPR[i]->get(j), (double)0, &bPoise);
3199                         }
3200                     }
3201                     pbOut->set(i, bPoise);
3202                 }
3203             }
3204         }
3205         else
3206         {
3207             if (_pR->isComplex())
3208             {
3209                 for (int i = 0; i < iSize; i++)
3210                 {
3211                     if (pSPL[i]->getSize() != pSPR[i]->getSize())
3212                     {
3213                         bPoise = false;
3214                     }
3215                     else
3216                     {
3217                         bPoise = true;
3218                         for (int j = 0; j < pSPR[i]->getSize() && (bPoise == true); j++)
3219                         {
3220                             compequal(pSPR[i]->get(j), pSPR[i]->getImg(j), pSPL[i]->get(j), (double)0, &bPoise);
3221                         }
3222                     }
3223                     pbOut->set(i, bPoise);
3224                 }
3225             }
3226             else
3227             {
3228                 for (int i = 0; i < iSize; i++)
3229                 {
3230                     if (pSPL[i]->getSize() != pSPR[i]->getSize())
3231                     {
3232                         bPoise = false;
3233                     }
3234                     else
3235                     {
3236                         bPoise = true;
3237                         for (int j = 0; j < pSPR[i]->getSize() && (bPoise == true); j++)
3238                         {
3239                             compequal(pSPR[i]->get(j), pSPL[i]->get(j), &bPoise);
3240                         }
3241                     }
3242                     pbOut->set(i, bPoise);
3243                 }
3244             }
3245         }
3246     }
3247
3248     return pbOut;
3249 }
3250
3251 template<class T, class U, class O>
3252 InternalType* compequal_P_M(T *_pL, U *_pR)
3253 {
3254     Bool* pbOut = NULL;
3255
3256     SinglePoly** pSPR = _pL->get();
3257
3258     if (_pR->isIdentity())
3259     {
3260         Double* pdblEye = NULL;
3261         pbOut = new Bool(_pL->getDims(), _pL->getDimsArray());
3262         int iSize = pbOut->getSize();
3263
3264         if (_pL->isComplex())
3265         {
3266             if (_pR->isComplex())
3267             {
3268                 pdblEye = Double::Identity(_pL->getDims(), _pL->getDimsArray(), (double)_pR->get(0), (double)_pR->getImg(0));
3269                 for (int i = 0; i < iSize; i++)
3270                 {
3271                     if (pSPR[i]->getSize() != 1)
3272                     {
3273                         pbOut->set(i, false);
3274                     }
3275                     else
3276                     {
3277                         compequal((double)pSPR[i]->get(0), (double)pSPR[i]->getImg(0), (double)pdblEye->get(i), (double)pdblEye->getImg(i), &(pbOut->get()[i]));
3278                     }
3279                 }
3280             }
3281             else
3282             {
3283                 pdblEye = Double::Identity(_pL->getDims(), _pL->getDimsArray(), (double)_pR->get(0));
3284                 for (int i = 0; i < iSize; i++)
3285                 {
3286                     if (pSPR[i]->getSize() != 1)
3287                     {
3288                         pbOut->set(i, false);
3289                     }
3290                     else
3291                     {
3292                         compequal((double)pSPR[i]->get(0), (double)pSPR[i]->getImg(0), (double)pdblEye->get(i), (double)0, &(pbOut->get()[i]));
3293                     }
3294                 }
3295             }
3296         }
3297         else
3298         {
3299             if (_pR->isComplex())
3300             {
3301                 pdblEye = Double::Identity(_pL->getDims(), _pL->getDimsArray(), (double)_pR->get(0), (double)_pR->getImg(0));
3302                 for (int i = 0; i < iSize; i++)
3303                 {
3304                     if (pSPR[i]->getSize() != 1)
3305                     {
3306                         pbOut->set(i, false);
3307                     }
3308                     else
3309                     {
3310                         compequal((double)pSPR[i]->get(0), (double)0, (double)pdblEye->get(i), (double)pdblEye->getImg(i), &(pbOut->get()[i]));
3311                     }
3312                 }
3313             }
3314             else
3315             {
3316                 pdblEye = Double::Identity(_pL->getDims(), _pL->getDimsArray(), (double)_pR->get(0));
3317                 for (int i = 0; i < iSize; i++)
3318                 {
3319                     if (pSPR[i]->getSize() != 1)
3320                     {
3321                         pbOut->set(i, false);
3322                     }
3323                     else
3324                     {
3325                         compequal((double)pSPR[i]->get(0), (double)pdblEye->get(i), &(pbOut->get()[i]));
3326                     }
3327                 }
3328             }
3329         }
3330         delete pdblEye;
3331     }
3332     else if (_pR->isScalar())
3333     {
3334         pbOut = new Bool(_pL->getDims(), _pL->getDimsArray());
3335         int iSize = pbOut->getSize();
3336
3337         if (_pL->isComplex())
3338         {
3339             if (_pR->isComplex())
3340             {
3341                 for (int i = 0; i < iSize; i++)
3342                 {
3343                     if (pSPR[i]->getSize() != 1)
3344                     {
3345                         pbOut->set(i, false);
3346                     }
3347                     else
3348                     {
3349                         compequal((double)pSPR[i]->get(0), (double)pSPR[i]->getImg(0), (double)_pR->get(0), (double)_pR->getImg(0), &(pbOut->get()[i]));
3350                     }
3351                 }
3352             }
3353             else
3354             {
3355                 for (int i = 0; i < iSize; i++)
3356                 {
3357                     if (pSPR[i]->getSize() != 1)
3358                     {
3359                         pbOut->set(i, false);
3360                     }
3361                     else
3362                     {
3363                         compequal((double)pSPR[i]->get(0), (double)pSPR[i]->getImg(0), (double)_pR->get(0), (double)0, &(pbOut->get()[i]));
3364                     }
3365                 }
3366             }
3367         }
3368         else
3369         {
3370             if (_pR->isComplex())
3371             {
3372                 for (int i = 0; i < iSize; i++)
3373                 {
3374                     if (pSPR[i]->getSize() != 1)
3375                     {
3376                         pbOut->set(i, false);
3377                     }
3378                     else
3379                     {
3380                         compequal((double)pSPR[i]->get(0), (double)0, (double)_pR->get(0), (double)_pR->getImg(0), &(pbOut->get()[i]));
3381                     }
3382                 }
3383             }
3384             else
3385             {
3386                 for (int i = 0; i < iSize; i++)
3387                 {
3388                     if (pSPR[i]->getSize() != 1)
3389                     {
3390                         pbOut->set(i, false);
3391                     }
3392                     else
3393                     {
3394                         compequal((double)pSPR[i]->get(0), (double)_pR->get(0), &(pbOut->get()[i]));
3395                     }
3396                 }
3397             }
3398         }
3399     }
3400     else if (_pL->isScalar())
3401     {
3402         pbOut = new Bool(_pR->getDims(), _pR->getDimsArray());
3403         int iSize = pbOut->getSize();
3404
3405         if (pSPR[0]->getSize() == 1)
3406         {
3407             if (_pL->isComplex())
3408             {
3409                 if (_pR->isComplex())
3410                 {
3411                     for (int i = 0; i < iSize; i++)
3412                     {
3413                         compequal((double)pSPR[0]->get(0), (double)pSPR[0]->getImg(0), (double)_pR->get(i), (double)_pR->getImg(i), &(pbOut->get()[i]));
3414                     }
3415                 }
3416                 else
3417                 {
3418                     for (int i = 0; i < iSize; i++)
3419                     {
3420                         compequal((double)pSPR[0]->get(0), (double)pSPR[0]->getImg(0), (double)_pR->get(i), (double)0, &(pbOut->get()[i]));
3421                     }
3422                 }
3423             }
3424             else
3425             {
3426                 if (_pR->isComplex())
3427                 {
3428                     for (int i = 0; i < iSize; i++)
3429                     {
3430                         compequal((double)pSPR[0]->get(0), (double)0, (double)_pR->get(i), (double)_pR->getImg(i), &(pbOut->get()[i]));
3431                     }
3432                 }
3433                 else
3434                 {
3435                     for (int i = 0; i < iSize; i++)
3436                     {
3437                         compequal((double)pSPR[0]->get(0), (double)_pR->get(i), &(pbOut->get()[i]));
3438                     }
3439                 }
3440
3441             }
3442         }
3443         else
3444         {
3445             pbOut->setFalse();
3446         }
3447
3448     }
3449     else
3450     {
3451         //check dimensions
3452         if (_pL->getDims() != _pR->getDims())
3453         {
3454             return new Bool(false);
3455         }
3456
3457         for (int i = 0; i < _pL->getDims(); i++)
3458         {
3459             if (_pL->getDimsArray()[i] != _pR->getDimsArray()[i])
3460             {
3461                 return new Bool(false);
3462             }
3463         }
3464
3465         pbOut = new Bool(_pL->getDims(), _pL->getDimsArray());
3466         int iSize = pbOut->getSize();
3467
3468         if (_pL->isComplex())
3469         {
3470             if (_pR->isComplex())
3471             {
3472                 for (int i = 0; i < iSize; i++)
3473                 {
3474                     if (pSPR[i]->getSize() != 1)
3475                     {
3476                         pbOut->set(i, false);
3477                     }
3478                     else
3479                     {
3480                         compequal((double)pSPR[i]->get(0), (double)pSPR[i]->getImg(0), (double)_pR->get(i), (double)_pR->getImg(i), &(pbOut->get()[i]));
3481                     }
3482                 }
3483             }
3484             else
3485             {
3486                 for (int i = 0; i < iSize; i++)
3487                 {
3488                     if (pSPR[i]->getSize() != 1)
3489                     {
3490                         pbOut->set(i, false);
3491                     }
3492                     else
3493                     {
3494                         compequal((double)pSPR[i]->get(0), (double)pSPR[i]->getImg(0), (double)_pR->get(i), (double)0, &(pbOut->get()[i]));
3495                     }
3496                 }
3497             }
3498         }
3499         else
3500         {
3501             if (_pR->isComplex())
3502             {
3503                 for (int i = 0; i < iSize; i++)
3504                 {
3505                     if (pSPR[i]->getSize() != 1)
3506                     {
3507                         pbOut->set(i, false);
3508                     }
3509                     else
3510                     {
3511                         compequal((double)pSPR[i]->get(0), (double)0, (double)_pR->get(i), (double)_pR->getImg(i), &(pbOut->get()[i]));
3512                     }
3513                 }
3514             }
3515             else
3516             {
3517                 for (int i = 0; i < iSize; i++)
3518                 {
3519                     if (pSPR[i]->getSize() != 1)
3520                     {
3521                         pbOut->set(i, false);
3522                     }
3523                     else
3524                     {
3525                         compequal((double)pSPR[i]->get(0), (double)_pR->get(i), &(pbOut->get()[i]));
3526                     }
3527                 }
3528             }
3529         }
3530     }
3531
3532     return pbOut;
3533 }
3534
3535 template<class T, class U, class O>
3536 InternalType* compequal_M_P(T *_pL, U *_pR)
3537 {
3538     return GenericComparisonEqual(_pR, _pL);
3539 }
3540
3541 template<>
3542 InternalType* compequal_M_M<String, String, Bool>(String* _pL, String* _pR)
3543 {
3544
3545     if (_pL->isScalar())
3546     {
3547         Bool*  pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
3548         for (int i = 0; i < _pR->getSize(); i++)
3549         {
3550             pOut->set(i, wcscmp(_pL->get(0), _pR->get(i)) == 0);
3551         }
3552         return pOut;
3553     }
3554
3555     if (_pR->isScalar())
3556     {
3557         Bool*  pOut = new Bool(_pL->getDims(), _pL->getDimsArray());
3558         for (int i = 0; i < _pL->getSize(); i++)
3559         {
3560             pOut->set(i, wcscmp(_pL->get(i), _pR->get(0)) == 0);
3561         }
3562         return pOut;
3563     }
3564
3565     int iDimsL = _pL->getDims();
3566     int iDimsR = _pR->getDims();
3567
3568     int* piDimsL = _pL->getDimsArray();
3569     int* piDimsR = _pR->getDimsArray();
3570
3571
3572     if (iDimsL != iDimsR)
3573     {
3574         return new Bool(false);
3575     }
3576
3577
3578     for (int i = 0; i < iDimsL; ++i)
3579     {
3580         if (piDimsL[i] != piDimsR[i])
3581         {
3582             return new Bool(false);
3583         }
3584     }
3585
3586
3587     if (_pL->getSize() == _pR->getSize())
3588     {
3589         Bool*  pOut = new Bool(iDimsL, piDimsL);
3590
3591         for (int i = 0; i < _pL->getSize(); i++)
3592         {
3593             pOut->set(i, wcscmp(_pL->get(i), _pR->get(i)) == 0);
3594         }
3595         return pOut;
3596     }
3597     return NULL;
3598 }
3599
3600 template<>
3601 types::InternalType* compequal_M_M<Struct, Struct, Bool>(types::Struct* _pL, types::Struct* _pR)
3602 {
3603     /* check dimension*/
3604     if (_pL->getDims() != _pR->getDims())
3605     {
3606         return new Bool(false);
3607     }
3608
3609     int* piDimsL = _pL->getDimsArray();
3610     int* piDimsR = _pR->getDimsArray();
3611
3612     for (int i = 0; i < _pL->getDims(); i++)
3613     {
3614         if (piDimsL[i] != piDimsR[i])
3615         {
3616             return new Bool(false);
3617         }
3618     }
3619
3620     if (_pL->getSize() == 0)
3621     {
3622         return new Bool(true);
3623     }
3624
3625     Bool *pOut = new Bool(_pL->getDims(), piDimsL);
3626     for (int i = 0; i < _pL->getSize(); i++)
3627     {
3628         pOut->set(i, *_pL->get(i) == *_pR->get(i));
3629     }
3630     return pOut;
3631 }
3632
3633 //List, TList, MList
3634 template<class T, class U, class O>
3635 InternalType* compequal_LT_LT(T *_pL, U *_pR)
3636 {
3637     if (_pL->getType() != GenericType::ScilabList || _pR->getType() != GenericType::ScilabList)
3638     {
3639         //try to find overload function, if symbol exist, return NULL to let opexep to call it.
3640         //otherwise do a "binary" comparison
3641         types::typed_list in;
3642         in.push_back(_pL);
3643         in.push_back(_pR);
3644         std::wstring overloadName(Overload::buildOverloadName(Overload::getNameFromOper(ast::OpExp::eq), in, 1, true));
3645         types::InternalType* pIT = symbol::Context::getInstance()->get(symbol::Symbol(overloadName));
3646         if (pIT)
3647         {
3648             return NULL;
3649         }
3650     }
3651
3652     if (_pL->getSize() != _pR->getSize())
3653     {
3654         return new Bool(false);
3655     }
3656
3657     if (_pL->getSize() == 0 && _pR->getSize() == 0)
3658     {
3659         return new Bool(true);
3660     }
3661
3662     Bool* pB = new Bool(1, _pL->getSize());
3663     for (int i = 0; i < _pL->getSize(); i++)
3664     {
3665         pB->set(i, ((*_pL->get(i) == *_pR->get(i)) && (_pL->get(i)->getType() != types::InternalType::ScilabVoid)));
3666     }
3667
3668     return pB;
3669 }
3670
3671 template<>
3672 types::InternalType* compequal_M_M<Cell, Cell, Bool>(types::Cell* _pL, types::Cell* _pR)
3673 {
3674     return new Bool(*_pL == *_pR);
3675 }
3676
3677 template<>
3678 types::InternalType* compequal_M_M<GraphicHandle, GraphicHandle, Bool>(GraphicHandle* _pL, GraphicHandle* _pR)
3679 {
3680     if (_pL->isScalar())
3681     {
3682         Bool* pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
3683         compequal(_pL->get(0), _pR->getSize(), _pR->get(), pOut->get());
3684         return pOut;
3685     }
3686
3687     if (_pR->isScalar())
3688     {
3689         Bool* pOut = new Bool(_pL->getDims(), _pL->getDimsArray());
3690         compequal(_pR->get(0), _pL->getSize(), _pL->get(), pOut->get());
3691         return pOut;
3692     }
3693
3694     /* check dimension*/
3695     if (_pL->getDims() != _pR->getDims())
3696     {
3697         throw ast::InternalError(_W("Inconsistent row/column dimensions.\n"));
3698     }
3699
3700     int* piDimsL = _pL->getDimsArray();
3701     int* piDimsR = _pR->getDimsArray();
3702
3703     for (int i = 0; i < _pL->getDims(); i++)
3704     {
3705         if (piDimsL[i] != piDimsR[i])
3706         {
3707             throw ast::InternalError(_W("Inconsistent row/column dimensions.\n"));
3708         }
3709     }
3710
3711     Bool* pOut = new Bool(_pL->getDims(), piDimsL);
3712     int iSize = pOut->getSize();
3713
3714     compequal(_pL->get(), iSize, _pR->get(), pOut->get());
3715     return pOut;
3716 }
3717
3718 template<class T, class U, class O>
3719 InternalType* compequal_MCR_MCR(T *_pL, U *_pR)
3720 {
3721     bool ret = false;
3722     if (_pL->getType() == GenericType::ScilabMacroFile)
3723     {
3724         types::InternalType* pIT = ((InternalType *) _pL);
3725         types::MacroFile* pL = pIT->getAs<types::MacroFile>();
3726         ret = *pL == *_pR;
3727     }
3728     else if (_pL->getType() == GenericType::ScilabMacro)
3729     {
3730         types::InternalType* pIT = ((InternalType *) _pL);
3731         types::Macro* pL = pIT->getAs<types::Macro>();
3732         if (_pR->getType() == GenericType::ScilabMacroFile)
3733         {
3734             types::InternalType* pIT = ((InternalType *) _pR);
3735             types::MacroFile* pR = pIT->getAs<types::MacroFile>();
3736             ret = *pR == *pL;
3737         }
3738         else
3739         {
3740             ret = *pL == *_pR;
3741         }
3742     }
3743
3744     return new Bool(ret);
3745 }
3746
3747 //UserType
3748 template<class T, class U, class O>
3749 InternalType* compequal_UT_UT(T *_pL, U *_pR)
3750 {
3751     return _pL->equal(_pR);
3752 }