types_or fixed with []
[scilab.git] / scilab / modules / ast / src / cpp / operations / types_or.cpp
index 3dda265..d1e6cd9 100644 (file)
@@ -58,7 +58,7 @@ void fillOrFunction()
     scilab_fill_or(Bool, ScalarDouble, M_S, Bool, Double, Bool);
     scilab_fill_or(Bool, ScalarBool, M_S, Bool, Bool, Bool);
 
-    scilab_fill_or(Bool, Empty, M_E, Bool, Double, Double);
+    scilab_fill_or(Bool, Empty, M_E, Bool, Double, Bool);
     scilab_fill_or(Bool, Identity, M_S, Bool, Double, Bool);
 
     scilab_fill_or(ScalarBool, Double, S_M, Bool, Double, Bool);
@@ -67,14 +67,14 @@ void fillOrFunction()
     scilab_fill_or(ScalarBool, ScalarDouble, S_S, Bool, Double, Bool);
     scilab_fill_or(ScalarBool, ScalarBool, S_S, Bool, Bool, Bool);
 
-    scilab_fill_or(ScalarBool, Empty, M_E, Bool, Double, Double);
+    scilab_fill_or(ScalarBool, Empty, M_E, Bool, Double, Bool);
     scilab_fill_or(ScalarBool, Identity, S_S, Bool, Double, Bool);
 
     // []
     scilab_fill_or(Empty, Double, E_M, Double, Double, Double);
-    scilab_fill_or(Empty, Bool, E_M, Double, Bool, Double);
+    scilab_fill_or(Empty, Bool, E_M, Double, Bool, Bool);
     scilab_fill_or(Empty, ScalarDouble, E_M, Double, Double, Double);
-    scilab_fill_or(Empty, ScalarBool, E_M, Double, Bool, Double);
+    scilab_fill_or(Empty, ScalarBool, E_M, Double, Bool, Bool);
     scilab_fill_or(Empty, Empty, E_M, Double, Double, Double);
     scilab_fill_or(Empty, Identity, E_M, Double, Double, Double);
 
@@ -586,12 +586,28 @@ InternalType* or_M_E(T *_pL, U *_pR)
     return _pR;
 }
 
+template<>
+InternalType* or_M_E<Bool, Double, Bool>(Bool* _pL, Double* /* _pR */)
+{
+    Bool* pOut = new Bool(_pL->getDims(), _pL->getDimsArray());
+    pOut->setTrue();
+    return pOut;
+}
+
 template<class T, class U, class O>
 InternalType* or_E_M(T *_pL, U *_pR)
 {
     return _pL;
 }
 
+template<>
+InternalType* or_E_M<Double, Bool, Bool>(Double* /* _pL */, Bool*  _pR)
+{
+    Bool* pOut = new Bool(_pR->getDims(), _pR->getDimsArray());
+    pOut->setTrue();
+    return pOut;
+}
+
 template<class T, class U, class O>
 InternalType* or_I_S(T *_pL, U *_pR)
 {