From d806c30ee655f274e75936d90cde43a2605a779e Mon Sep 17 00:00:00 2001 From: Vitor Hideyoshi Date: Fri, 2 Apr 2021 23:25:35 -0300 Subject: [PATCH] v1.3.3-1 - Fixed Eigen function --- yoshi-seals1.3.3-1/Seals/eigen/eigen.py | 16 ++++++++-------- .../build/lib/Seals/eigen/eigen.py | 16 ++++++++-------- .../dist/yoshi-seals-1.3.3.post1.tar.gz | Bin 6526 -> 6537 bytes .../yoshi_seals-1.3.3.post1-py3-none-any.whl | Bin 17871 -> 17874 bytes 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/yoshi-seals1.3.3-1/Seals/eigen/eigen.py b/yoshi-seals1.3.3-1/Seals/eigen/eigen.py index 52c62f2..3adf9b3 100644 --- a/yoshi-seals1.3.3-1/Seals/eigen/eigen.py +++ b/yoshi-seals1.3.3-1/Seals/eigen/eigen.py @@ -21,11 +21,11 @@ import numpy as np def eigen(a): - k = 0 + b = np.random.rand(a.shape[0],a.shape[1]) l = np.ones((a.shape[0])) + k = 0 at = a #variavel temporaria para A - b = np.random.rand(a.shape[0],a.shape[1]) while (k < at.shape[0]): @@ -34,21 +34,21 @@ def eigen(a): ctrl = 0 - while (ctrl != l[k]): + while abs(ctrl - l[k]) > 10**(-8): ctrl = l[k] u = at.dot(u) l[k] = max(u.min(), u.max(), key=abs) u = u/l[k] - alpha = 0.999*l[k] - - t = np.random.rand(a.shape[0],1) + alpha = .999*l[k] b[k] = b[k]/max(b[k].min(), b[k].max(), key=abs) - t = l/max(l.min(), l.max(), key=abs) + t = np.random.rand(a.shape[0],1) + t = t/max(t.min(), t.max(), key=abs) + + while not (np.allclose(b[k],t,atol=10**(-8))): - while not (np.allclose(b[k],t,atol=10**(-17))): t = b[k].copy() b[k] = np.linalg.solve((a - alpha*np.identity(a.shape[0])),((l[k]-alpha)*t)) b[k] = b[k]/max(b[k].min(), b[k].max(), key=abs) diff --git a/yoshi-seals1.3.3-1/build/lib/Seals/eigen/eigen.py b/yoshi-seals1.3.3-1/build/lib/Seals/eigen/eigen.py index 52c62f2..3adf9b3 100644 --- a/yoshi-seals1.3.3-1/build/lib/Seals/eigen/eigen.py +++ b/yoshi-seals1.3.3-1/build/lib/Seals/eigen/eigen.py @@ -21,11 +21,11 @@ import numpy as np def eigen(a): - k = 0 + b = np.random.rand(a.shape[0],a.shape[1]) l = np.ones((a.shape[0])) + k = 0 at = a #variavel temporaria para A - b = np.random.rand(a.shape[0],a.shape[1]) while (k < at.shape[0]): @@ -34,21 +34,21 @@ def eigen(a): ctrl = 0 - while (ctrl != l[k]): + while abs(ctrl - l[k]) > 10**(-8): ctrl = l[k] u = at.dot(u) l[k] = max(u.min(), u.max(), key=abs) u = u/l[k] - alpha = 0.999*l[k] - - t = np.random.rand(a.shape[0],1) + alpha = .999*l[k] b[k] = b[k]/max(b[k].min(), b[k].max(), key=abs) - t = l/max(l.min(), l.max(), key=abs) + t = np.random.rand(a.shape[0],1) + t = t/max(t.min(), t.max(), key=abs) + + while not (np.allclose(b[k],t,atol=10**(-8))): - while not (np.allclose(b[k],t,atol=10**(-17))): t = b[k].copy() b[k] = np.linalg.solve((a - alpha*np.identity(a.shape[0])),((l[k]-alpha)*t)) b[k] = b[k]/max(b[k].min(), b[k].max(), key=abs) diff --git a/yoshi-seals1.3.3-1/dist/yoshi-seals-1.3.3.post1.tar.gz b/yoshi-seals1.3.3-1/dist/yoshi-seals-1.3.3.post1.tar.gz index cb4c4c783ddb03de69c70fdb94bfc637e82b15ce..e6bfdd0940149fd56ef6b51c793326854182fde6 100644 GIT binary patch delta 6038 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 u#8YOu6E(I1{$7?Gzqb{Y$2~-qnw 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 BjS&C<