fix ldivision with inf and nan 63/15563/4
Anais AUBERT [Wed, 19 Nov 2014 15:55:42 +0000 (16:55 +0100)]
test_run("linear_algebra","bug_2523",["no_check_error_output" ]);

Change-Id: I6cfc8b9338216100731ddbedabcdae357f67169b

scilab/modules/ast/src/cpp/operations/types_ldivide.cpp
scilab/modules/linear_algebra/tests/nonreg_tests/bug_2523.dia.ref
scilab/modules/linear_algebra/tests/nonreg_tests/bug_2523.tst

index 1b3ac1d..8f67eaf 100644 (file)
@@ -98,7 +98,7 @@ int LDivideDoubleByDouble(Double *_pDouble1, Double *_pDouble2, Double **_pDoubl
     //check finite values of _pDouble1 and _pDouble2
     if (isDoubleFinite(_pDouble1) == false || isDoubleFinite(_pDouble2) == false)
     {
-        if (_pDouble2->isScalar() == false)
+        if (_pDouble1->isScalar() == false)
         {
             return 2;
         }
index 7472c06..50b5261 100644 (file)
 // <-- Short Description -->
 // slash and backslash matrix divisions involving vectors with %inf or %nan entries
 // hang scilab
-if execstr('[1 %inf]\1 ','errcatch')<>229 then bugmes();quit;end
-if execstr('[1 2]\%inf ','errcatch')<>229 then bugmes();quit;end
-if execstr('[1+%i %inf]\1 ','errcatch')<>229 then bugmes();quit;end
-if execstr('[1+%i %inf]\%i ','errcatch')<>229 then bugmes();quit;end
-if execstr('[1 %i]\%inf ','errcatch')<>229 then bugmes();quit;end
-if execstr('1/[1 %inf] ','errcatch')<>229 then bugmes();quit;end
-if execstr('%inf/[1 2] ','errcatch')<>229 then bugmes();quit;end
-if execstr('1/[1+%i %inf] ','errcatch')<>229 then bugmes();quit;end
-if execstr('%i/[1+%i %inf] ','errcatch')<>229 then bugmes();quit;end
-if execstr('%inf/[1 %i] ','errcatch')<>229 then bugmes();quit;end
+if execstr("[1 %inf]\1 ","errcatch")<>999 then bugmes();quit;end
+if execstr("[1 2]\%inf ","errcatch")<>999 then bugmes();quit;end
+if execstr("[1+%i %inf]\1 ","errcatch")<>999 then bugmes();quit;end
+if execstr("[1+%i %inf]\%i ","errcatch")<>999 then bugmes();quit;end
+if execstr("[1 %i]\%inf ","errcatch")<>999 then bugmes();quit;end
+if execstr("1/[1 %inf] ","errcatch")<>999 then bugmes();quit;end
+if execstr("%inf/[1 2] ","errcatch")<>999 then bugmes();quit;end
+if execstr("1/[1+%i %inf] ","errcatch")<>999 then bugmes();quit;end
+if execstr("%i/[1+%i %inf] ","errcatch")<>999 then bugmes();quit;end
+if execstr("%inf/[1 %i] ","errcatch")<>999 then bugmes();quit;end
index 1423437..22caa5d 100644 (file)
 // hang scilab
 
 
-if execstr('[1 %inf]\1 ','errcatch')<>229 then pause,end
-if execstr('[1 2]\%inf ','errcatch')<>229 then pause,end
+if execstr("[1 %inf]\1 ","errcatch")<>999 then pause,end
+if execstr("[1 2]\%inf ","errcatch")<>999 then pause,end
 
-if execstr('[1+%i %inf]\1 ','errcatch')<>229 then pause,end
-if execstr('[1+%i %inf]\%i ','errcatch')<>229 then pause,end
+if execstr("[1+%i %inf]\1 ","errcatch")<>999 then pause,end
+if execstr("[1+%i %inf]\%i ","errcatch")<>999 then pause,end
 
-if execstr('[1 %i]\%inf ','errcatch')<>229 then pause,end
+if execstr("[1 %i]\%inf ","errcatch")<>999 then pause,end
 
-if execstr('1/[1 %inf] ','errcatch')<>229 then pause,end
-if execstr('%inf/[1 2] ','errcatch')<>229 then pause,end
+if execstr("1/[1 %inf] ","errcatch")<>999 then pause,end
+if execstr("%inf/[1 2] ","errcatch")<>999 then pause,end
 
-if execstr('1/[1+%i %inf] ','errcatch')<>229 then pause,end
-if execstr('%i/[1+%i %inf] ','errcatch')<>229 then pause,end
+if execstr("1/[1+%i %inf] ","errcatch")<>999 then pause,end
+if execstr("%i/[1+%i %inf] ","errcatch")<>999 then pause,end
 
-if execstr('%inf/[1 %i] ','errcatch')<>229 then pause,end
+if execstr("%inf/[1 %i] ","errcatch")<>999 then pause,end