changeset 43:4f3bc35195ce

Fixed bug in GAP.py Generate_Data_Known_Omega(): when n is a number, norm() fails
author nikcleju
date Mon, 28 Nov 2011 13:51:16 +0000
parents 56a35edac462
children 0b469b7ea552
files pyCSalgos/GAP/GAP.py
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/pyCSalgos/GAP/GAP.py	Mon Nov 28 13:39:49 2011 +0000
+++ b/pyCSalgos/GAP/GAP.py	Mon Nov 28 13:51:16 2011 +0000
@@ -119,10 +119,15 @@
     y[:,i]  = numpy.dot(M, x0[:,i])
 
     # Add noise
-    t_norm = numpy.linalg.norm(y[:,i],2);
-    n = numpy.squeeze(rng.randn(m, 1));
-    y[:,i] = y[:,i] + noiselevel * t_norm * n / numpy.linalg.norm(n, 2);
-    realnoise[:,i] = noiselevel * t_norm * n / numpy.linalg.norm(n, 2)
+    t_norm = numpy.linalg.norm(y[:,i],2)
+    n = numpy.squeeze(rng.randn(m, 1))
+    # In case n i just a number, nuit an array, norm() fails
+    if n.ndim == 0:
+      nnorm = abs(n)
+    else:
+      nnorm = numpy.linalg.norm(n, 2);
+    y[:,i] = y[:,i] + noiselevel * t_norm * n / nnorm
+    realnoise[:,i] = noiselevel * t_norm * n / nnorm
   #end
 
   return x0,y,M,LambdaMat,realnoise