Skip to content

Instantly share code, notes, and snippets.

@clyce
Created March 2, 2016 10:56
Show Gist options
  • Save clyce/be512d39ca4c36b7f681 to your computer and use it in GitHub Desktop.
Save clyce/be512d39ca4c36b7f681 to your computer and use it in GitHub Desktop.
# Edited based on Scikit-learn
"""Affinity Propagation clustering algorithm."""
# Author: Alexandre Gramfort alexandre.gramfort@inria.fr
# Gael Varoquaux gael.varoquaux@normalesup.org
# License: BSD 3 clause
import numpy as np
from ..base import BaseEstimator, ClusterMixin
from ..utils import as_float_array, check_array
from ..utils.validation import check_is_fitted
from ..metrics import euclidean_distances
from ..metrics import pairwise_distances_argmin
def affinity_propagation(S, preference=None, convergence_iter=15, max_iter=200,
damping=0.5, copy=True, verbose=False,
return_n_iter=False):
"""Perform Affinity Propagation Clustering of data
Read more in the :ref:`User Guide <affinity_propagation>`.
Parameters
----------
S : array-like, shape (n_samples, n_samples)
Matrix of similarities between points
preference : array-like, shape (n_samples,) or float, optional
Preferences for each point - points with larger values of
preferences are more likely to be chosen as exemplars. The number of
exemplars, i.e. of clusters, is influenced by the input preferences
value. If the preferences are not passed as arguments, they will be
set to the median of the input similarities (resulting in a moderate
number of clusters). For a smaller amount of clusters, this can be set
to the minimum value of the similarities.
convergence_iter : int, optional, default: 15
Number of iterations with no change in the number
of estimated clusters that stops the convergence.
max_iter : int, optional, default: 200
Maximum number of iterations
damping : float, optional, default: 0.5
Damping factor between 0.5 and 1.
copy : boolean, optional, default: True
If copy is False, the affinity matrix is modified inplace by the
algorithm, for memory efficiency
verbose : boolean, optional, default: False
The verbosity level
return_n_iter : bool, default False
Whether or not to return the number of iterations.
Returns
-------
cluster_centers_indices : array, shape (n_clusters,)
index of clusters centers
labels : array, shape (n_samples,)
cluster labels for each point
n_iter : int
number of iterations run. Returned only if `return_n_iter` is
set to True.
Notes
-----
See examples/cluster/plot_affinity_propagation.py for an example.
References
----------
Brendan J. Frey and Delbert Dueck, "Clustering by Passing Messages
Between Data Points", Science Feb. 2007
"""
S = as_float_array(S, copy=copy)
print "s"
print S
n_samples = S.shape[0]
if S.shape[0] != S.shape[1]:
raise ValueError("S must be a square array (shape=%s)" % repr(S.shape))
if preference is None:
preference = np.median(S)
if damping < 0.5 or damping >= 1:
raise ValueError('damping must be >= 0.5 and < 1')
random_state = np.random.RandomState(0)
# Place preference on the diagonal of S
S.flat[::(n_samples + 1)] = preference
print "s"
print S
A = np.zeros((n_samples, n_samples))
R = np.zeros((n_samples, n_samples)) # Initialize messages
# Intermediate results
tmp = np.zeros((n_samples, n_samples))
# Remove degeneracies
S += ((np.finfo(np.double).eps * S + np.finfo(np.double).tiny * 100) *
random_state.randn(n_samples, n_samples))
# Execute parallel affinity propagation updates
e = np.zeros((n_samples, convergence_iter))
ind = np.arange(n_samples)
for it in range(max_iter):
# tmp = A + S; compute responsibilities
np.add(A, S, tmp)
print("init")
print(tmp)
I = np.argmax(tmp, axis=1)
Y = tmp[ind, I] # np.max(A + S, axis=1)
tmp[ind, I] = -np.inf
Y2 = np.max(tmp, axis=1)
# tmp = Rnew
np.subtract(S, Y[:, None], tmp)
tmp[ind, I] = S[ind, I] - Y2
print("r")
print(tmp)
# Damping
tmp *= 1 - damping
R *= damping
R += tmp
print("real-r")
print(R)
# tmp = Rp; compute availabilities
np.maximum(R, 0, tmp)
tmp.flat[::n_samples + 1] = R.flat[::n_samples + 1]
print("a*")
print(tmp)
print("tmp")
print(np.sum(tmp, axis=0))
# tmp = -Anew
tmp -= np.sum(tmp, axis=0)
dA = np.diag(tmp).copy()
tmp.clip(0, np.inf, tmp)
tmp.flat[::n_samples + 1] = dA
print("a")
print(tmp)
# Damping
tmp *= 1 - damping
A *= damping
A -= tmp
print("real-a")
print(A)
# Check for convergence
E = (np.diag(A) + np.diag(R)) > 0
print("E")
print(E)
e[:, it % convergence_iter] = E
K = np.sum(E, axis=0)
if it >= convergence_iter:
se = np.sum(e, axis=1)
unconverged = (np.sum((se == convergence_iter) + (se == 0))
!= n_samples)
if (not unconverged and (K > 0)) or (it == max_iter):
if verbose:
print("Converged after %d iterations." % it)
break
else:
if verbose:
print("Did not converge")
print(np.diag(A+R))
I = np.where(np.diag(A + R) > 0)[0]
print(I)
K = I.size # Identify exemplars
if K > 0:
c = np.argmax(S[:, I], axis=1)
c[I] = np.arange(K) # Identify clusters
# Refine the final set of exemplars and clusters and return results
for k in range(K):
ii = np.where(c == k)[0]
j = np.argmax(np.sum(S[ii[:, np.newaxis], ii], axis=0))
I[k] = ii[j]
c = np.argmax(S[:, I], axis=1)
c[I] = np.arange(K)
labels = I[c]
# Reduce labels to a sorted, gapless, list
cluster_centers_indices = np.unique(labels)
labels = np.searchsorted(cluster_centers_indices, labels)
else:
labels = np.empty((n_samples, 1))
cluster_centers_indices = None
labels.fill(np.nan)
if return_n_iter:
return cluster_centers_indices, labels, it + 1
else:
return cluster_centers_indices, labels
###############################################################################
class AffinityPropagation(BaseEstimator, ClusterMixin):
"""Perform Affinity Propagation Clustering of data.
Read more in the :ref:`User Guide <affinity_propagation>`.
Parameters
----------
damping : float, optional, default: 0.5
Damping factor between 0.5 and 1.
convergence_iter : int, optional, default: 15
Number of iterations with no change in the number
of estimated clusters that stops the convergence.
max_iter : int, optional, default: 200
Maximum number of iterations.
copy : boolean, optional, default: True
Make a copy of input data.
preference : array-like, shape (n_samples,) or float, optional
Preferences for each point - points with larger values of
preferences are more likely to be chosen as exemplars. The number
of exemplars, ie of clusters, is influenced by the input
preferences value. If the preferences are not passed as arguments,
they will be set to the median of the input similarities.
affinity : string, optional, default=``euclidean``
Which affinity to use. At the moment ``precomputed`` and
``euclidean`` are supported. ``euclidean`` uses the
negative squared euclidean distance between points.
verbose : boolean, optional, default: False
Whether to be verbose.
Attributes
----------
cluster_centers_indices_ : array, shape (n_clusters,)
Indices of cluster centers
cluster_centers_ : array, shape (n_clusters, n_features)
Cluster centers (if affinity != ``precomputed``).
labels_ : array, shape (n_samples,)
Labels of each point
affinity_matrix_ : array, shape (n_samples, n_samples)
Stores the affinity matrix used in ``fit``.
n_iter_ : int
Number of iterations taken to converge.
Notes
-----
See examples/cluster/plot_affinity_propagation.py for an example.
The algorithmic complexity of affinity propagation is quadratic
in the number of points.
References
----------
Brendan J. Frey and Delbert Dueck, "Clustering by Passing Messages
Between Data Points", Science Feb. 2007
"""
def __init__(self, damping=.5, max_iter=200, convergence_iter=15,
copy=True, preference=None, affinity='euclidean',
verbose=False):
self.damping = damping
self.max_iter = max_iter
self.convergence_iter = convergence_iter
self.copy = copy
self.verbose = verbose
self.preference = preference
self.affinity = affinity
@property
def _pairwise(self):
return self.affinity == "precomputed"
def fit(self, X, y=None):
""" Create affinity matrix from negative euclidean distances, then
apply affinity propagation clustering.
Parameters
----------
X: array-like, shape (n_samples, n_features) or (n_samples, n_samples)
Data matrix or, if affinity is ``precomputed``, matrix of
similarities / affinities.
"""
X = check_array(X, accept_sparse='csr')
if self.affinity == "precomputed":
self.affinity_matrix_ = X
elif self.affinity == "euclidean":
self.affinity_matrix_ = -euclidean_distances(X, squared=True)
else:
raise ValueError("Affinity must be 'precomputed' or "
"'euclidean'. Got %s instead"
% str(self.affinity))
self.cluster_centers_indices_, self.labels_, self.n_iter_ = \
affinity_propagation(
self.affinity_matrix_, self.preference, max_iter=self.max_iter,
convergence_iter=self.convergence_iter, damping=self.damping,
copy=self.copy, verbose=self.verbose, return_n_iter=True)
if self.affinity != "precomputed":
self.cluster_centers_ = X[self.cluster_centers_indices_].copy()
return self
def predict(self, X):
"""Predict the closest cluster each sample in X belongs to.
Parameters
----------
X : {array-like, sparse matrix}, shape (n_samples, n_features)
New data to predict.
Returns
-------
labels : array, shape (n_samples,)
Index of the cluster each sample belongs to.
"""
check_is_fitted(self, "cluster_centers_indices_")
if not hasattr(self, "cluster_centers_"):
raise ValueError("Predict method is not supported when "
"affinity='precomputed'.")
return pairwise_distances_argmin(X, self.cluster_centers_)
@clyce
Copy link
Author

clyce commented Mar 2, 2016

Output when input [[1,1],[1,2],[1,10],[1,11]]

s
[[  -0.   -1.  -81. -100.]
 [  -1.   -0.  -64.  -81.]
 [ -81.  -64.   -0.   -1.]
 [-100.  -81.   -1.   -0.]]
s
[[ -32.5   -1.   -81.  -100. ]
 [  -1.   -32.5  -64.   -81. ]
 [ -81.   -64.   -32.5   -1. ]
 [-100.   -81.    -1.   -32.5]]
init
[[ -32.5   -1.   -81.  -100. ]
 [  -1.   -32.5  -64.   -81. ]
 [ -81.   -64.   -32.5   -1. ]
 [-100.   -81.    -1.   -32.5]]
r
[[-31.5  31.5 -80.  -99. ]
 [ 31.5 -31.5 -63.  -80. ]
 [-80.  -63.  -31.5  31.5]
 [-99.  -80.   31.5 -31.5]]
real-r
[[-15.75  15.75 -40.   -49.5 ]
 [ 15.75 -15.75 -31.5  -40.  ]
 [-40.   -31.5  -15.75  15.75]
 [-49.5  -40.    15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -1.06581410e-14   1.06581410e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.06581410e-14   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  1.06581410e-14   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  7.87500000e+00  -7.87500000e+00   0.00000000e+00   0.00000000e+00]
 [ -7.87500000e+00   7.87500000e+00   0.00000000e+00   0.00000000e+00]
 [ -5.32907052e-15   0.00000000e+00   7.87500000e+00  -7.87500000e+00]
 [ -5.32907052e-15   0.00000000e+00  -7.87500000e+00   7.87500000e+00]]
E
[False False False False]
init
[[ -24.625   -8.875  -81.    -100.   ]
 [  -8.875  -24.625  -64.     -81.   ]
 [ -81.     -64.     -24.625   -8.875]
 [-100.     -81.      -8.875  -24.625]]
r
[[-23.625  23.625 -72.125 -91.125]
 [ 23.625 -23.625 -55.125 -72.125]
 [-72.125 -55.125 -23.625  23.625]
 [-91.125 -72.125  23.625 -23.625]]
real-r
[[-19.6875  19.6875 -56.0625 -70.3125]
 [ 19.6875 -19.6875 -43.3125 -56.0625]
 [-56.0625 -43.3125 -19.6875  19.6875]
 [-70.3125 -56.0625  19.6875 -19.6875]]
a*
[[-19.6875  19.6875   0.       0.    ]
 [ 19.6875 -19.6875   0.       0.    ]
 [  0.       0.     -19.6875  19.6875]
 [  0.       0.      19.6875 -19.6875]]
tmp
[ -1.77635684e-14   1.77635684e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.96875000e+01   1.96875000e+01   0.00000000e+00   0.00000000e+00]
 [  1.96875000e+01  -1.96875000e+01   0.00000000e+00   0.00000000e+00]
 [  1.77635684e-14   0.00000000e+00  -1.96875000e+01   1.96875000e+01]
 [  1.77635684e-14   0.00000000e+00   1.96875000e+01  -1.96875000e+01]]
real-a
[[  1.37812500e+01  -1.37812500e+01   0.00000000e+00   0.00000000e+00]
 [ -1.37812500e+01   1.37812500e+01   0.00000000e+00   0.00000000e+00]
 [ -1.15463195e-14   0.00000000e+00   1.37812500e+01  -1.37812500e+01]
 [ -1.15463195e-14   0.00000000e+00  -1.37812500e+01   1.37812500e+01]]
E
[False False False False]
init
[[ -18.71875  -14.78125  -81.      -100.     ]
 [ -14.78125  -18.71875  -64.       -81.     ]
 [ -81.       -64.       -18.71875  -14.78125]
 [-100.       -81.       -14.78125  -18.71875]]
r
[[-17.71875  17.71875 -66.21875 -85.21875]
 [ 17.71875 -17.71875 -49.21875 -66.21875]
 [-66.21875 -49.21875 -17.71875  17.71875]
 [-85.21875 -66.21875  17.71875 -17.71875]]
real-r
[[-18.703125  18.703125 -61.140625 -77.765625]
 [ 18.703125 -18.703125 -46.265625 -61.140625]
 [-61.140625 -46.265625 -18.703125  18.703125]
 [-77.765625 -61.140625  18.703125 -18.703125]]
a*
[[-18.703125  18.703125   0.         0.      ]
 [ 18.703125 -18.703125   0.         0.      ]
 [  0.         0.       -18.703125  18.703125]
 [  0.         0.        18.703125 -18.703125]]
tmp
[ -2.48689958e-14   2.48689958e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.87031250e+01   1.87031250e+01   0.00000000e+00   0.00000000e+00]
 [  1.87031250e+01  -1.87031250e+01   0.00000000e+00   0.00000000e+00]
 [  2.48689958e-14   0.00000000e+00  -1.87031250e+01   1.87031250e+01]
 [  2.48689958e-14   0.00000000e+00   1.87031250e+01  -1.87031250e+01]]
real-a
[[  1.62421875e+01  -1.62421875e+01   0.00000000e+00   0.00000000e+00]
 [ -1.62421875e+01   1.62421875e+01   0.00000000e+00   0.00000000e+00]
 [ -1.82076576e-14   0.00000000e+00   1.62421875e+01  -1.62421875e+01]
 [ -1.82076576e-14   0.00000000e+00  -1.62421875e+01   1.62421875e+01]]
E
[False False False False]
init
[[ -16.2578125  -17.2421875  -81.        -100.       ]
 [ -17.2421875  -16.2578125  -64.         -81.       ]
 [ -81.         -64.         -16.2578125  -17.2421875]
 [-100.         -81.         -17.2421875  -16.2578125]]
r
[[-15.2578125  15.2578125 -64.7421875 -83.7421875]
 [ 15.2578125 -15.2578125 -47.7421875 -64.7421875]
 [-64.7421875 -47.7421875 -15.2578125  15.2578125]
 [-83.7421875 -64.7421875  15.2578125 -15.2578125]]
real-r
[[-16.98046875  16.98046875 -62.94140625 -80.75390625]
 [ 16.98046875 -16.98046875 -47.00390625 -62.94140625]
 [-62.94140625 -47.00390625 -16.98046875  16.98046875]
 [-80.75390625 -62.94140625  16.98046875 -16.98046875]]
a*
[[-16.98046875  16.98046875   0.           0.        ]
 [ 16.98046875 -16.98046875   0.           0.        ]
 [  0.           0.         -16.98046875  16.98046875]
 [  0.           0.          16.98046875 -16.98046875]]
tmp
[ -3.19744231e-14   3.19744231e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.69804687e+01   1.69804687e+01   0.00000000e+00   0.00000000e+00]
 [  1.69804688e+01  -1.69804688e+01   0.00000000e+00   0.00000000e+00]
 [  3.19744231e-14   0.00000000e+00  -1.69804688e+01   1.69804688e+01]
 [  3.19744231e-14   0.00000000e+00   1.69804688e+01  -1.69804688e+01]]
real-a
[[  1.66113281e+01  -1.66113281e+01   0.00000000e+00   0.00000000e+00]
 [ -1.66113281e+01   1.66113281e+01   0.00000000e+00   0.00000000e+00]
 [ -2.50910404e-14   0.00000000e+00   1.66113281e+01  -1.66113281e+01]
 [ -2.50910404e-14   0.00000000e+00  -1.66113281e+01   1.66113281e+01]]
E
[False False False False]
init
[[ -15.88867188  -17.61132812  -81.         -100.        ]
 [ -17.61132813  -15.88867187  -64.          -81.        ]
 [ -81.          -64.          -15.88867188  -17.61132812]
 [-100.          -81.          -17.61132812  -15.88867188]]
r
[[-14.88867188  14.88867188 -65.11132812 -84.11132813]
 [ 14.88867187 -14.88867187 -48.11132813 -65.11132813]
 [-65.11132812 -48.11132812 -14.88867188  14.88867188]
 [-84.11132813 -65.11132812  14.88867188 -14.88867188]]
real-r
[[-15.93457031  15.93457031 -64.02636719 -82.43261719]
 [ 15.93457031 -15.93457031 -47.55761719 -64.02636719]
 [-64.02636719 -47.55761719 -15.93457031  15.93457031]
 [-82.43261719 -64.02636719  15.93457031 -15.93457031]]
a*
[[-15.93457031  15.93457031   0.           0.        ]
 [ 15.93457031 -15.93457031   0.           0.        ]
 [  0.           0.         -15.93457031  15.93457031]
 [  0.           0.          15.93457031 -15.93457031]]
tmp
[ -3.90798505e-14   3.90798505e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.59345703e+01   1.59345703e+01   0.00000000e+00   0.00000000e+00]
 [  1.59345703e+01  -1.59345703e+01   0.00000000e+00   0.00000000e+00]
 [  3.90798505e-14   0.00000000e+00  -1.59345703e+01   1.59345703e+01]
 [  3.90798505e-14   0.00000000e+00   1.59345703e+01  -1.59345703e+01]]
real-a
[[  1.62729492e+01  -1.62729492e+01   0.00000000e+00   0.00000000e+00]
 [ -1.62729492e+01   1.62729492e+01   0.00000000e+00   0.00000000e+00]
 [ -3.20854454e-14   0.00000000e+00   1.62729492e+01  -1.62729492e+01]
 [ -3.20854454e-14   0.00000000e+00  -1.62729492e+01   1.62729492e+01]]
E
[ True  True  True  True]
init
[[ -16.22705078  -17.27294922  -81.         -100.        ]
 [ -17.27294922  -16.22705078  -64.          -81.        ]
 [ -81.          -64.          -16.22705078  -17.27294922]
 [-100.          -81.          -17.27294922  -16.22705078]]
r
[[-15.22705078  15.22705078 -64.77294922 -83.77294922]
 [ 15.22705078 -15.22705078 -47.77294922 -64.77294922]
 [-64.77294922 -47.77294922 -15.22705078  15.22705078]
 [-83.77294922 -64.77294922  15.22705078 -15.22705078]]
real-r
[[-15.58081055  15.58081055 -64.3996582  -83.1027832 ]
 [ 15.58081055 -15.58081055 -47.6652832  -64.3996582 ]
 [-64.3996582  -47.6652832  -15.58081055  15.58081055]
 [-83.1027832  -64.3996582   15.58081055 -15.58081055]]
a*
[[-15.58081055  15.58081055   0.           0.        ]
 [ 15.58081055 -15.58081055   0.           0.        ]
 [  0.           0.         -15.58081055  15.58081055]
 [  0.           0.          15.58081055 -15.58081055]]
tmp
[ -4.61852778e-14   4.61852778e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.55808105e+01   1.55808105e+01   0.00000000e+00   0.00000000e+00]
 [  1.55808105e+01  -1.55808105e+01   0.00000000e+00   0.00000000e+00]
 [  4.61852778e-14   0.00000000e+00  -1.55808105e+01   1.55808105e+01]
 [  4.61852778e-14   0.00000000e+00   1.55808105e+01  -1.55808105e+01]]
real-a
[[  1.59268799e+01  -1.59268799e+01   0.00000000e+00   0.00000000e+00]
 [ -1.59268799e+01   1.59268799e+01   0.00000000e+00   0.00000000e+00]
 [ -3.91353616e-14   0.00000000e+00   1.59268799e+01  -1.59268799e+01]
 [ -3.91353616e-14   0.00000000e+00  -1.59268799e+01   1.59268799e+01]]
E
[ True  True  True  True]
init
[[ -16.57312012  -16.92687988  -81.         -100.        ]
 [ -16.92687988  -16.57312012  -64.          -81.        ]
 [ -81.          -64.          -16.57312012  -16.92687988]
 [-100.          -81.          -16.92687988  -16.57312012]]
r
[[-15.57312012  15.57312012 -64.42687988 -83.42687988]
 [ 15.57312012 -15.57312012 -47.42687988 -64.42687988]
 [-64.42687988 -47.42687988 -15.57312012  15.57312012]
 [-83.42687988 -64.42687988  15.57312012 -15.57312012]]
real-r
[[-15.57696533  15.57696533 -64.41326904 -83.26483154]
 [ 15.57696533 -15.57696533 -47.54608154 -64.41326904]
 [-64.41326904 -47.54608154 -15.57696533  15.57696533]
 [-83.26483154 -64.41326904  15.57696533 -15.57696533]]
a*
[[-15.57696533  15.57696533   0.           0.        ]
 [ 15.57696533 -15.57696533   0.           0.        ]
 [  0.           0.         -15.57696533  15.57696533]
 [  0.           0.          15.57696533 -15.57696533]]
tmp
[ -5.32907052e-14   5.32907052e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.55769653e+01   1.55769653e+01   0.00000000e+00   0.00000000e+00]
 [  1.55769653e+01  -1.55769653e+01   0.00000000e+00   0.00000000e+00]
 [  5.32907052e-14   0.00000000e+00  -1.55769653e+01   1.55769653e+01]
 [  5.32907052e-14   0.00000000e+00   1.55769653e+01  -1.55769653e+01]]
real-a
[[  1.57519226e+01  -1.57519226e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57519226e+01   1.57519226e+01   0.00000000e+00   0.00000000e+00]
 [ -4.62130334e-14   0.00000000e+00   1.57519226e+01  -1.57519226e+01]
 [ -4.62130334e-14   0.00000000e+00  -1.57519226e+01   1.57519226e+01]]
E
[ True  True  True  True]
init
[[ -16.74807739  -16.75192261  -81.         -100.        ]
 [ -16.75192261  -16.74807739  -64.          -81.        ]
 [ -81.          -64.          -16.74807739  -16.75192261]
 [-100.          -81.          -16.75192261  -16.74807739]]
r
[[-15.74807739  15.74807739 -64.25192261 -83.25192261]
 [ 15.74807739 -15.74807739 -47.25192261 -64.25192261]
 [-64.25192261 -47.25192261 -15.74807739  15.74807739]
 [-83.25192261 -64.25192261  15.74807739 -15.74807739]]
real-r
[[-15.66252136  15.66252136 -64.33259583 -83.25837708]
 [ 15.66252136 -15.66252136 -47.39900208 -64.33259583]
 [-64.33259583 -47.39900208 -15.66252136  15.66252136]
 [-83.25837708 -64.33259583  15.66252136 -15.66252136]]
a*
[[-15.66252136  15.66252136   0.           0.        ]
 [ 15.66252136 -15.66252136   0.           0.        ]
 [  0.           0.         -15.66252136  15.66252136]
 [  0.           0.          15.66252136 -15.66252136]]
tmp
[ -6.03961325e-14   6.03961325e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.56625214e+01   1.56625214e+01   0.00000000e+00   0.00000000e+00]
 [  1.56625214e+01  -1.56625214e+01   0.00000000e+00   0.00000000e+00]
 [  6.03961325e-14   0.00000000e+00  -1.56625214e+01   1.56625214e+01]
 [  6.03961325e-14   0.00000000e+00   1.56625214e+01  -1.56625214e+01]]
real-a
[[  1.57072220e+01  -1.57072220e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57072220e+01   1.57072220e+01   0.00000000e+00   0.00000000e+00]
 [ -5.33045830e-14   0.00000000e+00   1.57072220e+01  -1.57072220e+01]
 [ -5.33045830e-14   0.00000000e+00  -1.57072220e+01   1.57072220e+01]]
E
[ True  True  True  True]
init
[[ -16.79277802  -16.70722198  -81.         -100.        ]
 [ -16.70722198  -16.79277802  -64.          -81.        ]
 [ -81.          -64.          -16.79277802  -16.70722198]
 [-100.          -81.          -16.70722198  -16.79277802]]
r
[[-15.79277802  15.79277802 -64.29277802 -83.29277802]
 [ 15.79277802 -15.79277802 -47.29277802 -64.29277802]
 [-64.29277802 -47.29277802 -15.79277802  15.79277802]
 [-83.29277802 -64.29277802  15.79277802 -15.79277802]]
real-r
[[-15.72764969  15.72764969 -64.31268692 -83.27557755]
 [ 15.72764969 -15.72764969 -47.34589005 -64.31268692]
 [-64.31268692 -47.34589005 -15.72764969  15.72764969]
 [-83.27557755 -64.31268692  15.72764969 -15.72764969]]
a*
[[-15.72764969  15.72764969   0.           0.        ]
 [ 15.72764969 -15.72764969   0.           0.        ]
 [  0.           0.         -15.72764969  15.72764969]
 [  0.           0.          15.72764969 -15.72764969]]
tmp
[ -6.75015599e-14   6.75015599e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.57276497e+01   1.57276497e+01   0.00000000e+00   0.00000000e+00]
 [  1.57276497e+01  -1.57276497e+01   0.00000000e+00   0.00000000e+00]
 [  6.75015599e-14   0.00000000e+00  -1.57276497e+01   1.57276497e+01]
 [  6.75015599e-14   0.00000000e+00   1.57276497e+01  -1.57276497e+01]]
real-a
[[  1.57174358e+01  -1.57174358e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57174358e+01   1.57174358e+01   0.00000000e+00   0.00000000e+00]
 [ -6.04030714e-14   0.00000000e+00   1.57174358e+01  -1.57174358e+01]
 [ -6.04030714e-14   0.00000000e+00  -1.57174358e+01   1.57174358e+01]]
E
[False False False False]
init
[[ -16.78256416  -16.71743584  -81.         -100.        ]
 [ -16.71743584  -16.78256416  -64.          -81.        ]
 [ -81.          -64.          -16.78256416  -16.71743584]
 [-100.          -81.          -16.71743584  -16.78256416]]
r
[[-15.78256416  15.78256416 -64.28256416 -83.28256416]
 [ 15.78256416 -15.78256416 -47.28256416 -64.28256416]
 [-64.28256416 -47.28256416 -15.78256416  15.78256416]
 [-83.28256416 -64.28256416  15.78256416 -15.78256416]]
real-r
[[-15.75510693  15.75510693 -64.29762554 -83.27907085]
 [ 15.75510693 -15.75510693 -47.3142271  -64.29762554]
 [-64.29762554 -47.3142271  -15.75510693  15.75510693]
 [-83.27907085 -64.29762554  15.75510693 -15.75510693]]
a*
[[-15.75510693  15.75510693   0.           0.        ]
 [ 15.75510693 -15.75510693   0.           0.        ]
 [  0.           0.         -15.75510693  15.75510693]
 [  0.           0.          15.75510693 -15.75510693]]
tmp
[ -7.46069873e-14   7.46069873e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.57551069e+01   1.57551069e+01   0.00000000e+00   0.00000000e+00]
 [  1.57551069e+01  -1.57551069e+01   0.00000000e+00   0.00000000e+00]
 [  7.46069873e-14   0.00000000e+00  -1.57551069e+01   1.57551069e+01]
 [  7.46069873e-14   0.00000000e+00   1.57551069e+01  -1.57551069e+01]]
real-a
[[  1.57362714e+01  -1.57362714e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57362714e+01   1.57362714e+01   0.00000000e+00   0.00000000e+00]
 [ -6.75050293e-14   0.00000000e+00   1.57362714e+01  -1.57362714e+01]
 [ -6.75050293e-14   0.00000000e+00  -1.57362714e+01   1.57362714e+01]]
E
[False False False False]
init
[[ -16.76372862  -16.73627138  -81.         -100.        ]
 [ -16.73627138  -16.76372862  -64.          -81.        ]
 [ -81.          -64.          -16.76372862  -16.73627138]
 [-100.          -81.          -16.73627138  -16.76372862]]
r
[[-15.76372862  15.76372862 -64.26372862 -83.26372862]
 [ 15.76372862 -15.76372862 -47.26372862 -64.26372862]
 [-64.26372862 -47.26372862 -15.76372862  15.76372862]
 [-83.26372862 -64.26372862  15.76372862 -15.76372862]]
real-r
[[-15.75941777  15.75941777 -64.28067708 -83.27139974]
 [ 15.75941777 -15.75941777 -47.28897786 -64.28067708]
 [-64.28067708 -47.28897786 -15.75941777  15.75941777]
 [-83.27139974 -64.28067708  15.75941777 -15.75941777]]
a*
[[-15.75941777  15.75941777   0.           0.        ]
 [ 15.75941777 -15.75941777   0.           0.        ]
 [  0.           0.         -15.75941777  15.75941777]
 [  0.           0.          15.75941777 -15.75941777]]
tmp
[ -8.17124146e-14   8.17124146e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.57594178e+01   1.57594178e+01   0.00000000e+00   0.00000000e+00]
 [  1.57594178e+01  -1.57594178e+01   0.00000000e+00   0.00000000e+00]
 [  8.17124146e-14   0.00000000e+00  -1.57594178e+01   1.57594178e+01]
 [  8.17124146e-14   0.00000000e+00   1.57594178e+01  -1.57594178e+01]]
real-a
[[  1.57478446e+01  -1.57478446e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57478446e+01   1.57478446e+01   0.00000000e+00   0.00000000e+00]
 [ -7.46087220e-14   0.00000000e+00   1.57478446e+01  -1.57478446e+01]
 [ -7.46087220e-14   0.00000000e+00  -1.57478446e+01   1.57478446e+01]]
E
[False False False False]
init
[[ -16.75215542  -16.74784458  -81.         -100.        ]
 [ -16.74784458  -16.75215542  -64.          -81.        ]
 [ -81.          -64.          -16.75215542  -16.74784458]
 [-100.          -81.          -16.74784458  -16.75215542]]
r
[[-15.75215542  15.75215542 -64.25215542 -83.25215542]
 [ 15.75215542 -15.75215542 -47.25215542 -64.25215542]
 [-64.25215542 -47.25215542 -15.75215542  15.75215542]
 [-83.25215542 -64.25215542  15.75215542 -15.75215542]]
real-r
[[-15.7557866   15.7557866  -64.26641625 -83.26177758]
 [ 15.7557866  -15.7557866  -47.27056664 -64.26641625]
 [-64.26641625 -47.27056664 -15.7557866   15.7557866 ]
 [-83.26177758 -64.26641625  15.7557866  -15.7557866 ]]
a*
[[-15.7557866  15.7557866   0.          0.       ]
 [ 15.7557866 -15.7557866   0.          0.       ]
 [  0.          0.        -15.7557866  15.7557866]
 [  0.          0.         15.7557866 -15.7557866]]
tmp
[ -8.88178420e-14   8.88178420e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.57557866e+01   1.57557866e+01   0.00000000e+00   0.00000000e+00]
 [  1.57557866e+01  -1.57557866e+01   0.00000000e+00   0.00000000e+00]
 [  8.88178420e-14   0.00000000e+00  -1.57557866e+01   1.57557866e+01]
 [  8.88178420e-14   0.00000000e+00   1.57557866e+01  -1.57557866e+01]]
real-a
[[  1.57518156e+01  -1.57518156e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57518156e+01   1.57518156e+01   0.00000000e+00   0.00000000e+00]
 [ -8.17132820e-14   0.00000000e+00   1.57518156e+01  -1.57518156e+01]
 [ -8.17132820e-14   0.00000000e+00  -1.57518156e+01   1.57518156e+01]]
E
[False False False False]
init
[[ -16.74818441  -16.75181559  -81.         -100.        ]
 [ -16.75181559  -16.74818441  -64.          -81.        ]
 [ -81.          -64.          -16.74818441  -16.75181559]
 [-100.          -81.          -16.75181559  -16.74818441]]
r
[[-15.74818441  15.74818441 -64.25181559 -83.25181559]
 [ 15.74818441 -15.74818441 -47.25181559 -64.25181559]
 [-64.25181559 -47.25181559 -15.74818441  15.74818441]
 [-83.25181559 -64.25181559  15.74818441 -15.74818441]]
real-r
[[-15.75198551  15.75198551 -64.25911592 -83.25679658]
 [ 15.75198551 -15.75198551 -47.26119111 -64.25911592]
 [-64.25911592 -47.26119111 -15.75198551  15.75198551]
 [-83.25679658 -64.25911592  15.75198551 -15.75198551]]
a*
[[-15.75198551  15.75198551   0.           0.        ]
 [ 15.75198551 -15.75198551   0.           0.        ]
 [  0.           0.         -15.75198551  15.75198551]
 [  0.           0.          15.75198551 -15.75198551]]
tmp
[ -9.59232693e-14   9.59232693e-14   0.00000000e+00   0.00000000e+00]
a
[[ -1.57519855e+01   1.57519855e+01   0.00000000e+00   0.00000000e+00]
 [  1.57519855e+01  -1.57519855e+01   0.00000000e+00   0.00000000e+00]
 [  9.59232693e-14   0.00000000e+00  -1.57519855e+01   1.57519855e+01]
 [  9.59232693e-14   0.00000000e+00   1.57519855e+01  -1.57519855e+01]]
real-a
[[  1.57519005e+01  -1.57519005e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57519005e+01   1.57519005e+01   0.00000000e+00   0.00000000e+00]
 [ -8.88182757e-14   0.00000000e+00   1.57519005e+01  -1.57519005e+01]
 [ -8.88182757e-14   0.00000000e+00  -1.57519005e+01   1.57519005e+01]]
E
[False False False False]
init
[[ -16.74809945  -16.75190055  -81.         -100.        ]
 [ -16.75190055  -16.74809945  -64.          -81.        ]
 [ -81.          -64.          -16.74809945  -16.75190055]
 [-100.          -81.          -16.75190055  -16.74809945]]
r
[[-15.74809945  15.74809945 -64.25190055 -83.25190055]
 [ 15.74809945 -15.74809945 -47.25190055 -64.25190055]
 [-64.25190055 -47.25190055 -15.74809945  15.74809945]
 [-83.25190055 -64.25190055  15.74809945 -15.74809945]]
real-r
[[-15.75004248  15.75004248 -64.25550823 -83.25434856]
 [ 15.75004248 -15.75004248 -47.25654583 -64.25550823]
 [-64.25550823 -47.25654583 -15.75004248  15.75004248]
 [-83.25434856 -64.25550823  15.75004248 -15.75004248]]
a*
[[-15.75004248  15.75004248   0.           0.        ]
 [ 15.75004248 -15.75004248   0.           0.        ]
 [  0.           0.         -15.75004248  15.75004248]
 [  0.           0.          15.75004248 -15.75004248]]
tmp
[ -1.03028697e-13   1.03028697e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57500425e+01   1.57500425e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500425e+01  -1.57500425e+01   0.00000000e+00   0.00000000e+00]
 [  1.03028697e-13   0.00000000e+00  -1.57500425e+01   1.57500425e+01]
 [  1.03028697e-13   0.00000000e+00   1.57500425e+01  -1.57500425e+01]]
real-a
[[  1.57509715e+01  -1.57509715e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57509715e+01   1.57509715e+01   0.00000000e+00   0.00000000e+00]
 [ -9.59234862e-14   0.00000000e+00   1.57509715e+01  -1.57509715e+01]
 [ -9.59234862e-14   0.00000000e+00  -1.57509715e+01   1.57509715e+01]]
E
[ True  True  True  True]
init
[[ -16.74902849  -16.75097151  -81.         -100.        ]
 [ -16.75097151  -16.74902849  -64.          -81.        ]
 [ -81.          -64.          -16.74902849  -16.75097151]
 [-100.          -81.          -16.75097151  -16.74902849]]
r
[[-15.74902849  15.74902849 -64.25097151 -83.25097151]
 [ 15.74902849 -15.74902849 -47.25097151 -64.25097151]
 [-64.25097151 -47.25097151 -15.74902849  15.74902849]
 [-83.25097151 -64.25097151  15.74902849 -15.74902849]]
real-r
[[-15.74953548  15.74953548 -64.25323987 -83.25266004]
 [ 15.74953548 -15.74953548 -47.25375867 -64.25323987]
 [-64.25323987 -47.25375867 -15.74953548  15.74953548]
 [-83.25266004 -64.25323987  15.74953548 -15.74953548]]
a*
[[-15.74953548  15.74953548   0.           0.        ]
 [ 15.74953548 -15.74953548   0.           0.        ]
 [  0.           0.         -15.74953548  15.74953548]
 [  0.           0.          15.74953548 -15.74953548]]
tmp
[ -1.10134124e-13   1.10134124e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57495355e+01   1.57495355e+01   0.00000000e+00   0.00000000e+00]
 [  1.57495355e+01  -1.57495355e+01   0.00000000e+00   0.00000000e+00]
 [  1.10134124e-13   0.00000000e+00  -1.57495355e+01   1.57495355e+01]
 [  1.10134124e-13   0.00000000e+00   1.57495355e+01  -1.57495355e+01]]
real-a
[[  1.57502535e+01  -1.57502535e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57502535e+01   1.57502535e+01   0.00000000e+00   0.00000000e+00]
 [ -1.03028805e-13   0.00000000e+00   1.57502535e+01  -1.57502535e+01]
 [ -1.03028805e-13   0.00000000e+00  -1.57502535e+01   1.57502535e+01]]
E
[ True  True  True  True]
init
[[ -16.7497465  -16.7502535  -81.        -100.       ]
 [ -16.7502535  -16.7497465  -64.         -81.       ]
 [ -81.         -64.         -16.7497465  -16.7502535]
 [-100.         -81.         -16.7502535  -16.7497465]]
r
[[-15.7497465  15.7497465 -64.2502535 -83.2502535]
 [ 15.7497465 -15.7497465 -47.2502535 -64.2502535]
 [-64.2502535 -47.2502535 -15.7497465  15.7497465]
 [-83.2502535 -64.2502535  15.7497465 -15.7497465]]
real-r
[[-15.74964099  15.74964099 -64.25174669 -83.25145677]
 [ 15.74964099 -15.74964099 -47.25200608 -64.25174669]
 [-64.25174669 -47.25200608 -15.74964099  15.74964099]
 [-83.25145677 -64.25174669  15.74964099 -15.74964099]]
a*
[[-15.74964099  15.74964099   0.           0.        ]
 [ 15.74964099 -15.74964099   0.           0.        ]
 [  0.           0.         -15.74964099  15.74964099]
 [  0.           0.          15.74964099 -15.74964099]]
tmp
[ -1.17239551e-13   1.17239551e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57496410e+01   1.57496410e+01   0.00000000e+00   0.00000000e+00]
 [  1.57496410e+01  -1.57496410e+01   0.00000000e+00   0.00000000e+00]
 [  1.17239551e-13   0.00000000e+00  -1.57496410e+01   1.57496410e+01]
 [  1.17239551e-13   0.00000000e+00   1.57496410e+01  -1.57496410e+01]]
real-a
[[  1.57499472e+01  -1.57499472e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499472e+01   1.57499472e+01   0.00000000e+00   0.00000000e+00]
 [ -1.10134178e-13   0.00000000e+00   1.57499472e+01  -1.57499472e+01]
 [ -1.10134178e-13   0.00000000e+00  -1.57499472e+01   1.57499472e+01]]
E
[ True  True  True  True]
init
[[ -16.75005275  -16.74994725  -81.         -100.        ]
 [ -16.74994725  -16.75005275  -64.          -81.        ]
 [ -81.          -64.          -16.75005275  -16.74994725]
 [-100.          -81.          -16.74994725  -16.75005275]]
r
[[-15.75005275  15.75005275 -64.25005275 -83.25005275]
 [ 15.75005275 -15.75005275 -47.25005275 -64.25005275]
 [-64.25005275 -47.25005275 -15.75005275  15.75005275]
 [-83.25005275 -64.25005275  15.75005275 -15.75005275]]
real-r
[[-15.74984687  15.74984687 -64.25089972 -83.25075476]
 [ 15.74984687 -15.74984687 -47.25102942 -64.25089972]
 [-64.25089972 -47.25102942 -15.74984687  15.74984687]
 [-83.25075476 -64.25089972  15.74984687 -15.74984687]]
a*
[[-15.74984687  15.74984687   0.           0.        ]
 [ 15.74984687 -15.74984687   0.           0.        ]
 [  0.           0.         -15.74984687  15.74984687]
 [  0.           0.          15.74984687 -15.74984687]]
tmp
[ -1.24344979e-13   1.24344979e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57498469e+01   1.57498469e+01   0.00000000e+00   0.00000000e+00]
 [  1.57498469e+01  -1.57498469e+01   0.00000000e+00   0.00000000e+00]
 [  1.24344979e-13   0.00000000e+00  -1.57498469e+01   1.57498469e+01]
 [  1.24344979e-13   0.00000000e+00   1.57498469e+01  -1.57498469e+01]]
real-a
[[  1.57498971e+01  -1.57498971e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57498971e+01   1.57498971e+01   0.00000000e+00   0.00000000e+00]
 [ -1.17239579e-13   0.00000000e+00   1.57498971e+01  -1.57498971e+01]
 [ -1.17239579e-13   0.00000000e+00  -1.57498971e+01   1.57498971e+01]]
E
[ True  True  True  True]
init
[[ -16.75010294  -16.74989706  -81.         -100.        ]
 [ -16.74989706  -16.75010294  -64.          -81.        ]
 [ -81.          -64.          -16.75010294  -16.74989706]
 [-100.          -81.          -16.74989706  -16.75010294]]
r
[[-15.75010294  15.75010294 -64.25010294 -83.25010294]
 [ 15.75010294 -15.75010294 -47.25010294 -64.25010294]
 [-64.25010294 -47.25010294 -15.75010294  15.75010294]
 [-83.25010294 -64.25010294  15.75010294 -15.75010294]]
real-r
[[-15.74997491  15.74997491 -64.25050133 -83.25042885]
 [ 15.74997491 -15.74997491 -47.25056618 -64.25050133]
 [-64.25050133 -47.25056618 -15.74997491  15.74997491]
 [-83.25042885 -64.25050133  15.74997491 -15.74997491]]
a*
[[-15.74997491  15.74997491   0.           0.        ]
 [ 15.74997491 -15.74997491   0.           0.        ]
 [  0.           0.         -15.74997491  15.74997491]
 [  0.           0.          15.74997491 -15.74997491]]
tmp
[ -1.31450406e-13   1.31450406e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57499749e+01   1.57499749e+01   0.00000000e+00   0.00000000e+00]
 [  1.57499749e+01  -1.57499749e+01   0.00000000e+00   0.00000000e+00]
 [  1.31450406e-13   0.00000000e+00  -1.57499749e+01   1.57499749e+01]
 [  1.31450406e-13   0.00000000e+00   1.57499749e+01  -1.57499749e+01]]
real-a
[[  1.57499360e+01  -1.57499360e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499360e+01   1.57499360e+01   0.00000000e+00   0.00000000e+00]
 [ -1.24344992e-13   0.00000000e+00   1.57499360e+01  -1.57499360e+01]
 [ -1.24344992e-13   0.00000000e+00  -1.57499360e+01   1.57499360e+01]]
E
[False False False False]
init
[[ -16.75006402  -16.74993598  -81.         -100.        ]
 [ -16.74993598  -16.75006402  -64.          -81.        ]
 [ -81.          -64.          -16.75006402  -16.74993598]
 [-100.          -81.          -16.74993598  -16.75006402]]
r
[[-15.75006402  15.75006402 -64.25006402 -83.25006402]
 [ 15.75006402 -15.75006402 -47.25006402 -64.25006402]
 [-64.25006402 -47.25006402 -15.75006402  15.75006402]
 [-83.25006402 -64.25006402  15.75006402 -15.75006402]]
real-r
[[-15.75001946  15.75001946 -64.25028267 -83.25024643]
 [ 15.75001946 -15.75001946 -47.2503151  -64.25028267]
 [-64.25028267 -47.2503151  -15.75001946  15.75001946]
 [-83.25024643 -64.25028267  15.75001946 -15.75001946]]
a*
[[-15.75001946  15.75001946   0.           0.        ]
 [ 15.75001946 -15.75001946   0.           0.        ]
 [  0.           0.         -15.75001946  15.75001946]
 [  0.           0.          15.75001946 -15.75001946]]
tmp
[ -1.38555833e-13   1.38555833e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57500195e+01   1.57500195e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500195e+01  -1.57500195e+01   0.00000000e+00   0.00000000e+00]
 [  1.38555833e-13   0.00000000e+00  -1.57500195e+01   1.57500195e+01]
 [  1.38555833e-13   0.00000000e+00   1.57500195e+01  -1.57500195e+01]]
real-a
[[  1.57499777e+01  -1.57499777e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499777e+01   1.57499777e+01   0.00000000e+00   0.00000000e+00]
 [ -1.31450413e-13   0.00000000e+00   1.57499777e+01  -1.57499777e+01]
 [ -1.31450413e-13   0.00000000e+00  -1.57499777e+01   1.57499777e+01]]
E
[False False False False]
init
[[ -16.75002228  -16.74997772  -81.         -100.        ]
 [ -16.74997772  -16.75002228  -64.          -81.        ]
 [ -81.          -64.          -16.75002228  -16.74997772]
 [-100.          -81.          -16.74997772  -16.75002228]]
r
[[-15.75002228  15.75002228 -64.25002228 -83.25002228]
 [ 15.75002228 -15.75002228 -47.25002228 -64.25002228]
 [-64.25002228 -47.25002228 -15.75002228  15.75002228]
 [-83.25002228 -64.25002228  15.75002228 -15.75002228]]
real-r
[[-15.75002087  15.75002087 -64.25015248 -83.25013436]
 [ 15.75002087 -15.75002087 -47.25016869 -64.25015248]
 [-64.25015248 -47.25016869 -15.75002087  15.75002087]
 [-83.25013436 -64.25015248  15.75002087 -15.75002087]]
a*
[[-15.75002087  15.75002087   0.           0.        ]
 [ 15.75002087 -15.75002087   0.           0.        ]
 [  0.           0.         -15.75002087  15.75002087]
 [  0.           0.          15.75002087 -15.75002087]]
tmp
[ -1.45661261e-13   1.45661261e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57500209e+01   1.57500209e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500209e+01  -1.57500209e+01   0.00000000e+00   0.00000000e+00]
 [  1.45661261e-13   0.00000000e+00  -1.57500209e+01   1.57500209e+01]
 [  1.45661261e-13   0.00000000e+00   1.57500209e+01  -1.57500209e+01]]
real-a
[[  1.57499993e+01  -1.57499993e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499993e+01   1.57499993e+01   0.00000000e+00   0.00000000e+00]
 [ -1.38555837e-13   0.00000000e+00   1.57499993e+01  -1.57499993e+01]
 [ -1.38555837e-13   0.00000000e+00  -1.57499993e+01   1.57499993e+01]]
E
[False False False False]
init
[[ -16.7500007  -16.7499993  -81.        -100.       ]
 [ -16.7499993  -16.7500007  -64.         -81.       ]
 [ -81.         -64.         -16.7500007  -16.7499993]
 [-100.         -81.         -16.7499993  -16.7500007]]
r
[[-15.7500007  15.7500007 -64.2500007 -83.2500007]
 [ 15.7500007 -15.7500007 -47.2500007 -64.2500007]
 [-64.2500007 -47.2500007 -15.7500007  15.7500007]
 [-83.2500007 -64.2500007  15.7500007 -15.7500007]]
real-r
[[-15.75001079  15.75001079 -64.25007659 -83.25006753]
 [ 15.75001079 -15.75001079 -47.2500847  -64.25007659]
 [-64.25007659 -47.2500847  -15.75001079  15.75001079]
 [-83.25006753 -64.25007659  15.75001079 -15.75001079]]
a*
[[-15.75001079  15.75001079   0.           0.        ]
 [ 15.75001079 -15.75001079   0.           0.        ]
 [  0.           0.         -15.75001079  15.75001079]
 [  0.           0.          15.75001079 -15.75001079]]
tmp
[ -1.52766688e-13   1.52766688e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57500108e+01   1.57500108e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500108e+01  -1.57500108e+01   0.00000000e+00   0.00000000e+00]
 [  1.52766688e-13   0.00000000e+00  -1.57500108e+01   1.57500108e+01]
 [  1.52766688e-13   0.00000000e+00   1.57500108e+01  -1.57500108e+01]]
real-a
[[  1.57500050e+01  -1.57500050e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57500050e+01   1.57500050e+01   0.00000000e+00   0.00000000e+00]
 [ -1.45661263e-13   0.00000000e+00   1.57500050e+01  -1.57500050e+01]
 [ -1.45661263e-13   0.00000000e+00  -1.57500050e+01   1.57500050e+01]]
E
[False False False False]
init
[[ -16.74999496  -16.75000504  -81.         -100.        ]
 [ -16.75000504  -16.74999496  -64.          -81.        ]
 [ -81.          -64.          -16.74999496  -16.75000504]
 [-100.          -81.          -16.75000504  -16.74999496]]
r
[[-15.74999496  15.74999496 -64.25000504 -83.25000504]
 [ 15.74999496 -15.74999496 -47.25000504 -64.25000504]
 [-64.25000504 -47.25000504 -15.74999496  15.74999496]
 [-83.25000504 -64.25000504  15.74999496 -15.74999496]]
real-r
[[-15.75000287  15.75000287 -64.25004082 -83.25003629]
 [ 15.75000287 -15.75000287 -47.25004487 -64.25004082]
 [-64.25004082 -47.25004487 -15.75000287  15.75000287]
 [-83.25003629 -64.25004082  15.75000287 -15.75000287]]
a*
[[-15.75000287  15.75000287   0.           0.        ]
 [ 15.75000287 -15.75000287   0.           0.        ]
 [  0.           0.         -15.75000287  15.75000287]
 [  0.           0.          15.75000287 -15.75000287]]
tmp
[ -1.59872116e-13   1.59872116e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57500029e+01   1.57500029e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500029e+01  -1.57500029e+01   0.00000000e+00   0.00000000e+00]
 [  1.59872116e-13   0.00000000e+00  -1.57500029e+01   1.57500029e+01]
 [  1.59872116e-13   0.00000000e+00   1.57500029e+01  -1.57500029e+01]]
real-a
[[  1.57500040e+01  -1.57500040e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57500040e+01   1.57500040e+01   0.00000000e+00   0.00000000e+00]
 [ -1.52766689e-13   0.00000000e+00   1.57500040e+01  -1.57500040e+01]
 [ -1.52766689e-13   0.00000000e+00  -1.57500040e+01   1.57500040e+01]]
E
[ True  True  True  True]
init
[[ -16.74999604  -16.75000396  -81.         -100.        ]
 [ -16.75000396  -16.74999604  -64.          -81.        ]
 [ -81.          -64.          -16.74999604  -16.75000396]
 [-100.          -81.          -16.75000396  -16.74999604]]
r
[[-15.74999604  15.74999604 -64.25000396 -83.25000396]
 [ 15.74999604 -15.74999604 -47.25000396 -64.25000396]
 [-64.25000396 -47.25000396 -15.74999604  15.74999604]
 [-83.25000396 -64.25000396  15.74999604 -15.74999604]]
real-r
[[-15.74999946  15.74999946 -64.25002239 -83.25002012]
 [ 15.74999946 -15.74999946 -47.25002441 -64.25002239]
 [-64.25002239 -47.25002441 -15.74999946  15.74999946]
 [-83.25002012 -64.25002239  15.74999946 -15.74999946]]
a*
[[-15.74999946  15.74999946   0.           0.        ]
 [ 15.74999946 -15.74999946   0.           0.        ]
 [  0.           0.         -15.74999946  15.74999946]
 [  0.           0.          15.74999946 -15.74999946]]
tmp
[ -1.66977543e-13   1.66977543e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57499995e+01   1.57499995e+01   0.00000000e+00   0.00000000e+00]
 [  1.57499995e+01  -1.57499995e+01   0.00000000e+00   0.00000000e+00]
 [  1.66977543e-13   0.00000000e+00  -1.57499995e+01   1.57499995e+01]
 [  1.66977543e-13   0.00000000e+00   1.57499995e+01  -1.57499995e+01]]
real-a
[[  1.57500017e+01  -1.57500017e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57500017e+01   1.57500017e+01   0.00000000e+00   0.00000000e+00]
 [ -1.59872116e-13   0.00000000e+00   1.57500017e+01  -1.57500017e+01]
 [ -1.59872116e-13   0.00000000e+00  -1.57500017e+01   1.57500017e+01]]
E
[ True  True  True  True]
init
[[ -16.74999829  -16.75000171  -81.         -100.        ]
 [ -16.75000171  -16.74999829  -64.          -81.        ]
 [ -81.          -64.          -16.74999829  -16.75000171]
 [-100.          -81.          -16.75000171  -16.74999829]]
r
[[-15.74999829  15.74999829 -64.25000171 -83.25000171]
 [ 15.74999829 -15.74999829 -47.25000171 -64.25000171]
 [-64.25000171 -47.25000171 -15.74999829  15.74999829]
 [-83.25000171 -64.25000171  15.74999829 -15.74999829]]
real-r
[[-15.74999888  15.74999888 -64.25001205 -83.25001091]
 [ 15.74999888 -15.74999888 -47.25001306 -64.25001205]
 [-64.25001205 -47.25001306 -15.74999888  15.74999888]
 [-83.25001091 -64.25001205  15.74999888 -15.74999888]]
a*
[[-15.74999888  15.74999888   0.           0.        ]
 [ 15.74999888 -15.74999888   0.           0.        ]
 [  0.           0.         -15.74999888  15.74999888]
 [  0.           0.          15.74999888 -15.74999888]]
tmp
[ -1.74082970e-13   1.74082970e-13   0.00000000e+00   0.00000000e+00]
a
[[ -1.57499989e+01   1.57499989e+01   0.00000000e+00   0.00000000e+00]
 [  1.57499989e+01  -1.57499989e+01   0.00000000e+00   0.00000000e+00]
 [  1.74082970e-13   0.00000000e+00  -1.57499989e+01   1.57499989e+01]
 [  1.74082970e-13   0.00000000e+00   1.57499989e+01  -1.57499989e+01]]
real-a
[[  1.57500003e+01  -1.57500003e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57500003e+01   1.57500003e+01   0.00000000e+00   0.00000000e+00]
 [ -1.66977543e-13   0.00000000e+00   1.57500003e+01  -1.57500003e+01]
 [ -1.66977543e-13   0.00000000e+00  -1.57500003e+01   1.57500003e+01]]
E
[ True  True  True  True]
init
[[ -16.74999971  -16.75000029  -81.         -100.        ]
 [ -16.75000029  -16.74999971  -64.          -81.        ]
 [ -81.          -64.          -16.74999971  -16.75000029]
 [-100.          -81.          -16.75000029  -16.74999971]]
r
[[-15.74999971  15.74999971 -64.25000029 -83.25000029]
 [ 15.74999971 -15.74999971 -47.25000029 -64.25000029]
 [-64.25000029 -47.25000029 -15.74999971  15.74999971]
 [-83.25000029 -64.25000029  15.74999971 -15.74999971]]
real-r
[[-15.74999929  15.74999929 -64.25000617 -83.2500056 ]
 [ 15.74999929 -15.74999929 -47.25000668 -64.25000617]
 [-64.25000617 -47.25000668 -15.74999929  15.74999929]
 [-83.2500056  -64.25000617  15.74999929 -15.74999929]]
a*
[[-15.74999929  15.74999929   0.           0.        ]
 [ 15.74999929 -15.74999929   0.           0.        ]
 [  0.           0.         -15.74999929  15.74999929]
 [  0.           0.          15.74999929 -15.74999929]]
tmp
[ -1.79412041e-13   1.81188398e-13   1.77635684e-15   0.00000000e+00]
a
[[ -1.57499993e+01   1.57499993e+01   0.00000000e+00   0.00000000e+00]
 [  1.57499993e+01  -1.57499993e+01   0.00000000e+00   0.00000000e+00]
 [  1.79412041e-13   0.00000000e+00  -1.57499993e+01   1.57499993e+01]
 [  1.79412041e-13   0.00000000e+00   1.57499993e+01  -1.57499993e+01]]
real-a
[[  1.57499998e+01  -1.57499998e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499998e+01   1.57499998e+01   0.00000000e+00   0.00000000e+00]
 [ -1.73194792e-13   0.00000000e+00   1.57499998e+01  -1.57499998e+01]
 [ -1.73194792e-13   0.00000000e+00  -1.57499998e+01   1.57499998e+01]]
E
[ True  True  True  True]
init
[[ -16.75000021  -16.74999979  -81.         -100.        ]
 [ -16.74999979  -16.75000021  -64.          -81.        ]
 [ -81.          -64.          -16.75000021  -16.74999979]
 [-100.          -81.          -16.74999979  -16.75000021]]
r
[[-15.75000021  15.75000021 -64.25000021 -83.25000021]
 [ 15.75000021 -15.75000021 -47.25000021 -64.25000021]
 [-64.25000021 -47.25000021 -15.75000021  15.75000021]
 [-83.25000021 -64.25000021  15.75000021 -15.75000021]]
real-r
[[-15.74999975  15.74999975 -64.25000319 -83.25000291]
 [ 15.74999975 -15.74999975 -47.25000344 -64.25000319]
 [-64.25000319 -47.25000344 -15.74999975  15.74999975]
 [-83.25000291 -64.25000319  15.74999975 -15.74999975]]
a*
[[-15.74999975  15.74999975   0.           0.        ]
 [ 15.74999975 -15.74999975   0.           0.        ]
 [  0.           0.         -15.74999975  15.74999975]
 [  0.           0.          15.74999975 -15.74999975]]
tmp
[ -1.86517468e-13   1.88293825e-13   1.77635684e-15   0.00000000e+00]
a
[[ -1.57499998e+01   1.57499998e+01   0.00000000e+00   0.00000000e+00]
 [  1.57499998e+01  -1.57499998e+01   0.00000000e+00   0.00000000e+00]
 [  1.86517468e-13   0.00000000e+00  -1.57499998e+01   1.57499998e+01]
 [  1.86517468e-13   0.00000000e+00   1.57499998e+01  -1.57499998e+01]]
real-a
[[  1.57499998e+01  -1.57499998e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499998e+01   1.57499998e+01   0.00000000e+00   0.00000000e+00]
 [ -1.79856130e-13   0.00000000e+00   1.57499998e+01  -1.57499998e+01]
 [ -1.79856130e-13   0.00000000e+00  -1.57499998e+01   1.57499998e+01]]
E
[ True  True  True  True]
init
[[ -16.75000023  -16.74999977  -81.         -100.        ]
 [ -16.74999977  -16.75000023  -64.          -81.        ]
 [ -81.          -64.          -16.75000023  -16.74999977]
 [-100.          -81.          -16.74999977  -16.75000023]]
r
[[-15.75000023  15.75000023 -64.25000023 -83.25000023]
 [ 15.75000023 -15.75000023 -47.25000023 -64.25000023]
 [-64.25000023 -47.25000023 -15.75000023  15.75000023]
 [-83.25000023 -64.25000023  15.75000023 -15.75000023]]
real-r
[[-15.74999999  15.74999999 -64.25000171 -83.25000157]
 [ 15.74999999 -15.74999999 -47.25000184 -64.25000171]
 [-64.25000171 -47.25000184 -15.74999999  15.74999999]
 [-83.25000157 -64.25000171  15.74999999 -15.74999999]]
a*
[[-15.74999999  15.74999999   0.           0.        ]
 [ 15.74999999 -15.74999999   0.           0.        ]
 [  0.           0.         -15.74999999  15.74999999]
 [  0.           0.          15.74999999 -15.74999999]]
tmp
[ -1.93622895e-13   1.95399252e-13   1.77635684e-15   0.00000000e+00]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.93622895e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  1.93622895e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57499999e+01  -1.57499999e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57499999e+01   1.57499999e+01   0.00000000e+00   0.00000000e+00]
 [ -1.86739513e-13   0.00000000e+00   1.57499999e+01  -1.57499999e+01]
 [ -1.86739513e-13   0.00000000e+00  -1.57499999e+01   1.57499999e+01]]
E
[False False False False]
init
[[ -16.75000012  -16.74999988  -81.         -100.        ]
 [ -16.74999988  -16.75000012  -64.          -81.        ]
 [ -81.          -64.          -16.75000012  -16.74999988]
 [-100.          -81.          -16.74999988  -16.75000012]]
r
[[-15.75000012  15.75000012 -64.25000012 -83.25000012]
 [ 15.75000012 -15.75000012 -47.25000012 -64.25000012]
 [-64.25000012 -47.25000012 -15.75000012  15.75000012]
 [-83.25000012 -64.25000012  15.75000012 -15.75000012]]
real-r
[[-15.75000005  15.75000005 -64.25000091 -83.25000084]
 [ 15.75000005 -15.75000005 -47.25000098 -64.25000091]
 [-64.25000091 -47.25000098 -15.75000005  15.75000005]
 [-83.25000084 -64.25000091  15.75000005 -15.75000005]]
a*
[[-15.75000005  15.75000005   0.           0.        ]
 [ 15.75000005 -15.75000005   0.           0.        ]
 [  0.           0.         -15.75000005  15.75000005]
 [  0.           0.          15.75000005 -15.75000005]]
tmp
[ -2.00728323e-13   2.02504680e-13   1.77635684e-15   0.00000000e+00]
a
[[ -1.57500001e+01   1.57500001e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500001e+01  -1.57500001e+01   0.00000000e+00   0.00000000e+00]
 [  2.00728323e-13   0.00000000e+00  -1.57500001e+01   1.57500001e+01]
 [  2.00728323e-13   0.00000000e+00   1.57500001e+01  -1.57500001e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [ -1.93733918e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -1.93733918e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.75000003  -16.74999997  -81.         -100.        ]
 [ -16.74999997  -16.75000003  -64.          -81.        ]
 [ -81.          -64.          -16.75000003  -16.74999997]
 [-100.          -81.          -16.74999997  -16.75000003]]
r
[[-15.75000003  15.75000003 -64.25000003 -83.25000003]
 [ 15.75000003 -15.75000003 -47.25000003 -64.25000003]
 [-64.25000003 -47.25000003 -15.75000003  15.75000003]
 [-83.25000003 -64.25000003  15.75000003 -15.75000003]]
real-r
[[-15.75000004  15.75000004 -64.25000047 -83.25000044]
 [ 15.75000004 -15.75000004 -47.25000051 -64.25000047]
 [-64.25000047 -47.25000051 -15.75000004  15.75000004]
 [-83.25000044 -64.25000047  15.75000004 -15.75000004]]
a*
[[-15.75000004  15.75000004   0.           0.        ]
 [ 15.75000004 -15.75000004   0.           0.        ]
 [  0.           0.         -15.75000004  15.75000004]
 [  0.           0.          15.75000004 -15.75000004]]
tmp
[ -2.06057393e-13   2.09610107e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.06057393e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.06057393e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -8.88178420e-16]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -8.88178420e-16]
 [ -1.99895656e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -1.99895656e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.74999999  -16.75000001  -81.         -100.        ]
 [ -16.75000001  -16.74999999  -64.          -81.        ]
 [ -81.          -64.          -16.74999999  -16.75000001]
 [-100.          -81.          -16.75000001  -16.74999999]]
r
[[-15.74999999  15.74999999 -64.25000001 -83.25000001]
 [ 15.74999999 -15.74999999 -47.25000001 -64.25000001]
 [-64.25000001 -47.25000001 -15.74999999  15.74999999]
 [-83.25000001 -64.25000001  15.74999999 -15.74999999]]
real-r
[[-15.75000002  15.75000002 -64.25000024 -83.25000022]
 [ 15.75000002 -15.75000002 -47.25000026 -64.25000024]
 [-64.25000024 -47.25000026 -15.75000002  15.75000002]
 [-83.25000022 -64.25000024  15.75000002 -15.75000002]]
a*
[[-15.75000002  15.75000002   0.           0.        ]
 [ 15.75000002 -15.75000002   0.           0.        ]
 [  0.           0.         -15.75000002  15.75000002]
 [  0.           0.          15.75000002 -15.75000002]]
tmp
[ -2.14939178e-13   2.14939178e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.14939178e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.14939178e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.33226763e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.33226763e-15]
 [ -2.07417417e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.07417417e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.74999999  -16.75000001  -81.         -100.        ]
 [ -16.75000001  -16.74999999  -64.          -81.        ]
 [ -81.          -64.          -16.74999999  -16.75000001]
 [-100.          -81.          -16.75000001  -16.74999999]]
r
[[-15.74999999  15.74999999 -64.25000001 -83.25000001]
 [ 15.74999999 -15.74999999 -47.25000001 -64.25000001]
 [-64.25000001 -47.25000001 -15.74999999  15.74999999]
 [-83.25000001 -64.25000001  15.74999999 -15.74999999]]
real-r
[[-15.75        15.75       -64.25000013 -83.25000012]
 [ 15.75       -15.75       -47.25000013 -64.25000013]
 [-64.25000013 -47.25000013 -15.75        15.75      ]
 [-83.25000012 -64.25000013  15.75       -15.75      ]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.22044605e-13   2.23820962e-13   0.00000000e+00  -3.55271368e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   3.55271368e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   3.55271368e-15]
 [  2.22044605e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.22044605e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -2.44249065e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -2.44249065e-15]
 [ -2.14731011e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.14731011e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.74999999  -16.75000001  -81.         -100.        ]
 [ -16.75000001  -16.74999999  -64.          -81.        ]
 [ -81.          -64.          -16.74999999  -16.75000001]
 [-100.          -81.          -16.75000001  -16.74999999]]
r
[[-15.74999999  15.74999999 -64.25000001 -83.25000001]
 [ 15.74999999 -15.74999999 -47.25000001 -64.25000001]
 [-64.25000001 -47.25000001 -15.74999999  15.74999999]
 [-83.25000001 -64.25000001  15.74999999 -15.74999999]]
real-r
[[-15.75        15.75       -64.25000007 -83.25000006]
 [ 15.75       -15.75       -47.25000007 -64.25000007]
 [-64.25000007 -47.25000007 -15.75        15.75      ]
 [-83.25000006 -64.25000007  15.75       -15.75      ]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.27373675e-13   2.30926389e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.27373675e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.27373675e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -2.10942375e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -2.10942375e-15]
 [ -2.21052343e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.21052343e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75        15.75       -64.25000003 -83.25000003]
 [ 15.75       -15.75       -47.25000004 -64.25000003]
 [-64.25000003 -47.25000004 -15.75        15.75      ]
 [-83.25000003 -64.25000003  15.75       -15.75      ]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.36255460e-13   2.36255460e-13   3.55271368e-15   0.00000000e+00]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  2.36255460e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.36255460e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.05471187e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.05471187e-15]
 [ -2.28653901e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.28653901e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75        15.75       -64.25000002 -83.25000002]
 [ 15.75       -15.75       -47.25000002 -64.25000002]
 [-64.25000002 -47.25000002 -15.75        15.75      ]
 [-83.25000002 -64.25000002  15.75       -15.75      ]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.43360887e-13   2.43360887e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.43360887e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.43360887e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.41553436e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.41553436e-15]
 [ -2.36007394e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.36007394e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75        15.75       -64.25000001 -83.25000001]
 [ 15.75       -15.75       -47.25000001 -64.25000001]
 [-64.25000001 -47.25000001 -15.75        15.75      ]
 [-83.25000001 -64.25000001  15.75       -15.75      ]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.48689958e-13   2.52242671e-13   3.55271368e-15   0.00000000e+00]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  2.48689958e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.48689958e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -7.07767178e-16]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -7.07767178e-16]
 [ -2.42348676e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.42348676e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75        15.75       -64.25       -83.25      ]
 [ 15.75       -15.75       -47.25000001 -64.25      ]
 [-64.25       -47.25000001 -15.75        15.75      ]
 [-83.25       -64.25        15.75       -15.75      ]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.57571742e-13   2.57571742e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.57571742e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.57571742e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.24206201e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.24206201e-15]
 [ -2.49960209e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.49960209e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.66453526e-13   2.62900812e-13   0.00000000e+00  -3.55271368e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   3.55271368e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   3.55271368e-15]
 [  2.66453526e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.66453526e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -2.39738784e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -2.39738784e-15]
 [ -2.58206867e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.58206867e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.73558953e-13   2.71782596e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.73558953e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.73558953e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -2.08687234e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -2.08687234e-15]
 [ -2.65882910e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.65882910e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.80664381e-13   2.78888024e-13   3.55271368e-15   0.00000000e+00]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  2.80664381e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.80664381e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.04343617e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.04343617e-15]
 [ -2.73273645e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.73273645e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[False False False False]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.85993451e-13   2.85993451e-13   3.55271368e-15   0.00000000e+00]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   0.00000000e+00]
 [  2.85993451e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.85993451e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -5.21718085e-16]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -5.21718085e-16]
 [ -2.79633548e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.79633548e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -2.94875235e-13   2.91322522e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  2.94875235e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  2.94875235e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.14903746e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.14903746e-15]
 [ -2.87254392e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.87254392e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -3.00204306e-13   3.00204306e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  3.00204306e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  3.00204306e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.46269715e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.46269715e-15]
 [ -2.93729349e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -2.93729349e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.    -81.  ]
 [ -81.    -64.    -16.75  -16.75]
 [-100.    -81.    -16.75  -16.75]]
r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
real-r
[[-15.75  15.75 -64.25 -83.25]
 [ 15.75 -15.75 -47.25 -64.25]
 [-64.25 -47.25 -15.75  15.75]
 [-83.25 -64.25  15.75 -15.75]]
a*
[[-15.75  15.75   0.     0.  ]
 [ 15.75 -15.75   0.     0.  ]
 [  0.     0.   -15.75  15.75]
 [  0.     0.    15.75 -15.75]]
tmp
[ -3.07309733e-13   3.07309733e-13   1.77635684e-15  -1.77635684e-15]
a
[[ -1.57500000e+01   1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  1.57500000e+01  -1.57500000e+01   0.00000000e+00   1.77635684e-15]
 [  3.07309733e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]
 [  3.07309733e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]]
real-a
[[  1.57500000e+01  -1.57500000e+01   0.00000000e+00  -1.61952700e-15]
 [ -1.57500000e+01   1.57500000e+01   0.00000000e+00  -1.61952700e-15]
 [ -3.00519541e-13   0.00000000e+00   1.57500000e+01  -1.57500000e+01]
 [ -3.00519541e-13   0.00000000e+00  -1.57500000e+01   1.57500000e+01]]
E
[ True  True  True  True]
init
[[ -16.75  -16.75  -81.   -100.  ]
 [ -16.75  -16.75  -64.  

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment