Fixed database typo and removed unnecessary class identifier.
This commit is contained in:
parent
00ad49a143
commit
45fb349a7d
5098 changed files with 952558 additions and 85 deletions
111
venv/Lib/site-packages/scipy/spatial/__init__.py
Normal file
111
venv/Lib/site-packages/scipy/spatial/__init__.py
Normal file
|
@ -0,0 +1,111 @@
|
|||
"""
|
||||
=============================================================
|
||||
Spatial algorithms and data structures (:mod:`scipy.spatial`)
|
||||
=============================================================
|
||||
|
||||
.. currentmodule:: scipy.spatial
|
||||
|
||||
Spatial transformations
|
||||
=======================
|
||||
|
||||
These are contained in the `scipy.spatial.transform` submodule.
|
||||
|
||||
Nearest-neighbor queries
|
||||
========================
|
||||
.. autosummary::
|
||||
:toctree: generated/
|
||||
|
||||
KDTree -- class for efficient nearest-neighbor queries
|
||||
cKDTree -- class for efficient nearest-neighbor queries (faster implementation)
|
||||
Rectangle
|
||||
|
||||
Distance metrics are contained in the :mod:`scipy.spatial.distance` submodule.
|
||||
|
||||
Delaunay triangulation, convex hulls, and Voronoi diagrams
|
||||
==========================================================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: generated/
|
||||
|
||||
Delaunay -- compute Delaunay triangulation of input points
|
||||
ConvexHull -- compute a convex hull for input points
|
||||
Voronoi -- compute a Voronoi diagram hull from input points
|
||||
SphericalVoronoi -- compute a Voronoi diagram from input points on the surface of a sphere
|
||||
HalfspaceIntersection -- compute the intersection points of input halfspaces
|
||||
|
||||
Plotting helpers
|
||||
================
|
||||
|
||||
.. autosummary::
|
||||
:toctree: generated/
|
||||
|
||||
delaunay_plot_2d -- plot 2-D triangulation
|
||||
convex_hull_plot_2d -- plot 2-D convex hull
|
||||
voronoi_plot_2d -- plot 2-D Voronoi diagram
|
||||
|
||||
.. seealso:: :ref:`Tutorial <qhulltutorial>`
|
||||
|
||||
|
||||
Simplex representation
|
||||
======================
|
||||
The simplices (triangles, tetrahedra, etc.) appearing in the Delaunay
|
||||
tessellation (N-D simplices), convex hull facets, and Voronoi ridges
|
||||
(N-1-D simplices) are represented in the following scheme::
|
||||
|
||||
tess = Delaunay(points)
|
||||
hull = ConvexHull(points)
|
||||
voro = Voronoi(points)
|
||||
|
||||
# coordinates of the jth vertex of the ith simplex
|
||||
tess.points[tess.simplices[i, j], :] # tessellation element
|
||||
hull.points[hull.simplices[i, j], :] # convex hull facet
|
||||
voro.vertices[voro.ridge_vertices[i, j], :] # ridge between Voronoi cells
|
||||
|
||||
For Delaunay triangulations and convex hulls, the neighborhood
|
||||
structure of the simplices satisfies the condition:
|
||||
``tess.neighbors[i,j]`` is the neighboring simplex of the ith
|
||||
simplex, opposite to the ``j``-vertex. It is -1 in case of no neighbor.
|
||||
|
||||
Convex hull facets also define a hyperplane equation::
|
||||
|
||||
(hull.equations[i,:-1] * coord).sum() + hull.equations[i,-1] == 0
|
||||
|
||||
Similar hyperplane equations for the Delaunay triangulation correspond
|
||||
to the convex hull facets on the corresponding N+1-D
|
||||
paraboloid.
|
||||
|
||||
The Delaunay triangulation objects offer a method for locating the
|
||||
simplex containing a given point, and barycentric coordinate
|
||||
computations.
|
||||
|
||||
Functions
|
||||
---------
|
||||
|
||||
.. autosummary::
|
||||
:toctree: generated/
|
||||
|
||||
tsearch
|
||||
distance_matrix
|
||||
minkowski_distance
|
||||
minkowski_distance_p
|
||||
procrustes
|
||||
geometric_slerp
|
||||
|
||||
"""
|
||||
|
||||
from .kdtree import *
|
||||
from .ckdtree import *
|
||||
from .qhull import *
|
||||
from ._spherical_voronoi import SphericalVoronoi
|
||||
from ._plotutils import *
|
||||
from ._procrustes import procrustes
|
||||
from ._geometric_slerp import geometric_slerp
|
||||
|
||||
__all__ = [s for s in dir() if not s.startswith('_')]
|
||||
__all__ += ['distance', 'transform']
|
||||
|
||||
from . import distance, transform
|
||||
|
||||
from scipy._lib._testutils import PytestTester
|
||||
test = PytestTester(__name__)
|
||||
del PytestTester
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
227
venv/Lib/site-packages/scipy/spatial/_geometric_slerp.py
Normal file
227
venv/Lib/site-packages/scipy/spatial/_geometric_slerp.py
Normal file
|
@ -0,0 +1,227 @@
|
|||
from __future__ import division, print_function, absolute_import
|
||||
|
||||
__all__ = ['geometric_slerp']
|
||||
|
||||
import warnings
|
||||
|
||||
import numpy as np
|
||||
from scipy.spatial.distance import euclidean
|
||||
|
||||
|
||||
def _geometric_slerp(start, end, t):
|
||||
# create an orthogonal basis using QR decomposition
|
||||
basis = np.vstack([start, end])
|
||||
Q, R = np.linalg.qr(basis.T)
|
||||
signs = 2 * (np.diag(R) >= 0) - 1
|
||||
Q = Q.T * signs.T[:, np.newaxis]
|
||||
R = R.T * signs.T[:, np.newaxis]
|
||||
|
||||
# calculate the angle between `start` and `end`
|
||||
c = np.dot(start, end)
|
||||
s = np.linalg.det(R)
|
||||
omega = np.arctan2(s, c)
|
||||
|
||||
# interpolate
|
||||
start, end = Q
|
||||
s = np.sin(t * omega)
|
||||
c = np.cos(t * omega)
|
||||
return start * c[:, np.newaxis] + end * s[:, np.newaxis]
|
||||
|
||||
|
||||
def geometric_slerp(start,
|
||||
end,
|
||||
t,
|
||||
tol=1e-7):
|
||||
"""
|
||||
Geometric spherical linear interpolation.
|
||||
|
||||
The interpolation occurs along a unit-radius
|
||||
great circle arc in arbitrary dimensional space.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
start : (n_dimensions, ) array-like
|
||||
Single n-dimensional input coordinate in a 1-D array-like
|
||||
object. `n` must be greater than 1.
|
||||
end : (n_dimensions, ) array-like
|
||||
Single n-dimensional input coordinate in a 1-D array-like
|
||||
object. `n` must be greater than 1.
|
||||
t: float or (n_points,) array-like
|
||||
A float or array-like of doubles representing interpolation
|
||||
parameters, with values required in the inclusive interval
|
||||
between 0 and 1. A common approach is to generate the array
|
||||
with ``np.linspace(0, 1, n_pts)`` for linearly spaced points.
|
||||
Ascending, descending, and scrambled orders are permitted.
|
||||
tol: float
|
||||
The absolute tolerance for determining if the start and end
|
||||
coordinates are antipodes.
|
||||
|
||||
Returns
|
||||
-------
|
||||
result : (t.size, D)
|
||||
An array of doubles containing the interpolated
|
||||
spherical path and including start and
|
||||
end when 0 and 1 t are used. The
|
||||
interpolated values should correspond to the
|
||||
same sort order provided in the t array. The result
|
||||
may be 1-dimensional if ``t`` is a float.
|
||||
|
||||
Raises
|
||||
------
|
||||
ValueError
|
||||
If ``start`` and ``end`` are antipodes, not on the
|
||||
unit n-sphere, or for a variety of degenerate conditions.
|
||||
|
||||
Notes
|
||||
-----
|
||||
The implementation is based on the mathematical formula provided in [1]_,
|
||||
and the first known presentation of this algorithm, derived from study of
|
||||
4-D geometry, is credited to Glenn Davis in a footnote of the original
|
||||
quaternion Slerp publication by Ken Shoemake [2]_.
|
||||
|
||||
.. versionadded:: 1.5.0
|
||||
|
||||
References
|
||||
----------
|
||||
.. [1] https://en.wikipedia.org/wiki/Slerp#Geometric_Slerp
|
||||
.. [2] Ken Shoemake (1985) Animating rotation with quaternion curves.
|
||||
ACM SIGGRAPH Computer Graphics, 19(3): 245-254.
|
||||
|
||||
See Also
|
||||
--------
|
||||
scipy.spatial.transform.Slerp : 3-D Slerp that works with quaternions
|
||||
|
||||
Examples
|
||||
--------
|
||||
Interpolate four linearly-spaced values on the circumference of
|
||||
a circle spanning 90 degrees:
|
||||
|
||||
>>> from scipy.spatial import geometric_slerp
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> fig = plt.figure()
|
||||
>>> ax = fig.add_subplot(111)
|
||||
>>> start = np.array([1, 0])
|
||||
>>> end = np.array([0, 1])
|
||||
>>> t_vals = np.linspace(0, 1, 4)
|
||||
>>> result = geometric_slerp(start,
|
||||
... end,
|
||||
... t_vals)
|
||||
|
||||
The interpolated results should be at 30 degree intervals
|
||||
recognizable on the unit circle:
|
||||
|
||||
>>> ax.scatter(result[...,0], result[...,1], c='k')
|
||||
>>> circle = plt.Circle((0, 0), 1, color='grey')
|
||||
>>> ax.add_artist(circle)
|
||||
>>> ax.set_aspect('equal')
|
||||
>>> plt.show()
|
||||
|
||||
Attempting to interpolate between antipodes on a circle is
|
||||
ambiguous because there are two possible paths, and on a
|
||||
sphere there are infinite possible paths on the geodesic surface.
|
||||
Nonetheless, one of the ambiguous paths is returned along
|
||||
with a warning:
|
||||
|
||||
>>> opposite_pole = np.array([-1, 0])
|
||||
>>> with np.testing.suppress_warnings() as sup:
|
||||
... sup.filter(UserWarning)
|
||||
... geometric_slerp(start,
|
||||
... opposite_pole,
|
||||
... t_vals)
|
||||
array([[ 1.00000000e+00, 0.00000000e+00],
|
||||
[ 5.00000000e-01, 8.66025404e-01],
|
||||
[-5.00000000e-01, 8.66025404e-01],
|
||||
[-1.00000000e+00, 1.22464680e-16]])
|
||||
|
||||
Extend the original example to a sphere and plot interpolation
|
||||
points in 3D:
|
||||
|
||||
>>> from mpl_toolkits.mplot3d import proj3d
|
||||
>>> fig = plt.figure()
|
||||
>>> ax = fig.add_subplot(111, projection='3d')
|
||||
|
||||
Plot the unit sphere for reference (optional):
|
||||
|
||||
>>> u = np.linspace(0, 2 * np.pi, 100)
|
||||
>>> v = np.linspace(0, np.pi, 100)
|
||||
>>> x = np.outer(np.cos(u), np.sin(v))
|
||||
>>> y = np.outer(np.sin(u), np.sin(v))
|
||||
>>> z = np.outer(np.ones(np.size(u)), np.cos(v))
|
||||
>>> ax.plot_surface(x, y, z, color='y', alpha=0.1)
|
||||
|
||||
Interpolating over a larger number of points
|
||||
may provide the appearance of a smooth curve on
|
||||
the surface of the sphere, which is also useful
|
||||
for discretized integration calculations on a
|
||||
sphere surface:
|
||||
|
||||
>>> start = np.array([1, 0, 0])
|
||||
>>> end = np.array([0, 0, 1])
|
||||
>>> t_vals = np.linspace(0, 1, 200)
|
||||
>>> result = geometric_slerp(start,
|
||||
... end,
|
||||
... t_vals)
|
||||
>>> ax.plot(result[...,0],
|
||||
... result[...,1],
|
||||
... result[...,2],
|
||||
... c='k')
|
||||
>>> plt.show()
|
||||
"""
|
||||
|
||||
start = np.asarray(start, dtype=np.float64)
|
||||
end = np.asarray(end, dtype=np.float64)
|
||||
|
||||
if start.ndim != 1 or end.ndim != 1:
|
||||
raise ValueError("Start and end coordinates "
|
||||
"must be one-dimensional")
|
||||
|
||||
if start.size != end.size:
|
||||
raise ValueError("The dimensions of start and "
|
||||
"end must match (have same size)")
|
||||
|
||||
if start.size < 2 or end.size < 2:
|
||||
raise ValueError("The start and end coordinates must "
|
||||
"both be in at least two-dimensional "
|
||||
"space")
|
||||
|
||||
if np.array_equal(start, end):
|
||||
return [start] * np.asarray(t).size
|
||||
|
||||
# for points that violate equation for n-sphere
|
||||
for coord in [start, end]:
|
||||
if not np.allclose(np.linalg.norm(coord), 1.0,
|
||||
rtol=1e-9,
|
||||
atol=0):
|
||||
raise ValueError("start and end are not"
|
||||
" on a unit n-sphere")
|
||||
|
||||
if not isinstance(tol, float):
|
||||
raise ValueError("tol must be a float")
|
||||
else:
|
||||
tol = np.fabs(tol)
|
||||
|
||||
coord_dist = euclidean(start, end)
|
||||
|
||||
# diameter of 2 within tolerance means antipodes, which is a problem
|
||||
# for all unit n-spheres (even the 0-sphere would have an ambiguous path)
|
||||
if np.allclose(coord_dist, 2.0, rtol=0, atol=tol):
|
||||
warnings.warn("start and end are antipodes"
|
||||
" using the specified tolerance;"
|
||||
" this may cause ambiguous slerp paths")
|
||||
|
||||
t = np.asarray(t, dtype=np.float64)
|
||||
|
||||
if t.size == 0:
|
||||
return np.empty((0, start.size))
|
||||
|
||||
if t.min() < 0 or t.max() > 1:
|
||||
raise ValueError("interpolation parameter must be in [0, 1]")
|
||||
|
||||
if t.ndim == 0:
|
||||
return _geometric_slerp(start,
|
||||
end,
|
||||
np.atleast_1d(t)).ravel()
|
||||
else:
|
||||
return _geometric_slerp(start,
|
||||
end,
|
||||
t)
|
BIN
venv/Lib/site-packages/scipy/spatial/_hausdorff.cp36-win32.pyd
Normal file
BIN
venv/Lib/site-packages/scipy/spatial/_hausdorff.cp36-win32.pyd
Normal file
Binary file not shown.
262
venv/Lib/site-packages/scipy/spatial/_plotutils.py
Normal file
262
venv/Lib/site-packages/scipy/spatial/_plotutils.py
Normal file
|
@ -0,0 +1,262 @@
|
|||
import numpy as np
|
||||
from scipy._lib.decorator import decorator as _decorator
|
||||
|
||||
__all__ = ['delaunay_plot_2d', 'convex_hull_plot_2d', 'voronoi_plot_2d']
|
||||
|
||||
|
||||
@_decorator
|
||||
def _held_figure(func, obj, ax=None, **kw):
|
||||
import matplotlib.pyplot as plt # type: ignore[import]
|
||||
|
||||
if ax is None:
|
||||
fig = plt.figure()
|
||||
ax = fig.gca()
|
||||
return func(obj, ax=ax, **kw)
|
||||
|
||||
# As of matplotlib 2.0, the "hold" mechanism is deprecated.
|
||||
# When matplotlib 1.x is no longer supported, this check can be removed.
|
||||
was_held = getattr(ax, 'ishold', lambda: True)()
|
||||
if was_held:
|
||||
return func(obj, ax=ax, **kw)
|
||||
try:
|
||||
ax.hold(True)
|
||||
return func(obj, ax=ax, **kw)
|
||||
finally:
|
||||
ax.hold(was_held)
|
||||
|
||||
|
||||
def _adjust_bounds(ax, points):
|
||||
margin = 0.1 * points.ptp(axis=0)
|
||||
xy_min = points.min(axis=0) - margin
|
||||
xy_max = points.max(axis=0) + margin
|
||||
ax.set_xlim(xy_min[0], xy_max[0])
|
||||
ax.set_ylim(xy_min[1], xy_max[1])
|
||||
|
||||
|
||||
@_held_figure
|
||||
def delaunay_plot_2d(tri, ax=None):
|
||||
"""
|
||||
Plot the given Delaunay triangulation in 2-D
|
||||
|
||||
Parameters
|
||||
----------
|
||||
tri : scipy.spatial.Delaunay instance
|
||||
Triangulation to plot
|
||||
ax : matplotlib.axes.Axes instance, optional
|
||||
Axes to plot on
|
||||
|
||||
Returns
|
||||
-------
|
||||
fig : matplotlib.figure.Figure instance
|
||||
Figure for the plot
|
||||
|
||||
See Also
|
||||
--------
|
||||
Delaunay
|
||||
matplotlib.pyplot.triplot
|
||||
|
||||
Notes
|
||||
-----
|
||||
Requires Matplotlib.
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> from scipy.spatial import Delaunay, delaunay_plot_2d
|
||||
|
||||
The Delaunay triangulation of a set of random points:
|
||||
|
||||
>>> points = np.random.rand(30, 2)
|
||||
>>> tri = Delaunay(points)
|
||||
|
||||
Plot it:
|
||||
|
||||
>>> _ = delaunay_plot_2d(tri)
|
||||
>>> plt.show()
|
||||
|
||||
"""
|
||||
if tri.points.shape[1] != 2:
|
||||
raise ValueError("Delaunay triangulation is not 2-D")
|
||||
|
||||
x, y = tri.points.T
|
||||
ax.plot(x, y, 'o')
|
||||
ax.triplot(x, y, tri.simplices.copy())
|
||||
|
||||
_adjust_bounds(ax, tri.points)
|
||||
|
||||
return ax.figure
|
||||
|
||||
|
||||
@_held_figure
|
||||
def convex_hull_plot_2d(hull, ax=None):
|
||||
"""
|
||||
Plot the given convex hull diagram in 2-D
|
||||
|
||||
Parameters
|
||||
----------
|
||||
hull : scipy.spatial.ConvexHull instance
|
||||
Convex hull to plot
|
||||
ax : matplotlib.axes.Axes instance, optional
|
||||
Axes to plot on
|
||||
|
||||
Returns
|
||||
-------
|
||||
fig : matplotlib.figure.Figure instance
|
||||
Figure for the plot
|
||||
|
||||
See Also
|
||||
--------
|
||||
ConvexHull
|
||||
|
||||
Notes
|
||||
-----
|
||||
Requires Matplotlib.
|
||||
|
||||
|
||||
Examples
|
||||
--------
|
||||
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> from scipy.spatial import ConvexHull, convex_hull_plot_2d
|
||||
|
||||
The convex hull of a random set of points:
|
||||
|
||||
>>> points = np.random.rand(30, 2)
|
||||
>>> hull = ConvexHull(points)
|
||||
|
||||
Plot it:
|
||||
|
||||
>>> _ = convex_hull_plot_2d(hull)
|
||||
>>> plt.show()
|
||||
|
||||
"""
|
||||
from matplotlib.collections import LineCollection # type: ignore[import]
|
||||
|
||||
if hull.points.shape[1] != 2:
|
||||
raise ValueError("Convex hull is not 2-D")
|
||||
|
||||
ax.plot(hull.points[:,0], hull.points[:,1], 'o')
|
||||
line_segments = [hull.points[simplex] for simplex in hull.simplices]
|
||||
ax.add_collection(LineCollection(line_segments,
|
||||
colors='k',
|
||||
linestyle='solid'))
|
||||
_adjust_bounds(ax, hull.points)
|
||||
|
||||
return ax.figure
|
||||
|
||||
|
||||
@_held_figure
|
||||
def voronoi_plot_2d(vor, ax=None, **kw):
|
||||
"""
|
||||
Plot the given Voronoi diagram in 2-D
|
||||
|
||||
Parameters
|
||||
----------
|
||||
vor : scipy.spatial.Voronoi instance
|
||||
Diagram to plot
|
||||
ax : matplotlib.axes.Axes instance, optional
|
||||
Axes to plot on
|
||||
show_points: bool, optional
|
||||
Add the Voronoi points to the plot.
|
||||
show_vertices : bool, optional
|
||||
Add the Voronoi vertices to the plot.
|
||||
line_colors : string, optional
|
||||
Specifies the line color for polygon boundaries
|
||||
line_width : float, optional
|
||||
Specifies the line width for polygon boundaries
|
||||
line_alpha: float, optional
|
||||
Specifies the line alpha for polygon boundaries
|
||||
point_size: float, optional
|
||||
Specifies the size of points
|
||||
|
||||
|
||||
Returns
|
||||
-------
|
||||
fig : matplotlib.figure.Figure instance
|
||||
Figure for the plot
|
||||
|
||||
See Also
|
||||
--------
|
||||
Voronoi
|
||||
|
||||
Notes
|
||||
-----
|
||||
Requires Matplotlib.
|
||||
|
||||
Examples
|
||||
--------
|
||||
Set of point:
|
||||
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> points = np.random.rand(10,2) #random
|
||||
|
||||
Voronoi diagram of the points:
|
||||
|
||||
>>> from scipy.spatial import Voronoi, voronoi_plot_2d
|
||||
>>> vor = Voronoi(points)
|
||||
|
||||
using `voronoi_plot_2d` for visualisation:
|
||||
|
||||
>>> fig = voronoi_plot_2d(vor)
|
||||
|
||||
using `voronoi_plot_2d` for visualisation with enhancements:
|
||||
|
||||
>>> fig = voronoi_plot_2d(vor, show_vertices=False, line_colors='orange',
|
||||
... line_width=2, line_alpha=0.6, point_size=2)
|
||||
>>> plt.show()
|
||||
|
||||
"""
|
||||
from matplotlib.collections import LineCollection
|
||||
|
||||
if vor.points.shape[1] != 2:
|
||||
raise ValueError("Voronoi diagram is not 2-D")
|
||||
|
||||
if kw.get('show_points', True):
|
||||
point_size = kw.get('point_size', None)
|
||||
ax.plot(vor.points[:,0], vor.points[:,1], '.', markersize=point_size)
|
||||
if kw.get('show_vertices', True):
|
||||
ax.plot(vor.vertices[:,0], vor.vertices[:,1], 'o')
|
||||
|
||||
line_colors = kw.get('line_colors', 'k')
|
||||
line_width = kw.get('line_width', 1.0)
|
||||
line_alpha = kw.get('line_alpha', 1.0)
|
||||
|
||||
center = vor.points.mean(axis=0)
|
||||
ptp_bound = vor.points.ptp(axis=0)
|
||||
|
||||
finite_segments = []
|
||||
infinite_segments = []
|
||||
for pointidx, simplex in zip(vor.ridge_points, vor.ridge_vertices):
|
||||
simplex = np.asarray(simplex)
|
||||
if np.all(simplex >= 0):
|
||||
finite_segments.append(vor.vertices[simplex])
|
||||
else:
|
||||
i = simplex[simplex >= 0][0] # finite end Voronoi vertex
|
||||
|
||||
t = vor.points[pointidx[1]] - vor.points[pointidx[0]] # tangent
|
||||
t /= np.linalg.norm(t)
|
||||
n = np.array([-t[1], t[0]]) # normal
|
||||
|
||||
midpoint = vor.points[pointidx].mean(axis=0)
|
||||
direction = np.sign(np.dot(midpoint - center, n)) * n
|
||||
if (vor.furthest_site):
|
||||
direction = -direction
|
||||
far_point = vor.vertices[i] + direction * ptp_bound.max()
|
||||
|
||||
infinite_segments.append([vor.vertices[i], far_point])
|
||||
|
||||
ax.add_collection(LineCollection(finite_segments,
|
||||
colors=line_colors,
|
||||
lw=line_width,
|
||||
alpha=line_alpha,
|
||||
linestyle='solid'))
|
||||
ax.add_collection(LineCollection(infinite_segments,
|
||||
colors=line_colors,
|
||||
lw=line_width,
|
||||
alpha=line_alpha,
|
||||
linestyle='dashed'))
|
||||
|
||||
_adjust_bounds(ax, vor.points)
|
||||
|
||||
return ax.figure
|
131
venv/Lib/site-packages/scipy/spatial/_procrustes.py
Normal file
131
venv/Lib/site-packages/scipy/spatial/_procrustes.py
Normal file
|
@ -0,0 +1,131 @@
|
|||
"""
|
||||
This module provides functions to perform full Procrustes analysis.
|
||||
|
||||
This code was originally written by Justin Kucynski and ported over from
|
||||
scikit-bio by Yoshiki Vazquez-Baeza.
|
||||
"""
|
||||
|
||||
import numpy as np
|
||||
from scipy.linalg import orthogonal_procrustes
|
||||
|
||||
|
||||
__all__ = ['procrustes']
|
||||
|
||||
|
||||
def procrustes(data1, data2):
|
||||
r"""Procrustes analysis, a similarity test for two data sets.
|
||||
|
||||
Each input matrix is a set of points or vectors (the rows of the matrix).
|
||||
The dimension of the space is the number of columns of each matrix. Given
|
||||
two identically sized matrices, procrustes standardizes both such that:
|
||||
|
||||
- :math:`tr(AA^{T}) = 1`.
|
||||
|
||||
- Both sets of points are centered around the origin.
|
||||
|
||||
Procrustes ([1]_, [2]_) then applies the optimal transform to the second
|
||||
matrix (including scaling/dilation, rotations, and reflections) to minimize
|
||||
:math:`M^{2}=\sum(data1-data2)^{2}`, or the sum of the squares of the
|
||||
pointwise differences between the two input datasets.
|
||||
|
||||
This function was not designed to handle datasets with different numbers of
|
||||
datapoints (rows). If two data sets have different dimensionality
|
||||
(different number of columns), simply add columns of zeros to the smaller
|
||||
of the two.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
data1 : array_like
|
||||
Matrix, n rows represent points in k (columns) space `data1` is the
|
||||
reference data, after it is standardised, the data from `data2` will be
|
||||
transformed to fit the pattern in `data1` (must have >1 unique points).
|
||||
data2 : array_like
|
||||
n rows of data in k space to be fit to `data1`. Must be the same
|
||||
shape ``(numrows, numcols)`` as data1 (must have >1 unique points).
|
||||
|
||||
Returns
|
||||
-------
|
||||
mtx1 : array_like
|
||||
A standardized version of `data1`.
|
||||
mtx2 : array_like
|
||||
The orientation of `data2` that best fits `data1`. Centered, but not
|
||||
necessarily :math:`tr(AA^{T}) = 1`.
|
||||
disparity : float
|
||||
:math:`M^{2}` as defined above.
|
||||
|
||||
Raises
|
||||
------
|
||||
ValueError
|
||||
If the input arrays are not two-dimensional.
|
||||
If the shape of the input arrays is different.
|
||||
If the input arrays have zero columns or zero rows.
|
||||
|
||||
See Also
|
||||
--------
|
||||
scipy.linalg.orthogonal_procrustes
|
||||
scipy.spatial.distance.directed_hausdorff : Another similarity test
|
||||
for two data sets
|
||||
|
||||
Notes
|
||||
-----
|
||||
- The disparity should not depend on the order of the input matrices, but
|
||||
the output matrices will, as only the first output matrix is guaranteed
|
||||
to be scaled such that :math:`tr(AA^{T}) = 1`.
|
||||
|
||||
- Duplicate data points are generally ok, duplicating a data point will
|
||||
increase its effect on the procrustes fit.
|
||||
|
||||
- The disparity scales as the number of points per input matrix.
|
||||
|
||||
References
|
||||
----------
|
||||
.. [1] Krzanowski, W. J. (2000). "Principles of Multivariate analysis".
|
||||
.. [2] Gower, J. C. (1975). "Generalized procrustes analysis".
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy.spatial import procrustes
|
||||
|
||||
The matrix ``b`` is a rotated, shifted, scaled and mirrored version of
|
||||
``a`` here:
|
||||
|
||||
>>> a = np.array([[1, 3], [1, 2], [1, 1], [2, 1]], 'd')
|
||||
>>> b = np.array([[4, -2], [4, -4], [4, -6], [2, -6]], 'd')
|
||||
>>> mtx1, mtx2, disparity = procrustes(a, b)
|
||||
>>> round(disparity)
|
||||
0.0
|
||||
|
||||
"""
|
||||
mtx1 = np.array(data1, dtype=np.double, copy=True)
|
||||
mtx2 = np.array(data2, dtype=np.double, copy=True)
|
||||
|
||||
if mtx1.ndim != 2 or mtx2.ndim != 2:
|
||||
raise ValueError("Input matrices must be two-dimensional")
|
||||
if mtx1.shape != mtx2.shape:
|
||||
raise ValueError("Input matrices must be of same shape")
|
||||
if mtx1.size == 0:
|
||||
raise ValueError("Input matrices must be >0 rows and >0 cols")
|
||||
|
||||
# translate all the data to the origin
|
||||
mtx1 -= np.mean(mtx1, 0)
|
||||
mtx2 -= np.mean(mtx2, 0)
|
||||
|
||||
norm1 = np.linalg.norm(mtx1)
|
||||
norm2 = np.linalg.norm(mtx2)
|
||||
|
||||
if norm1 == 0 or norm2 == 0:
|
||||
raise ValueError("Input matrices must contain >1 unique points")
|
||||
|
||||
# change scaling of data (in rows) such that trace(mtx*mtx') = 1
|
||||
mtx1 /= norm1
|
||||
mtx2 /= norm2
|
||||
|
||||
# transform mtx2 to minimize disparity
|
||||
R, s = orthogonal_procrustes(mtx1, mtx2)
|
||||
mtx2 = np.dot(mtx2, R.T) * s
|
||||
|
||||
# measure the dissimilarity between the two datasets
|
||||
disparity = np.sum(np.square(mtx1 - mtx2))
|
||||
|
||||
return mtx1, mtx2, disparity
|
||||
|
345
venv/Lib/site-packages/scipy/spatial/_spherical_voronoi.py
Normal file
345
venv/Lib/site-packages/scipy/spatial/_spherical_voronoi.py
Normal file
|
@ -0,0 +1,345 @@
|
|||
"""
|
||||
Spherical Voronoi Code
|
||||
|
||||
.. versionadded:: 0.18.0
|
||||
|
||||
"""
|
||||
#
|
||||
# Copyright (C) Tyler Reddy, Ross Hemsley, Edd Edmondson,
|
||||
# Nikolai Nowaczyk, Joe Pitt-Francis, 2015.
|
||||
#
|
||||
# Distributed under the same BSD license as SciPy.
|
||||
#
|
||||
|
||||
import warnings
|
||||
import numpy as np
|
||||
import scipy
|
||||
from . import _voronoi
|
||||
from scipy.spatial import cKDTree
|
||||
|
||||
__all__ = ['SphericalVoronoi']
|
||||
|
||||
|
||||
def calculate_solid_angles(R):
|
||||
"""Calculates the solid angles of plane triangles. Implements the method of
|
||||
Van Oosterom and Strackee [VanOosterom]_ with some modifications. Assumes
|
||||
that input points have unit norm."""
|
||||
# Original method uses a triple product `R1 . (R2 x R3)` for the numerator.
|
||||
# This is equal to the determinant of the matrix [R1 R2 R3], which can be
|
||||
# computed with better stability.
|
||||
numerator = np.linalg.det(R)
|
||||
denominator = 1 + (np.einsum('ij,ij->i', R[:, 0], R[:, 1]) +
|
||||
np.einsum('ij,ij->i', R[:, 1], R[:, 2]) +
|
||||
np.einsum('ij,ij->i', R[:, 2], R[:, 0]))
|
||||
return np.abs(2 * np.arctan2(numerator, denominator))
|
||||
|
||||
|
||||
class SphericalVoronoi:
|
||||
""" Voronoi diagrams on the surface of a sphere.
|
||||
|
||||
.. versionadded:: 0.18.0
|
||||
|
||||
Parameters
|
||||
----------
|
||||
points : ndarray of floats, shape (npoints, ndim)
|
||||
Coordinates of points from which to construct a spherical
|
||||
Voronoi diagram.
|
||||
radius : float, optional
|
||||
Radius of the sphere (Default: 1)
|
||||
center : ndarray of floats, shape (ndim,)
|
||||
Center of sphere (Default: origin)
|
||||
threshold : float
|
||||
Threshold for detecting duplicate points and
|
||||
mismatches between points and sphere parameters.
|
||||
(Default: 1e-06)
|
||||
|
||||
Attributes
|
||||
----------
|
||||
points : double array of shape (npoints, ndim)
|
||||
the points in `ndim` dimensions to generate the Voronoi diagram from
|
||||
radius : double
|
||||
radius of the sphere
|
||||
center : double array of shape (ndim,)
|
||||
center of the sphere
|
||||
vertices : double array of shape (nvertices, ndim)
|
||||
Voronoi vertices corresponding to points
|
||||
regions : list of list of integers of shape (npoints, _ )
|
||||
the n-th entry is a list consisting of the indices
|
||||
of the vertices belonging to the n-th point in points
|
||||
|
||||
Methods
|
||||
----------
|
||||
calculate_areas
|
||||
Calculates the areas of the Voronoi regions. For 2D point sets, the
|
||||
regions are circular arcs. The sum of the areas is `2 * pi * radius`.
|
||||
For 3D point sets, the regions are spherical polygons. The sum of the
|
||||
areas is `4 * pi * radius**2`.
|
||||
|
||||
Raises
|
||||
------
|
||||
ValueError
|
||||
If there are duplicates in `points`.
|
||||
If the provided `radius` is not consistent with `points`.
|
||||
|
||||
Notes
|
||||
-----
|
||||
The spherical Voronoi diagram algorithm proceeds as follows. The Convex
|
||||
Hull of the input points (generators) is calculated, and is equivalent to
|
||||
their Delaunay triangulation on the surface of the sphere [Caroli]_.
|
||||
The Convex Hull neighbour information is then used to
|
||||
order the Voronoi region vertices around each generator. The latter
|
||||
approach is substantially less sensitive to floating point issues than
|
||||
angle-based methods of Voronoi region vertex sorting.
|
||||
|
||||
Empirical assessment of spherical Voronoi algorithm performance suggests
|
||||
quadratic time complexity (loglinear is optimal, but algorithms are more
|
||||
challenging to implement).
|
||||
|
||||
References
|
||||
----------
|
||||
.. [Caroli] Caroli et al. Robust and Efficient Delaunay triangulations of
|
||||
points on or close to a sphere. Research Report RR-7004, 2009.
|
||||
|
||||
.. [VanOosterom] Van Oosterom and Strackee. The solid angle of a plane
|
||||
triangle. IEEE Transactions on Biomedical Engineering,
|
||||
2, 1983, pp 125--126.
|
||||
|
||||
See Also
|
||||
--------
|
||||
Voronoi : Conventional Voronoi diagrams in N dimensions.
|
||||
|
||||
Examples
|
||||
--------
|
||||
Do some imports and take some points on a cube:
|
||||
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> from scipy.spatial import SphericalVoronoi, geometric_slerp
|
||||
>>> from mpl_toolkits.mplot3d import proj3d
|
||||
>>> # set input data
|
||||
>>> points = np.array([[0, 0, 1], [0, 0, -1], [1, 0, 0],
|
||||
... [0, 1, 0], [0, -1, 0], [-1, 0, 0], ])
|
||||
|
||||
Calculate the spherical Voronoi diagram:
|
||||
|
||||
>>> radius = 1
|
||||
>>> center = np.array([0, 0, 0])
|
||||
>>> sv = SphericalVoronoi(points, radius, center)
|
||||
|
||||
Generate plot:
|
||||
|
||||
>>> # sort vertices (optional, helpful for plotting)
|
||||
>>> sv.sort_vertices_of_regions()
|
||||
>>> t_vals = np.linspace(0, 1, 2000)
|
||||
>>> fig = plt.figure()
|
||||
>>> ax = fig.add_subplot(111, projection='3d')
|
||||
>>> # plot the unit sphere for reference (optional)
|
||||
>>> u = np.linspace(0, 2 * np.pi, 100)
|
||||
>>> v = np.linspace(0, np.pi, 100)
|
||||
>>> x = np.outer(np.cos(u), np.sin(v))
|
||||
>>> y = np.outer(np.sin(u), np.sin(v))
|
||||
>>> z = np.outer(np.ones(np.size(u)), np.cos(v))
|
||||
>>> ax.plot_surface(x, y, z, color='y', alpha=0.1)
|
||||
>>> # plot generator points
|
||||
>>> ax.scatter(points[:, 0], points[:, 1], points[:, 2], c='b')
|
||||
>>> # plot Voronoi vertices
|
||||
>>> ax.scatter(sv.vertices[:, 0], sv.vertices[:, 1], sv.vertices[:, 2],
|
||||
... c='g')
|
||||
>>> # indicate Voronoi regions (as Euclidean polygons)
|
||||
>>> for region in sv.regions:
|
||||
... n = len(region)
|
||||
... for i in range(n):
|
||||
... start = sv.vertices[region][i]
|
||||
... end = sv.vertices[region][(i + 1) % n]
|
||||
... result = geometric_slerp(start, end, t_vals)
|
||||
... ax.plot(result[..., 0],
|
||||
... result[..., 1],
|
||||
... result[..., 2],
|
||||
... c='k')
|
||||
>>> ax.azim = 10
|
||||
>>> ax.elev = 40
|
||||
>>> _ = ax.set_xticks([])
|
||||
>>> _ = ax.set_yticks([])
|
||||
>>> _ = ax.set_zticks([])
|
||||
>>> fig.set_size_inches(4, 4)
|
||||
>>> plt.show()
|
||||
|
||||
"""
|
||||
def __init__(self, points, radius=1, center=None, threshold=1e-06):
|
||||
|
||||
if radius is None:
|
||||
radius = 1.
|
||||
warnings.warn('`radius` is `None`. '
|
||||
'This will raise an error in a future version. '
|
||||
'Please provide a floating point number '
|
||||
'(i.e. `radius=1`).',
|
||||
DeprecationWarning)
|
||||
|
||||
self.radius = float(radius)
|
||||
self.points = np.array(points).astype(np.double)
|
||||
self._dim = len(points[0])
|
||||
if center is None:
|
||||
self.center = np.zeros(self._dim)
|
||||
else:
|
||||
self.center = np.array(center, dtype=float)
|
||||
|
||||
# test degenerate input
|
||||
self._rank = np.linalg.matrix_rank(self.points - self.points[0],
|
||||
tol=threshold * self.radius)
|
||||
if self._rank < self._dim:
|
||||
raise ValueError("Rank of input points must be at least {0}".format(self._dim))
|
||||
|
||||
if cKDTree(self.points).query_pairs(threshold * self.radius):
|
||||
raise ValueError("Duplicate generators present.")
|
||||
|
||||
radii = np.linalg.norm(self.points - self.center, axis=1)
|
||||
max_discrepancy = np.abs(radii - self.radius).max()
|
||||
if max_discrepancy >= threshold * self.radius:
|
||||
raise ValueError("Radius inconsistent with generators.")
|
||||
|
||||
self._calc_vertices_regions()
|
||||
|
||||
def _calc_vertices_regions(self):
|
||||
"""
|
||||
Calculates the Voronoi vertices and regions of the generators stored
|
||||
in self.points. The vertices will be stored in self.vertices and the
|
||||
regions in self.regions.
|
||||
|
||||
This algorithm was discussed at PyData London 2015 by
|
||||
Tyler Reddy, Ross Hemsley and Nikolai Nowaczyk
|
||||
"""
|
||||
# get Convex Hull
|
||||
conv = scipy.spatial.ConvexHull(self.points)
|
||||
# get circumcenters of Convex Hull triangles from facet equations
|
||||
# for 3D input circumcenters will have shape: (2N-4, 3)
|
||||
self.vertices = self.radius * conv.equations[:, :-1] + self.center
|
||||
self._simplices = conv.simplices
|
||||
# calculate regions from triangulation
|
||||
# for 3D input simplex_indices will have shape: (2N-4,)
|
||||
simplex_indices = np.arange(len(self._simplices))
|
||||
# for 3D input tri_indices will have shape: (6N-12,)
|
||||
tri_indices = np.column_stack([simplex_indices] * self._dim).ravel()
|
||||
# for 3D input point_indices will have shape: (6N-12,)
|
||||
point_indices = self._simplices.ravel()
|
||||
# for 3D input indices will have shape: (6N-12,)
|
||||
indices = np.argsort(point_indices, kind='mergesort')
|
||||
# for 3D input flattened_groups will have shape: (6N-12,)
|
||||
flattened_groups = tri_indices[indices].astype(np.intp)
|
||||
# intervals will have shape: (N+1,)
|
||||
intervals = np.cumsum(np.bincount(point_indices + 1))
|
||||
# split flattened groups to get nested list of unsorted regions
|
||||
groups = [list(flattened_groups[intervals[i]:intervals[i + 1]])
|
||||
for i in range(len(intervals) - 1)]
|
||||
self.regions = groups
|
||||
|
||||
def sort_vertices_of_regions(self):
|
||||
"""Sort indices of the vertices to be (counter-)clockwise ordered.
|
||||
|
||||
Raises
|
||||
------
|
||||
TypeError
|
||||
If the points are not three-dimensional.
|
||||
|
||||
Notes
|
||||
-----
|
||||
For each region in regions, it sorts the indices of the Voronoi
|
||||
vertices such that the resulting points are in a clockwise or
|
||||
counterclockwise order around the generator point.
|
||||
|
||||
This is done as follows: Recall that the n-th region in regions
|
||||
surrounds the n-th generator in points and that the k-th
|
||||
Voronoi vertex in vertices is the circumcenter of the k-th triangle
|
||||
in self._simplices. For each region n, we choose the first triangle
|
||||
(=Voronoi vertex) in self._simplices and a vertex of that triangle
|
||||
not equal to the center n. These determine a unique neighbor of that
|
||||
triangle, which is then chosen as the second triangle. The second
|
||||
triangle will have a unique vertex not equal to the current vertex or
|
||||
the center. This determines a unique neighbor of the second triangle,
|
||||
which is then chosen as the third triangle and so forth. We proceed
|
||||
through all the triangles (=Voronoi vertices) belonging to the
|
||||
generator in points and obtain a sorted version of the vertices
|
||||
of its surrounding region.
|
||||
"""
|
||||
if self._dim != 3:
|
||||
raise TypeError("Only supported for three-dimensional point sets")
|
||||
_voronoi.sort_vertices_of_regions(self._simplices, self.regions)
|
||||
|
||||
def _calculate_areas_3d(self):
|
||||
self.sort_vertices_of_regions()
|
||||
sizes = [len(region) for region in self.regions]
|
||||
csizes = np.cumsum(sizes)
|
||||
num_regions = csizes[-1]
|
||||
|
||||
# We create a set of triangles consisting of one point and two Voronoi
|
||||
# vertices. The vertices of each triangle are adjacent in the sorted
|
||||
# regions list.
|
||||
point_indices = [i for i, size in enumerate(sizes)
|
||||
for j in range(size)]
|
||||
|
||||
nbrs1 = np.array([r for region in self.regions for r in region])
|
||||
|
||||
# The calculation of nbrs2 is a vectorized version of:
|
||||
# np.array([r for region in self.regions for r in np.roll(region, 1)])
|
||||
nbrs2 = np.roll(nbrs1, 1)
|
||||
indices = np.roll(csizes, 1)
|
||||
indices[0] = 0
|
||||
nbrs2[indices] = nbrs1[csizes - 1]
|
||||
|
||||
# Normalize points and vertices.
|
||||
pnormalized = (self.points - self.center) / self.radius
|
||||
vnormalized = (self.vertices - self.center) / self.radius
|
||||
|
||||
# Create the complete set of triangles and calculate their solid angles
|
||||
triangles = np.hstack([pnormalized[point_indices],
|
||||
vnormalized[nbrs1],
|
||||
vnormalized[nbrs2]
|
||||
]).reshape((num_regions, 3, 3))
|
||||
triangle_solid_angles = calculate_solid_angles(triangles)
|
||||
|
||||
# Sum the solid angles of the triangles in each region
|
||||
solid_angles = np.cumsum(triangle_solid_angles)[csizes - 1]
|
||||
solid_angles[1:] -= solid_angles[:-1]
|
||||
|
||||
# Get polygon areas using A = omega * r**2
|
||||
return solid_angles * self.radius**2
|
||||
|
||||
def _calculate_areas_2d(self):
|
||||
# Find start and end points of arcs
|
||||
arcs = self.points[self._simplices] - self.center
|
||||
|
||||
# Calculate the angle subtended by arcs
|
||||
cosine = np.einsum('ij,ij->i', arcs[:, 0], arcs[:, 1])
|
||||
sine = np.abs(np.linalg.det(arcs))
|
||||
theta = np.arctan2(sine, cosine)
|
||||
|
||||
# Get areas using A = r * theta
|
||||
areas = self.radius * theta
|
||||
|
||||
# Correct arcs which go the wrong way (single-hemisphere inputs)
|
||||
signs = np.sign(np.einsum('ij,ij->i', arcs[:, 0],
|
||||
self.vertices - self.center))
|
||||
indices = np.where(signs < 0)
|
||||
areas[indices] = 2 * np.pi * self.radius - areas[indices]
|
||||
return areas
|
||||
|
||||
def calculate_areas(self):
|
||||
"""Calculates the areas of the Voronoi regions.
|
||||
|
||||
For 2D point sets, the regions are circular arcs. The sum of the areas
|
||||
is `2 * pi * radius`.
|
||||
|
||||
For 3D point sets, the regions are spherical polygons. The sum of the
|
||||
areas is `4 * pi * radius**2`.
|
||||
|
||||
.. versionadded:: 1.5.0
|
||||
|
||||
Returns
|
||||
-------
|
||||
areas : double array of shape (npoints,)
|
||||
The areas of the Voronoi regions.
|
||||
"""
|
||||
if self._dim == 2:
|
||||
return self._calculate_areas_2d()
|
||||
elif self._dim == 3:
|
||||
return self._calculate_areas_3d()
|
||||
else:
|
||||
raise TypeError("Only supported for 2D and 3D point sets")
|
BIN
venv/Lib/site-packages/scipy/spatial/_voronoi.cp36-win32.pyd
Normal file
BIN
venv/Lib/site-packages/scipy/spatial/_voronoi.cp36-win32.pyd
Normal file
Binary file not shown.
5
venv/Lib/site-packages/scipy/spatial/_voronoi.pyi
Normal file
5
venv/Lib/site-packages/scipy/spatial/_voronoi.pyi
Normal file
|
@ -0,0 +1,5 @@
|
|||
from typing import List
|
||||
|
||||
import numpy as np
|
||||
|
||||
def sort_vertices_of_regions(simplices: np.ndarray, regions: List[List[int]]) -> None: ...
|
BIN
venv/Lib/site-packages/scipy/spatial/ckdtree.cp36-win32.pyd
Normal file
BIN
venv/Lib/site-packages/scipy/spatial/ckdtree.cp36-win32.pyd
Normal file
Binary file not shown.
1
venv/Lib/site-packages/scipy/spatial/ckdtree.pyi
Normal file
1
venv/Lib/site-packages/scipy/spatial/ckdtree.pyi
Normal file
|
@ -0,0 +1 @@
|
|||
class cKDTree: ...
|
2784
venv/Lib/site-packages/scipy/spatial/distance.py
Normal file
2784
venv/Lib/site-packages/scipy/spatial/distance.py
Normal file
File diff suppressed because it is too large
Load diff
999
venv/Lib/site-packages/scipy/spatial/kdtree.py
Normal file
999
venv/Lib/site-packages/scipy/spatial/kdtree.py
Normal file
|
@ -0,0 +1,999 @@
|
|||
# Copyright Anne M. Archibald 2008
|
||||
# Released under the scipy license
|
||||
import numpy as np
|
||||
from heapq import heappush, heappop
|
||||
import scipy.sparse
|
||||
|
||||
__all__ = ['minkowski_distance_p', 'minkowski_distance',
|
||||
'distance_matrix',
|
||||
'Rectangle', 'KDTree']
|
||||
|
||||
|
||||
def minkowski_distance_p(x, y, p=2):
|
||||
"""
|
||||
Compute the pth power of the L**p distance between two arrays.
|
||||
|
||||
For efficiency, this function computes the L**p distance but does
|
||||
not extract the pth root. If `p` is 1 or infinity, this is equal to
|
||||
the actual L**p distance.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : (M, K) array_like
|
||||
Input array.
|
||||
y : (N, K) array_like
|
||||
Input array.
|
||||
p : float, 1 <= p <= infinity
|
||||
Which Minkowski p-norm to use.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy.spatial import minkowski_distance_p
|
||||
>>> minkowski_distance_p([[0,0],[0,0]], [[1,1],[0,1]])
|
||||
array([2, 1])
|
||||
|
||||
"""
|
||||
x = np.asarray(x)
|
||||
y = np.asarray(y)
|
||||
|
||||
# Find smallest common datatype with float64 (return type of this function) - addresses #10262.
|
||||
# Don't just cast to float64 for complex input case.
|
||||
common_datatype = np.promote_types(np.promote_types(x.dtype, y.dtype), 'float64')
|
||||
|
||||
# Make sure x and y are NumPy arrays of correct datatype.
|
||||
x = x.astype(common_datatype)
|
||||
y = y.astype(common_datatype)
|
||||
|
||||
if p == np.inf:
|
||||
return np.amax(np.abs(y-x), axis=-1)
|
||||
elif p == 1:
|
||||
return np.sum(np.abs(y-x), axis=-1)
|
||||
else:
|
||||
return np.sum(np.abs(y-x)**p, axis=-1)
|
||||
|
||||
|
||||
def minkowski_distance(x, y, p=2):
|
||||
"""
|
||||
Compute the L**p distance between two arrays.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : (M, K) array_like
|
||||
Input array.
|
||||
y : (N, K) array_like
|
||||
Input array.
|
||||
p : float, 1 <= p <= infinity
|
||||
Which Minkowski p-norm to use.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy.spatial import minkowski_distance
|
||||
>>> minkowski_distance([[0,0],[0,0]], [[1,1],[0,1]])
|
||||
array([ 1.41421356, 1. ])
|
||||
|
||||
"""
|
||||
x = np.asarray(x)
|
||||
y = np.asarray(y)
|
||||
if p == np.inf or p == 1:
|
||||
return minkowski_distance_p(x, y, p)
|
||||
else:
|
||||
return minkowski_distance_p(x, y, p)**(1./p)
|
||||
|
||||
|
||||
class Rectangle(object):
|
||||
"""Hyperrectangle class.
|
||||
|
||||
Represents a Cartesian product of intervals.
|
||||
"""
|
||||
def __init__(self, maxes, mins):
|
||||
"""Construct a hyperrectangle."""
|
||||
self.maxes = np.maximum(maxes,mins).astype(float)
|
||||
self.mins = np.minimum(maxes,mins).astype(float)
|
||||
self.m, = self.maxes.shape
|
||||
|
||||
def __repr__(self):
|
||||
return "<Rectangle %s>" % list(zip(self.mins, self.maxes))
|
||||
|
||||
def volume(self):
|
||||
"""Total volume."""
|
||||
return np.prod(self.maxes-self.mins)
|
||||
|
||||
def split(self, d, split):
|
||||
"""
|
||||
Produce two hyperrectangles by splitting.
|
||||
|
||||
In general, if you need to compute maximum and minimum
|
||||
distances to the children, it can be done more efficiently
|
||||
by updating the maximum and minimum distances to the parent.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
d : int
|
||||
Axis to split hyperrectangle along.
|
||||
split : float
|
||||
Position along axis `d` to split at.
|
||||
|
||||
"""
|
||||
mid = np.copy(self.maxes)
|
||||
mid[d] = split
|
||||
less = Rectangle(self.mins, mid)
|
||||
mid = np.copy(self.mins)
|
||||
mid[d] = split
|
||||
greater = Rectangle(mid, self.maxes)
|
||||
return less, greater
|
||||
|
||||
def min_distance_point(self, x, p=2.):
|
||||
"""
|
||||
Return the minimum distance between input and points in the hyperrectangle.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : array_like
|
||||
Input.
|
||||
p : float, optional
|
||||
Input.
|
||||
|
||||
"""
|
||||
return minkowski_distance(0, np.maximum(0,np.maximum(self.mins-x,x-self.maxes)),p)
|
||||
|
||||
def max_distance_point(self, x, p=2.):
|
||||
"""
|
||||
Return the maximum distance between input and points in the hyperrectangle.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : array_like
|
||||
Input array.
|
||||
p : float, optional
|
||||
Input.
|
||||
|
||||
"""
|
||||
return minkowski_distance(0, np.maximum(self.maxes-x,x-self.mins),p)
|
||||
|
||||
def min_distance_rectangle(self, other, p=2.):
|
||||
"""
|
||||
Compute the minimum distance between points in the two hyperrectangles.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
other : hyperrectangle
|
||||
Input.
|
||||
p : float
|
||||
Input.
|
||||
|
||||
"""
|
||||
return minkowski_distance(0, np.maximum(0,np.maximum(self.mins-other.maxes,other.mins-self.maxes)),p)
|
||||
|
||||
def max_distance_rectangle(self, other, p=2.):
|
||||
"""
|
||||
Compute the maximum distance between points in the two hyperrectangles.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
other : hyperrectangle
|
||||
Input.
|
||||
p : float, optional
|
||||
Input.
|
||||
|
||||
"""
|
||||
return minkowski_distance(0, np.maximum(self.maxes-other.mins,other.maxes-self.mins),p)
|
||||
|
||||
|
||||
class KDTree(object):
|
||||
"""
|
||||
kd-tree for quick nearest-neighbor lookup
|
||||
|
||||
This class provides an index into a set of k-D points which
|
||||
can be used to rapidly look up the nearest neighbors of any point.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
data : (N,K) array_like
|
||||
The data points to be indexed. This array is not copied, and
|
||||
so modifying this data will result in bogus results.
|
||||
leafsize : int, optional
|
||||
The number of points at which the algorithm switches over to
|
||||
brute-force. Has to be positive.
|
||||
|
||||
Raises
|
||||
------
|
||||
RuntimeError
|
||||
The maximum recursion limit can be exceeded for large data
|
||||
sets. If this happens, either increase the value for the `leafsize`
|
||||
parameter or increase the recursion limit by::
|
||||
|
||||
>>> import sys
|
||||
>>> sys.setrecursionlimit(10000)
|
||||
|
||||
See Also
|
||||
--------
|
||||
cKDTree : Implementation of `KDTree` in Cython
|
||||
|
||||
Notes
|
||||
-----
|
||||
The algorithm used is described in Maneewongvatana and Mount 1999.
|
||||
The general idea is that the kd-tree is a binary tree, each of whose
|
||||
nodes represents an axis-aligned hyperrectangle. Each node specifies
|
||||
an axis and splits the set of points based on whether their coordinate
|
||||
along that axis is greater than or less than a particular value.
|
||||
|
||||
During construction, the axis and splitting point are chosen by the
|
||||
"sliding midpoint" rule, which ensures that the cells do not all
|
||||
become long and thin.
|
||||
|
||||
The tree can be queried for the r closest neighbors of any given point
|
||||
(optionally returning only those within some maximum distance of the
|
||||
point). It can also be queried, with a substantial gain in efficiency,
|
||||
for the r approximate closest neighbors.
|
||||
|
||||
For large dimensions (20 is already large) do not expect this to run
|
||||
significantly faster than brute force. High-dimensional nearest-neighbor
|
||||
queries are a substantial open problem in computer science.
|
||||
|
||||
The tree also supports all-neighbors queries, both with arrays of points
|
||||
and with other kd-trees. These do use a reasonably efficient algorithm,
|
||||
but the kd-tree is not necessarily the best data structure for this
|
||||
sort of calculation.
|
||||
|
||||
"""
|
||||
def __init__(self, data, leafsize=10):
|
||||
self.data = np.asarray(data)
|
||||
if self.data.dtype.kind == 'c':
|
||||
raise TypeError("KDTree does not work with complex data")
|
||||
|
||||
self.n, self.m = np.shape(self.data)
|
||||
self.leafsize = int(leafsize)
|
||||
if self.leafsize < 1:
|
||||
raise ValueError("leafsize must be at least 1")
|
||||
self.maxes = np.amax(self.data,axis=0)
|
||||
self.mins = np.amin(self.data,axis=0)
|
||||
|
||||
self.tree = self.__build(np.arange(self.n), self.maxes, self.mins)
|
||||
|
||||
class node(object):
|
||||
def __lt__(self, other):
|
||||
return id(self) < id(other)
|
||||
|
||||
def __gt__(self, other):
|
||||
return id(self) > id(other)
|
||||
|
||||
def __le__(self, other):
|
||||
return id(self) <= id(other)
|
||||
|
||||
def __ge__(self, other):
|
||||
return id(self) >= id(other)
|
||||
|
||||
def __eq__(self, other):
|
||||
return id(self) == id(other)
|
||||
|
||||
class leafnode(node):
|
||||
def __init__(self, idx):
|
||||
self.idx = idx
|
||||
self.children = len(idx)
|
||||
|
||||
class innernode(node):
|
||||
def __init__(self, split_dim, split, less, greater):
|
||||
self.split_dim = split_dim
|
||||
self.split = split
|
||||
self.less = less
|
||||
self.greater = greater
|
||||
self.children = less.children+greater.children
|
||||
|
||||
def __build(self, idx, maxes, mins):
|
||||
if len(idx) <= self.leafsize:
|
||||
return KDTree.leafnode(idx)
|
||||
else:
|
||||
data = self.data[idx]
|
||||
# maxes = np.amax(data,axis=0)
|
||||
# mins = np.amin(data,axis=0)
|
||||
d = np.argmax(maxes-mins)
|
||||
maxval = maxes[d]
|
||||
minval = mins[d]
|
||||
if maxval == minval:
|
||||
# all points are identical; warn user?
|
||||
return KDTree.leafnode(idx)
|
||||
data = data[:,d]
|
||||
|
||||
# sliding midpoint rule; see Maneewongvatana and Mount 1999
|
||||
# for arguments that this is a good idea.
|
||||
split = (maxval+minval)/2
|
||||
less_idx = np.nonzero(data <= split)[0]
|
||||
greater_idx = np.nonzero(data > split)[0]
|
||||
if len(less_idx) == 0:
|
||||
split = np.amin(data)
|
||||
less_idx = np.nonzero(data <= split)[0]
|
||||
greater_idx = np.nonzero(data > split)[0]
|
||||
if len(greater_idx) == 0:
|
||||
split = np.amax(data)
|
||||
less_idx = np.nonzero(data < split)[0]
|
||||
greater_idx = np.nonzero(data >= split)[0]
|
||||
if len(less_idx) == 0:
|
||||
# _still_ zero? all must have the same value
|
||||
if not np.all(data == data[0]):
|
||||
raise ValueError("Troublesome data array: %s" % data)
|
||||
split = data[0]
|
||||
less_idx = np.arange(len(data)-1)
|
||||
greater_idx = np.array([len(data)-1])
|
||||
|
||||
lessmaxes = np.copy(maxes)
|
||||
lessmaxes[d] = split
|
||||
greatermins = np.copy(mins)
|
||||
greatermins[d] = split
|
||||
return KDTree.innernode(d, split,
|
||||
self.__build(idx[less_idx],lessmaxes,mins),
|
||||
self.__build(idx[greater_idx],maxes,greatermins))
|
||||
|
||||
def __query(self, x, k=1, eps=0, p=2, distance_upper_bound=np.inf):
|
||||
|
||||
side_distances = np.maximum(0,np.maximum(x-self.maxes,self.mins-x))
|
||||
if p != np.inf:
|
||||
side_distances **= p
|
||||
min_distance = np.sum(side_distances)
|
||||
else:
|
||||
min_distance = np.amax(side_distances)
|
||||
|
||||
# priority queue for chasing nodes
|
||||
# entries are:
|
||||
# minimum distance between the cell and the target
|
||||
# distances between the nearest side of the cell and the target
|
||||
# the head node of the cell
|
||||
q = [(min_distance,
|
||||
tuple(side_distances),
|
||||
self.tree)]
|
||||
# priority queue for the nearest neighbors
|
||||
# furthest known neighbor first
|
||||
# entries are (-distance**p, i)
|
||||
neighbors = []
|
||||
|
||||
if eps == 0:
|
||||
epsfac = 1
|
||||
elif p == np.inf:
|
||||
epsfac = 1/(1+eps)
|
||||
else:
|
||||
epsfac = 1/(1+eps)**p
|
||||
|
||||
if p != np.inf and distance_upper_bound != np.inf:
|
||||
distance_upper_bound = distance_upper_bound**p
|
||||
|
||||
while q:
|
||||
min_distance, side_distances, node = heappop(q)
|
||||
if isinstance(node, KDTree.leafnode):
|
||||
# brute-force
|
||||
data = self.data[node.idx]
|
||||
ds = minkowski_distance_p(data,x[np.newaxis,:],p)
|
||||
for i in range(len(ds)):
|
||||
if ds[i] < distance_upper_bound:
|
||||
if len(neighbors) == k:
|
||||
heappop(neighbors)
|
||||
heappush(neighbors, (-ds[i], node.idx[i]))
|
||||
if len(neighbors) == k:
|
||||
distance_upper_bound = -neighbors[0][0]
|
||||
else:
|
||||
# we don't push cells that are too far onto the queue at all,
|
||||
# but since the distance_upper_bound decreases, we might get
|
||||
# here even if the cell's too far
|
||||
if min_distance > distance_upper_bound*epsfac:
|
||||
# since this is the nearest cell, we're done, bail out
|
||||
break
|
||||
# compute minimum distances to the children and push them on
|
||||
if x[node.split_dim] < node.split:
|
||||
near, far = node.less, node.greater
|
||||
else:
|
||||
near, far = node.greater, node.less
|
||||
|
||||
# near child is at the same distance as the current node
|
||||
heappush(q,(min_distance, side_distances, near))
|
||||
|
||||
# far child is further by an amount depending only
|
||||
# on the split value
|
||||
sd = list(side_distances)
|
||||
if p == np.inf:
|
||||
min_distance = max(min_distance, abs(node.split-x[node.split_dim]))
|
||||
elif p == 1:
|
||||
sd[node.split_dim] = np.abs(node.split-x[node.split_dim])
|
||||
min_distance = min_distance - side_distances[node.split_dim] + sd[node.split_dim]
|
||||
else:
|
||||
sd[node.split_dim] = np.abs(node.split-x[node.split_dim])**p
|
||||
min_distance = min_distance - side_distances[node.split_dim] + sd[node.split_dim]
|
||||
|
||||
# far child might be too far, if so, don't bother pushing it
|
||||
if min_distance <= distance_upper_bound*epsfac:
|
||||
heappush(q,(min_distance, tuple(sd), far))
|
||||
|
||||
if p == np.inf:
|
||||
return sorted([(-d,i) for (d,i) in neighbors])
|
||||
else:
|
||||
return sorted([((-d)**(1./p),i) for (d,i) in neighbors])
|
||||
|
||||
def query(self, x, k=1, eps=0, p=2, distance_upper_bound=np.inf):
|
||||
"""
|
||||
Query the kd-tree for nearest neighbors
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : array_like, last dimension self.m
|
||||
An array of points to query.
|
||||
k : int, optional
|
||||
The number of nearest neighbors to return.
|
||||
eps : nonnegative float, optional
|
||||
Return approximate nearest neighbors; the kth returned value
|
||||
is guaranteed to be no further than (1+eps) times the
|
||||
distance to the real kth nearest neighbor.
|
||||
p : float, 1<=p<=infinity, optional
|
||||
Which Minkowski p-norm to use.
|
||||
1 is the sum-of-absolute-values "Manhattan" distance
|
||||
2 is the usual Euclidean distance
|
||||
infinity is the maximum-coordinate-difference distance
|
||||
distance_upper_bound : nonnegative float, optional
|
||||
Return only neighbors within this distance. This is used to prune
|
||||
tree searches, so if you are doing a series of nearest-neighbor
|
||||
queries, it may help to supply the distance to the nearest neighbor
|
||||
of the most recent point.
|
||||
|
||||
Returns
|
||||
-------
|
||||
d : float or array of floats
|
||||
The distances to the nearest neighbors.
|
||||
If x has shape tuple+(self.m,), then d has shape tuple if
|
||||
k is one, or tuple+(k,) if k is larger than one. Missing
|
||||
neighbors (e.g. when k > n or distance_upper_bound is
|
||||
given) are indicated with infinite distances. If k is None,
|
||||
then d is an object array of shape tuple, containing lists
|
||||
of distances. In either case the hits are sorted by distance
|
||||
(nearest first).
|
||||
i : integer or array of integers
|
||||
The locations of the neighbors in self.data. i is the same
|
||||
shape as d.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy import spatial
|
||||
>>> x, y = np.mgrid[0:5, 2:8]
|
||||
>>> tree = spatial.KDTree(list(zip(x.ravel(), y.ravel())))
|
||||
>>> tree.data
|
||||
array([[0, 2],
|
||||
[0, 3],
|
||||
[0, 4],
|
||||
[0, 5],
|
||||
[0, 6],
|
||||
[0, 7],
|
||||
[1, 2],
|
||||
[1, 3],
|
||||
[1, 4],
|
||||
[1, 5],
|
||||
[1, 6],
|
||||
[1, 7],
|
||||
[2, 2],
|
||||
[2, 3],
|
||||
[2, 4],
|
||||
[2, 5],
|
||||
[2, 6],
|
||||
[2, 7],
|
||||
[3, 2],
|
||||
[3, 3],
|
||||
[3, 4],
|
||||
[3, 5],
|
||||
[3, 6],
|
||||
[3, 7],
|
||||
[4, 2],
|
||||
[4, 3],
|
||||
[4, 4],
|
||||
[4, 5],
|
||||
[4, 6],
|
||||
[4, 7]])
|
||||
>>> pts = np.array([[0, 0], [2.1, 2.9]])
|
||||
>>> tree.query(pts)
|
||||
(array([ 2. , 0.14142136]), array([ 0, 13]))
|
||||
>>> tree.query(pts[0])
|
||||
(2.0, 0)
|
||||
|
||||
"""
|
||||
x = np.asarray(x)
|
||||
if x.dtype.kind == 'c':
|
||||
raise TypeError("KDTree does not work with complex data")
|
||||
if np.shape(x)[-1] != self.m:
|
||||
raise ValueError("x must consist of vectors of length %d but has shape %s" % (self.m, np.shape(x)))
|
||||
if p < 1:
|
||||
raise ValueError("Only p-norms with 1<=p<=infinity permitted")
|
||||
retshape = np.shape(x)[:-1]
|
||||
if retshape != ():
|
||||
if k is None:
|
||||
dd = np.empty(retshape,dtype=object)
|
||||
ii = np.empty(retshape,dtype=object)
|
||||
elif k > 1:
|
||||
dd = np.empty(retshape+(k,),dtype=float)
|
||||
dd.fill(np.inf)
|
||||
ii = np.empty(retshape+(k,),dtype=int)
|
||||
ii.fill(self.n)
|
||||
elif k == 1:
|
||||
dd = np.empty(retshape,dtype=float)
|
||||
dd.fill(np.inf)
|
||||
ii = np.empty(retshape,dtype=int)
|
||||
ii.fill(self.n)
|
||||
else:
|
||||
raise ValueError("Requested %s nearest neighbors; acceptable numbers are integers greater than or equal to one, or None")
|
||||
for c in np.ndindex(retshape):
|
||||
hits = self.__query(x[c], k=k, eps=eps, p=p, distance_upper_bound=distance_upper_bound)
|
||||
if k is None:
|
||||
dd[c] = [d for (d,i) in hits]
|
||||
ii[c] = [i for (d,i) in hits]
|
||||
elif k > 1:
|
||||
for j in range(len(hits)):
|
||||
dd[c+(j,)], ii[c+(j,)] = hits[j]
|
||||
elif k == 1:
|
||||
if len(hits) > 0:
|
||||
dd[c], ii[c] = hits[0]
|
||||
else:
|
||||
dd[c] = np.inf
|
||||
ii[c] = self.n
|
||||
return dd, ii
|
||||
else:
|
||||
hits = self.__query(x, k=k, eps=eps, p=p, distance_upper_bound=distance_upper_bound)
|
||||
if k is None:
|
||||
return [d for (d,i) in hits], [i for (d,i) in hits]
|
||||
elif k == 1:
|
||||
if len(hits) > 0:
|
||||
return hits[0]
|
||||
else:
|
||||
return np.inf, self.n
|
||||
elif k > 1:
|
||||
dd = np.empty(k,dtype=float)
|
||||
dd.fill(np.inf)
|
||||
ii = np.empty(k,dtype=int)
|
||||
ii.fill(self.n)
|
||||
for j in range(len(hits)):
|
||||
dd[j], ii[j] = hits[j]
|
||||
return dd, ii
|
||||
else:
|
||||
raise ValueError("Requested %s nearest neighbors; acceptable numbers are integers greater than or equal to one, or None")
|
||||
|
||||
def __query_ball_point(self, x, r, p=2., eps=0):
|
||||
R = Rectangle(self.maxes, self.mins)
|
||||
|
||||
def traverse_checking(node, rect):
|
||||
if rect.min_distance_point(x, p) > r / (1. + eps):
|
||||
return []
|
||||
elif rect.max_distance_point(x, p) < r * (1. + eps):
|
||||
return traverse_no_checking(node)
|
||||
elif isinstance(node, KDTree.leafnode):
|
||||
d = self.data[node.idx]
|
||||
return node.idx[minkowski_distance(d, x, p) <= r].tolist()
|
||||
else:
|
||||
less, greater = rect.split(node.split_dim, node.split)
|
||||
return traverse_checking(node.less, less) + \
|
||||
traverse_checking(node.greater, greater)
|
||||
|
||||
def traverse_no_checking(node):
|
||||
if isinstance(node, KDTree.leafnode):
|
||||
return node.idx.tolist()
|
||||
else:
|
||||
return traverse_no_checking(node.less) + \
|
||||
traverse_no_checking(node.greater)
|
||||
|
||||
return traverse_checking(self.tree, R)
|
||||
|
||||
def query_ball_point(self, x, r, p=2., eps=0):
|
||||
"""Find all points within distance r of point(s) x.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : array_like, shape tuple + (self.m,)
|
||||
The point or points to search for neighbors of.
|
||||
r : positive float
|
||||
The radius of points to return.
|
||||
p : float, optional
|
||||
Which Minkowski p-norm to use. Should be in the range [1, inf].
|
||||
eps : nonnegative float, optional
|
||||
Approximate search. Branches of the tree are not explored if their
|
||||
nearest points are further than ``r / (1 + eps)``, and branches are
|
||||
added in bulk if their furthest points are nearer than
|
||||
``r * (1 + eps)``.
|
||||
|
||||
Returns
|
||||
-------
|
||||
results : list or array of lists
|
||||
If `x` is a single point, returns a list of the indices of the
|
||||
neighbors of `x`. If `x` is an array of points, returns an object
|
||||
array of shape tuple containing lists of neighbors.
|
||||
|
||||
Notes
|
||||
-----
|
||||
If you have many points whose neighbors you want to find, you may save
|
||||
substantial amounts of time by putting them in a KDTree and using
|
||||
query_ball_tree.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy import spatial
|
||||
>>> x, y = np.mgrid[0:5, 0:5]
|
||||
>>> points = np.c_[x.ravel(), y.ravel()]
|
||||
>>> tree = spatial.KDTree(points)
|
||||
>>> tree.query_ball_point([2, 0], 1)
|
||||
[5, 10, 11, 15]
|
||||
|
||||
Query multiple points and plot the results:
|
||||
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> points = np.asarray(points)
|
||||
>>> plt.plot(points[:,0], points[:,1], '.')
|
||||
>>> for results in tree.query_ball_point(([2, 0], [3, 3]), 1):
|
||||
... nearby_points = points[results]
|
||||
... plt.plot(nearby_points[:,0], nearby_points[:,1], 'o')
|
||||
>>> plt.margins(0.1, 0.1)
|
||||
>>> plt.show()
|
||||
|
||||
"""
|
||||
x = np.asarray(x)
|
||||
if x.dtype.kind == 'c':
|
||||
raise TypeError("KDTree does not work with complex data")
|
||||
if x.shape[-1] != self.m:
|
||||
raise ValueError("Searching for a %d-dimensional point in a "
|
||||
"%d-dimensional KDTree" % (x.shape[-1], self.m))
|
||||
if len(x.shape) == 1:
|
||||
return self.__query_ball_point(x, r, p, eps)
|
||||
else:
|
||||
retshape = x.shape[:-1]
|
||||
result = np.empty(retshape, dtype=object)
|
||||
for c in np.ndindex(retshape):
|
||||
result[c] = self.__query_ball_point(x[c], r, p=p, eps=eps)
|
||||
return result
|
||||
|
||||
def query_ball_tree(self, other, r, p=2., eps=0):
|
||||
"""Find all pairs of points whose distance is at most r
|
||||
|
||||
Parameters
|
||||
----------
|
||||
other : KDTree instance
|
||||
The tree containing points to search against.
|
||||
r : float
|
||||
The maximum distance, has to be positive.
|
||||
p : float, optional
|
||||
Which Minkowski norm to use. `p` has to meet the condition
|
||||
``1 <= p <= infinity``.
|
||||
eps : float, optional
|
||||
Approximate search. Branches of the tree are not explored
|
||||
if their nearest points are further than ``r/(1+eps)``, and
|
||||
branches are added in bulk if their furthest points are nearer
|
||||
than ``r * (1+eps)``. `eps` has to be non-negative.
|
||||
|
||||
Returns
|
||||
-------
|
||||
results : list of lists
|
||||
For each element ``self.data[i]`` of this tree, ``results[i]`` is a
|
||||
list of the indices of its neighbors in ``other.data``.
|
||||
|
||||
"""
|
||||
results = [[] for i in range(self.n)]
|
||||
|
||||
def traverse_checking(node1, rect1, node2, rect2):
|
||||
if rect1.min_distance_rectangle(rect2, p) > r/(1.+eps):
|
||||
return
|
||||
elif rect1.max_distance_rectangle(rect2, p) < r*(1.+eps):
|
||||
traverse_no_checking(node1, node2)
|
||||
elif isinstance(node1, KDTree.leafnode):
|
||||
if isinstance(node2, KDTree.leafnode):
|
||||
d = other.data[node2.idx]
|
||||
for i in node1.idx:
|
||||
results[i] += node2.idx[minkowski_distance(d,self.data[i],p) <= r].tolist()
|
||||
else:
|
||||
less, greater = rect2.split(node2.split_dim, node2.split)
|
||||
traverse_checking(node1,rect1,node2.less,less)
|
||||
traverse_checking(node1,rect1,node2.greater,greater)
|
||||
elif isinstance(node2, KDTree.leafnode):
|
||||
less, greater = rect1.split(node1.split_dim, node1.split)
|
||||
traverse_checking(node1.less,less,node2,rect2)
|
||||
traverse_checking(node1.greater,greater,node2,rect2)
|
||||
else:
|
||||
less1, greater1 = rect1.split(node1.split_dim, node1.split)
|
||||
less2, greater2 = rect2.split(node2.split_dim, node2.split)
|
||||
traverse_checking(node1.less,less1,node2.less,less2)
|
||||
traverse_checking(node1.less,less1,node2.greater,greater2)
|
||||
traverse_checking(node1.greater,greater1,node2.less,less2)
|
||||
traverse_checking(node1.greater,greater1,node2.greater,greater2)
|
||||
|
||||
def traverse_no_checking(node1, node2):
|
||||
if isinstance(node1, KDTree.leafnode):
|
||||
if isinstance(node2, KDTree.leafnode):
|
||||
for i in node1.idx:
|
||||
results[i] += node2.idx.tolist()
|
||||
else:
|
||||
traverse_no_checking(node1, node2.less)
|
||||
traverse_no_checking(node1, node2.greater)
|
||||
else:
|
||||
traverse_no_checking(node1.less, node2)
|
||||
traverse_no_checking(node1.greater, node2)
|
||||
|
||||
traverse_checking(self.tree, Rectangle(self.maxes, self.mins),
|
||||
other.tree, Rectangle(other.maxes, other.mins))
|
||||
return results
|
||||
|
||||
def query_pairs(self, r, p=2., eps=0):
|
||||
"""
|
||||
Find all pairs of points within a distance.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
r : positive float
|
||||
The maximum distance.
|
||||
p : float, optional
|
||||
Which Minkowski norm to use. `p` has to meet the condition
|
||||
``1 <= p <= infinity``.
|
||||
eps : float, optional
|
||||
Approximate search. Branches of the tree are not explored
|
||||
if their nearest points are further than ``r/(1+eps)``, and
|
||||
branches are added in bulk if their furthest points are nearer
|
||||
than ``r * (1+eps)``. `eps` has to be non-negative.
|
||||
|
||||
Returns
|
||||
-------
|
||||
results : set
|
||||
Set of pairs ``(i,j)``, with ``i < j``, for which the corresponding
|
||||
positions are close.
|
||||
|
||||
"""
|
||||
results = set()
|
||||
|
||||
def traverse_checking(node1, rect1, node2, rect2):
|
||||
if rect1.min_distance_rectangle(rect2, p) > r/(1.+eps):
|
||||
return
|
||||
elif rect1.max_distance_rectangle(rect2, p) < r*(1.+eps):
|
||||
traverse_no_checking(node1, node2)
|
||||
elif isinstance(node1, KDTree.leafnode):
|
||||
if isinstance(node2, KDTree.leafnode):
|
||||
# Special care to avoid duplicate pairs
|
||||
if id(node1) == id(node2):
|
||||
d = self.data[node2.idx]
|
||||
for i in node1.idx:
|
||||
for j in node2.idx[minkowski_distance(d,self.data[i],p) <= r]:
|
||||
if i < j:
|
||||
results.add((i,j))
|
||||
else:
|
||||
d = self.data[node2.idx]
|
||||
for i in node1.idx:
|
||||
for j in node2.idx[minkowski_distance(d,self.data[i],p) <= r]:
|
||||
if i < j:
|
||||
results.add((i,j))
|
||||
elif j < i:
|
||||
results.add((j,i))
|
||||
else:
|
||||
less, greater = rect2.split(node2.split_dim, node2.split)
|
||||
traverse_checking(node1,rect1,node2.less,less)
|
||||
traverse_checking(node1,rect1,node2.greater,greater)
|
||||
elif isinstance(node2, KDTree.leafnode):
|
||||
less, greater = rect1.split(node1.split_dim, node1.split)
|
||||
traverse_checking(node1.less,less,node2,rect2)
|
||||
traverse_checking(node1.greater,greater,node2,rect2)
|
||||
else:
|
||||
less1, greater1 = rect1.split(node1.split_dim, node1.split)
|
||||
less2, greater2 = rect2.split(node2.split_dim, node2.split)
|
||||
traverse_checking(node1.less,less1,node2.less,less2)
|
||||
traverse_checking(node1.less,less1,node2.greater,greater2)
|
||||
|
||||
# Avoid traversing (node1.less, node2.greater) and
|
||||
# (node1.greater, node2.less) (it's the same node pair twice
|
||||
# over, which is the source of the complication in the
|
||||
# original KDTree.query_pairs)
|
||||
if id(node1) != id(node2):
|
||||
traverse_checking(node1.greater,greater1,node2.less,less2)
|
||||
|
||||
traverse_checking(node1.greater,greater1,node2.greater,greater2)
|
||||
|
||||
def traverse_no_checking(node1, node2):
|
||||
if isinstance(node1, KDTree.leafnode):
|
||||
if isinstance(node2, KDTree.leafnode):
|
||||
# Special care to avoid duplicate pairs
|
||||
if id(node1) == id(node2):
|
||||
for i in node1.idx:
|
||||
for j in node2.idx:
|
||||
if i < j:
|
||||
results.add((i,j))
|
||||
else:
|
||||
for i in node1.idx:
|
||||
for j in node2.idx:
|
||||
if i < j:
|
||||
results.add((i,j))
|
||||
elif j < i:
|
||||
results.add((j,i))
|
||||
else:
|
||||
traverse_no_checking(node1, node2.less)
|
||||
traverse_no_checking(node1, node2.greater)
|
||||
else:
|
||||
# Avoid traversing (node1.less, node2.greater) and
|
||||
# (node1.greater, node2.less) (it's the same node pair twice
|
||||
# over, which is the source of the complication in the
|
||||
# original KDTree.query_pairs)
|
||||
if id(node1) == id(node2):
|
||||
traverse_no_checking(node1.less, node2.less)
|
||||
traverse_no_checking(node1.less, node2.greater)
|
||||
traverse_no_checking(node1.greater, node2.greater)
|
||||
else:
|
||||
traverse_no_checking(node1.less, node2)
|
||||
traverse_no_checking(node1.greater, node2)
|
||||
|
||||
traverse_checking(self.tree, Rectangle(self.maxes, self.mins),
|
||||
self.tree, Rectangle(self.maxes, self.mins))
|
||||
return results
|
||||
|
||||
def count_neighbors(self, other, r, p=2.):
|
||||
"""
|
||||
Count how many nearby pairs can be formed.
|
||||
|
||||
Count the number of pairs (x1,x2) can be formed, with x1 drawn
|
||||
from self and x2 drawn from ``other``, and where
|
||||
``distance(x1, x2, p) <= r``.
|
||||
This is the "two-point correlation" described in Gray and Moore 2000,
|
||||
"N-body problems in statistical learning", and the code here is based
|
||||
on their algorithm.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
other : KDTree instance
|
||||
The other tree to draw points from.
|
||||
r : float or one-dimensional array of floats
|
||||
The radius to produce a count for. Multiple radii are searched with
|
||||
a single tree traversal.
|
||||
p : float, 1<=p<=infinity, optional
|
||||
Which Minkowski p-norm to use
|
||||
|
||||
Returns
|
||||
-------
|
||||
result : int or 1-D array of ints
|
||||
The number of pairs. Note that this is internally stored in a numpy
|
||||
int, and so may overflow if very large (2e9).
|
||||
|
||||
"""
|
||||
def traverse(node1, rect1, node2, rect2, idx):
|
||||
min_r = rect1.min_distance_rectangle(rect2,p)
|
||||
max_r = rect1.max_distance_rectangle(rect2,p)
|
||||
c_greater = r[idx] > max_r
|
||||
result[idx[c_greater]] += node1.children*node2.children
|
||||
idx = idx[(min_r <= r[idx]) & (r[idx] <= max_r)]
|
||||
if len(idx) == 0:
|
||||
return
|
||||
|
||||
if isinstance(node1,KDTree.leafnode):
|
||||
if isinstance(node2,KDTree.leafnode):
|
||||
ds = minkowski_distance(self.data[node1.idx][:,np.newaxis,:],
|
||||
other.data[node2.idx][np.newaxis,:,:],
|
||||
p).ravel()
|
||||
ds.sort()
|
||||
result[idx] += np.searchsorted(ds,r[idx],side='right')
|
||||
else:
|
||||
less, greater = rect2.split(node2.split_dim, node2.split)
|
||||
traverse(node1, rect1, node2.less, less, idx)
|
||||
traverse(node1, rect1, node2.greater, greater, idx)
|
||||
else:
|
||||
if isinstance(node2,KDTree.leafnode):
|
||||
less, greater = rect1.split(node1.split_dim, node1.split)
|
||||
traverse(node1.less, less, node2, rect2, idx)
|
||||
traverse(node1.greater, greater, node2, rect2, idx)
|
||||
else:
|
||||
less1, greater1 = rect1.split(node1.split_dim, node1.split)
|
||||
less2, greater2 = rect2.split(node2.split_dim, node2.split)
|
||||
traverse(node1.less,less1,node2.less,less2,idx)
|
||||
traverse(node1.less,less1,node2.greater,greater2,idx)
|
||||
traverse(node1.greater,greater1,node2.less,less2,idx)
|
||||
traverse(node1.greater,greater1,node2.greater,greater2,idx)
|
||||
|
||||
R1 = Rectangle(self.maxes, self.mins)
|
||||
R2 = Rectangle(other.maxes, other.mins)
|
||||
if np.shape(r) == ():
|
||||
r = np.array([r])
|
||||
result = np.zeros(1,dtype=int)
|
||||
traverse(self.tree, R1, other.tree, R2, np.arange(1))
|
||||
return result[0]
|
||||
elif len(np.shape(r)) == 1:
|
||||
r = np.asarray(r)
|
||||
n, = r.shape
|
||||
result = np.zeros(n,dtype=int)
|
||||
traverse(self.tree, R1, other.tree, R2, np.arange(n))
|
||||
return result
|
||||
else:
|
||||
raise ValueError("r must be either a single value or a one-dimensional array of values")
|
||||
|
||||
def sparse_distance_matrix(self, other, max_distance, p=2.):
|
||||
"""
|
||||
Compute a sparse distance matrix
|
||||
|
||||
Computes a distance matrix between two KDTrees, leaving as zero
|
||||
any distance greater than max_distance.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
other : KDTree
|
||||
|
||||
max_distance : positive float
|
||||
|
||||
p : float, optional
|
||||
|
||||
Returns
|
||||
-------
|
||||
result : dok_matrix
|
||||
Sparse matrix representing the results in "dictionary of keys" format.
|
||||
|
||||
"""
|
||||
result = scipy.sparse.dok_matrix((self.n,other.n))
|
||||
|
||||
def traverse(node1, rect1, node2, rect2):
|
||||
if rect1.min_distance_rectangle(rect2, p) > max_distance:
|
||||
return
|
||||
elif isinstance(node1, KDTree.leafnode):
|
||||
if isinstance(node2, KDTree.leafnode):
|
||||
for i in node1.idx:
|
||||
for j in node2.idx:
|
||||
d = minkowski_distance(self.data[i],other.data[j],p)
|
||||
if d <= max_distance:
|
||||
result[i,j] = d
|
||||
else:
|
||||
less, greater = rect2.split(node2.split_dim, node2.split)
|
||||
traverse(node1,rect1,node2.less,less)
|
||||
traverse(node1,rect1,node2.greater,greater)
|
||||
elif isinstance(node2, KDTree.leafnode):
|
||||
less, greater = rect1.split(node1.split_dim, node1.split)
|
||||
traverse(node1.less,less,node2,rect2)
|
||||
traverse(node1.greater,greater,node2,rect2)
|
||||
else:
|
||||
less1, greater1 = rect1.split(node1.split_dim, node1.split)
|
||||
less2, greater2 = rect2.split(node2.split_dim, node2.split)
|
||||
traverse(node1.less,less1,node2.less,less2)
|
||||
traverse(node1.less,less1,node2.greater,greater2)
|
||||
traverse(node1.greater,greater1,node2.less,less2)
|
||||
traverse(node1.greater,greater1,node2.greater,greater2)
|
||||
traverse(self.tree, Rectangle(self.maxes, self.mins),
|
||||
other.tree, Rectangle(other.maxes, other.mins))
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def distance_matrix(x, y, p=2, threshold=1000000):
|
||||
"""
|
||||
Compute the distance matrix.
|
||||
|
||||
Returns the matrix of all pair-wise distances.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : (M, K) array_like
|
||||
Matrix of M vectors in K dimensions.
|
||||
y : (N, K) array_like
|
||||
Matrix of N vectors in K dimensions.
|
||||
p : float, 1 <= p <= infinity
|
||||
Which Minkowski p-norm to use.
|
||||
threshold : positive int
|
||||
If ``M * N * K`` > `threshold`, algorithm uses a Python loop instead
|
||||
of large temporary arrays.
|
||||
|
||||
Returns
|
||||
-------
|
||||
result : (M, N) ndarray
|
||||
Matrix containing the distance from every vector in `x` to every vector
|
||||
in `y`.
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy.spatial import distance_matrix
|
||||
>>> distance_matrix([[0,0],[0,1]], [[1,0],[1,1]])
|
||||
array([[ 1. , 1.41421356],
|
||||
[ 1.41421356, 1. ]])
|
||||
|
||||
"""
|
||||
|
||||
x = np.asarray(x)
|
||||
m, k = x.shape
|
||||
y = np.asarray(y)
|
||||
n, kk = y.shape
|
||||
|
||||
if k != kk:
|
||||
raise ValueError("x contains %d-dimensional vectors but y contains %d-dimensional vectors" % (k, kk))
|
||||
|
||||
if m*n*k <= threshold:
|
||||
return minkowski_distance(x[:,np.newaxis,:],y[np.newaxis,:,:],p)
|
||||
else:
|
||||
result = np.empty((m,n),dtype=float) # FIXME: figure out the best dtype
|
||||
if m < n:
|
||||
for i in range(m):
|
||||
result[i,:] = minkowski_distance(x[i],y,p)
|
||||
else:
|
||||
for j in range(n):
|
||||
result[:,j] = minkowski_distance(x,y[j],p)
|
||||
return result
|
BIN
venv/Lib/site-packages/scipy/spatial/qhull.cp36-win32.pyd
Normal file
BIN
venv/Lib/site-packages/scipy/spatial/qhull.cp36-win32.pyd
Normal file
Binary file not shown.
38
venv/Lib/site-packages/scipy/spatial/qhull_src/COPYING.txt
Normal file
38
venv/Lib/site-packages/scipy/spatial/qhull_src/COPYING.txt
Normal file
|
@ -0,0 +1,38 @@
|
|||
Qhull, Copyright (c) 1993-2019
|
||||
|
||||
C.B. Barber
|
||||
Arlington, MA
|
||||
|
||||
and
|
||||
|
||||
The National Science and Technology Research Center for
|
||||
Computation and Visualization of Geometric Structures
|
||||
(The Geometry Center)
|
||||
University of Minnesota
|
||||
|
||||
email: qhull@qhull.org
|
||||
|
||||
This software includes Qhull from C.B. Barber and The Geometry Center.
|
||||
Qhull is copyrighted as noted above. Qhull is free software and may
|
||||
be obtained via http from www.qhull.org. It may be freely copied, modified,
|
||||
and redistributed under the following conditions:
|
||||
|
||||
1. All copyright notices must remain intact in all files.
|
||||
|
||||
2. A copy of this text file must be distributed along with any copies
|
||||
of Qhull that you redistribute; this includes copies that you have
|
||||
modified, or copies of programs or other software products that
|
||||
include Qhull.
|
||||
|
||||
3. If you modify Qhull, you must include a notice giving the
|
||||
name of the person performing the modification, the date of
|
||||
modification, and the reason for such modification.
|
||||
|
||||
4. When distributing modified versions of Qhull, or other software
|
||||
products that include Qhull, you must provide notice that the original
|
||||
source code may be obtained as noted above.
|
||||
|
||||
5. There is no warranty or other guarantee of fitness for Qhull, it is
|
||||
provided solely "as is". Bug reports or fixes may be sent to
|
||||
qhull_bug@qhull.org; the authors may or may not act on them as
|
||||
they desire.
|
93
venv/Lib/site-packages/scipy/spatial/setup.py
Normal file
93
venv/Lib/site-packages/scipy/spatial/setup.py
Normal file
|
@ -0,0 +1,93 @@
|
|||
from os.path import join, dirname
|
||||
import glob
|
||||
|
||||
|
||||
def configuration(parent_package='', top_path=None):
|
||||
from numpy.distutils.misc_util import Configuration, get_numpy_include_dirs
|
||||
from numpy.distutils.misc_util import get_info as get_misc_info
|
||||
from scipy._build_utils.system_info import get_info
|
||||
from scipy._build_utils import combine_dict, uses_blas64
|
||||
from scipy._build_utils.compiler_helper import set_cxx_flags_hook
|
||||
from distutils.sysconfig import get_python_inc
|
||||
|
||||
config = Configuration('spatial', parent_package, top_path)
|
||||
|
||||
config.add_data_dir('tests')
|
||||
|
||||
# spatial.transform
|
||||
config.add_subpackage('transform')
|
||||
|
||||
# qhull
|
||||
qhull_src = sorted(glob.glob(join(dirname(__file__), 'qhull_src',
|
||||
'src', '*.c')))
|
||||
|
||||
inc_dirs = [get_python_inc()]
|
||||
if inc_dirs[0] != get_python_inc(plat_specific=1):
|
||||
inc_dirs.append(get_python_inc(plat_specific=1))
|
||||
inc_dirs.append(get_numpy_include_dirs())
|
||||
inc_dirs.append(join(dirname(dirname(__file__)), '_lib'))
|
||||
inc_dirs.append(join(dirname(dirname(__file__)), '_build_utils', 'src'))
|
||||
|
||||
if uses_blas64():
|
||||
lapack_opt = get_info('lapack_ilp64_opt')
|
||||
else:
|
||||
lapack_opt = get_info('lapack_opt')
|
||||
|
||||
cfg = combine_dict(lapack_opt, include_dirs=inc_dirs)
|
||||
config.add_extension('qhull',
|
||||
sources=['qhull.c', 'qhull_misc.c'] + qhull_src,
|
||||
**cfg)
|
||||
|
||||
# cKDTree
|
||||
ckdtree_src = ['query.cxx',
|
||||
'build.cxx',
|
||||
'query_pairs.cxx',
|
||||
'count_neighbors.cxx',
|
||||
'query_ball_point.cxx',
|
||||
'query_ball_tree.cxx',
|
||||
'sparse_distances.cxx']
|
||||
|
||||
ckdtree_src = [join('ckdtree', 'src', x) for x in ckdtree_src]
|
||||
|
||||
ckdtree_headers = ['ckdtree_decl.h',
|
||||
'coo_entries.h',
|
||||
'distance_base.h',
|
||||
'distance.h',
|
||||
'ordered_pair.h',
|
||||
'partial_sort.h',
|
||||
'rectangle.h']
|
||||
|
||||
ckdtree_headers = [join('ckdtree', 'src', x) for x in ckdtree_headers]
|
||||
|
||||
ckdtree_dep = ['ckdtree.cxx'] + ckdtree_headers + ckdtree_src
|
||||
ext = config.add_extension('ckdtree',
|
||||
sources=['ckdtree.cxx'] + ckdtree_src,
|
||||
depends=ckdtree_dep,
|
||||
include_dirs=inc_dirs + [join('ckdtree', 'src')])
|
||||
ext._pre_build_hook = set_cxx_flags_hook
|
||||
|
||||
# _distance_wrap
|
||||
config.add_extension('_distance_wrap',
|
||||
sources=[join('src', 'distance_wrap.c')],
|
||||
depends=[join('src', 'distance_impl.h')],
|
||||
include_dirs=[get_numpy_include_dirs()],
|
||||
extra_info=get_misc_info("npymath"))
|
||||
|
||||
config.add_extension('_voronoi',
|
||||
sources=['_voronoi.c'])
|
||||
|
||||
config.add_extension('_hausdorff',
|
||||
sources=['_hausdorff.c'])
|
||||
|
||||
# Add license files
|
||||
config.add_data_files('qhull_src/COPYING.txt')
|
||||
|
||||
# Type stubs
|
||||
config.add_data_files('*.pyi')
|
||||
|
||||
return config
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
from numpy.distutils.core import setup
|
||||
setup(**configuration(top_path='').todict())
|
0
venv/Lib/site-packages/scipy/spatial/tests/__init__.py
Normal file
0
venv/Lib/site-packages/scipy/spatial/tests/__init__.py
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
10
venv/Lib/site-packages/scipy/spatial/tests/data/cdist-X1.txt
Normal file
10
venv/Lib/site-packages/scipy/spatial/tests/data/cdist-X1.txt
Normal file
|
@ -0,0 +1,10 @@
|
|||
1.147593763490969421e-01 8.926156143344999849e-01 1.437758624645746330e-02 1.803435962879929022e-02 5.533046214065578949e-01 5.554315640747428118e-01 4.497546637814608950e-02 4.438089247948049376e-01 7.984582810220538507e-01 2.752880789161644692e-01 1.344667112315823809e-01 9.230479561452992199e-01 6.040471462941819913e-01 3.797251652770228247e-01 4.316042735592399149e-01 5.312356915348823705e-01 4.348143005129563310e-01 3.111531488508799681e-01 9.531194313908697424e-04 8.212995023500069269e-02 6.689953269869852726e-01 9.914864535288493430e-01 8.037556036341153565e-01
|
||||
9.608925123801395074e-01 2.974451233678974127e-01 9.001110330654185088e-01 5.824163330415995654e-01 7.308574928293812834e-01 2.276154562412870952e-01 7.306791076039623745e-01 8.677244866905511333e-01 9.160806456176984192e-01 6.157216959991280714e-01 5.149053524695440531e-01 3.056427344890983999e-01 9.790557366933895223e-01 4.484995861076724877e-01 4.776550391081165747e-01 7.210436977670631187e-01 9.136399501661039979e-01 4.260275733550000776e-02 5.943900041968954717e-01 3.864571606342745991e-01 9.442027665110838131e-01 4.779949058608601309e-02 6.107551944250865228e-01
|
||||
3.297286578103622023e-01 5.980207401936733502e-01 3.673301293561567205e-01 2.585830520887681949e-01 4.660558746104259686e-01 6.083795956610364986e-01 4.535206368070313632e-01 6.873989778785424276e-01 5.130152688495458468e-01 7.665877846542720198e-01 3.444402973525138023e-01 3.583658123644906102e-02 7.924818220986856732e-01 8.746685720522412444e-01 3.010105569182431884e-01 6.012239357385538163e-01 6.233737362204671006e-01 4.830438698668915176e-01 2.317286885842551047e-02 7.585989958123050547e-01 7.108257632278830451e-01 1.551024884178199281e-01 2.665485998155288083e-01
|
||||
2.456278068903017253e-02 4.148739837711815648e-01 1.986372227934196655e-01 6.920408530298168825e-01 1.003067576685774398e-01 7.421560456480125190e-01 1.808453980608998313e-01 4.251297882537475870e-01 6.773002683522370004e-01 4.084108792570182445e-01 7.462888013191590897e-01 8.069930220529277776e-01 9.211110587681808903e-01 4.141491046181076108e-01 7.486318689260342829e-01 9.515405507589296263e-01 4.634288892577109742e-03 8.027593488166355762e-01 3.010346805217798405e-01 8.663248877242523127e-01 2.479968181181605447e-01 5.619851096054278017e-01 3.903886764590250857e-01
|
||||
7.122019976035700584e-01 6.188878051047785878e-01 7.290897087051201320e-01 6.334802157757637442e-01 5.523084734954342156e-01 5.614937129563645213e-01 2.496741051791574462e-01 5.972227939599233926e-01 1.786590597761109622e-01 2.609525984850900038e-01 7.210438943286010538e-01 2.211429064605652250e-01 9.140497572472672250e-02 1.430242193668443962e-01 7.856446942916397447e-01 4.635256358156553125e-01 5.278744289813760426e-01 3.702808015407184072e-01 5.527073830480792038e-01 6.370732917599846168e-01 9.953487928925482953e-01 3.021789770611936765e-01 3.354901923998221402e-02
|
||||
6.509638560895427695e-01 8.387598220902757751e-01 7.761375971745763103e-01 1.481627639227802717e-01 3.529474982902305324e-01 4.883093646287851586e-01 9.652923033658690199e-01 9.500680513565308294e-01 3.061885005078281985e-01 7.271902818906019750e-01 2.358962978196710303e-03 7.359889703223099211e-01 8.988893768074724955e-01 4.135279653937307121e-02 8.516441856688283796e-01 4.889597623270667270e-01 5.575909822114655245e-01 9.010853652261575641e-01 2.912844516556202246e-01 9.088759383368658629e-01 8.104351227460024898e-01 8.080695436776826890e-01 1.430530913253185155e-01
|
||||
8.048001196608134400e-01 3.066089444418462762e-02 9.021887554292090661e-01 6.154331491807940591e-02 1.378912575206647784e-02 5.775720193142440673e-01 1.219298963069791464e-01 1.883270243412101808e-01 5.569262398688379356e-02 8.964817777510125651e-02 7.977092785346929782e-01 4.878149375226197293e-01 4.511973131518809410e-02 1.858690046801604323e-01 6.947686471083162063e-01 5.884058794291086025e-01 8.638884676612634816e-01 3.855470871341656336e-01 3.495049047300468059e-01 2.767740932353948136e-01 4.731087031714035218e-01 6.679001673437914288e-01 7.502944200696660682e-01
|
||||
6.527328264244687261e-01 8.289483383553154505e-01 9.179741348282299818e-01 1.065639864466713105e-01 6.253616929058514184e-01 5.927750325266062381e-01 3.039157425463192563e-01 2.452766763359194302e-01 6.514027700704632107e-01 5.529218485487964463e-01 4.941158239308394151e-01 6.605306467722642516e-01 2.273688037050677346e-01 4.282616592244774534e-01 2.956128257930247250e-01 1.154803628237965896e-01 9.228220410235263849e-01 6.663525307676617659e-01 1.908852615936970087e-01 9.921383408926374159e-01 4.988716450388516188e-01 1.014900352736023414e-01 3.363930180244284474e-01
|
||||
2.914369076275757919e-01 5.196673601143533272e-01 7.420144907858341465e-01 1.768984185504740569e-01 5.296766993228564369e-01 5.922023566159900776e-01 5.965161262020234334e-01 3.810272333046110793e-01 8.368797246118340194e-01 7.896422363801189892e-01 9.655797561098209414e-01 4.430034032346981121e-01 2.780869795706976122e-01 3.047310845416009162e-01 8.051138863500326703e-01 6.731468634690835895e-01 4.743383036815584930e-01 9.530709614322225853e-01 7.753587619850917934e-01 2.801137109357491051e-01 6.182543660889736614e-01 5.005218857766725593e-01 9.071447804755052857e-01
|
||||
2.075071644012620453e-01 4.834950086973934802e-01 3.037011473860764532e-01 6.476084284887700937e-01 8.107195771564194020e-01 7.869075869075803364e-01 6.851234019375299633e-01 3.544187468104398331e-02 4.847673235908021017e-01 5.690262846164507726e-01 1.663354142616256803e-01 9.692796809752548537e-01 4.133441725866372485e-01 6.729167604487583665e-01 3.998813427407297283e-01 8.272617414104491695e-01 2.129248316324727774e-01 6.517004761357130249e-01 7.363013506605019520e-01 4.072375306356985636e-01 4.463336683526665238e-01 5.485059309728204102e-01 1.981745754527846071e-01
|
20
venv/Lib/site-packages/scipy/spatial/tests/data/cdist-X2.txt
Normal file
20
venv/Lib/site-packages/scipy/spatial/tests/data/cdist-X2.txt
Normal file
|
@ -0,0 +1,20 @@
|
|||
7.680465556300619667e-02 4.675022344069014180e-01 8.955498989131543963e-01 3.816236071436276411e-01 1.109030077070989329e-01 2.318928815459808668e-02 7.477394240984251983e-01 1.202289789304434864e-01 8.007290497575981769e-01 6.795195698871731027e-01 6.568225762396605605e-01 2.231475263228478445e-01 7.064624077661341151e-02 1.081656666815267176e-02 1.592069359090128033e-01 1.363392203645097389e-01 9.277020735447568667e-01 8.103136564528209407e-01 5.229467676276455812e-02 7.708020259874025504e-01 6.527954747473352359e-02 5.516397414886525796e-01 3.653371861367954443e-01
|
||||
8.144399106025798085e-01 7.731852525462976633e-01 6.909477620673205589e-01 9.696063817000286633e-01 4.297887511677249694e-01 6.989600553425188156e-01 7.310201335033380543e-01 3.135256147868910048e-01 5.715578037275241829e-01 3.935000744675094531e-01 2.057715781268398825e-01 5.892508589665171881e-01 8.512951599236765476e-01 9.569808799061578775e-01 6.164885878024699561e-01 4.714185430004367294e-01 6.128831737628155363e-01 6.641799309623502845e-01 6.001985185338730711e-01 4.231922889723856995e-01 7.605249308075449077e-01 1.064530958018087281e-01 6.306470691957204444e-01
|
||||
4.265470127256254518e-01 5.933766716280767239e-01 3.698589270536845053e-02 2.173799740537294412e-01 3.032679325475639009e-01 4.271831790058847611e-01 1.828944535901013690e-01 4.772333422710156592e-01 2.564773455194128138e-01 7.120329875362141347e-01 8.952243430110462530e-01 1.808777012183288013e-01 3.612151871458374464e-01 3.960999167923041631e-01 1.821669970670747318e-02 8.835474857189200559e-01 1.353104648821573663e-01 3.457291739160937016e-01 1.126467375304566199e-01 4.107293162402323450e-01 4.051719311053743056e-01 4.007382985250427243e-01 1.286905671428811848e-01
|
||||
2.910657003883979632e-01 9.616259180685315933e-03 2.033032441536681834e-01 1.096599110293863255e-01 4.191101704605176836e-01 5.462131536027151624e-01 8.393047907010142694e-01 9.046805198676335369e-01 7.009863472176891541e-01 2.508215985039629059e-01 6.754410796667598138e-01 6.740895474032024826e-01 1.358993708621679675e-01 8.219861775211464439e-01 6.322220445623235596e-01 2.766813559002430090e-01 6.575983861590951607e-01 9.515869708336625044e-01 8.654526462353933081e-01 3.450245117834797037e-01 5.649032890631299209e-01 4.717687914789682191e-01 3.296483580510030098e-01
|
||||
9.172477457635394016e-01 3.057396583041891436e-01 7.335332344225760082e-01 8.370236206345178509e-01 3.765464253115927695e-01 5.089680319287778199e-01 1.202325719268168003e-01 9.717771065272349240e-01 5.907820104019682050e-01 9.809211614977710880e-01 9.064285003671219698e-01 8.848841466121748489e-01 2.043407730734815297e-01 9.157600394927275511e-01 4.532260315147775831e-01 4.241077335005828397e-01 1.751730149568804240e-01 4.090412146081819911e-01 3.632197861847064058e-02 5.832539334970230360e-01 4.041848151536805434e-01 3.603643989086504629e-01 1.838411383882069261e-01
|
||||
2.508806403290032572e-01 4.381403985282813496e-01 4.694787405018008286e-02 6.353900562024634713e-01 1.200813444244532846e-01 6.072397042913001419e-01 9.937255904754030977e-01 4.916670237677555066e-01 3.473845913923001572e-01 3.526875922864345370e-01 5.448595548197197047e-01 2.245096010156972799e-01 9.003258279804994269e-01 3.534560469735994470e-01 2.989266066346342177e-01 4.621024982808636938e-01 9.626538866576676012e-01 9.791401720716153001e-01 7.138514287330390840e-01 9.832862333928654719e-01 3.233999591031431198e-01 5.406467224926423398e-01 9.581890295057201579e-01
|
||||
5.210583601680578436e-01 4.598159993059653949e-01 2.111497132057748027e-01 5.949977700916546652e-01 6.342618461422359077e-01 9.888228769705599275e-01 6.096770711536318998e-01 7.548431368960863974e-01 7.490858664860100546e-01 3.186213496546415058e-01 7.895687083231245351e-01 4.178326793268141159e-01 8.095818334534051752e-01 7.886271673523481684e-01 4.038905626506847923e-01 3.652649247094948981e-01 8.267205959224892542e-01 6.433617243328785262e-01 3.117681563249452559e-01 9.675995575054980868e-01 3.675673836358472890e-01 5.863757289184046151e-01 9.099029857959717305e-02
|
||||
4.024573981231733821e-01 3.578997554002771864e-01 3.519299868071553705e-01 7.417747693762357653e-01 2.963713903285800644e-01 9.602967989298948348e-01 3.811392331739601458e-01 5.493237898295448840e-01 6.835113342793640578e-01 2.304506220807415184e-01 3.727299857731285471e-01 5.450263991912108752e-01 6.951521210987908761e-01 6.474582745861203747e-01 6.316089475403589004e-01 5.672043967425510758e-02 9.034937506977609445e-01 2.332567550780038079e-01 1.096955741449157085e-02 8.870663813493575578e-01 4.384385452180562526e-01 7.100898998169548060e-01 3.245358176196319056e-01
|
||||
9.162009194452818139e-01 5.572224742426723498e-02 3.445910686865658601e-01 9.683564008127462097e-01 9.375063149031520604e-01 9.128188852869822956e-02 9.613605414326487075e-01 5.298598697556915482e-01 6.724799695520149445e-01 1.269103938571825019e-02 1.008406153387807480e-01 8.951105272379104028e-01 1.585460318853607609e-01 6.739986455059543413e-01 5.345419321702655768e-01 6.248843899572337213e-01 3.050288488994817859e-01 1.423645553465189284e-01 1.802121190541096096e-01 9.474646822694763326e-01 2.345716438587298613e-01 9.688281784764296578e-01 1.845165243240991515e-01
|
||||
2.548297646910531178e-01 2.580877375379494465e-01 1.355482532666937301e-01 6.478812986505504412e-01 9.971695982152032345e-01 2.606721082477282403e-01 5.483439686378906996e-01 4.409612606704470528e-01 4.396442074915688503e-01 7.414262832597111608e-01 7.308840725375539416e-01 8.072095530497225280e-02 6.829509968656330976e-01 5.700030854230387911e-01 3.801845336730320657e-01 2.481059916867158766e-01 3.977295094395927322e-03 5.749480512407895150e-01 4.112033136603401307e-01 8.676159710377848722e-01 9.062646588480167686e-01 3.326691167317923359e-01 8.498307982774666591e-01
|
||||
4.464338109330643345e-01 8.546516760817471914e-01 7.384800352329814466e-01 3.692485164984804502e-02 2.915662689505471583e-02 9.010049994217171898e-01 8.622900253010918892e-01 9.786230638032608065e-01 6.546824077297251909e-01 6.342297560006789903e-01 2.230339826582647955e-01 7.658846744185553446e-01 4.603043831539479491e-01 2.017100469861691225e-01 4.891590639893540482e-01 1.937140918314912419e-01 8.161582138652878626e-01 5.597293607114051106e-02 8.423261093326828153e-02 5.105392204475533990e-02 8.234193902673621057e-01 1.784268309975372002e-01 9.118997881986501408e-02
|
||||
8.588746913421980711e-01 1.479641118621310980e-02 1.375875301146138874e-01 7.533888774725254756e-01 5.782592791549248101e-01 9.128573037619659436e-01 1.831275762880391067e-01 3.471382864827737835e-01 4.859524740929310749e-02 8.955146541561730400e-01 4.787220791101074457e-01 4.222803577759057791e-01 8.469923964908064873e-01 6.300290047587608910e-02 1.020873237837905956e-01 3.585612487182909813e-02 6.320107119904569970e-01 5.891245970008752719e-01 1.104698053665007507e-01 4.233226558073774903e-01 4.432217054386708988e-01 2.864765416628194394e-01 2.489777211814803159e-02
|
||||
5.343810659756068615e-01 4.829076396403546578e-01 8.364480888953172988e-01 8.931374995414760321e-01 6.034161442354715188e-01 3.578336000768178593e-03 4.100579775972763574e-01 3.968667908067096128e-01 5.897163653686778861e-01 3.003241263928478899e-01 2.520935203143799264e-01 3.112129371563532310e-02 9.052865295974613646e-01 1.172285124002711010e-01 4.840001666149388315e-01 3.424620676348436588e-01 5.526057133826853818e-01 6.346139530261846184e-01 5.747945930485597321e-01 1.389915612177697879e-01 2.413801217666421417e-01 7.829900796662081497e-01 7.213528084845653998e-01
|
||||
9.384509283406079483e-01 6.303019601671526750e-01 1.787921522728125323e-01 1.556003868047917127e-02 5.662397078816850948e-01 3.437473614806091371e-01 8.615844972800188462e-01 7.624380237306396246e-01 1.096468347898514883e-01 1.276566836610887323e-01 8.479188493443535757e-01 3.634713454428405432e-01 7.478112314318967613e-01 9.856395696968375253e-01 6.250293654177319080e-02 1.919327272501809567e-01 1.415594476031050153e-01 7.224057351041784925e-01 8.452145259310355208e-01 5.434318833772002755e-01 5.177620959731277228e-02 3.358977598185840518e-01 2.542654881527960375e-01
|
||||
4.800909104006243489e-01 3.651345393613150137e-01 3.657093052788148446e-01 8.579662326651369408e-01 5.787694361240260932e-01 6.491966196891312268e-01 3.252508517294879775e-01 8.639694334693422961e-01 3.028097078756678551e-01 6.295814666338699350e-01 7.305627351548695803e-01 6.975931849120264872e-03 8.321205159004851915e-01 2.681809305821257761e-01 3.628869474597150591e-01 9.598981434716586936e-01 5.947913523332928332e-01 7.794864238003402779e-01 2.819511239444029149e-01 5.134200958476284882e-01 7.284684743064278045e-01 3.099571109539331903e-01 1.502222882866774967e-01
|
||||
2.463382654375219083e-01 4.465700737264240994e-01 7.180855317941433613e-01 5.056099420785193921e-01 6.182117344332578313e-01 2.370453793561340117e-01 9.831748018047525850e-01 6.397098184531551102e-01 8.260469782208745837e-02 7.474671691560941245e-01 9.963429983418570224e-02 5.450078811081275898e-01 5.370188678062637333e-02 2.774024442708808991e-01 2.082643088545442778e-01 2.704155352788065736e-01 7.225035580445194894e-01 4.866791976239246420e-01 1.357043111201584606e-01 7.911335827987711067e-01 7.278977102006007893e-01 6.880892094410231419e-01 1.029231496520791600e-01
|
||||
6.901796117735281566e-01 1.558248977395644275e-01 4.241818789360329855e-01 5.055658246392458199e-01 1.756288758075611467e-01 4.215083703818177652e-01 7.809231602323289945e-01 1.170053878686481141e-01 6.497026323614403243e-01 5.733120641440232479e-01 4.407703406152092551e-01 5.608677124532297498e-01 7.471045703286000039e-01 3.334604336022076732e-01 8.927208811415126011e-01 9.794565286182396191e-01 9.621542824973521313e-01 3.945825239405253981e-01 8.338963875792834157e-01 9.310552325082104286e-01 7.688283033784242271e-01 3.798823731047119567e-01 1.459993613028365278e-02
|
||||
7.848623555505630511e-01 2.681039365355797344e-03 7.833208051794043891e-01 8.184381915171493604e-01 4.682581645582317709e-01 2.391069309436419932e-01 1.765377537168698607e-01 9.863494676539893424e-01 4.378412300863872009e-01 7.494505491149090481e-01 1.942180356195394308e-01 9.981402467222395547e-01 7.992190944052800505e-01 1.350875702852057936e-01 4.950149186748543650e-01 7.243422481248201761e-01 3.544596746353472216e-01 8.320192561472177228e-01 9.776840296475269865e-01 7.733852731914863110e-01 2.305732998099923048e-01 9.746878189802981041e-01 7.747723331200035979e-01
|
||||
6.521099013127149568e-01 5.452399443648201505e-01 8.146707517183656710e-01 3.827256063695345656e-01 7.954832091744263867e-01 7.834427643148527132e-01 9.661317930643520402e-02 9.215673965718058636e-01 4.914305728788055383e-01 4.105628408027649501e-01 9.844647830893304974e-02 3.974831165301851987e-01 3.857608898053827007e-01 5.520210781401946321e-01 3.445787541654143915e-03 4.552922057017416702e-01 7.456544561760444223e-01 4.753985092154335845e-01 2.821385239833401615e-01 7.560136035104459973e-01 8.453142510471420845e-01 6.679627143276523071e-01 6.910882868284401459e-01
|
||||
8.526493480446283302e-01 1.183917973068240315e-01 6.163988861865119517e-01 5.751899460059114455e-01 1.638797964925038375e-01 8.214597298784013235e-01 5.424670654187370156e-01 1.806631819658732763e-01 9.268107278221827672e-01 4.127397378597359445e-01 7.529877485901653733e-01 1.714251090083847018e-01 2.601487784245806179e-01 2.028326156742237263e-01 5.299879450122358948e-01 7.587877062981395193e-01 4.070738595375062996e-01 3.546903049793261875e-01 8.695365138547607176e-01 1.447085661525142619e-01 3.193366245820845606e-01 8.797841086211429795e-01 2.666562188639977071e-01
|
Binary file not shown.
150
venv/Lib/site-packages/scipy/spatial/tests/data/iris.txt
Normal file
150
venv/Lib/site-packages/scipy/spatial/tests/data/iris.txt
Normal file
|
@ -0,0 +1,150 @@
|
|||
5.099999999999999645e+00 3.500000000000000000e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
4.900000000000000355e+00 3.000000000000000000e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
4.700000000000000178e+00 3.200000000000000178e+00 1.300000000000000044e+00 2.000000000000000111e-01
|
||||
4.599999999999999645e+00 3.100000000000000089e+00 1.500000000000000000e+00 2.000000000000000111e-01
|
||||
5.000000000000000000e+00 3.600000000000000089e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
5.400000000000000355e+00 3.899999999999999911e+00 1.699999999999999956e+00 4.000000000000000222e-01
|
||||
4.599999999999999645e+00 3.399999999999999911e+00 1.399999999999999911e+00 2.999999999999999889e-01
|
||||
5.000000000000000000e+00 3.399999999999999911e+00 1.500000000000000000e+00 2.000000000000000111e-01
|
||||
4.400000000000000355e+00 2.899999999999999911e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
4.900000000000000355e+00 3.100000000000000089e+00 1.500000000000000000e+00 1.000000000000000056e-01
|
||||
5.400000000000000355e+00 3.700000000000000178e+00 1.500000000000000000e+00 2.000000000000000111e-01
|
||||
4.799999999999999822e+00 3.399999999999999911e+00 1.600000000000000089e+00 2.000000000000000111e-01
|
||||
4.799999999999999822e+00 3.000000000000000000e+00 1.399999999999999911e+00 1.000000000000000056e-01
|
||||
4.299999999999999822e+00 3.000000000000000000e+00 1.100000000000000089e+00 1.000000000000000056e-01
|
||||
5.799999999999999822e+00 4.000000000000000000e+00 1.199999999999999956e+00 2.000000000000000111e-01
|
||||
5.700000000000000178e+00 4.400000000000000355e+00 1.500000000000000000e+00 4.000000000000000222e-01
|
||||
5.400000000000000355e+00 3.899999999999999911e+00 1.300000000000000044e+00 4.000000000000000222e-01
|
||||
5.099999999999999645e+00 3.500000000000000000e+00 1.399999999999999911e+00 2.999999999999999889e-01
|
||||
5.700000000000000178e+00 3.799999999999999822e+00 1.699999999999999956e+00 2.999999999999999889e-01
|
||||
5.099999999999999645e+00 3.799999999999999822e+00 1.500000000000000000e+00 2.999999999999999889e-01
|
||||
5.400000000000000355e+00 3.399999999999999911e+00 1.699999999999999956e+00 2.000000000000000111e-01
|
||||
5.099999999999999645e+00 3.700000000000000178e+00 1.500000000000000000e+00 4.000000000000000222e-01
|
||||
4.599999999999999645e+00 3.600000000000000089e+00 1.000000000000000000e+00 2.000000000000000111e-01
|
||||
5.099999999999999645e+00 3.299999999999999822e+00 1.699999999999999956e+00 5.000000000000000000e-01
|
||||
4.799999999999999822e+00 3.399999999999999911e+00 1.899999999999999911e+00 2.000000000000000111e-01
|
||||
5.000000000000000000e+00 3.000000000000000000e+00 1.600000000000000089e+00 2.000000000000000111e-01
|
||||
5.000000000000000000e+00 3.399999999999999911e+00 1.600000000000000089e+00 4.000000000000000222e-01
|
||||
5.200000000000000178e+00 3.500000000000000000e+00 1.500000000000000000e+00 2.000000000000000111e-01
|
||||
5.200000000000000178e+00 3.399999999999999911e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
4.700000000000000178e+00 3.200000000000000178e+00 1.600000000000000089e+00 2.000000000000000111e-01
|
||||
4.799999999999999822e+00 3.100000000000000089e+00 1.600000000000000089e+00 2.000000000000000111e-01
|
||||
5.400000000000000355e+00 3.399999999999999911e+00 1.500000000000000000e+00 4.000000000000000222e-01
|
||||
5.200000000000000178e+00 4.099999999999999645e+00 1.500000000000000000e+00 1.000000000000000056e-01
|
||||
5.500000000000000000e+00 4.200000000000000178e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
4.900000000000000355e+00 3.100000000000000089e+00 1.500000000000000000e+00 1.000000000000000056e-01
|
||||
5.000000000000000000e+00 3.200000000000000178e+00 1.199999999999999956e+00 2.000000000000000111e-01
|
||||
5.500000000000000000e+00 3.500000000000000000e+00 1.300000000000000044e+00 2.000000000000000111e-01
|
||||
4.900000000000000355e+00 3.100000000000000089e+00 1.500000000000000000e+00 1.000000000000000056e-01
|
||||
4.400000000000000355e+00 3.000000000000000000e+00 1.300000000000000044e+00 2.000000000000000111e-01
|
||||
5.099999999999999645e+00 3.399999999999999911e+00 1.500000000000000000e+00 2.000000000000000111e-01
|
||||
5.000000000000000000e+00 3.500000000000000000e+00 1.300000000000000044e+00 2.999999999999999889e-01
|
||||
4.500000000000000000e+00 2.299999999999999822e+00 1.300000000000000044e+00 2.999999999999999889e-01
|
||||
4.400000000000000355e+00 3.200000000000000178e+00 1.300000000000000044e+00 2.000000000000000111e-01
|
||||
5.000000000000000000e+00 3.500000000000000000e+00 1.600000000000000089e+00 5.999999999999999778e-01
|
||||
5.099999999999999645e+00 3.799999999999999822e+00 1.899999999999999911e+00 4.000000000000000222e-01
|
||||
4.799999999999999822e+00 3.000000000000000000e+00 1.399999999999999911e+00 2.999999999999999889e-01
|
||||
5.099999999999999645e+00 3.799999999999999822e+00 1.600000000000000089e+00 2.000000000000000111e-01
|
||||
4.599999999999999645e+00 3.200000000000000178e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
5.299999999999999822e+00 3.700000000000000178e+00 1.500000000000000000e+00 2.000000000000000111e-01
|
||||
5.000000000000000000e+00 3.299999999999999822e+00 1.399999999999999911e+00 2.000000000000000111e-01
|
||||
7.000000000000000000e+00 3.200000000000000178e+00 4.700000000000000178e+00 1.399999999999999911e+00
|
||||
6.400000000000000355e+00 3.200000000000000178e+00 4.500000000000000000e+00 1.500000000000000000e+00
|
||||
6.900000000000000355e+00 3.100000000000000089e+00 4.900000000000000355e+00 1.500000000000000000e+00
|
||||
5.500000000000000000e+00 2.299999999999999822e+00 4.000000000000000000e+00 1.300000000000000044e+00
|
||||
6.500000000000000000e+00 2.799999999999999822e+00 4.599999999999999645e+00 1.500000000000000000e+00
|
||||
5.700000000000000178e+00 2.799999999999999822e+00 4.500000000000000000e+00 1.300000000000000044e+00
|
||||
6.299999999999999822e+00 3.299999999999999822e+00 4.700000000000000178e+00 1.600000000000000089e+00
|
||||
4.900000000000000355e+00 2.399999999999999911e+00 3.299999999999999822e+00 1.000000000000000000e+00
|
||||
6.599999999999999645e+00 2.899999999999999911e+00 4.599999999999999645e+00 1.300000000000000044e+00
|
||||
5.200000000000000178e+00 2.700000000000000178e+00 3.899999999999999911e+00 1.399999999999999911e+00
|
||||
5.000000000000000000e+00 2.000000000000000000e+00 3.500000000000000000e+00 1.000000000000000000e+00
|
||||
5.900000000000000355e+00 3.000000000000000000e+00 4.200000000000000178e+00 1.500000000000000000e+00
|
||||
6.000000000000000000e+00 2.200000000000000178e+00 4.000000000000000000e+00 1.000000000000000000e+00
|
||||
6.099999999999999645e+00 2.899999999999999911e+00 4.700000000000000178e+00 1.399999999999999911e+00
|
||||
5.599999999999999645e+00 2.899999999999999911e+00 3.600000000000000089e+00 1.300000000000000044e+00
|
||||
6.700000000000000178e+00 3.100000000000000089e+00 4.400000000000000355e+00 1.399999999999999911e+00
|
||||
5.599999999999999645e+00 3.000000000000000000e+00 4.500000000000000000e+00 1.500000000000000000e+00
|
||||
5.799999999999999822e+00 2.700000000000000178e+00 4.099999999999999645e+00 1.000000000000000000e+00
|
||||
6.200000000000000178e+00 2.200000000000000178e+00 4.500000000000000000e+00 1.500000000000000000e+00
|
||||
5.599999999999999645e+00 2.500000000000000000e+00 3.899999999999999911e+00 1.100000000000000089e+00
|
||||
5.900000000000000355e+00 3.200000000000000178e+00 4.799999999999999822e+00 1.800000000000000044e+00
|
||||
6.099999999999999645e+00 2.799999999999999822e+00 4.000000000000000000e+00 1.300000000000000044e+00
|
||||
6.299999999999999822e+00 2.500000000000000000e+00 4.900000000000000355e+00 1.500000000000000000e+00
|
||||
6.099999999999999645e+00 2.799999999999999822e+00 4.700000000000000178e+00 1.199999999999999956e+00
|
||||
6.400000000000000355e+00 2.899999999999999911e+00 4.299999999999999822e+00 1.300000000000000044e+00
|
||||
6.599999999999999645e+00 3.000000000000000000e+00 4.400000000000000355e+00 1.399999999999999911e+00
|
||||
6.799999999999999822e+00 2.799999999999999822e+00 4.799999999999999822e+00 1.399999999999999911e+00
|
||||
6.700000000000000178e+00 3.000000000000000000e+00 5.000000000000000000e+00 1.699999999999999956e+00
|
||||
6.000000000000000000e+00 2.899999999999999911e+00 4.500000000000000000e+00 1.500000000000000000e+00
|
||||
5.700000000000000178e+00 2.600000000000000089e+00 3.500000000000000000e+00 1.000000000000000000e+00
|
||||
5.500000000000000000e+00 2.399999999999999911e+00 3.799999999999999822e+00 1.100000000000000089e+00
|
||||
5.500000000000000000e+00 2.399999999999999911e+00 3.700000000000000178e+00 1.000000000000000000e+00
|
||||
5.799999999999999822e+00 2.700000000000000178e+00 3.899999999999999911e+00 1.199999999999999956e+00
|
||||
6.000000000000000000e+00 2.700000000000000178e+00 5.099999999999999645e+00 1.600000000000000089e+00
|
||||
5.400000000000000355e+00 3.000000000000000000e+00 4.500000000000000000e+00 1.500000000000000000e+00
|
||||
6.000000000000000000e+00 3.399999999999999911e+00 4.500000000000000000e+00 1.600000000000000089e+00
|
||||
6.700000000000000178e+00 3.100000000000000089e+00 4.700000000000000178e+00 1.500000000000000000e+00
|
||||
6.299999999999999822e+00 2.299999999999999822e+00 4.400000000000000355e+00 1.300000000000000044e+00
|
||||
5.599999999999999645e+00 3.000000000000000000e+00 4.099999999999999645e+00 1.300000000000000044e+00
|
||||
5.500000000000000000e+00 2.500000000000000000e+00 4.000000000000000000e+00 1.300000000000000044e+00
|
||||
5.500000000000000000e+00 2.600000000000000089e+00 4.400000000000000355e+00 1.199999999999999956e+00
|
||||
6.099999999999999645e+00 3.000000000000000000e+00 4.599999999999999645e+00 1.399999999999999911e+00
|
||||
5.799999999999999822e+00 2.600000000000000089e+00 4.000000000000000000e+00 1.199999999999999956e+00
|
||||
5.000000000000000000e+00 2.299999999999999822e+00 3.299999999999999822e+00 1.000000000000000000e+00
|
||||
5.599999999999999645e+00 2.700000000000000178e+00 4.200000000000000178e+00 1.300000000000000044e+00
|
||||
5.700000000000000178e+00 3.000000000000000000e+00 4.200000000000000178e+00 1.199999999999999956e+00
|
||||
5.700000000000000178e+00 2.899999999999999911e+00 4.200000000000000178e+00 1.300000000000000044e+00
|
||||
6.200000000000000178e+00 2.899999999999999911e+00 4.299999999999999822e+00 1.300000000000000044e+00
|
||||
5.099999999999999645e+00 2.500000000000000000e+00 3.000000000000000000e+00 1.100000000000000089e+00
|
||||
5.700000000000000178e+00 2.799999999999999822e+00 4.099999999999999645e+00 1.300000000000000044e+00
|
||||
6.299999999999999822e+00 3.299999999999999822e+00 6.000000000000000000e+00 2.500000000000000000e+00
|
||||
5.799999999999999822e+00 2.700000000000000178e+00 5.099999999999999645e+00 1.899999999999999911e+00
|
||||
7.099999999999999645e+00 3.000000000000000000e+00 5.900000000000000355e+00 2.100000000000000089e+00
|
||||
6.299999999999999822e+00 2.899999999999999911e+00 5.599999999999999645e+00 1.800000000000000044e+00
|
||||
6.500000000000000000e+00 3.000000000000000000e+00 5.799999999999999822e+00 2.200000000000000178e+00
|
||||
7.599999999999999645e+00 3.000000000000000000e+00 6.599999999999999645e+00 2.100000000000000089e+00
|
||||
4.900000000000000355e+00 2.500000000000000000e+00 4.500000000000000000e+00 1.699999999999999956e+00
|
||||
7.299999999999999822e+00 2.899999999999999911e+00 6.299999999999999822e+00 1.800000000000000044e+00
|
||||
6.700000000000000178e+00 2.500000000000000000e+00 5.799999999999999822e+00 1.800000000000000044e+00
|
||||
7.200000000000000178e+00 3.600000000000000089e+00 6.099999999999999645e+00 2.500000000000000000e+00
|
||||
6.500000000000000000e+00 3.200000000000000178e+00 5.099999999999999645e+00 2.000000000000000000e+00
|
||||
6.400000000000000355e+00 2.700000000000000178e+00 5.299999999999999822e+00 1.899999999999999911e+00
|
||||
6.799999999999999822e+00 3.000000000000000000e+00 5.500000000000000000e+00 2.100000000000000089e+00
|
||||
5.700000000000000178e+00 2.500000000000000000e+00 5.000000000000000000e+00 2.000000000000000000e+00
|
||||
5.799999999999999822e+00 2.799999999999999822e+00 5.099999999999999645e+00 2.399999999999999911e+00
|
||||
6.400000000000000355e+00 3.200000000000000178e+00 5.299999999999999822e+00 2.299999999999999822e+00
|
||||
6.500000000000000000e+00 3.000000000000000000e+00 5.500000000000000000e+00 1.800000000000000044e+00
|
||||
7.700000000000000178e+00 3.799999999999999822e+00 6.700000000000000178e+00 2.200000000000000178e+00
|
||||
7.700000000000000178e+00 2.600000000000000089e+00 6.900000000000000355e+00 2.299999999999999822e+00
|
||||
6.000000000000000000e+00 2.200000000000000178e+00 5.000000000000000000e+00 1.500000000000000000e+00
|
||||
6.900000000000000355e+00 3.200000000000000178e+00 5.700000000000000178e+00 2.299999999999999822e+00
|
||||
5.599999999999999645e+00 2.799999999999999822e+00 4.900000000000000355e+00 2.000000000000000000e+00
|
||||
7.700000000000000178e+00 2.799999999999999822e+00 6.700000000000000178e+00 2.000000000000000000e+00
|
||||
6.299999999999999822e+00 2.700000000000000178e+00 4.900000000000000355e+00 1.800000000000000044e+00
|
||||
6.700000000000000178e+00 3.299999999999999822e+00 5.700000000000000178e+00 2.100000000000000089e+00
|
||||
7.200000000000000178e+00 3.200000000000000178e+00 6.000000000000000000e+00 1.800000000000000044e+00
|
||||
6.200000000000000178e+00 2.799999999999999822e+00 4.799999999999999822e+00 1.800000000000000044e+00
|
||||
6.099999999999999645e+00 3.000000000000000000e+00 4.900000000000000355e+00 1.800000000000000044e+00
|
||||
6.400000000000000355e+00 2.799999999999999822e+00 5.599999999999999645e+00 2.100000000000000089e+00
|
||||
7.200000000000000178e+00 3.000000000000000000e+00 5.799999999999999822e+00 1.600000000000000089e+00
|
||||
7.400000000000000355e+00 2.799999999999999822e+00 6.099999999999999645e+00 1.899999999999999911e+00
|
||||
7.900000000000000355e+00 3.799999999999999822e+00 6.400000000000000355e+00 2.000000000000000000e+00
|
||||
6.400000000000000355e+00 2.799999999999999822e+00 5.599999999999999645e+00 2.200000000000000178e+00
|
||||
6.299999999999999822e+00 2.799999999999999822e+00 5.099999999999999645e+00 1.500000000000000000e+00
|
||||
6.099999999999999645e+00 2.600000000000000089e+00 5.599999999999999645e+00 1.399999999999999911e+00
|
||||
7.700000000000000178e+00 3.000000000000000000e+00 6.099999999999999645e+00 2.299999999999999822e+00
|
||||
6.299999999999999822e+00 3.399999999999999911e+00 5.599999999999999645e+00 2.399999999999999911e+00
|
||||
6.400000000000000355e+00 3.100000000000000089e+00 5.500000000000000000e+00 1.800000000000000044e+00
|
||||
6.000000000000000000e+00 3.000000000000000000e+00 4.799999999999999822e+00 1.800000000000000044e+00
|
||||
6.900000000000000355e+00 3.100000000000000089e+00 5.400000000000000355e+00 2.100000000000000089e+00
|
||||
6.700000000000000178e+00 3.100000000000000089e+00 5.599999999999999645e+00 2.399999999999999911e+00
|
||||
6.900000000000000355e+00 3.100000000000000089e+00 5.099999999999999645e+00 2.299999999999999822e+00
|
||||
5.799999999999999822e+00 2.700000000000000178e+00 5.099999999999999645e+00 1.899999999999999911e+00
|
||||
6.799999999999999822e+00 3.200000000000000178e+00 5.900000000000000355e+00 2.299999999999999822e+00
|
||||
6.700000000000000178e+00 3.299999999999999822e+00 5.700000000000000178e+00 2.500000000000000000e+00
|
||||
6.700000000000000178e+00 3.000000000000000000e+00 5.200000000000000178e+00 2.299999999999999822e+00
|
||||
6.299999999999999822e+00 2.500000000000000000e+00 5.000000000000000000e+00 1.899999999999999911e+00
|
||||
6.500000000000000000e+00 3.000000000000000000e+00 5.200000000000000178e+00 2.000000000000000000e+00
|
||||
6.200000000000000178e+00 3.399999999999999911e+00 5.400000000000000355e+00 2.299999999999999822e+00
|
||||
5.900000000000000355e+00 3.000000000000000000e+00 5.099999999999999645e+00 1.800000000000000044e+00
|
|
@ -0,0 +1,20 @@
|
|||
1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00
|
||||
1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00
|
||||
0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00
|
||||
0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
||||
1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 1.000000000000000000e+00 0.000000000000000000e+00 0.000000000000000000e+00 1.000000000000000000e+00
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
8.9084734e-01 9.3573853e-01 9.3507398e-01 9.6040691e-01 9.2918157e-01 9.6617342e-01 9.0430930e-01 9.5753424e-01 8.7106898e-01 9.2169905e-01 9.7401159e-01 8.9013416e-01 9.3956689e-01 9.0041896e-01 9.2588355e-01 9.3849417e-01 8.9713468e-01 9.1481804e-01 9.7500539e-01 9.0012586e-01 9.0962559e-01 8.5860091e-01 8.6981095e-01 8.9995771e-01 8.8070172e-01 9.1456657e-01 8.6711474e-01 9.2593917e-01 8.7560376e-01 8.5193121e-01 9.0898542e-01 8.7765302e-01 8.6555584e-01 8.6093485e-01 9.0447028e-01 8.7614405e-01 9.4803522e-01 8.4998062e-01 7.8398996e-01 8.9538612e-01 8.3902291e-01 9.9039470e-01 9.5480519e-01 8.9152195e-01 9.1623329e-01 7.9094921e-01 9.1777100e-01 9.8972335e-01 9.0429093e-01 8.7646362e-01 9.2136649e-01 9.7178177e-01 8.9610979e-01 9.4710327e-01 9.3612450e-01 9.0241499e-01 7.7992538e-01 8.7262126e-01 9.3325183e-01 8.5796531e-01 9.4267977e-01 6.7224167e-01 7.9568368e-01 8.6411267e-01 9.3311642e-01 9.0160114e-01 9.0698887e-01 8.5833256e-01 9.6902830e-01 9.5072298e-01 8.6808495e-01 9.7879599e-01 8.8060729e-01 8.2818573e-01 8.4366706e-01 8.4506700e-01 9.4532981e-01 9.1792306e-01 7.8917825e-01 9.8337805e-01 8.1751613e-01 9.3037855e-01 9.1618832e-01 8.6568874e-01 8.9751397e-01 8.7923710e-01 8.6814329e-01 9.0330164e-01 8.2426213e-01 9.4644643e-01 8.8431293e-01 8.8497426e-01 9.0633818e-01 9.5537161e-01 8.2167575e-01 8.7771053e-01 9.0681167e-01 8.7626143e-01 8.7463464e-01 9.8033940e-01 9.2920881e-01 9.5108549e-01 9.1287466e-01 8.0052218e-01 9.2409517e-01 8.8252650e-01 8.7873923e-01 9.2989402e-01 9.1985043e-01 9.6172646e-01 8.8223856e-01 9.4477822e-01 8.8310948e-01 9.4461306e-01 9.1875210e-01 9.1233363e-01 9.2124013e-01 9.5460897e-01 8.4640982e-01 9.0882657e-01 9.8169468e-01 9.7828355e-01 8.4150533e-01 8.6888923e-01 9.7138825e-01 8.7988144e-01 9.6720910e-01 8.9450147e-01 9.5331584e-01 8.8871809e-01 8.9736685e-01 8.6258146e-01 9.1331565e-01 9.0968870e-01 9.4833654e-01 9.0536967e-01 9.5099871e-01 8.0251958e-01 9.2526150e-01 9.8971957e-01 9.0340947e-01 9.4955892e-01 9.6838162e-01 8.7534901e-01 9.1178797e-01 9.2649154e-01 9.5260993e-01 9.3178143e-01 9.4943000e-01 8.7816171e-01 9.6506542e-01 8.3422958e-01 9.3443585e-01 9.3220084e-01 8.5706573e-01 8.4666325e-01 9.0474744e-01 9.1080644e-01 9.2406899e-01 8.7901768e-01 9.3265263e-01 9.5992829e-01 9.5696271e-01 9.1932272e-01 8.0937044e-01 9.0904917e-01 8.9516756e-01 9.4797906e-01 8.4159421e-01 9.6773901e-01 9.7099825e-01 9.6941820e-01 9.8174088e-01 9.7569951e-01 9.3655362e-01 8.4130333e-01 9.5994549e-01 8.4235414e-01 9.1429418e-01 9.3418117e-01 8.4600977e-01 8.8166496e-01 8.7594776e-01 8.8571112e-01 9.6308174e-01 9.5315927e-01 8.6997519e-01 8.9383032e-01 9.4686804e-01 9.4399596e-01
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
3.2420590e+01 3.3246607e+01 3.0526910e+01 3.5166573e+01 3.1868301e+01 3.6025002e+01 3.2513623e+01 3.6557796e+01 3.3752212e+01 3.4422130e+01 3.2526018e+01 3.2581161e+01 3.3743555e+01 3.6960777e+01 3.4225270e+01 3.2965308e+01 3.4591031e+01 3.4204203e+01 3.4678123e+01 3.5728720e+01 3.0830047e+01 3.1550681e+01 3.3304790e+01 3.2676753e+01 3.2742330e+01 3.1684556e+01 3.2830915e+01 3.2956614e+01 2.7365639e+01 3.3207307e+01 3.3420925e+01 3.4357941e+01 2.8280126e+01 3.4523458e+01 3.2705274e+01 3.2455891e+01 3.1636060e+01 3.1594957e+01 3.1805202e+01 3.3886574e+01 3.3438829e+01 3.3330030e+01 3.4168514e+01 3.0637353e+01 4.2149167e+01 3.6340559e+01 2.9315308e+01 3.5778314e+01 3.7693050e+01 3.2598714e+01 3.2990836e+01 3.4967659e+01 3.9748920e+01 3.6745043e+01 2.7117550e+01 3.6014760e+01 2.9367558e+01 3.3845350e+01 3.5477339e+01 3.1513372e+01 3.2517953e+01 2.4755097e+01 3.0229897e+01 3.4799343e+01 3.3371710e+01 2.9600910e+01 3.3275088e+01 3.3567110e+01 3.4527016e+01 3.4942320e+01 3.2359383e+01 3.2607100e+01 3.1467914e+01 2.9032039e+01 3.3122878e+01 2.8496709e+01 2.9908448e+01 2.9962886e+01 3.0345299e+01 3.1737613e+01 2.8551485e+01 3.2610551e+01 3.3082660e+01 3.3719298e+01 3.6434018e+01 3.6589278e+01 3.3889586e+01 3.8036774e+01 3.1483497e+01 3.4196794e+01 3.5154035e+01 3.5488608e+01 3.6143183e+01 3.3473491e+01 3.4686446e+01 2.8687495e+01 3.5725742e+01 3.0188298e+01 3.3084534e+01 3.3538519e+01 3.6226849e+01 2.9052099e+01 3.6032733e+01 3.0811503e+01 3.2616190e+01 3.3888566e+01 3.3074570e+01 2.9683515e+01 3.0600771e+01 3.4345247e+01 3.6983843e+01 3.3692824e+01 3.3762461e+01 3.4024582e+01 3.3698854e+01 3.1238613e+01 3.4978833e+01 3.4991078e+01 3.4577741e+01 3.3749227e+01 3.4982272e+01 3.0487868e+01 3.2317632e+01 3.1125588e+01 3.4413791e+01 3.1881871e+01 3.1373821e+01 3.0416864e+01 3.2066187e+01 3.1128313e+01 3.0240249e+01 3.0125198e+01 3.1343454e+01 3.5479092e+01 3.4450767e+01 3.2953507e+01 3.4456795e+01 3.0136375e+01 3.3462150e+01 2.9894274e+01 3.1367432e+01 3.2839320e+01 3.1440398e+01 2.9400374e+01 3.1106338e+01 3.1242624e+01 3.5537892e+01 3.3056459e+01 2.8610281e+01 3.4296217e+01 3.5819772e+01 3.2503922e+01 3.0963029e+01 3.4762112e+01 3.4796284e+01 2.9645345e+01 3.4468088e+01 2.6975590e+01 3.3738555e+01 2.8825009e+01 3.2663999e+01 3.2547878e+01 3.2308091e+01 3.2489966e+01 3.0868597e+01 3.2974220e+01 3.0866111e+01 3.8197342e+01 3.0609568e+01 3.5478978e+01 2.9249184e+01 3.6185622e+01 3.1948258e+01 3.2649719e+01 3.3305650e+01 3.4643955e+01 3.6566241e+01 3.4968484e+01 3.2632218e+01 3.6741383e+01 3.5700008e+01 3.1962468e+01 3.1410623e+01 3.0412061e+01 3.3749077e+01 3.5649661e+01 3.7649263e+01 3.2832574e+01 3.1783914e+01 2.8264292e+01
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
9.2507465e-01 9.6528566e-01 8.7255441e-01 1.1287379e+00 8.7318727e-01 1.0767102e+00 9.1419676e-01 1.1503304e+00 9.8074509e-01 1.0135025e+00 1.0495025e+00 9.4794536e-01 9.6829273e-01 1.1345767e+00 1.1048008e+00 9.2407796e-01 1.0228634e+00 9.3853195e-01 9.9377619e-01 1.0407662e+00 9.5048989e-01 9.0465688e-01 9.8056930e-01 8.9777156e-01 9.6357127e-01 9.3864452e-01 9.9754613e-01 9.7271356e-01 8.4383151e-01 9.6981983e-01 9.7510267e-01 1.0112663e+00 7.8730400e-01 1.0299498e+00 9.9307979e-01 9.0239520e-01 8.5428231e-01 8.8972742e-01 8.5933162e-01 9.6625934e-01 9.4175449e-01 9.9120729e-01 1.0503963e+00 8.8223053e-01 1.3261434e+00 1.1063209e+00 8.4058398e-01 1.0844267e+00 1.1153093e+00 1.0092643e+00 8.9585237e-01 1.0599818e+00 1.2321707e+00 1.1359624e+00 8.3503556e-01 1.1792243e+00 7.9159781e-01 1.0830419e+00 1.2181870e+00 9.9888500e-01 1.0227144e+00 6.8557277e-01 9.6836193e-01 1.1061227e+00 1.0883453e+00 9.5681974e-01 9.9436299e-01 1.0304323e+00 1.1273949e+00 1.0735563e+00 1.0582583e+00 9.6040272e-01 1.0032137e+00 8.4900547e-01 1.1035351e+00 8.7867480e-01 9.6433176e-01 9.1850122e-01 8.9337435e-01 1.0449390e+00 8.9639384e-01 9.6704971e-01 1.0084258e+00 1.0528587e+00 1.1764481e+00 1.0913280e+00 1.0136672e+00 1.2737156e+00 9.5130359e-01 1.0367909e+00 1.1983402e+00 1.1319901e+00 1.1117462e+00 1.0343695e+00 1.0838628e+00 7.5266057e-01 1.0763316e+00 8.8067924e-01 9.6734383e-01 9.8800551e-01 1.2265742e+00 7.8833055e-01 1.0338670e+00 8.6666625e-01 9.9039950e-01 9.7142684e-01 9.3138616e-01 8.5849977e-01 8.5486301e-01 1.0516028e+00 1.1105313e+00 9.5943505e-01 9.8845171e-01 1.0566288e+00 9.9712198e-01 9.5545756e-01 1.1817974e+00 9.9128482e-01 1.0117892e+00 1.0979115e+00 1.0493943e+00 9.1318848e-01 9.3157311e-01 8.7073304e-01 1.2459441e+00 9.3412689e-01 1.0482297e+00 9.4224032e-01 9.5134153e-01 9.0857493e-01 9.7264161e-01 8.2900820e-01 9.3140549e-01 1.1330242e+00 1.0333002e+00 1.0117861e+00 1.2053255e+00 8.5291396e-01 1.0148928e+00 8.6641379e-01 9.7080819e-01 9.5457159e-01 9.5207457e-01 9.3539674e-01 9.0769069e-01 9.5322590e-01 1.1181803e+00 9.9765614e-01 7.5370610e-01 1.0807114e+00 1.0804601e+00 9.0214124e-01 8.7101998e-01 1.0167435e+00 1.2045936e+00 8.7300539e-01 1.1054300e+00 7.9145574e-01 1.0279340e+00 8.7623462e-01 1.0034756e+00 1.0386933e+00 9.3910970e-01 1.0028455e+00 9.9868824e-01 9.8752945e-01 9.8319327e-01 1.3110209e+00 8.6180633e-01 1.0993856e+00 8.5912563e-01 1.1303979e+00 9.8690459e-01 9.6910090e-01 9.1456819e-01 1.1525339e+00 1.1064552e+00 1.1062255e+00 9.7226683e-01 1.1091447e+00 1.1072238e+00 9.6544444e-01 9.6681036e-01 9.3247685e-01 9.6854634e-01 1.1035119e+00 1.1317148e+00 9.5557793e-01 9.8908485e-01 7.4873648e-01
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
2.5695885e-01 2.6882042e-01 2.3470353e-01 2.9299329e-01 2.2742702e-01 3.1253572e-01 2.4986352e-01 3.0770122e-01 2.5191977e-01 2.7931567e-01 2.8133743e-01 2.6316239e-01 2.6067201e-01 3.2982339e-01 2.8993002e-01 2.5506356e-01 2.8728051e-01 2.4952121e-01 2.8613379e-01 2.6894157e-01 2.3606353e-01 2.1670935e-01 2.3470242e-01 2.4294172e-01 2.4376454e-01 2.3228195e-01 2.3554918e-01 2.4851241e-01 2.0917546e-01 2.4971488e-01 2.4264224e-01 2.7405461e-01 1.9086415e-01 2.6346574e-01 2.5908801e-01 2.2138495e-01 2.2910721e-01 2.2169919e-01 2.0660065e-01 2.3207102e-01 2.5554688e-01 2.5153751e-01 2.6073682e-01 2.0919640e-01 3.3984433e-01 2.7503792e-01 2.1709889e-01 2.7068095e-01 3.0307041e-01 2.4529612e-01 2.2987015e-01 2.7736967e-01 3.0310708e-01 3.0544316e-01 1.9205388e-01 2.7098021e-01 2.0722466e-01 2.6387343e-01 2.8998308e-01 2.2633010e-01 2.5177075e-01 1.6347011e-01 2.4036389e-01 2.6485871e-01 2.8491965e-01 2.2273619e-01 2.4511873e-01 2.5930533e-01 2.6589995e-01 2.7797191e-01 2.3357373e-01 2.4279909e-01 2.3544532e-01 1.9447286e-01 2.3993534e-01 2.0856243e-01 2.2125251e-01 2.1988206e-01 2.0590152e-01 2.6441952e-01 2.0052739e-01 2.2978496e-01 2.4483670e-01 2.3879510e-01 2.9398425e-01 2.7541852e-01 2.3777469e-01 2.9151131e-01 2.0672752e-01 2.4584031e-01 2.7475025e-01 2.7064343e-01 2.5603684e-01 2.6165327e-01 2.4233155e-01 1.7892657e-01 2.6111203e-01 1.9965682e-01 2.4201634e-01 2.6281353e-01 3.1928221e-01 1.9731963e-01 2.7752862e-01 2.2633080e-01 2.6783167e-01 2.5447186e-01 2.6424243e-01 2.1960672e-01 2.2984242e-01 2.8788736e-01 2.8681630e-01 2.6949787e-01 2.3993685e-01 2.4440073e-01 2.5010397e-01 2.3230769e-01 2.9879682e-01 2.4200592e-01 2.6957748e-01 2.6073240e-01 2.6355347e-01 2.3403674e-01 2.2411413e-01 2.2956729e-01 2.8105976e-01 2.2913304e-01 2.4898608e-01 2.3304000e-01 2.2692988e-01 2.3728251e-01 2.2552243e-01 2.0364084e-01 2.3359511e-01 2.6619167e-01 2.6666588e-01 2.3666880e-01 2.7239113e-01 2.0146697e-01 2.3045559e-01 2.1695523e-01 2.1387991e-01 2.2366404e-01 2.2809635e-01 2.0901297e-01 2.2441100e-01 2.3418882e-01 2.8552218e-01 2.4609015e-01 2.0282492e-01 2.5940295e-01 2.7407006e-01 2.3344890e-01 2.1179142e-01 2.7047821e-01 2.9832768e-01 2.0859082e-01 2.8881331e-01 1.8384598e-01 2.5286491e-01 2.2012615e-01 2.3615775e-01 2.6845565e-01 2.3356355e-01 2.7164193e-01 2.4179380e-01 2.5247973e-01 2.5637548e-01 3.2126483e-01 2.3100774e-01 2.8832546e-01 2.0043257e-01 2.7918333e-01 2.4884522e-01 2.2904723e-01 2.3738940e-01 2.9461278e-01 2.9782005e-01 3.0332073e-01 2.5175971e-01 3.1203784e-01 2.6611535e-01 2.3713507e-01 2.2203585e-01 2.3602325e-01 2.5093670e-01 2.6860434e-01 3.0137874e-01 2.3759606e-01 2.6840346e-01 1.9200556e-01
|
|
@ -0,0 +1,20 @@
|
|||
8.278938049410748956e-01 9.035293984476246987e-01 1.862188994679486731e-01 8.921151312310462433e-01 2.061859119379583216e-02 3.440636727385729676e-01 1.533779912830328662e-01 5.701372300009802663e-01 5.510020730211558915e-01 1.792362258426003496e-01 8.086175120876580857e-01 6.115487184317183189e-01 1.233471787164852618e-02 1.441643531871039663e-03 4.044309209045688913e-01 3.561398959499905148e-01 1.281985712929750720e-01 8.663300833847481508e-01 8.696027786291581352e-01 3.611727370363766454e-01 5.283537658772616830e-01 1.440241088090119526e-01 3.112457227138950566e-01 6.031280796897889873e-01 9.230324792742518047e-01 2.332121881136874908e-01 3.192652267403439659e-02 3.466206294995559656e-01 2.988687728046366399e-01 5.116749542048093513e-02 2.584975830914494344e-01 4.302023478042227289e-01 8.003972751713522849e-01 9.364931911368097328e-01 9.737098649964673891e-01 4.718038453972229762e-01 4.526591686607864817e-01 1.056485678520797666e-01 5.883019714285405710e-01 3.846092237676981274e-01 6.461500053435473845e-01 1.013239729848824933e-01 1.216151561651189761e-01 5.159668929484659827e-01 8.452074473510227115e-01 9.885170962247968873e-01 7.623883073490128615e-01 2.291163243615434997e-02 5.775530980802381364e-01 7.820699896828091635e-01 8.239186345842965942e-01 3.391800105260227571e-01 9.546318451614538292e-01 3.789677917867695367e-01 4.526533399649290690e-02 8.366786473238587707e-01 3.082636811049858094e-01 1.173936820793450853e-01 7.631994969169442200e-02 2.997416650722183329e-01 5.795208655160232203e-01 3.942350892542011431e-01 1.175126383297261379e-01 4.928232513950027149e-01 9.421293996225950096e-01 8.365391053841342295e-02 6.868059693571844093e-01 3.589527962429440722e-01 7.592939427166059962e-01 5.623849466131448649e-01 2.110746828032050715e-01 9.824683704668600859e-01 2.661230142246236996e-01 6.162272315007123469e-01 5.023254536607497656e-01 5.202854476669782624e-02 5.835090668842095596e-01 7.864642118889143552e-01 2.504012386867506823e-01 6.728308641135989365e-01 4.610793534576096420e-01 4.820508770515909980e-01 9.720403251022265989e-01 3.100069285263498120e-01 7.681017126461753275e-01 7.956539306007082146e-02 2.593389637887737464e-01 1.137852590403054531e-01 3.885303073284454012e-01 8.599094660075957686e-01 5.215167875918280682e-02 1.620908248572288102e-01 1.859236090457663249e-01 6.247716512610480555e-01 3.415128495520775020e-01 7.034903368378029320e-01 6.037564640019568163e-01 2.338969434423310290e-01 1.002104885609900187e-02 7.866058403969036217e-01
|
||||
8.033694116033356369e-01 8.653264545544031572e-01 7.468340410754038539e-01 6.362430919910603278e-01 5.120006306625468628e-02 9.503348372633585450e-01 4.697732609626817935e-01 4.221305288459429317e-01 3.153452119838391354e-01 2.991014843442657556e-01 1.190667967280257811e-01 3.486567714509342109e-01 8.289493649885054660e-01 8.454811050800014049e-01 9.149673018211901265e-01 7.708707837193897738e-01 2.640157732122547785e-01 2.107897022189605396e-01 4.207633055054439408e-01 6.719500284654699174e-01 1.458031684893063007e-01 1.800412735886125493e-02 8.402733435220011149e-02 4.206760156883160295e-02 1.376933515041314227e-01 1.716717341022133692e-01 1.788220727652158892e-01 8.224310433402118869e-01 7.729093666867475898e-01 2.064223621025984556e-01 9.592092036227207741e-01 8.312490243754996344e-01 6.673289360369902834e-01 4.632847903690773261e-02 7.643954098358983762e-01 9.359341525615098023e-01 1.914966319163026176e-01 4.536590469402868031e-01 8.640836016538007147e-01 3.941529178175462444e-02 5.602101995205478469e-01 9.263806161941660067e-01 1.555995325944817820e-01 6.172208102950116348e-01 6.335576752812099866e-01 9.766975460368043649e-02 4.475795689539874278e-02 3.248842796104995934e-01 5.700377122149502540e-01 9.066962967256807504e-01 5.458460621505676347e-01 6.833401285581487405e-01 2.887244409544044155e-01 1.316338647016834784e-01 2.325673305245992140e-01 4.150121963188406760e-01 3.834845466366055833e-01 8.149365773968725302e-01 1.867003849450201702e-01 3.170322173543018707e-01 6.832093662682684476e-01 1.729728518929105618e-01 9.236557359702636250e-01 9.152941252150086360e-01 7.224879983096620384e-01 8.557920626598064517e-01 5.344883059251644974e-01 4.876873274449112783e-01 8.308277804506420949e-01 3.916624489322212410e-01 3.459695122273966916e-01 4.033512499027409604e-01 6.555726444913008155e-01 7.138452409380238173e-01 1.683937314599968094e-01 1.769382143486440961e-01 7.588683655178136700e-01 3.750589892880819010e-01 7.525176245126207197e-01 6.083961152538303052e-01 1.145972309907993258e-01 6.239614485809552580e-01 1.307655482065895880e-01 8.530458750670916190e-01 4.801602070124768584e-01 8.168122189863546989e-02 3.793139622744635675e-01 1.496986997776840189e-01 7.129023878302899186e-01 6.830979237438047358e-01 7.635375943876505644e-01 1.824004963251233402e-01 5.764695848992339444e-01 8.865113248731604223e-01 5.784337085544002388e-01 9.700026628755119562e-01 7.318207347905059112e-01 3.851401393936705331e-01 1.774291851193399161e-01 9.763423229242296220e-01
|
||||
9.287178470949695175e-01 1.748282433617460718e-01 9.238531711586964734e-01 8.291274445125006443e-01 9.513259272578692416e-01 7.486316801165745494e-01 6.257378457524477300e-01 2.062711693536473101e-01 3.970721244184766130e-01 2.738325225026445597e-01 8.735038948299954642e-01 5.415282140033768066e-01 5.176317904298315398e-01 5.347036264518250093e-01 7.482056965410627258e-01 4.140672582824351800e-01 8.709067272363142376e-01 9.499605569181273079e-01 5.380266748336398619e-01 4.369252161707162241e-01 8.235722216228258397e-03 4.308187193646527691e-01 6.030581482859224129e-01 7.316831195156517920e-01 5.540499846834291420e-01 2.044203040111662872e-01 8.645251782981867583e-01 1.816095717570278545e-01 9.639119168018674966e-01 3.572031072322333634e-01 5.580226816834680248e-01 5.586629875016585478e-01 7.213854320902782780e-01 8.513998260042524580e-01 6.308764347277173723e-02 4.299855362100638567e-01 8.789303907444128150e-01 9.178850359236285783e-01 2.275205845091231582e-01 1.899395443939643213e-01 7.103070862773533944e-01 9.450015289553428399e-01 1.691856364522159595e-01 7.368719616877857925e-01 9.600189536623833231e-01 5.128846522932454244e-01 6.209162727118655578e-02 7.992250598838029907e-01 9.141050280518014937e-01 1.471297785256820978e-01 7.466162372930541524e-01 4.656107650642931084e-01 6.399324135161845728e-01 2.023617619481610230e-01 1.019104648900100996e-01 4.390693688536728700e-02 9.822620353006089600e-01 2.881951852926285529e-01 6.191575015960482098e-02 8.989580763251467932e-01 4.635958631890454429e-01 1.781973138114967270e-02 7.906911683818984571e-02 6.525270776225711167e-02 3.620583622807886925e-01 2.651673718940715796e-01 5.829372395929610651e-01 2.118159824373908595e-01 5.900287159143694504e-01 9.405929925178391215e-01 9.262415619063500971e-01 5.639581506302312475e-01 4.529556154689695635e-02 2.873819210518682166e-01 5.718545934306838996e-01 9.877670791317306742e-01 4.120364488714320927e-01 9.896078045634184583e-01 3.796586997026456523e-01 1.178183652203194098e-01 6.641068305236120795e-01 4.045960610587706618e-03 2.262690437428437340e-01 7.839938005832693957e-01 7.695391333937223743e-01 3.713918392552509884e-01 4.245533341514018399e-01 1.475072494020331915e-01 6.011975181419888514e-01 5.158174017998343741e-01 1.788706151398071764e-01 8.880707130134481986e-01 6.463351030474082659e-01 6.499920635615744624e-01 8.570273676455353318e-01 6.055019270899113515e-01 2.123561211054603159e-02 2.027688787664126968e-01 1.930834215328548487e-01 5.131906052747271518e-01
|
||||
2.599990881903107010e-01 6.767857524909899336e-01 7.188217446352963558e-01 3.037178903357997672e-01 4.252381412838680541e-01 4.070924411439535984e-02 8.426710493038247485e-02 8.301517457289483426e-01 8.254603255702420705e-01 7.258533909453509514e-01 9.958706809470796451e-01 1.323408451651194584e-01 8.523995455245143571e-01 2.572405385832454705e-02 4.715363690065482727e-01 7.920130365690022378e-01 7.613745641534582775e-01 5.108305991695683002e-01 7.908714335912382376e-01 4.641131983754837043e-01 3.112627109831845873e-01 4.218013908715474436e-01 3.291577909008427394e-01 2.538715054071232213e-01 1.362470842487485401e-01 2.716429790290709745e-01 1.485325814161112534e-01 4.514539027544387517e-01 6.900835128673067365e-01 7.793407072946112457e-02 5.938024345270752624e-01 1.497853829906865553e-01 5.399567982652856424e-01 1.419209916759478496e-03 7.719776132867679497e-01 3.130795105576239523e-01 6.670071611167494030e-01 8.900596881158256979e-01 8.011158503301568645e-01 7.089295605187424520e-01 4.671116382997058114e-01 6.682965170673403899e-01 6.524835265739736823e-02 5.454288420771494783e-01 7.751910790556310049e-01 8.192595541387335256e-01 3.098855848167891835e-01 3.689971355659119601e-01 8.666507475054133769e-01 2.749042684253171220e-01 3.566565602478318775e-01 4.838173174723044978e-01 1.032975933616413489e-01 5.063065339610417492e-02 5.791168455729079900e-01 3.573337411289496668e-01 6.714098909652352898e-01 2.917057662433912846e-01 2.654964332620638467e-01 7.171804039048814694e-01 3.314488637898249657e-01 5.230399837442840649e-01 6.866534136026025692e-02 1.252966394621071178e-01 5.349397882659551184e-01 2.841423847455760709e-01 4.158473635710734362e-01 7.197062989831272128e-01 5.123869045047864113e-01 8.675622821594339840e-01 8.097441845042540054e-01 7.317178252133832439e-01 3.300847596465853462e-01 5.922311859141077273e-01 8.852619511417836318e-02 2.673412917259408994e-01 6.878259052441990651e-01 3.223000927116328462e-01 8.859387123976615319e-01 5.722722388300067742e-01 8.254877606669521750e-01 5.705299682290687624e-01 7.046478734972855262e-01 1.316324413616759559e-01 3.056358395675535800e-01 2.396516834600909140e-01 2.041201422493257311e-01 1.610755140653103989e-01 1.617012564641111538e-01 4.449920510036902144e-01 2.731012972755201274e-01 7.826874666257994662e-01 5.193612375350010746e-01 8.688804522977213729e-01 3.742157602758655610e-02 6.649628920608219307e-01 5.978149424619171315e-01 5.345645500553952711e-01 9.443202650415919441e-01 6.105837075491723498e-01
|
||||
6.387761328141735584e-01 4.210087412162694109e-01 3.777306694964789324e-01 3.576349403292201634e-01 7.272699618880260619e-01 9.173392803607671731e-02 1.212535698300880593e-01 3.871229381194544183e-01 7.735150198351389284e-01 4.687200483013695962e-01 5.161778571874678923e-01 9.839646447226980674e-01 8.626932748911960713e-01 9.618485576577924245e-01 2.997996427525421170e-01 3.955404657388794654e-01 8.480126027102616870e-01 8.194992325050480808e-01 2.800213436873294492e-01 7.188391466620779324e-01 2.289766105875049584e-01 3.838547514028287644e-01 1.363553401061209369e-01 2.131328253542326134e-01 2.666779468144075960e-02 3.252883844200405994e-01 4.207860197469600605e-01 2.991365385037647595e-01 9.180779845534067229e-01 8.787338732192649937e-01 5.404510999105649471e-01 1.735493827761729335e-01 7.405224640747264386e-01 3.927355563629583157e-01 3.957109873399460298e-01 1.313029813325972128e-01 6.434498219738993274e-01 7.162213694578050127e-01 6.454998257494671821e-01 3.808124530008022424e-01 2.027201015737234435e-01 6.667632842770417900e-01 1.609491052365198405e-01 1.192413785409307536e-02 4.546773323526854815e-01 7.733541911050207940e-01 3.902525737195561284e-01 4.006023779897505133e-01 5.156517815815246930e-01 6.135685498584592112e-01 7.062153114980724844e-01 5.505858882117883324e-01 3.541308807182554919e-01 5.237151122342533771e-01 5.230649229131387745e-01 1.973541027697351957e-01 7.940327858595511712e-01 9.998588700623055603e-01 3.878271015153827994e-01 4.455006584967207139e-01 8.376414508056347907e-01 3.310833863524501597e-01 8.020469097392601832e-01 1.890327633084128989e-01 3.830289472395409511e-01 8.605040171046141051e-02 9.978185524023941433e-01 8.333890591892906263e-01 4.509013468741837061e-01 6.355778557686052599e-01 1.422515991097305088e-01 9.549891485963732940e-01 7.535776302868563148e-01 9.306005301880662106e-01 2.444330347211679522e-01 5.828218427569508142e-01 1.261938242968304591e-01 2.829188731405173352e-01 8.100246952078660190e-01 2.032739130996042975e-01 3.997268448390065565e-01 3.882777703107541667e-01 1.102505652624736765e-01 5.826634725328041498e-01 6.508734477956333864e-01 1.777287661702166011e-01 4.857051012052149286e-02 6.850537712379254351e-01 5.012281307761055071e-01 3.329154880061502286e-01 5.006261767216675374e-01 4.542081454976160115e-01 6.777801995399822532e-01 4.271303586474960445e-01 7.820470659692947413e-01 5.143462618485082904e-01 4.071273891563575997e-02 8.503383643856671226e-01 6.877485768345151795e-01 6.498843855014626580e-01
|
||||
5.539512747016193117e-01 6.329206647391879548e-01 2.798533500321682688e-01 4.825977295850051307e-01 7.625297023172977751e-01 9.081309101427640362e-01 4.124792086535029600e-01 3.647019658319609059e-01 7.529595202332928228e-02 3.072404010876803593e-01 7.890673660964639957e-01 4.079781478915127657e-01 1.440519120695739064e-01 2.538968953804546791e-01 1.595028243568367143e-01 9.066545851872198636e-02 6.367601114674349416e-01 7.622263643880089479e-02 3.015728236404162654e-01 2.424070469873378375e-01 5.711440390241000475e-01 5.717001375511508998e-01 2.237853674032181939e-01 7.112101625753678436e-01 4.321054197012103026e-01 2.505322169010260058e-02 5.877307077139551916e-01 4.415771174397812304e-01 3.766022855145171322e-01 9.803490652619811785e-01 1.229258314111529860e-01 8.108351868714478439e-01 8.558595456964329662e-01 2.168217533833206589e-01 2.034022719386595623e-01 8.687457137579783772e-01 9.013327195854559104e-01 8.156766512673154779e-01 2.717576187546973943e-01 1.756417893371479133e-01 7.555856977566548505e-01 6.708809351312817748e-01 8.998789237886926085e-01 1.936367585946979775e-01 7.949724635465026390e-01 3.164799312763589834e-01 5.493048513173155456e-01 1.608917269168268493e-01 3.048667492191803330e-01 5.599401537727016764e-01 5.779501360842279611e-01 1.296714605309662316e-01 9.160752328055997706e-01 8.058674476110374574e-01 4.385508937505578908e-01 9.212419718012100356e-01 2.249887451242467140e-01 6.283927745352599903e-01 3.778992451536005159e-01 3.571958698867505611e-03 7.276526470528231760e-01 9.051678673805297892e-01 8.465837072484881931e-01 4.548317505393462135e-02 3.189318261926020748e-01 4.446388607398673587e-01 4.292356336344156365e-01 4.203980977718795309e-01 4.698059253071955599e-01 6.151991200848159203e-01 8.479986139404802614e-01 9.870993262459623052e-01 3.164206525899861955e-01 6.464672171639846976e-01 8.508781429592480183e-01 4.733667503354813677e-01 8.076014176740163863e-01 6.671443255679101458e-01 6.639213267047979761e-01 3.681688930741919830e-01 4.679870252651611162e-01 1.790041740686979521e-01 8.446070273663058847e-01 3.350737544979878191e-01 6.600272349677447359e-01 4.356083218487936115e-01 7.995134167346013010e-01 9.083660261041469619e-01 9.743975306734570241e-01 8.144839650654719376e-01 6.865011984586443239e-01 1.709747281999153268e-01 8.534933687161740945e-01 9.494753729726415070e-01 8.140124992294850426e-01 8.936241255316055287e-01 9.087976860818796077e-01 9.030687493451383663e-02 4.025785149840914734e-01 9.592005611533803711e-01
|
||||
5.714058727476275523e-01 7.913573761505965365e-02 9.301773447377043036e-01 4.302822433307075256e-01 4.618892554175407783e-01 1.882471300213742760e-01 6.231472878215863487e-01 2.350437450940777717e-01 8.483410480771292894e-01 8.580803842040533036e-01 4.246398783388435350e-01 5.667321565946502604e-01 7.247417018955526480e-02 5.373984417482219333e-01 8.794242091541510931e-01 9.699025554453030162e-01 8.254197752548814160e-01 7.739723972867470492e-01 6.365819416181199841e-01 3.451230687021222820e-02 1.829102490094791644e-02 9.179618383026147965e-01 4.481667270072077214e-01 4.771270250445739380e-01 1.588469404953456454e-01 3.766332499200618633e-01 5.057026248713025751e-02 9.125900914275182352e-01 8.438133644246305076e-01 3.282972411719701222e-01 6.042003956122835584e-01 7.423456085393266290e-01 1.389012737541106546e-02 3.674754266702850991e-02 2.126646727703802586e-01 3.085666164246750887e-01 4.303440338750976757e-01 1.749037978865556342e-01 2.177699993322510519e-01 6.675614739991906355e-01 1.926533336347433512e-01 8.032010572660308600e-01 4.611412981769049679e-01 9.907201268457492827e-01 8.973785930837320235e-01 6.286342392657409128e-01 8.111266245859546364e-01 1.154230969025437092e-01 8.382880466301794176e-01 1.053753927827069115e-01 9.921712862234919328e-01 9.041662667920956631e-01 3.626267376021269362e-01 2.262225368932846425e-02 8.669003741626111204e-01 7.597054897704164089e-01 4.700318514995387442e-01 4.338185014241978665e-01 1.205425463362067573e-01 2.413879270602589111e-01 5.483334840461459025e-01 2.042653841254596925e-01 5.452588940366013270e-01 3.164646091706100339e-01 1.878958248945691301e-01 2.188622304737641855e-01 2.970982599823450698e-01 5.952148400199362976e-01 9.614251220149501176e-01 5.446813400697393392e-01 5.900748097930779146e-01 2.653062526715309621e-01 5.459933097767216692e-01 3.174185404661935550e-01 1.412133354129242457e-01 1.487441669790685594e-01 3.953776242211952674e-01 5.274261039692862418e-01 1.756132307607755072e-01 4.481942852746899630e-01 6.390660088765629521e-01 2.860380430081067571e-01 5.866902519902850166e-03 3.026687645174785946e-02 1.952533570196290924e-01 2.154769096186736066e-01 8.920573593276575064e-01 5.644513191915436767e-01 5.551464696654353492e-01 4.378199413349500579e-01 8.685737643974280608e-01 7.493934764293597173e-02 9.556749726352036234e-01 6.386433482536227890e-01 8.714694524097754691e-02 1.722786161701279628e-01 6.526867532768643176e-01 8.950304705281527662e-01 6.158198776753203152e-01 9.587176904005377809e-01
|
||||
7.705718397401561948e-01 3.165816092999733655e-01 4.334200859975760878e-01 8.639807015515663657e-01 5.576514209532534849e-03 2.456745447057938625e-01 1.664686313299922338e-01 9.637084729617834133e-01 1.083448720752323569e-01 1.865218070380464388e-01 3.730358890475884426e-01 5.015351872138350542e-01 7.420710795841709562e-01 4.919420674769692248e-01 3.426558201886464872e-02 8.669984854934246199e-01 2.204243734202966376e-01 4.109792246853891662e-01 4.361732572946559472e-01 6.819306998053020763e-02 9.986304248057148447e-01 4.119289455392274313e-01 8.533050041845835487e-01 3.416914861912183632e-01 6.522191951039880697e-01 4.162803668786793088e-01 9.051674379917418189e-02 4.552378661306888397e-02 2.122677193466918633e-01 7.461518531655018105e-01 4.654688019259497489e-01 7.877564083548750373e-01 4.518328005682387127e-01 7.173857464237374248e-01 6.940056370290903498e-02 2.804574410412373764e-01 6.095681113112718652e-01 3.680596478602831123e-01 1.814569150719304025e-01 6.505055517979729807e-01 2.759585245701871026e-01 1.429501104786028431e-01 7.813891153083207808e-02 8.925314279991185540e-01 6.692056941902108091e-01 1.915141341107173822e-01 5.750233129581091562e-01 2.051961006251528108e-01 3.849013692629975614e-01 9.503788222043518807e-01 7.690419386411734282e-01 9.978147530014782607e-01 1.719584162437415298e-01 4.890758882401113894e-01 7.195660736040896399e-01 2.485818040997200828e-01 9.706486601870933928e-01 5.182604282071262558e-01 8.082072245463804983e-01 4.889961284821118248e-01 8.042893959057633158e-01 3.200685313413229593e-01 8.983245016887355661e-01 2.811495336955205371e-01 3.986095833814048417e-01 8.607229214132059436e-01 4.827620119717191960e-01 6.715610252037491623e-01 9.330824374137768329e-01 7.537710530085762750e-01 9.840804224010484269e-01 2.319352541177217564e-01 9.569114943157627229e-01 5.821928104654411351e-01 6.700479524814679788e-01 5.663434680086896211e-01 8.851091082101365526e-01 6.800562815862243315e-01 3.578475213752868589e-01 2.900164669281133367e-01 8.379170683569914235e-02 9.929972839740475177e-02 5.946248553621906741e-01 1.991332889320840405e-01 8.115065723822508792e-01 2.023388190440008616e-01 4.056545651129230823e-01 2.966825350250481552e-01 7.457176343507545546e-01 9.856015771246517954e-01 2.264338016147812160e-01 8.366528670045663141e-01 6.116829813603242849e-01 2.605933184296719274e-01 5.765962146558850643e-01 5.064075092266390188e-01 5.499615769589756287e-01 9.240234698632640020e-01 7.169900155229913530e-02 3.544181364560751168e-01
|
||||
8.154844535553099627e-01 4.797965609394789777e-01 7.476703385713100447e-01 9.086708404761600910e-01 3.191752505450355937e-01 7.611128630021511965e-01 6.246790343299296611e-01 1.942001426217137006e-01 2.789860414631386565e-01 3.236359785042408621e-02 3.178191288741717413e-01 8.372264298357038337e-01 8.872692914664047636e-01 9.589758852077276963e-01 3.123722260380168425e-01 8.980164015338999439e-01 7.260784140459818348e-01 6.567013512265649222e-01 1.028743505926521529e-01 6.821705410750319443e-01 6.889838995316139858e-01 5.587525493094736007e-02 6.921487028366646310e-01 3.616312929861494885e-01 1.673758008792780583e-01 6.626504595920326146e-01 9.125680913222075086e-01 1.424077784972291871e-01 6.508496429060767197e-01 6.615417385775157477e-01 9.654167310675311198e-01 5.536662974550183858e-01 7.092622144968085962e-03 6.694595400455760625e-01 1.828533619119211417e-01 3.421514408394116247e-01 1.242580151818144518e-01 9.888774797458224075e-01 9.777955172739735135e-01 4.271370765628749178e-01 1.211608384809655936e-01 1.580132417172936954e-01 3.242705395708289640e-01 3.268994391754735940e-01 5.213767653645562383e-03 4.475169480357120699e-01 9.593245219293577986e-01 6.994304536782350867e-01 7.063863152769014331e-01 8.381620829497931080e-01 2.760441799736219615e-01 3.755200946645842475e-01 3.627729621737311172e-01 9.518310606719182498e-01 3.577273025276901386e-01 3.991159901003488164e-01 4.187060513068554535e-01 7.422605403637314581e-01 6.697944269780702342e-01 6.020599837037767799e-01 1.571185850817550245e-01 7.519860911185742847e-01 6.635775704496444938e-01 9.487848173531471252e-01 7.900030232338028924e-01 4.143783957270819052e-01 5.618429740858444932e-01 3.737804619062014000e-01 6.179941187802344693e-01 6.553638605616040058e-01 1.009709416658691739e-01 4.935037098582963910e-01 5.485489972455533936e-01 1.024147956480448984e-01 1.195764707555347917e-01 4.910516327810896531e-01 3.551185778630389089e-01 3.857601645798814927e-01 2.074975219600547760e-01 2.084038664460790002e-01 5.268616653491025037e-01 6.948014877618717833e-01 6.179744044618615817e-01 7.063658085955483168e-01 7.925757227686872630e-01 6.199016959584816577e-01 1.163676037434490107e-01 7.425752264755586252e-01 5.403115665133301215e-01 2.546191951391015840e-01 6.961300925345208501e-01 4.003013072125547467e-01 5.906120962720950995e-02 5.879915846330325824e-01 1.213602408288709800e-01 3.801780679842765576e-01 1.731477742402802722e-01 4.624568816669496485e-01 3.304453744619206823e-01 8.810445876116090869e-02
|
||||
5.140190515373614932e-01 1.419225260054487459e-01 7.777845802285945354e-01 3.327562899409282071e-01 8.916875699762913943e-01 7.212852862736146564e-01 5.727327199433507321e-01 5.897820225918504189e-01 7.318614954542906892e-01 7.393985144455500480e-01 4.531340740296823100e-01 9.903061584426188224e-01 4.213350938331624773e-01 4.542342471963995987e-01 9.788786426453045530e-01 1.881707000343846303e-02 8.005433413647761176e-01 1.523502822273363755e-01 5.630164732287495921e-01 5.946603842470724599e-01 1.225547698678740582e-01 1.531136594724622491e-01 8.157973612638946825e-02 2.752046015644330490e-01 6.809045821946161370e-01 6.455289724528190387e-01 3.830356726830793646e-01 4.446144649678575034e-01 4.969038423960672191e-01 5.497873820641221432e-01 9.471879627821714331e-01 5.933046675329255448e-01 4.099233758501530378e-02 5.790409810134594659e-01 9.546095885251496549e-01 2.608616052375664074e-01 6.910160339170060562e-01 1.293709850476291168e-01 6.407264616302255078e-03 6.186037089828009261e-01 5.537861302543241049e-01 3.527421038298221845e-01 8.033232052121624944e-01 8.128114152830284711e-01 8.319982582278713235e-01 5.939566376046836460e-01 2.291090283499520597e-01 5.438101817725821130e-01 6.881146379117278888e-01 2.421968586304659166e-01 5.874047918543783275e-01 6.210102709484541794e-01 7.041387566450251212e-01 6.959223476278774134e-01 9.133877300988062498e-01 9.230647706207778525e-01 6.856884219815310155e-01 6.997988808693775820e-01 6.177944932528769417e-01 5.512902545683161515e-01 5.818280341729102911e-01 6.538267999985679646e-01 6.946673485935980219e-01 4.817938258357623571e-02 9.352008817207906333e-01 4.774162142215661042e-01 5.768063588692976529e-01 4.589648891483899540e-02 7.998946815651652997e-01 4.434260476954369201e-01 9.850053510925722566e-01 6.648626681529369309e-01 4.606293826856903140e-01 3.309042418210563774e-01 1.438901922508034614e-01 7.986559119276418484e-01 7.037818421334554042e-01 3.605119534240813772e-01 3.785959549258922641e-01 9.562491516841659100e-01 4.997955143590974147e-01 1.029540300938682762e-01 1.819017177001992502e-01 3.665425750262368831e-01 1.688063588370778412e-01 7.030735208313992901e-01 8.922375654244527610e-01 1.055706412056253152e-01 2.664739907746691561e-01 9.906029568647586325e-01 6.043845090140997911e-03 3.495786295043534775e-01 5.989441999519146131e-01 6.776147193866479679e-01 7.012991789852640601e-01 1.825838783477321536e-01 7.612293578749116385e-01 1.564769891240175292e-01 2.762157292905387251e-01 7.641900040015234818e-01
|
||||
4.746013333880729768e-01 7.609202966712714788e-01 2.537820854162747830e-01 1.709362234877408460e-01 1.886635378734374813e-01 2.439567014093724229e-02 7.640304718272151741e-01 3.483216170435471382e-01 7.744289278738043514e-01 4.190437573644867353e-01 5.319091476394965934e-02 8.580130976087452233e-01 6.259446446786639529e-01 8.793213970773006150e-01 2.441023074890465994e-01 7.753405549489799098e-01 8.760187573193888300e-01 5.946480724009295393e-02 2.873093046571124631e-01 8.710837851946537924e-01 9.103181731924696596e-01 6.534637257615111272e-01 4.128420398577182793e-01 4.905858108576378607e-01 6.178275806701372108e-02 6.368043900016381320e-01 2.865296941219959148e-01 6.371773028539067241e-01 4.924322796636745325e-01 1.709313290387282080e-01 1.856892551689268700e-01 9.592782603102242289e-01 5.402593764193130976e-02 7.287312244390512506e-01 5.679467572000697073e-01 6.255587794305905724e-02 3.069660218141317953e-01 1.089960430557104232e-01 5.550748245336984965e-01 2.555948886689661803e-01 4.140925514039996980e-01 1.180376445052062628e-01 8.832322629884041820e-01 7.784546946701487169e-02 3.177678935473182698e-01 6.681804863429485764e-02 7.047099396645268854e-01 4.133897376851528582e-01 5.600656990480865627e-01 3.883995683475501837e-01 4.459430113152932362e-01 4.214077227574740681e-01 4.763369230200156235e-01 2.701480661168440545e-01 4.296286564389811824e-01 9.601402258758658936e-01 6.326999441846863359e-01 2.442086919688498670e-01 8.407708423957936938e-01 3.626867985638081437e-01 3.641441713291436733e-01 7.932397565989488530e-01 8.902073520619256941e-01 1.929173010337000838e-01 7.309376779324568973e-01 7.305852858337777977e-01 6.510197444582447313e-01 9.512661608643838695e-01 8.461467164366111016e-01 9.245490147941206605e-01 2.658844813385705663e-01 9.538758859344749208e-01 8.215517204998477041e-01 8.217795540390903097e-01 7.569662091300560780e-01 6.262685322871274218e-01 5.597770510574888725e-01 8.155720175123675197e-01 8.545688745180864965e-01 8.986051518529034610e-01 2.477911506572628708e-01 8.462580108996445860e-01 6.065941220995090255e-01 6.500490804973033665e-01 1.120463882674053169e-01 9.299049132942927010e-02 1.388364074229719858e-02 5.901199124540731367e-01 2.795110110544174464e-02 1.644097083463245124e-01 5.341029647603202646e-01 5.276816677181681570e-01 5.439849107754858304e-01 5.371677986392331405e-02 4.515163125788429488e-01 5.036243367087100964e-01 5.721818679625961801e-01 5.271368612400184617e-03 7.720961020546839304e-01 9.015383457479009266e-01
|
||||
8.301526916287945701e-01 8.704609696144033348e-01 2.955689129581380303e-01 1.762209253489944727e-01 2.698172933050072553e-01 1.138095349991521399e-01 4.092588531860634760e-01 8.202978121681584467e-01 2.822241377079557356e-01 6.117376205659387223e-01 7.169923068016897938e-01 9.310256256264415331e-02 3.989664052931106708e-01 1.651874953308862803e-02 7.890202597932294282e-02 9.068686774810821305e-01 5.203866694486933842e-01 4.297748572844445336e-01 5.208786995443430712e-01 2.163224881365530816e-01 7.274307306357226111e-01 1.675784956180090823e-01 5.969822786565782691e-01 8.959750832846602453e-02 1.253794151891943764e-01 5.352628522116801291e-01 2.562706125890066300e-01 6.030433202137867044e-01 8.330717547440393833e-01 9.603613683422040914e-02 7.569714244468559450e-01 3.184801677796517128e-01 1.667069341164499896e-01 3.132470247801235619e-01 6.417752836394801097e-01 6.433909425912354152e-02 4.056860213146201710e-01 3.166772891331335327e-01 9.574059746098845247e-01 1.492907964460536974e-01 8.311513764927496162e-01 6.652928354977717396e-01 2.396804722185036374e-01 5.812361618600220270e-01 9.724228681350225445e-01 2.853983236378453414e-01 5.337719354896472979e-01 6.779446197712412081e-01 5.485102006140557540e-01 9.010109155962182648e-01 5.724439967467525037e-01 5.965540527411405947e-01 1.598667990086183321e-01 1.363934512727023041e-01 5.327536522697270405e-01 4.123866715061276222e-01 4.617251396918636841e-01 6.935944951381239898e-01 4.300337419593377453e-01 1.892407993760835128e-01 1.666936825594794724e-01 4.625634184864588772e-01 4.805197636774838355e-02 7.003542850133466224e-01 2.130226006716084974e-03 8.678863343041013367e-01 4.874478520451258623e-01 7.043560228741558848e-01 6.317719270475393722e-01 5.372392256296196766e-01 2.982649812986511995e-01 1.272558612133412037e-01 2.467337555730741983e-01 6.546893200021091097e-01 6.291921159383098150e-01 8.505920470407707379e-01 4.046520490181828578e-01 3.875732096593392795e-01 8.551517214319142024e-01 4.152602284179877090e-01 9.587779137989138611e-01 6.977437468944928112e-01 3.240620775541913634e-02 4.025873770391376061e-01 5.485549335619134270e-01 7.146066156157020455e-01 3.012702534568838519e-01 3.526414480395153594e-01 3.309707144485515284e-01 4.315687014460974913e-01 6.641934530697197747e-01 2.172886798352815507e-01 4.807480925564590057e-01 5.006795397998469177e-01 5.818100901154411586e-01 2.107716091585690732e-01 6.606606051140029301e-01 9.317629042790995797e-01 9.840326342340242061e-01 5.752000964817773898e-01
|
||||
9.843444595454536872e-01 1.339523968066913540e-02 6.082172659959028671e-03 7.828244785439336662e-01 5.069653703872761819e-01 2.804896494365415327e-01 2.112385836660957139e-02 6.016479440778699228e-02 7.457477935084961818e-01 3.445503949245375397e-01 4.063494277166557200e-01 8.630275274433116817e-01 5.948396018456146850e-01 1.400867933474212457e-01 6.997522422654076646e-01 5.766519767930851081e-01 5.419976500582250889e-01 7.474121304089603735e-01 2.951600193008566686e-01 7.980170422334191827e-01 1.829036799578199757e-01 6.317636496261300749e-01 2.812612231140887431e-02 5.464747656105657381e-01 3.909873503320924204e-01 4.940850205957293406e-01 8.157850130814222611e-01 5.111092739445756150e-01 9.336823640685747439e-01 7.157105167170837445e-01 7.778989455994214097e-01 1.398722535910470466e-01 5.642653936300449091e-01 3.218717164845980028e-01 9.717427501967056402e-01 3.665791984428700134e-01 3.874321311211759156e-02 9.437600858738082188e-02 5.679526822961932231e-01 5.141385991358327079e-01 7.497840799582222715e-02 5.736515309094968318e-01 1.928132849879083954e-01 6.924244068001785823e-01 1.748389677952593146e-01 4.469577663506929532e-01 1.738527450963387455e-01 7.195287763517190793e-01 8.861150811892871682e-01 1.058443750714600506e-01 1.941789362229970894e-01 9.188374820700584422e-02 7.706736301449305104e-01 6.718642548609364828e-01 5.981029087121966237e-01 4.832880127232569434e-01 3.073688779938709148e-01 5.156312334804930009e-01 1.777418420119527553e-01 8.885462205165685079e-01 4.486254681289014723e-02 1.345398129556140132e-01 7.467627984379916484e-01 4.384565546058830643e-01 7.217750080760946263e-01 3.949550352625393890e-01 4.307950907642028593e-01 6.087680934849041270e-01 3.294516167246774874e-01 1.316682090209408962e-01 1.824857738754404046e-01 5.332379826483617524e-01 3.567136182864261151e-02 1.976220743086236631e-01 5.849349042822560296e-01 1.133174406357483344e-01 7.711522754393199675e-01 8.557306786807005183e-01 3.038353471344266143e-01 4.422747047768413875e-01 2.537160404215925702e-01 2.372714099723788328e-01 5.906462765375103396e-01 4.849909323133470007e-01 2.692576210504484813e-01 4.540849506602829821e-01 9.664935719107857759e-01 2.044371576459835804e-01 4.505417469690352616e-01 7.110722322201217249e-01 3.051357995214963870e-01 8.978937034341526457e-01 6.090501112506481185e-01 6.595415779178889215e-01 6.565426836745864581e-01 6.565608489824376059e-01 2.679102664248229626e-01 3.819533138204529443e-01 6.609794961162380744e-01 2.289558446859882856e-01
|
||||
9.274935298374649140e-01 1.174096651033715855e-01 3.030761852629033637e-01 1.605508209527917174e-01 9.601854834873225775e-01 4.341959513718630648e-01 6.320768160802121560e-01 4.213429090614078110e-01 3.695553969042019160e-01 5.965457437116089556e-01 3.520335041155040479e-01 7.702703502247409961e-01 8.571112772962534709e-01 7.904077282532658844e-01 2.247339318352784554e-01 6.823720204503556097e-01 5.883435710582129996e-02 6.786037033312407596e-01 9.721137137641507886e-01 2.042576970668320557e-01 8.394085754806240862e-01 7.433082729552867862e-01 4.072614159870893147e-01 7.451483066617257123e-01 1.699472962789440045e-01 1.753052015584344314e-01 2.255269204788400428e-01 7.794755643807432799e-01 8.407732260470973662e-01 9.301182862857163558e-01 3.701995309382508648e-01 4.481909027604019657e-01 1.261889085033987001e-01 5.600591735875248833e-01 8.244692493969552061e-01 8.969188061645969601e-01 4.802217973423368313e-01 3.556164122713412201e-02 3.393317823164623270e-01 2.491242957582864292e-01 9.863253789366602797e-01 5.585415885291432625e-01 3.702350606362231344e-01 6.766101432620400535e-01 6.999259389475386284e-01 6.676108316872160220e-01 7.870681827507105544e-01 8.746765411259082024e-01 9.125268371282718727e-01 6.638849997061806452e-01 3.253268113800632522e-01 7.968625619248901337e-01 7.584122525443606211e-01 9.028886850768532701e-01 5.381622293189292083e-02 8.097562873320752752e-01 7.092942088208666895e-01 9.915538877968065323e-01 4.319294903327922652e-01 4.307127933969153721e-01 2.768507739641907772e-01 8.076253078288621046e-01 2.569233696442670967e-01 7.595893829724666979e-01 5.768081727897018673e-01 2.537536777625452045e-01 8.874419624636734616e-01 5.091705681832693342e-01 4.811826624992353585e-01 2.794462461940371290e-01 3.846927898276129021e-01 5.129562951959991679e-01 8.515004062224775794e-01 7.103144978683579858e-01 9.526388607201888847e-01 2.367905569592337889e-01 9.137336039323161740e-01 5.722969943101696710e-02 2.019723935481291255e-01 3.098764675203513619e-02 1.121146613918624357e-01 9.937693067724532314e-01 8.476717958861412772e-02 2.059652110343795917e-01 2.139791918759540446e-01 9.137860316709250919e-01 9.530862653366889425e-03 2.027843281683039400e-03 2.506229951837134484e-01 6.244523528392044165e-01 5.523937894075592325e-01 3.712168074031840792e-01 4.218847794299319665e-01 4.827576239387890711e-01 5.244634168840578425e-01 5.182241092381567604e-01 3.308639956263292881e-03 9.370528021570383448e-01 4.694554875029453012e-01 4.950447554541728135e-01
|
||||
1.525818111800841814e-01 4.708012184002630107e-02 3.899035965341954846e-01 3.928304521031263929e-01 5.602286661727436945e-01 9.738256658043862313e-01 9.404465779766183475e-01 5.750862754958349088e-01 9.547546956257608741e-01 2.750275291553152535e-01 1.682773435862793265e-01 5.865928471016079726e-04 8.543378154943809255e-01 3.547649971465383079e-01 5.058056647397523031e-01 9.116332486700751137e-02 7.534666421106954726e-01 3.082429494433007733e-01 4.527145111847344916e-01 5.456680635225539255e-01 2.504131242494785914e-01 2.509240770568589296e-01 3.949236999582302898e-01 8.782959620323271821e-03 2.474641132111736752e-01 8.229417958971670943e-01 3.444225768479134420e-01 4.000027489436257522e-01 4.247741954177396417e-01 2.497745404169693373e-02 4.325768602588443423e-01 7.336592463477830117e-01 7.667663267650381975e-02 4.179022553581047683e-01 8.745172741480690126e-01 9.417705509525042817e-02 2.807522782799587446e-01 8.212710101351362590e-01 2.211181944001613386e-01 4.319929503523877168e-01 1.858636923768219873e-02 6.737037795085246694e-01 7.997187114913413275e-01 2.976552505976116647e-01 3.272347030789168887e-01 5.550935453236346406e-01 9.224109746648162522e-01 3.192827922106745708e-01 3.500098324549234530e-01 7.821988386980260888e-01 4.478417135239194380e-01 1.580956175222456572e-01 5.300807813550156844e-01 5.806154798468634581e-01 9.456842911054151868e-01 7.688127895655872956e-01 8.456527833650537840e-01 1.784229089865225770e-01 8.114517450321339087e-01 8.062506298824222428e-01 2.113482500442499523e-01 2.629226789210241666e-01 6.478686221690072022e-01 6.006672861605766300e-02 7.013679843242253131e-01 8.784753961212666828e-01 3.487138165323044880e-02 4.928426758517070461e-01 5.976224683315064512e-01 7.629063997052759616e-01 2.761721278953045422e-01 7.240740503283805696e-01 6.131065729985127888e-01 1.630885615792579957e-01 8.473783868551159060e-01 8.347614542399306448e-02 8.137265626844719657e-01 8.512508664918938539e-01 2.777097816703766320e-01 1.729154355214796990e-01 2.203382750835449766e-01 6.134780912629795857e-01 3.524352564238901753e-01 5.370314860129862256e-01 8.013986113284543578e-02 2.555842138998117852e-01 6.553915758947851389e-01 9.679125599178584061e-01 2.549566319678178150e-01 4.008180804370896633e-01 9.145789951670967310e-01 2.787926039163850511e-01 8.599455912576436933e-02 9.637558000691170967e-02 8.274101203974880692e-01 1.803747268179315411e-01 2.175735407836230095e-01 7.825994939720237742e-01 7.928519890958951599e-02 8.707949373106749213e-01
|
||||
6.398420210047787160e-01 5.739624494012524059e-01 3.359672805578653998e-01 1.130399363175038641e-02 3.349439685346782269e-01 2.315484030880912147e-01 4.575228302577399875e-01 1.149494135594463229e-01 2.888244352925943836e-01 3.625470995156252485e-01 3.795973190611611203e-01 6.567047810450010736e-01 1.484039742710284715e-01 9.273251916560719676e-01 4.334256728976307871e-01 6.734771102219323513e-01 9.125080197222198430e-01 4.974393931097168542e-01 8.301481563280355136e-01 4.526450714147856047e-01 2.414236092573898151e-01 8.070129698367667359e-02 7.260400697427102923e-01 1.396509691839398215e-02 2.496450588391967429e-01 4.335741205447194435e-01 3.089314419194891803e-01 9.543503534526003307e-01 5.457977547458532364e-01 3.139663643587058406e-01 5.034762326753475792e-01 4.756788330475764104e-01 6.849334942793482428e-01 3.880666613022351052e-01 6.483446580176778218e-01 5.217503801099343530e-01 5.371145824070304720e-01 3.121260159429154468e-01 8.314121854062171968e-01 4.538695969561833410e-01 8.598896961203845724e-01 9.961993522734106099e-01 8.865717795946430613e-01 7.828987966783660379e-01 3.412415531643435695e-01 7.421170530151157685e-01 4.484104178639959359e-01 6.793217012099640462e-01 3.756179958191659951e-01 7.821287098222597933e-01 6.227726265188193722e-02 8.552983413221663112e-01 4.824668768009222619e-01 2.241531065858231031e-01 4.939536577599041856e-01 5.129566641128722182e-01 1.057984177672518511e-01 9.541452507300716146e-01 3.396646181755047511e-01 7.452588103611947901e-01 5.315559265659929311e-01 5.493475179850665358e-01 5.214824278139198466e-01 5.150075718147916204e-01 1.196075368500321146e-01 9.035665331176232495e-01 7.522653903639873185e-01 6.638708679914825384e-01 5.584174553800479446e-01 5.015819402508836511e-01 5.507698483308445248e-01 5.978677577011723976e-01 8.450418028759657529e-01 3.266677322748618995e-01 1.321610045897971819e-01 2.394354042746985600e-01 2.723972163557076831e-01 5.523301747352814539e-01 5.518043850608547185e-01 5.283968096837132755e-02 8.192733312104071297e-01 2.277106024970321219e-02 1.414998099027269252e-01 6.517281615256080851e-01 1.811694734825117781e-01 9.472370614713256920e-01 5.454497319021770485e-01 1.364119913158231556e-01 8.446142008509562871e-01 7.671725984742419069e-01 2.461161648406858804e-01 1.421724627107351369e-01 6.290652581179481118e-01 7.094144689448004248e-01 4.419656923472803367e-02 6.614741876652251440e-01 8.712193265403500586e-02 4.734931280852430202e-01 5.382037050480286133e-01 1.396459758005891283e-01
|
||||
9.709329844415439670e-01 8.998575745276288229e-01 9.151313462895852568e-01 6.920489275523904471e-01 2.892231405199537919e-01 6.750679746268205550e-01 5.515642485826798280e-01 1.065253097812824956e-01 2.957026803465776510e-01 8.937347659632134400e-01 9.800016515925590310e-01 7.745900896182087436e-01 1.570977683146633774e-01 1.482028765821026273e-01 2.111147779712029271e-01 9.683759902485811200e-01 6.550951580826911425e-01 8.728324682592377703e-01 5.044803166579884257e-01 8.285704754811143991e-01 1.693574499337324735e-02 6.032669995180495182e-02 1.687026879086964692e-01 7.701554026145973619e-01 1.429888016593102718e-01 5.881172815379975827e-02 9.704206919487038396e-01 4.450807650730836951e-01 1.597445784258376689e-01 9.849229394397314152e-01 4.220083573536804744e-01 9.357693600374825671e-01 2.313199262338369033e-01 4.556443403861323294e-01 2.590791012828855822e-01 8.438664994487065085e-01 5.519045677502344427e-01 4.702170125676508050e-01 6.814723205638187897e-01 7.418295483665861001e-01 3.684921032028853904e-01 1.501895844844561845e-01 4.214513377519605308e-01 8.600279963652578408e-01 6.625616611189292238e-01 5.200151456470966105e-01 7.881072743086801058e-01 2.771703241081423519e-01 9.034135930616548071e-01 5.848441705791300738e-01 8.341698181274771473e-01 1.966638677318299777e-01 7.059747894371543042e-01 7.013854316067694716e-01 1.828430942760242983e-01 4.745548949934464966e-01 6.306422394641082452e-01 7.760751707194470939e-01 9.813187212598396547e-01 2.293595795266353266e-01 7.749261876107090830e-01 2.384106107787011819e-01 9.721209688979495223e-01 2.715569353686980714e-01 2.915573577694993146e-01 3.579601509630966349e-01 3.085697512342830962e-01 4.070219981627976047e-01 1.989632411372218579e-01 7.330003339460906542e-01 5.397259604481572381e-01 6.931009942216573849e-01 1.385457419653816080e-01 1.140339999976658358e-01 3.980752590866034613e-01 9.471822621683767540e-01 5.476643721405823895e-01 6.824131903515884279e-02 5.844099130744569992e-01 2.346881692012994236e-01 9.436439228519653000e-01 4.855518260479008141e-02 8.157036123302675579e-01 1.169761256455048581e-01 5.532962903488753970e-01 1.100965596251435308e-01 9.789490602992410029e-01 8.433487462016989733e-01 1.272410782852178013e-01 2.885715258680641160e-01 7.990943955388217779e-01 1.565305358979097727e-01 9.160846960406943129e-02 8.521842244411678147e-01 4.474243106736998099e-01 3.843945818845087015e-01 4.710645906071458944e-01 2.398348154123419729e-01 6.435351435258193087e-01 7.656897921129046658e-01
|
||||
4.894328120406804539e-01 7.881019629214267574e-01 6.974585354155089512e-01 2.023858939857701156e-01 1.660984914264745926e-01 4.854517801734643534e-01 2.789848572630315715e-01 2.311636522410289718e-01 9.821076233980715608e-01 1.220641257408076052e-01 2.614036146663852866e-01 7.657560715165320220e-01 3.968360577545695378e-01 4.566023622802184434e-02 1.049701948619241598e-02 9.281162949127452766e-01 4.490137965769909201e-01 2.095846458383606725e-01 9.195504656719085679e-01 9.683515436855471004e-01 9.800174878114910060e-01 5.517610861380117804e-01 6.711570559348770670e-01 5.125258050287277989e-01 2.105581493613526423e-01 8.281813206544574868e-01 4.964783994807770995e-01 7.284974208756571645e-01 1.320629592816270348e-01 6.652194518096135045e-01 9.430156297917950958e-01 7.477263137894260003e-01 2.054087806450300979e-01 4.248209124837907247e-01 7.657518666018259257e-02 1.031614100713345028e-01 4.122242287567021712e-01 4.919658859336810686e-01 3.752650167259050651e-01 4.175771429986683270e-01 6.131376293448997927e-01 5.463797405837259591e-01 3.119918548921774004e-01 6.331762507678504459e-01 5.484632429281035559e-01 6.815448032785871302e-01 8.065695507425107991e-02 8.720129122297424207e-01 8.318188557125294480e-03 2.199323537180564170e-02 8.933872719887463454e-01 1.953120287872067706e-02 2.478721941404590234e-01 5.994061179859005994e-01 6.588362611693047155e-01 6.332808851020984564e-01 3.823849348043323326e-01 5.111091324899629251e-01 7.034808459110406531e-01 4.347681568463539481e-01 4.316973576672314961e-01 9.620411080123215664e-01 6.247837467655984467e-01 8.196961678222113301e-01 5.574601810887074294e-01 8.800635018469276094e-01 8.772255241161972528e-01 5.075275933138404527e-01 8.022583187266906224e-01 2.320670802521890286e-01 1.165626629103270195e-01 4.623759662685936744e-01 7.938327000737943617e-02 7.986374689793115378e-01 6.728842751465858862e-01 8.133909095059230765e-01 1.202639390769081329e-01 1.052937257108800262e-01 8.717600467040409473e-02 2.163819956545051104e-01 6.596483385763984852e-01 1.202843170392309258e-02 1.538789195854695091e-01 3.120247727263308901e-01 3.408168327248596308e-01 3.241861797851740556e-01 3.637074533655986208e-01 1.533669345890729119e-01 4.455921334699539660e-01 5.619140093874478437e-01 1.881731359879111887e-01 9.416670800570559052e-01 1.740018593664415247e-01 7.030242331869680505e-01 5.922055553954849172e-01 9.326211623391688077e-01 6.608322881013140027e-01 7.009721551241574478e-01 1.079126054675583202e-01 6.158176671761947940e-01
|
||||
5.185079639625639336e-01 9.613742991518259284e-01 5.555312825626229634e-01 2.647628827924735084e-01 6.003697207460141350e-01 5.392112376769145898e-01 6.781186965667050925e-01 9.908971748181496508e-01 4.124155872095397468e-01 9.814941401724619485e-02 2.684237785531295994e-02 1.774652505962848181e-01 1.707589529595294753e-01 4.640932098465534450e-01 2.882179883914587348e-01 7.276822905806898945e-01 6.145789546745269449e-01 1.100959863917608805e-01 6.798859723042820491e-01 9.096984032948918220e-01 3.971368455178179158e-01 2.959494950971321980e-01 3.742088799298171065e-02 1.960739526210202310e-01 7.536102695342027369e-01 6.680915510628401277e-01 4.136507204312135366e-01 3.613996339406737590e-01 3.605422038261204554e-01 7.098503555159476619e-01 8.093719147087541366e-01 6.344097009128880638e-01 3.990082448083617228e-01 2.805918009906902544e-01 7.078488167363675698e-01 9.969917259866583059e-01 9.442054998992396309e-01 1.329075240769165278e-01 6.810681350588387861e-02 8.503491437913293094e-01 8.347117439165431252e-01 2.381858201903953587e-01 7.884260706938626129e-01 7.109907917419661105e-01 6.390916681983604963e-02 6.174365227062991179e-01 5.085733343630816083e-01 1.716846139694149231e-01 9.065664924270055991e-02 5.625330757196970177e-01 3.539663480209681579e-01 8.937139525947165319e-01 3.981380511900556307e-02 7.403597927449541150e-01 3.803872284089604427e-02 6.729519695709765825e-01 5.306080908840085097e-01 2.091237680402112664e-01 5.902903662907804661e-01 2.094778612095482551e-01 7.323447855684165342e-01 3.644574495843493356e-01 2.006215478057034041e-01 3.737617545555030896e-01 5.253471759602216240e-01 4.287889547869583318e-01 7.086098806190446187e-01 4.510792335515292351e-01 6.383187180169215269e-01 8.779355722397681472e-01 4.221338898667141848e-01 6.375840144651815367e-01 8.683057298299173832e-01 6.093730356952498095e-01 9.297141161056151626e-01 7.770838342807246946e-01 6.549661287008456956e-02 2.835060738158660110e-01 4.474138867374952699e-01 8.530336387421445510e-01 3.160209657891883683e-01 8.301538680518486535e-01 6.646903097549101691e-01 7.187130118106234145e-01 1.651862041735395747e-01 9.578252676762609719e-01 6.490273812885494209e-02 9.777273484666341163e-01 8.930729829254262508e-01 9.851054752118463265e-01 4.094323402286751401e-01 1.139176240124337713e-01 7.612865863899589414e-01 2.266379302491570158e-01 6.998882496157835531e-01 9.945043379099228753e-01 7.111578056749194854e-01 7.806190603886183910e-01 3.410170920712443099e-01 9.446084168886822452e-01
|
||||
5.015172758330755931e-01 5.569527971282052237e-01 1.122406928736449094e-01 8.960352822124777461e-01 6.049568585854003810e-02 1.202196001338627918e-01 1.870314295763603196e-01 9.017590029396971296e-01 3.597904628087450485e-01 2.130941062746317671e-01 2.556281834629479111e-01 5.123669364829196438e-01 4.754061129282013409e-01 9.764470380372083369e-01 8.038663983900646848e-01 6.960491266420890666e-01 2.940135977911654264e-01 2.857282759910040326e-03 4.599343225832352999e-02 5.597554495210212977e-01 7.445266674304001908e-01 3.387528030535971180e-01 6.429542922125383031e-01 2.123331785532429627e-01 5.302332654117811739e-01 7.262555377662539557e-01 3.982425859900724507e-01 3.243388301740235402e-01 6.191064123738921898e-01 8.988047781373914580e-01 7.819700328765150088e-01 7.664269102804815992e-01 6.734095355422575757e-03 2.904762329148526945e-01 5.097537644843168625e-01 9.524734606001823423e-01 4.812869576591960463e-01 6.236868013640477493e-01 1.459170943214320726e-01 9.874505139403206844e-01 7.561708982837871407e-01 3.798591332432484924e-01 6.056633451375117438e-01 7.935708170258731764e-01 1.458141583518740569e-01 7.082511296391911237e-01 1.098798009731616343e-02 3.655618484905173160e-01 9.551862303858617009e-01 8.148959351152762487e-02 4.739306219219985294e-02 7.963357515359494876e-01 6.208332695202813944e-01 3.884182264923189409e-01 4.589167647950288531e-01 6.496652974138312775e-01 2.467528128074852889e-01 5.309593064844935206e-01 5.364606369543487574e-01 2.421352989851309756e-01 3.776834556696828660e-02 1.564861233558080267e-01 5.197231021782636740e-01 8.725375120634637494e-01 2.441225493455024820e-01 2.320363366041028330e-01 5.026358683423555185e-01 7.035766000474735771e-01 8.347805591467084563e-01 2.303229841813967393e-01 6.908373419683054850e-01 2.646662377366995056e-01 1.259467197942290007e-01 9.372770922994989595e-01 6.674216272867254940e-01 1.027944489143072238e-01 5.686267290346079806e-01 3.948222804451942958e-01 4.689706944496729868e-01 4.446117700449114807e-02 6.817992275557515081e-01 9.084821829413957106e-01 9.184021015315092518e-01 3.045815734169987632e-01 2.204958624923980537e-03 7.542672057172502553e-01 9.460844786545006269e-01 3.373139094575949848e-02 9.059565314915285494e-01 9.938525461318854504e-01 2.542072661725306437e-01 9.685734112479216229e-02 8.223629541824816203e-01 1.057429056898460118e-01 8.080679390260248063e-01 5.823014244609205914e-01 6.413551528031806725e-01 1.787341975438894170e-01 1.250471413912357388e-01 8.390281297596062782e-01
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
4.0515260e+00 4.2121458e+00 3.7357405e+00 4.2313317e+00 3.9136009e+00 4.3843298e+00 3.9811426e+00 4.3624182e+00 4.0642508e+00 4.2105933e+00 4.0747226e+00 3.9068586e+00 4.1637004e+00 4.4303203e+00 4.1841564e+00 4.1063279e+00 4.1862390e+00 4.0719925e+00 4.2227579e+00 4.3173531e+00 3.8811067e+00 3.7577567e+00 4.0623722e+00 3.9882453e+00 4.0432671e+00 3.9085109e+00 4.0283414e+00 4.0846110e+00 3.6459235e+00 3.9544001e+00 4.1134244e+00 4.1805752e+00 3.5121011e+00 4.2747789e+00 4.1048323e+00 3.9269426e+00 3.8932032e+00 3.8281172e+00 3.7288430e+00 4.0863477e+00 4.1527428e+00 4.1646409e+00 4.2027433e+00 3.8441594e+00 4.8419117e+00 4.2455384e+00 3.7622220e+00 4.3967923e+00 4.4663183e+00 4.0435853e+00 4.0421692e+00 4.3124625e+00 4.6499961e+00 4.5595743e+00 3.4230430e+00 4.2612266e+00 3.5676603e+00 4.0866580e+00 4.2307103e+00 3.8521940e+00 3.9951183e+00 3.1022409e+00 3.7290193e+00 4.1931517e+00 4.1127027e+00 3.6633651e+00 4.0235815e+00 3.9729858e+00 4.1980132e+00 4.1579993e+00 3.9948955e+00 3.9081966e+00 3.9031152e+00 3.5069036e+00 4.0015727e+00 3.6763496e+00 3.6614339e+00 3.6227109e+00 3.7357992e+00 4.0170026e+00 3.5216829e+00 3.9322227e+00 3.9094621e+00 4.0170286e+00 4.3264246e+00 4.3435483e+00 4.0788635e+00 4.4761765e+00 3.8468186e+00 4.1490333e+00 4.2800007e+00 4.2260191e+00 4.3031858e+00 4.1897413e+00 4.0530244e+00 3.5893641e+00 4.2186615e+00 3.7979503e+00 4.0915473e+00 4.1343073e+00 4.5063851e+00 3.6394889e+00 4.2508448e+00 3.7160826e+00 4.0105262e+00 4.1578269e+00 4.0290590e+00 3.6971819e+00 3.9414087e+00 4.2522313e+00 4.4091714e+00 4.1542292e+00 3.9594691e+00 4.0923600e+00 4.0855497e+00 3.8253075e+00 4.3034717e+00 4.0976731e+00 4.1316523e+00 4.0872717e+00 4.2643353e+00 3.8887280e+00 3.9411273e+00 3.8848001e+00 4.3481996e+00 3.8716733e+00 3.9084684e+00 3.7546361e+00 3.9354816e+00 3.8293694e+00 3.7568515e+00 3.7184961e+00 3.8404278e+00 4.2570811e+00 4.1423777e+00 4.0291411e+00 4.2094682e+00 3.6127418e+00 4.0459839e+00 3.7737985e+00 3.7647653e+00 3.9762006e+00 3.8999512e+00 3.8509090e+00 3.8975941e+00 3.8432839e+00 4.2109046e+00 4.1339124e+00 3.5898873e+00 4.0794519e+00 4.3504966e+00 3.8862612e+00 3.8332931e+00 4.2190310e+00 4.1366595e+00 3.7220268e+00 4.1250795e+00 3.3169452e+00 4.0757181e+00 3.6487114e+00 3.9513724e+00 4.0735549e+00 3.9137880e+00 3.9656942e+00 3.7724953e+00 4.0505153e+00 3.9062302e+00 4.5671852e+00 3.7542175e+00 4.3731708e+00 3.6733907e+00 4.4667545e+00 4.1004635e+00 4.0530038e+00 4.0346958e+00 4.2145752e+00 4.4298637e+00 4.2982360e+00 4.0878239e+00 4.4061563e+00 4.2115971e+00 3.8263277e+00 3.8603258e+00 3.8572375e+00 4.1051910e+00 4.3787786e+00 4.5309659e+00 4.0047055e+00 4.1308854e+00 3.6283561e+00
|
|
@ -0,0 +1 @@
|
|||
4.6000000e-01 4.3000000e-01 4.3000000e-01 5.4000000e-01 4.1000000e-01 5.3000000e-01 4.3000000e-01 5.9000000e-01 4.8000000e-01 4.7000000e-01 4.6000000e-01 4.9000000e-01 4.5000000e-01 5.5000000e-01 5.3000000e-01 4.5000000e-01 4.8000000e-01 4.7000000e-01 4.8000000e-01 5.1000000e-01 4.9000000e-01 4.4000000e-01 4.9000000e-01 4.7000000e-01 4.9000000e-01 4.7000000e-01 5.2000000e-01 4.7000000e-01 4.2000000e-01 4.9000000e-01 4.7000000e-01 5.5000000e-01 3.9000000e-01 5.5000000e-01 4.6000000e-01 4.5000000e-01 4.0000000e-01 4.8000000e-01 4.5000000e-01 4.8000000e-01 4.8000000e-01 5.0000000e-01 4.8000000e-01 4.5000000e-01 6.4000000e-01 5.7000000e-01 4.6000000e-01 5.4000000e-01 5.6000000e-01 4.8000000e-01 4.8000000e-01 5.3000000e-01 5.4000000e-01 5.3000000e-01 4.5000000e-01 5.8000000e-01 4.2000000e-01 5.4000000e-01 6.0000000e-01 5.1000000e-01 4.6000000e-01 4.1000000e-01 4.4000000e-01 5.6000000e-01 5.4000000e-01 4.8000000e-01 4.8000000e-01 5.1000000e-01 5.2000000e-01 5.5000000e-01 4.5000000e-01 4.3000000e-01 4.7000000e-01 4.7000000e-01 5.6000000e-01 4.9000000e-01 4.8000000e-01 4.5000000e-01 4.9000000e-01 4.7000000e-01 4.5000000e-01 4.5000000e-01 5.6000000e-01 4.9000000e-01 5.8000000e-01 5.4000000e-01 4.6000000e-01 5.8000000e-01 5.3000000e-01 5.4000000e-01 5.5000000e-01 5.0000000e-01 5.2000000e-01 4.8000000e-01 5.0000000e-01 3.8000000e-01 5.3000000e-01 4.8000000e-01 5.1000000e-01 4.8000000e-01 5.2000000e-01 4.7000000e-01 5.0000000e-01 4.3000000e-01 4.8000000e-01 5.2000000e-01 5.0000000e-01 4.2000000e-01 4.2000000e-01 4.7000000e-01 5.4000000e-01 5.1000000e-01 5.4000000e-01 5.1000000e-01 4.8000000e-01 4.7000000e-01 5.2000000e-01 5.2000000e-01 5.4000000e-01 5.4000000e-01 5.0000000e-01 4.5000000e-01 4.4000000e-01 4.1000000e-01 5.7000000e-01 4.6000000e-01 5.1000000e-01 5.2000000e-01 5.0000000e-01 4.8000000e-01 5.0000000e-01 4.4000000e-01 5.3000000e-01 5.2000000e-01 4.9000000e-01 5.7000000e-01 5.8000000e-01 4.9000000e-01 5.1000000e-01 4.5000000e-01 5.3000000e-01 4.5000000e-01 4.4000000e-01 3.5000000e-01 4.2000000e-01 5.3000000e-01 5.2000000e-01 5.0000000e-01 3.8000000e-01 5.2000000e-01 5.6000000e-01 4.7000000e-01 4.4000000e-01 5.1000000e-01 5.7000000e-01 4.5000000e-01 5.7000000e-01 4.3000000e-01 5.1000000e-01 3.8000000e-01 5.3000000e-01 4.8000000e-01 4.4000000e-01 5.0000000e-01 4.8000000e-01 5.0000000e-01 4.7000000e-01 6.4000000e-01 4.9000000e-01 5.2000000e-01 4.8000000e-01 5.6000000e-01 4.3000000e-01 4.8000000e-01 4.7000000e-01 6.0000000e-01 5.4000000e-01 5.5000000e-01 4.0000000e-01 5.5000000e-01 5.6000000e-01 4.9000000e-01 5.0000000e-01 4.3000000e-01 5.7000000e-01 5.0000000e-01 5.7000000e-01 4.9000000e-01 4.2000000e-01 3.9000000e-01
|
|
@ -0,0 +1 @@
|
|||
6.5714286e-01 6.0563380e-01 6.3235294e-01 7.3972603e-01 6.0294118e-01 7.3611111e-01 6.4179104e-01 7.7631579e-01 6.4000000e-01 6.6197183e-01 6.6666667e-01 7.0000000e-01 6.4285714e-01 7.7464789e-01 7.1621622e-01 6.4285714e-01 6.8571429e-01 6.4383562e-01 6.6666667e-01 6.5384615e-01 6.6216216e-01 6.1971831e-01 6.5333333e-01 6.5277778e-01 6.7123288e-01 6.4383562e-01 6.5000000e-01 6.3513514e-01 6.0000000e-01 6.7123288e-01 6.3513514e-01 7.4324324e-01 5.5714286e-01 7.0512821e-01 6.3888889e-01 6.0000000e-01 5.6338028e-01 6.3157895e-01 6.0810811e-01 6.2337662e-01 6.4000000e-01 6.5789474e-01 6.3157895e-01 5.6962025e-01 7.5294118e-01 7.1250000e-01 6.2162162e-01 6.7500000e-01 7.2727273e-01 6.2337662e-01 6.2337662e-01 6.7948718e-01 6.5853659e-01 6.6250000e-01 6.3380282e-01 7.3417722e-01 6.0869565e-01 7.2000000e-01 7.5949367e-01 6.4556962e-01 6.3013699e-01 5.9420290e-01 6.2857143e-01 7.1794872e-01 7.3972603e-01 6.4864865e-01 6.4864865e-01 6.8918919e-01 6.6666667e-01 7.0512821e-01 6.2500000e-01 6.2318841e-01 6.6197183e-01 6.5277778e-01 6.9135802e-01 6.6216216e-01 6.6666667e-01 6.4285714e-01 6.6216216e-01 6.8115942e-01 6.2500000e-01 6.2500000e-01 7.3684211e-01 6.4473684e-01 7.3417722e-01 7.1052632e-01 6.3888889e-01 7.3417722e-01 6.5432099e-01 6.9230769e-01 7.1428571e-01 6.7567568e-01 6.7532468e-01 6.7605634e-01 6.5789474e-01 5.4285714e-01 6.9736842e-01 6.2337662e-01 6.6233766e-01 6.7605634e-01 7.0270270e-01 6.1842105e-01 6.7567568e-01 6.2318841e-01 6.7605634e-01 6.9333333e-01 7.1428571e-01 6.0000000e-01 6.0000000e-01 6.6197183e-01 6.9230769e-01 6.8000000e-01 7.2000000e-01 6.5384615e-01 6.5753425e-01 6.6197183e-01 7.1232877e-01 6.9333333e-01 7.5000000e-01 7.1052632e-01 6.7567568e-01 6.4285714e-01 6.0273973e-01 5.8571429e-01 6.9512195e-01 6.3013699e-01 6.8918919e-01 7.0270270e-01 6.6666667e-01 6.8571429e-01 6.6666667e-01 6.1111111e-01 7.0666667e-01 6.6666667e-01 6.5333333e-01 6.8674699e-01 7.0731707e-01 6.3636364e-01 6.3750000e-01 6.1643836e-01 6.5432099e-01 5.8441558e-01 5.8666667e-01 4.7297297e-01 5.5263158e-01 6.9736842e-01 6.9333333e-01 6.5789474e-01 5.7575758e-01 6.7532468e-01 7.0886076e-01 6.4383562e-01 5.8666667e-01 6.6233766e-01 7.5000000e-01 6.2500000e-01 7.7027027e-01 6.0563380e-01 6.8000000e-01 5.6716418e-01 6.7948718e-01 6.4864865e-01 6.1971831e-01 7.1428571e-01 6.5753425e-01 6.7567568e-01 6.6197183e-01 7.7108434e-01 6.6216216e-01 7.1232877e-01 6.4000000e-01 7.0886076e-01 6.0563380e-01 6.2337662e-01 6.2666667e-01 7.7922078e-01 7.2972973e-01 7.5342466e-01 5.7971014e-01 7.3333333e-01 7.0886076e-01 6.6216216e-01 6.4102564e-01 5.8904110e-01 7.3076923e-01 6.4102564e-01 7.1250000e-01 6.4473684e-01 5.9154930e-01 5.3424658e-01
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
0.320369972991 0.338972466 0.308199372323 0.3452431902 0.310024768313 0.357115225615 0.311131096357 0.357391534414 0.329718053755 0.347365921475 0.335272625287 0.336451560653 0.33015370606 0.369628769749 0.344499490029 0.321622508707 0.345377707016 0.321007207534 0.350728979121 0.32809430086 0.30207071308 0.291663252492 0.30760470102 0.315976639534 0.308132467187 0.313014586878 0.310463895925 0.321091616502 0.290044394125 0.322213459935 0.315509196522 0.3331114403 0.281071919202 0.320854431887 0.332190658438 0.299342730178 0.313528775154 0.310049073937 0.288821516545 0.307662081954 0.328387688508 0.317185603454 0.332046170365 0.291912213887 0.37870970117 0.336080073379 0.304593343921 0.330138983604 0.355071759299 0.311946140607 0.302025400768 0.330940761586 0.351140062502 0.354772884287 0.272605322053 0.327957349848 0.28871110366 0.320821172951 0.340976919806 0.30757488831 0.320975346884 0.252776262329 0.314549731907 0.326876483 0.337684418756 0.296520013735 0.31493077245 0.327721982167 0.325802862624 0.341908184107 0.300481749419 0.312499767894 0.301061762121 0.27665157989 0.3082566692 0.287466396145 0.288313694552 0.296629698731 0.283556095025 0.322489360684 0.280765581604 0.297958166613 0.313189657041 0.303470399659 0.348652898212 0.331594734387 0.299446687464 0.339047458559 0.286979246044 0.316326095312 0.321618884109 0.330065896317 0.324500638067 0.328300795872 0.309002568222 0.262587468469 0.31974123777 0.286316182293 0.321162329165 0.328160620315 0.356618051635 0.289733970648 0.344507756538 0.301485561986 0.335785898715 0.322635066518 0.331480718646 0.297897604494 0.306942928189 0.350843442517 0.342585296966 0.341311053315 0.306780105123 0.313401804298 0.319978145568 0.302460397612 0.346105758567 0.312802351189 0.331552275517 0.321624157344 0.318798118247 0.301906095501 0.301585920138 0.314556178985 0.333215221158 0.306929663844 0.317083256901 0.309667679181 0.306529028004 0.30865993751 0.296031907986 0.28742420979 0.311584483038 0.319043629504 0.330278008622 0.314466433681 0.327937382021 0.296448162218 0.307033121385 0.296391953011 0.292691206116 0.297146209653 0.307929858983 0.291863681454 0.307300188104 0.306597817799 0.34718100163 0.317436210259 0.29952626739 0.330762834707 0.334951064852 0.323806678898 0.296203706701 0.33398466797 0.344931265559 0.293948734727 0.332764639313 0.272651853935 0.317324315923 0.300493570867 0.307008231016 0.333263322802 0.31390648462 0.332416491248 0.314766869708 0.321015549211 0.322909289307 0.356882966656 0.310596945263 0.343939748528 0.286269629586 0.33173459898 0.323848483719 0.305841388975 0.319266258167 0.34012363898 0.3443280395 0.353885654057 0.320544729867 0.353280499623 0.315621795536 0.312176062734 0.301562130879 0.312061680573 0.312642847966 0.326222109701 0.357417912858 0.313083593142 0.334033412713 0.295630506074
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
2.0215050e+00 2.0988154e+00 1.8614681e+00 2.0510161e+00 1.9210911e+00 2.1323516e+00 1.9565454e+00 2.1029889e+00 1.9617871e+00 2.0544792e+00 2.0357408e+00 1.8811414e+00 2.0694693e+00 2.1245977e+00 2.0632165e+00 2.0452823e+00 2.0249330e+00 1.9635489e+00 2.0508580e+00 2.0838578e+00 1.9324052e+00 1.8224609e+00 1.9795343e+00 1.9536534e+00 1.9694910e+00 1.9075569e+00 1.9590397e+00 2.0022087e+00 1.8814000e+00 1.8884208e+00 1.9961121e+00 2.0215351e+00 1.7515769e+00 2.0756437e+00 2.0109476e+00 1.9234849e+00 1.9160076e+00 1.8550862e+00 1.7733640e+00 2.0071906e+00 2.0209542e+00 2.0616569e+00 2.0565503e+00 1.9083573e+00 2.2732431e+00 1.9975503e+00 1.9080072e+00 2.1437809e+00 2.1296295e+00 1.9739085e+00 1.9834166e+00 2.1078664e+00 2.2016840e+00 2.2080962e+00 1.7340579e+00 2.0549287e+00 1.7331748e+00 1.9559688e+00 2.0343364e+00 1.8736929e+00 1.9730416e+00 1.5308944e+00 1.8421831e+00 2.0174240e+00 2.0137378e+00 1.7956151e+00 1.9606596e+00 1.9074857e+00 2.0413879e+00 2.0070305e+00 1.9584677e+00 1.8977851e+00 1.9176239e+00 1.7067419e+00 1.9461927e+00 1.8431700e+00 1.8284576e+00 1.7778704e+00 1.8350329e+00 2.0175415e+00 1.7459063e+00 1.9242505e+00 1.8757370e+00 1.9312506e+00 2.0574808e+00 2.0894636e+00 1.9780203e+00 2.1374036e+00 1.8900436e+00 2.0273032e+00 2.0681953e+00 2.0234699e+00 2.0666449e+00 2.0663485e+00 1.9281402e+00 1.7846314e+00 2.0372479e+00 1.8831230e+00 2.0186015e+00 2.0193231e+00 2.2022665e+00 1.8145737e+00 2.0466545e+00 1.8092421e+00 1.9600687e+00 2.0322961e+00 1.9556364e+00 1.8266422e+00 1.9950345e+00 2.1038429e+00 2.1164145e+00 2.0188062e+00 1.8863331e+00 2.0006971e+00 1.9971068e+00 1.8771862e+00 2.1148855e+00 1.9570638e+00 1.9859615e+00 2.0030854e+00 2.0737344e+00 1.9739259e+00 1.9266524e+00 1.9200535e+00 2.1376689e+00 1.8944425e+00 1.9330553e+00 1.8561590e+00 1.9422954e+00 1.8874178e+00 1.8624808e+00 1.8265563e+00 1.8840519e+00 2.0515092e+00 2.0174226e+00 1.9771196e+00 2.0635988e+00 1.7334466e+00 1.9912604e+00 1.8915711e+00 1.8262636e+00 1.9369173e+00 1.9560446e+00 1.9549934e+00 1.9279230e+00 1.9021073e+00 2.0113391e+00 2.0305786e+00 1.8066806e+00 1.9656739e+00 2.1219217e+00 1.8820250e+00 1.8936826e+00 2.0565131e+00 1.9839441e+00 1.8553479e+00 1.9923760e+00 1.6393276e+00 1.9786440e+00 1.8274394e+00 1.9322611e+00 2.0404318e+00 1.9216532e+00 1.9361171e+00 1.8401373e+00 1.9908059e+00 1.9495117e+00 2.1975655e+00 1.8413913e+00 2.1528773e+00 1.8434374e+00 2.1668863e+00 2.0429273e+00 1.9980016e+00 1.9790129e+00 2.0264829e+00 2.1478843e+00 2.0899600e+00 2.0280670e+00 2.1210881e+00 1.9993891e+00 1.8646871e+00 1.9099983e+00 1.9263353e+00 2.0042495e+00 2.1365919e+00 2.1830279e+00 1.9631961e+00 2.0880004e+00 1.8348369e+00
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -0,0 +1 @@
|
|||
1.4330520e+01 1.4635426e+01 1.3450855e+01 1.4761140e+01 1.3508642e+01 1.5434417e+01 1.3887693e+01 1.5166776e+01 1.3966038e+01 1.4950451e+01 1.4564587e+01 1.3834201e+01 1.4347008e+01 1.5641962e+01 1.4689053e+01 1.4418720e+01 1.4545856e+01 1.4151822e+01 1.4669017e+01 1.5150750e+01 1.3770166e+01 1.3288969e+01 1.4048191e+01 1.4049959e+01 1.4164158e+01 1.3727834e+01 1.4074687e+01 1.4321303e+01 1.2497330e+01 1.3820273e+01 1.4441030e+01 1.4780222e+01 1.2504339e+01 1.5022245e+01 1.4263650e+01 1.3704507e+01 1.3694385e+01 1.3667517e+01 1.3177468e+01 1.4391931e+01 1.4893903e+01 1.4475753e+01 1.4440707e+01 1.3603096e+01 1.6889651e+01 1.4731174e+01 1.3337775e+01 1.5187532e+01 1.5667271e+01 1.4226037e+01 1.4203554e+01 1.5272898e+01 1.6031460e+01 1.5991549e+01 1.1855060e+01 1.4844776e+01 1.2475182e+01 1.4408126e+01 1.4836870e+01 1.3472986e+01 1.4089281e+01 1.1018298e+01 1.3183296e+01 1.4590802e+01 1.4404230e+01 1.2717623e+01 1.3983283e+01 1.4017133e+01 1.4608005e+01 1.4402553e+01 1.3977803e+01 1.4091040e+01 1.3977459e+01 1.2630449e+01 1.4160109e+01 1.3029417e+01 1.2654432e+01 1.2794946e+01 1.3194978e+01 1.4378745e+01 1.2431908e+01 1.3852651e+01 1.3748358e+01 1.4003568e+01 1.5066681e+01 1.5192826e+01 1.4370013e+01 1.5792545e+01 1.3547546e+01 1.4411543e+01 1.4794215e+01 1.4924312e+01 1.4789153e+01 1.4875055e+01 1.4208537e+01 1.2786148e+01 1.4882476e+01 1.3302010e+01 1.4354774e+01 1.4542129e+01 1.5889633e+01 1.2928185e+01 1.4877868e+01 1.2890902e+01 1.4406165e+01 1.4498123e+01 1.4303273e+01 1.3207002e+01 1.3954732e+01 1.4841248e+01 1.5427799e+01 1.4363463e+01 1.3976277e+01 1.4284878e+01 1.4457991e+01 1.3369469e+01 1.5246610e+01 1.4487573e+01 1.4525176e+01 1.4505865e+01 1.5037347e+01 1.3834927e+01 1.3758988e+01 1.3424987e+01 1.4914766e+01 1.3783923e+01 1.3434291e+01 1.2895927e+01 1.3870360e+01 1.3342977e+01 1.3094322e+01 1.3057847e+01 1.3322375e+01 1.4940650e+01 1.4476829e+01 1.4197503e+01 1.4597035e+01 1.2963234e+01 1.4011414e+01 1.3181409e+01 1.3339615e+01 1.3928735e+01 1.3508015e+01 1.3170749e+01 1.3529133e+01 1.3454724e+01 1.4883437e+01 1.4564565e+01 1.2474313e+01 1.4435790e+01 1.5285703e+01 1.3701736e+01 1.3578312e+01 1.4807311e+01 1.4281072e+01 1.2920213e+01 1.4427803e+01 1.1408611e+01 1.4097334e+01 1.2868115e+01 1.3903683e+01 1.3800332e+01 1.3439339e+01 1.4062651e+01 1.3242107e+01 1.4400424e+01 1.3826132e+01 1.5991146e+01 1.3118258e+01 1.5377390e+01 1.2858378e+01 1.5249567e+01 1.4081585e+01 1.4458052e+01 1.4175623e+01 1.4850069e+01 1.5506668e+01 1.5014770e+01 1.4337030e+01 1.5214705e+01 1.4803729e+01 1.3188675e+01 1.3437739e+01 1.3409394e+01 1.4607386e+01 1.5394271e+01 1.5946451e+01 1.3769364e+01 1.4181208e+01 1.2551765e+01
|
|
@ -0,0 +1 @@
|
|||
9.3540954e-01 9.7904590e-01 8.6703870e-01 1.1569997e+00 8.7174317e-01 1.0627183e+00 9.1272727e-01 1.1593999e+00 9.7573357e-01 1.0072127e+00 1.0536814e+00 9.6276028e-01 9.7700570e-01 1.1513951e+00 1.0719592e+00 9.2178818e-01 1.0004680e+00 9.3689769e-01 9.8205821e-01 1.0332673e+00 9.4517852e-01 8.9437744e-01 9.7556556e-01 9.0460246e-01 9.7210921e-01 9.2230423e-01 9.9605161e-01 9.6852085e-01 8.4162016e-01 9.6667267e-01 9.7759376e-01 9.9757576e-01 7.6992499e-01 1.0151695e+00 9.8691869e-01 9.0325833e-01 8.6665467e-01 8.8844884e-01 8.4553255e-01 9.7700570e-01 9.5159916e-01 9.8906691e-01 1.0551935e+00 9.1973597e-01 1.3266247e+00 1.0982778e+00 8.4531653e-01 1.0887369e+00 1.0984938e+00 9.9851185e-01 9.0701470e-01 1.0639304e+00 1.2392919e+00 1.1422502e+00 8.1725773e-01 1.1844944e+00 7.8219022e-01 1.0817162e+00 1.2196100e+00 1.0003120e+00 1.0164536e+00 7.0724272e-01 9.7981398e-01 1.1134953e+00 1.0671107e+00 9.3600960e-01 9.9984398e-01 1.0356916e+00 1.1248005e+00 1.0696310e+00 1.0634263e+00 9.6472847e-01 9.9365137e-01 8.5724572e-01 1.1257846e+00 8.9930993e-01 9.4903090e-01 9.0667867e-01 9.1231923e-01 1.0573777e+00 9.0105011e-01 9.5255926e-01 1.0177978e+00 1.0606901e+00 1.1966997e+00 1.0891929e+00 1.0085089e+00 1.2640264e+00 9.3246925e-01 1.0198020e+00 1.2055806e+00 1.1237924e+00 1.1060666e+00 1.0517252e+00 1.0684668e+00 7.6844884e-01 1.0572697e+00 8.7373537e-01 9.6283228e-01 9.9350735e-01 1.2412601e+00 7.6322832e-01 1.0298950e+00 8.6148215e-01 1.0042724e+00 9.7012901e-01 9.3712571e-01 8.5845785e-01 8.5862586e-01 1.0336634e+00 1.0955536e+00 9.5302730e-01 9.8696670e-01 1.0633063e+00 1.0026643e+00 9.6380438e-01 1.1711251e+00 9.9273927e-01 1.0260906e+00 1.0863966e+00 1.0482808e+00 9.0361836e-01 9.2358836e-01 8.7794779e-01 1.2461206e+00 9.2985299e-01 1.0418962e+00 9.4660666e-01 9.5636364e-01 9.0646265e-01 9.9113111e-01 8.3027903e-01 9.3341734e-01 1.1378938e+00 1.0548215e+00 1.0086889e+00 1.1998920e+00 8.6063006e-01 1.0255506e+00 8.4786079e-01 1.0090729e+00 9.2542454e-01 9.5176718e-01 9.3477348e-01 9.0091809e-01 9.6404440e-01 1.1158716e+00 9.9614761e-01 7.7682568e-01 1.0605461e+00 1.0895650e+00 9.0065407e-01 8.7173117e-01 9.9821182e-01 1.2165617e+00 8.6127813e-01 1.1111071e+00 7.9015902e-01 1.0433843e+00 8.6510651e-01 1.0019202e+00 1.0154815e+00 9.4381038e-01 9.8646265e-01 1.0062526e+00 9.7426943e-01 9.8191419e-01 1.3038944e+00 8.6277828e-01 1.0830243e+00 8.6851485e-01 1.1192559e+00 9.9120312e-01 9.6540054e-01 9.1072307e-01 1.1775698e+00 1.1139154e+00 1.1083468e+00 9.9593159e-01 1.0825923e+00 1.1115032e+00 9.7430543e-01 9.5605161e-01 9.2800480e-01 9.4369037e-01 1.1136034e+00 1.1382898e+00 9.5937594e-01 9.8843084e-01 7.4563456e-01
|
|
@ -0,0 +1,100 @@
|
|||
0 1 1 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1
|
||||
1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1
|
||||
0 1 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 1 0 1 1 1 0 1
|
||||
1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 1 1 1 0 1 1 0 0 0 0 1 0 0
|
||||
1 0 0 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 1 1 0 0
|
||||
1 0 1 1 0 0 0 1 1 1 1 1 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 1
|
||||
0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 1 1 0 1 0
|
||||
1 0 1 1 1 0 0 0 0 1 1 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0
|
||||
1 1 1 0 0 1 1 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 1 0 0 1 1
|
||||
1 1 0 1 0 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 0 0 0 0 1 1 0 0
|
||||
1 0 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 0 0 1 0 0 0 0
|
||||
1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 1 0 1 0 1 1 1
|
||||
1 1 1 1 1 1 1 1 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 0 1 0 0 1 0 1
|
||||
0 1 1 0 0 1 1 0 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 1
|
||||
1 0 0 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 1 1 0 1 1
|
||||
1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 0 0
|
||||
1 1 0 0 1 0 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 0 1 1 1 1 1
|
||||
0 0 0 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0
|
||||
1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1
|
||||
0 0 0 0 1 0 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1
|
||||
0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0
|
||||
1 0 1 0 1 1 1 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 0 0 1 1 1 0 1 1
|
||||
0 0 1 0 0 0 0 0 1 1 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0
|
||||
0 1 0 1 1 1 0 1 1 1 0 1 0 1 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 1
|
||||
0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0
|
||||
1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 0 0 0 1 1 1 0
|
||||
1 0 0 0 1 1 1 0 0 1 0 1 1 1 0 0 0 1 1 1 0 0 0 0 1 0 0 0 1 1
|
||||
0 1 0 0 0 1 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 0 1 1 0 1 1
|
||||
0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 0 1 0 1
|
||||
0 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1 0 1 0 1 0
|
||||
1 1 0 1 1 1 1 1 0 1 0 0 0 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 0 1
|
||||
0 1 0 0 0 1 0 1 1 0 0 1 0 0 0 1 1 1 0 0 1 1 0 1 1 0 0 1 0 1
|
||||
1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 0 1 1 0 0 0 1 0 1 0 1 0 1 0 1
|
||||
1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1
|
||||
0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0
|
||||
1 1 1 1 0 1 0 1 0 1 1 1 1 0 1 0 1 0 1 0 1 1 0 0 1 0 1 0 0 0
|
||||
0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 1 0 0 0 0 0
|
||||
0 1 1 1 0 0 0 1 1 1 0 1 0 0 1 1 1 1 1 0 1 0 0 1 0 0 0 0 1 1
|
||||
0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 0 0 0 1 0 0
|
||||
1 1 0 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1
|
||||
0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1
|
||||
0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0
|
||||
1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 0 0 0
|
||||
1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0
|
||||
1 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 0 0 0 1
|
||||
1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0 1 0 0 1 0 0
|
||||
0 1 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1
|
||||
0 1 0 1 1 0 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 0 1
|
||||
1 0 1 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1
|
||||
1 1 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 0 1
|
||||
1 1 1 1 0 0 0 1 0 1 1 0 0 0 1 1 0 0 1 1 1 1 0 0 0 1 0 1 0 0
|
||||
1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 1 1 1 1 0 0 0 0
|
||||
0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0
|
||||
0 0 0 1 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0
|
||||
1 1 0 0 0 0 1 1 1 0 1 0 1 1 1 0 0 1 0 0 0 0 0 0 1 1 1 0 0 0
|
||||
1 0 1 1 1 0 1 0 1 0 0 1 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1
|
||||
0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 0 0
|
||||
0 0 1 1 1 1 1 0 1 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0
|
||||
0 0 0 0 0 1 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 1 0
|
||||
1 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 0 1 1 1 1
|
||||
0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0
|
||||
1 0 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 0
|
||||
0 1 0 1 1 1 1 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 0 0 0 1
|
||||
1 0 1 1 1 0 0 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 1 1 1 1 0 0 0 1
|
||||
0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1
|
||||
0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1
|
||||
0 1 1 1 1 1 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 0 1 0 0 1 1 1
|
||||
1 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 0
|
||||
1 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 1 1 0
|
||||
0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0
|
||||
1 1 1 1 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0
|
||||
1 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 0 1
|
||||
1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 1
|
||||
0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1
|
||||
1 1 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 1 1 0 0 1 0 0 1 1
|
||||
1 1 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 1 1 0 1 0 0 1 0 0 1 0
|
||||
1 0 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0
|
||||
1 1 1 1 1 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1 1
|
||||
1 0 1 1 0 0 1 1 0 1 1 1 0 0 0 1 0 1 0 0 0 1 1 1 1 1 0 0 1 0
|
||||
0 0 0 0 0 1 1 1 0 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 1 0 0 1 0 0
|
||||
1 1 1 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 1 1 1 0 1 0
|
||||
1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 1
|
||||
1 0 0 0 1 0 1 1 0 1 0 0 0 1 0 1 0 0 0 0 1 1 1 0 1 0 1 1 0 1
|
||||
0 1 0 0 0 0 1 0 1 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 1
|
||||
0 1 0 0 1 0 1 1 0 0 0 0 1 1 0 1 1 1 0 0 1 1 0 0 1 0 1 0 0 0
|
||||
0 1 0 1 1 1 1 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 0
|
||||
0 0 0 1 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0
|
||||
1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 0 0 1 0 1 0 1 0 1 0 0
|
||||
1 0 0 0 1 0 1 0 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 1 0 1 1 1 0
|
||||
0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 1 1 0
|
||||
1 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 1 1 0 1 0
|
||||
0 1 0 0 1 1 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 0 1
|
||||
0 0 0 1 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 1
|
||||
1 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 0
|
||||
0 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 0 0
|
||||
1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 1 1 0 1 1 0 0 1
|
||||
0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 1 1 1 1 0 1 0 0 0 1 1 0
|
||||
1 1 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 1 1
|
||||
0 0 1 1 1 0 0 0 0 1 1 0 0 1 1 0 1 0 1 0 0 1 0 0 0 1 1 0 0 1
|
||||
0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 0
|
|
@ -0,0 +1,100 @@
|
|||
1.172993630434470589e+02 1.905532343119886605e+02 2.613653823499444115e+02 1.570270816248337269e+02 2.373767637129340642e+02 2.175366144750510671e+02 2.609909144757107242e+02 2.086671686166440622e+02 2.674986450118991002e+02 1.395992762090408235e+02 1.115453060949917159e+02 1.531034842395609701e+02 2.621042034264289668e+02 2.958729454449504033e+02 2.137960368830719062e+02 2.606436280968571282e+02 2.492136530687155869e+02 2.770806237064748530e+02 2.667325121892417883e+02 2.909243437665674037e+02 1.570328417294508085e+02 1.738762543815240917e+02 1.514157955792608163e+02 2.264748814818163396e+02 1.911869834397498380e+02 2.083706054660671043e+02 2.778115921852293013e+02 1.330374814391803397e+02 2.988697222234711717e+02 2.534167825404447001e+02
|
||||
2.090964891529778242e+02 1.322006104643973003e+02 1.443415945355371832e+02 2.991388772264980389e+02 1.649302344777914868e+02 2.839528641910463875e+02 1.677159709681393736e+02 2.597553832458208944e+02 2.861055547321268477e+02 1.866431671806918189e+02 2.131812134614140177e+02 1.881465139477683124e+02 1.271865139985419262e+02 1.821608865941132649e+02 2.793653846657656459e+02 1.745982981552271838e+02 2.440893905635109888e+02 1.926469151980868446e+02 2.752453852984189098e+02 1.333479229516146347e+02 1.756311805755703404e+02 2.039367615619088383e+02 2.441861159155101575e+02 2.136111324500645594e+02 2.893808960992043922e+02 2.723220466017930335e+02 2.367879096909125565e+02 2.831541206793258425e+02 2.017643187924728068e+02 1.293072046241175030e+02
|
||||
2.311242818257193221e+02 2.180694109009666306e+02 2.728791416531455525e+02 1.239345918565636993e+02 2.885729762050686418e+02 2.082619393005260804e+02 2.331416004257805525e+02 1.003112528445347778e+02 2.796331120515330895e+02 2.804679740148056339e+02 2.466936828597247597e+02 1.422398585800914361e+02 1.312115029632765015e+02 1.324417143647877708e+02 2.161716508991076466e+02 1.791489656100356171e+02 2.239038785146145472e+02 2.456511993086799919e+02 2.885023077068626662e+02 2.127338775308419940e+02 2.468090724782538246e+02 2.704135008577740109e+02 1.144148504575758665e+02 1.641571759150080538e+02 2.473349551308716343e+02 2.366620528761779667e+02 1.208143167141831498e+02 1.403705034199327599e+02 2.061073908129479548e+02 1.482034962693051057e+02
|
||||
1.938319500339997035e+02 2.000523826243218650e+02 1.356134735235139317e+02 1.224357428573656250e+02 1.262840705282213918e+02 1.112797762573139977e+02 1.727826315738305993e+02 2.199559683100150664e+02 1.817290208723558180e+02 2.185579898773881951e+02 1.772844462934412491e+02 1.589145011846130728e+02 1.017520743541414703e+02 2.836990856171782980e+02 1.265544072638776640e+02 2.503473341476423855e+02 2.178539278172635534e+02 2.063574432066289432e+02 1.473169457524925861e+02 1.112719632489760784e+02 1.195996070145015722e+02 1.345099678548529312e+02 2.992645259487585463e+02 2.692242364540683752e+02 2.139649193607747861e+02 2.313659165106297451e+02 2.524185025119667785e+02 2.678714004815313388e+02 1.111457754393238702e+02 1.296443575800298902e+02
|
||||
1.183944097426736306e+02 2.750477277868330930e+02 1.688558971333346790e+02 1.432283295687057034e+02 2.226043174503911359e+02 1.825124733235978169e+02 1.806485153578007612e+02 2.270256019866706936e+02 2.852913053786990076e+02 2.867562520175486043e+02 2.795056496733417362e+02 1.142488895870292822e+02 1.502985045661773427e+02 2.246907359526948937e+02 2.051158858061974115e+02 2.663351441156772808e+02 2.864853431806749882e+02 2.276548949573071070e+02 2.678087640355958001e+02 2.266463576941352187e+02 1.886763304826383774e+02 1.150603609957262563e+02 1.596187994714221929e+02 1.844565420383776484e+02 1.730173420200940768e+02 1.427940137102308995e+02 1.774757620992130001e+02 2.563086691508434001e+02 1.666317348809653822e+02 1.878143419608473437e+02
|
||||
1.642344698640436036e+02 1.591648429561690818e+02 1.561851029939521140e+02 1.854367091922420059e+02 1.494951311500319093e+02 2.443780767043579942e+02 2.741090240793212160e+02 1.519200656263381006e+02 1.391711947382712538e+02 1.482414334940778815e+02 2.574425018646875287e+02 1.455120022089010945e+02 1.620904376421240727e+02 2.098493186451893848e+02 2.377904829227144887e+02 2.881187570801528750e+02 1.785609418793050054e+02 1.500483139796714340e+02 1.697371065898091729e+02 1.824143324642365087e+02 2.329862749140337712e+02 1.372006180078979298e+02 2.250666134242961789e+02 1.760894707637434067e+02 1.874161150869196035e+02 2.860410495381969440e+02 1.539271628213176086e+02 1.051658254213322152e+02 1.501619097950496666e+02 1.205717364486104515e+02
|
||||
1.275638286377957371e+02 2.620802183565458563e+02 2.290828196339760723e+02 2.591630015014513333e+02 2.102568650793322149e+02 2.385080320420775593e+02 2.683788150825365619e+02 1.808700201925492763e+02 1.972184450648797451e+02 2.382313686117472287e+02 1.733526990293641177e+02 2.369802981553972074e+02 1.835652530901061823e+02 1.274084560526275141e+02 2.403488205519001326e+02 2.713515297463850402e+02 1.455311801633137065e+02 1.889430214806582171e+02 1.676324321357484735e+02 2.327799977696781184e+02 2.846419393176552148e+02 1.510702433968490936e+02 1.361559014852734606e+02 1.732199851325496525e+02 2.451323003571785364e+02 1.833444866660036894e+02 2.451280287301300405e+02 1.669088211440060832e+02 2.768492228383354359e+02 2.445882168033535038e+02
|
||||
2.905092787520428601e+02 2.948076984760371033e+02 1.731080208454208673e+02 2.825532355845657548e+02 1.108820315678514845e+02 2.862013985457700755e+02 2.111453776876104769e+02 2.614428154999528147e+02 1.461523265575596042e+02 2.304914832379158156e+02 2.502987607420118934e+02 2.474276046141548875e+02 1.739607960146905725e+02 2.098700376203710789e+02 2.373226438948917121e+02 1.258493219462072119e+02 2.692932028872633055e+02 2.819145908444669999e+02 1.941653933285864468e+02 1.666395497972145847e+02 2.371919109091950588e+02 1.978302896313488191e+02 1.951483674191611613e+02 2.694357972099330141e+02 2.387068160427941450e+02 2.826084316255729618e+02 1.350954172043159929e+02 1.414479610501084039e+02 1.407657276334374501e+02 2.725513503737778365e+02
|
||||
2.055761393809777360e+02 1.070553196069381556e+02 1.045726024365074096e+02 1.611577217417760153e+02 1.258091705742062629e+02 1.038769334534844120e+02 2.956016304760584035e+02 1.586570076132481972e+02 1.636816353299032585e+02 2.375674325770941095e+02 2.085436646116971531e+02 2.088922128397473443e+02 2.316234644183506930e+02 2.623581653234684268e+02 1.714245300492981698e+02 2.844387943099641234e+02 1.469270259610659650e+02 1.157700922187784727e+02 2.367694595159086361e+02 1.548671738744121740e+02 2.013687686570863207e+02 1.860374943080277887e+02 1.733446602950305930e+02 2.488507085609763010e+02 2.929099979257852056e+02 1.825615338506695480e+02 1.338575452835397925e+02 1.491478381149757979e+02 1.116052925520655066e+02 2.341983606431906537e+02
|
||||
1.014445800974648222e+02 2.539987638010908597e+02 1.871788778457793399e+02 1.454231386314719998e+02 2.284640297096368045e+02 1.174773591296971915e+02 1.395683165851895637e+02 1.137193571402578414e+02 2.370662356797280950e+02 1.767292649815032064e+02 2.688513591587910696e+02 2.913902923086397436e+02 1.122392290694582897e+02 1.366157623619356229e+02 2.667409125457835444e+02 1.834435599491967537e+02 1.437174343391732236e+02 1.130622879516462120e+02 2.898543289046954214e+02 1.559795378531963479e+02 1.765577834073310157e+02 2.422955620302867885e+02 2.384835032255701321e+02 1.708163174135501094e+02 2.012159081107001839e+02 2.825663186839160517e+02 2.627299211659199045e+02 2.173916205317264883e+02 1.878835852278120910e+02 2.578733373077019451e+02
|
||||
2.843897417914848802e+02 2.685865547709703378e+02 2.810255710736182664e+02 2.572690897085278152e+02 2.416998564827035523e+02 1.770932574976374099e+02 2.021652319180342943e+02 1.414744641219446351e+02 1.464677002516696405e+02 1.831165552459343644e+02 1.157177632931430651e+02 2.625289386264841482e+02 2.972225480003540952e+02 1.024156386789293265e+02 2.305099741095138768e+02 2.241903749843916671e+02 1.157222019118702292e+02 1.533205318359311775e+02 1.179505454242311799e+02 2.666741766563739020e+02 2.792728900733587238e+02 1.222170248460037811e+02 2.573772727215269924e+02 1.535874607134987286e+02 1.231830862844115728e+02 2.584552954023608891e+02 2.541883057030129862e+02 1.001259630352790566e+02 2.332879439260797767e+02 2.240027888381033563e+02
|
||||
1.537092645679641123e+02 1.737278083620151392e+02 1.736358049797527201e+02 2.251608985235982630e+02 1.812387130195175473e+02 1.605621432944637377e+02 1.880655312831545700e+02 2.234500385148787700e+02 1.156918728696038272e+02 2.243685096423413654e+02 1.934342626327970720e+02 1.850952349553267027e+02 2.629944548485545965e+02 1.410418270562070973e+02 1.442479234012843960e+02 2.244518961458842909e+02 1.350755563946989923e+02 1.207094763037939913e+02 1.849900977633715797e+02 1.712315707730903398e+02 1.136025349108833495e+02 2.266901327137990734e+02 2.049289406654929735e+02 2.168279721613268407e+02 2.802488024880154285e+02 2.288593244920211873e+02 2.512942787545493957e+02 1.605416563468323261e+02 1.449848598254574483e+02 1.444073785399158396e+02
|
||||
1.576600406756634243e+02 1.316580100950168912e+02 2.530050469343043460e+02 1.319013133578224028e+02 2.708693079386434306e+02 1.256852413190491689e+02 1.471714019119002046e+02 1.119112141125198576e+02 1.482405279774543772e+02 2.151504825709631064e+02 1.449998801809978488e+02 2.163638771503673581e+02 1.272949254250747657e+02 2.476027791419436141e+02 2.891208457332292028e+02 2.642744540427622724e+02 1.972643066216432999e+02 2.480891057982425423e+02 1.265454595896786003e+02 2.957735252703171227e+02 1.831389323451852533e+02 2.674516147697771657e+02 1.404389674972707667e+02 1.350952754772052913e+02 2.169062951790871807e+02 2.445227715623778408e+02 1.771545655819627427e+02 2.729961759152714649e+02 2.655105689521545855e+02 1.887977700062222084e+02
|
||||
1.336462666694000632e+02 1.333709897858500995e+02 2.263366393511863350e+02 1.847175439991091821e+02 1.121699721143812383e+02 1.985314153845103533e+02 2.097626398761568396e+02 1.994292542548276970e+02 2.119822099620050722e+02 1.121578896112172430e+02 2.285640262135607372e+02 1.530452060058861719e+02 2.280757825791220625e+02 1.002584314437652893e+02 1.549763597162410349e+02 1.962603185897801836e+02 1.520023734031539107e+02 2.188357004065238129e+02 2.078620274892635678e+02 2.253215106546470281e+02 1.707542413836397373e+02 2.818584030117174279e+02 2.256862624833151472e+02 1.123882683852972377e+02 2.188298604829752776e+02 1.623779544769217296e+02 2.272253780943444212e+02 1.236449568833132560e+02 1.456708971140968174e+02 2.173334506159979753e+02
|
||||
1.355111076933105210e+02 2.882277378633141325e+02 1.458332953325788139e+02 2.038461345794760007e+02 2.077052275373579278e+02 2.430957456359013804e+02 2.398926697516154150e+02 1.861334604823129553e+02 1.056851094080089695e+02 1.250491536199931772e+02 1.475324860190441427e+02 2.446126161547439324e+02 2.283994822545897705e+02 1.411463500178549850e+02 1.017206978570942510e+02 2.805514386584911790e+02 1.128847993259780083e+02 2.326583828053989862e+02 1.968387029218569069e+02 2.013375618903088480e+02 2.981010702857409456e+02 1.018614681114941902e+02 1.799507821883679526e+02 1.133741465580100396e+02 1.235533581072856038e+02 1.980629645203880500e+02 2.289642287691829097e+02 1.596082722591768288e+02 1.905110471998515322e+02 1.789448781159623820e+02
|
||||
2.588286452268601465e+02 1.978130463173739599e+02 1.052689337312009599e+02 1.316763830509305251e+02 2.659236586726388509e+02 1.637014132384438767e+02 1.416031833329826668e+02 2.638665530652568236e+02 1.007257384115875425e+02 1.143900271701907769e+02 2.977834670475828602e+02 1.589765734727692745e+02 1.903975572290986520e+02 2.371635535037608804e+02 1.840341975670916668e+02 2.047003785265828242e+02 2.798969769773281655e+02 2.731706896262927557e+02 1.266878907904394254e+02 1.882415083052244427e+02 2.273996647906652129e+02 1.051754139634791869e+02 1.949647447346334843e+02 2.153583447980240919e+02 2.763468452623635585e+02 1.126493843527773322e+02 1.566047572050934491e+02 1.655928523150526246e+02 1.733528322945315949e+02 1.292815908595541146e+02
|
||||
1.453195062153936874e+02 1.443849872704900008e+02 2.393030362110915519e+02 2.203850914291498668e+02 2.628192548589183275e+02 1.142161203389242132e+02 2.954875947743198594e+02 1.914138981839176950e+02 1.956478457154231023e+02 1.282875398486639824e+02 2.801001077571227142e+02 2.478095646281364566e+02 2.467477848581343949e+02 2.819656424464902784e+02 2.951823714077539194e+02 1.777239847229775478e+02 1.197979896746704185e+02 1.481181033052623661e+02 1.906710229153984528e+02 2.142395628283543658e+02 2.300980272040501973e+02 2.228884003748859186e+02 2.473330601440014220e+02 1.391193242835927322e+02 2.836257563055140736e+02 1.510096324299383923e+02 2.202302141125946946e+02 1.931468179284185851e+02 1.332427495686727639e+02 2.591048546650930575e+02
|
||||
1.878681542531208208e+02 1.576240359584147654e+02 2.653849736815447500e+02 2.963544993865212973e+02 2.044592436730770828e+02 2.022626486161902903e+02 2.692262675681025144e+02 2.660999355751699227e+02 2.275843495473382347e+02 1.090849337992742818e+02 2.095602584555617227e+02 1.896271059113536808e+02 1.103822849104477513e+02 2.916911739044173260e+02 1.131212278363718582e+02 2.998892666268029643e+02 2.476782245756396605e+02 2.259689579913920738e+02 1.853942231198421950e+02 1.358270117521841200e+02 1.538630682720535674e+02 1.002148317174243601e+02 2.538393939061405433e+02 1.631649956267838206e+02 2.086654853664906000e+02 2.065167771482954322e+02 2.184161808630845485e+02 2.204789814939956045e+02 2.876785893506615821e+02 2.415299687386639675e+02
|
||||
2.578989465605797591e+02 2.309888943086805853e+02 2.139372792253111584e+02 1.438019921733897775e+02 2.686852572045135616e+02 1.347038004304963579e+02 2.662658866335509060e+02 2.378358170108797367e+02 2.901455078003721155e+02 2.653867524737770509e+02 1.011162296015096302e+02 1.236447329941733528e+02 2.440241295351771669e+02 1.285889645706482725e+02 1.234088480316093808e+02 2.765916670935633874e+02 1.132915304101479421e+02 2.967043774237617413e+02 2.960414394814537786e+02 1.923965028192617410e+02 2.177448618307050765e+02 2.328047369831131732e+02 1.702256773965170282e+02 2.320080409490440729e+02 2.962065584958517093e+02 1.421971909775941185e+02 1.416181340866144183e+02 2.318260414882616374e+02 1.990521696869427046e+02 1.291045564046920333e+02
|
||||
1.562042774178686386e+02 1.004265446278790392e+02 2.987714610921041185e+02 1.843637355858842284e+02 1.975513718825063165e+02 2.869996482942455032e+02 1.598134132589713943e+02 1.814921031876193638e+02 2.433389905907341983e+02 2.220363745053336970e+02 1.548306942100590504e+02 2.274512269554506361e+02 2.173006200058655963e+02 2.139515436667214772e+02 1.820439741095771353e+02 2.954110718222074183e+02 2.706126458816278273e+02 2.546812106115172583e+02 1.499899738326257363e+02 1.498010641912065921e+02 1.897725780579399668e+02 2.531561160917130167e+02 2.568891780637028432e+02 2.223136077092870551e+02 1.518604819103856585e+02 1.610422120589223027e+02 1.090455809489133259e+02 1.950503873748027388e+02 1.235704160644129388e+02 2.711492093024702967e+02
|
||||
2.039597038432034424e+02 2.026680584622021684e+02 1.365818873512059213e+02 2.909476552420245525e+02 1.721994194158640425e+02 1.854386667051114443e+02 2.287109571295530372e+02 1.912591665763447963e+02 1.607322994166321450e+02 2.949516230628389053e+02 2.522065912002103403e+02 1.869433122585654701e+02 1.235797649248940644e+02 1.522422059501078024e+02 2.738245135411146975e+02 1.059681837441489307e+02 1.013027238331489173e+02 1.660100598156148237e+02 2.454471731623151243e+02 2.467503196183328100e+02 2.584564749953993896e+02 2.079587352810677316e+02 1.650926041957846451e+02 2.269719270682073784e+02 2.376254891983122093e+02 1.510146656008620596e+02 2.672848371954185041e+02 2.692845974117340688e+02 2.180714754246087921e+02 2.186797802447831884e+02
|
||||
1.704231257711912519e+02 1.993416036368699906e+02 2.293703655438095268e+02 1.494582642918422266e+02 1.988970317734676030e+02 2.329763291241497711e+02 2.594871448385057420e+02 2.168089936885102134e+02 1.825320854593447280e+02 1.816754553181755796e+02 2.164740515812325725e+02 2.676208645391697019e+02 1.298365075936954725e+02 1.802664596093496243e+02 1.015344620621038132e+02 1.955048336384612639e+02 1.938953913674110083e+02 2.716932071347151805e+02 2.391085978949223829e+02 1.852300387899809380e+02 2.933293185307651356e+02 2.502753353909542966e+02 1.326128348575908262e+02 1.132638325194699433e+02 1.382024010322260494e+02 1.899310337488860796e+02 2.577639546186944699e+02 2.130234590296898887e+02 2.056292296528304746e+02 2.070746044453983927e+02
|
||||
2.712524956603344890e+02 1.103212761114690750e+02 1.501201791543782917e+02 1.588084859702673555e+02 1.780379814134324192e+02 1.938691258391782810e+02 1.322057441019641146e+02 1.105823874551086590e+02 2.879365916037821194e+02 2.457617763012990224e+02 1.036189749330240488e+02 1.682919366264929124e+02 2.271749409116763161e+02 2.468308259697249127e+02 2.530034131464132088e+02 2.481420904342841709e+02 1.546080547019561209e+02 1.278414739842506265e+02 2.234886960240669111e+02 2.535365186455997843e+02 1.599130733896959669e+02 1.151371295028686035e+02 2.378656188176093451e+02 2.901072209563180877e+02 2.524076257924749882e+02 2.849501171254129304e+02 1.802791659856764568e+02 1.527418387706650833e+02 2.578820596338672431e+02 1.208856989199291263e+02
|
||||
1.884906470590645711e+02 2.304295185581007672e+02 1.035923344330140736e+02 1.647061655195892627e+02 1.910201770870304472e+02 1.752788518438422614e+02 2.763014227316762117e+02 2.545709641405486252e+02 1.642694881393259152e+02 1.850698110761380804e+02 2.423689469305483328e+02 2.821007056776016384e+02 1.440765548977453250e+02 1.082195827231368952e+02 1.292487205530619008e+02 2.136496853657876613e+02 2.268509220579896635e+02 2.999629735037570981e+02 2.135306905316524535e+02 2.807718279523737692e+02 1.079256111018183759e+02 2.233050677333321801e+02 1.960571416898615951e+02 2.930642308139058514e+02 1.350490077967585307e+02 2.626074042719769750e+02 2.812196827814445328e+02 2.812753678081913336e+02 1.893738913514469004e+02 1.237248675858835725e+02
|
||||
2.024005284879252144e+02 2.663611407988397559e+02 2.687079844301063076e+02 1.583164038086077312e+02 1.451019436850150441e+02 1.100558451420041450e+02 2.083655450975085159e+02 2.034012033819327598e+02 2.745375932717230398e+02 1.454718097055225599e+02 1.519068131933423729e+02 2.522666952972969625e+02 2.409340029943109300e+02 1.697386944425205115e+02 1.092659514648129289e+02 2.785598218078254149e+02 1.404092026094307357e+02 2.152301424167146990e+02 1.170396027347833723e+02 2.495323893679063474e+02 2.070836095469416591e+02 2.187978925167305135e+02 1.478606128149070855e+02 1.189323178954538207e+02 2.012925160284665651e+02 2.080878545398990127e+02 1.510128433840351647e+02 1.657302151838663065e+02 2.177026636795220043e+02 1.221198981216710422e+02
|
||||
1.411258561955272341e+02 1.419717097672817374e+02 2.247481951315160984e+02 2.805973971111802712e+02 2.755562061324142178e+02 2.039769327420251557e+02 2.994080883760036045e+02 2.417843309736466040e+02 1.023751441731232319e+02 1.491356884971497152e+02 2.542464200475323821e+02 1.496044144381669128e+02 2.829129207809560285e+02 2.479316882407134699e+02 2.441205876677642550e+02 2.045492313770996020e+02 2.855582203360229414e+02 2.884005586284110336e+02 2.039668453101600676e+02 1.690279206477617890e+02 2.136822090795746760e+02 1.254275901194574772e+02 1.084851042192170922e+02 1.656011685190305229e+02 1.415195951026897774e+02 1.578115814760412263e+02 2.619737257057257693e+02 1.492347147839753347e+02 1.627213988646173561e+02 1.343297485726322691e+02
|
||||
2.544675070683062756e+02 1.367461330002975899e+02 2.928364121110963652e+02 2.024865028281971036e+02 2.758937379397792142e+02 1.293527538914390220e+02 1.003170531204512059e+02 1.514803620238746760e+02 2.603616046431354789e+02 1.790387290949859960e+02 1.954717187769221027e+02 1.325226280128280223e+02 1.522166198122710625e+02 1.162911821325583048e+02 2.798489406348742250e+02 2.521718932296424498e+02 2.622327475379161115e+02 1.027798265388270949e+02 2.437256510683693023e+02 1.911771820917219884e+02 2.722604457055863350e+02 2.850557929858495640e+02 1.953760157441756746e+02 2.473572905253965644e+02 1.891404804097296051e+02 1.514672503279451803e+02 2.213565012031598940e+02 2.253356064978207769e+02 2.044629345029305227e+02 2.805872739342098612e+02
|
||||
2.859142434488251183e+02 1.016009480575973356e+02 1.779351649172412522e+02 2.205171340775500539e+02 2.104472905774927369e+02 1.755755724600441567e+02 2.751836189782782185e+02 2.820692049982218350e+02 1.337557428916256015e+02 1.569761138230965969e+02 1.991757527032745543e+02 2.615974376894962461e+02 1.944849272958306017e+02 1.868411694165790777e+02 2.994394032068257729e+02 2.802783326794233290e+02 2.693871918204162625e+02 1.750293298802730249e+02 1.468161278725061720e+02 1.272003326865558108e+02 2.233103517167062932e+02 2.103066399402185027e+02 2.720825853079193735e+02 2.728915492341989193e+02 2.160004538807991992e+02 1.325145501710478015e+02 2.549827549782140466e+02 2.921469675413995901e+02 1.846231529604695822e+02 1.391152989663993651e+02
|
||||
2.538717579982014456e+02 1.450483481068324352e+02 2.720200816305956550e+02 1.120834821105324011e+02 1.703801876168104741e+02 1.091293661435919233e+02 1.410263490040598526e+02 1.910022197757120352e+02 2.505223413771657022e+02 2.069613533172621374e+02 1.367200764291426935e+02 1.269156762039037574e+02 1.459486945063737267e+02 1.585863332989725905e+02 1.433846106215619329e+02 2.893202513225785424e+02 1.754070497414596730e+02 1.678900237854272746e+02 2.363821059303507752e+02 1.088858921730617908e+02 1.962435837543239927e+02 2.151311182954276831e+02 1.943029551670006754e+02 1.670799798236046172e+02 1.348235227224938910e+02 2.005836112104490212e+02 2.601588534628079969e+02 1.194827586439497935e+02 2.131891535893303740e+02 1.835674362703964277e+02
|
||||
2.872207377280434457e+02 1.680389491751975299e+02 2.268072198735419533e+02 1.324343035526375729e+02 2.746241572770433095e+02 2.142161570690199710e+02 1.852290440736100550e+02 1.772431485621305285e+02 1.144750125154023266e+02 2.162070901557998468e+02 1.490690769171257557e+02 2.904041493178549445e+02 2.673617561413327621e+02 2.904362235840736730e+02 1.438791831406123833e+02 2.596893065528289526e+02 2.617155941751458386e+02 2.388486986717779246e+02 2.718819501315180105e+02 1.265484539827731680e+02 2.508989305854047700e+02 1.677208481362706323e+02 1.527665277518251230e+02 2.069026506407369084e+02 2.223100964495413336e+02 2.859845330217733022e+02 1.430291068893224349e+02 1.186508486537613436e+02 2.043257492072551713e+02 2.909823892985461953e+02
|
||||
2.385945641230763670e+02 2.011887933217761031e+02 1.622448188725907983e+02 1.738874847453056987e+02 1.669498482708885376e+02 1.853462372214463016e+02 1.514500885098960907e+02 1.569159134451362547e+02 2.521399095730983504e+02 1.246878140446721659e+02 1.758330561641313352e+02 2.722601647479554003e+02 1.679012078705679869e+02 1.710944469563905272e+02 2.012619557548435978e+02 2.130692925302264200e+02 2.489118511754019778e+02 1.553758318484749452e+02 2.531318516516165857e+02 1.895498740333992487e+02 2.010265603399928409e+02 1.805605111948569856e+02 2.471772127430102159e+02 2.822665908577009759e+02 1.256656757093761314e+02 1.218957078832023626e+02 2.851942693987446660e+02 2.434079459678487751e+02 2.183256665756584312e+02 1.881473862468819220e+02
|
||||
2.878274557836845133e+02 1.654481949983921254e+02 1.215681808546938214e+02 2.567820905945674781e+02 2.104106688330284101e+02 2.960796083414018085e+02 2.020680111052573693e+02 2.328934707961639106e+02 1.081575190462602336e+02 1.003340046261853189e+02 2.009697278729638299e+02 2.231963192062537757e+02 1.203849639323555323e+02 1.187994179134823156e+02 2.211937485225296030e+02 1.667300587261732119e+02 1.727379541915926211e+02 2.085029285798690353e+02 2.440827389167183981e+02 2.864522928573259151e+02 2.974890568790378893e+02 2.102945085846974393e+02 1.972598274048171447e+02 1.762889209976547136e+02 1.346946323322499666e+02 1.554434255958064170e+02 2.915634104756007901e+02 1.434053307556222876e+02 1.055800565037633163e+02 2.043924431141962259e+02
|
||||
1.494596010135965116e+02 1.369114048625681335e+02 1.414146701131132886e+02 1.383970135097982848e+02 1.734304788623498155e+02 1.594301265610334610e+02 1.040146208229407137e+02 2.208381597698417806e+02 2.904998286250861383e+02 1.300157615397056929e+02 2.667076669416877621e+02 1.062418844419948556e+02 2.717657999079561364e+02 1.054097765488278640e+02 2.401074677516734823e+02 1.045408432466875297e+02 1.330046749931937882e+02 2.297648034226271534e+02 1.488059718063634307e+02 1.725671935994615183e+02 1.330818497812682608e+02 2.341687919103425770e+02 2.983144736799429211e+02 2.798846823197050071e+02 2.218705077010061473e+02 2.681931695329894865e+02 2.339384973461015420e+02 2.893058480095726281e+02 1.539801301873031321e+02 2.746688360458649640e+02
|
||||
1.330701439354522222e+02 1.727884450558678395e+02 2.309082669627648272e+02 2.027633892073664299e+02 2.725503026364725656e+02 1.999882667367585896e+02 1.904108867169430255e+02 2.952458047945178805e+02 2.903769421220866320e+02 1.593020200554085477e+02 1.236139458806368623e+02 2.670862420061573062e+02 2.910830183895285472e+02 1.860711175093342149e+02 2.161724988935532963e+02 2.564488756979296795e+02 1.231566645138573648e+02 1.554206254375235403e+02 1.148558104746345521e+02 1.512714227454516163e+02 1.953024826710307025e+02 1.296022137194406127e+02 1.500450396815122076e+02 2.611742573447975246e+02 1.601671705158374550e+02 2.391666762859087214e+02 2.566415095930981352e+02 1.923304801412870404e+02 1.194174883996373353e+02 1.970722090829630986e+02
|
||||
1.912113734453868688e+02 1.498407015577022605e+02 2.038188614169363007e+02 1.315017316695561647e+02 2.564290419741012101e+02 1.890015309531812022e+02 2.451565642315005960e+02 2.794356592632736920e+02 2.286941218755985972e+02 1.959549984609147941e+02 1.183834182035568716e+02 2.102820643179567242e+02 1.748108698585573393e+02 1.534379248653211221e+02 1.919662859034699522e+02 1.273611408042816464e+02 1.848163823983119585e+02 1.719445827292381637e+02 1.098466009889928898e+02 2.781108902268393877e+02 2.089286134506138524e+02 2.324518337977864348e+02 1.983840049195213169e+02 1.897881971862217370e+02 1.057077761008814605e+02 2.693629461665184408e+02 1.359710117509105487e+02 2.191184409971657487e+02 1.295811391257115304e+02 1.272165218667991553e+02
|
||||
1.987244486959793903e+02 1.516360617950651317e+02 2.198509518241761498e+02 2.494181713303175911e+02 2.903223989223247372e+02 2.847249789220907132e+02 1.747037051964282171e+02 1.610307305098726829e+02 1.866621867053561061e+02 1.016530888490581503e+02 2.606194448419089440e+02 1.820037020201941402e+02 2.650669443765450524e+02 1.137210849453726098e+02 1.329244106101075715e+02 1.741312140090854257e+02 2.301425980066611885e+02 1.051708772384664030e+02 1.994040172335078864e+02 1.874773290907829733e+02 2.745616984783777070e+02 2.354781865911449756e+02 1.598287033335407159e+02 2.650689470710170212e+02 1.643692352330562017e+02 2.991199217036622713e+02 2.713535332162406348e+02 2.516280148665988463e+02 1.124367393830256532e+02 1.725070309959049837e+02
|
||||
1.637875882282461077e+02 1.407642428016634426e+02 2.759741260511348173e+02 1.982469453863400304e+02 2.966736241669494802e+02 2.756530253528777052e+02 1.426661371226006167e+02 1.585144634205103102e+02 2.836415355000413001e+02 2.468213340046699784e+02 2.898204535963063790e+02 1.711408259966125343e+02 1.900542569026269177e+02 1.112151031999617032e+02 2.679918109779015936e+02 2.737346364036235400e+02 2.597479311885246602e+02 1.719445390286030886e+02 2.361360157374418236e+02 1.123330408578339785e+02 1.214203690485689719e+02 2.552722899309185891e+02 2.436705678248840456e+02 1.596697357728296254e+02 2.533254006866929444e+02 2.066863222258713790e+02 1.194370826184286329e+02 2.943584774485435673e+02 1.636272134478143130e+02 1.191267138602315185e+02
|
||||
2.350924626651462006e+02 2.263138093076711357e+02 2.206572605284771385e+02 1.704171521239532296e+02 2.000250897638135257e+02 2.966317084215347109e+02 1.350543763227695138e+02 1.248113195978286285e+02 1.480602782771696297e+02 2.391913401309390679e+02 1.908758915801345779e+02 2.476074601271855045e+02 2.408834383325319095e+02 1.009169451940341560e+02 2.567526834523320645e+02 1.791854948779896688e+02 1.412277552146151152e+02 2.660711025781407670e+02 2.073940326990519054e+02 2.509760072499196610e+02 1.358593750308925223e+02 2.127422683140523532e+02 1.874643773621423293e+02 2.844455725631112273e+02 2.197223292953194118e+02 2.049519862750077266e+02 1.674367936692717365e+02 2.806316262053937294e+02 2.040091003350897836e+02 2.675290975004411962e+02
|
||||
1.483513543637005796e+02 2.384008274111940011e+02 2.834409911154408519e+02 1.344593118283445392e+02 2.346883831968173979e+02 1.381882879805813218e+02 1.241165074750676638e+02 2.186327911062819567e+02 2.466602279029802673e+02 1.573094529523951906e+02 1.568918412618390903e+02 2.289205163045023710e+02 1.170165333644822283e+02 1.742406104080407658e+02 2.082974381484526702e+02 1.600869123712819260e+02 2.399160913983472199e+02 2.877189278027444743e+02 2.845252294036096146e+02 2.342337907657317544e+02 1.496264758341107779e+02 2.905797831387872066e+02 2.824703799011629144e+02 1.047015685176013307e+02 1.056531628249932169e+02 2.778559625738202499e+02 1.693549799118289343e+02 1.654193764711911570e+02 1.062077606699500762e+02 1.159643419206647792e+02
|
||||
2.694780377267857716e+02 2.229138360502907403e+02 2.407432883969363218e+02 1.240072643521201741e+02 2.128611568148922970e+02 2.114050669978733481e+02 1.042337934877265297e+02 1.044783539591350490e+02 2.706611056394938259e+02 1.972285130309975898e+02 1.959046941044780681e+02 2.915493579522836853e+02 1.131994346897827342e+02 1.197362406389762839e+02 2.877593780027675621e+02 1.089470964294721824e+02 1.996015695685267417e+02 2.185569019121031999e+02 2.102686704320404374e+02 2.955299037924150980e+02 2.987478446256551479e+02 2.517129931888254646e+02 1.552463625479420557e+02 2.295020326441428153e+02 2.886454895961533111e+02 1.869792800456660871e+02 2.703426621835664037e+02 1.873514421416134326e+02 2.714620374401066556e+02 1.623625260081516331e+02
|
||||
1.457420078291350194e+02 1.926195242081234369e+02 1.841639049563959247e+02 1.397830290030836125e+02 1.287503203163068406e+02 1.684614546803193775e+02 2.820658047345126533e+02 2.986548244924653090e+02 2.631399932039782925e+02 2.870930868530864473e+02 1.141938207690214426e+02 2.868552010662050407e+02 2.019110175402121286e+02 2.840219745246005232e+02 2.848478851173646262e+02 1.902287203163165259e+02 2.696968940302964484e+02 1.690355482825476656e+02 2.171695948786692725e+02 1.960363641465239652e+02 2.930566891688549731e+02 1.380341365242818483e+02 1.769912313914243214e+02 1.164985277343077996e+02 2.079184380436491324e+02 2.871364788135472850e+02 1.796231479741346391e+02 1.115892945700443875e+02 1.922852518794877028e+02 1.851500906627327083e+02
|
||||
2.894943401361737187e+02 1.972990286414578804e+02 2.801948561309920933e+02 1.993490085147259947e+02 2.539099743775018112e+02 2.972486389690005240e+02 1.162404922698449354e+02 1.801898545246462504e+02 1.283416456049016858e+02 2.289248555429664407e+02 2.419505668531598985e+02 2.755101537543703216e+02 2.786083442131507013e+02 2.461931811431258552e+02 2.699066237266536064e+02 1.088542193903703179e+02 2.302113104476973149e+02 2.158136503417114227e+02 2.797451432348925096e+02 2.832754349673875822e+02 2.207567008139471909e+02 2.920947868166995249e+02 1.300092217647513735e+02 2.953259288980694350e+02 2.539624465668687492e+02 1.304833679125420645e+02 1.051395153781939484e+02 1.855592224876973830e+02 2.160289702497469477e+02 1.227895712666205981e+02
|
||||
1.029685235386965587e+02 1.410297052380113882e+02 1.832105986621241982e+02 1.016727951098498579e+02 2.130361696974732126e+02 1.817578553203918830e+02 2.644724203174304193e+02 1.713346250427240420e+02 1.297164370175517547e+02 1.072810924841072193e+02 1.083932811014470161e+02 2.860684171745337494e+02 2.893854146138399983e+02 1.677808320623732925e+02 2.343535290724524600e+02 1.209564642240636090e+02 1.329537830609780542e+02 2.924542956964438645e+02 2.733376468658280487e+02 1.397146179999238598e+02 1.103570089598620285e+02 2.231457082965310690e+02 1.056672424832338635e+02 2.887779644840117612e+02 1.127167878193751704e+02 1.387640376146708263e+02 1.791595456124304633e+02 2.709107895779202408e+02 2.238624693992912569e+02 1.773395240564728397e+02
|
||||
2.317578772498348769e+02 1.294950944138938667e+02 1.126253428029936572e+02 1.371351849575549693e+02 1.785990678455200964e+02 1.021081186758702444e+02 1.471984209931611360e+02 2.907355141803875540e+02 1.881128962816476644e+02 2.776434621780599628e+02 2.231668573818950279e+02 1.905362514139340817e+02 1.921875823712000226e+02 1.027725913116546792e+02 2.939602582690168902e+02 1.776540079128602656e+02 2.761214484196684111e+02 1.042033722248946646e+02 1.812858538041361385e+02 1.739774673118114663e+02 2.626640185867897799e+02 1.702975408841979288e+02 2.558138050153142729e+02 1.733257751657050392e+02 2.918973111180089859e+02 2.499103812623473857e+02 1.210050998380505973e+02 2.819910650801346605e+02 1.887952629909842699e+02 1.910084514453274380e+02
|
||||
2.212539479167726029e+02 2.774434360961662378e+02 2.337566454731646104e+02 2.345785537275947661e+02 2.365459264006348405e+02 1.983982238092833086e+02 2.030822332599765332e+02 1.995891111618029186e+02 2.834365683300363798e+02 1.036872616932399609e+02 2.192093181482490252e+02 2.601252995545215754e+02 2.498786393235831724e+02 2.102914196276636858e+02 1.344974807588668000e+02 2.319076536245909210e+02 2.769341510052834110e+02 2.705990780330756138e+02 1.679097240924248240e+02 2.394521666103182724e+02 2.042111123157340842e+02 1.679545908808316028e+02 1.638112120198904051e+02 2.498667640522866407e+02 1.298749690282424183e+02 2.953546510122243944e+02 2.420377599473625025e+02 1.972281420856064642e+02 1.511153679243939223e+02 1.785899871179086063e+02
|
||||
2.568297621323404201e+02 2.469847896802298237e+02 2.766623631158322496e+02 2.476135901735717937e+02 1.788596740963971570e+02 1.849716544556056874e+02 2.568516536462929594e+02 1.692762419184084877e+02 1.468834240718183537e+02 2.716053370235183593e+02 1.674083895790932957e+02 2.340636951853666687e+02 1.637725360284847227e+02 1.316562872243186177e+02 2.850086566701365882e+02 2.066513343106022944e+02 2.990778363456342390e+02 1.780020440519503495e+02 2.906711993591478631e+02 2.149926413975278479e+02 2.151504627144789765e+02 1.458362697904619836e+02 2.339644011324822657e+02 1.740513991402896181e+02 1.804876886135730842e+02 1.706585538790989176e+02 1.113370339871644603e+02 2.032819788543359039e+02 1.225434838619497526e+02 1.558188197132453183e+02
|
||||
2.752385657001058803e+02 1.704994416021052643e+02 1.607090409105587696e+02 2.031247490318933444e+02 1.333383797740430339e+02 1.922643047184382112e+02 2.665685682619526915e+02 2.611043497447243453e+02 2.444450591022788615e+02 1.012899678037660181e+02 2.236752860048796947e+02 1.164606756896235993e+02 1.768812782093617955e+02 2.532808672341815850e+02 1.308823477633827395e+02 1.683394957344131626e+02 1.787390150786144716e+02 1.962681762314343530e+02 1.178176219749694980e+02 2.151624908275416885e+02 2.951256579216935734e+02 2.058583926262361388e+02 2.348769662163374790e+02 2.500118096543036472e+02 2.065978549387351109e+02 1.732426267043477139e+02 2.575950640438621804e+02 1.826939497339359946e+02 1.586062531006688801e+02 1.141086110094916819e+02
|
||||
2.107478059550890066e+02 1.212326460542207940e+02 2.154852140069355073e+02 2.624147598788578648e+02 1.169795422214265699e+02 1.682202484364929660e+02 2.987700686247625299e+02 2.259973608163532504e+02 1.912690930240648015e+02 1.896338093439390775e+02 2.747727757049322008e+02 2.388804299971102978e+02 2.538821160842531128e+02 1.839990833334872491e+02 2.839611350159472067e+02 2.953225980324958755e+02 1.674336071760058076e+02 1.609172697163818953e+02 2.902596210806400450e+02 1.513824951234124114e+02 1.873458283487339600e+02 1.695960935104061491e+02 2.116215526550050470e+02 1.849422962892989233e+02 1.434256749723924713e+02 1.304784783123307079e+02 2.632948417544853328e+02 1.656472047377057777e+02 2.303125851744007377e+02 1.681993961373014486e+02
|
||||
1.104191565760665128e+02 1.750924257030650040e+02 1.242494131306669090e+02 1.541741282893887899e+02 2.585460716706878657e+02 2.286423505464783261e+02 1.890990979891397501e+02 2.707781238779197679e+02 2.619171833457787670e+02 2.695823002806438353e+02 1.941989480397771786e+02 1.389058748786196134e+02 1.283479072532797431e+02 2.347481590897206729e+02 1.518985431591505630e+02 1.757095590143896402e+02 2.225334593093496096e+02 2.231309387578290568e+02 1.039310896134069395e+02 2.614149485334186238e+02 2.212890027388380076e+02 1.425609106790709859e+02 1.376620423520403733e+02 2.403640719649376933e+02 1.152284694789922526e+02 2.108068210397188409e+02 2.526640691383259991e+02 2.323633859683563969e+02 2.720522122905912283e+02 2.498034621012949685e+02
|
||||
2.223449436042899947e+02 2.823923482876032267e+02 1.728419664392092727e+02 1.542710015610415724e+02 2.699062389875002737e+02 1.776741825057288793e+02 1.800001384193664080e+02 1.819433000632012636e+02 1.436484983468620840e+02 2.344086094824976954e+02 2.824459866922626361e+02 1.860318500101035681e+02 1.749968777772715498e+02 2.792448396035428004e+02 2.134719239619671498e+02 2.649346822194891047e+02 2.535109715864082602e+02 1.651109960016319178e+02 2.407385671793928736e+02 2.276937454871455770e+02 2.965404491761371446e+02 1.771850291606413634e+02 2.317902380753697855e+02 2.233400563607936817e+02 2.471010629200553694e+02 2.999085009765063319e+02 1.263611681933084725e+02 2.954593528043474180e+02 2.279026703099021915e+02 2.630592311905735414e+02
|
||||
1.662671322607742752e+02 1.600442354914371208e+02 2.476541290397616137e+02 1.471310870365195740e+02 2.302232198157895198e+02 2.833854716762933776e+02 1.464787719165046553e+02 1.913553080525503560e+02 1.014594285276723156e+02 2.182963956218923158e+02 1.629807715448000636e+02 2.692152036144454428e+02 2.287521686048013976e+02 2.982465613581407524e+02 1.646080094271899839e+02 1.685350412843276899e+02 2.638506951547767585e+02 2.931520510309920837e+02 1.395453733045734168e+02 2.192750645467382355e+02 1.118562057344099543e+02 2.210439168983162972e+02 1.977199388190010438e+02 2.248771354041466566e+02 2.967583759675493411e+02 1.144799677712354793e+02 2.877369511761256149e+02 2.831237961244747225e+02 2.909105411130262269e+02 2.550977837950437390e+02
|
||||
1.519738194711488006e+02 1.042788193386050608e+02 1.298121344332743377e+02 1.827398187867084971e+02 2.371985543371917800e+02 1.647119082252074236e+02 2.792046599520904238e+02 1.737333830141970452e+02 2.019611337599129968e+02 2.402390448779260623e+02 2.107045415433176174e+02 2.447101973248666411e+02 1.584507446746840174e+02 2.877533155913679366e+02 1.209142860803932251e+02 1.903846717728129931e+02 1.485923447895592631e+02 1.040627746119376695e+02 2.329784390325348795e+02 1.136264746597146882e+02 1.019818146651219024e+02 2.395077159260278847e+02 2.571474008697522322e+02 2.507839876514990465e+02 2.649762964978717719e+02 1.398370322453145889e+02 1.116668292809188614e+02 1.262068209877756289e+02 2.561228606182183967e+02 1.019925993853918413e+02
|
||||
2.525550526067758881e+02 2.649927164229666232e+02 1.457764901336312846e+02 1.519121804298574148e+02 1.112983565335166247e+02 2.979018464293943680e+02 2.517559946611144142e+02 1.257251989750113239e+02 2.377842966816966737e+02 2.692916709774201536e+02 1.558791612193160745e+02 2.988101508442036334e+02 1.264682305510686575e+02 2.586186621657187743e+02 2.397705732393993969e+02 1.799773948514575750e+02 2.289212202830902072e+02 2.551439950194432242e+02 2.270410183155361210e+02 2.624250216967006395e+02 2.894508375480465361e+02 1.106681053253299183e+02 1.696755343387707171e+02 2.302155275158106917e+02 1.445113211107399138e+02 1.886794441144848236e+02 2.129906512422033131e+02 2.340704769023953986e+02 1.082933010325512981e+02 1.977265970892881626e+02
|
||||
2.874406426475449052e+02 1.913451373833616742e+02 2.647704607931181044e+02 1.881279366057496532e+02 2.840067538093052804e+02 2.179159896935567247e+02 1.839859875309309132e+02 1.189702187115672132e+02 2.794517441847542614e+02 2.815599370853284427e+02 1.258259904677427699e+02 1.428483537633051412e+02 2.541426109645265967e+02 1.338781623221585164e+02 2.877181693280556374e+02 2.041742222547631513e+02 2.429167887622087392e+02 1.861891141000048435e+02 2.815058357304060337e+02 2.932279451804108703e+02 1.428092602118218792e+02 1.129541128601477595e+02 1.104970415865426503e+02 1.361068733124779726e+02 1.702082770497633533e+02 1.583852379729134157e+02 1.614070717213254511e+02 1.054529192214523476e+02 1.116913943762218366e+02 1.806474879921846366e+02
|
||||
1.904583320230821926e+02 1.477903225290235980e+02 2.926623631581093150e+02 2.267002240281469199e+02 1.643763662729302268e+02 2.199235242233247902e+02 1.853923849032223359e+02 2.941726936508506469e+02 2.665966841434134835e+02 1.199566433868006357e+02 2.951991052054676175e+02 1.594510101065885124e+02 1.458298791153635534e+02 1.532145001211049475e+02 1.411023254500616133e+02 2.140513226665028128e+02 1.678784758049908419e+02 1.708308530430679184e+02 2.099440033407245778e+02 2.664570659333852518e+02 2.959905162222905801e+02 2.829445582187913715e+02 2.588706049990775000e+02 1.722199615074994483e+02 2.869184560072056343e+02 1.681559218785307053e+02 1.503240659973911306e+02 2.588597461006905291e+02 2.678295026364270939e+02 2.154561503934444886e+02
|
||||
2.071927904539387839e+02 2.171736003654224305e+02 1.593735315924418785e+02 2.947356579175152547e+02 1.742775794491871011e+02 2.184611101357660914e+02 2.225198306238390842e+02 2.168369296352294668e+02 1.755672175076374231e+02 2.252214925755263835e+02 1.563369877784152209e+02 2.085332604119019209e+02 2.572482649031854862e+02 2.951800051631508950e+02 1.079183556031880329e+02 1.218838648771928774e+02 2.685371616407055626e+02 2.419162624723466877e+02 1.022244855205179022e+02 1.101224552326326602e+02 2.597819405832950679e+02 1.134555412120959517e+02 2.870491931154815575e+02 1.374365654160442318e+02 2.645641258978021142e+02 2.531141673781916666e+02 2.361747183362105886e+02 1.893108861581111171e+02 1.539026912190118139e+02 2.501170032332128415e+02
|
||||
2.547888423116186232e+02 1.853670755857669974e+02 1.389074705955763420e+02 2.709929622842061008e+02 1.228800068832790515e+02 2.778321736112652616e+02 1.309641642706778555e+02 1.156980811627219055e+02 1.431313378740429982e+02 1.646591400066212714e+02 1.920182917083556049e+02 2.178001706163468043e+02 2.235489712948179886e+02 1.079088316874027242e+02 2.447091545393394370e+02 2.320303973549428065e+02 2.359105911115680101e+02 2.382951907588607128e+02 1.062067779247245483e+02 2.905379355334102911e+02 2.023335418134440715e+02 2.128348219019524095e+02 2.865957710750057004e+02 1.782427960783044796e+02 2.856139874187100531e+02 1.139905905655008098e+02 2.264676166669663360e+02 2.479179013019825675e+02 1.746165350218777803e+02 2.255842464851874070e+02
|
||||
1.883869033800616819e+02 1.965817072065136699e+02 1.890868666652849015e+02 1.898737766004000491e+02 2.779218373710688184e+02 2.134628932560298722e+02 1.100835458783813436e+02 2.768750976313177148e+02 2.547073561014202880e+02 2.728160162818061281e+02 1.733645011505617504e+02 1.625036971255624394e+02 2.977754324167240156e+02 1.632372616873928450e+02 2.174045665187836107e+02 2.606964806055048030e+02 1.625508452643421720e+02 1.715067940576683441e+02 1.218481476549646629e+02 2.842560845538128547e+02 1.928678337146606623e+02 2.708765321293922739e+02 2.077020047066411621e+02 2.923591890868326004e+02 2.230876482822842206e+02 2.689925468225608256e+02 1.036588336737814586e+02 2.052618530546818363e+02 2.648220111560104897e+02 1.868396012623422280e+02
|
||||
1.785937212608853315e+02 2.973454718025594161e+02 2.368986004504845084e+02 1.146953890760472348e+02 1.265905165006724644e+02 2.255973396401841455e+02 2.163675674740596264e+02 1.527913853500098185e+02 2.283358642424602465e+02 2.759303134283557597e+02 2.876072117803540777e+02 2.029362495845153944e+02 1.212425121544320490e+02 1.100001317370093830e+02 2.335268996183764330e+02 2.375268130741384027e+02 2.336339660612213436e+02 2.462747325703657282e+02 2.841981652294566061e+02 1.081959034831858446e+02 1.291296469376330833e+02 2.602425849072438950e+02 2.575669438145553727e+02 2.135342654708205714e+02 2.294373105308322067e+02 2.706502840281193016e+02 2.928412927772634475e+02 1.330151104176747765e+02 1.533759962548247131e+02 2.744006234275867655e+02
|
||||
2.257735103076358882e+02 2.728385269717355186e+02 2.290872800510813363e+02 2.330934692803050154e+02 1.037274604992595215e+02 2.674079561164307961e+02 1.195755645916240866e+02 1.402804464035359047e+02 2.170516922702277611e+02 2.744725918691634661e+02 2.930458735600458908e+02 1.496408395971007224e+02 1.595562419103408729e+02 2.835538666488008630e+02 1.780163567793609332e+02 2.906408145890961237e+02 1.133853019218590248e+02 1.494630592331960770e+02 1.214592101712915451e+02 2.263015460193574881e+02 2.598100406717117608e+02 1.963383361449393192e+02 2.235083985338561376e+02 2.946475410923074492e+02 1.758055989844200724e+02 2.637780439251395137e+02 2.875400021086666698e+02 1.577781508415756662e+02 2.146553072676672684e+02 1.798181279868336446e+02
|
||||
2.620574340171276617e+02 2.153711882285265915e+02 2.245961661539886904e+02 2.054509343172356921e+02 2.926008719008261210e+02 2.432564531143420652e+02 2.303655720936658611e+02 1.615953803481287991e+02 2.918921003884012748e+02 2.760746977013722017e+02 1.909442200188182710e+02 1.596536528765051060e+02 2.491411570718119037e+02 2.924629085319008936e+02 2.587604848561293807e+02 1.524605619386706792e+02 2.737599884275671798e+02 2.090365453766356723e+02 1.610548024559351461e+02 1.018774121963877803e+02 2.410901898572944049e+02 1.875862586601133444e+02 2.588626077539996686e+02 2.579873618626863845e+02 2.838744453525392828e+02 2.580071516854936817e+02 2.114887112935771256e+02 2.675506009048368696e+02 1.260391751775616029e+02 1.858866479221875920e+02
|
||||
1.963224789638335892e+02 2.444908535968891954e+02 1.962779352478895589e+02 1.553096436749702889e+02 2.483662294276224429e+02 1.067992874414757978e+02 2.633849667942634483e+02 2.454321751613854588e+02 1.854433418739394028e+02 2.562889653665436072e+02 2.506342746416453622e+02 1.900819942764665598e+02 1.704565979131312474e+02 2.916979173024495822e+02 1.898592592817412310e+02 2.687872145548625440e+02 1.525347862509104004e+02 2.786582104923993484e+02 2.310813531087783872e+02 1.166208530157265386e+02 2.602471623613457723e+02 2.102772607982462034e+02 2.183751071150112466e+02 1.065011561509572999e+02 2.813176394708128782e+02 1.792292558016025623e+02 2.804083600455996361e+02 1.557890480883644102e+02 2.439522159916458861e+02 2.652201783594097719e+02
|
||||
1.425266334964659904e+02 2.075049705342416928e+02 1.704914602333145126e+02 1.886474594627911756e+02 1.252313163849750595e+02 2.836097447326676502e+02 1.406399617929505439e+02 2.414245225193989768e+02 2.576349788827002385e+02 1.486724691707949262e+02 1.092388214497626961e+02 1.685935770192617724e+02 2.033388664740227227e+02 1.390809359458484948e+02 1.056188661648174758e+02 2.350581131530574055e+02 1.964295662906907012e+02 2.578831766420791496e+02 1.109952979966328144e+02 2.027546721440710940e+02 2.501377690830167637e+02 2.111868593440530617e+02 2.324728205186171692e+02 2.453971856382445935e+02 1.723822394524685819e+02 2.872924628066301693e+02 1.140766727214026446e+02 2.221345013854892159e+02 1.728173248741775296e+02 2.676400838220500873e+02
|
||||
1.711571121866394947e+02 1.085759247733173396e+02 2.001753766691515750e+02 2.760446855018309407e+02 2.056587091496190567e+02 1.121827347031253197e+02 2.274644480946081444e+02 2.571858980756533128e+02 2.945439217283808375e+02 1.913312305877045674e+02 1.500446430731354894e+02 1.650397772114545489e+02 2.581660073502400792e+02 2.094009769144933273e+02 1.731816092302842094e+02 2.727903589313663133e+02 2.606648610353666982e+02 1.460656197586831695e+02 2.016951883706858268e+02 1.247477859691891240e+02 1.732157361502286221e+02 1.195560196858487245e+02 1.253893910664414904e+02 2.455457677441618216e+02 1.778732818035962850e+02 2.490436815297808266e+02 1.487573988963908960e+02 1.937302250034929898e+02 1.502426775501600389e+02 1.110841009912817583e+02
|
||||
2.382535443835092508e+02 1.972031918916456732e+02 2.576267295349729807e+02 1.730194312205534288e+02 1.301593684828995094e+02 1.624008376323430127e+02 2.060036399923972681e+02 1.233366573394677630e+02 2.194763391620297739e+02 1.701495187616251314e+02 1.223397596968992218e+02 1.987622577877627350e+02 2.511738650001373117e+02 2.130204435763062634e+02 1.993899817227978133e+02 1.597764561560970265e+02 1.205224890815559604e+02 2.184250491898233690e+02 1.755709834516516139e+02 2.741081010321077542e+02 2.104755291992826187e+02 2.698148014221883386e+02 1.299106544858947814e+02 2.008369880697999292e+02 2.938716155581552130e+02 2.671516623028076083e+02 1.332347035771324215e+02 1.291435420390463378e+02 1.835021202063177554e+02 2.002866194329941720e+02
|
||||
2.554906544300547182e+02 2.365682876454178540e+02 2.924004211094360244e+02 1.662852505275750730e+02 1.123350814405425808e+02 1.910015128879867632e+02 1.341551373493250594e+02 1.313122940860927770e+02 2.397311819484906152e+02 1.559268654058377024e+02 1.407120959783594003e+02 2.371419051640040152e+02 2.217591327496910480e+02 1.881187811266301537e+02 1.632462641154496907e+02 2.970940639140721373e+02 2.422917505999918433e+02 1.356966040631749593e+02 1.702398486895437486e+02 2.608644720933497183e+02 2.783751927848827563e+02 2.951746624002826138e+02 1.720706565846523688e+02 1.275268866601749096e+02 1.880990845238362681e+02 1.129502795714700625e+02 2.919985401845127626e+02 2.747497807112307555e+02 2.667734033775608395e+02 1.373740617490475699e+02
|
||||
2.115416415080857746e+02 1.431719947715498336e+02 1.718744824503889674e+02 1.075365968452523902e+02 2.220100335193473029e+02 1.965127222891928795e+02 1.062726056237197838e+02 2.631794488147562561e+02 1.658640190278337627e+02 1.169182569761068464e+02 1.645780782039788619e+02 2.940728738870184316e+02 2.979920277570993790e+02 2.125849825405138631e+02 1.533327700316632161e+02 2.655551337415409421e+02 1.329075684859120088e+02 2.686536376777100941e+02 2.299223677315555676e+02 2.123135030200585334e+02 1.474417961566917654e+02 2.899688778344954017e+02 1.439992490259426461e+02 1.606165457016644780e+02 2.854253601360321682e+02 2.837928223954166924e+02 1.868865943198568402e+02 1.809928275876523571e+02 1.583918020284682484e+02 2.384217495701244331e+02
|
||||
1.181670050605631417e+02 1.525653020190297582e+02 2.615084872177121724e+02 1.755024420886775829e+02 2.989795566898581001e+02 1.573585789513378188e+02 1.903575226478752711e+02 1.641861715477102166e+02 2.943146494922903003e+02 2.038802368327418719e+02 2.581560000437879694e+02 1.504995935930718076e+02 1.095655891680627008e+02 2.628623226127134558e+02 1.069018430130149255e+02 2.750818506761686422e+02 1.121786007219489818e+02 1.106710601660877415e+02 1.217291564359016149e+02 2.915199334459504144e+02 1.325859381653097557e+02 1.737237090326784141e+02 1.036075961875061751e+02 2.392327113385031510e+02 2.486092083099548233e+02 1.259492139939950306e+02 2.665249241620523435e+02 2.103119814995928039e+02 2.718465347096271216e+02 2.018653364759854298e+02
|
||||
2.085808638159350608e+02 2.977621083099649582e+02 1.394173606621695285e+02 2.232898484647512873e+02 1.347812725162832521e+02 1.574683348766579627e+02 1.827258429860655724e+02 2.827887224427595356e+02 2.608349632236463549e+02 2.370910079389979046e+02 2.033290260845359398e+02 1.566531500677691042e+02 2.982287288081304837e+02 2.998057140577807900e+02 1.906108269451214596e+02 2.023344526730545851e+02 1.717672594576409040e+02 2.093320563180507747e+02 2.649028095061802333e+02 2.840422446800275793e+02 2.111868958418739908e+02 1.803076798272542760e+02 2.311954915496957312e+02 1.563425451766251513e+02 2.610066662710300989e+02 1.855286443040786537e+02 1.478912573842241045e+02 2.544380211258828410e+02 2.799416317427427430e+02 2.238937193404353252e+02
|
||||
1.269470316997365131e+02 1.895539822645488357e+02 2.443421824114378467e+02 2.632321641240823737e+02 2.164919638664115951e+02 1.042697198382110884e+02 2.896061632271033659e+02 2.068164163046922681e+02 2.059671371408958294e+02 2.352532326493898722e+02 1.046233655847859296e+02 2.755187319279126541e+02 2.344641322699609987e+02 1.434858288567621969e+02 1.255438908126368176e+02 2.548141480364848803e+02 1.466719626681152704e+02 2.020892715394597872e+02 1.195107046056347713e+02 2.012968701954913797e+02 1.996902768982717191e+02 1.560547951636197013e+02 2.162555170020900164e+02 1.483278604161245084e+02 2.615607136845001151e+02 2.424344777210258997e+02 2.524090919470299070e+02 1.726167614603126026e+02 2.199373130240069258e+02 2.318614758097714912e+02
|
||||
1.590143031424979370e+02 1.933970326403360502e+02 1.227042846200323112e+02 2.107086401017011781e+02 2.844049872407889552e+02 1.420899421875644464e+02 1.736571760246831673e+02 1.130876049831349661e+02 1.470306210908964317e+02 2.959723384067232246e+02 1.438030965279091049e+02 1.685928342779160403e+02 1.351720793691902713e+02 1.909711091249450590e+02 1.477005416416634205e+02 1.010528808923594681e+02 2.205493627613245167e+02 2.367352422049318079e+02 1.224997665062844305e+02 1.620949451166091251e+02 1.270634404764108467e+02 2.673321646154778932e+02 1.618882934467209225e+02 1.208967331765591524e+02 2.073956586593529607e+02 1.223277950209799059e+02 2.625820210851194361e+02 2.262632377752408672e+02 2.222881433937307349e+02 1.716205611551696961e+02
|
||||
2.376094214038359667e+02 2.287867757784330820e+02 2.035778067022395703e+02 2.546588007138803391e+02 1.514832565507949198e+02 1.736683542684334327e+02 1.991020520349750598e+02 1.873563480883249213e+02 1.589186331386689801e+02 1.042563150975229149e+02 2.019924784676414902e+02 1.136537158101241971e+02 1.091264020137841158e+02 1.352770409719844054e+02 2.178414513482917414e+02 1.831380105899948489e+02 1.114225947990316570e+02 1.736029819106907439e+02 1.354612112967272424e+02 1.996055424300992627e+02 2.905125217944571432e+02 2.980326934372309893e+02 1.560898949881966473e+02 1.943286005606112212e+02 2.429797193518882636e+02 2.652714760000731076e+02 2.863852813340179182e+02 1.838252831614893239e+02 1.814799327205894315e+02 2.338290144642930954e+02
|
||||
2.526381992552952340e+02 2.089745531365245483e+02 1.869938021147821701e+02 2.864405091884094645e+02 1.736924996547539877e+02 1.479914815134324613e+02 2.132537252074255321e+02 1.830098172980584934e+02 2.476607236946428827e+02 1.066503395377639265e+02 1.405219898965278276e+02 2.743866427972425299e+02 2.269305408710248173e+02 2.791638036143738191e+02 1.824422387811073634e+02 1.852994662516045423e+02 2.777032940597408128e+02 2.109153407914434126e+02 2.214759900082639490e+02 1.857033490029854761e+02 1.302118293337227328e+02 1.889562709124264188e+02 1.844813915245081546e+02 2.875482403705134402e+02 2.022892465111445404e+02 2.230217175841083872e+02 2.843056043891419904e+02 2.350834055358549222e+02 2.080929758762673032e+02 2.770814576487081240e+02
|
||||
2.389430507965955428e+02 2.463651891862864147e+02 2.369578462650186452e+02 1.902366989508459199e+02 2.003468797600664004e+02 2.681735461841141728e+02 2.362787745532336601e+02 2.323782975776413480e+02 2.525302892415198812e+02 2.828059530799229151e+02 2.840327053185673662e+02 1.223941816187275435e+02 1.056255174412387134e+02 1.386503050117574105e+02 1.384325506562210535e+02 1.176641636239777426e+02 1.670688688422628161e+02 2.506322552784647826e+02 1.181229702988334083e+02 2.607048520072489737e+02 1.667476448166365515e+02 1.310085831735554223e+02 1.553111545647699927e+02 2.907454039462255651e+02 2.844644695877585718e+02 1.989933906493695019e+02 2.662036190025202131e+02 1.792754658114438371e+02 1.073664330563030944e+02 2.793141822468826376e+02
|
||||
2.640306978448612654e+02 2.458161373226257069e+02 1.015510894380497575e+02 1.527048938693112916e+02 2.893334394723561900e+02 2.994916089563248534e+02 1.054055716033572452e+02 2.278819528330843127e+02 1.890909183007994443e+02 2.134436011261824433e+02 2.654189934957544210e+02 1.780852604264427725e+02 2.222277079756825628e+02 2.689688042831336361e+02 2.232046857529678050e+02 1.778434593737022169e+02 1.336418515516146783e+02 2.739064893378349552e+02 2.065065746675076355e+02 1.329712924393647313e+02 2.176938186185978736e+02 1.918043587714230114e+02 2.280421349429639122e+02 1.182282112372680842e+02 1.370131137248831692e+02 1.716251366233928195e+02 2.412427837766657888e+02 2.738208811966829899e+02 1.471415247536169488e+02 1.638288393831292353e+02
|
||||
2.669085627842696908e+02 2.477147782526785136e+02 1.718200513884793565e+02 2.299346472745743597e+02 2.016242169414389309e+02 1.631378839470685307e+02 1.859938403107781255e+02 1.609729169019194330e+02 1.536303039404505171e+02 2.234728543554556950e+02 1.953401084257108096e+02 2.920381588589057174e+02 2.034966688752892310e+02 1.019427894404581139e+02 2.980736970140829953e+02 1.738263823108001418e+02 1.531314323312329293e+02 1.400030133312995702e+02 1.802287961283190043e+02 1.719909696301723443e+02 1.974918793689569725e+02 1.666882741246514001e+02 2.879569025675030502e+02 1.334044307903087088e+02 1.016937569869423896e+02 1.660343944328368764e+02 2.214967229035601974e+02 2.539424882366704992e+02 1.211914878013190133e+02 2.835892388637473687e+02
|
||||
1.704109091340931741e+02 1.337843054639438378e+02 1.570106251098002588e+02 2.123587857442842335e+02 2.788290802167920219e+02 2.795601449888932848e+02 1.220747715539721696e+02 1.179984498565524405e+02 1.552783750686872963e+02 1.257256444039083192e+02 2.312614004137946893e+02 1.971625968209403084e+02 1.208837070227885135e+02 2.231693789143681386e+02 2.332576722664892941e+02 1.659208209363902711e+02 1.979623049620595907e+02 2.497459328714609512e+02 2.540243570817084446e+02 1.309045902221261599e+02 2.376613837929333499e+02 2.140333351750954023e+02 2.231625169053620539e+02 2.869160136215916737e+02 1.282002159167354023e+02 1.029173927424986488e+02 2.432034421383394545e+02 1.495648010251883306e+02 1.971910657968611247e+02 1.358409247687675361e+02
|
||||
1.833826243837603442e+02 2.960483510370855811e+02 2.343723986770386318e+02 1.560358896543934293e+02 2.499669478251469172e+02 1.762005778153444169e+02 1.918050503412152921e+02 2.089352602085182866e+02 2.770127170480132008e+02 1.268157216157417224e+02 2.670673189640755822e+02 1.547628252866769287e+02 2.602514896343354849e+02 1.557532905756793866e+02 2.574076233589491949e+02 2.646855654359934533e+02 1.749681240869035719e+02 2.465698370051858035e+02 1.076897610845538082e+02 2.337637497458482301e+02 1.791847918196868932e+02 1.967068388721293104e+02 2.340964493346380095e+02 2.762770912600988140e+02 1.174465260954359564e+02 2.950490567997024982e+02 1.354710376622284116e+02 2.342233227246520642e+02 1.617966271393036379e+02 2.107879984327653915e+02
|
||||
2.493754578342164336e+02 2.275093847135933061e+02 1.466148442335522191e+02 2.261697123059220189e+02 1.213252451599347950e+02 1.628949300801819504e+02 2.100466501082228206e+02 1.508908296808102989e+02 1.488199564735201079e+02 1.727131563468088302e+02 2.306747713688439205e+02 2.570279850661015644e+02 2.309125192178541113e+02 2.422081718543400370e+02 1.769407234272878782e+02 2.688532243604371956e+02 2.276780878660686085e+02 1.065345319601523641e+02 1.535069430280279050e+02 1.717902253122074967e+02 2.876755354986605084e+02 1.683056100689713332e+02 1.120105413679224569e+02 1.755508096146901664e+02 2.095863991316655870e+02 1.523590730880595174e+02 2.944635547123552897e+02 1.444697311944634066e+02 2.165062978405008494e+02 1.410128743297030098e+02
|
||||
1.434402193906418006e+02 2.368914090178307106e+02 1.963465933374949941e+02 1.914557752364961516e+02 2.870767419320768568e+02 2.044699144835463187e+02 1.223520556576680036e+02 2.352284247043744472e+02 2.917945011866975165e+02 2.225925999946875322e+02 2.240309397680480288e+02 2.048455962243571093e+02 1.188048963943729035e+02 2.200553599997707579e+02 1.885605934416515765e+02 2.863412817843446874e+02 2.913876692311304737e+02 2.446563674684449552e+02 2.981153955140326843e+02 1.111775924383378253e+02 2.239868361016714857e+02 2.540473271011064469e+02 1.343930974769885438e+02 2.368686732696482409e+02 1.175691554116390591e+02 1.014879352562223715e+02 1.330784448687188046e+02 2.045426156006566885e+02 1.168174380391246245e+02 1.704438548713551995e+02
|
||||
2.696784010384477597e+02 2.991318545155386346e+02 2.120364825583467336e+02 1.950895785161033018e+02 1.216112431291165592e+02 2.438998438799096391e+02 1.588292735755803733e+02 2.347670069791354024e+02 1.862846309471772770e+02 2.258642611266068343e+02 1.423367506635381119e+02 2.692888471853933083e+02 2.950212092401994255e+02 2.331327670110776467e+02 1.542291422318579635e+02 2.809064569107727038e+02 2.358857646534314654e+02 2.378124255062788563e+02 2.664164586086786812e+02 1.387157904298663880e+02 2.297158046581682243e+02 2.386372312695162634e+02 1.246509391338716171e+02 2.338956320284196408e+02 1.820257170558419944e+02 1.957425768708682767e+02 1.680974560138464540e+02 1.288235048549348676e+02 1.483029350020115089e+02 1.744880718659300669e+02
|
||||
2.512494238114035738e+02 1.112846425403449615e+02 2.472643304237797395e+02 1.241745840646870818e+02 1.808849124644312099e+02 2.524760780760417731e+02 1.836118621524309447e+02 1.408362492891266982e+02 1.099623406752946693e+02 2.383967522197594064e+02 2.436606913384966049e+02 2.770699525768120566e+02 2.597573569531676867e+02 2.935649366424795517e+02 2.702790297508025219e+02 2.563597369995835606e+02 2.279477293752616447e+02 2.477470305460766440e+02 1.962131167814513333e+02 2.859744526791636190e+02 2.703401534622389590e+02 2.763052603711840902e+02 2.934416645125817809e+02 2.193475948646207030e+02 2.822891098008749395e+02 1.085391177109117820e+02 1.782208012387337703e+02 2.335496863699061976e+02 1.715066387390946829e+02 1.948062204233656303e+02
|
||||
2.879262290016004613e+02 1.676743911135137068e+02 1.403503828589753937e+02 2.744454339345198832e+02 2.935124358491533485e+02 2.920282649929100671e+02 1.390240222956847447e+02 2.426642861805074745e+02 1.217336684570653489e+02 1.311823750440439085e+02 1.647679902066092836e+02 2.962811279981685288e+02 2.945746172932865647e+02 2.005257587949587332e+02 2.072045953580022228e+02 2.893049469033056766e+02 1.913962360581630833e+02 1.823675529874825543e+02 1.830342103129283373e+02 1.222396004373517400e+02 2.248239872372262482e+02 1.170253438297526429e+02 2.853825568202013301e+02 2.214973458763422514e+02 2.563932510909227176e+02 2.144837192650675206e+02 1.793062298958048473e+02 2.920176466690815005e+02 1.515607839109829627e+02 1.981203765908239802e+02
|
||||
1.733053660232129403e+02 1.312183264386245583e+02 1.276233157677672807e+02 2.020942572504836789e+02 2.314817368496994732e+02 2.242589617101967008e+02 2.160504620978007893e+02 2.360595788588375399e+02 2.952977074031120992e+02 2.334652590044975682e+02 1.243453875174208747e+02 1.916144242306085630e+02 1.092365115042800596e+02 1.478765005471206280e+02 2.191946613400726278e+02 2.879274886834762697e+02 2.733443652356662597e+02 1.858481832262083344e+02 2.193747651131673706e+02 2.695165737089945424e+02 2.960753121523491700e+02 1.890691006834304631e+02 2.638343907584013550e+02 1.510492177865631334e+02 1.878288206285384661e+02 2.726561149875388992e+02 1.704246795027074199e+02 1.006381753343381718e+02 2.153734239260733148e+02 2.551451126036402854e+02
|
||||
1.591849792872858984e+02 1.304671215023752779e+02 1.427456440770346831e+02 2.882324895344759170e+02 1.680635293254793510e+02 1.205800311663507642e+02 2.861305963205076637e+02 1.219224106654408928e+02 2.467003871618023538e+02 2.830287806498602095e+02 1.445950870572595193e+02 2.496562286252286640e+02 1.464987579205844099e+02 2.848280464142704318e+02 2.785616857190397013e+02 1.837468579783306950e+02 1.246964377230690673e+02 1.251791080124520050e+02 1.496399061799681363e+02 1.375936265087168522e+02 2.547928467777094852e+02 2.554856419260690927e+02 1.285559318166884850e+02 2.092144446410586909e+02 2.868951534942014518e+02 1.178319347908447270e+02 1.347784205269015274e+02 2.851299399919766984e+02 1.754694686670390809e+02 1.016886128619324694e+02
|
||||
2.606618423405234353e+02 2.125366732076933545e+02 2.822772640751277322e+02 1.096405633955119185e+02 2.437561663288932721e+02 2.129146561548243994e+02 1.148823764090175530e+02 1.516868774610028368e+02 2.090025176018670265e+02 1.817684320186263562e+02 1.584667226055155709e+02 1.501973711988126468e+02 2.530199923706828713e+02 1.847948752811591930e+02 1.778871618489498303e+02 1.664551902511519188e+02 1.100020157933824265e+02 1.352000835393275509e+02 1.710981737682794801e+02 1.530513645967782566e+02 2.588476693974693035e+02 1.775587245068043956e+02 2.006331886716666588e+02 1.389709403689849694e+02 2.489553638298030194e+02 1.673604491791948021e+02 1.991154502489720812e+02 2.423848982654565418e+02 2.882603768001737308e+02 1.620650086718309240e+02
|
||||
2.723642490909132903e+02 1.680927290528325670e+02 1.005734627393615455e+02 1.598916606218045047e+02 1.672547346703738071e+02 2.361420151042074451e+02 2.741857058408131707e+02 2.533004150866734392e+02 2.036092771261417340e+02 1.091915011443997230e+02 1.145604210422382323e+02 1.209982156413156247e+02 2.749595368914399387e+02 2.177794513808643160e+02 2.054163746311436967e+02 2.185860861470465579e+02 1.504022045473846845e+02 1.713704456854883347e+02 2.175221629008602804e+02 1.230663148243889253e+02 2.419648244223723168e+02 1.383010418990747326e+02 2.040260833828849059e+02 2.966316994044250919e+02 1.630596872908637351e+02 2.562534082821714492e+02 2.549425872735235998e+02 1.983522705781282127e+02 1.524860865223137694e+02 2.736848821358530586e+02
|
||||
1.277021385004174192e+02 2.448445434866889343e+02 1.296687360965440803e+02 1.874271582575348702e+02 1.145742775945452792e+02 1.884744688522491742e+02 1.336298647132909423e+02 1.523816963142488419e+02 2.658270705367647224e+02 1.781637174983711134e+02 1.154610011723892171e+02 2.005342781476718415e+02 1.303166615041172918e+02 2.397284110571510496e+02 1.612912854182502542e+02 2.821645080329541315e+02 2.544831471501324813e+02 2.622237400581972224e+02 1.417212269902922230e+02 2.054005404298748658e+02 1.092142219674599062e+02 1.652051184306486107e+02 2.825679563619778492e+02 2.056286073102957630e+02 1.772062144904277545e+02 1.163520479257007310e+02 1.006186351926139366e+02 1.734025793931427586e+02 1.446958902579306709e+02 2.025820689614877779e+02
|
||||
1.798382687901162740e+02 1.604629760861514001e+02 2.668981169240885265e+02 2.763242846779806996e+02 1.318105471716862098e+02 2.191362245125996537e+02 2.770758446308884686e+02 2.308910816293108326e+02 2.956895796828827656e+02 1.566426856848869988e+02 2.326210561246332418e+02 1.206555816723871715e+02 2.603144096756907970e+02 1.172571782204154829e+02 2.219493974369055991e+02 2.385109304229506790e+02 2.599678734377965839e+02 2.850516346518521686e+02 1.472948582444382168e+02 2.234296740595885922e+02 1.427895312415343199e+02 2.848238578369252423e+02 2.260232767550441508e+02 1.544648385858973541e+02 1.163971462755376791e+02 1.762731012775239492e+02 1.089523563056807660e+02 1.663966154222005116e+02 1.342495772836978745e+02 2.922401077696804350e+02
|
||||
2.806557294060240224e+02 1.077657131130299604e+02 1.622983596366119059e+02 1.723469481204717795e+02 2.678046848873893850e+02 1.442059922525422451e+02 2.629931208031973711e+02 2.741083495447689415e+02 1.194142462414748707e+02 1.688961325073638022e+02 2.967954354880449728e+02 1.822107331135221671e+02 1.292333403080546645e+02 1.856814508383810391e+02 2.103923137448445573e+02 2.517859299913771451e+02 2.551152596962431574e+02 2.077883190793959898e+02 2.986930461834413677e+02 1.196764061335889551e+02 2.378823960447958257e+02 1.692017967083341432e+02 1.471250494556689432e+02 2.608355254883699672e+02 1.757172426071724942e+02 2.629426236813185369e+02 1.040244734248400533e+02 1.533558690719498827e+02 2.011860465194789072e+02 1.720545334339216765e+02
|
||||
2.966488050331527688e+02 1.809989340563203086e+02 1.871527370563514978e+02 2.315558973515319394e+02 2.657682292004950000e+02 2.237816732699509998e+02 2.282045922056215090e+02 1.846236325909775928e+02 1.644827554373339353e+02 2.760250360653360531e+02 2.492622345937652995e+02 1.483432536002697191e+02 1.527550390024584601e+02 1.573429964258168070e+02 2.090721206423400247e+02 2.535819867756219708e+02 2.420536340362719159e+02 1.691914404667937788e+02 2.388696721384086459e+02 2.593840245957078423e+02 1.331872961625781500e+02 1.116342264469163581e+02 1.680964276125217793e+02 1.555020753508222526e+02 2.422052215908822177e+02 2.626184375196450560e+02 2.674230788003709449e+02 1.948146659156083729e+02 2.663681889818526543e+02 2.795342087705012659e+02
|
||||
1.674728956867265310e+02 2.635505920196726493e+02 1.395353777027027604e+02 1.883233466008314565e+02 1.249441512057495913e+02 2.512189370435067417e+02 2.719913755602378842e+02 1.237326636617429614e+02 2.939951219495833357e+02 1.686366002602222807e+02 1.800181056076297068e+02 2.288525977776352818e+02 2.717306800175948638e+02 1.565292507387619594e+02 1.445460932655216766e+02 2.092313282690445249e+02 2.370375511382032698e+02 2.880525812713749474e+02 1.172567175017127141e+02 1.112412797274302250e+02 2.246954385922853135e+02 2.812359340959551446e+02 1.004168603505609241e+02 1.005387863078678805e+02 1.815971195408835683e+02 2.811251817522295937e+02 2.605765849402707772e+02 2.298114360271968621e+02 2.557293814584297706e+02 2.542416589790913122e+02
|
||||
2.943583269632734414e+02 1.442274778682184717e+02 2.700917391987959491e+02 2.527420049761408904e+02 1.527279900348522688e+02 1.841979337126335281e+02 2.902442440856567600e+02 2.889101481258517765e+02 1.828125218264408716e+02 1.133179379993730862e+02 1.484787634874768116e+02 2.676352293304336740e+02 1.452118425579454311e+02 2.636966617786087568e+02 1.313546620759107100e+02 1.834019443937838787e+02 2.892465421328221282e+02 2.575015388377624959e+02 1.970702343003932242e+02 2.507528167727347181e+02 1.724897096143170074e+02 2.664268628760375464e+02 1.365257050051324370e+02 1.198011035974838308e+02 1.176831988053894520e+02 1.070946883963453899e+02 1.964638491125322446e+02 2.570844982939356100e+02 1.593905150913052466e+02 1.202569936867807598e+02
|
||||
2.734271498156417692e+02 2.352133531486530842e+02 2.590835237087205769e+02 2.260994493040042528e+02 1.805421354394846105e+02 2.728408805160995598e+02 2.367263522625478913e+02 2.580210451062748689e+02 1.204524877415260562e+02 2.946465680607327613e+02 1.547220269335912803e+02 1.186203172746691337e+02 1.923878728892914864e+02 1.094127410697402354e+02 2.222837240826847278e+02 1.529333599077602628e+02 1.861450256630199647e+02 2.125583079944122176e+02 1.527591657960447264e+02 2.694001797345342766e+02 1.986063989766776388e+02 2.192493126389772442e+02 2.986827335637019587e+02 2.790660387254000625e+02 2.781487003899754313e+02 2.564198676846006606e+02 2.597551240338123648e+02 2.358970425952163907e+02 1.951628676328612357e+02 1.078208269500064347e+02
|
||||
1.190762776130697205e+02 2.951075493308472346e+02 1.091043363430719069e+02 2.824365312299846664e+02 2.445811468414383398e+02 2.538090805786315514e+02 1.230092364266577363e+02 2.633887649939744051e+02 1.865216093980499181e+02 1.540388898662323243e+02 2.047343894245035756e+02 1.431412534309083640e+02 2.857794001060171922e+02 1.492366175285521592e+02 1.380934567887849198e+02 1.331831467466375898e+02 1.149412013934811796e+02 2.205070844660474734e+02 2.939252657951740844e+02 2.049464694042562769e+02 2.047902832862141054e+02 1.810793422252176015e+02 2.005356992447976836e+02 1.381400138775680375e+02 2.582445444487385657e+02 1.698212931623984616e+02 2.252085951830697468e+02 1.808378144669676999e+02 1.307311344108444473e+02 1.050024101356033697e+02
|
||||
1.722314120162143354e+02 2.530014253763471856e+02 1.298340795948372772e+02 2.948664870226410812e+02 2.383106068289312702e+02 1.822969205106659558e+02 2.285226769051377005e+02 2.759417691711663565e+02 2.120970517474504220e+02 2.831046044310812704e+02 2.320579821788242612e+02 1.286125039667014960e+02 1.609837368065715282e+02 2.931112965353385107e+02 1.441758663366052531e+02 2.810263276191118962e+02 1.239857273771131077e+02 2.399447548605567988e+02 1.460208836055017514e+02 1.205325462037979491e+02 2.112513935912650993e+02 1.036793750016967692e+02 1.113202625217208777e+02 1.646612561683649574e+02 1.018350908838390581e+02 1.263835026124204859e+02 2.766683711501553944e+02 1.682407929561517506e+02 2.677103056024840271e+02 2.147294480454548307e+02
|
||||
2.763536852866382105e+02 1.511976958084401872e+02 1.026794659371155944e+02 1.805990415690671398e+02 2.442493962549426385e+02 1.881796213041043018e+02 1.028768312506858535e+02 2.787706953534510603e+02 2.589640601731795755e+02 1.730107396932538677e+02 2.218419822849910190e+02 2.651646152747807719e+02 1.476149140151474342e+02 1.986450675254654072e+02 1.050693447352362853e+02 1.819666738706916931e+02 2.873544952103893593e+02 1.472060704631180954e+02 1.297023844405691761e+02 2.824778443572924971e+02 2.918073394139615289e+02 2.128134400148996974e+02 2.223096450508596149e+02 2.761940547406351811e+02 1.348708672340777639e+02 1.857009592938832441e+02 1.062906640064134649e+02 2.104442283262811202e+02 2.812954268214299418e+02 2.739038950945439979e+02
|
||||
1.837264129055918147e+02 2.399207190527903322e+02 2.843910623120511900e+02 1.773207161532972975e+02 2.056581469496123873e+02 1.558029517788254168e+02 1.458438122541016924e+02 1.893030782939712253e+02 1.139027557376393673e+02 2.228775749423569437e+02 1.367670384452707140e+02 2.854480456674787092e+02 2.424985140340279202e+02 2.940521113211518696e+02 1.330693282221190259e+02 1.212599008475133076e+02 2.754747741586869552e+02 1.062856492128348549e+02 1.212724485003486166e+02 2.100514698158626743e+02 2.547262582240854272e+02 1.999488755181088777e+02 2.578561029518564283e+02 2.784200494851090752e+02 2.728829168298310606e+02 2.071711407548560544e+02 1.708729380756020362e+02 2.726254883308487251e+02 1.104364015278258364e+02 1.175773277008901090e+02
|
||||
2.554381337818412305e+02 1.634513906120204183e+02 2.309962436793083214e+02 2.460443770945291249e+02 1.618890365991254896e+02 1.046310291743186980e+02 2.772116654811295575e+02 2.098555252827713957e+02 2.309383801112169863e+02 2.845300950466865402e+02 1.268119123926061320e+02 1.697885006171669602e+02 1.901887742560337529e+02 2.605757830463372215e+02 2.755463791239279772e+02 1.771647294768940810e+02 2.403902735905423356e+02 1.774352552408031443e+02 1.796883744424403631e+02 2.736192366006921475e+02 2.118505050785533967e+02 1.873353967662169453e+02 1.802980863638028950e+02 1.869858546159753132e+02 1.200946851663063342e+02 2.350811068219035178e+02 2.018941614745772313e+02 1.010158706413519525e+02 1.661546933057649937e+02 2.570882207683835077e+02
|
||||
2.856134023048114159e+02 1.356279054667102741e+02 1.225310201562991494e+02 1.529777144242077327e+02 2.936506440162480658e+02 2.589580133771784176e+02 1.864782805190425279e+02 1.931182124516369640e+02 2.913608028278327993e+02 1.555662042949096531e+02 1.173676742008071301e+02 2.242990267171766732e+02 2.651338851871976203e+02 1.128980005738893482e+02 1.283582653966309408e+02 2.071495534530326097e+02 1.241509031508031740e+02 2.393403040292282640e+02 2.829812266966206380e+02 2.294799861563923287e+02 2.129576840814710295e+02 2.165539860914115877e+02 1.357366103660294243e+02 2.396252028023287153e+02 1.395106368224716107e+02 1.700689743264745744e+02 1.253435651632085950e+02 1.508112259783626428e+02 2.310267786371028933e+02 2.311667616985857876e+02
|
|
@ -0,0 +1,100 @@
|
|||
-67 65 82 64 51 1 -12 2 -84 -52 12 82 -45 -84 -41 31 -49 36 -70 40 -74 -99 32 64 -6 43 -53 -43 43 96
|
||||
-58 20 25 99 -25 78 -6 59 -23 30 36 25 -8 83 -43 -7 -8 42 -90 96 46 88 31 12 68 -21 -6 7 78 -19
|
||||
-66 -51 0 13 42 -43 -30 -29 20 10 -24 -5 -42 38 -56 6 1 -80 -65 -91 89 64 -21 49 -84 41 6 -78 71 -2
|
||||
-50 -84 -50 -66 46 -88 -10 -28 -25 6 -7 10 -35 86 41 -17 72 -67 13 -67 -76 -84 -15 35 67 40 90 38 -1 -47
|
||||
-51 27 -48 26 -73 -46 -68 -56 -38 -4 49 -64 57 -86 -80 70 50 34 84 97 -76 3 -54 -89 -7 -53 15 36 -28 85
|
||||
2 -59 4 30 70 -42 -26 -1 27 -90 -18 95 -10 -36 43 24 86 -8 -100 92 80 -40 17 -93 -81 54 -8 84 -53 38
|
||||
-80 0 -71 -41 -33 9 -61 0 26 80 64 67 74 68 -72 78 -72 -52 -19 37 -33 -24 -11 -71 -53 -16 25 56 -74 0
|
||||
71 -23 49 -36 -43 -70 82 69 -100 -27 50 20 30 84 -33 90 49 39 -52 -51 -86 -76 -72 -88 12 91 -96 -61 -87 -47
|
||||
21 39 1 78 68 -80 -54 71 17 -94 34 -20 14 -5 -24 55 -84 -50 -90 -24 -79 -81 53 -50 22 -13 -92 78 -22 -50
|
||||
-47 -73 77 -93 -20 51 -37 -14 -37 -18 -8 -14 -71 29 -27 -5 54 77 -7 -2 15 -23 98 -34 -65 -78 -77 -90 -5 -35
|
||||
92 -33 71 24 43 -19 50 -40 -48 -33 -51 -14 23 40 -78 -14 -76 1 52 69 93 5 -13 30 -60 -20 -54 49 -52 93
|
||||
32 -86 21 -41 -86 -38 97 -35 -37 -89 -15 -18 -46 -37 8 63 -63 -61 57 50 43 -27 -45 98 -56 -81 16 -38 -25 -28
|
||||
-18 19 -52 -86 92 -72 23 35 20 57 69 -22 52 -66 -74 -29 -1 -10 -97 22 -97 -93 -70 87 85 -31 42 -29 -10 -36
|
||||
78 80 -93 68 41 84 -37 -62 38 -9 99 -60 90 47 -33 -40 -59 97 -28 9 35 -6 -60 -83 -39 -97 -25 -78 95 40
|
||||
79 -35 -45 -46 69 10 29 -88 98 -44 66 11 45 -58 -11 -25 51 -44 54 30 59 98 35 -28 93 86 99 19 -27 -83
|
||||
80 77 -72 57 -35 -27 86 -67 11 77 -28 -89 -30 -31 -72 64 -95 -75 92 -32 -96 -14 6 -83 -66 -58 71 -17 58 -53
|
||||
-1 17 -72 82 -57 -48 -7 -44 -80 85 -99 -9 27 -11 24 13 86 18 67 -9 12 77 98 49 49 12 -82 45 31 -68
|
||||
-13 -75 -26 17 91 12 -95 -62 -54 -60 22 50 86 58 -11 -11 -21 31 16 -15 67 90 1 80 -57 -98 35 -54 51 91
|
||||
28 -75 -31 49 0 73 75 -66 50 -77 -20 82 -40 -90 -28 32 -44 89 -75 -33 -11 -19 -55 79 18 2 -39 -49 78 -72
|
||||
14 56 78 69 -40 -20 -39 71 99 -89 60 -82 -1 -77 -42 94 -41 35 72 11 -13 89 -52 -41 -93 43 -39 -61 68 -4
|
||||
88 18 -90 -75 -49 46 -28 -48 -69 -64 77 -8 91 -65 62 -27 -19 34 10 78 82 49 -34 63 78 -88 -17 -37 -85 91
|
||||
4 36 -77 -75 -12 70 42 8 7 -31 -69 -74 -65 18 85 -92 91 16 -15 24 -74 -56 71 -70 -90 20 13 73 -68 -65
|
||||
92 22 -31 -73 -59 -78 -20 -11 -61 36 -40 34 -96 -12 51 -45 -12 12 -3 -42 -71 68 -8 -91 50 -73 -96 -46 -38 -4
|
||||
-87 44 -58 -83 70 -81 32 29 -79 45 -64 -52 57 73 -80 69 7 -22 31 -71 -34 -33 47 79 -17 6 -77 -89 3 50
|
||||
85 2 73 -88 -99 -13 -76 1 -90 51 30 -52 75 -2 -8 10 -83 -40 -5 -79 82 19 79 94 49 4 66 -76 6 -48
|
||||
29 -34 66 -93 45 -1 -98 92 -92 29 -10 64 -23 -81 -73 -62 -18 37 -29 -50 -52 90 -28 24 -4 -67 -33 25 -78 93
|
||||
57 -46 36 -16 34 -59 -96 -86 64 2 28 42 -32 6 -17 37 38 -40 -92 55 -22 -42 11 -77 12 81 -89 -39 -30 -39
|
||||
-72 -68 -41 -5 93 55 24 -6 84 77 30 33 -51 -62 6 -5 -83 60 -1 -64 7 -7 -92 31 5 -21 -34 -14 21 -33
|
||||
26 -75 -36 -54 -21 -38 -49 -20 82 73 -84 -5 -69 84 -87 12 7 -67 -40 -50 -35 -65 80 -83 -2 1 34 -16 91 82
|
||||
61 -21 1 -64 -56 -61 74 16 0 38 51 34 -35 37 -28 -52 -14 61 14 58 50 27 -43 -27 14 56 -16 -78 50 -89
|
||||
45 -47 -61 68 -41 -70 14 -51 49 -84 64 -65 88 -39 -88 28 -55 -18 81 -2 -1 -45 65 -6 62 16 71 71 -1 47
|
||||
47 60 22 -42 -5 -74 12 66 89 -82 -85 65 74 0 -18 56 -39 84 -65 -42 -33 -60 23 33 -8 -72 3 -64 -3 -25
|
||||
-70 11 -19 -12 -1 -50 -89 -61 78 28 55 92 -17 86 -17 -45 -31 68 -24 -99 -59 27 79 -2 21 -80 54 9 14 -70
|
||||
-38 52 -99 50 -46 -63 -74 -41 -43 -62 -81 38 -99 17 -94 -6 44 -20 -13 -30 71 -43 43 -28 -8 57 -93 98 4 42
|
||||
-17 -27 -60 -22 86 -49 39 -83 72 -16 82 74 73 -29 16 -59 81 -60 -96 51 -62 -55 -79 -31 -15 -67 -18 -83 -61 -86
|
||||
28 37 -44 7 -17 -10 -65 8 -78 -17 -46 -5 -35 -86 13 -16 27 24 60 -12 -48 -45 16 -33 70 -45 -63 -60 21 70
|
||||
-75 -89 -93 -93 62 -44 -39 46 31 57 72 30 -65 29 66 -53 2 -2 71 -90 -73 -40 -63 32 68 30 25 98 38 92
|
||||
88 3 5 73 -2 -61 -94 79 99 94 71 -83 -40 80 -79 -14 -34 -99 -52 27 23 13 13 -35 -74 13 43 -19 2 -62
|
||||
92 -47 -27 9 -68 -86 -57 43 9 -81 -9 69 52 -28 80 -13 -6 -44 -81 -89 -10 30 -64 86 -76 -11 -100 15 12 -62
|
||||
76 -42 39 70 74 79 84 -52 18 -58 78 53 89 58 -32 20 -51 35 12 37 -70 -21 5 97 67 -25 -25 -10 2 30
|
||||
-84 26 -60 -34 11 -27 47 85 -89 29 54 -53 66 -9 12 4 92 70 2 -12 -55 72 -62 -79 -8 68 -19 12 -8 -100
|
||||
78 -97 -76 86 -47 42 99 -3 9 49 -84 86 26 43 -26 90 23 -66 -37 -35 25 -12 -42 -12 96 -15 48 87 -95 -12
|
||||
-60 57 -30 -4 -84 24 -82 -5 34 56 76 81 -64 23 32 34 -41 -48 -6 77 -42 64 87 92 82 59 9 -71 -56 -45
|
||||
-74 -90 -27 93 33 15 -35 -73 78 23 17 -28 9 63 9 35 15 32 0 -4 -32 54 -76 14 -14 -8 16 -43 -81 57
|
||||
-2 22 85 -33 -48 74 64 -59 -27 17 -65 27 -50 -81 41 -69 -26 -29 -83 48 -81 51 58 -62 -63 -55 -63 39 32 -34
|
||||
98 -99 13 25 -10 43 -62 50 82 -90 -51 40 -71 82 27 -73 19 -62 37 10 -21 45 -94 -45 -41 -3 44 86 -2 27
|
||||
-80 -89 -57 87 -42 19 32 -49 37 -4 -30 54 46 -3 -92 89 60 37 -86 38 61 93 45 -45 -86 54 21 45 50 -53
|
||||
7 -68 71 -6 41 -72 67 45 15 46 85 59 82 19 65 75 -62 -35 47 -51 23 41 -54 27 -99 14 9 69 60 62
|
||||
99 -51 83 -47 -19 -57 -22 51 -52 52 92 80 69 1 -31 0 -19 -54 73 -5 3 82 -86 -84 -95 -83 -92 -52 -90 -79
|
||||
43 -75 62 99 66 -43 -38 -21 23 35 -63 -61 -46 5 3 -90 -28 55 87 89 -29 -46 23 -61 -5 10 -70 -63 50 -14
|
||||
39 38 10 66 -24 -45 55 -33 31 29 44 31 73 44 6 69 -21 -58 -3 93 -51 86 -16 -88 88 -30 75 78 -20 -12
|
||||
-11 11 -19 40 82 6 10 22 90 -78 -88 -49 72 69 -62 42 -23 22 -38 -98 0 -3 -43 20 9 18 -67 -7 22 21
|
||||
99 80 -55 74 43 -31 60 -26 -29 -6 75 60 92 -42 85 18 1 1 -74 -44 -12 72 -57 -98 99 62 45 -40 -39 -75
|
||||
50 30 -18 -29 -80 -59 -96 46 -99 -76 -13 -75 -93 -95 -45 62 -37 53 -96 57 -40 3 14 -45 -84 58 75 16 37 -6
|
||||
1 -47 87 -99 -22 -22 -20 71 -91 13 35 -80 75 65 -87 16 -37 99 -60 49 52 18 55 -11 18 24 -65 -80 8 -79
|
||||
-8 -87 86 -9 -64 -76 59 -52 -89 18 13 70 44 93 99 62 39 49 83 28 72 -71 -13 -71 -22 44 -87 73 -68 80
|
||||
41 -26 44 -63 -26 -83 -44 63 -51 -48 52 -8 55 73 -45 84 40 45 32 -34 -78 -46 -79 57 -40 11 34 -75 -20 91
|
||||
94 9 -35 -5 3 59 -63 2 -7 -72 -34 -70 78 99 -29 37 11 91 61 29 85 -15 59 79 47 41 19 -18 -92 47
|
||||
-59 -89 57 -72 -79 88 -85 18 -35 -96 -57 33 83 70 -55 -16 -21 72 -53 89 -44 -86 9 -44 -26 78 2 -93 -75 6
|
||||
55 73 89 80 -69 -93 -39 -88 62 49 91 -68 87 -26 40 16 -49 -53 -57 23 -97 39 -78 44 -15 1 60 -87 43 -42
|
||||
-2 -23 -74 -80 -59 52 -58 68 64 97 -86 -41 -88 35 49 3 -40 90 34 -2 3 13 -95 8 -1 6 75 92 19 -31
|
||||
57 76 65 3 37 -72 -43 57 64 -23 41 87 26 76 -18 -32 28 47 11 47 -33 -12 4 81 -92 -47 -81 43 -2 5
|
||||
68 74 66 -89 -95 -40 -78 -58 -54 -20 2 20 94 -35 58 -20 41 77 0 95 39 14 36 -40 -85 -60 -63 82 0 58
|
||||
-61 -99 61 10 -2 -31 -70 37 -77 -10 85 95 -28 70 -81 -78 -68 -33 -77 77 -6 42 -100 -68 -59 -86 -42 -74 35 -32
|
||||
64 -1 -1 -64 51 11 -65 47 -87 -8 5 58 22 -80 68 -25 24 59 -25 -75 95 -22 -73 27 86 -39 -98 -1 -17 -32
|
||||
94 -50 -53 -62 -53 46 50 38 -95 -77 40 -38 -23 -14 -68 -20 -47 23 -8 -12 -92 -69 -97 30 94 -45 47 -81 82 -60
|
||||
28 67 -48 4 74 27 -30 12 -32 35 91 -83 30 -55 -7 79 97 11 93 -45 -79 31 78 65 84 -23 -26 17 -61 43
|
||||
44 60 -88 72 31 98 55 -4 66 -14 10 -81 -40 66 -15 21 69 -98 34 3 75 18 98 -6 47 -39 31 -19 30 -51
|
||||
-6 18 -93 31 51 -20 -16 -33 -38 -19 71 4 -53 23 97 1 -28 -72 -44 -48 45 33 -76 86 64 49 -45 -34 -9 -76
|
||||
-19 8 28 -27 -51 -58 -36 63 -92 -95 70 41 -38 -49 -95 -100 43 97 -60 -5 -56 45 -13 -3 20 -10 -21 -85 -5 63
|
||||
-74 -74 -74 -39 -57 -12 51 11 -11 -22 -26 -54 71 24 -37 77 -90 77 75 86 -53 3 69 -99 -82 -59 30 81 -21 -86
|
||||
67 63 87 -15 60 -82 87 51 -39 -49 -16 74 51 17 6 47 98 89 -20 -98 97 -61 18 34 37 -36 37 -96 90 44
|
||||
53 -8 37 -76 -61 70 -77 -11 98 -80 12 -80 6 -89 8 -59 -69 -100 -52 -30 95 -58 61 29 52 -64 -51 10 16 -58
|
||||
54 -10 49 62 76 -25 80 36 13 5 59 -65 14 41 26 -78 23 -45 -51 -85 91 -43 -61 -37 94 27 -11 49 98 48
|
||||
53 -51 27 34 28 -53 18 17 31 -31 59 71 -34 25 54 -84 -34 -24 76 38 -36 15 -1 56 2 -12 0 26 -38 -62
|
||||
4 -94 -63 -21 -95 -42 -12 86 14 -86 -1 80 -48 62 -47 -52 3 91 -86 11 79 32 -24 -33 -54 19 -17 28 -33 -97
|
||||
-18 41 84 1 -83 48 -99 -64 26 -52 3 -64 68 -98 93 -79 -97 11 88 74 41 -31 -42 -35 -66 18 97 -30 19 -93
|
||||
-19 42 61 -91 -20 59 -11 -64 -60 85 -6 -71 33 -52 46 51 -86 -77 74 -4 74 -81 1 -39 -30 12 -12 20 66 60
|
||||
86 1 -67 -91 -92 -22 91 -90 -45 26 53 -6 99 46 -29 -40 -99 57 -45 -47 -3 -86 90 -78 -33 73 90 -51 -75 2
|
||||
88 -34 -2 30 -18 35 -23 90 99 -49 90 -79 94 -38 48 67 -35 -58 81 -24 18 -54 83 65 -58 -12 13 89 -59 57
|
||||
92 -99 94 -73 97 -78 -93 98 -78 95 -21 -17 -11 -92 69 -60 86 9 -36 -18 -33 -39 -65 74 -65 37 -49 87 -28 -81
|
||||
-95 2 -18 20 93 54 86 -63 -5 -89 17 -9 75 -66 -64 -82 -46 -48 82 5 -89 19 -32 -45 53 -47 21 -9 40 34
|
||||
86 87 55 -41 49 -10 -6 -7 -99 23 90 -50 -9 -81 77 65 29 -21 22 -82 19 48 -24 -72 75 -66 -69 -17 72 6
|
||||
13 37 96 31 -65 -54 -91 -27 84 52 -9 -28 85 96 14 63 -34 -29 -85 78 -75 -44 -30 -5 4 72 -45 6 13 71
|
||||
96 -69 67 59 69 46 80 42 81 30 89 -45 -10 -44 25 31 89 16 -36 86 31 92 1 5 -2 92 -11 77 20 40
|
||||
-48 98 -100 30 54 9 84 -88 5 48 93 56 -94 -89 81 33 44 -30 -95 -98 29 -33 13 -26 -59 -80 -68 -40 12 11
|
||||
82 -63 -30 -67 54 -68 50 -63 -91 -68 -45 -66 -58 16 -25 9 -50 -59 -55 4 -2 0 -63 67 30 -21 -8 55 21 -68
|
||||
9 -8 56 -6 84 81 -63 -35 81 56 -50 -54 96 -51 86 0 66 -4 -18 65 -26 -57 8 78 -54 17 18 86 21 68
|
||||
9 38 33 16 3 86 -57 28 -6 -44 -42 -2 3 -71 -86 23 34 -29 33 -30 67 63 -11 76 -65 92 30 -66 61 1
|
||||
-72 -85 -1 64 -79 -78 -1 15 -35 -32 80 33 -36 -82 24 -65 -23 29 38 -31 87 55 -18 -52 -77 -22 -11 54 62 -48
|
||||
65 -77 50 16 41 -94 -21 16 85 24 60 86 -78 -13 69 46 55 5 -27 -18 -6 -1 59 -62 -58 -99 -49 -84 89 18
|
||||
-21 -15 -55 60 78 98 67 94 58 -5 -36 42 36 73 13 72 -78 -68 41 -37 -33 -46 -80 40 13 -44 -71 -8 15 -77
|
||||
16 -93 -42 -10 14 57 -54 -3 -44 -21 30 -93 71 25 -60 -94 93 5 -94 -84 -72 1 -50 -34 23 -15 15 18 72 -29
|
||||
-22 -82 -30 -87 -88 -25 46 32 -30 -55 -79 -85 71 -89 -57 -88 21 53 -100 -64 -92 -97 56 -51 -17 -34 -31 6 -68 84
|
||||
-53 -51 90 -38 -61 57 -63 67 22 22 70 44 43 97 20 -62 -74 72 83 -32 35 -66 -29 5 -88 55 -94 94 -19 55
|
||||
57 51 29 -42 -21 63 -57 7 -48 -87 -60 -55 -77 -53 -1 -85 64 60 53 71 41 59 -61 -73 -12 86 90 10 -60 -38
|
||||
2 -9 14 67 -2 70 11 -78 26 -55 -86 -25 99 66 63 64 46 59 66 -37 -78 -70 63 1 -20 2 46 50 34 19
|
||||
-87 -40 75 -11 -88 -80 -95 -20 -92 -28 83 24 88 -39 83 -36 -61 56 99 -73 -59 -85 -49 -10 91 12 -79 -18 -15 6
|
||||
35 -74 -4 -15 40 -87 81 -22 -12 -46 14 9 98 -35 -2 -12 57 -74 -52 71 70 -70 -61 -47 89 44 33 -100 54 42
|
||||
-4 -34 80 -12 -15 -9 -8 -29 89 -55 -33 89 16 -33 -73 -82 98 27 88 59 48 20 -67 -21 -86 11 -50 46 64 -8
|
|
@ -0,0 +1,100 @@
|
|||
52 34 59 34 64 20 89 69 26 93 95 32 17 93 77 49 51 60 51 27 60 10 61 2 16 30 41 68 65 0
|
||||
43 74 11 37 32 61 72 29 47 21 7 47 68 58 22 33 29 37 14 45 71 1 67 79 69 9 6 6 95 78
|
||||
86 20 68 67 43 5 77 70 96 37 79 71 35 30 22 4 56 28 33 50 97 17 85 52 21 5 57 19 35 97
|
||||
15 21 99 4 54 39 15 29 68 21 50 76 64 51 79 0 24 5 65 95 90 51 99 82 9 80 61 32 2 38
|
||||
46 97 53 96 51 84 18 42 30 52 82 77 72 59 1 67 72 16 14 63 70 94 20 27 38 70 86 95 41 75
|
||||
2 35 45 63 92 76 81 60 62 72 90 46 47 33 1 30 54 22 50 85 63 61 22 79 45 53 45 33 8 28
|
||||
43 41 14 79 2 77 95 16 74 19 17 78 47 12 68 55 3 2 77 10 35 86 52 33 47 26 98 42 48 86
|
||||
18 32 85 4 91 10 69 68 15 42 58 77 88 64 91 43 56 30 92 11 52 23 43 92 65 50 68 8 80 81
|
||||
20 57 38 44 62 10 80 25 32 11 70 32 13 50 41 55 44 0 28 83 5 1 34 94 55 52 56 24 76 21
|
||||
36 43 59 28 10 59 4 41 64 98 54 66 44 3 37 41 67 10 85 23 58 35 58 34 35 79 46 18 1 51
|
||||
72 63 85 51 23 91 3 56 35 72 38 26 91 0 68 98 27 10 12 71 30 1 14 47 47 88 17 68 78 46
|
||||
53 47 1 89 95 53 11 45 46 6 91 20 57 35 58 79 60 3 21 45 4 18 59 96 36 12 13 83 52 46
|
||||
33 91 82 24 97 28 50 43 65 22 14 44 32 57 33 10 34 77 58 6 27 90 26 77 62 81 87 96 0 32
|
||||
96 44 59 3 47 18 0 91 83 68 48 26 67 82 39 18 88 47 80 0 57 40 30 7 57 74 49 37 57 65
|
||||
18 44 0 46 47 30 65 79 53 8 26 42 80 76 30 61 82 93 78 25 89 49 55 15 86 63 35 74 41 11
|
||||
18 14 40 90 91 79 80 36 33 72 25 56 73 28 65 27 62 17 60 84 23 70 32 26 77 97 47 94 72 1
|
||||
82 36 68 10 83 83 40 42 51 55 82 6 37 69 93 82 64 13 54 30 45 36 87 59 1 80 39 93 11 61
|
||||
78 34 53 39 64 52 52 22 33 69 71 82 57 37 78 52 62 31 87 68 70 5 85 94 41 75 38 45 84 22
|
||||
36 23 51 15 61 76 88 85 36 96 21 60 34 61 72 60 69 81 5 17 16 82 30 61 39 96 40 70 42 71
|
||||
45 30 60 50 78 90 36 40 11 85 42 14 61 3 66 53 68 14 41 30 97 74 79 91 64 8 1 53 52 33
|
||||
55 24 35 4 49 51 44 70 93 78 25 65 1 29 96 12 93 94 13 65 4 47 84 10 90 12 36 48 21 36
|
||||
17 74 61 54 21 83 35 97 47 90 57 11 16 39 95 78 23 40 23 55 17 51 20 73 98 93 50 32 58 4
|
||||
84 76 78 33 50 29 11 20 5 93 63 22 91 92 44 85 62 25 63 92 36 26 57 33 8 74 69 64 78 91
|
||||
58 34 91 71 37 84 28 90 28 37 97 7 26 44 59 18 58 64 31 83 16 17 50 36 65 81 19 63 66 64
|
||||
20 71 1 35 87 5 47 27 6 95 86 75 74 9 94 93 26 5 61 3 97 88 0 57 21 64 46 24 86 12
|
||||
23 53 31 39 37 77 29 51 85 10 41 91 67 82 50 91 53 72 75 81 50 63 52 92 83 49 92 50 26 9
|
||||
38 43 13 87 11 45 28 16 27 61 70 52 77 9 57 42 73 22 32 95 23 91 93 63 16 44 26 9 93 83
|
||||
77 68 21 96 44 45 9 2 14 2 67 90 55 82 67 21 18 64 31 16 2 27 86 42 34 72 22 98 91 33
|
||||
89 66 87 76 0 32 81 39 55 76 23 56 51 53 75 79 30 86 1 66 64 14 46 84 92 19 95 47 77 97
|
||||
88 79 61 26 66 92 54 22 15 25 26 0 76 27 17 59 48 4 42 61 65 91 0 62 55 79 29 88 10 11
|
||||
24 89 91 39 56 36 16 86 41 31 14 35 7 71 77 74 33 11 49 7 96 83 31 63 90 49 96 22 58 86
|
||||
45 7 93 44 50 54 83 80 3 36 11 38 14 17 10 84 96 94 26 34 26 75 72 0 41 89 96 47 39 88
|
||||
0 95 2 22 68 38 0 3 51 6 13 10 14 49 75 69 25 39 63 67 12 80 37 77 10 90 60 35 84 37
|
||||
98 56 99 75 49 66 3 33 65 86 1 79 91 23 69 98 91 73 95 45 64 26 99 75 49 77 71 55 42 18
|
||||
80 39 26 94 85 42 91 27 14 57 36 34 10 44 38 77 23 39 54 25 32 5 17 9 66 3 67 94 20 11
|
||||
88 80 30 77 72 67 16 75 84 87 60 89 21 94 24 11 63 8 79 89 37 18 6 82 76 70 81 95 67 95
|
||||
92 36 55 55 43 18 76 94 30 74 95 38 45 95 54 87 22 57 4 65 15 90 90 38 73 24 67 24 36 25
|
||||
98 30 34 68 11 48 42 38 80 23 12 91 77 22 65 2 88 31 70 12 46 63 17 63 27 76 21 71 70 7
|
||||
76 29 56 12 41 66 22 96 8 6 7 13 27 10 77 90 2 76 30 24 81 88 19 16 93 13 30 24 98 96
|
||||
45 94 89 41 52 14 71 88 80 74 7 85 44 69 65 88 4 15 84 97 86 5 53 15 39 34 9 10 45 20
|
||||
95 47 45 96 71 10 36 10 90 49 7 68 14 46 97 89 82 58 69 34 93 77 90 9 27 91 29 27 22 17
|
||||
80 6 29 26 34 59 10 55 32 53 18 72 39 40 29 35 52 64 2 64 38 83 16 46 53 20 19 8 10 67
|
||||
47 44 79 32 58 82 26 69 0 26 4 73 95 98 61 96 20 38 3 92 6 5 25 24 42 49 15 92 80 16
|
||||
74 37 86 84 47 15 56 36 43 59 72 72 74 73 49 54 26 5 40 80 78 48 4 65 31 70 14 91 88 72
|
||||
91 45 73 62 83 40 49 3 27 79 80 90 3 3 58 44 7 66 77 42 37 25 20 91 47 63 71 7 72 22
|
||||
51 3 36 90 45 84 18 55 75 78 42 62 86 63 65 67 46 75 1 79 2 85 85 60 36 92 34 89 66 99
|
||||
36 99 0 63 89 65 54 58 52 28 98 27 67 1 45 71 35 52 55 55 44 23 46 89 83 37 8 2 92 75
|
||||
51 13 71 2 9 95 23 60 24 98 86 43 32 16 75 70 92 78 26 84 29 14 35 55 61 89 73 59 76 44
|
||||
59 57 28 92 33 50 70 94 89 67 70 38 53 16 35 70 35 92 39 78 88 80 71 1 93 21 87 64 49 84
|
||||
29 6 17 45 38 65 41 48 81 69 34 12 2 14 41 71 16 92 69 27 61 74 58 20 75 19 39 66 57 82
|
||||
12 8 14 85 97 31 58 31 20 76 6 42 29 95 60 94 15 84 86 69 73 52 73 57 12 66 89 65 60 84
|
||||
20 74 96 34 83 41 8 37 22 36 30 25 20 8 58 73 9 75 76 73 84 38 16 24 95 95 68 66 43 19
|
||||
33 15 25 80 48 69 63 39 16 45 6 77 14 46 38 15 64 85 49 5 59 28 9 4 23 68 59 26 1 75
|
||||
35 45 3 6 34 59 55 51 81 59 59 93 18 41 8 44 88 7 86 4 88 90 24 54 73 62 89 13 44 92
|
||||
72 60 68 83 39 32 30 15 98 92 69 94 51 48 9 0 4 1 30 92 40 1 61 82 66 4 39 10 93 87
|
||||
12 20 34 72 33 31 67 71 67 47 98 76 53 29 17 17 13 31 43 76 25 37 8 39 9 5 96 41 87 66
|
||||
96 30 2 57 57 10 14 17 86 76 35 94 42 54 18 24 19 34 12 42 18 11 83 65 86 38 45 17 60 70
|
||||
19 62 71 99 35 60 96 30 44 80 78 15 14 5 32 43 10 26 81 72 41 98 30 87 75 8 53 33 25 95
|
||||
22 0 38 57 88 7 47 83 49 41 52 1 14 93 41 3 18 42 15 57 28 74 97 2 18 48 64 25 77 69
|
||||
36 95 65 81 44 41 6 74 62 16 72 81 15 72 31 5 22 17 19 6 7 15 82 10 31 93 11 45 41 11
|
||||
22 76 14 62 34 65 82 5 57 51 51 5 1 6 17 43 28 31 90 99 48 14 96 49 95 40 87 85 40 51
|
||||
95 13 99 46 52 80 4 18 95 94 0 46 10 80 3 34 60 15 86 10 28 59 6 35 14 93 18 8 3 65
|
||||
57 37 6 31 45 85 42 34 47 92 48 40 7 17 5 74 67 62 0 74 58 21 23 3 5 24 50 54 99 19
|
||||
24 14 10 4 36 33 88 51 40 66 40 56 65 23 43 13 82 62 27 88 89 91 36 37 19 11 50 39 96 68
|
||||
82 7 39 80 52 90 57 17 61 15 51 71 82 15 21 44 4 46 75 50 78 18 63 75 98 45 6 16 57 25
|
||||
0 26 56 74 62 84 71 42 25 86 68 10 73 0 71 6 15 99 1 51 45 42 5 49 3 35 84 29 15 36
|
||||
60 78 76 3 95 73 36 57 35 44 50 42 85 57 18 69 37 42 75 79 15 12 74 72 51 36 79 3 58 71
|
||||
69 24 16 96 17 25 21 94 71 78 74 39 7 96 3 12 13 16 7 99 65 72 12 28 75 44 55 8 75 67
|
||||
3 13 92 9 92 83 69 91 65 92 29 63 46 1 4 62 29 85 47 93 81 3 15 23 63 50 17 9 13 13
|
||||
9 18 46 53 0 86 10 41 87 89 24 25 70 73 8 23 27 76 66 46 58 39 28 1 99 64 59 13 7 68
|
||||
72 57 90 50 47 57 34 27 94 39 23 31 74 77 45 74 18 49 96 8 95 50 20 81 73 55 72 2 32 15
|
||||
87 77 74 5 99 86 5 65 97 39 17 74 48 87 20 66 28 2 18 58 49 22 79 23 36 30 64 20 71 32
|
||||
35 43 66 96 63 77 18 90 47 86 94 19 88 79 23 12 38 4 56 42 36 2 77 1 3 17 64 52 31 24
|
||||
80 2 4 39 61 60 74 83 28 28 61 10 71 82 44 29 55 30 1 58 81 79 34 41 85 82 84 55 22 12
|
||||
76 77 58 92 90 0 54 28 77 68 58 12 1 81 37 28 19 60 71 59 25 83 8 49 52 11 28 65 59 70
|
||||
14 1 92 90 5 48 28 78 1 42 54 43 60 83 72 19 28 33 12 52 18 15 56 95 39 33 37 70 53 23
|
||||
53 76 26 31 18 81 83 79 25 1 82 43 50 24 63 49 5 23 66 37 80 41 63 77 2 28 15 21 32 93
|
||||
80 41 81 7 37 95 19 42 57 30 12 25 29 34 41 45 87 8 20 95 63 16 99 55 16 61 16 36 81 25
|
||||
32 30 2 81 23 25 88 30 37 76 52 77 79 58 21 58 10 0 13 32 72 80 3 75 75 25 21 9 79 18
|
||||
26 13 36 63 43 2 50 41 65 18 88 44 82 75 73 24 1 30 54 68 15 18 22 50 41 99 27 96 51 53
|
||||
22 4 76 11 85 88 28 75 1 2 92 66 63 3 58 43 53 5 1 24 99 90 87 87 41 1 85 37 98 92
|
||||
16 39 13 88 60 55 35 11 34 23 23 85 79 41 79 87 65 78 47 83 88 78 35 84 30 61 37 58 25 55
|
||||
27 33 15 76 82 79 73 92 93 78 18 38 22 96 63 92 41 9 50 96 14 55 8 60 15 61 97 56 43 22
|
||||
42 34 94 11 35 70 50 49 36 34 59 14 87 84 88 83 4 69 29 99 35 24 2 18 97 97 74 88 91 49
|
||||
33 25 71 12 60 2 48 22 81 33 27 95 54 25 53 14 20 43 26 96 98 37 64 27 72 33 78 45 22 61
|
||||
61 21 91 38 92 47 26 90 78 96 58 41 21 72 81 61 55 9 55 60 28 25 25 74 73 81 64 16 49 39
|
||||
90 89 12 93 91 23 82 36 63 58 73 81 49 32 60 39 4 84 73 16 18 26 58 85 46 28 82 91 72 7
|
||||
79 41 28 76 33 70 47 6 18 64 40 54 45 61 28 63 87 83 38 9 65 68 62 45 80 63 89 29 20 40
|
||||
20 59 58 23 61 79 35 19 78 2 26 48 90 34 69 31 31 42 92 33 18 74 28 47 45 52 36 89 19 40
|
||||
58 13 72 24 31 26 73 72 84 29 85 99 20 32 54 92 8 80 86 58 23 80 59 21 76 75 90 76 92 57
|
||||
74 53 80 51 8 88 84 63 82 99 97 77 38 9 51 61 37 20 68 47 65 21 53 82 85 96 62 65 35 4
|
||||
71 82 14 18 88 79 38 76 66 27 10 10 62 54 80 21 6 57 83 33 52 10 97 37 6 38 12 51 0 84
|
||||
95 30 75 92 84 30 55 57 32 44 53 24 77 81 34 84 69 85 91 33 50 72 62 79 62 12 59 75 99 81
|
||||
38 42 47 1 11 34 27 77 70 85 89 84 79 15 14 54 78 93 72 68 63 39 98 72 55 32 93 0 13 21
|
||||
3 15 10 15 3 31 84 89 53 5 60 41 66 77 45 12 68 68 50 68 99 64 46 54 30 56 2 90 99 78
|
||||
66 10 27 89 42 16 9 98 16 2 68 51 0 22 73 60 69 96 37 69 30 36 20 21 51 26 65 13 74 86
|
||||
94 58 34 97 77 88 90 75 47 30 6 36 89 66 48 9 20 6 52 45 0 37 99 46 11 53 53 72 94 40
|
||||
5 71 50 96 89 71 80 43 27 95 49 9 74 28 62 65 64 97 2 55 58 11 69 0 31 22 73 20 66 11
|
||||
63 39 84 62 64 5 56 92 26 86 19 20 56 85 42 48 56 51 54 29 26 95 72 38 70 61 16 54 57 19
|
||||
76 97 40 99 73 68 98 92 97 62 73 1 29 72 18 70 90 4 98 95 70 36 65 45 86 36 88 38 64 54
|
|
@ -0,0 +1,27 @@
|
|||
# The facets of a self-dual 4-dim regular polytope
|
||||
# with 24 octahedron facets. Taken from cddlib.
|
||||
# Format b + Ax >= 0
|
||||
1 1 1 1 1
|
||||
1 1 1 1 -1
|
||||
1 1 1 -1 1
|
||||
1 1 1 -1 -1
|
||||
1 1 -1 1 1
|
||||
1 1 -1 1 -1
|
||||
1 1 -1 -1 1
|
||||
1 1 -1 -1 -1
|
||||
1 -1 1 1 1
|
||||
1 -1 1 1 -1
|
||||
1 -1 1 -1 1
|
||||
1 -1 1 -1 -1
|
||||
1 -1 -1 1 1
|
||||
1 -1 -1 1 -1
|
||||
1 -1 -1 -1 1
|
||||
1 -1 -1 -1 -1
|
||||
1 2 0 0 0
|
||||
1 0 2 0 0
|
||||
1 0 0 2 0
|
||||
1 0 0 0 2
|
||||
1 -2 0 0 0
|
||||
1 0 -2 0 0
|
||||
1 0 0 -2 0
|
||||
1 0 0 0 -2
|
|
@ -0,0 +1,54 @@
|
|||
import pytest
|
||||
from numpy.testing import assert_, assert_array_equal, suppress_warnings
|
||||
try:
|
||||
import matplotlib
|
||||
matplotlib.rcParams['backend'] = 'Agg'
|
||||
import matplotlib.pyplot as plt
|
||||
has_matplotlib = True
|
||||
except Exception:
|
||||
has_matplotlib = False
|
||||
|
||||
from scipy.spatial import \
|
||||
delaunay_plot_2d, voronoi_plot_2d, convex_hull_plot_2d, \
|
||||
Delaunay, Voronoi, ConvexHull
|
||||
|
||||
|
||||
@pytest.mark.skipif(not has_matplotlib, reason="Matplotlib not available")
|
||||
class TestPlotting:
|
||||
points = [(0,0), (0,1), (1,0), (1,1)]
|
||||
|
||||
def test_delaunay(self):
|
||||
# Smoke test
|
||||
fig = plt.figure()
|
||||
obj = Delaunay(self.points)
|
||||
s_before = obj.simplices.copy()
|
||||
with suppress_warnings() as sup:
|
||||
# filter can be removed when matplotlib 1.x is dropped
|
||||
sup.filter(message="The ishold function was deprecated in version")
|
||||
r = delaunay_plot_2d(obj, ax=fig.gca())
|
||||
assert_array_equal(obj.simplices, s_before) # shouldn't modify
|
||||
assert_(r is fig)
|
||||
delaunay_plot_2d(obj, ax=fig.gca())
|
||||
|
||||
def test_voronoi(self):
|
||||
# Smoke test
|
||||
fig = plt.figure()
|
||||
obj = Voronoi(self.points)
|
||||
with suppress_warnings() as sup:
|
||||
# filter can be removed when matplotlib 1.x is dropped
|
||||
sup.filter(message="The ishold function was deprecated in version")
|
||||
r = voronoi_plot_2d(obj, ax=fig.gca())
|
||||
assert_(r is fig)
|
||||
voronoi_plot_2d(obj)
|
||||
voronoi_plot_2d(obj, show_vertices=False)
|
||||
|
||||
def test_convex_hull(self):
|
||||
# Smoke test
|
||||
fig = plt.figure()
|
||||
tri = ConvexHull(self.points)
|
||||
with suppress_warnings() as sup:
|
||||
# filter can be removed when matplotlib 1.x is dropped
|
||||
sup.filter(message="The ishold function was deprecated in version")
|
||||
r = convex_hull_plot_2d(tri, ax=fig.gca())
|
||||
assert_(r is fig)
|
||||
convex_hull_plot_2d(tri)
|
116
venv/Lib/site-packages/scipy/spatial/tests/test__procrustes.py
Normal file
116
venv/Lib/site-packages/scipy/spatial/tests/test__procrustes.py
Normal file
|
@ -0,0 +1,116 @@
|
|||
import numpy as np
|
||||
from numpy.testing import assert_allclose, assert_equal, assert_almost_equal
|
||||
from pytest import raises as assert_raises
|
||||
|
||||
from scipy.spatial import procrustes
|
||||
|
||||
|
||||
class TestProcrustes(object):
|
||||
def setup_method(self):
|
||||
"""creates inputs"""
|
||||
# an L
|
||||
self.data1 = np.array([[1, 3], [1, 2], [1, 1], [2, 1]], 'd')
|
||||
|
||||
# a larger, shifted, mirrored L
|
||||
self.data2 = np.array([[4, -2], [4, -4], [4, -6], [2, -6]], 'd')
|
||||
|
||||
# an L shifted up 1, right 1, and with point 4 shifted an extra .5
|
||||
# to the right
|
||||
# pointwise distance disparity with data1: 3*(2) + (1 + 1.5^2)
|
||||
self.data3 = np.array([[2, 4], [2, 3], [2, 2], [3, 2.5]], 'd')
|
||||
|
||||
# data4, data5 are standardized (trace(A*A') = 1).
|
||||
# procrustes should return an identical copy if they are used
|
||||
# as the first matrix argument.
|
||||
shiftangle = np.pi / 8
|
||||
self.data4 = np.array([[1, 0], [0, 1], [-1, 0],
|
||||
[0, -1]], 'd') / np.sqrt(4)
|
||||
self.data5 = np.array([[np.cos(shiftangle), np.sin(shiftangle)],
|
||||
[np.cos(np.pi / 2 - shiftangle),
|
||||
np.sin(np.pi / 2 - shiftangle)],
|
||||
[-np.cos(shiftangle),
|
||||
-np.sin(shiftangle)],
|
||||
[-np.cos(np.pi / 2 - shiftangle),
|
||||
-np.sin(np.pi / 2 - shiftangle)]],
|
||||
'd') / np.sqrt(4)
|
||||
|
||||
def test_procrustes(self):
|
||||
# tests procrustes' ability to match two matrices.
|
||||
#
|
||||
# the second matrix is a rotated, shifted, scaled, and mirrored version
|
||||
# of the first, in two dimensions only
|
||||
#
|
||||
# can shift, mirror, and scale an 'L'?
|
||||
a, b, disparity = procrustes(self.data1, self.data2)
|
||||
assert_allclose(b, a)
|
||||
assert_almost_equal(disparity, 0.)
|
||||
|
||||
# if first mtx is standardized, leaves first mtx unchanged?
|
||||
m4, m5, disp45 = procrustes(self.data4, self.data5)
|
||||
assert_equal(m4, self.data4)
|
||||
|
||||
# at worst, data3 is an 'L' with one point off by .5
|
||||
m1, m3, disp13 = procrustes(self.data1, self.data3)
|
||||
#assert_(disp13 < 0.5 ** 2)
|
||||
|
||||
def test_procrustes2(self):
|
||||
# procrustes disparity should not depend on order of matrices
|
||||
m1, m3, disp13 = procrustes(self.data1, self.data3)
|
||||
m3_2, m1_2, disp31 = procrustes(self.data3, self.data1)
|
||||
assert_almost_equal(disp13, disp31)
|
||||
|
||||
# try with 3d, 8 pts per
|
||||
rand1 = np.array([[2.61955202, 0.30522265, 0.55515826],
|
||||
[0.41124708, -0.03966978, -0.31854548],
|
||||
[0.91910318, 1.39451809, -0.15295084],
|
||||
[2.00452023, 0.50150048, 0.29485268],
|
||||
[0.09453595, 0.67528885, 0.03283872],
|
||||
[0.07015232, 2.18892599, -1.67266852],
|
||||
[0.65029688, 1.60551637, 0.80013549],
|
||||
[-0.6607528, 0.53644208, 0.17033891]])
|
||||
|
||||
rand3 = np.array([[0.0809969, 0.09731461, -0.173442],
|
||||
[-1.84888465, -0.92589646, -1.29335743],
|
||||
[0.67031855, -1.35957463, 0.41938621],
|
||||
[0.73967209, -0.20230757, 0.52418027],
|
||||
[0.17752796, 0.09065607, 0.29827466],
|
||||
[0.47999368, -0.88455717, -0.57547934],
|
||||
[-0.11486344, -0.12608506, -0.3395779],
|
||||
[-0.86106154, -0.28687488, 0.9644429]])
|
||||
res1, res3, disp13 = procrustes(rand1, rand3)
|
||||
res3_2, res1_2, disp31 = procrustes(rand3, rand1)
|
||||
assert_almost_equal(disp13, disp31)
|
||||
|
||||
def test_procrustes_shape_mismatch(self):
|
||||
assert_raises(ValueError, procrustes,
|
||||
np.array([[1, 2], [3, 4]]),
|
||||
np.array([[5, 6, 7], [8, 9, 10]]))
|
||||
|
||||
def test_procrustes_empty_rows_or_cols(self):
|
||||
empty = np.array([[]])
|
||||
assert_raises(ValueError, procrustes, empty, empty)
|
||||
|
||||
def test_procrustes_no_variation(self):
|
||||
assert_raises(ValueError, procrustes,
|
||||
np.array([[42, 42], [42, 42]]),
|
||||
np.array([[45, 45], [45, 45]]))
|
||||
|
||||
def test_procrustes_bad_number_of_dimensions(self):
|
||||
# fewer dimensions in one dataset
|
||||
assert_raises(ValueError, procrustes,
|
||||
np.array([1, 1, 2, 3, 5, 8]),
|
||||
np.array([[1, 2], [3, 4]]))
|
||||
|
||||
# fewer dimensions in both datasets
|
||||
assert_raises(ValueError, procrustes,
|
||||
np.array([1, 1, 2, 3, 5, 8]),
|
||||
np.array([1, 1, 2, 3, 5, 8]))
|
||||
|
||||
# zero dimensions
|
||||
assert_raises(ValueError, procrustes, np.array(7), np.array(11))
|
||||
|
||||
# extra dimensions
|
||||
assert_raises(ValueError, procrustes,
|
||||
np.array([[[11], [7]]]),
|
||||
np.array([[[5, 13]]]))
|
||||
|
2111
venv/Lib/site-packages/scipy/spatial/tests/test_distance.py
Normal file
2111
venv/Lib/site-packages/scipy/spatial/tests/test_distance.py
Normal file
File diff suppressed because it is too large
Load diff
150
venv/Lib/site-packages/scipy/spatial/tests/test_hausdorff.py
Normal file
150
venv/Lib/site-packages/scipy/spatial/tests/test_hausdorff.py
Normal file
|
@ -0,0 +1,150 @@
|
|||
import numpy as np
|
||||
from numpy.testing import (assert_almost_equal,
|
||||
assert_array_equal,
|
||||
assert_equal,
|
||||
assert_)
|
||||
import pytest
|
||||
from scipy.spatial.distance import directed_hausdorff
|
||||
from scipy.spatial import distance
|
||||
from scipy._lib._util import check_random_state
|
||||
|
||||
class TestHausdorff(object):
|
||||
# Test various properties of the directed Hausdorff code.
|
||||
|
||||
def setup_method(self):
|
||||
np.random.seed(1234)
|
||||
random_angles = np.random.random(100) * np.pi * 2
|
||||
random_columns = np.column_stack(
|
||||
(random_angles, random_angles, np.zeros(100)))
|
||||
random_columns[..., 0] = np.cos(random_columns[..., 0])
|
||||
random_columns[..., 1] = np.sin(random_columns[..., 1])
|
||||
random_columns_2 = np.column_stack(
|
||||
(random_angles, random_angles, np.zeros(100)))
|
||||
random_columns_2[1:, 0] = np.cos(random_columns_2[1:, 0]) * 2.0
|
||||
random_columns_2[1:, 1] = np.sin(random_columns_2[1:, 1]) * 2.0
|
||||
# move one point farther out so we don't have two perfect circles
|
||||
random_columns_2[0, 0] = np.cos(random_columns_2[0, 0]) * 3.3
|
||||
random_columns_2[0, 1] = np.sin(random_columns_2[0, 1]) * 3.3
|
||||
self.path_1 = random_columns
|
||||
self.path_2 = random_columns_2
|
||||
self.path_1_4d = np.insert(self.path_1, 3, 5, axis=1)
|
||||
self.path_2_4d = np.insert(self.path_2, 3, 27, axis=1)
|
||||
|
||||
def test_symmetry(self):
|
||||
# Ensure that the directed (asymmetric) Hausdorff distance is
|
||||
# actually asymmetric
|
||||
|
||||
forward = directed_hausdorff(self.path_1, self.path_2)[0]
|
||||
reverse = directed_hausdorff(self.path_2, self.path_1)[0]
|
||||
assert_(forward != reverse)
|
||||
|
||||
def test_brute_force_comparison_forward(self):
|
||||
# Ensure that the algorithm for directed_hausdorff gives the
|
||||
# same result as the simple / brute force approach in the
|
||||
# forward direction.
|
||||
actual = directed_hausdorff(self.path_1, self.path_2)[0]
|
||||
# brute force over rows:
|
||||
expected = max(np.amin(distance.cdist(self.path_1, self.path_2),
|
||||
axis=1))
|
||||
assert_almost_equal(actual, expected, decimal=9)
|
||||
|
||||
def test_brute_force_comparison_reverse(self):
|
||||
# Ensure that the algorithm for directed_hausdorff gives the
|
||||
# same result as the simple / brute force approach in the
|
||||
# reverse direction.
|
||||
actual = directed_hausdorff(self.path_2, self.path_1)[0]
|
||||
# brute force over columns:
|
||||
expected = max(np.amin(distance.cdist(self.path_1, self.path_2),
|
||||
axis=0))
|
||||
assert_almost_equal(actual, expected, decimal=9)
|
||||
|
||||
def test_degenerate_case(self):
|
||||
# The directed Hausdorff distance must be zero if both input
|
||||
# data arrays match.
|
||||
actual = directed_hausdorff(self.path_1, self.path_1)[0]
|
||||
assert_almost_equal(actual, 0.0, decimal=9)
|
||||
|
||||
def test_2d_data_forward(self):
|
||||
# Ensure that 2D data is handled properly for a simple case
|
||||
# relative to brute force approach.
|
||||
actual = directed_hausdorff(self.path_1[..., :2],
|
||||
self.path_2[..., :2])[0]
|
||||
expected = max(np.amin(distance.cdist(self.path_1[..., :2],
|
||||
self.path_2[..., :2]),
|
||||
axis=1))
|
||||
assert_almost_equal(actual, expected, decimal=9)
|
||||
|
||||
def test_4d_data_reverse(self):
|
||||
# Ensure that 4D data is handled properly for a simple case
|
||||
# relative to brute force approach.
|
||||
actual = directed_hausdorff(self.path_2_4d, self.path_1_4d)[0]
|
||||
# brute force over columns:
|
||||
expected = max(np.amin(distance.cdist(self.path_1_4d, self.path_2_4d),
|
||||
axis=0))
|
||||
assert_almost_equal(actual, expected, decimal=9)
|
||||
|
||||
def test_indices(self):
|
||||
# Ensure that correct point indices are returned -- they should
|
||||
# correspond to the Hausdorff pair
|
||||
path_simple_1 = np.array([[-1,-12],[0,0], [1,1], [3,7], [1,2]])
|
||||
path_simple_2 = np.array([[0,0], [1,1], [4,100], [10,9]])
|
||||
actual = directed_hausdorff(path_simple_2, path_simple_1)[1:]
|
||||
expected = (2, 3)
|
||||
assert_array_equal(actual, expected)
|
||||
|
||||
def test_random_state(self):
|
||||
# ensure that the global random state is not modified because
|
||||
# the directed Hausdorff algorithm uses randomization
|
||||
rs = check_random_state(None)
|
||||
old_global_state = rs.get_state()
|
||||
directed_hausdorff(self.path_1, self.path_2)
|
||||
rs2 = check_random_state(None)
|
||||
new_global_state = rs2.get_state()
|
||||
assert_equal(new_global_state, old_global_state)
|
||||
|
||||
def test_random_state_None_int(self):
|
||||
# check that seed values of None or int do not alter global
|
||||
# random state
|
||||
for seed in [None, 27870671]:
|
||||
rs = check_random_state(None)
|
||||
old_global_state = rs.get_state()
|
||||
directed_hausdorff(self.path_1, self.path_2, seed)
|
||||
rs2 = check_random_state(None)
|
||||
new_global_state = rs2.get_state()
|
||||
assert_equal(new_global_state, old_global_state)
|
||||
|
||||
def test_invalid_dimensions(self):
|
||||
# Ensure that a ValueError is raised when the number of columns
|
||||
# is not the same
|
||||
np.random.seed(1234)
|
||||
A = np.random.rand(3, 2)
|
||||
B = np.random.rand(4, 5)
|
||||
with pytest.raises(ValueError):
|
||||
directed_hausdorff(A, B)
|
||||
|
||||
@pytest.mark.parametrize("A, B, seed, expected", [
|
||||
# the two cases from gh-11332
|
||||
([(0,0)],
|
||||
[(0,1), (0,0)],
|
||||
0,
|
||||
(0.0, 0, 1)),
|
||||
([(0,0)],
|
||||
[(0,1), (0,0)],
|
||||
1,
|
||||
(0.0, 0, 1)),
|
||||
# slightly more complex case
|
||||
([(-5, 3), (0,0)],
|
||||
[(0,1), (0,0), (-5, 3)],
|
||||
77098,
|
||||
# the maximum minimum distance will
|
||||
# be the last one found, but a unique
|
||||
# solution is not guaranteed more broadly
|
||||
(0.0, 1, 1)),
|
||||
])
|
||||
def test_subsets(self, A, B, seed, expected):
|
||||
# verify fix for gh-11332
|
||||
actual = directed_hausdorff(u=A, v=B, seed=seed)
|
||||
# check distance
|
||||
assert_almost_equal(actual[0], expected[0], decimal=9)
|
||||
# check indices
|
||||
assert actual[1:] == expected[1:]
|
1487
venv/Lib/site-packages/scipy/spatial/tests/test_kdtree.py
Normal file
1487
venv/Lib/site-packages/scipy/spatial/tests/test_kdtree.py
Normal file
File diff suppressed because it is too large
Load diff
1135
venv/Lib/site-packages/scipy/spatial/tests/test_qhull.py
Normal file
1135
venv/Lib/site-packages/scipy/spatial/tests/test_qhull.py
Normal file
File diff suppressed because it is too large
Load diff
383
venv/Lib/site-packages/scipy/spatial/tests/test_slerp.py
Normal file
383
venv/Lib/site-packages/scipy/spatial/tests/test_slerp.py
Normal file
|
@ -0,0 +1,383 @@
|
|||
from __future__ import division, absolute_import, print_function
|
||||
|
||||
import numpy as np
|
||||
from numpy.testing import assert_allclose
|
||||
|
||||
import pytest
|
||||
from scipy.spatial import geometric_slerp
|
||||
|
||||
|
||||
def _generate_spherical_points(ndim=3, n_pts=2):
|
||||
# generate uniform points on sphere
|
||||
# see: https://stackoverflow.com/a/23785326
|
||||
# tentatively extended to arbitrary dims
|
||||
# for 0-sphere it will always produce antipodes
|
||||
np.random.seed(123)
|
||||
points = np.random.normal(size=(n_pts, ndim))
|
||||
points /= np.linalg.norm(points, axis=1)[:, np.newaxis]
|
||||
return points[0], points[1]
|
||||
|
||||
|
||||
class TestGeometricSlerp(object):
|
||||
# Test various properties of the geometric slerp code
|
||||
|
||||
@pytest.mark.parametrize("n_dims", [2, 3, 5, 7, 9])
|
||||
@pytest.mark.parametrize("n_pts", [0, 3, 17])
|
||||
def test_shape_property(self, n_dims, n_pts):
|
||||
# geometric_slerp output shape should match
|
||||
# input dimensionality & requested number
|
||||
# of interpolation points
|
||||
start, end = _generate_spherical_points(n_dims, 2)
|
||||
|
||||
actual = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, n_pts))
|
||||
|
||||
assert actual.shape == (n_pts, n_dims)
|
||||
|
||||
@pytest.mark.parametrize("n_dims", [2, 3, 5, 7, 9])
|
||||
@pytest.mark.parametrize("n_pts", [3, 17])
|
||||
def test_include_ends(self, n_dims, n_pts):
|
||||
# geometric_slerp should return a data structure
|
||||
# that includes the start and end coordinates
|
||||
# when t includes 0 and 1 ends
|
||||
# this is convenient for plotting surfaces represented
|
||||
# by interpolations for example
|
||||
|
||||
# the generator doesn't work so well for the unit
|
||||
# sphere (it always produces antipodes), so use
|
||||
# custom values there
|
||||
start, end = _generate_spherical_points(n_dims, 2)
|
||||
|
||||
actual = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, n_pts))
|
||||
|
||||
assert_allclose(actual[0], start)
|
||||
assert_allclose(actual[-1], end)
|
||||
|
||||
@pytest.mark.parametrize("start, end", [
|
||||
# both arrays are not flat
|
||||
(np.zeros((1, 3)), np.ones((1, 3))),
|
||||
# only start array is not flat
|
||||
(np.zeros((1, 3)), np.ones(3)),
|
||||
# only end array is not flat
|
||||
(np.zeros(1), np.ones((3, 1))),
|
||||
])
|
||||
def test_input_shape_flat(self, start, end):
|
||||
# geometric_slerp should handle input arrays that are
|
||||
# not flat appropriately
|
||||
with pytest.raises(ValueError, match='one-dimensional'):
|
||||
geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 10))
|
||||
|
||||
@pytest.mark.parametrize("start, end", [
|
||||
# 7-D and 3-D ends
|
||||
(np.zeros(7), np.ones(3)),
|
||||
# 2-D and 1-D ends
|
||||
(np.zeros(2), np.ones(1)),
|
||||
# empty, "3D" will also get caught this way
|
||||
(np.array([]), np.ones(3)),
|
||||
])
|
||||
def test_input_dim_mismatch(self, start, end):
|
||||
# geometric_slerp must appropriately handle cases where
|
||||
# an interpolation is attempted across two different
|
||||
# dimensionalities
|
||||
with pytest.raises(ValueError, match='dimensions'):
|
||||
geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 10))
|
||||
|
||||
@pytest.mark.parametrize("start, end", [
|
||||
# both empty
|
||||
(np.array([]), np.array([])),
|
||||
])
|
||||
def test_input_at_least1d(self, start, end):
|
||||
# empty inputs to geometric_slerp must
|
||||
# be handled appropriately when not detected
|
||||
# by mismatch
|
||||
with pytest.raises(ValueError, match='at least two-dim'):
|
||||
geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 10))
|
||||
|
||||
@pytest.mark.parametrize("start, end, expected", [
|
||||
# North and South Poles are definitely antipodes
|
||||
# but should be handled gracefully now
|
||||
(np.array([0, 0, 1.0]), np.array([0, 0, -1.0]), "warning"),
|
||||
# this case will issue a warning & be handled
|
||||
# gracefully as well;
|
||||
# North Pole was rotated very slightly
|
||||
# using r = R.from_euler('x', 0.035, degrees=True)
|
||||
# to achieve Euclidean distance offset from diameter by
|
||||
# 9.328908379124812e-08, within the default tol
|
||||
(np.array([0.00000000e+00,
|
||||
-6.10865200e-04,
|
||||
9.99999813e-01]), np.array([0, 0, -1.0]), "warning"),
|
||||
# this case should succeed without warning because a
|
||||
# sufficiently large
|
||||
# rotation was applied to North Pole point to shift it
|
||||
# to a Euclidean distance of 2.3036691931821451e-07
|
||||
# from South Pole, which is larger than tol
|
||||
(np.array([0.00000000e+00,
|
||||
-9.59930941e-04,
|
||||
9.99999539e-01]), np.array([0, 0, -1.0]), "success"),
|
||||
])
|
||||
def test_handle_antipodes(self, start, end, expected):
|
||||
# antipodal points must be handled appropriately;
|
||||
# there are an infinite number of possible geodesic
|
||||
# interpolations between them in higher dims
|
||||
if expected == "warning":
|
||||
with pytest.warns(UserWarning, match='antipodes'):
|
||||
res = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 10))
|
||||
else:
|
||||
res = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 10))
|
||||
|
||||
# antipodes or near-antipodes should still produce
|
||||
# slerp paths on the surface of the sphere (but they
|
||||
# may be ambiguous):
|
||||
assert_allclose(np.linalg.norm(res, axis=1), 1.0)
|
||||
|
||||
@pytest.mark.parametrize("start, end, expected", [
|
||||
# 2-D with n_pts=4 (two new interpolation points)
|
||||
# this is an actual circle
|
||||
(np.array([1, 0]),
|
||||
np.array([0, 1]),
|
||||
np.array([[1, 0],
|
||||
[np.sqrt(3) / 2, 0.5], # 30 deg on unit circle
|
||||
[0.5, np.sqrt(3) / 2], # 60 deg on unit circle
|
||||
[0, 1]])),
|
||||
# likewise for 3-D (add z = 0 plane)
|
||||
# this is an ordinary sphere
|
||||
(np.array([1, 0, 0]),
|
||||
np.array([0, 1, 0]),
|
||||
np.array([[1, 0, 0],
|
||||
[np.sqrt(3) / 2, 0.5, 0],
|
||||
[0.5, np.sqrt(3) / 2, 0],
|
||||
[0, 1, 0]])),
|
||||
# for 5-D, pad more columns with constants
|
||||
# zeros are easiest--non-zero values on unit
|
||||
# circle are more difficult to reason about
|
||||
# at higher dims
|
||||
(np.array([1, 0, 0, 0, 0]),
|
||||
np.array([0, 1, 0, 0, 0]),
|
||||
np.array([[1, 0, 0, 0, 0],
|
||||
[np.sqrt(3) / 2, 0.5, 0, 0, 0],
|
||||
[0.5, np.sqrt(3) / 2, 0, 0, 0],
|
||||
[0, 1, 0, 0, 0]])),
|
||||
|
||||
])
|
||||
def test_straightforward_examples(self, start, end, expected):
|
||||
# some straightforward interpolation tests, sufficiently
|
||||
# simple to use the unit circle to deduce expected values;
|
||||
# for larger dimensions, pad with constants so that the
|
||||
# data is N-D but simpler to reason about
|
||||
actual = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 4))
|
||||
assert_allclose(actual, expected, atol=1e-16)
|
||||
|
||||
@pytest.mark.parametrize("t", [
|
||||
# both interval ends clearly violate limits
|
||||
np.linspace(-20, 20, 300),
|
||||
# only one interval end violating limit slightly
|
||||
np.linspace(-0.0001, 0.0001, 17),
|
||||
])
|
||||
def test_t_values_limits(self, t):
|
||||
# geometric_slerp() should appropriately handle
|
||||
# interpolation parameters < 0 and > 1
|
||||
with pytest.raises(ValueError, match='interpolation parameter'):
|
||||
_ = geometric_slerp(start=np.array([1, 0]),
|
||||
end=np.array([0, 1]),
|
||||
t=t)
|
||||
|
||||
@pytest.mark.parametrize("start, end", [
|
||||
(np.array([1]),
|
||||
np.array([0])),
|
||||
(np.array([0]),
|
||||
np.array([1])),
|
||||
(np.array([-17.7]),
|
||||
np.array([165.9])),
|
||||
])
|
||||
def test_0_sphere_handling(self, start, end):
|
||||
# it does not make sense to interpolate the set of
|
||||
# two points that is the 0-sphere
|
||||
with pytest.raises(ValueError, match='at least two-dim'):
|
||||
_ = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 4))
|
||||
|
||||
@pytest.mark.parametrize("tol", [
|
||||
# an integer currently raises
|
||||
5,
|
||||
# string raises
|
||||
"7",
|
||||
# list and arrays also raise
|
||||
[5, 6, 7], np.array(9.0),
|
||||
])
|
||||
def test_tol_type(self, tol):
|
||||
# geometric_slerp() should raise if tol is not
|
||||
# a suitable float type
|
||||
with pytest.raises(ValueError, match='must be a float'):
|
||||
_ = geometric_slerp(start=np.array([1, 0]),
|
||||
end=np.array([0, 1]),
|
||||
t=np.linspace(0, 1, 5),
|
||||
tol=tol)
|
||||
|
||||
@pytest.mark.parametrize("tol", [
|
||||
-5e-6,
|
||||
-7e-10,
|
||||
])
|
||||
def test_tol_sign(self, tol):
|
||||
# geometric_slerp() currently handles negative
|
||||
# tol values, as long as they are floats
|
||||
_ = geometric_slerp(start=np.array([1, 0]),
|
||||
end=np.array([0, 1]),
|
||||
t=np.linspace(0, 1, 5),
|
||||
tol=tol)
|
||||
|
||||
@pytest.mark.parametrize("start, end", [
|
||||
# 1-sphere (circle) with one point at origin
|
||||
# and the other on the circle
|
||||
(np.array([1, 0]), np.array([0, 0])),
|
||||
# 2-sphere (normal sphere) with both points
|
||||
# just slightly off sphere by the same amount
|
||||
# in different directions
|
||||
(np.array([1 + 1e-6, 0, 0]),
|
||||
np.array([0, 1 - 1e-6, 0])),
|
||||
# same thing in 4-D
|
||||
(np.array([1 + 1e-6, 0, 0, 0]),
|
||||
np.array([0, 1 - 1e-6, 0, 0])),
|
||||
])
|
||||
def test_unit_sphere_enforcement(self, start, end):
|
||||
# geometric_slerp() should raise on input that clearly
|
||||
# cannot be on an n-sphere of radius 1
|
||||
with pytest.raises(ValueError, match='unit n-sphere'):
|
||||
geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=np.linspace(0, 1, 5))
|
||||
|
||||
@pytest.mark.parametrize("start, end", [
|
||||
# 1-sphere 45 degree case
|
||||
(np.array([1, 0]),
|
||||
np.array([np.sqrt(2) / 2.,
|
||||
np.sqrt(2) / 2.])),
|
||||
# 2-sphere 135 degree case
|
||||
(np.array([1, 0]),
|
||||
np.array([-np.sqrt(2) / 2.,
|
||||
np.sqrt(2) / 2.])),
|
||||
])
|
||||
@pytest.mark.parametrize("t_func", [
|
||||
np.linspace, np.logspace])
|
||||
def test_order_handling(self, start, end, t_func):
|
||||
# geometric_slerp() should handle scenarios with
|
||||
# ascending and descending t value arrays gracefully;
|
||||
# results should simply be reversed
|
||||
|
||||
# for scrambled / unsorted parameters, the same values
|
||||
# should be returned, just in scrambled order
|
||||
|
||||
num_t_vals = 20
|
||||
np.random.seed(789)
|
||||
forward_t_vals = t_func(0, 10, num_t_vals)
|
||||
# normalize to max of 1
|
||||
forward_t_vals /= forward_t_vals.max()
|
||||
reverse_t_vals = np.flipud(forward_t_vals)
|
||||
shuffled_indices = np.arange(num_t_vals)
|
||||
np.random.shuffle(shuffled_indices)
|
||||
scramble_t_vals = forward_t_vals.copy()[shuffled_indices]
|
||||
|
||||
forward_results = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=forward_t_vals)
|
||||
reverse_results = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=reverse_t_vals)
|
||||
scrambled_results = geometric_slerp(start=start,
|
||||
end=end,
|
||||
t=scramble_t_vals)
|
||||
|
||||
# check fidelity to input order
|
||||
assert_allclose(forward_results, np.flipud(reverse_results))
|
||||
assert_allclose(forward_results[shuffled_indices],
|
||||
scrambled_results)
|
||||
|
||||
@pytest.mark.parametrize("t", [
|
||||
# string:
|
||||
"15, 5, 7",
|
||||
# complex numbers currently produce a warning
|
||||
# but not sure we need to worry about it too much:
|
||||
# [3 + 1j, 5 + 2j],
|
||||
])
|
||||
def test_t_values_conversion(self, t):
|
||||
with pytest.raises(ValueError):
|
||||
_ = geometric_slerp(start=np.array([1]),
|
||||
end=np.array([0]),
|
||||
t=t)
|
||||
|
||||
def test_accept_arraylike(self):
|
||||
# array-like support requested by reviewer
|
||||
# in gh-10380
|
||||
actual = geometric_slerp([1, 0], [0, 1], [0, 1/3, 0.5, 2/3, 1])
|
||||
|
||||
# expected values are based on visual inspection
|
||||
# of the unit circle for the progressions along
|
||||
# the circumference provided in t
|
||||
expected = np.array([[1, 0],
|
||||
[np.sqrt(3) / 2, 0.5],
|
||||
[np.sqrt(2) / 2,
|
||||
np.sqrt(2) / 2],
|
||||
[0.5, np.sqrt(3) / 2],
|
||||
[0, 1]], dtype=np.float64)
|
||||
# Tyler's original Cython implementation of geometric_slerp
|
||||
# can pass at atol=0 here, but on balance we will accept
|
||||
# 1e-16 for an implementation that avoids Cython and
|
||||
# makes up accuracy ground elsewhere
|
||||
assert_allclose(actual, expected, atol=1e-16)
|
||||
|
||||
def test_scalar_t(self):
|
||||
# when t is a scalar, return value is a single
|
||||
# interpolated point of the appropriate dimensionality
|
||||
# requested by reviewer in gh-10380
|
||||
actual = geometric_slerp([1, 0], [0, 1], 0.5)
|
||||
expected = np.array([np.sqrt(2) / 2,
|
||||
np.sqrt(2) / 2], dtype=np.float64)
|
||||
assert actual.shape == (2,)
|
||||
assert_allclose(actual, expected)
|
||||
|
||||
@pytest.mark.parametrize('start', [
|
||||
np.array([1, 0, 0]),
|
||||
np.array([0, 1]),
|
||||
])
|
||||
def test_degenerate_input(self, start):
|
||||
# handle start == end with repeated value
|
||||
# like np.linspace
|
||||
expected = [start] * 5
|
||||
actual = geometric_slerp(start=start,
|
||||
end=start,
|
||||
t=np.linspace(0, 1, 5))
|
||||
assert_allclose(actual, expected)
|
||||
|
||||
@pytest.mark.parametrize('k', np.logspace(-10, -1, 10))
|
||||
def test_numerical_stability_pi(self, k):
|
||||
# geometric_slerp should have excellent numerical
|
||||
# stability for angles approaching pi between
|
||||
# the start and end points
|
||||
angle = np.pi - k
|
||||
ts = np.linspace(0, 1, 100)
|
||||
P = np.array([1, 0, 0, 0])
|
||||
Q = np.array([np.cos(angle), np.sin(angle), 0, 0])
|
||||
# the test should only be enforced for cases where
|
||||
# geometric_slerp determines that the input is actually
|
||||
# on the unit sphere
|
||||
with np.testing.suppress_warnings() as sup:
|
||||
sup.filter(UserWarning)
|
||||
result = geometric_slerp(P, Q, ts, 1e-18)
|
||||
norms = np.linalg.norm(result, axis=1)
|
||||
error = np.max(np.abs(norms - 1))
|
||||
assert error < 4e-15
|
|
@ -0,0 +1,365 @@
|
|||
import numpy as np
|
||||
import itertools
|
||||
from numpy.testing import (assert_equal,
|
||||
assert_almost_equal,
|
||||
assert_array_equal,
|
||||
assert_array_almost_equal,
|
||||
suppress_warnings)
|
||||
import pytest
|
||||
from pytest import raises as assert_raises
|
||||
from pytest import warns as assert_warns
|
||||
from scipy.spatial import SphericalVoronoi, distance
|
||||
from scipy.optimize import linear_sum_assignment
|
||||
from scipy.constants import golden as phi
|
||||
from scipy.special import gamma
|
||||
|
||||
|
||||
TOL = 1E-10
|
||||
|
||||
|
||||
def _generate_tetrahedron():
|
||||
return np.array([[1, 1, 1], [1, -1, -1], [-1, 1, -1], [-1, -1, 1]])
|
||||
|
||||
|
||||
def _generate_cube():
|
||||
return np.array(list(itertools.product([-1, 1.], repeat=3)))
|
||||
|
||||
|
||||
def _generate_octahedron():
|
||||
return np.array([[-1, 0, 0], [+1, 0, 0], [0, -1, 0],
|
||||
[0, +1, 0], [0, 0, -1], [0, 0, +1]])
|
||||
|
||||
|
||||
def _generate_dodecahedron():
|
||||
|
||||
x1 = _generate_cube()
|
||||
x2 = np.array([[0, -phi, -1 / phi],
|
||||
[0, -phi, +1 / phi],
|
||||
[0, +phi, -1 / phi],
|
||||
[0, +phi, +1 / phi]])
|
||||
x3 = np.array([[-1 / phi, 0, -phi],
|
||||
[+1 / phi, 0, -phi],
|
||||
[-1 / phi, 0, +phi],
|
||||
[+1 / phi, 0, +phi]])
|
||||
x4 = np.array([[-phi, -1 / phi, 0],
|
||||
[-phi, +1 / phi, 0],
|
||||
[+phi, -1 / phi, 0],
|
||||
[+phi, +1 / phi, 0]])
|
||||
return np.concatenate((x1, x2, x3, x4))
|
||||
|
||||
|
||||
def _generate_icosahedron():
|
||||
x = np.array([[0, -1, -phi],
|
||||
[0, -1, +phi],
|
||||
[0, +1, -phi],
|
||||
[0, +1, +phi]])
|
||||
return np.concatenate([np.roll(x, i, axis=1) for i in range(3)])
|
||||
|
||||
|
||||
def _generate_polytope(name):
|
||||
polygons = ["triangle", "square", "pentagon", "hexagon", "heptagon",
|
||||
"octagon", "nonagon", "decagon", "undecagon", "dodecagon"]
|
||||
polyhedra = ["tetrahedron", "cube", "octahedron", "dodecahedron",
|
||||
"icosahedron"]
|
||||
if name not in polygons and name not in polyhedra:
|
||||
raise ValueError("unrecognized polytope")
|
||||
|
||||
if name in polygons:
|
||||
n = polygons.index(name) + 3
|
||||
thetas = np.linspace(0, 2 * np.pi, n, endpoint=False)
|
||||
p = np.vstack([np.cos(thetas), np.sin(thetas)]).T
|
||||
elif name == "tetrahedron":
|
||||
p = _generate_tetrahedron()
|
||||
elif name == "cube":
|
||||
p = _generate_cube()
|
||||
elif name == "octahedron":
|
||||
p = _generate_octahedron()
|
||||
elif name == "dodecahedron":
|
||||
p = _generate_dodecahedron()
|
||||
elif name == "icosahedron":
|
||||
p = _generate_icosahedron()
|
||||
|
||||
return p / np.linalg.norm(p, axis=1, keepdims=True)
|
||||
|
||||
|
||||
def _hypersphere_area(dim, radius):
|
||||
# https://en.wikipedia.org/wiki/N-sphere#Closed_forms
|
||||
return 2 * np.pi**(dim / 2) / gamma(dim / 2) * radius**(dim - 1)
|
||||
|
||||
|
||||
def _sample_sphere(n, dim, seed=None):
|
||||
# Sample points uniformly at random from the hypersphere
|
||||
rng = np.random.RandomState(seed=seed)
|
||||
points = rng.randn(n, dim)
|
||||
points /= np.linalg.norm(points, axis=1, keepdims=True)
|
||||
return points
|
||||
|
||||
|
||||
class TestSphericalVoronoi(object):
|
||||
|
||||
def setup_method(self):
|
||||
self.points = np.array([
|
||||
[-0.78928481, -0.16341094, 0.59188373],
|
||||
[-0.66839141, 0.73309634, 0.12578818],
|
||||
[0.32535778, -0.92476944, -0.19734181],
|
||||
[-0.90177102, -0.03785291, -0.43055335],
|
||||
[0.71781344, 0.68428936, 0.12842096],
|
||||
[-0.96064876, 0.23492353, -0.14820556],
|
||||
[0.73181537, -0.22025898, -0.6449281],
|
||||
[0.79979205, 0.54555747, 0.25039913]]
|
||||
)
|
||||
|
||||
# Issue #9386
|
||||
self.hemisphere_points = np.array([
|
||||
[0.88610999, -0.42383021, 0.18755541],
|
||||
[0.51980039, -0.72622668, 0.4498915],
|
||||
[0.56540011, -0.81629197, -0.11827989],
|
||||
[0.69659682, -0.69972598, 0.15854467]])
|
||||
|
||||
# Issue #8859
|
||||
phi = np.linspace(0, 2 * np.pi, 10, endpoint=False) # azimuth angle
|
||||
theta = np.linspace(0.001, np.pi * 0.4, 5) # polar angle
|
||||
theta = theta[np.newaxis, :].T
|
||||
|
||||
phiv, thetav = np.meshgrid(phi, theta)
|
||||
phiv = np.reshape(phiv, (50, 1))
|
||||
thetav = np.reshape(thetav, (50, 1))
|
||||
|
||||
x = np.cos(phiv) * np.sin(thetav)
|
||||
y = np.sin(phiv) * np.sin(thetav)
|
||||
z = np.cos(thetav)
|
||||
self.hemisphere_points2 = np.concatenate([x, y, z], axis=1)
|
||||
|
||||
def test_constructor(self):
|
||||
center = np.array([1, 2, 3])
|
||||
radius = 2
|
||||
s1 = SphericalVoronoi(self.points)
|
||||
# user input checks in SphericalVoronoi now require
|
||||
# the radius / center to match the generators so adjust
|
||||
# accordingly here
|
||||
s2 = SphericalVoronoi(self.points * radius, radius)
|
||||
s3 = SphericalVoronoi(self.points + center, center=center)
|
||||
s4 = SphericalVoronoi(self.points * radius + center, radius, center)
|
||||
assert_array_equal(s1.center, np.array([0, 0, 0]))
|
||||
assert_equal(s1.radius, 1)
|
||||
assert_array_equal(s2.center, np.array([0, 0, 0]))
|
||||
assert_equal(s2.radius, 2)
|
||||
assert_array_equal(s3.center, center)
|
||||
assert_equal(s3.radius, 1)
|
||||
assert_array_equal(s4.center, center)
|
||||
assert_equal(s4.radius, radius)
|
||||
|
||||
def test_vertices_regions_translation_invariance(self):
|
||||
sv_origin = SphericalVoronoi(self.points)
|
||||
center = np.array([1, 1, 1])
|
||||
sv_translated = SphericalVoronoi(self.points + center, center=center)
|
||||
assert_equal(sv_origin.regions, sv_translated.regions)
|
||||
assert_array_almost_equal(sv_origin.vertices + center,
|
||||
sv_translated.vertices)
|
||||
|
||||
def test_vertices_regions_scaling_invariance(self):
|
||||
sv_unit = SphericalVoronoi(self.points)
|
||||
sv_scaled = SphericalVoronoi(self.points * 2, 2)
|
||||
assert_equal(sv_unit.regions, sv_scaled.regions)
|
||||
assert_array_almost_equal(sv_unit.vertices * 2,
|
||||
sv_scaled.vertices)
|
||||
|
||||
def test_old_radius_api(self):
|
||||
sv_unit = SphericalVoronoi(self.points, radius=1)
|
||||
with suppress_warnings() as sup:
|
||||
sup.filter(DeprecationWarning, "`radius` is `None`")
|
||||
sv = SphericalVoronoi(self.points, None)
|
||||
assert_array_almost_equal(sv_unit.vertices, sv.vertices)
|
||||
|
||||
def test_old_radius_api_warning(self):
|
||||
with assert_warns(DeprecationWarning):
|
||||
SphericalVoronoi(self.points, None)
|
||||
|
||||
def test_sort_vertices_of_regions(self):
|
||||
sv = SphericalVoronoi(self.points)
|
||||
unsorted_regions = sv.regions
|
||||
sv.sort_vertices_of_regions()
|
||||
assert_equal(sorted(sv.regions), sorted(unsorted_regions))
|
||||
|
||||
def test_sort_vertices_of_regions_flattened(self):
|
||||
expected = sorted([[0, 6, 5, 2, 3], [2, 3, 10, 11, 8, 7], [0, 6, 4, 1],
|
||||
[4, 8, 7, 5, 6], [9, 11, 10], [2, 7, 5],
|
||||
[1, 4, 8, 11, 9], [0, 3, 10, 9, 1]])
|
||||
expected = list(itertools.chain(*sorted(expected))) # type: ignore
|
||||
sv = SphericalVoronoi(self.points)
|
||||
sv.sort_vertices_of_regions()
|
||||
actual = list(itertools.chain(*sorted(sv.regions)))
|
||||
assert_array_equal(actual, expected)
|
||||
|
||||
def test_sort_vertices_of_regions_dimensionality(self):
|
||||
points = np.array([[1, 0, 0, 0],
|
||||
[0, 1, 0, 0],
|
||||
[0, 0, 1, 0],
|
||||
[0, 0, 0, 1],
|
||||
[0.5, 0.5, 0.5, 0.5]])
|
||||
with pytest.raises(TypeError, match="three-dimensional"):
|
||||
sv = SphericalVoronoi(points)
|
||||
sv.sort_vertices_of_regions()
|
||||
|
||||
def test_num_vertices(self):
|
||||
# for any n >= 3, a spherical Voronoi diagram has 2n - 4
|
||||
# vertices; this is a direct consequence of Euler's formula
|
||||
# as explained by Dinis and Mamede (2010) Proceedings of the
|
||||
# 2010 International Symposium on Voronoi Diagrams in Science
|
||||
# and Engineering
|
||||
sv = SphericalVoronoi(self.points)
|
||||
expected = self.points.shape[0] * 2 - 4
|
||||
actual = sv.vertices.shape[0]
|
||||
assert_equal(actual, expected)
|
||||
|
||||
def test_voronoi_circles(self):
|
||||
sv = SphericalVoronoi(self.points)
|
||||
for vertex in sv.vertices:
|
||||
distances = distance.cdist(sv.points, np.array([vertex]))
|
||||
closest = np.array(sorted(distances)[0:3])
|
||||
assert_almost_equal(closest[0], closest[1], 7, str(vertex))
|
||||
assert_almost_equal(closest[0], closest[2], 7, str(vertex))
|
||||
|
||||
def test_duplicate_point_handling(self):
|
||||
# an exception should be raised for degenerate generators
|
||||
# related to Issue# 7046
|
||||
self.degenerate = np.concatenate((self.points, self.points))
|
||||
with assert_raises(ValueError):
|
||||
SphericalVoronoi(self.degenerate)
|
||||
|
||||
def test_incorrect_radius_handling(self):
|
||||
# an exception should be raised if the radius provided
|
||||
# cannot possibly match the input generators
|
||||
with assert_raises(ValueError):
|
||||
SphericalVoronoi(self.points, radius=0.98)
|
||||
|
||||
def test_incorrect_center_handling(self):
|
||||
# an exception should be raised if the center provided
|
||||
# cannot possibly match the input generators
|
||||
with assert_raises(ValueError):
|
||||
SphericalVoronoi(self.points, center=[0.1, 0, 0])
|
||||
|
||||
def test_single_hemisphere_handling(self):
|
||||
# Test solution of Issues #9386, #8859
|
||||
|
||||
for points in [self.hemisphere_points, self.hemisphere_points2]:
|
||||
sv = SphericalVoronoi(points)
|
||||
triangles = sv.points[sv._simplices]
|
||||
dots = np.einsum('ij,ij->i', sv.vertices, triangles[:, 0])
|
||||
circumradii = np.arccos(np.clip(dots, -1, 1))
|
||||
assert np.max(circumradii) > np.pi / 2
|
||||
|
||||
@pytest.mark.parametrize("n", [1, 2, 10])
|
||||
@pytest.mark.parametrize("center", [(0, 0, 0), (1, 2, 3)])
|
||||
def test_rank_deficient(self, n, center):
|
||||
thetas = np.linspace(0, 2 * np.pi, n, endpoint=False)
|
||||
points = np.vstack([np.sin(thetas), np.cos(thetas), np.zeros(n)]).T
|
||||
with pytest.raises(ValueError, match="Rank of input points"):
|
||||
SphericalVoronoi(points + center, center=center)
|
||||
|
||||
@pytest.mark.parametrize("dim", range(2, 7))
|
||||
def test_higher_dimensions(self, dim):
|
||||
n = 100
|
||||
points = _sample_sphere(n, dim, seed=0)
|
||||
sv = SphericalVoronoi(points)
|
||||
assert sv.vertices.shape[1] == dim
|
||||
assert len(sv.regions) == n
|
||||
|
||||
# verify Euler characteristic
|
||||
cell_counts = []
|
||||
simplices = np.sort(sv._simplices)
|
||||
for i in range(1, dim + 1):
|
||||
cells = []
|
||||
for indices in itertools.combinations(range(dim), i):
|
||||
cells.append(simplices[:, list(indices)])
|
||||
cells = np.unique(np.concatenate(cells), axis=0)
|
||||
cell_counts.append(len(cells))
|
||||
expected_euler = 1 + (-1)**(dim-1)
|
||||
actual_euler = sum([(-1)**i * e for i, e in enumerate(cell_counts)])
|
||||
assert expected_euler == actual_euler
|
||||
|
||||
@pytest.mark.parametrize("dim", range(2, 7))
|
||||
def test_cross_polytope_regions(self, dim):
|
||||
# The hypercube is the dual of the cross-polytope, so the voronoi
|
||||
# vertices of the cross-polytope lie on the points of the hypercube.
|
||||
|
||||
# generate points of the cross-polytope
|
||||
points = np.concatenate((-np.eye(dim), np.eye(dim)))
|
||||
sv = SphericalVoronoi(points)
|
||||
assert all([len(e) == 2**(dim - 1) for e in sv.regions])
|
||||
|
||||
# generate points of the hypercube
|
||||
expected = np.vstack(list(itertools.product([-1, 1], repeat=dim)))
|
||||
expected = expected.astype(np.float64) / np.sqrt(dim)
|
||||
|
||||
# test that Voronoi vertices are correctly placed
|
||||
dist = distance.cdist(sv.vertices, expected)
|
||||
res = linear_sum_assignment(dist)
|
||||
assert dist[res].sum() < TOL
|
||||
|
||||
@pytest.mark.parametrize("dim", range(2, 4))
|
||||
def test_hypercube_regions(self, dim):
|
||||
# The cross-polytope is the dual of the hypercube, so the voronoi
|
||||
# vertices of the hypercube lie on the points of the cross-polytope.
|
||||
|
||||
# generate points of the hypercube
|
||||
points = np.vstack(list(itertools.product([-1, 1], repeat=dim)))
|
||||
points = points.astype(np.float64) / np.sqrt(dim)
|
||||
sv = SphericalVoronoi(points)
|
||||
|
||||
# generate points of the cross-polytope
|
||||
expected = np.concatenate((-np.eye(dim), np.eye(dim)))
|
||||
|
||||
# test that Voronoi vertices are correctly placed
|
||||
dist = distance.cdist(sv.vertices, expected)
|
||||
res = linear_sum_assignment(dist)
|
||||
assert dist[res].sum() < TOL
|
||||
|
||||
@pytest.mark.parametrize("n", [10, 500])
|
||||
@pytest.mark.parametrize("dim", [2, 3])
|
||||
@pytest.mark.parametrize("radius", [0.5, 1, 2])
|
||||
@pytest.mark.parametrize("shift", [False, True])
|
||||
@pytest.mark.parametrize("single_hemisphere", [False, True])
|
||||
def test_area_reconstitution(self, n, dim, radius, shift,
|
||||
single_hemisphere):
|
||||
points = _sample_sphere(n, dim, seed=0)
|
||||
|
||||
# move all points to one side of the sphere for single-hemisphere test
|
||||
if single_hemisphere:
|
||||
points[:, 0] = np.abs(points[:, 0])
|
||||
|
||||
center = (np.arange(dim) + 1) * shift
|
||||
points = radius * points + center
|
||||
|
||||
sv = SphericalVoronoi(points, radius=radius, center=center)
|
||||
areas = sv.calculate_areas()
|
||||
assert_almost_equal(areas.sum(), _hypersphere_area(dim, radius))
|
||||
|
||||
@pytest.mark.parametrize("poly", ["triangle", "dodecagon",
|
||||
"tetrahedron", "cube", "octahedron",
|
||||
"dodecahedron", "icosahedron"])
|
||||
def test_equal_area_reconstitution(self, poly):
|
||||
points = _generate_polytope(poly)
|
||||
n, dim = points.shape
|
||||
sv = SphericalVoronoi(points)
|
||||
areas = sv.calculate_areas()
|
||||
assert_almost_equal(areas, _hypersphere_area(dim, 1) / n)
|
||||
|
||||
def test_area_unsupported_dimension(self):
|
||||
dim = 4
|
||||
points = np.concatenate((-np.eye(dim), np.eye(dim)))
|
||||
sv = SphericalVoronoi(points)
|
||||
with pytest.raises(TypeError, match="Only supported"):
|
||||
sv.calculate_areas()
|
||||
|
||||
@pytest.mark.parametrize("radius", [1, 1.])
|
||||
@pytest.mark.parametrize("center", [None, (1, 2, 3), (1., 2., 3.)])
|
||||
def test_attribute_types(self, radius, center):
|
||||
points = radius * self.points
|
||||
if center is not None:
|
||||
points += center
|
||||
|
||||
sv = SphericalVoronoi(points, radius=radius, center=center)
|
||||
assert sv.points.dtype is np.dtype(np.float64)
|
||||
assert sv.center.dtype is np.dtype(np.float64)
|
||||
assert isinstance(sv.radius, float)
|
26
venv/Lib/site-packages/scipy/spatial/transform/__init__.py
Normal file
26
venv/Lib/site-packages/scipy/spatial/transform/__init__.py
Normal file
|
@ -0,0 +1,26 @@
|
|||
"""
|
||||
Spatial Transformations (:mod:`scipy.spatial.transform`)
|
||||
========================================================
|
||||
|
||||
.. currentmodule:: scipy.spatial.transform
|
||||
|
||||
This package implements various spatial transformations. For now,
|
||||
only rotations are supported.
|
||||
|
||||
Rotations in 3 dimensions
|
||||
-------------------------
|
||||
.. autosummary::
|
||||
:toctree: generated/
|
||||
|
||||
Rotation
|
||||
Slerp
|
||||
RotationSpline
|
||||
"""
|
||||
from .rotation import Rotation, Slerp
|
||||
from ._rotation_spline import RotationSpline
|
||||
|
||||
__all__ = ['Rotation', 'Slerp', 'RotationSpline']
|
||||
|
||||
from scipy._lib._testutils import PytestTester
|
||||
test = PytestTester(__name__)
|
||||
del PytestTester
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,140 @@
|
|||
import numpy as np
|
||||
from scipy.constants import golden as phi
|
||||
|
||||
|
||||
def icosahedral(cls):
|
||||
g1 = tetrahedral(cls).as_quat()
|
||||
a = 0.5
|
||||
b = 0.5 / phi
|
||||
c = phi / 2
|
||||
g2 = np.array([[+a, +b, +c, 0],
|
||||
[+a, +b, -c, 0],
|
||||
[+a, +c, 0, +b],
|
||||
[+a, +c, 0, -b],
|
||||
[+a, -b, +c, 0],
|
||||
[+a, -b, -c, 0],
|
||||
[+a, -c, 0, +b],
|
||||
[+a, -c, 0, -b],
|
||||
[+a, 0, +b, +c],
|
||||
[+a, 0, +b, -c],
|
||||
[+a, 0, -b, +c],
|
||||
[+a, 0, -b, -c],
|
||||
[+b, +a, 0, +c],
|
||||
[+b, +a, 0, -c],
|
||||
[+b, +c, +a, 0],
|
||||
[+b, +c, -a, 0],
|
||||
[+b, -a, 0, +c],
|
||||
[+b, -a, 0, -c],
|
||||
[+b, -c, +a, 0],
|
||||
[+b, -c, -a, 0],
|
||||
[+b, 0, +c, +a],
|
||||
[+b, 0, +c, -a],
|
||||
[+b, 0, -c, +a],
|
||||
[+b, 0, -c, -a],
|
||||
[+c, +a, +b, 0],
|
||||
[+c, +a, -b, 0],
|
||||
[+c, +b, 0, +a],
|
||||
[+c, +b, 0, -a],
|
||||
[+c, -a, +b, 0],
|
||||
[+c, -a, -b, 0],
|
||||
[+c, -b, 0, +a],
|
||||
[+c, -b, 0, -a],
|
||||
[+c, 0, +a, +b],
|
||||
[+c, 0, +a, -b],
|
||||
[+c, 0, -a, +b],
|
||||
[+c, 0, -a, -b],
|
||||
[0, +a, +c, +b],
|
||||
[0, +a, +c, -b],
|
||||
[0, +a, -c, +b],
|
||||
[0, +a, -c, -b],
|
||||
[0, +b, +a, +c],
|
||||
[0, +b, +a, -c],
|
||||
[0, +b, -a, +c],
|
||||
[0, +b, -a, -c],
|
||||
[0, +c, +b, +a],
|
||||
[0, +c, +b, -a],
|
||||
[0, +c, -b, +a],
|
||||
[0, +c, -b, -a]])
|
||||
return cls.from_quat(np.concatenate((g1, g2)))
|
||||
|
||||
|
||||
def octahedral(cls):
|
||||
g1 = tetrahedral(cls).as_quat()
|
||||
c = np.sqrt(2) / 2
|
||||
g2 = np.array([[+c, 0, 0, +c],
|
||||
[0, +c, 0, +c],
|
||||
[0, 0, +c, +c],
|
||||
[0, 0, -c, +c],
|
||||
[0, -c, 0, +c],
|
||||
[-c, 0, 0, +c],
|
||||
[0, +c, +c, 0],
|
||||
[0, -c, +c, 0],
|
||||
[+c, 0, +c, 0],
|
||||
[-c, 0, +c, 0],
|
||||
[+c, +c, 0, 0],
|
||||
[-c, +c, 0, 0]])
|
||||
return cls.from_quat(np.concatenate((g1, g2)))
|
||||
|
||||
|
||||
def tetrahedral(cls):
|
||||
g1 = np.eye(4)
|
||||
c = 0.5
|
||||
g2 = np.array([[c, -c, -c, +c],
|
||||
[c, -c, +c, +c],
|
||||
[c, +c, -c, +c],
|
||||
[c, +c, +c, +c],
|
||||
[c, -c, -c, -c],
|
||||
[c, -c, +c, -c],
|
||||
[c, +c, -c, -c],
|
||||
[c, +c, +c, -c]])
|
||||
return cls.from_quat(np.concatenate((g1, g2)))
|
||||
|
||||
|
||||
def dicyclic(cls, n, axis=2):
|
||||
g1 = cyclic(cls, n, axis).as_rotvec()
|
||||
|
||||
thetas = np.linspace(0, np.pi, n, endpoint=False)
|
||||
rv = np.pi * np.vstack([np.zeros(n), np.cos(thetas), np.sin(thetas)]).T
|
||||
g2 = np.roll(rv, axis, axis=1)
|
||||
return cls.from_rotvec(np.concatenate((g1, g2)))
|
||||
|
||||
|
||||
def cyclic(cls, n, axis=2):
|
||||
thetas = np.linspace(0, 2 * np.pi, n, endpoint=False)
|
||||
rv = np.vstack([thetas, np.zeros(n), np.zeros(n)]).T
|
||||
return cls.from_rotvec(np.roll(rv, axis, axis=1))
|
||||
|
||||
|
||||
def create_group(cls, group, axis='Z'):
|
||||
if not isinstance(group, str):
|
||||
raise ValueError("`group` argument must be a string")
|
||||
|
||||
permitted_axes = ['x', 'y', 'z', 'X', 'Y', 'Z']
|
||||
if axis not in permitted_axes:
|
||||
raise ValueError("`axis` must be one of " + ", ".join(permitted_axes))
|
||||
|
||||
if group in ['I', 'O', 'T']:
|
||||
symbol = group
|
||||
order = 1
|
||||
elif group[:1] in ['C', 'D'] and group[1:].isdigit():
|
||||
symbol = group[:1]
|
||||
order = int(group[1:])
|
||||
else:
|
||||
raise ValueError("`group` must be one of 'I', 'O', 'T', 'Dn', 'Cn'")
|
||||
|
||||
if order < 1:
|
||||
raise ValueError("Group order must be positive")
|
||||
|
||||
axis = 'xyz'.index(axis.lower())
|
||||
if symbol == 'I':
|
||||
return icosahedral(cls)
|
||||
elif symbol == 'O':
|
||||
return octahedral(cls)
|
||||
elif symbol == 'T':
|
||||
return tetrahedral(cls)
|
||||
elif symbol == 'D':
|
||||
return dicyclic(cls, order, axis=axis)
|
||||
elif symbol == 'C':
|
||||
return cyclic(cls, order, axis=axis)
|
||||
else:
|
||||
assert False
|
|
@ -0,0 +1,456 @@
|
|||
import numpy as np
|
||||
from scipy.linalg import solve_banded
|
||||
from .rotation import Rotation
|
||||
|
||||
|
||||
def _create_skew_matrix(x):
|
||||
"""Create skew-symmetric matrices corresponding to vectors.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
x : ndarray, shape (n, 3)
|
||||
Set of vectors.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (n, 3, 3)
|
||||
"""
|
||||
result = np.zeros((len(x), 3, 3))
|
||||
result[:, 0, 1] = -x[:, 2]
|
||||
result[:, 0, 2] = x[:, 1]
|
||||
result[:, 1, 0] = x[:, 2]
|
||||
result[:, 1, 2] = -x[:, 0]
|
||||
result[:, 2, 0] = -x[:, 1]
|
||||
result[:, 2, 1] = x[:, 0]
|
||||
return result
|
||||
|
||||
|
||||
def _matrix_vector_product_of_stacks(A, b):
|
||||
"""Compute the product of stack of matrices and vectors."""
|
||||
return np.einsum("ijk,ik->ij", A, b)
|
||||
|
||||
|
||||
def _angular_rate_to_rotvec_dot_matrix(rotvecs):
|
||||
"""Compute matrices to transform angular rates to rot. vector derivatives.
|
||||
|
||||
The matrices depend on the current attitude represented as a rotation
|
||||
vector.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
rotvecs : ndarray, shape (n, 3)
|
||||
Set of rotation vectors.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (n, 3, 3)
|
||||
"""
|
||||
norm = np.linalg.norm(rotvecs, axis=1)
|
||||
k = np.empty_like(norm)
|
||||
|
||||
mask = norm > 1e-4
|
||||
nm = norm[mask]
|
||||
k[mask] = (1 - 0.5 * nm / np.tan(0.5 * nm)) / nm**2
|
||||
mask = ~mask
|
||||
nm = norm[mask]
|
||||
k[mask] = 1/12 + 1/720 * nm**2
|
||||
|
||||
skew = _create_skew_matrix(rotvecs)
|
||||
|
||||
result = np.empty((len(rotvecs), 3, 3))
|
||||
result[:] = np.identity(3)
|
||||
result[:] += 0.5 * skew
|
||||
result[:] += k[:, None, None] * np.matmul(skew, skew)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def _rotvec_dot_to_angular_rate_matrix(rotvecs):
|
||||
"""Compute matrices to transform rot. vector derivatives to angular rates.
|
||||
|
||||
The matrices depend on the current attitude represented as a rotation
|
||||
vector.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
rotvecs : ndarray, shape (n, 3)
|
||||
Set of rotation vectors.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (n, 3, 3)
|
||||
"""
|
||||
norm = np.linalg.norm(rotvecs, axis=1)
|
||||
k1 = np.empty_like(norm)
|
||||
k2 = np.empty_like(norm)
|
||||
|
||||
mask = norm > 1e-4
|
||||
nm = norm[mask]
|
||||
k1[mask] = (1 - np.cos(nm)) / nm ** 2
|
||||
k2[mask] = (nm - np.sin(nm)) / nm ** 3
|
||||
|
||||
mask = ~mask
|
||||
nm = norm[mask]
|
||||
k1[mask] = 0.5 - nm ** 2 / 24
|
||||
k2[mask] = 1 / 6 - nm ** 2 / 120
|
||||
|
||||
skew = _create_skew_matrix(rotvecs)
|
||||
|
||||
result = np.empty((len(rotvecs), 3, 3))
|
||||
result[:] = np.identity(3)
|
||||
result[:] -= k1[:, None, None] * skew
|
||||
result[:] += k2[:, None, None] * np.matmul(skew, skew)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def _angular_acceleration_nonlinear_term(rotvecs, rotvecs_dot):
|
||||
"""Compute the non-linear term in angular acceleration.
|
||||
|
||||
The angular acceleration contains a quadratic term with respect to
|
||||
the derivative of the rotation vector. This function computes that.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
rotvecs : ndarray, shape (n, 3)
|
||||
Set of rotation vectors.
|
||||
rotvecs_dot: ndarray, shape (n, 3)
|
||||
Set of rotation vector derivatives.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (n, 3)
|
||||
"""
|
||||
norm = np.linalg.norm(rotvecs, axis=1)
|
||||
dp = np.sum(rotvecs * rotvecs_dot, axis=1)
|
||||
cp = np.cross(rotvecs, rotvecs_dot)
|
||||
ccp = np.cross(rotvecs, cp)
|
||||
dccp = np.cross(rotvecs_dot, cp)
|
||||
|
||||
k1 = np.empty_like(norm)
|
||||
k2 = np.empty_like(norm)
|
||||
k3 = np.empty_like(norm)
|
||||
|
||||
mask = norm > 1e-4
|
||||
nm = norm[mask]
|
||||
k1[mask] = (-nm * np.sin(nm) - 2 * (np.cos(nm) - 1)) / nm ** 4
|
||||
k2[mask] = (-2 * nm + 3 * np.sin(nm) - nm * np.cos(nm)) / nm ** 5
|
||||
k3[mask] = (nm - np.sin(nm)) / nm ** 3
|
||||
|
||||
mask = ~mask
|
||||
nm = norm[mask]
|
||||
k1[mask] = 1/12 - nm ** 2 / 180
|
||||
k2[mask] = -1/60 + nm ** 2 / 12604
|
||||
k3[mask] = 1/6 - nm ** 2 / 120
|
||||
|
||||
dp = dp[:, None]
|
||||
k1 = k1[:, None]
|
||||
k2 = k2[:, None]
|
||||
k3 = k3[:, None]
|
||||
|
||||
return dp * (k1 * cp + k2 * ccp) + k3 * dccp
|
||||
|
||||
|
||||
def _compute_angular_rate(rotvecs, rotvecs_dot):
|
||||
"""Compute angular rates given rotation vectors and its derivatives.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
rotvecs : ndarray, shape (n, 3)
|
||||
Set of rotation vectors.
|
||||
rotvecs_dot : ndarray, shape (n, 3)
|
||||
Set of rotation vector derivatives.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (n, 3)
|
||||
"""
|
||||
return _matrix_vector_product_of_stacks(
|
||||
_rotvec_dot_to_angular_rate_matrix(rotvecs), rotvecs_dot)
|
||||
|
||||
|
||||
def _compute_angular_acceleration(rotvecs, rotvecs_dot, rotvecs_dot_dot):
|
||||
"""Compute angular acceleration given rotation vector and its derivatives.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
rotvecs : ndarray, shape (n, 3)
|
||||
Set of rotation vectors.
|
||||
rotvecs_dot : ndarray, shape (n, 3)
|
||||
Set of rotation vector derivatives.
|
||||
rotvecs_dot_dot : ndarray, shape (n, 3)
|
||||
Set of rotation vector second derivatives.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (n, 3)
|
||||
"""
|
||||
return (_compute_angular_rate(rotvecs, rotvecs_dot_dot) +
|
||||
_angular_acceleration_nonlinear_term(rotvecs, rotvecs_dot))
|
||||
|
||||
|
||||
def _create_block_3_diagonal_matrix(A, B, d):
|
||||
"""Create a 3-diagonal block matrix as banded.
|
||||
|
||||
The matrix has the following structure:
|
||||
|
||||
DB...
|
||||
ADB..
|
||||
.ADB.
|
||||
..ADB
|
||||
...AD
|
||||
|
||||
The blocks A, B and D are 3-by-3 matrices. The D matrices has the form
|
||||
d * I.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
A : ndarray, shape (n, 3, 3)
|
||||
Stack of A blocks.
|
||||
B : ndarray, shape (n, 3, 3)
|
||||
Stack of B blocks.
|
||||
d : ndarray, shape (n + 1,)
|
||||
Values for diagonal blocks.
|
||||
|
||||
Returns
|
||||
-------
|
||||
ndarray, shape (11, 3 * (n + 1))
|
||||
Matrix in the banded form as used by `scipy.linalg.solve_banded`.
|
||||
"""
|
||||
ind = np.arange(3)
|
||||
ind_blocks = np.arange(len(A))
|
||||
|
||||
A_i = np.empty_like(A, dtype=int)
|
||||
A_i[:] = ind[:, None]
|
||||
A_i += 3 * (1 + ind_blocks[:, None, None])
|
||||
|
||||
A_j = np.empty_like(A, dtype=int)
|
||||
A_j[:] = ind
|
||||
A_j += 3 * ind_blocks[:, None, None]
|
||||
|
||||
B_i = np.empty_like(B, dtype=int)
|
||||
B_i[:] = ind[:, None]
|
||||
B_i += 3 * ind_blocks[:, None, None]
|
||||
|
||||
B_j = np.empty_like(B, dtype=int)
|
||||
B_j[:] = ind
|
||||
B_j += 3 * (1 + ind_blocks[:, None, None])
|
||||
|
||||
diag_i = diag_j = np.arange(3 * len(d))
|
||||
i = np.hstack((A_i.ravel(), B_i.ravel(), diag_i))
|
||||
j = np.hstack((A_j.ravel(), B_j.ravel(), diag_j))
|
||||
values = np.hstack((A.ravel(), B.ravel(), np.repeat(d, 3)))
|
||||
|
||||
u = 5
|
||||
l = 5
|
||||
result = np.zeros((u + l + 1, 3 * len(d)))
|
||||
result[u + i - j, j] = values
|
||||
return result
|
||||
|
||||
|
||||
class RotationSpline(object):
|
||||
"""Interpolate rotations with continuous angular rate and acceleration.
|
||||
|
||||
The rotation vectors between each consecutive orientation are cubic
|
||||
functions of time and it is guaranteed that angular rate and acceleration
|
||||
are continuous. Such interpolation are analogous to cubic spline
|
||||
interpolation.
|
||||
|
||||
Refer to [1]_ for math and implementation details.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
times : array_like, shape (N,)
|
||||
Times of the known rotations. At least 2 times must be specified.
|
||||
rotations : `Rotation` instance
|
||||
Rotations to perform the interpolation between. Must contain N
|
||||
rotations.
|
||||
|
||||
Methods
|
||||
-------
|
||||
__call__
|
||||
|
||||
References
|
||||
----------
|
||||
.. [1] `Smooth Attitude Interpolation
|
||||
<https://github.com/scipy/scipy/files/2932755/attitude_interpolation.pdf>`_
|
||||
|
||||
Examples
|
||||
--------
|
||||
>>> from scipy.spatial.transform import Rotation, RotationSpline
|
||||
|
||||
Define the sequence of times and rotations from the Euler angles:
|
||||
|
||||
>>> times = [0, 10, 20, 40]
|
||||
>>> angles = [[-10, 20, 30], [0, 15, 40], [-30, 45, 30], [20, 45, 90]]
|
||||
>>> rotations = Rotation.from_euler('XYZ', angles, degrees=True)
|
||||
|
||||
Create the interpolator object:
|
||||
|
||||
>>> spline = RotationSpline(times, rotations)
|
||||
|
||||
Interpolate the Euler angles, angular rate and acceleration:
|
||||
|
||||
>>> angular_rate = np.rad2deg(spline(times, 1))
|
||||
>>> angular_acceleration = np.rad2deg(spline(times, 2))
|
||||
>>> times_plot = np.linspace(times[0], times[-1], 100)
|
||||
>>> angles_plot = spline(times_plot).as_euler('XYZ', degrees=True)
|
||||
>>> angular_rate_plot = np.rad2deg(spline(times_plot, 1))
|
||||
>>> angular_acceleration_plot = np.rad2deg(spline(times_plot, 2))
|
||||
|
||||
On this plot you see that Euler angles are continuous and smooth:
|
||||
|
||||
>>> import matplotlib.pyplot as plt
|
||||
>>> plt.plot(times_plot, angles_plot)
|
||||
>>> plt.plot(times, angles, 'x')
|
||||
>>> plt.title("Euler angles")
|
||||
>>> plt.show()
|
||||
|
||||
The angular rate is also smooth:
|
||||
|
||||
>>> plt.plot(times_plot, angular_rate_plot)
|
||||
>>> plt.plot(times, angular_rate, 'x')
|
||||
>>> plt.title("Angular rate")
|
||||
>>> plt.show()
|
||||
|
||||
The angular acceleration is continuous, but not smooth. Also note that
|
||||
the angular acceleration is not a piecewise-linear function, because
|
||||
it is different from the second derivative of the rotation vector (which
|
||||
is a piecewise-linear function as in the cubic spline).
|
||||
|
||||
>>> plt.plot(times_plot, angular_acceleration_plot)
|
||||
>>> plt.plot(times, angular_acceleration, 'x')
|
||||
>>> plt.title("Angular acceleration")
|
||||
>>> plt.show()
|
||||
"""
|
||||
# Parameters for the solver for angular rate.
|
||||
MAX_ITER = 10
|
||||
TOL = 1e-9
|
||||
|
||||
def _solve_for_angular_rates(self, dt, angular_rates, rotvecs):
|
||||
angular_rate_first = angular_rates[0].copy()
|
||||
|
||||
A = _angular_rate_to_rotvec_dot_matrix(rotvecs)
|
||||
A_inv = _rotvec_dot_to_angular_rate_matrix(rotvecs)
|
||||
M = _create_block_3_diagonal_matrix(
|
||||
2 * A_inv[1:-1] / dt[1:-1, None, None],
|
||||
2 * A[1:-1] / dt[1:-1, None, None],
|
||||
4 * (1 / dt[:-1] + 1 / dt[1:]))
|
||||
|
||||
b0 = 6 * (rotvecs[:-1] * dt[:-1, None] ** -2 +
|
||||
rotvecs[1:] * dt[1:, None] ** -2)
|
||||
b0[0] -= 2 / dt[0] * A_inv[0].dot(angular_rate_first)
|
||||
b0[-1] -= 2 / dt[-1] * A[-1].dot(angular_rates[-1])
|
||||
|
||||
for iteration in range(self.MAX_ITER):
|
||||
rotvecs_dot = _matrix_vector_product_of_stacks(A, angular_rates)
|
||||
delta_beta = _angular_acceleration_nonlinear_term(
|
||||
rotvecs[:-1], rotvecs_dot[:-1])
|
||||
b = b0 - delta_beta
|
||||
angular_rates_new = solve_banded((5, 5), M, b.ravel())
|
||||
angular_rates_new = angular_rates_new.reshape((-1, 3))
|
||||
|
||||
delta = np.abs(angular_rates_new - angular_rates[:-1])
|
||||
angular_rates[:-1] = angular_rates_new
|
||||
if np.all(delta < self.TOL * (1 + np.abs(angular_rates_new))):
|
||||
break
|
||||
|
||||
rotvecs_dot = _matrix_vector_product_of_stacks(A, angular_rates)
|
||||
angular_rates = np.vstack((angular_rate_first, angular_rates[:-1]))
|
||||
|
||||
return angular_rates, rotvecs_dot
|
||||
|
||||
def __init__(self, times, rotations):
|
||||
from scipy.interpolate import PPoly
|
||||
|
||||
if len(rotations) == 1:
|
||||
raise ValueError("`rotations` must contain at least 2 rotations.")
|
||||
|
||||
times = np.asarray(times, dtype=float)
|
||||
if times.ndim != 1:
|
||||
raise ValueError("`times` must be 1-dimensional.")
|
||||
|
||||
if len(times) != len(rotations):
|
||||
raise ValueError("Expected number of rotations to be equal to "
|
||||
"number of timestamps given, got {} rotations "
|
||||
"and {} timestamps."
|
||||
.format(len(rotations), len(times)))
|
||||
|
||||
dt = np.diff(times)
|
||||
if np.any(dt <= 0):
|
||||
raise ValueError("Values in `times` must be in a strictly "
|
||||
"increasing order.")
|
||||
|
||||
rotvecs = (rotations[:-1].inv() * rotations[1:]).as_rotvec()
|
||||
angular_rates = rotvecs / dt[:, None]
|
||||
|
||||
if len(rotations) == 2:
|
||||
rotvecs_dot = angular_rates
|
||||
else:
|
||||
angular_rates, rotvecs_dot = self._solve_for_angular_rates(
|
||||
dt, angular_rates, rotvecs)
|
||||
|
||||
dt = dt[:, None]
|
||||
coeff = np.empty((4, len(times) - 1, 3))
|
||||
coeff[0] = (-2 * rotvecs + dt * angular_rates
|
||||
+ dt * rotvecs_dot) / dt ** 3
|
||||
coeff[1] = (3 * rotvecs - 2 * dt * angular_rates
|
||||
- dt * rotvecs_dot) / dt ** 2
|
||||
coeff[2] = angular_rates
|
||||
coeff[3] = 0
|
||||
|
||||
self.times = times
|
||||
self.rotations = rotations
|
||||
self.interpolator = PPoly(coeff, times)
|
||||
|
||||
def __call__(self, times, order=0):
|
||||
"""Compute interpolated values.
|
||||
|
||||
Parameters
|
||||
----------
|
||||
times : float or array_like
|
||||
Times of interest.
|
||||
order : {0, 1, 2}, optional
|
||||
Order of differentiation:
|
||||
|
||||
* 0 (default) : return Rotation
|
||||
* 1 : return the angular rate in rad/sec
|
||||
* 2 : return the angular acceleration in rad/sec/sec
|
||||
|
||||
Returns
|
||||
-------
|
||||
Interpolated Rotation, angular rate or acceleration.
|
||||
"""
|
||||
if order not in [0, 1, 2]:
|
||||
raise ValueError("`order` must be 0, 1 or 2.")
|
||||
|
||||
times = np.asarray(times, dtype=float)
|
||||
if times.ndim > 1:
|
||||
raise ValueError("`times` must be at most 1-dimensional.")
|
||||
|
||||
singe_time = times.ndim == 0
|
||||
times = np.atleast_1d(times)
|
||||
|
||||
rotvecs = self.interpolator(times)
|
||||
if order == 0:
|
||||
index = np.searchsorted(self.times, times, side='right')
|
||||
index -= 1
|
||||
index[index < 0] = 0
|
||||
n_segments = len(self.times) - 1
|
||||
index[index > n_segments - 1] = n_segments - 1
|
||||
result = self.rotations[index] * Rotation.from_rotvec(rotvecs)
|
||||
elif order == 1:
|
||||
rotvecs_dot = self.interpolator(times, 1)
|
||||
result = _compute_angular_rate(rotvecs, rotvecs_dot)
|
||||
elif order == 2:
|
||||
rotvecs_dot = self.interpolator(times, 1)
|
||||
rotvecs_dot_dot = self.interpolator(times, 2)
|
||||
result = _compute_angular_acceleration(rotvecs, rotvecs_dot,
|
||||
rotvecs_dot_dot)
|
||||
else:
|
||||
assert False
|
||||
|
||||
if singe_time:
|
||||
result = result[0]
|
||||
|
||||
return result
|
2128
venv/Lib/site-packages/scipy/spatial/transform/rotation.py
Normal file
2128
venv/Lib/site-packages/scipy/spatial/transform/rotation.py
Normal file
File diff suppressed because it is too large
Load diff
9
venv/Lib/site-packages/scipy/spatial/transform/setup.py
Normal file
9
venv/Lib/site-packages/scipy/spatial/transform/setup.py
Normal file
|
@ -0,0 +1,9 @@
|
|||
|
||||
def configuration(parent_package='', top_path=None):
|
||||
from numpy.distutils.misc_util import Configuration
|
||||
|
||||
config = Configuration('transform', parent_package, top_path)
|
||||
|
||||
config.add_data_dir('tests')
|
||||
|
||||
return config
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
@ -0,0 +1,169 @@
|
|||
import pytest
|
||||
|
||||
import numpy as np
|
||||
from numpy.testing import assert_array_almost_equal
|
||||
from scipy.spatial.transform import Rotation
|
||||
from scipy.optimize import linear_sum_assignment
|
||||
from scipy.spatial.distance import cdist
|
||||
from scipy.constants import golden as phi
|
||||
from scipy.spatial import cKDTree
|
||||
|
||||
|
||||
TOL = 1E-12
|
||||
NS = range(1, 13)
|
||||
NAMES = ["I", "O", "T"] + ["C%d" % n for n in NS] + ["D%d" % n for n in NS]
|
||||
SIZES = [60, 24, 12] + list(NS) + [2 * n for n in NS]
|
||||
|
||||
|
||||
def _calculate_rmsd(P, Q):
|
||||
"""Calculates the root-mean-square distance between the points of P and Q.
|
||||
The distance is taken as the minimum over all possible matchings. It is
|
||||
zero if P and Q are identical and non-zero if not.
|
||||
"""
|
||||
distance_matrix = cdist(P, Q, metric='sqeuclidean')
|
||||
matching = linear_sum_assignment(distance_matrix)
|
||||
return np.sqrt(distance_matrix[matching].sum())
|
||||
|
||||
|
||||
def _generate_pyramid(n, axis):
|
||||
thetas = np.linspace(0, 2 * np.pi, n + 1)[:-1]
|
||||
P = np.vstack([np.zeros(n), np.cos(thetas), np.sin(thetas)]).T
|
||||
P = np.concatenate((P, [[1, 0, 0]]))
|
||||
return np.roll(P, axis, axis=1)
|
||||
|
||||
|
||||
def _generate_prism(n, axis):
|
||||
thetas = np.linspace(0, 2 * np.pi, n + 1)[:-1]
|
||||
bottom = np.vstack([-np.ones(n), np.cos(thetas), np.sin(thetas)]).T
|
||||
top = np.vstack([+np.ones(n), np.cos(thetas), np.sin(thetas)]).T
|
||||
P = np.concatenate((bottom, top))
|
||||
return np.roll(P, axis, axis=1)
|
||||
|
||||
|
||||
def _generate_icosahedron():
|
||||
x = np.array([[0, -1, -phi],
|
||||
[0, -1, +phi],
|
||||
[0, +1, -phi],
|
||||
[0, +1, +phi]])
|
||||
return np.concatenate([np.roll(x, i, axis=1) for i in range(3)])
|
||||
|
||||
|
||||
def _generate_octahedron():
|
||||
return np.array([[-1, 0, 0], [+1, 0, 0], [0, -1, 0],
|
||||
[0, +1, 0], [0, 0, -1], [0, 0, +1]])
|
||||
|
||||
|
||||
def _generate_tetrahedron():
|
||||
return np.array([[1, 1, 1], [1, -1, -1], [-1, 1, -1], [-1, -1, 1]])
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", [-1, None, True, np.array(['C3'])])
|
||||
def test_group_type(name):
|
||||
with pytest.raises(ValueError,
|
||||
match="must be a string"):
|
||||
Rotation.create_group(name)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", ["Q", " ", "CA", "C ", "DA", "D ", "I2", ""])
|
||||
def test_group_name(name):
|
||||
with pytest.raises(ValueError,
|
||||
match="must be one of 'I', 'O', 'T', 'Dn', 'Cn'"):
|
||||
Rotation.create_group(name)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", ["C0", "D0"])
|
||||
def test_group_order_positive(name):
|
||||
with pytest.raises(ValueError,
|
||||
match="Group order must be positive"):
|
||||
Rotation.create_group(name)
|
||||
|
||||
|
||||
@pytest.mark.parametrize("axis", ['A', 'b', 0, 1, 2, 4, False, None])
|
||||
def test_axis_valid(axis):
|
||||
with pytest.raises(ValueError,
|
||||
match="`axis` must be one of"):
|
||||
Rotation.create_group("C1", axis)
|
||||
|
||||
|
||||
def test_icosahedral():
|
||||
"""The icosahedral group fixes the rotations of an icosahedron. Here we
|
||||
test that the icosahedron is invariant after application of the elements
|
||||
of the rotation group."""
|
||||
P = _generate_icosahedron()
|
||||
for g in Rotation.create_group("I"):
|
||||
g = Rotation.from_quat(g.as_quat())
|
||||
assert _calculate_rmsd(P, g.apply(P)) < TOL
|
||||
|
||||
|
||||
def test_octahedral():
|
||||
"""Test that the octahedral group correctly fixes the rotations of an
|
||||
octahedron."""
|
||||
P = _generate_octahedron()
|
||||
for g in Rotation.create_group("O"):
|
||||
assert _calculate_rmsd(P, g.apply(P)) < TOL
|
||||
|
||||
|
||||
def test_tetrahedral():
|
||||
"""Test that the tetrahedral group correctly fixes the rotations of a
|
||||
tetrahedron."""
|
||||
P = _generate_tetrahedron()
|
||||
for g in Rotation.create_group("T"):
|
||||
assert _calculate_rmsd(P, g.apply(P)) < TOL
|
||||
|
||||
|
||||
@pytest.mark.parametrize("n", NS)
|
||||
@pytest.mark.parametrize("axis", 'XYZ')
|
||||
def test_dicyclic(n, axis):
|
||||
"""Test that the dicyclic group correctly fixes the rotations of a
|
||||
prism."""
|
||||
P = _generate_prism(n, axis='XYZ'.index(axis))
|
||||
for g in Rotation.create_group("D%d" % n, axis=axis):
|
||||
assert _calculate_rmsd(P, g.apply(P)) < TOL
|
||||
|
||||
|
||||
@pytest.mark.parametrize("n", NS)
|
||||
@pytest.mark.parametrize("axis", 'XYZ')
|
||||
def test_cyclic(n, axis):
|
||||
"""Test that the cyclic group correctly fixes the rotations of a
|
||||
pyramid."""
|
||||
P = _generate_pyramid(n, axis='XYZ'.index(axis))
|
||||
for g in Rotation.create_group("C%d" % n, axis=axis):
|
||||
assert _calculate_rmsd(P, g.apply(P)) < TOL
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name, size", zip(NAMES, SIZES))
|
||||
def test_group_sizes(name, size):
|
||||
assert len(Rotation.create_group(name)) == size
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name, size", zip(NAMES, SIZES))
|
||||
def test_group_no_duplicates(name, size):
|
||||
g = Rotation.create_group(name)
|
||||
kdtree = cKDTree(g.as_quat())
|
||||
assert len(kdtree.query_pairs(1E-3)) == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name, size", zip(NAMES, SIZES))
|
||||
def test_group_symmetry(name, size):
|
||||
g = Rotation.create_group(name)
|
||||
q = np.concatenate((-g.as_quat(), g.as_quat()))
|
||||
distance = np.sort(cdist(q, q))
|
||||
deltas = np.max(distance, axis=0) - np.min(distance, axis=0)
|
||||
assert (deltas < TOL).all()
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", NAMES)
|
||||
def test_reduction(name):
|
||||
"""Test that the elements of the rotation group are correctly
|
||||
mapped onto the identity rotation."""
|
||||
g = Rotation.create_group(name)
|
||||
f = g.reduce(g)
|
||||
assert_array_almost_equal(f.magnitude(), np.zeros(len(g)))
|
||||
|
||||
|
||||
@pytest.mark.parametrize("name", NAMES)
|
||||
def test_single_reduction(name):
|
||||
g = Rotation.create_group(name)
|
||||
f = g[-1].reduce(g)
|
||||
assert_array_almost_equal(f.magnitude(), 0)
|
||||
assert f.as_quat().shape == (4,)
|
|
@ -0,0 +1,161 @@
|
|||
from itertools import product
|
||||
import numpy as np
|
||||
from numpy.testing import assert_allclose
|
||||
from pytest import raises
|
||||
from scipy.spatial.transform import Rotation, RotationSpline
|
||||
from scipy.spatial.transform._rotation_spline import (
|
||||
_angular_rate_to_rotvec_dot_matrix,
|
||||
_rotvec_dot_to_angular_rate_matrix,
|
||||
_matrix_vector_product_of_stacks,
|
||||
_angular_acceleration_nonlinear_term,
|
||||
_create_block_3_diagonal_matrix)
|
||||
|
||||
|
||||
def test_angular_rate_to_rotvec_conversions():
|
||||
np.random.seed(0)
|
||||
rv = np.random.randn(4, 3)
|
||||
A = _angular_rate_to_rotvec_dot_matrix(rv)
|
||||
A_inv = _rotvec_dot_to_angular_rate_matrix(rv)
|
||||
|
||||
# When the rotation vector is aligned with the angular rate, then
|
||||
# the rotation vector rate and angular rate are the same.
|
||||
assert_allclose(_matrix_vector_product_of_stacks(A, rv), rv)
|
||||
assert_allclose(_matrix_vector_product_of_stacks(A_inv, rv), rv)
|
||||
|
||||
# A and A_inv must be reciprocal to each other.
|
||||
I_stack = np.empty((4, 3, 3))
|
||||
I_stack[:] = np.eye(3)
|
||||
assert_allclose(np.matmul(A, A_inv), I_stack, atol=1e-15)
|
||||
|
||||
|
||||
def test_angular_rate_nonlinear_term():
|
||||
# The only simple test is to check that the term is zero when
|
||||
# the rotation vector
|
||||
np.random.seed(0)
|
||||
rv = np.random.rand(4, 3)
|
||||
assert_allclose(_angular_acceleration_nonlinear_term(rv, rv), 0,
|
||||
atol=1e-19)
|
||||
|
||||
|
||||
def test_create_block_3_diagonal_matrix():
|
||||
np.random.seed(0)
|
||||
A = np.empty((4, 3, 3))
|
||||
A[:] = np.arange(1, 5)[:, None, None]
|
||||
|
||||
B = np.empty((4, 3, 3))
|
||||
B[:] = -np.arange(1, 5)[:, None, None]
|
||||
d = 10 * np.arange(10, 15)
|
||||
|
||||
banded = _create_block_3_diagonal_matrix(A, B, d)
|
||||
|
||||
# Convert the banded matrix to the full matrix.
|
||||
k, l = list(zip(*product(np.arange(banded.shape[0]),
|
||||
np.arange(banded.shape[1]))))
|
||||
k = np.asarray(k)
|
||||
l = np.asarray(l)
|
||||
|
||||
i = k - 5 + l
|
||||
j = l
|
||||
values = banded.ravel()
|
||||
mask = (i >= 0) & (i < 15)
|
||||
i = i[mask]
|
||||
j = j[mask]
|
||||
values = values[mask]
|
||||
full = np.zeros((15, 15))
|
||||
full[i, j] = values
|
||||
|
||||
zero = np.zeros((3, 3))
|
||||
eye = np.eye(3)
|
||||
|
||||
# Create the reference full matrix in the most straightforward manner.
|
||||
ref = np.block([
|
||||
[d[0] * eye, B[0], zero, zero, zero],
|
||||
[A[0], d[1] * eye, B[1], zero, zero],
|
||||
[zero, A[1], d[2] * eye, B[2], zero],
|
||||
[zero, zero, A[2], d[3] * eye, B[3]],
|
||||
[zero, zero, zero, A[3], d[4] * eye],
|
||||
])
|
||||
|
||||
assert_allclose(full, ref, atol=1e-19)
|
||||
|
||||
|
||||
def test_spline_2_rotations():
|
||||
times = [0, 10]
|
||||
rotations = Rotation.from_euler('xyz', [[0, 0, 0], [10, -20, 30]],
|
||||
degrees=True)
|
||||
spline = RotationSpline(times, rotations)
|
||||
|
||||
rv = (rotations[0].inv() * rotations[1]).as_rotvec()
|
||||
rate = rv / (times[1] - times[0])
|
||||
times_check = np.array([-1, 5, 12])
|
||||
dt = times_check - times[0]
|
||||
rv_ref = rate * dt[:, None]
|
||||
|
||||
assert_allclose(spline(times_check).as_rotvec(), rv_ref)
|
||||
assert_allclose(spline(times_check, 1), np.resize(rate, (3, 3)))
|
||||
assert_allclose(spline(times_check, 2), 0, atol=1e-16)
|
||||
|
||||
|
||||
def test_constant_attitude():
|
||||
times = np.arange(10)
|
||||
rotations = Rotation.from_rotvec(np.ones((10, 3)))
|
||||
spline = RotationSpline(times, rotations)
|
||||
|
||||
times_check = np.linspace(-1, 11)
|
||||
assert_allclose(spline(times_check).as_rotvec(), 1, rtol=1e-15)
|
||||
assert_allclose(spline(times_check, 1), 0, atol=1e-19)
|
||||
assert_allclose(spline(times_check, 2), 0, atol=1e-19)
|
||||
|
||||
assert_allclose(spline(5.5).as_rotvec(), 1, rtol=1e-15)
|
||||
assert_allclose(spline(5.5, 1), 0, atol=1e-19)
|
||||
assert_allclose(spline(5.5, 2), 0, atol=1e-19)
|
||||
|
||||
|
||||
def test_spline_properties():
|
||||
times = np.array([0, 5, 15, 27])
|
||||
angles = [[-5, 10, 27], [3, 5, 38], [-12, 10, 25], [-15, 20, 11]]
|
||||
|
||||
rotations = Rotation.from_euler('xyz', angles, degrees=True)
|
||||
spline = RotationSpline(times, rotations)
|
||||
|
||||
assert_allclose(spline(times).as_euler('xyz', degrees=True), angles)
|
||||
assert_allclose(spline(0).as_euler('xyz', degrees=True), angles[0])
|
||||
|
||||
h = 1e-8
|
||||
rv0 = spline(times).as_rotvec()
|
||||
rvm = spline(times - h).as_rotvec()
|
||||
rvp = spline(times + h).as_rotvec()
|
||||
assert_allclose(rv0, 0.5 * (rvp + rvm), rtol=1e-15)
|
||||
|
||||
r0 = spline(times, 1)
|
||||
rm = spline(times - h, 1)
|
||||
rp = spline(times + h, 1)
|
||||
assert_allclose(r0, 0.5 * (rm + rp), rtol=1e-14)
|
||||
|
||||
a0 = spline(times, 2)
|
||||
am = spline(times - h, 2)
|
||||
ap = spline(times + h, 2)
|
||||
assert_allclose(a0, am, rtol=1e-7)
|
||||
assert_allclose(a0, ap, rtol=1e-7)
|
||||
|
||||
|
||||
def test_error_handling():
|
||||
raises(ValueError, RotationSpline, [1.0], Rotation.random())
|
||||
|
||||
r = Rotation.random(10)
|
||||
t = np.arange(10).reshape(5, 2)
|
||||
raises(ValueError, RotationSpline, t, r)
|
||||
|
||||
t = np.arange(9)
|
||||
raises(ValueError, RotationSpline, t, r)
|
||||
|
||||
t = np.arange(10)
|
||||
t[5] = 0
|
||||
raises(ValueError, RotationSpline, t, r)
|
||||
|
||||
t = np.arange(10)
|
||||
|
||||
s = RotationSpline(t, r)
|
||||
raises(ValueError, s, 10, -1)
|
||||
|
||||
raises(ValueError, s, np.arange(10).reshape(5, 2))
|
Loading…
Add table
Add a link
Reference in a new issue