* Bug #12139 fixed - eigs run out of memory for sparse matrices. 44/10444/2
Guillaume Horel [Mon, 11 Feb 2013 10:16:14 +0000 (11:16 +0100)]
Change-Id: I839f684f8cc0203f4e47f488d80c7d63681b0f5c

scilab/CHANGES_5.4.X
scilab/modules/arnoldi/macros/eigs.sci
scilab/modules/arnoldi/tests/nonreg_tests/bug_12139.dia.ref [new file with mode: 0644]
scilab/modules/arnoldi/tests/nonreg_tests/bug_12139.tst [new file with mode: 0644]

index c994b19..b4120cd 100644 (file)
@@ -309,6 +309,8 @@ Bug fixes
 
 * Bug #12137 fixed - eigs(A,B) returned incorrect result for sparse matrices.
 
+* Bug #12139 fixed - eigs ran out of memory for sparse matrices.
+
 * Bug #12140 fixed - csvRead fails when comma is used as decimal mark.
 
 * Bug #12141 fixed - Remove calls to gettext in rubberbox help page examples.
index 708924e..3346190 100644 (file)
@@ -214,7 +214,7 @@ function [res_d, res_v] = speigs(A, %_B, nev, which, maxiter, tol, ncv, cholB, r
     Areal = isreal(A);
 
     //check if A is symetric
-    Asym = and(A == A');
+    Asym = norm(A-A') == 0;
 
     //*************************
     //Second variable B :
diff --git a/scilab/modules/arnoldi/tests/nonreg_tests/bug_12139.dia.ref b/scilab/modules/arnoldi/tests/nonreg_tests/bug_12139.dia.ref
new file mode 100644 (file)
index 0000000..6973e9e
--- /dev/null
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- Non-regression test for bug 12139 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12139
+//
+// <-- Short Description -->
+//    eigs run out of memory for sparse matrices.
+// =============================================================================
+A = speye(100000,100000);
+assert_checkalmostequal(eigs(A), [1;1;1;1;1;1]);
diff --git a/scilab/modules/arnoldi/tests/nonreg_tests/bug_12139.tst b/scilab/modules/arnoldi/tests/nonreg_tests/bug_12139.tst
new file mode 100644 (file)
index 0000000..99752c1
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Sylvestre Ledru
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- CLI SHELL MODE -->
+
+// <-- Non-regression test for bug 12139 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12139
+//
+// <-- Short Description -->
+//    eigs run out of memory for sparse matrices.
+// =============================================================================
+
+A = speye(100000,100000);
+assert_checkalmostequal(eigs(A), [1;1;1;1;1;1]);