From eb702b3c903f2e17ab074382df1f2c26884f2551 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Tue, 25 Feb 2014 16:43:08 +0000 Subject: [PATCH] JAL-1454 increase max for tqli iterations and throw exception rather than call System.exit() --- src/jalview/math/Matrix.java | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/jalview/math/Matrix.java b/src/jalview/math/Matrix.java index 057bdbf..8d95203 100755 --- a/src/jalview/math/Matrix.java +++ b/src/jalview/math/Matrix.java @@ -48,6 +48,12 @@ public class Matrix public double[] e; // off diagonal /** + * maximum number of iterations for tqli + * + */ + int maxIter = 45; // fudge - add 15 iterations, just in case + + /** * Creates a new Matrix object. * * @param value @@ -342,11 +348,11 @@ public class Matrix } } } - + /** * DOCUMENT ME! */ - public void tqli() + public void tqli() throws Exception { int n = rows; @@ -393,10 +399,9 @@ public class Matrix { iter++; - if (iter == 30) + if (iter == maxIter) { - System.err.print("Too many iterations in tqli"); - System.exit(0); // JBPNote - should this really be here ??? + throw new Exception("Too many iterations in tqli ("+maxIter+")"); } else { @@ -596,7 +601,7 @@ public class Matrix /** * DOCUMENT ME! */ - public void tqli2() + public void tqli2() throws Exception { int n = rows; @@ -643,10 +648,9 @@ public class Matrix { iter++; - if (iter == 30) + if (iter == maxIter) { - System.err.print("Too many iterations in tqli"); - System.exit(0); // JBPNote - same as above - not a graceful exit! + throw new Exception ("Too many iterations in tqli2 (max is "+maxIter+")"); } else { @@ -780,7 +784,7 @@ public class Matrix * @param args * DOCUMENT ME! */ - public static void main(String[] args) + public static void main(String[] args) throws Exception { int n = Integer.parseInt(args[0]); double[][] in = new double[n][n]; -- 1.7.10.2