License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / ast / src / cpp / analysis / check_zeros.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2014-2015 - Scilab Enterprises - Calixte DENIZET
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 // This file has been generated, so don't modify it by hand !!
17
18 #include "checkers/Checkers.hxx"
19
20 namespace analysis
21 {
22     TIType Checkers::check_zeros(GVN & gvn)
23     {
24         return TIType(gvn, TIType::DOUBLE, 1, 1);
25     }
26
27     TIType Checkers::check_zeros(GVN & gvn, const TIType & in0)
28     {
29         switch (in0.type)
30         {
31         case TIType::EMPTY :
32         {
33             return in0;
34         }
35         case TIType::BOOLEAN :
36         {
37             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
38         }
39         case TIType::COMPLEX :
40         {
41             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
42         }
43         case TIType::DOUBLE :
44         {
45             return in0;
46         }
47         case TIType::INT16 :
48         {
49             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
50         }
51         case TIType::INT32 :
52         {
53             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
54         }
55         case TIType::INT64 :
56         {
57             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
58         }
59         case TIType::INT8 :
60         {
61             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
62         }
63         case TIType::STRING :
64         {
65             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
66         }
67         case TIType::UINT16 :
68         {
69             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
70         }
71         case TIType::UINT32 :
72         {
73             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
74         }
75         case TIType::UINT64 :
76         {
77             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
78         }
79         case TIType::UINT8 :
80         {
81             return TIType(gvn, TIType::DOUBLE, in0.rows, in0.cols);
82         }
83         default :
84             return TIType(gvn);
85         }
86     }
87
88     TIType Checkers::check_zeros(GVN & gvn, const TIType & in0, const TIType & in1)
89     {
90         if (in0.type == TIType::DOUBLE)
91         {
92             if (in1.type == TIType::DOUBLE)
93             {
94                 if (in0.rows == 1 && in0.cols == 1 && in1.rows == 1 && in1.cols == 1)
95                 {
96                     return TIType(gvn, TIType::DOUBLE, -2, -2);
97                 }
98             }
99             else
100             {
101                 return TIType(gvn);
102             }
103             return TIType(gvn);
104         }
105         else
106         {
107             return TIType(gvn);
108         }
109         return TIType(gvn);
110     }
111
112 } // namespace analysis