From scipy-svn at scipy.org Thu Aug 3 10:39:04 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Thu, 3 Aug 2006 09:39:04 -0500 (CDT)
Subject: [Scipy-svn] r2143 - in trunk/Lib/sandbox/svm: . tests
Message-ID: <20060803143904.5BB1039C045@new.scipy.org>
Author: fullung
Date: 2006-08-03 09:38:13 -0500 (Thu, 03 Aug 2006)
New Revision: 2143
Modified:
trunk/Lib/sandbox/svm/classification.py
trunk/Lib/sandbox/svm/oneclass.py
trunk/Lib/sandbox/svm/predict.py
trunk/Lib/sandbox/svm/tests/test_classification.py
trunk/Lib/sandbox/svm/tests/test_oneclass.py
trunk/Lib/sandbox/svm/tests/test_regression.py
Log:
Model compaction.
Modified: trunk/Lib/sandbox/svm/classification.py
===================================================================
--- trunk/Lib/sandbox/svm/classification.py 2006-07-28 00:10:27 UTC (rev 2142)
+++ trunk/Lib/sandbox/svm/classification.py 2006-08-03 14:38:13 UTC (rev 2143)
@@ -42,7 +42,7 @@
For training data with nr_class classes, this function returns
nr_class*(nr_class-1)/2 decision values in a dictionary for
each item in the test dataset. The keys of the dictionary are
- 2-tuples, one for each combination of two class labels.
+ 2-tuples, one for each permutation of two class labels.
"""
n = self.nr_class * (self.nr_class - 1) / 2
def p(v):
Modified: trunk/Lib/sandbox/svm/oneclass.py
===================================================================
--- trunk/Lib/sandbox/svm/oneclass.py 2006-07-28 00:10:27 UTC (rev 2142)
+++ trunk/Lib/sandbox/svm/oneclass.py 2006-08-03 14:38:13 UTC (rev 2143)
@@ -33,7 +33,7 @@
distribution, while a non-positive value indicates that is is
not.
"""
- return [self.predictor.predict_values(x, 1)[0] for x in dataset]
+ return [self.predictor.predict_values(x, 1) for x in dataset]
def compact(self):
self.predictor.compact()
Modified: trunk/Lib/sandbox/svm/predict.py
===================================================================
--- trunk/Lib/sandbox/svm/predict.py 2006-07-28 00:10:27 UTC (rev 2142)
+++ trunk/Lib/sandbox/svm/predict.py 2006-08-03 14:38:13 UTC (rev 2143)
@@ -1,4 +1,5 @@
-from ctypes import POINTER, c_double, addressof
+from ctypes import POINTER, c_double, addressof, byref
+from itertools import izip
import numpy as N
from dataset import svm_node_dot
@@ -44,7 +45,10 @@
v = N.empty((n,), dtype=N.float64)
vptr = v.ctypes.data_as(POINTER(c_double))
libsvm.svm_predict_values(self.model, xptr, vptr)
- return v
+ if n == 1:
+ return v[0]
+ else:
+ return v
def predict_probability(self, x, n):
if not self.model.contents.param.probability:
@@ -88,6 +92,7 @@
ids = [int(modelc.SV[i][0].value) for i in range(modelc.l)]
support_vectors = [dataset[id] for id in ids]
self.support_vectors = support_vectors
+ self.is_compact = False
libsvm.svm_destroy_model(model)
def predict(self, x):
@@ -107,7 +112,7 @@
else:
return self.predict_values(x, 1)
- def predict_values(self, x, n):
+ def _predict_values_sparse(self, x, n):
if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
kvalue = N.empty((len(self.support_vectors),))
for i, sv in enumerate(self.support_vectors):
@@ -121,12 +126,12 @@
ci, cj = self.nSV[i], self.nSV[j]
coef1 = self.sv_coef[j - 1]
coef2 = self.sv_coef[i]
- sum = -self.rho[p]
+ sum = 0.
for k in range(ci):
sum += coef1[si + k] * kvalue[si + k]
for k in range(cj):
sum += coef2[sj + k] * kvalue[sj + k]
- dec_values[p] = sum
+ dec_values[p] = sum - self.rho[p]
p += 1
return dec_values
else:
@@ -135,8 +140,52 @@
z += sv_coef * self.kernel(x, sv, svm_node_dot)
return z
+ def _predict_values_compact(self, x, n):
+ if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
+ for i, sv in enumerate(self.support_vectors):
+ kvalue = N.empty((len(self.support_vectors),))
+ kvalue[i] = self.kernel(x, sv, svm_node_dot)
+ return kvalue - self.rho
+ else:
+ sv = self.support_vectors[0]
+ return self.kernel(x, sv, svm_node_dot) - self.rho
+
+ def predict_values(self, x, n):
+ if self.is_compact:
+ return self._predict_values_compact(x, n)
+ else:
+ return self._predict_values_sparse(x, n)
+
def predict_probability(self, x, n):
raise NotImplementedError
+ def _compact_svs(self, svs, coefs):
+ maxlen = 0
+ for sv in svs:
+ maxlen = N.maximum(maxlen, sv['index'].max())
+ csv = N.zeros((maxlen + 1,), libsvm.svm_node_dtype)
+ csv['index'][:-1] = N.arange(1, maxlen + 1)
+ csv['index'][-1] = -1
+ for coef, sv in izip(coefs, svs):
+ idx = sv['index'][:-1] - 1
+ csv['value'][idx] += coef*sv['value'][:-1]
+ return csv
+
def compact(self):
- raise NotImplementedError
+ if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
+ compact_support_vectors = []
+ for i in range(self.nr_class):
+ for j in range(i + 1, self.nr_class):
+ si, sj = self.start[i], self.start[j]
+ ci, cj = self.nSV[i], self.nSV[j]
+ svi = self.support_vectors[si:si + ci]
+ svj = self.support_vectors[sj:sj + cj]
+ coef1 = self.sv_coef[j - 1][si:si + ci]
+ coef2 = self.sv_coef[i][sj:sj + cj]
+ csv = self._compact_svs(svi + svj, coef1 + coef2)
+ compact_support_vectors.append(csv)
+ self.support_vectors = compact_support_vectors
+ else:
+ csv = self._compact_svs(self.support_vectors, self.sv_coef)
+ self.support_vectors = [csv]
+ self.is_compact = True
Modified: trunk/Lib/sandbox/svm/tests/test_classification.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_classification.py 2006-07-28 00:10:27 UTC (rev 2142)
+++ trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-03 14:38:13 UTC (rev 2143)
@@ -139,7 +139,7 @@
refx = N.vstack([x1, x2])
trndata = LibSvmClassificationDataSet(zip(reflabels, refx))
testdata = LibSvmTestDataSet(refx)
- return trndata, trndata1, trndata2, testdata
+ return trndata, testdata, trndata1, trndata2
def _make_kernels(self):
def kernelf(x, y, dot):
@@ -158,7 +158,7 @@
return kernels
def check_all(self):
- trndata, trndata1, trndata2, testdata = self._make_datasets()
+ trndata, testdata, trndata1, trndata2 = self._make_datasets()
kernels = self._make_kernels()
weights = [(0, 2.0), (1, 5.0), (2, 3.0)]
for kernel in kernels:
@@ -226,5 +226,20 @@
p = results.predict(testdata)
assert_array_equal(p, refp)
+ def check_compact(self):
+ traindata, testdata = self._make_basic_datasets()
+ kernel = LinearKernel()
+ cost = 10.0
+ weights = [(1, 10.0)]
+ model = LibSvmCClassificationModel(kernel, cost, weights)
+ results = model.fit(traindata, LibSvmPythonPredictor)
+ refvs = results.predict_values(testdata)
+ results.compact()
+ vs = results.predict_values(testdata)
+ print vs
+ for refv, v in zip(refvs, vs):
+ for key, value in refv.iteritems():
+ self.assertEqual(value, v[key])
+
if __name__ == '__main__':
NumpyTest().run()
Modified: trunk/Lib/sandbox/svm/tests/test_oneclass.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_oneclass.py 2006-07-28 00:10:27 UTC (rev 2142)
+++ trunk/Lib/sandbox/svm/tests/test_oneclass.py 2006-08-03 14:38:13 UTC (rev 2143)
@@ -5,6 +5,7 @@
from svm.dataset import LibSvmOneClassDataSet, LibSvmTestDataSet
from svm.kernel import *
from svm.oneclass import *
+from svm.predict import *
restore_path()
class test_oneclass(NumpyTestCase):
@@ -24,9 +25,8 @@
return traindata, testdata
def check_train(self):
- ModelType = LibSvmOneClassModel
traindata, testdata = self._make_basic_datasets()
- model = ModelType(LinearKernel())
+ model = LibSvmOneClassModel(LinearKernel())
results = model.fit(traindata)
p = results.predict(testdata)
assert_array_equal(p, [False, False, False, True])
@@ -56,5 +56,14 @@
for p, v in zip(pred, values):
self.assertEqual(v > 0, p)
+ def check_compact(self):
+ traindata, testdata = self._make_basic_datasets()
+ model = LibSvmOneClassModel(LinearKernel())
+ results = model.fit(traindata, LibSvmPythonPredictor)
+ refv = results.predict_values(testdata)
+ results.compact()
+ v = results.predict_values(testdata)
+ assert_array_equal(refv, v)
+
if __name__ == '__main__':
NumpyTest().run()
Modified: trunk/Lib/sandbox/svm/tests/test_regression.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_regression.py 2006-07-28 00:10:27 UTC (rev 2142)
+++ trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-03 14:38:13 UTC (rev 2143)
@@ -163,5 +163,15 @@
p = results.predict(testdata)
assert_array_almost_equal(refp, p)
+ def check_compact(self):
+ traindata, testdata = self._make_basic_datasets()
+ kernel = LinearKernel()
+ model = LibSvmEpsilonRegressionModel(LinearKernel())
+ results = model.fit(traindata, LibSvmPythonPredictor)
+ refp = results.predict(testdata)
+ results.compact()
+ p = results.predict(testdata)
+ assert_array_equal(refp, p)
+
if __name__ == '__main__':
NumpyTest().run()
From scipy-svn at scipy.org Thu Aug 3 11:12:32 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Thu, 3 Aug 2006 10:12:32 -0500 (CDT)
Subject: [Scipy-svn] r2144 - in trunk/Lib/sandbox/svm: . tests
Message-ID: <20060803151232.D3A0239C093@new.scipy.org>
Author: fullung
Date: 2006-08-03 10:12:13 -0500 (Thu, 03 Aug 2006)
New Revision: 2144
Modified:
trunk/Lib/sandbox/svm/dataset.py
trunk/Lib/sandbox/svm/tests/test_classification.py
trunk/Lib/sandbox/svm/tests/test_dataset.py
trunk/Lib/sandbox/svm/tests/test_regression.py
Log:
Move zipping inside the datasets.
Modified: trunk/Lib/sandbox/svm/dataset.py
===================================================================
--- trunk/Lib/sandbox/svm/dataset.py 2006-08-03 14:38:13 UTC (rev 2143)
+++ trunk/Lib/sandbox/svm/dataset.py 2006-08-03 15:12:13 UTC (rev 2144)
@@ -139,22 +139,20 @@
param.kernel_type = libsvm.PRECOMPUTED
class LibSvmRegressionDataSet(LibSvmDataSet):
- def __init__(self, origdata):
- data = map(lambda x: (x[0], convert_to_svm_node(x[1])), origdata)
+ def __init__(self, y, x):
+ origdata = zip(y, x)
+ data = [(x[0], convert_to_svm_node(x[1])) for x in origdata]
LibSvmDataSet.__init__(self, data)
class LibSvmClassificationDataSet(LibSvmDataSet):
- def __init__(self, origdata):
- labels = N.array(map(lambda x: x[0], origdata), dtype=N.intc)
- labels.sort()
- self.labels = labels
-
- data = map(lambda x: (x[0],convert_to_svm_node(x[1])), origdata)
+ def __init__(self, labels, x):
+ origdata = zip(labels, x)
+ data = [(x[0], convert_to_svm_node(x[1])) for x in origdata]
LibSvmDataSet.__init__(self, data)
class LibSvmOneClassDataSet(LibSvmDataSet):
- def __init__(self, origdata):
- data = map(lambda x: tuple([0,convert_to_svm_node(x)]), origdata)
+ def __init__(self, x):
+ data = [(0, convert_to_svm_node(y)) for y in x]
LibSvmDataSet.__init__(self, data)
class LibSvmTestDataSet:
Modified: trunk/Lib/sandbox/svm/tests/test_classification.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-03 14:38:13 UTC (rev 2143)
+++ trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-03 15:12:13 UTC (rev 2144)
@@ -32,7 +32,7 @@
N.array([0, 1]),
N.array([1, 0]),
N.array([1, 1])]
- traindata = LibSvmClassificationDataSet(zip(labels, x))
+ traindata = LibSvmClassificationDataSet(labels, x)
testdata = LibSvmTestDataSet(x)
return traindata, testdata
@@ -100,7 +100,7 @@
def check_cross_validate(self):
labels = ([-1] * 50) + ([1] * 50)
x = N.random.randn(len(labels), 10)
- traindata = LibSvmClassificationDataSet(zip(labels, x))
+ traindata = LibSvmClassificationDataSet(labels, x)
kernel = LinearKernel()
model = LibSvmCClassificationModel(kernel)
nr_fold = 10
@@ -133,11 +133,11 @@
x1 = N.random.randn(len(labels1), 10)
labels2 = N.random.random_integers(0, 2, 10)
x2 = N.random.randn(len(labels2), x1.shape[1])
- trndata1 = LibSvmClassificationDataSet(zip(labels1, x1))
- trndata2 = LibSvmClassificationDataSet(zip(labels2, x2))
+ trndata1 = LibSvmClassificationDataSet(labels1, x1)
+ trndata2 = LibSvmClassificationDataSet(labels2, x2)
reflabels = N.concatenate([labels1, labels2])
refx = N.vstack([x1, x2])
- trndata = LibSvmClassificationDataSet(zip(reflabels, refx))
+ trndata = LibSvmClassificationDataSet(reflabels, refx)
testdata = LibSvmTestDataSet(refx)
return trndata, testdata, trndata1, trndata2
Modified: trunk/Lib/sandbox/svm/tests/test_dataset.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_dataset.py 2006-08-03 14:38:13 UTC (rev 2143)
+++ trunk/Lib/sandbox/svm/tests/test_dataset.py 2006-08-03 15:12:13 UTC (rev 2144)
@@ -93,7 +93,7 @@
]
y = N.random.randn(10)
x = N.random.randn(len(y), 10)
- origdata = LibSvmRegressionDataSet(zip(y, x))
+ origdata = LibSvmRegressionDataSet(y, x)
for kernel in kernels:
# calculate expected Gram matrix
@@ -112,12 +112,12 @@
y1 = N.random.randn(10)
x1 = N.random.randn(len(y1), 10)
- origdata = LibSvmRegressionDataSet(zip(y1, x1))
+ origdata = LibSvmRegressionDataSet(y1, x1)
pcdata = origdata.precompute(kernel)
y2 = N.random.randn(5)
x2 = N.random.randn(len(y2), x1.shape[1])
- moredata = LibSvmRegressionDataSet(zip(y2, x2))
+ moredata = LibSvmRegressionDataSet(y2, x2)
morepcdata = pcdata.combine(moredata)
expt_grammat = N.empty((len(y1) + len(y2),)*2)
Modified: trunk/Lib/sandbox/svm/tests/test_regression.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-03 14:38:13 UTC (rev 2143)
+++ trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-03 15:12:13 UTC (rev 2144)
@@ -32,7 +32,7 @@
N.array([0, 1]),
N.array([1, 0]),
N.array([1, 1])]
- traindata = LibSvmRegressionDataSet(zip(y, x))
+ traindata = LibSvmRegressionDataSet(y, x)
testdata = LibSvmTestDataSet(x)
model = ModelType(LinearKernel(), probability=True)
results = model.fit(traindata)
@@ -45,7 +45,7 @@
N.array([0, 1]),
N.array([1, 0]),
N.array([1, 1])]
- traindata = LibSvmRegressionDataSet(zip(labels, x))
+ traindata = LibSvmRegressionDataSet(labels, x)
testdata = LibSvmTestDataSet(x)
return traindata, testdata
@@ -85,7 +85,7 @@
def check_cross_validate(self):
y = N.random.randn(100)
x = N.random.randn(len(y), 10)
- traindata = LibSvmRegressionDataSet(zip(y, x))
+ traindata = LibSvmRegressionDataSet(y, x)
kernel = LinearKernel()
model = LibSvmEpsilonRegressionModel(kernel)
nr_fold = 10
@@ -108,11 +108,11 @@
x1 = N.random.randn(len(y1), 10)
y2 = N.random.randn(5)
x2 = N.random.randn(len(y2), x1.shape[1])
- trndata1 = LibSvmRegressionDataSet(zip(y1, x1))
- trndata2 = LibSvmRegressionDataSet(zip(y2, x2))
+ trndata1 = LibSvmRegressionDataSet(y1, x1)
+ trndata2 = LibSvmRegressionDataSet(y2, x2)
refy = N.concatenate([y1, y2])
refx = N.vstack([x1, x2])
- trndata = LibSvmRegressionDataSet(zip(refy, refx))
+ trndata = LibSvmRegressionDataSet(refy, refx)
testdata = LibSvmTestDataSet(refx)
return trndata, trndata1, trndata2, testdata
From scipy-svn at scipy.org Thu Aug 3 11:14:30 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Thu, 3 Aug 2006 10:14:30 -0500 (CDT)
Subject: [Scipy-svn] r2145 - trunk/Lib/sandbox/svm/tests
Message-ID: <20060803151430.2738339C093@new.scipy.org>
Author: fullung
Date: 2006-08-03 10:14:19 -0500 (Thu, 03 Aug 2006)
New Revision: 2145
Added:
trunk/Lib/sandbox/svm/tests/test_speed.py
Log:
Benchmark with large test dataset.
Added: trunk/Lib/sandbox/svm/tests/test_speed.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_speed.py 2006-08-03 15:12:13 UTC (rev 2144)
+++ trunk/Lib/sandbox/svm/tests/test_speed.py 2006-08-03 15:14:19 UTC (rev 2145)
@@ -0,0 +1,28 @@
+from numpy.testing import *
+import numpy as N
+
+set_local_path('../..')
+from svm.classification import *
+from svm.dataset import *
+from svm.kernel import *
+from svm.predict import *
+restore_path()
+
+class test_classification_speed(NumpyTestCase):
+ def check_large_test_dataset(self):
+ x = N.random.randn(150, 5)
+ labels = N.random.random_integers(1, 5, x.shape[0])
+ traindata = LibSvmClassificationDataSet(labels, x)
+
+ kernel = RBFKernel(traindata.gamma)
+ model = LibSvmCClassificationModel(kernel)
+ results = model.fit(traindata, LibSvmPythonPredictor)
+ results.compact()
+
+ xdim, ydim = 32, 32
+ img = N.random.randn(xdim, ydim, 3)
+ testdata = LibSvmTestDataSet(img.reshape(xdim*ydim, 3))
+ v = results.predict_values(testdata)
+
+if __name__ == '__main__':
+ NumpyTest().run()
From scipy-svn at scipy.org Thu Aug 3 16:57:55 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Thu, 3 Aug 2006 15:57:55 -0500 (CDT)
Subject: [Scipy-svn] r2146 - in trunk/Lib: . sandbox
Message-ID: <20060803205755.2A21F39C088@new.scipy.org>
Author: oliphant
Date: 2006-08-03 15:57:51 -0500 (Thu, 03 Aug 2006)
New Revision: 2146
Added:
trunk/Lib/stsci/
Removed:
trunk/Lib/sandbox/stsci/
Modified:
trunk/Lib/setup.py
Log:
Move stsci to main tree.
Modified: trunk/Lib/setup.py
===================================================================
--- trunk/Lib/setup.py 2006-08-03 15:14:19 UTC (rev 2145)
+++ trunk/Lib/setup.py 2006-08-03 20:57:51 UTC (rev 2146)
@@ -20,6 +20,7 @@
config.add_subpackage('special')
config.add_subpackage('stats')
config.add_subpackage('ndimage')
+ config.add_subpackage('stsci')
config.add_subpackage('weave')
config.make_svn_version_py() # installs __svn_version__.py
config.make_config_py()
Copied: trunk/Lib/stsci (from rev 2142, trunk/Lib/sandbox/stsci)
From scipy-svn at scipy.org Thu Aug 3 19:44:13 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Thu, 3 Aug 2006 18:44:13 -0500 (CDT)
Subject: [Scipy-svn] r2147 - trunk/Lib/io
Message-ID: <20060803234413.04AEE39C0A7@new.scipy.org>
Author: oliphant
Date: 2006-08-03 18:44:12 -0500 (Thu, 03 Aug 2006)
New Revision: 2147
Modified:
trunk/Lib/io/mio.py
Log:
Fix exact type-checking for array
Modified: trunk/Lib/io/mio.py
===================================================================
--- trunk/Lib/io/mio.py 2006-08-03 20:57:51 UTC (rev 2146)
+++ trunk/Lib/io/mio.py 2006-08-03 23:44:12 UTC (rev 2147)
@@ -857,7 +857,7 @@
O = 0
for variable in dict.keys():
var = dict[variable]
- if type(var) is not ArrayType:
+ if not isinstance(var, ArrayType):
continue
if var.dtype.char == 'S1':
T = 1
From scipy-svn at scipy.org Fri Aug 4 06:13:26 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 4 Aug 2006 05:13:26 -0500 (CDT)
Subject: [Scipy-svn] r2148 - in trunk/Lib: io sandbox/odr sandbox/xplt
stats/tests
Message-ID: <20060804101326.99D9F39C0C8@new.scipy.org>
Author: edschofield
Date: 2006-08-04 05:13:12 -0500 (Fri, 04 Aug 2006)
New Revision: 2148
Modified:
trunk/Lib/io/mio.py
trunk/Lib/io/mmio.py
trunk/Lib/sandbox/odr/odrpack.py
trunk/Lib/sandbox/xplt/ezplot.py
trunk/Lib/sandbox/xplt/graph.py
trunk/Lib/sandbox/xplt/shapetest.py
trunk/Lib/stats/tests/test_distributions.py
Log:
Some conversions ArrayType -> ndarray
Modified: trunk/Lib/io/mio.py
===================================================================
--- trunk/Lib/io/mio.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/io/mio.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -3,7 +3,7 @@
# Author: Travis Oliphant
from numpy import squeeze
-from numpy import ndarray as ArrayType
+from numpy import ndarray
from numpy import *
import numpyio
import struct, os, sys
@@ -857,7 +857,7 @@
O = 0
for variable in dict.keys():
var = dict[variable]
- if not isinstance(var, ArrayType):
+ if not isinstance(var, ndarray):
continue
if var.dtype.char == 'S1':
T = 1
Modified: trunk/Lib/io/mmio.py
===================================================================
--- trunk/Lib/io/mmio.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/io/mmio.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -13,9 +13,7 @@
# TODO: support for sparse matrices, need spmatrix.tocoo().
import os
-from types import ListType, TupleType
-from numpy import asarray, real,imag,conj,zeros
-from numpy import ndarray as ArrayType
+from numpy import asarray, real, imag, conj, zeros, ndarray
__all__ = ['mminfo','mmread','mmwrite']
@@ -239,7 +237,7 @@
target = open(target,'w')
close_it = 1
- if type(a) in [ListType,ArrayType,TupleType] or hasattr(a,'__array__'):
+ if isinstance(a, list) or isinstance(a, ndarray) or isinstance(a, tuple) or hasattr(a,'__array__'):
rep = 'array'
a = asarray(a)
if len(a.shape) != 2:
Modified: trunk/Lib/sandbox/odr/odrpack.py
===================================================================
--- trunk/Lib/sandbox/odr/odrpack.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/sandbox/odr/odrpack.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -378,7 +378,7 @@
if len(cov.shape) == 2:
return linalg.inverse(cov)
else:
- weights = numpy.zeros(cov.shape, Float)
+ weights = numpy.zeros(cov.shape, float)
for i in range(cov.shape[-1]): # n
weights[:,:,i] = linalg.inv(cov[:,:,i])
@@ -740,7 +740,7 @@
x_s = list(self.data.x.shape)
- if type(self.data.y) is numpy.ArrayType:
+ if isinstance(self.data.y, numpy.ndarray):
y_s = list(self.data.y.shape)
if self.model.implicit:
raise odr_error, "an implicit model cannot use response data"
@@ -853,12 +853,12 @@
lwork = (18 + 11*p + p*p + m + m*m + 4*n*q + 2*n*m + 2*n*q*p +
5*q + q*(p+m) + ldwe*ld2we*q)
- if type(self.work) is numpy.ArrayType and self.work.shape == (lwork,)\
- and self.work.dtype == numpy.Float:
+ if isinstance(self.work, numpy.ndarray) and self.work.shape == (lwork,)\
+ and self.work.dtype == numpy.Float:
# the existing array is fine
return
else:
- self.work = numpy.zeros((lwork,), numpy.Float)
+ self.work = numpy.zeros((lwork,), float)
def set_job(self, fit_type=None, deriv=None, var_calc=None,
del_init=None, restart=None):
Modified: trunk/Lib/sandbox/xplt/ezplot.py
===================================================================
--- trunk/Lib/sandbox/xplt/ezplot.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/sandbox/xplt/ezplot.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -158,6 +158,7 @@
import shapetest
from scipy import *
+from numpy import ndarray
from numpy.core.umath import *
_ezdict_ = {'t': 'true' , 'T': 'true', 'y': 'true', 'Y': 'true',
@@ -934,7 +935,7 @@
col = [col] * no_of_coords
elif len (col) < no_of_coords :
col = col + [_color_] * (no_of_coords - len (col))
- if x is None or type (x) == ArrayType and len (shape (x)) == 1 :
+ if x is None or isinstance(x, ndarray) and x.ndim == 1:
x = [x] * no_of_coords
elif shape (x) [0] < no_of_coords :
x = x + [None] * no_of_coords - shape (x) [0]
Modified: trunk/Lib/sandbox/xplt/graph.py
===================================================================
--- trunk/Lib/sandbox/xplt/graph.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/sandbox/xplt/graph.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -1,5 +1,3 @@
-## Automatically adapted for scipy Oct 31, 2005 by
-
# Copyright (c) 1996, 1997, The Regents of the University of California.
# All rights reserved. See Legal.htm for full text and disclaimer.
@@ -31,6 +29,7 @@
from scipy import *
from numpy.core.umath import *
from shapetest import *
+from numpy import ndarray
class Graph :
@@ -197,7 +196,7 @@
elif is_scalar (axl) :
raise self._AxisSpecError , \
"Axis limits must be a point."
- elif type (axl) == ListType or type (axl) == ArrayType :
+ elif isinstance(axl, list) or isinstance(axl, ndarray):
if type (axl [0]) != ListType and type (axl [0]) != ArrayType :
self._axis_limits [0] = axl
else :
Modified: trunk/Lib/sandbox/xplt/shapetest.py
===================================================================
--- trunk/Lib/sandbox/xplt/shapetest.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/sandbox/xplt/shapetest.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -1,11 +1,10 @@
-## Automatically adapted for scipy Oct 31, 2005 by
-
# Copyright (c) 1996, 1997, The Regents of the University of California.
# All rights reserved. See Legal.htm for full text and disclaimer.
# I've felt the need for such a test for a long time;
# this tells you whether an item is a scalar or not.
from types import *
+from numpy import ndarray
from scipy import *
def is_scalar (x) :
@@ -19,8 +18,8 @@
# This routine should be able to tell you the size of any object:
def no_of_dims (x) :
if x == None : return 0
- if (type (x) == ArrayType) : return len (x.shape)
- if (type (x) == ListType or type (x) == TupleType) : return 1
+ if (isinstance(x, ndarray)) : return len (x.shape)
+ if (isinstance(x, list) or isinstance(x, tuple) : return 1
# I don't know if there are any other possibilities.
for i in range (10) :
if is_scalar (x) : return i
Modified: trunk/Lib/stats/tests/test_distributions.py
===================================================================
--- trunk/Lib/stats/tests/test_distributions.py 2006-08-03 23:44:12 UTC (rev 2147)
+++ trunk/Lib/stats/tests/test_distributions.py 2006-08-04 10:13:12 UTC (rev 2148)
@@ -103,7 +103,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.binom.rvs(10, 0.75)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
@@ -114,7 +114,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.bernoulli.rvs(0.75)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_nbinom(ScipyTestCase):
@@ -124,7 +124,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.nbinom.rvs(10, 0.75)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_geom(ScipyTestCase):
@@ -134,7 +134,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.geom.rvs(0.75)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_hypergeom(ScipyTestCase):
@@ -145,7 +145,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.hypergeom.rvs(20, 3, 10)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_logser(ScipyTestCase):
@@ -155,7 +155,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.logser.rvs(0.75)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_poisson(ScipyTestCase):
@@ -165,7 +165,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.poisson.rvs(0.5)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_zipf(ScipyTestCase):
@@ -175,7 +175,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.zipf.rvs(1.5)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
class test_dlaplace(ScipyTestCase):
@@ -184,7 +184,7 @@
assert(numpy.shape(vals) == (2, 50))
assert(vals.dtype.char in numpy.typecodes['AllInteger'])
val = stats.dlaplace.rvs(1.5)
- assert(isinstance(val, numpy.ArrayType))
+ assert(isinstance(val, numpy.ndarray))
assert(val.dtype.char in numpy.typecodes['AllInteger'])
if __name__ == "__main__":
From scipy-svn at scipy.org Sat Aug 5 03:28:01 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sat, 5 Aug 2006 02:28:01 -0500 (CDT)
Subject: [Scipy-svn] r2149 - in trunk/Lib: fftpack fftpack/tests ndimage
ndimage/tests sandbox/xplt stats stats/tests
Message-ID: <20060805072801.452E239C06B@new.scipy.org>
Author: oliphant
Date: 2006-08-05 02:27:52 -0500 (Sat, 05 Aug 2006)
New Revision: 2149
Modified:
trunk/Lib/fftpack/helper.py
trunk/Lib/fftpack/tests/test_basic.py
trunk/Lib/ndimage/filters.py
trunk/Lib/ndimage/measurements.py
trunk/Lib/ndimage/morphology.py
trunk/Lib/ndimage/tests/test_ndimage.py
trunk/Lib/sandbox/xplt/shapetest.py
trunk/Lib/stats/distributions.py
trunk/Lib/stats/tests/test_distributions.py
Log:
Updates to work with NumPy 1.0b2
Modified: trunk/Lib/fftpack/helper.py
===================================================================
--- trunk/Lib/fftpack/helper.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/fftpack/helper.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -1,7 +1,7 @@
__all__ = ['fftshift', 'ifftshift', 'fftfreq', 'rfftfreq']
from numpy import array
-from numpy.dft.helper import fftshift, ifftshift, fftfreq
+from numpy.fft.helper import fftshift, ifftshift, fftfreq
def rfftfreq(n,d=1.0):
""" rfftfreq(n, d=1.0) -> f
Modified: trunk/Lib/fftpack/tests/test_basic.py
===================================================================
--- trunk/Lib/fftpack/tests/test_basic.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/fftpack/tests/test_basic.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -19,7 +19,7 @@
from numpy import arange, add, array, asarray, zeros, dot, exp, pi,\
swapaxes, double, cdouble
-import numpy.dft
+import numpy.fft
from numpy.random import rand
def random(size):
@@ -121,13 +121,13 @@
n = 2**i
x = range(n)
y = fftpack.zfft(x)
- y2 = numpy.dft.fft(x)
+ y2 = numpy.fft.fft(x)
assert_array_almost_equal(y,y2)
y = fftpack.zrfft(x)
assert_array_almost_equal(y,y2)
def bench_random(self,level=5):
- from numpy.dft import fft as numpy_fft
+ from numpy.fft import fft as numpy_fft
print
print ' Fast Fourier Transform'
print '================================================='
@@ -183,7 +183,7 @@
n = 2**i
x = range(n)
y = fftpack.zfft(x,direction=-1)
- y2 = numpy.dft.ifft(x)
+ y2 = numpy.fft.ifft(x)
assert_array_almost_equal(y,y2)
y = fftpack.zrfft(x,direction=-1)
assert_array_almost_equal(y,y2)
@@ -202,7 +202,7 @@
assert_array_almost_equal (fft(ifft(x)),x)
def bench_random(self,level=5):
- from numpy.dft import ifft as numpy_ifft
+ from numpy.fft import ifft as numpy_ifft
print
print ' Inverse Fast Fourier Transform'
print '==============================================='
@@ -250,7 +250,7 @@
assert_array_almost_equal(y,y1)
def check_djbfft(self):
- from numpy.dft import fft as numpy_fft
+ from numpy.fft import fft as numpy_fft
for i in range(2,14):
n = 2**i
x = range(n)
@@ -265,7 +265,7 @@
assert_array_almost_equal(y,y1)
def bench_random(self,level=5):
- from numpy.dft import rfft as numpy_rfft
+ from numpy.fft import rfft as numpy_rfft
print
print 'Fast Fourier Transform (real data)'
print '=================================='
@@ -309,7 +309,7 @@
assert_array_almost_equal(y,ifft(x1))
def check_djbfft(self):
- from numpy.dft import ifft as numpy_ifft
+ from numpy.fft import ifft as numpy_ifft
for i in range(2,14):
n = 2**i
x = range(n)
@@ -330,7 +330,7 @@
assert_array_almost_equal (rfft(irfft(x)),x)
def bench_random(self,level=5):
- from numpy.dft import irfft as numpy_irfft
+ from numpy.fft import irfft as numpy_irfft
print
print 'Inverse Fast Fourier Transform (real data)'
@@ -496,7 +496,7 @@
fftn(swapaxes(large_x1,-1,-2)),-1,-2))
def bench_random(self,level=5):
- from numpy.dft import fftn as numpy_fftn
+ from numpy.fft import fftn as numpy_fftn
print
print ' Multi-dimensional Fast Fourier Transform'
print '==================================================='
Modified: trunk/Lib/ndimage/filters.py
===================================================================
--- trunk/Lib/ndimage/filters.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/ndimage/filters.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -429,7 +429,7 @@
separable= True
else:
footprint = numarray.asarray(footprint)
- footprint = footprint.astype(numarray.Bool)
+ footprint = footprint.astype(bool)
if numarray.alltrue(numarray.ravel(footprint)):
size = footprint.shape
footprint = None
@@ -440,10 +440,10 @@
structure = numarray.asarray(structure, dtype = numarray.Float64)
separable = False
if footprint is None:
- footprint = numarray.ones(structure.shape, numarray.Bool)
+ footprint = numarray.ones(structure.shape, bool)
else:
footprint = numarray.asarray(footprint)
- footprint = footprint.astype(numarray.Bool)
+ footprint = footprint.astype(bool)
input = numarray.asarray(input)
if numarray.iscomplexobj(input):
raise TypeError, 'Complex type not supported'
@@ -520,9 +520,9 @@
if size == None:
raise RuntimeError, "no footprint or filter size provided"
sizes = _ni_support._normalize_sequence(size, input.ndim)
- footprint = numarray.ones(sizes, dtype = numarray.Bool)
+ footprint = numarray.ones(sizes, dtype = bool)
else:
- footprint = numarray.asarray(footprint, dtype = numarray.Bool)
+ footprint = numarray.asarray(footprint, dtype = bool)
fshape = [ii for ii in footprint.shape if ii > 0]
if len(fshape) != input.ndim:
raise RuntimeError, 'filter footprint array has incorrect shape.'
@@ -656,10 +656,10 @@
if size == None:
raise RuntimeError, "no footprint or filter size provided"
sizes = _ni_support._normalize_sequence(size, input.ndim)
- footprint = numarray.ones(size, dtype = numarray.Bool)
+ footprint = numarray.ones(size, dtype = bool)
else:
footprint = numarray.asarray(footprint)
- footprint = footprint.astype(numarray.Bool)
+ footprint = footprint.astype(bool)
fshape = [ii for ii in footprint.shape if ii > 0]
if len(fshape) != input.ndim:
raise RuntimeError, 'filter footprint array has incorrect shape.'
Modified: trunk/Lib/ndimage/measurements.py
===================================================================
--- trunk/Lib/ndimage/measurements.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/ndimage/measurements.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -31,6 +31,7 @@
import types
import math
import numpy.oldnumeric as numarray
+import numpy
import _ni_support
import _nd_image
import morphology
@@ -50,7 +51,7 @@
raise TypeError, 'Complex type not supported'
if structure == None:
structure = morphology.generate_binary_structure(input.ndim, 1)
- structure = numarray.asarray(structure, dtype = numarray.Bool)
+ structure = numarray.asarray(structure, dtype = bool)
if structure.ndim != input.ndim:
raise RuntimeError, 'structure and input must have equal rank'
for ii in structure.shape:
@@ -58,7 +59,7 @@
raise RuntimeError, 'structure dimensions must be equal to 3'
if not structure.flags.contiguous:
structure = structure.copy()
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
if output.dtype.type != numarray.int32:
raise RuntimeError, 'output type must be Int32'
else:
@@ -344,7 +345,7 @@
raise TypeError, 'only 8 and 16 unsigned inputs are supported'
if structure == None:
structure = morphology.generate_binary_structure(input.ndim, 1)
- structure = numarray.asarray(structure, dtype = numarray.Bool)
+ structure = numarray.asarray(structure, dtype = bool)
if structure.ndim != input.ndim:
raise RuntimeError, 'structure and input must have equal rank'
for ii in structure.shape:
@@ -356,18 +357,18 @@
if input.shape != markers.shape:
raise RuntimeError, 'input and markers must have equal shape'
- integral_types = [numarray.int0,
- numarray.int8,
- numarray.int16,
- numarray.int32,
- numarray.int_,
- numarray.int64,
- numarray.intc,
- numarray.intp]
+ integral_types = [numpy.int0,
+ numpy.int8,
+ numpy.int16,
+ numpy.int32,
+ numpy.int_,
+ numpy.int64,
+ numpy.intc,
+ numpy.intp]
if markers.dtype.type not in integral_types:
raise RuntimeError, 'marker should be of integer type'
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
if output.dtype.type not in integral_types:
raise RuntimeError, 'output should be of integer type'
else:
Modified: trunk/Lib/ndimage/morphology.py
===================================================================
--- trunk/Lib/ndimage/morphology.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/ndimage/morphology.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -29,6 +29,7 @@
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import numpy.oldnumeric as numarray
+import numpy
import _ni_support
import _nd_image
import filters
@@ -56,7 +57,7 @@
pos = [ni * (structure.shape[ii] / 2) for ii in range(len(shape))]
slc = [slice(pos[ii], pos[ii] + structure.shape[ii], None)
for ii in range(len(shape))]
- out = numarray.zeros(shape, numarray.Bool)
+ out = numarray.zeros(shape, bool)
out[slc] = structure != 0
out = binary_dilation(out, structure, iterations = ni)
if origin is None:
@@ -76,13 +77,13 @@
connectivity = 1
if rank < 1:
if connectivity < 1:
- return numarray.array(0, dtype = numarray.Bool)
+ return numarray.array(0, dtype = bool)
else:
- return numarray.array(1, dtype = numarray.Bool)
- output = numarray.zeros([3] * rank, numarray.Bool)
+ return numarray.array(1, dtype = bool)
+ output = numarray.zeros([3] * rank, bool)
output = numarray.fabs(numarray.indices([3] * rank) - 1)
output = numarray.add.reduce(output, 0)
- return numarray.asarray(output <= connectivity, dtype = numarray.Bool)
+ return numarray.asarray(output <= connectivity, dtype = bool)
def _binary_erosion(input, structure, iterations, mask, output,
@@ -94,7 +95,7 @@
structure = generate_binary_structure(input.ndim, 1)
else:
structure = numarray.asarray(structure)
- structure = structure.astype(numarray.Bool)
+ structure = structure.astype(bool)
if structure.ndim != input.ndim:
raise RuntimeError, 'structure rank must equal input rank'
if not structure.flags.contiguous:
@@ -107,11 +108,11 @@
raise RuntimeError, 'mask and input must have equal sizes'
origin = _ni_support._normalize_sequence(origin, input.ndim)
cit = _center_is_true(structure, origin)
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
if numarray.iscomplexobj(output):
raise TypeError, 'Complex output type not supported'
else:
- output = numarray.Bool
+ output = bool
output, return_value = _ni_support._get_output(output, input)
@@ -140,11 +141,11 @@
origin, invert, coordinate_list)
return return_value
else:
- tmp_in = numarray.zeros(input.shape, numarray.Bool)
+ tmp_in = numarray.zeros(input.shape, bool)
if return_value == None:
tmp_out = output
else:
- tmp_out = numarray.zeros(input.shape, numarray.Bool)
+ tmp_out = numarray.zeros(input.shape, bool)
if not iterations & 1:
tmp_in, tmp_out = tmp_out, tmp_in
changed = _nd_image.binary_erosion(input, structure, mask,
@@ -269,7 +270,7 @@
tmp1 = _binary_erosion(input, structure1, 1, None, None, 0, origin1,
0, False)
- inplace = isinstance(output, numarray.ndarray)
+ inplace = isinstance(output, numpy.ndarray)
result = _binary_erosion(input, structure2, 1, None, output, 0,
origin2, 1, False)
if inplace:
@@ -305,8 +306,8 @@
to one.
"""
mask = numarray.logical_not(input)
- tmp = numarray.zeros(mask.shape, numarray.Bool)
- inplace = isinstance(output, numarray.ndarray)
+ tmp = numarray.zeros(mask.shape, bool)
+ inplace = isinstance(output, numpy.ndarray)
if inplace:
binary_dilation(tmp, structure, -1, mask, output, 1, origin)
numarray.logical_not(output, output)
@@ -407,7 +408,7 @@
"""
tmp = grey_dilation(input, size, footprint, structure, None, mode,
cval, origin)
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
grey_erosion(input, size, footprint, structure, output, mode,
cval, origin)
return numarray.subtract(tmp, output, output)
@@ -429,7 +430,7 @@
"""
tmp1 = grey_dilation(input, size, footprint, structure, None, mode,
cval, origin)
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
grey_erosion(input, size, footprint, structure, output, mode,
cval, origin)
numarray.add(tmp1, output, output)
@@ -458,7 +459,7 @@
"""
tmp = grey_erosion(input, size, footprint, structure, None, mode,
cval, origin)
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
grey_dilation(tmp, size, footprint, structure, output, mode, cval,
origin)
del tmp
@@ -482,7 +483,7 @@
"""
tmp = grey_dilation(input, size, footprint, structure, None, mode,
cval, origin)
- if isinstance(output, numarray.ndarray):
+ if isinstance(output, numpy.ndarray):
grey_erosion(tmp, size, footprint, structure, output, mode, cval,
origin)
del tmp
@@ -573,7 +574,7 @@
dt = None
_nd_image.distance_transform_bf(tmp1, metric, sampling, dt, ft)
if return_indices:
- if isinstance(indices, numarray.ndarray):
+ if isinstance(indices, numpy.ndarray):
if indices.dtype.type != numarray.int32:
raise RuntimeError, 'indices must of Int32 type'
if indices.shape != (tmp1.ndim,) + tmp1.shape:
@@ -589,9 +590,9 @@
ft = tmp2
# construct and return the result
result = []
- if return_distances and not isinstance(distances, numarray.ndarray):
+ if return_distances and not isinstance(distances, numpy.ndarray):
result.append(dt)
- if return_indices and not isinstance(indices, numarray.ndarray):
+ if return_indices and not isinstance(indices, numpy.ndarray):
result.append(ft)
if len(result) == 2:
return tuple(result)
@@ -628,8 +629,8 @@
if (not return_distances) and (not return_indices):
msg = 'at least one of distances/indices must be specified'
raise RuntimeError, msg
- ft_inplace = isinstance(indices, numarray.ndarray)
- dt_inplace = isinstance(distances, numarray.ndarray)
+ ft_inplace = isinstance(indices, numpy.ndarray)
+ dt_inplace = isinstance(distances, numpy.ndarray)
input = numarray.asarray(input)
if structure == 'cityblock':
rank = input.ndim
@@ -725,8 +726,8 @@
if (not return_distances) and (not return_indices):
msg = 'at least one of distances/indices must be specified'
raise RuntimeError, msg
- ft_inplace = isinstance(indices, numarray.ndarray)
- dt_inplace = isinstance(distances, numarray.ndarray)
+ ft_inplace = isinstance(indices, numpy.ndarray)
+ dt_inplace = isinstance(distances, numpy.ndarray)
# calculate the feature transform
input = numarray.where(input, 1, 0).astype(numarray.Int8)
if sampling is not None:
Modified: trunk/Lib/ndimage/tests/test_ndimage.py
===================================================================
--- trunk/Lib/ndimage/tests/test_ndimage.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/ndimage/tests/test_ndimage.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -32,7 +32,8 @@
import unittest
import math
import numpy.oldnumeric as numarray
-from numpy import dft
+import numpy
+from numpy import fft
from numpy.testing import *
set_package_path()
import scipy.ndimage as ndimage
@@ -42,9 +43,9 @@
eps = 1e-12
def diff(a, b):
- if not isinstance(a, numarray.ndarray):
+ if not isinstance(a, numpy.ndarray):
a = numarray.asarray(a)
- if not isinstance(b, numarray.ndarray):
+ if not isinstance(b, numpy.ndarray):
b = numarray.asarray(b)
if (0 in a.shape) and (0 in b.shape):
return 0.0
@@ -1302,12 +1303,12 @@
for type in [numarray.float32, numarray.float64]:
a = numarray.zeros(shape, type)
a[0, 0] = 1.0
- a = dft.rfft(a, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.rfft(a, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_gaussian(a, [5.0, 2.5],
shape[0], 0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.irfft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.irfft(a, shape[0], 0)
self.failUnless(diff(ndimage.sum(a), 1.0) < eps)
def test_fourier_gaussian_complex01(self):
@@ -1316,12 +1317,12 @@
for type in [numarray.complex64, numarray.complex128]:
a = numarray.zeros(shape, type)
a[0, 0] = 1.0
- a = dft.fft(a, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.fft(a, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_gaussian(a, [5.0, 2.5], -1,
0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.ifft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.ifft(a, shape[0], 0)
error = diff(ndimage.sum(a.real), 1.0)
self.failUnless(error < eps)
@@ -1331,12 +1332,12 @@
for type in [numarray.float32, numarray.float64]:
a = numarray.zeros(shape, type)
a[0, 0] = 1.0
- a = dft.rfft(a, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.rfft(a, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_uniform(a, [5.0, 2.5],
shape[0], 0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.irfft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.irfft(a, shape[0], 0)
self.failUnless(diff(ndimage.sum(a), 1.0) < eps)
def test_fourier_uniform_complex01(self):
@@ -1345,11 +1346,11 @@
for type in [numarray.complex64, numarray.complex128]:
a = numarray.zeros(shape, type)
a[0, 0] = 1.0
- a = dft.fft(a, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.fft(a, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_uniform(a, [5.0, 2.5], -1, 0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.ifft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.ifft(a, shape[0], 0)
error = diff(ndimage.sum(a.real), 1.0)
self.failUnless(error < eps)
@@ -1359,11 +1360,11 @@
for dtype in [numarray.float32, numarray.float64]:
true = numarray.arange(shape[0] * shape[1], dtype = dtype)
true.shape = shape
- a = dft.rfft(true, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.rfft(true, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_shift(a, [1, 1], shape[0], 0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.irfft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.irfft(a, shape[0], 0)
error1 = diff(a[1:, 1:], true[:-1, :-1])
error2 = diff(a.imag, numarray.zeros(shape))
self.failUnless(error1 < 1e-10 and error2 < 1e-10)
@@ -1375,11 +1376,11 @@
true = numarray.arange(shape[0] * shape[1],
dtype = type)
true.shape = shape
- a = dft.fft(true, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.fft(true, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_shift(a, [1, 1], -1, 0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.ifft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.ifft(a, shape[0], 0)
error1 = diff(a.real[1:, 1:], true[:-1, :-1])
error2 = diff(a.imag, numarray.zeros(shape))
self.failUnless(error1 < 1e-10 and error2 < 1e-10)
@@ -1390,12 +1391,12 @@
for type in [numarray.float32, numarray.float64]:
a = numarray.zeros(shape, type)
a[0, 0] = 1.0
- a = dft.rfft(a, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.rfft(a, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_ellipsoid(a, [5.0, 2.5],
shape[0], 0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.irfft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.irfft(a, shape[0], 0)
self.failUnless(diff(ndimage.sum(a), 1.0) < eps)
def test_fourier_ellipsoid_complex01(self):
@@ -1404,12 +1405,12 @@
for type in [numarray.complex64, numarray.complex128]:
a = numarray.zeros(shape, type)
a[0, 0] = 1.0
- a = dft.fft(a, shape[0], 0)
- a = dft.fft(a, shape[1], 1)
+ a = fft.fft(a, shape[0], 0)
+ a = fft.fft(a, shape[1], 1)
a = ndimage.fourier_ellipsoid(a, [5.0, 2.5], -1,
0)
- a = dft.ifft(a, shape[1], 1)
- a = dft.ifft(a, shape[0], 0)
+ a = fft.ifft(a, shape[1], 1)
+ a = fft.ifft(a, shape[0], 0)
error = diff(ndimage.sum(a.real), 1.0)
self.failUnless(error < eps)
@@ -2745,7 +2746,7 @@
def test_sum06(self):
"sum 6"
- labels = numarray.array([], numarray.Bool)
+ labels = numarray.array([], bool)
for type in self.types:
input = numarray.array([], type)
output = ndimage.sum(input, labels = labels)
@@ -2753,7 +2754,7 @@
def test_sum07(self):
"sum 7"
- labels = numarray.ones([0, 4], numarray.Bool)
+ labels = numarray.ones([0, 4], bool)
for type in self.types:
input = numarray.zeros([0, 4], type)
output = ndimage.sum(input, labels = labels)
@@ -2761,7 +2762,7 @@
def test_sum08(self):
"sum 8"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([1, 2], type)
output = ndimage.sum(input, labels = labels)
@@ -2769,7 +2770,7 @@
def test_sum09(self):
"sum 9"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output = ndimage.sum(input, labels = labels)
@@ -2777,8 +2778,8 @@
def test_sum10(self):
"sum 10"
- labels = numarray.array([1, 0], numarray.Bool)
- input = numarray.array([[1, 2], [3, 4]], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
+ input = numarray.array([[1, 2], [3, 4]], bool)
output = ndimage.sum(input, labels = labels)
self.failUnless(output == 2.0)
@@ -2802,7 +2803,7 @@
def test_mean01(self):
"mean 1"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output = ndimage.mean(input, labels = labels)
@@ -2810,8 +2811,8 @@
def test_mean02(self):
"mean 2"
- labels = numarray.array([1, 0], numarray.Bool)
- input = numarray.array([[1, 2], [3, 4]], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
+ input = numarray.array([[1, 2], [3, 4]], bool)
output = ndimage.mean(input, labels = labels)
self.failUnless(output == 1.0)
@@ -2835,7 +2836,7 @@
def test_minimum01(self):
"minimum 1"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output = ndimage.minimum(input, labels = labels)
@@ -2843,8 +2844,8 @@
def test_minimum02(self):
"minimum 2"
- labels = numarray.array([1, 0], numarray.Bool)
- input = numarray.array([[2, 2], [2, 4]], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
+ input = numarray.array([[2, 2], [2, 4]], bool)
output = ndimage.minimum(input, labels = labels)
self.failUnless(output == 1.0)
@@ -2868,7 +2869,7 @@
def test_maximum01(self):
"maximum 1"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output = ndimage.maximum(input, labels = labels)
@@ -2876,8 +2877,8 @@
def test_maximum02(self):
"maximum 2"
- labels = numarray.array([1, 0], numarray.Bool)
- input = numarray.array([[2, 2], [2, 4]], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
+ input = numarray.array([[2, 2], [2, 4]], bool)
output = ndimage.maximum(input, labels = labels)
self.failUnless(output == 1.0)
@@ -2922,7 +2923,7 @@
def test_variance04(self):
"variance 4"
- input = numarray.array([1, 0], numarray.Bool)
+ input = numarray.array([1, 0], bool)
output = ndimage.variance(input)
self.failUnless(output == 0.5)
@@ -2965,7 +2966,7 @@
def test_standard_deviation04(self):
"standard deviation 4"
- input = numarray.array([1, 0], numarray.Bool)
+ input = numarray.array([1, 0], bool)
output = ndimage.standard_deviation(input)
self.failUnless(output == math.sqrt(0.5))
@@ -2989,7 +2990,7 @@
def test_minimum_position01(self):
"minimum position 1"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output = ndimage.minimum_position(input,
@@ -3009,7 +3010,7 @@
"minimum position 3"
input = numarray.array([[5, 4, 2, 5],
[3, 7, 0, 2],
- [1, 5, 1, 1]], numarray.Bool)
+ [1, 5, 1, 1]], bool)
output = ndimage.minimum_position(input)
self.failUnless(output == (1, 2))
@@ -3017,7 +3018,7 @@
"minimum position 4"
input = numarray.array([[5, 4, 2, 5],
[3, 7, 1, 2],
- [1, 5, 1, 1]], numarray.Bool)
+ [1, 5, 1, 1]], bool)
output = ndimage.minimum_position(input)
self.failUnless(output == (0, 0))
@@ -3054,7 +3055,7 @@
def test_maximum_position01(self):
"maximum position 1"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output = ndimage.maximum_position(input,
@@ -3074,7 +3075,7 @@
"maximum position 3"
input = numarray.array([[5, 4, 2, 5],
[3, 7, 8, 2],
- [1, 5, 1, 1]], numarray.Bool)
+ [1, 5, 1, 1]], bool)
output = ndimage.maximum_position(input)
self.failUnless(output == (0, 0))
@@ -3111,7 +3112,7 @@
def test_extrema01(self):
"extrema 1"
- labels = numarray.array([1, 0], numarray.Bool)
+ labels = numarray.array([1, 0], bool)
for type in self.types:
input = numarray.array([[1, 2], [3, 4]], type)
output1 = ndimage.extrema(input, labels = labels)
@@ -3225,7 +3226,7 @@
def test_center_of_mass06(self):
"center of mass 6"
true = [0.5, 0.5]
- input = numarray.array([[1, 2], [3, 1]], numarray.Bool)
+ input = numarray.array([[1, 2], [3, 1]], bool)
output = ndimage.center_of_mass(input)
e = diff(true, output)
self.failUnless(e < eps)
@@ -3234,7 +3235,7 @@
"center of mass 7"
labels = [1, 0]
true = [0.5, 0.0]
- input = numarray.array([[1, 2], [3, 1]], numarray.Bool)
+ input = numarray.array([[1, 2], [3, 1]], bool)
output = ndimage.center_of_mass(input, labels)
e = diff(true, output)
self.failUnless(e < eps)
@@ -3243,7 +3244,7 @@
"center of mass 8"
labels = [1, 2]
true = [0.5, 1.0]
- input = numarray.array([[5, 2], [3, 1]], numarray.Bool)
+ input = numarray.array([[5, 2], [3, 1]], bool)
output = ndimage.center_of_mass(input, labels, 2)
e = diff(true, output)
self.failUnless(e < eps)
@@ -3253,7 +3254,7 @@
"center of mass 9"
labels = [1, 2]
true = [(0.5, 0.0), (0.5, 1.0)]
- input = numarray.array([[1, 2], [1, 1]], numarray.Bool)
+ input = numarray.array([[1, 2], [1, 1]], bool)
output = ndimage.center_of_mass(input, labels, [1, 2])
e = diff(true, output)
self.failUnless(e < eps)
@@ -4163,7 +4164,7 @@
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_erosion(data, struct,
border_value = 1, iterations = 2)
self.failUnless(diff(out, true) < eps)
@@ -4186,8 +4187,8 @@
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
- out = numarray.zeros(data.shape, numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0]], bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_erosion(data, struct, border_value = 1,
iterations = 2, output = out)
self.failUnless(diff(out, true) < eps)
@@ -4210,7 +4211,7 @@
[1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
- [0, 0, 0, 1, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 1, 0, 0, 0]], bool)
out = ndimage.binary_erosion(data, struct,
border_value = 1, iterations = 3)
self.failUnless(diff(out, true) < eps)
@@ -4233,8 +4234,8 @@
[1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
- [0, 0, 0, 1, 0, 0, 0]], numarray.Bool)
- out = numarray.zeros(data.shape, numarray.Bool)
+ [0, 0, 0, 1, 0, 0, 0]], bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_erosion(data, struct, border_value = 1,
iterations = 3, output = out)
self.failUnless(diff(out, true) < eps)
@@ -4257,8 +4258,8 @@
[1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
- [0, 0, 0, 1, 0, 0, 0]], numarray.Bool)
- out = numarray.zeros(data.shape, numarray.Bool)
+ [0, 0, 0, 1, 0, 0, 0]], bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_erosion(data, struct, border_value = 1,
iterations = 1, output = out, origin = (-1, -1))
self.failUnless(diff(out, true) < eps)
@@ -4281,7 +4282,7 @@
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_erosion(data, struct,
border_value = 1, iterations = 2)
self.failUnless(diff(out, true) < eps)
@@ -4311,7 +4312,7 @@
[0, 0, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_erosion(data, struct,
border_value = 1, mask = mask, iterations = -1)
self.failUnless(diff(out, true) < eps)
@@ -4341,7 +4342,7 @@
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_erosion(data, struct,
border_value = 1, mask = mask)
self.failUnless(diff(out, true) < eps)
@@ -4364,7 +4365,7 @@
[1, 1, 1, 1, 1, 1, 1],
[0, 1, 1, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 0, 0],
- [0, 0, 0, 1, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 1, 0, 0, 0]], bool)
tmp = [[0, 0, 1, 0, 0, 0, 0],
[0, 1, 1, 1, 0, 0, 0],
[1, 1, 1, 1, 1, 0, 1],
@@ -4375,7 +4376,7 @@
true = numarray.logical_and(tmp, mask)
tmp = numarray.logical_and(data, numarray.logical_not(mask))
true = numarray.logical_or(true, tmp)
- out = numarray.zeros(data.shape, numarray.Bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_erosion(data, struct, border_value = 1,
iterations = 1, output = out,
origin = (-1, -1), mask = mask)
@@ -4762,7 +4763,7 @@
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0]], bool)
out = ndimage.binary_dilation(data, struct,
iterations = 2)
self.failUnless(diff(out, true) < eps)
@@ -4781,8 +4782,8 @@
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]], numarray.Bool)
- out = numarray.zeros(data.shape, numarray.Bool)
+ [0, 0, 0, 0, 0]], bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_dilation(data, struct, iterations = 2,
output = out)
self.failUnless(diff(out, true) < eps)
@@ -4801,7 +4802,7 @@
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0]], bool)
out = ndimage.binary_dilation(data, struct,
iterations = 3)
self.failUnless(diff(out, true) < eps)
@@ -4820,8 +4821,8 @@
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 1, 0],
- [0, 0, 0, 0, 0]], numarray.Bool)
- out = numarray.zeros(data.shape, numarray.Bool)
+ [0, 0, 0, 0, 0]], bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_dilation(data, struct, iterations = 3,
output = out)
self.failUnless(diff(out, true) < eps)
@@ -4838,7 +4839,7 @@
[0, 0, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
mask = numarray.array([[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 0],
@@ -4846,7 +4847,7 @@
[0, 0, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
data = numarray.array([[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
@@ -4854,7 +4855,7 @@
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_dilation(data, struct,
iterations = -1, mask = mask, border_value = 0)
@@ -4880,8 +4881,8 @@
[0, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
- data = numarray.zeros(mask.shape, numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
+ data = numarray.zeros(mask.shape, bool)
out = ndimage.binary_dilation(data, struct,
iterations = -1, mask = mask, border_value = 1)
self.failUnless(diff(out, true) < eps)
@@ -4940,7 +4941,7 @@
[0, 0, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
mask = numarray.array([[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 0],
@@ -4948,7 +4949,7 @@
[0, 0, 1, 1, 1, 0, 0, 0],
[0, 1, 1, 0, 1, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
data = numarray.array([[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
@@ -4956,7 +4957,7 @@
[0, 0, 0, 0, 0, 0, 0, 0],
[0, 1, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_propagation(data, struct,
mask = mask, border_value = 0)
@@ -4982,8 +4983,8 @@
[0, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
- data = numarray.zeros(mask.shape, numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
+ data = numarray.zeros(mask.shape, bool)
out = ndimage.binary_propagation(data, struct,
mask = mask, border_value = 1)
self.failUnless(diff(out, true) < eps)
@@ -5086,14 +5087,14 @@
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
data = numarray.array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_fill_holes(data)
self.failUnless(diff(out, true) < eps)
@@ -5105,14 +5106,14 @@
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0],
[0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
data = numarray.array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 1, 1, 0, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 1, 0, 0, 1, 0, 0],
[0, 0, 0, 1, 1, 0, 0, 0],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_fill_holes(data)
self.failUnless(diff(out, true) < eps)
@@ -5124,14 +5125,14 @@
[0, 1, 1, 1, 0, 1, 1, 1],
[0, 1, 1, 1, 0, 1, 1, 1],
[0, 0, 1, 0, 0, 1, 1, 1],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
data = numarray.array([[0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 1, 0, 0, 0, 0, 0],
[0, 1, 0, 1, 0, 1, 1, 1],
[0, 1, 0, 1, 0, 1, 0, 1],
[0, 1, 0, 1, 0, 1, 0, 1],
[0, 0, 1, 0, 0, 1, 1, 1],
- [0, 0, 0, 0, 0, 0, 0, 0]], numarray.Bool)
+ [0, 0, 0, 0, 0, 0, 0, 0]], bool)
out = ndimage.binary_fill_holes(data)
self.failUnless(diff(out, true) < eps)
@@ -5412,7 +5413,7 @@
[0, 1, 1, 1, 1],
[0, 1, 1, 1, 1],
[0, 0, 0, 0, 0]], type)
- out = numarray.zeros(data.shape, numarray.Bool)
+ out = numarray.zeros(data.shape, bool)
ndimage.binary_hit_or_miss(data, struct,
output = out)
self.failUnless(diff(true, out) < eps)
Modified: trunk/Lib/sandbox/xplt/shapetest.py
===================================================================
--- trunk/Lib/sandbox/xplt/shapetest.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/sandbox/xplt/shapetest.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -18,8 +18,8 @@
# This routine should be able to tell you the size of any object:
def no_of_dims (x) :
if x == None : return 0
- if (isinstance(x, ndarray)) : return len (x.shape)
- if (isinstance(x, list) or isinstance(x, tuple) : return 1
+ if isinstance(x, ndarray) : return len (x.shape)
+ if isinstance(x, (list, tuple)) : return 1
# I don't know if there are any other possibilities.
for i in range (10) :
if is_scalar (x) : return i
Modified: trunk/Lib/stats/distributions.py
===================================================================
--- trunk/Lib/stats/distributions.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/stats/distributions.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -9,7 +9,7 @@
import scipy.special as special
import scipy.optimize as optimize
import inspect
-from numpy import alltrue, where, arange, put, putmask, nonzero, \
+from numpy import alltrue, where, arange, put, putmask, \
ravel, take, ones, sum, shape, product, repeat, reshape, \
zeros, floor, logical_and, log, sqrt, exp, arctanh, tan, sin, arcsin, \
arctan, tanh, ndarray, cos, cosh, sinh, newaxis
@@ -17,6 +17,7 @@
any, argsort, argmax, vectorize, r_, asarray, nan, inf, pi, isnan, isinf
import numpy
import numpy.random as mtrand
+from numpy.oldnumeric import nonzero
__all__ = [
'rv_continuous',
Modified: trunk/Lib/stats/tests/test_distributions.py
===================================================================
--- trunk/Lib/stats/tests/test_distributions.py 2006-08-04 10:13:12 UTC (rev 2148)
+++ trunk/Lib/stats/tests/test_distributions.py 2006-08-05 07:27:52 UTC (rev 2149)
@@ -7,6 +7,7 @@
set_package_path()
import numpy.oldnumeric as numpy
+from numpy import typecodes
import stats
restore_path()
@@ -77,11 +78,11 @@
assert(len(vals) == 100)
vals = stats.randint.rvs(5,30,size=(2,50))
assert(numpy.shape(vals) == (2,50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.randint.rvs(15,46)
assert((val >= 15) & (val < 46))
assert isinstance(val, numpy.ScalarType),`type(val)`
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
def check_pdf(self):
k = numpy.r_[0:36]
@@ -101,10 +102,10 @@
vals = stats.binom.rvs(10, 0.75, size=(2, 50))
assert(numpy.all(vals >= 0) & numpy.all(vals <= 10))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.binom.rvs(10, 0.75)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_bernoulli(ScipyTestCase):
@@ -112,30 +113,30 @@
vals = stats.bernoulli.rvs(0.75, size=(2, 50))
assert(numpy.all(vals >= 0) & numpy.all(vals <= 1))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.bernoulli.rvs(0.75)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_nbinom(ScipyTestCase):
def check_rvs(self):
vals = stats.nbinom.rvs(10, 0.75, size=(2, 50))
assert(numpy.all(vals >= 0))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.nbinom.rvs(10, 0.75)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_geom(ScipyTestCase):
def check_rvs(self):
vals = stats.geom.rvs(0.75, size=(2, 50))
assert(numpy.all(vals >= 0))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.geom.rvs(0.75)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_hypergeom(ScipyTestCase):
def check_rvs(self):
@@ -143,49 +144,49 @@
assert(numpy.all(vals >= 0) &
numpy.all(vals <= 3))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.hypergeom.rvs(20, 3, 10)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_logser(ScipyTestCase):
def check_rvs(self):
vals = stats.logser.rvs(0.75, size=(2, 50))
assert(numpy.all(vals >= 1))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.logser.rvs(0.75)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_poisson(ScipyTestCase):
def check_rvs(self):
vals = stats.poisson.rvs(0.5, size=(2, 50))
assert(numpy.all(vals >= 0))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.poisson.rvs(0.5)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_zipf(ScipyTestCase):
def check_rvs(self):
vals = stats.zipf.rvs(1.5, size=(2, 50))
assert(numpy.all(vals >= 1))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.zipf.rvs(1.5)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
class test_dlaplace(ScipyTestCase):
def check_rvs(self):
vals = stats.dlaplace.rvs(1.5 , size=(2, 50))
assert(numpy.shape(vals) == (2, 50))
- assert(vals.dtype.char in numpy.typecodes['AllInteger'])
+ assert(vals.dtype.char in typecodes['AllInteger'])
val = stats.dlaplace.rvs(1.5)
assert(isinstance(val, numpy.ndarray))
- assert(val.dtype.char in numpy.typecodes['AllInteger'])
+ assert(val.dtype.char in typecodes['AllInteger'])
if __name__ == "__main__":
ScipyTest('stats.distributions').run()
From scipy-svn at scipy.org Sat Aug 5 03:52:54 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sat, 5 Aug 2006 02:52:54 -0500 (CDT)
Subject: [Scipy-svn] r2150 - in trunk/Lib: linalg misc sandbox/models
sandbox/xplt stats
Message-ID: <20060805075254.15F0839C072@new.scipy.org>
Author: oliphant
Date: 2006-08-05 02:52:47 -0500 (Sat, 05 Aug 2006)
New Revision: 2150
Modified:
trunk/Lib/linalg/decomp.py
trunk/Lib/misc/pilutil.py
trunk/Lib/sandbox/models/bsplines.py
trunk/Lib/sandbox/models/utils.py
trunk/Lib/sandbox/xplt/colorbar.py
trunk/Lib/sandbox/xplt/slice3.py
trunk/Lib/stats/distributions.py
Log:
Make use of flatnonzero
Modified: trunk/Lib/linalg/decomp.py
===================================================================
--- trunk/Lib/linalg/decomp.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/linalg/decomp.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -32,7 +32,7 @@
_I = cast['F'](1j)
def _make_complex_eigvecs(w,vin,cmplx_tcode):
v = numpy.array(vin,dtype=cmplx_tcode)
- ind = numpy.nonzero(numpy.not_equal(w.imag,0.0))
+ ind = numpy.flatnonzero(numpy.not_equal(w.imag,0.0))
vnew = numpy.zeros((v.shape[0],len(ind)>>1),cmplx_tcode)
vnew.real = numpy.take(vin,ind[::2],1)
vnew.imag = numpy.take(vin,ind[1::2],1)
Modified: trunk/Lib/misc/pilutil.py
===================================================================
--- trunk/Lib/misc/pilutil.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/misc/pilutil.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -157,9 +157,9 @@
# Check for 3 in datacube shape --- 'RGB' or 'YCbCr'
if channel_axis is None:
if (3 in shape):
- ca = numpy.nonzero(asarray(shape) == 3)[0]
+ ca = numpy.flatnonzero(asarray(shape) == 3)[0]
else:
- ca = numpy.nonzero(asarray(shape) == 4)
+ ca = numpy.flatnonzero(asarray(shape) == 4)
if len(ca):
ca = ca[0]
else:
Modified: trunk/Lib/sandbox/models/bsplines.py
===================================================================
--- trunk/Lib/sandbox/models/bsplines.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/sandbox/models/bsplines.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -161,7 +161,7 @@
# throw out rows with zeros (this happens at boundary points!)
- mask = N.nonzero(1 - N.alltrue(N.equal(bt, 0), axis=0))
+ mask = N.flatnonzero(1 - N.alltrue(N.equal(bt, 0), axis=0))
bt = bt[:,mask]
y = y[mask]
Modified: trunk/Lib/sandbox/models/utils.py
===================================================================
--- trunk/Lib/sandbox/models/utils.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/sandbox/models/utils.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -40,10 +40,8 @@
"""
Erase columns of zeros: can save some time in pseudoinverse.
"""
-
colsum = N.add.reduce(matrix**2, 0)
-
- val = [matrix[:,i] for i in N.nonzero(colsum)]
+ val = [matrix[:,i] for i in N.flatnonzero(colsum)]
return N.array(N.transpose(val))
def rank(X, cond=1.0e-12):
Modified: trunk/Lib/sandbox/xplt/colorbar.py
===================================================================
--- trunk/Lib/sandbox/xplt/colorbar.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/sandbox/xplt/colorbar.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -9,6 +9,7 @@
from numpy import *
from gist import *
from slice3 import *
+from numpy.oldnumeric import nonzero
def nice_levels (z, n = 8) :
"""nice_levels(z, n = 8) finds approximately n "nice values"
Modified: trunk/Lib/sandbox/xplt/slice3.py
===================================================================
--- trunk/Lib/sandbox/xplt/slice3.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/sandbox/xplt/slice3.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -22,6 +22,7 @@
from numpy import *
from gistC import *
from gistfuncs import *
+from numpy.oldnumeric import nonzero
#
# Caveats:
Modified: trunk/Lib/stats/distributions.py
===================================================================
--- trunk/Lib/stats/distributions.py 2006-08-05 07:27:52 UTC (rev 2149)
+++ trunk/Lib/stats/distributions.py 2006-08-05 07:52:47 UTC (rev 2150)
@@ -17,7 +17,7 @@
any, argsort, argmax, vectorize, r_, asarray, nan, inf, pi, isnan, isinf
import numpy
import numpy.random as mtrand
-from numpy.oldnumeric import nonzero
+from numpy import flatnonzero as nonzero
__all__ = [
'rv_continuous',
From scipy-svn at scipy.org Sat Aug 5 16:24:47 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sat, 5 Aug 2006 15:24:47 -0500 (CDT)
Subject: [Scipy-svn] r2151 - trunk/Lib/misc
Message-ID: <20060805202447.B19CC39C0B6@new.scipy.org>
Author: oliphant
Date: 2006-08-05 15:24:43 -0500 (Sat, 05 Aug 2006)
New Revision: 2151
Modified:
trunk/Lib/misc/__init__.py
trunk/Lib/misc/common.py
Log:
Move source, info, and who to NumPy
Modified: trunk/Lib/misc/__init__.py
===================================================================
--- trunk/Lib/misc/__init__.py 2006-08-05 07:52:47 UTC (rev 2150)
+++ trunk/Lib/misc/__init__.py 2006-08-05 20:24:43 UTC (rev 2151)
@@ -1,12 +1,18 @@
from info import __doc__
-__all__ = ['limits']
+__all__ = ['limits', 'who', 'source', 'info']
import limits
from common import *
-from helpmod import *
+from numpy import who, source, info as _info
+import sys
+def info(object=None,maxwidth=76,output=sys.stdout,toplevel='scipy'):
+ return _info(object, maxwidth, output, toplevel)
+info.__doc__ = _info.__doc__
+del sys
+
try:
from pilutil import *
__all__ += pilutil.__all__
@@ -14,7 +20,6 @@
pass
__all__ += common.__all__
-__all__ += helpmod.__all__
from numpy.testing import ScipyTest
test = ScipyTest().test
Modified: trunk/Lib/misc/common.py
===================================================================
--- trunk/Lib/misc/common.py 2006-08-05 07:52:47 UTC (rev 2150)
+++ trunk/Lib/misc/common.py 2006-08-05 20:24:43 UTC (rev 2151)
@@ -11,7 +11,9 @@
newaxis, hstack, product, array, where, \
zeros, extract, insert, pi, sqrt, eye, poly1d, dot, r_
-__all__ = ['factorial','factorial2','factorialk','comb','who',
+from numpy import who
+
+__all__ = ['factorial','factorial2','factorialk','comb',
'central_diff_weights', 'derivative', 'pade', 'lena']
# XXX: the factorial functions could move to scipy.special, and the others
@@ -223,7 +225,6 @@
q = r_[1.0,pq[n+1:]]
return poly1d(p[::-1]), poly1d(q[::-1])
-# XXX: broken since plt is gone
def lena():
import cPickle, os
fname = os.path.join(os.path.dirname(__file__),'lena.dat')
@@ -232,65 +233,3 @@
f.close()
return lena
-
-#-----------------------------------------------------------------------------
-# Matlab like functions for output and information on the variables used.
-#-----------------------------------------------------------------------------
-
-def who(vardict=None):
- """Print the scipy arrays in the given dictionary (or globals() if None).
- """
- if vardict is None:
- frame = sys._getframe().f_back
- vardict = frame.f_globals
- sta = []
- cache = {}
- for name in vardict.keys():
- if isinstance(vardict[name],numpy.ndarray):
- var = vardict[name]
- idv = id(var)
- if idv in cache.keys():
- namestr = name + " (%s)" % cache[idv]
- original=0
- else:
- cache[idv] = name
- namestr = name
- original=1
- shapestr = " x ".join(map(str, var.shape))
- bytestr = str(var.itemsize*numpy.product(var.shape))
- sta.append([namestr, shapestr, bytestr, var.dtype.name,
- original])
-
- maxname = 0
- maxshape = 0
- maxbyte = 0
- totalbytes = 0
- for k in range(len(sta)):
- val = sta[k]
- if maxname < len(val[0]):
- maxname = len(val[0])
- if maxshape < len(val[1]):
- maxshape = len(val[1])
- if maxbyte < len(val[2]):
- maxbyte = len(val[2])
- if val[4]:
- totalbytes += int(val[2])
-
- max = numpy.maximum
- if len(sta) > 0:
- sp1 = max(10,maxname)
- sp2 = max(10,maxshape)
- sp3 = max(10,maxbyte)
- prval = "Name %s Shape %s Bytes %s Type" % (sp1*' ', sp2*' ', sp3*' ')
- print prval + "\n" + "="*(len(prval)+5) + "\n"
-
- for k in range(len(sta)):
- val = sta[k]
- print "%s %s %s %s %s %s %s" % (val[0], ' '*(sp1-len(val[0])+4),
- val[1], ' '*(sp2-len(val[1])+5),
- val[2], ' '*(sp3-len(val[2])+5),
- val[3])
- print "\nUpper bound on total bytes = %d" % totalbytes
- return
-
-#-----------------------------------------------------------------------------
From scipy-svn at scipy.org Wed Aug 9 05:47:11 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 9 Aug 2006 04:47:11 -0500 (CDT)
Subject: [Scipy-svn] r2152 - in trunk/Lib/linsolve: . umfpack
Message-ID: <20060809094711.0629639C02F@new.scipy.org>
Author: rc
Date: 2006-08-09 04:47:04 -0500 (Wed, 09 Aug 2006)
New Revision: 2152
Modified:
trunk/Lib/linsolve/__init__.py
trunk/Lib/linsolve/info.py
trunk/Lib/linsolve/linsolve.py
trunk/Lib/linsolve/umfpack/__init__.py
trunk/Lib/linsolve/umfpack/info.py
trunk/Lib/linsolve/umfpack/umfpack.py
Log:
updated docs
Modified: trunk/Lib/linsolve/__init__.py
===================================================================
--- trunk/Lib/linsolve/__init__.py 2006-08-05 20:24:43 UTC (rev 2151)
+++ trunk/Lib/linsolve/__init__.py 2006-08-09 09:47:04 UTC (rev 2152)
@@ -2,6 +2,10 @@
from info import __doc__
+import umfpack
+__doc__ = '\n\n'.join( (__doc__, umfpack.__doc__) )
+del umfpack
+
from linsolve import *
__all__ = filter(lambda s:not s.startswith('_'),dir())
Modified: trunk/Lib/linsolve/info.py
===================================================================
--- trunk/Lib/linsolve/info.py 2006-08-05 20:24:43 UTC (rev 2151)
+++ trunk/Lib/linsolve/info.py 2006-08-09 09:47:04 UTC (rev 2152)
@@ -2,5 +2,50 @@
Linear Solvers
==============
+The default solver is SuperLU (included in the scipy distribution), which can
+solve real or complex linear systems in both single and double precisions. It
+is automatically replaced by UMFPACK, if available. Note that UMFPACK works in
+double precision only, so switch it off by
+>>> use_solver( use = {'useUmfpack': False} )
+to solve in the single precision.
+
+Example session:
+
+>>> from scipy.sparse import csc_matrix
+>>> from numpy import array
+>>> from scipy.linsolve import spdiags, spsolve, use_solver
+>>>
+>>> print "Inverting a sparse linear system:"
+>>> print "The sparse matrix (constructed from diagonals):"
+>>> a = spdiags([[1, 2, 3, 4, 5], [6, 5, 8, 9, 10]], [0, 1], 5, 5)
+>>> b = array([1, 2, 3, 4, 5])
+>>> print "Solve: single precision complex:"
+>>> use_solver( use = {'useUmfpack' : False} )
+>>> a = a.astype('F')
+>>> x = spsolve(a, b)
+>>> print x
+>>> print "Error: ", a*x-b
+>>>
+>>> print "Solve: double precision complex:"
+>>> use_solver( use = {'useUmfpack' : True} )
+>>> a = a.astype('D')
+>>> x = spsolve(a, b)
+>>> print x
+>>> print "Error: ", a*x-b
+>>>
+>>> print "Solve: double precision:"
+>>> a = a.astype('d')
+>>> x = spsolve(a, b)
+>>> print x
+>>> print "Error: ", a*x-b
+>>>
+>>> print "Solve: single precision:"
+>>> use_solver( use = {'useUmfpack' : False} )
+>>> a = a.astype('f')
+>>> x = spsolve(a, b.astype('f'))
+>>> print x
+>>> print "Error: ", a*x-b
+
+
"""
postpone_import = 1
Modified: trunk/Lib/linsolve/linsolve.py
===================================================================
--- trunk/Lib/linsolve/linsolve.py 2006-08-05 20:24:43 UTC (rev 2151)
+++ trunk/Lib/linsolve/linsolve.py 2006-08-09 09:47:04 UTC (rev 2152)
@@ -90,22 +90,23 @@
diag_pivot_thresh, drop_tol, relax, panel_size)
def _testme():
- from scipy.sparse import csc_matrix, dok_matrix
- from numpy import transpose, array, arange
-
+ from scipy.sparse import csc_matrix
+ from numpy import array
+ from scipy.linsolve import spdiags, spsolve, use_solver
+
print "Inverting a sparse linear system:"
print "The sparse matrix (constructed from diagonals):"
a = spdiags([[1, 2, 3, 4, 5], [6, 5, 8, 9, 10]], [0, 1], 5, 5)
b = array([1, 2, 3, 4, 5])
print "Solve: single precision complex:"
- globals()['useUmfpack'] = False
+ use_solver( use = {'useUmfpack' : False} )
a = a.astype('F')
x = spsolve(a, b)
print x
print "Error: ", a*x-b
print "Solve: double precision complex:"
- globals()['useUmfpack'] = True
+ use_solver( use = {'useUmfpack' : True} )
a = a.astype('D')
x = spsolve(a, b)
print x
@@ -118,7 +119,7 @@
print "Error: ", a*x-b
print "Solve: single precision:"
- globals()['useUmfpack'] = False
+ use_solver( use = {'useUmfpack' : False} )
a = a.astype('f')
x = spsolve(a, b.astype('f'))
print x
Modified: trunk/Lib/linsolve/umfpack/__init__.py
===================================================================
--- trunk/Lib/linsolve/umfpack/__init__.py 2006-08-05 20:24:43 UTC (rev 2151)
+++ trunk/Lib/linsolve/umfpack/__init__.py 2006-08-09 09:47:04 UTC (rev 2152)
@@ -1,5 +1,7 @@
+from info import __doc__
+
from umfpack import *
+__all__ = filter(lambda s:not s.startswith('_'),dir())
from numpy.testing import ScipyTest
test = ScipyTest().test
-
Modified: trunk/Lib/linsolve/umfpack/info.py
===================================================================
--- trunk/Lib/linsolve/umfpack/info.py 2006-08-05 20:24:43 UTC (rev 2151)
+++ trunk/Lib/linsolve/umfpack/info.py 2006-08-09 09:47:04 UTC (rev 2152)
@@ -1,5 +1,119 @@
"""
-UMFPACK v4.4 wrappers.
+Interface to the UMFPACK library.
+=================================
+
+Routines for symbolic and numeric LU factorization of sparse
+matrices and for solving systems of linear equations with sparse matrices.
+
+Tested with UMFPACK V4.4 (Jan. 28, 2005), V5.0 (May 5, 2006)
+Copyright (c) 2005 by Timothy A. Davis. All Rights Reserved.
+UMFPACK homepage: http://www.cise.ufl.edu/research/sparse/umfpack
+
+Contains: UmfpackContext class
+
+Use 'print UmfpackContext().funs' to see all UMFPACK library functions the
+module exposes, if you need something not covered by the examples below.
+
+Installation:
+=============
+Example site.cfg entry:
+
+UMFPACK v4.4 in
:
+
+[amd]
+library_dirs = /UMFPACK/AMD/Lib
+include_dirs = /UMFPACK/AMD/Include
+amd_libs = amd
+
+[umfpack]
+library_dirs = /UMFPACK/UMFPACK/Lib
+include_dirs = /UMFPACK/UMFPACK/Include
+umfpack_libs = umfpack
+
+UMFPACK v5.0 (as part of UFsparse package) in :
+
+[amd]
+library_dirs = /UFsparse/AMD/Lib
+include_dirs = /UFsparse/AMD/Include, /UFsparse/UFconfig
+amd_libs = amd
+
+[umfpack]
+library_dirs = /UFsparse/UMFPACK/Lib
+include_dirs = /UFsparse/UMFPACK/Include, /UFsparse/UFconfig
+umfpack_libs = umfpack
+
+Examples:
+=========
+
+Assuming this module imported as um (import scipy.linsolve.umfpack as um)
+
+Sparse matrix in CSR or CSC format: mtx
+Righthand-side: rhs
+Solution: sol
+
+# Contruct the solver.
+umfpack = um.UmfpackContext() # Use default 'di' family of UMFPACK routines.
+
+# One-shot solution.
+sol = umfpack( um.UMFPACK_A, mtx, rhs, autoTranspose = True )
+# same as:
+sol = umfpack.linsolve( um.UMFPACK_A, mtx, rhs, autoTranspose = True )
+
+-or-
+
+# Make LU decomposition.
+umfpack.numeric( mtx )
+...
+# Use already LU-decomposed matrix.
+sol1 = umfpack( um.UMFPACK_A, mtx, rhs1, autoTranspose = True )
+sol2 = umfpack( um.UMFPACK_A, mtx, rhs2, autoTranspose = True )
+# same as:
+sol1 = umfpack.solve( um.UMFPACK_A, mtx, rhs1, autoTranspose = True )
+sol2 = umfpack.solve( um.UMFPACK_A, mtx, rhs2, autoTranspose = True )
+
+-or-
+
+# Make symbolic decomposition.
+umfpack.symbolic( mtx0 )
+# Print statistics.
+umfpack.report_symbolic()
+
+...
+
+# Make LU decomposition of mtx1 which has same structure as mtx0.
+umfpack.numeric( mtx1 )
+# Print statistics.
+umfpack.report_numeric()
+
+# Use already LU-decomposed matrix.
+sol1 = umfpack( um.UMFPACK_A, mtx1, rhs1, autoTranspose = True )
+
+...
+
+# Make LU decomposition of mtx2 which has same structure as mtx0.
+umfpack.numeric( mtx2 )
+sol2 = umfpack.solve( um.UMFPACK_A, mtx2, rhs2, autoTranspose = True )
+
+# Print all statistics.
+umfpack.report_info()
+
+Setting control parameters:
+===========================
+Assuming this module imported as um:
+
+List of control parameter names is accessible as 'um.umfControls' - their
+meaning and possible values are described in the UMFPACK documentation.
+To each name corresponds an attribute of the 'um' module, such as,
+for example 'um.UMFPACK_PRL' (controlling the verbosity of umfpack report
+functions). These attributes are in fact indices into the control array
+- to set the corresponding control array value, just do the following:
+
+umfpack = um.UmfpackContext()
+umfpack.control[um.UMFPACK_PRL] = 4 # Let's be more verbose.
+
+--
+Author: Robert Cimrman
"""
+postpone_import = 1
global_symbols = ['UmfpackContext']
Modified: trunk/Lib/linsolve/umfpack/umfpack.py
===================================================================
--- trunk/Lib/linsolve/umfpack/umfpack.py 2006-08-05 20:24:43 UTC (rev 2151)
+++ trunk/Lib/linsolve/umfpack/umfpack.py 2006-08-09 09:47:04 UTC (rev 2152)
@@ -1,3 +1,11 @@
+"""
+Interface to the UMFPACK library.
+
+--
+Author: Robert Cimrman
+"""
+
+
#from base import Struct, pause
import numpy as nm
import scipy.sparse as sp
@@ -7,93 +15,6 @@
except:
_um = None
-__doc__ = """
-Interface to the UMFPACK library.
-Routines for symbolic and numeric LU factorization of sparse
-matrices and for solving systems of linear equations with sparse matrices.
-
-Tested with UMFPACK V4.4 (Jan. 28, 2005),
-Copyright (c) 2005 by Timothy A. Davis. All Rights Reserved.
-UMFPACK homepage: http://www.cise.ufl.edu/research/sparse/umfpack
-
-Contains: UmfpackContext class
-
-Use 'print UmfpackContext().funs' to see all UMFPACK library functions the
-module exposes, if you need something not covered by the examples below.
-
-Examples:
-=========
-
-Assuming this module imported as um
-
-Sparse matrix in CSR or CSC format: mtx
-Righthand-side: rhs
-Solution: sol
-
-# Contruct the solver.
-umfpack = um.UmfpackContext() # Use default 'di' family of UMFPACK routines.
-
-# One-shot solution.
-sol = umfpack( um.UMFPACK_A, mtx, rhs, autoTranspose = True )
-# same as:
-sol = umfpack.linsolve( um.UMFPACK_A, mtx, rhs, autoTranspose = True )
-
--or-
-
-# Make LU decomposition.
-umfpack.numeric( mtx )
-...
-# Use already LU-decomposed matrix.
-sol1 = umfpack( um.UMFPACK_A, mtx, rhs1, autoTranspose = True )
-sol2 = umfpack( um.UMFPACK_A, mtx, rhs2, autoTranspose = True )
-# same as:
-sol1 = umfpack.solve( um.UMFPACK_A, mtx, rhs1, autoTranspose = True )
-sol2 = umfpack.solve( um.UMFPACK_A, mtx, rhs2, autoTranspose = True )
-
--or-
-
-# Make symbolic decomposition.
-umfpack.symbolic( mtx0 )
-# Print statistics.
-umfpack.report_symbolic()
-
-...
-
-# Make LU decomposition of mtx1 which has same structure as mtx0.
-umfpack.numeric( mtx1 )
-# Print statistics.
-umfpack.report_numeric()
-
-# Use already LU-decomposed matrix.
-sol1 = umfpack( um.UMFPACK_A, mtx1, rhs1, autoTranspose = True )
-
-...
-
-# Make LU decomposition of mtx2 which has same structure as mtx0.
-umfpack.numeric( mtx2 )
-sol2 = umfpack.solve( um.UMFPACK_A, mtx2, rhs2, autoTranspose = True )
-
-# Print all statistics.
-umfpack.report_info()
-
-Setting control parameters:
-===========================
-Assuming this module imported as um:
-
-List of control parameter names is accessible as 'um.umfControls' - their
-meaning and possible values are described in the UMFPACK documentation.
-To each name corresponds an attribute of the 'um' module, such as,
-for example 'um.UMFPACK_PRL' (controlling the verbosity of umfpack report
-functions). These attributes are in fact indices into the control array
-- to set the corresponding control array value, just do the following:
-
-umfpack = um.UmfpackContext()
-umfpack.control[um.UMFPACK_PRL] = 4 # Let's be more verbose.
-
---
-Author: Robert Cimrman
-"""
-
##
# 30.11.2005, c
def updateDictWithVars( adict, module, pattern, group = None ):
From scipy-svn at scipy.org Wed Aug 9 16:53:24 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 9 Aug 2006 15:53:24 -0500 (CDT)
Subject: [Scipy-svn] r2153 - trunk/Lib/special/cephes
Message-ID: <20060809205324.037B739C044@new.scipy.org>
Author: cookedm
Date: 2006-08-09 15:53:22 -0500 (Wed, 09 Aug 2006)
New Revision: 2153
Modified:
trunk/Lib/special/cephes/mconf.h
Log:
Fix #12: Lib\special\cephes\const.c doesn't compile with Visual Studio
Modified: trunk/Lib/special/cephes/mconf.h
===================================================================
--- trunk/Lib/special/cephes/mconf.h 2006-08-09 09:47:04 UTC (rev 2152)
+++ trunk/Lib/special/cephes/mconf.h 2006-08-09 20:53:22 UTC (rev 2153)
@@ -106,11 +106,16 @@
defined(__decvax__) || defined(pro350) || defined(pdp11)
#define DEC 1
-#elif defined(ns32000) || defined(sun386) || \
- defined(i386) || defined(MIPSEL) || defined(_MIPSEL) || \
- defined(BIT_ZERO_ON_RIGHT) || defined(__alpha__) || defined(__alpha) || \
- defined(sequent) || defined(i386) || \
- defined(__ns32000__) || defined(__sun386__) || defined(__i386__)
+#elif defined(ns32000) || defined(__ns32000__) || \
+ defined(sun386) || defined(__sun386__) || \
+ defined(__i386__) || defined(i386) || \
+ defined(_M_IX86) || defined(_X86_) || defined(__THW_INTEL__) || \
+ defined(__I86__) || defined(__INTEL__) || \
+ defined(__amd64__) || defined(__ia64__) || defined(_M_IA64) || \
+ defined(MIPSEL) || defined(_MIPSEL) || \
+ defined(BIT_ZERO_ON_RIGHT) || \
+ defined(__alpha__) || defined(__alpha) || \
+ defined(sequent)
#define IBMPC 1 /* Intel IEEE, low order words come first */
#define BIGENDIAN 0
From scipy-svn at scipy.org Wed Aug 9 17:10:09 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 9 Aug 2006 16:10:09 -0500 (CDT)
Subject: [Scipy-svn] r2154 - trunk/Lib/special/cephes
Message-ID: <20060809211009.DB15D39C0B8@new.scipy.org>
Author: cookedm
Date: 2006-08-09 16:10:08 -0500 (Wed, 09 Aug 2006)
New Revision: 2154
Modified:
trunk/Lib/special/cephes/cephes_names.h
Log:
special.cephes: add to so that it doesn't conflict with system's
Modified: trunk/Lib/special/cephes/cephes_names.h
===================================================================
--- trunk/Lib/special/cephes/cephes_names.h 2006-08-09 20:53:22 UTC (rev 2153)
+++ trunk/Lib/special/cephes/cephes_names.h 2006-08-09 21:10:08 UTC (rev 2154)
@@ -22,6 +22,7 @@
#define exp1m cephes_exp1m
#define exp2 cephes_exp2
#define expn cephes_expn
+#define fabs cephes_fabs
#define fdtrc cephes_fdtrc
#define fdtr cephes_fdtr
#define fdtri cephes_fdtri
From scipy-svn at scipy.org Wed Aug 9 17:59:14 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 9 Aug 2006 16:59:14 -0500 (CDT)
Subject: [Scipy-svn] r2155 - trunk/Lib/optimize/lbfgsb
Message-ID: <20060809215914.40F5C39C016@new.scipy.org>
Author: cookedm
Date: 2006-08-09 16:59:12 -0500 (Wed, 09 Aug 2006)
New Revision: 2155
Modified:
trunk/Lib/optimize/lbfgsb/routines.f
Log:
Fix #210: L-BFGS-B performs very badly due to silent failures.
The LAPACK routine `dpotrs` was being used for the linpack routine `dtrsl`,
instead of `dtrtrs`.
Modified: trunk/Lib/optimize/lbfgsb/routines.f
===================================================================
--- trunk/Lib/optimize/lbfgsb/routines.f 2006-08-09 21:10:08 UTC (rev 2154)
+++ trunk/Lib/optimize/lbfgsb/routines.f 2006-08-09 21:59:12 UTC (rev 2155)
@@ -1,4 +1,7 @@
c Modified for SciPy by removing dependency on linpack
+c - dnrm2, daxpy, dcopy, ddot, dscal are the same in linpack and
+c LAPACK
+c - wrappers that call LAPACK are used for dtrsl and dpofa
c================ L-BFGS-B (version 2.1) ==========================
subroutine setulb(n, m, x, l, u, nbd, f, g, factr, pgtol, wa, iwa,
@@ -1100,7 +1103,6 @@
c
c Subprograms called:
c
-c CHANGED to use dpotrs from LAPACK
c Linpack ... dtrsl.
c
c
@@ -1135,8 +1137,7 @@
p(i2) = v(i2) + sum
20 continue
c Solve the triangular system
-c call dtrsl(wt,m,col,p(col+1),11,info)
- call dpotrs('L',col,1,wt,m,p(col+1),col,info)
+ call dtrsl(wt,m,col,p(col+1),11,info)
if (info .ne. 0) return
c solve D^(1/2)p1=v1.
@@ -1148,8 +1149,7 @@
c [ 0 J' ] [ p2 ] [ p2 ].
c solve J^Tp2=p2.
-c call dtrsl(wt,m,col,p(col+1),01,info)
- call dpotrs('U',col,1,wt,m,p(col+1),col,info)
+ call dtrsl(wt,m,col,p(col+1),01,info)
if (info .ne. 0) return
c compute p1=-D^(-1/2)(p1-D^(-1/2)L'p2)
@@ -1902,7 +1902,6 @@
c
c Subprograms called:
c
-c Changed to LAPACK and BLAS ROUTINES ... dcopy, dpotrf,
c Linpack ... dcopy, dpofa, dtrsl.
c
c
@@ -2088,7 +2087,7 @@
c first Cholesky factor (1,1) block of wn to get LL'
c with L' stored in the upper triangle of wn.
- call dpotrf('U',col,wn,m2,info)
+ call dpofa(wn,m2,col,info)
if (info .ne. 0) then
info = -1
return
@@ -2096,8 +2095,7 @@
c then form L^-1(-L_a'+R_z') in the (1,2) block.
col2 = 2*col
do 71 js = col+1 ,col2
-c call dtrsl(wn,m2,col,wn(1,js),11,info)
- call dpotrs('L',col,1,wn,m2,wn(1,js),col,info)
+ call dtrsl(wn,m2,col,wn(1,js),11,info)
71 continue
c Form S'AA'S*theta + (L^-1(-L_a'+R_z'))'L^-1(-L_a'+R_z') in the
@@ -2112,7 +2110,7 @@
c Cholesky factorization of (2,2) block of wn.
- call dpotrf('U',col,wn(col+1,col+1),m2,info)
+ call dpofa(wn(col+1,col+1),m2,col,info)
if (info .ne. 0) then
info = -2
return
@@ -2140,7 +2138,6 @@
c
c Subprograms called:
c
-c CHANGED to LAPACK -- dpotrf
c Linpack ... dpofa.
c
c
@@ -2182,7 +2179,7 @@
c Cholesky factorize T to J*J' with
c J' stored in the upper triangle of wt.
- call dpotrf('U',col,wt,m,info)
+ call dpofa(wt,m,col,info)
if (info .ne. 0) then
info = -3
endif
@@ -3125,14 +3122,12 @@
m2 = 2*m
col2 = 2*col
-c call dtrsl(wn,m2,col2,wv,11,info)
- call dpotrs('L',col2,1,wn,m2,wv,col2,info)
+ call dtrsl(wn,m2,col2,wv,11,info)
if (info .ne. 0) return
do 25 i = 1, col
wv(i) = -wv(i)
25 continue
-c call dtrsl(wn,m2,col2,wv,01,info)
- call dpotrs('U',col2,1,wn,m2,wv,col2,info)
+ call dtrsl(wn,m2,col2,wv,01,info)
if (info .ne. 0) return
c Compute d = (1/theta)d + (1/theta**2)Z'W wv.
@@ -3960,5 +3955,120 @@
70 return
end
-
+
c====================== The end of dpmeps ==============================
+
+ subroutine dpofa(a,lda,n,info)
+ integer lda,n,info
+ double precision a(lda,1)
+c
+c dpofa factors a double precision symmetric positive definite
+c matrix.
+c
+c dpofa is usually called by dpoco, but it can be called
+c directly with a saving in time if rcond is not needed.
+c (time for dpoco) = (1 + 18/n)*(time for dpofa) .
+c
+c on entry
+c
+c a double precision(lda, n)
+c the symmetric matrix to be factored. only the
+c diagonal and upper triangle are used.
+c
+c lda integer
+c the leading dimension of the array a .
+c
+c n integer
+c the order of the matrix a .
+c
+c on return
+c
+c a an upper triangular matrix r so that a = trans(r)*r
+c where trans(r) is the transpose.
+c the strict lower triangle is unaltered.
+c if info .ne. 0 , the factorization is not complete.
+c
+c info integer
+c = 0 for normal return.
+c = k signals an error condition. the leading minor
+c of order k is not positive definite.
+c
+c This is just a wrapper that calls LAPACK, but with the LINPACK
+c calling convention.
+
+ call dpotrf('U', n, a, lda, info)
+ end
+
+c====================== The end of dpofa ===============================
+
+ subroutine dtrsl(t, ldt, n, b, job, info)
+ integer ldt, n, job, info
+ double precision t(ldt,1), b(1)
+c
+c
+c dtrsl solves systems of the form
+c
+c t * x = b
+c or
+c trans(t) * x = b
+c
+c where t is a triangular matrix of order n. here trans(t)
+c denotes the transpose of the matrix t.
+c
+c on entry
+c
+c t double precision(ldt,n)
+c t contains the matrix of the system. the zero
+c elements of the matrix are not referenced, and
+c the corresponding elements of the array can be
+c used to store other information.
+c
+c ldt integer
+c ldt is the leading dimension of the array t.
+c
+c n integer
+c n is the order of the system.
+c
+c b double precision(n).
+c b contains the right hand side of the system.
+c
+c job integer
+c job specifies what kind of system is to be solved.
+c if job is
+c
+c 00 solve t*x=b, t lower triangular,
+c 01 solve t*x=b, t upper triangular,
+c 10 solve trans(t)*x=b, t lower triangular,
+c 11 solve trans(t)*x=b, t upper triangular.
+c
+c on return
+c
+c b b contains the solution, if info .eq. 0.
+c otherwise b is unaltered.
+c
+c info integer
+c info contains zero if the system is nonsingular.
+c otherwise info contains the index of
+c the first zero diagonal element of t.
+c
+c This is just a wrapper that calls LAPACK, but with the LINPACK
+c calling convention.
+
+ character*1 uplo, trans
+
+ if (job .eq. 00) then
+ uplo = 'L'
+ trans = 'N'
+ else if (job .eq. 01) then
+ uplo = 'U'
+ trans = 'N'
+ else if (job .eq. 10) then
+ uplo = 'L'
+ trans = 'T'
+ else if (job .eq. 11) then
+ uplo = 'U'
+ trans = 'T'
+ endif
+ call dtrtrs(uplo, trans, 'N', n, 1, t, ldt, b, n, info)
+ end
+c====================== The end of dtrsl ==============================
From scipy-svn at scipy.org Wed Aug 9 18:43:19 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 9 Aug 2006 17:43:19 -0500 (CDT)
Subject: [Scipy-svn] r2156 - trunk/Lib/weave/scxx
Message-ID: <20060809224319.BE41239C00C@new.scipy.org>
Author: oliphant
Date: 2006-08-09 17:43:16 -0500 (Wed, 09 Aug 2006)
New Revision: 2156
Modified:
trunk/Lib/weave/scxx/object.h
Log:
Fix up weave to understand more objects in conversion to Python scalars.
Modified: trunk/Lib/weave/scxx/object.h
===================================================================
--- trunk/Lib/weave/scxx/object.h 2006-08-09 21:59:12 UTC (rev 2155)
+++ trunk/Lib/weave/scxx/object.h 2006-08-09 22:43:16 UTC (rev 2156)
@@ -126,25 +126,41 @@
};
operator int () const {
- if (!PyInt_Check(_obj))
- fail(PyExc_TypeError, "cannot convert value to integer");
- return PyInt_AsLong(_obj);
+ int _val;
+ _val = PyInt_AsLong(_obj);
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
+ fail(PyExc_TypeError, "cannot convert value to integer");
+ }
+ return _val;
};
operator float () const {
- if (!PyFloat_Check(_obj))
+ float _val;
+ _val = (float) PyFloat_AsDouble(_obj);
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
fail(PyExc_TypeError, "cannot convert value to float");
- return (float) PyFloat_AsDouble(_obj);
+ }
+ return _val;
};
operator double () const {
- if (!PyFloat_Check(_obj))
+ double _val;
+ _val = PyFloat_AsDouble(_obj);
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
fail(PyExc_TypeError, "cannot convert value to double");
- return PyFloat_AsDouble(_obj);
+ }
+ return _val;
};
operator std::complex () const {
- if (!PyComplex_Check(_obj))
+ double real, imag;
+ real = PyComplex_RealAsDouble(_obj);
+ imag = PyComplex_ImagAsDouble(_obj);
+ if (PyErr_Occurred()) {
+ PyErr_Clear();
fail(PyExc_TypeError, "cannot convert value to complex");
- return std::complex(PyComplex_RealAsDouble(_obj),
- PyComplex_ImagAsDouble(_obj));
+ }
+ return std::complex(real, imag);
};
operator std::string () const {
if (!PyString_Check(_obj))
From scipy-svn at scipy.org Sat Aug 12 17:37:55 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sat, 12 Aug 2006 16:37:55 -0500 (CDT)
Subject: [Scipy-svn] r2157 - in trunk/Lib/io: . tests tests/data
Message-ID: <20060812213755.3D62639C05D@new.scipy.org>
Author: stefan
Date: 2006-08-12 16:37:25 -0500 (Sat, 12 Aug 2006)
New Revision: 2157
Added:
trunk/Lib/io/tests/data/
trunk/Lib/io/tests/data/test3dmatrix_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testcell_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testcellnest_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testcomplex_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testdouble_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testmatrix_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testminus_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testobject_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testonechar_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testsparse_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/testsparsecomplex_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/teststring_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/teststringarray_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/teststruct_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/teststructarr_6.5.1_GLNX86.mat
trunk/Lib/io/tests/data/teststructnest_6.5.1_GLNX86.mat
trunk/Lib/io/tests/test_mio.py
Modified:
trunk/Lib/io/mio.py
Log:
Improved MATLAB file reading [for Matthew Brett and Nick Fotopoulos].
Modified: trunk/Lib/io/mio.py
===================================================================
--- trunk/Lib/io/mio.py 2006-08-09 22:43:16 UTC (rev 2156)
+++ trunk/Lib/io/mio.py 2006-08-12 21:37:25 UTC (rev 2157)
@@ -2,22 +2,21 @@
# Author: Travis Oliphant
-from numpy import squeeze
-from numpy import ndarray
-from numpy import *
-import numpyio
import struct, os, sys
import types
+from tempfile import mkstemp
+import zlib
+
+from numpy import array, asarray, empty, obj2sctype, product, reshape, \
+ squeeze, transpose, zeros, vstack, ndarray, shape, diff, where, uint8
+import numpyio
+
try:
import scipy.sparse
have_sparse = 1
except ImportError:
have_sparse = 0
-if sys.version_info[0] < 2 or sys.version_info[1] < 3:
- False = 0
- True = 1
-
LittleEndian = (sys.byteorder == 'little')
_unit_imag = {'f': array(1j,'F'), 'd': 1j}
@@ -29,7 +28,7 @@
mtype = 'B'
elif mtype in ['S1', 'char', 'char*1']:
mtype = 'B'
- elif mtype in ['h','schar', 'signed char']:
+ elif mtype in ['b', 'schar', 'signed char']:
mtype = 'b'
elif mtype in ['h','short','int16','integer*2']:
mtype = 'h'
@@ -37,7 +36,7 @@
mtype = 'H'
elif mtype in ['i','int']:
mtype = 'i'
- elif mtype in ['i','uint','uint32','unsigned int']:
+ elif mtype in ['I','uint','uint32','unsigned int']:
mtype = 'I'
elif mtype in ['l','long','int32','integer*4']:
mtype = 'l'
@@ -55,57 +54,9 @@
newarr = empty((1,),mtype)
return newarr.itemsize, newarr.dtype.char
-if sys.version[:3] < "2.2":
- class file:
- def __init__(self, name, mode='r', bufsize=-1):
- self.fid = open(name, mode, bufsize)
+class fopen(object):
+ """Class for reading and writing binary files into numpy arrays.
- def close(self):
- self.fid.close()
-
- def flush(self):
- self.fid.flush()
-
- def fileno(self):
- return self.fid.fileno()
-
- def isatty(self):
- return self.fid.isatty()
-
- def read(size=-1):
- return self.fid.read(size)
-
- def readline(size=-1):
- return self.fid.readlines()
-
- def readlines(sizehint=None):
- if sizehint is None:
- return self.fid.readlines()
- else:
- return self.fid.readlines(sizehint)
-
- def seek(offset, whence=0):
- self.fid.seek(offset, whence)
-
- def tell():
- return self.fid.tell()
-
- def truncate(size=None):
- if size is None:
- self.fid.truncate()
- else:
- self.fid.truncate(size)
-
- def write(str):
- self.fid.write(str)
-
- def writelines(sequence):
- self.fid.write(sequence)
-
-
-class fopen(file):
- """Class for reading and writing binary files into Numeric arrays.
-
Inputs:
file_name -- The complete path name to the file to open.
@@ -127,8 +78,8 @@
# Methods:
#
-# read -- read data from file and return Numeric array
-# write -- write to file from Numeric array
+# read -- read data from file and return numpy array
+# write -- write to file from numpy array
# fort_read -- read Fortran-formatted binary data from the file.
# fort_write -- write Fortran-formatted binary data to the file.
# rewind -- rewind to beginning of file
@@ -136,67 +87,63 @@
# seek -- seek to some position in the file
# tell -- return current position in file
# close -- close the file
-#
-#
-#
def __init__(self,file_name,permission='rb',format='n'):
- if 'B' not in permission: permission += 'B'
- if type(file_name) in (types.StringType, types.UnicodeType):
- file.__init__(self, file_name, permission)
- elif 'fileno' in file_name.__methods__: # first argument is an open file
- self = file_name
-
- if format in ['native','n','default']:
- self.__dict__['bs'] = 0
- self.__dict__['format'] = 'native'
- elif format in ['ieee-le','l','little-endian','le']:
- self.__dict__['bs'] = not LittleEndian
- self.__dict__['format'] = 'ieee-le'
- elif format in ['ieee-be','B','big-endian','be']:
- self.__dict__['bs'] = LittleEndian
- self.__dict__['format'] = 'ieee-be'
+ if 'b' not in permission: permission += 'b'
+ if isinstance(file_name, basestring):
+ self.file = file(file_name, permission)
+ elif isinstance(file_name, file) and not file_name.closed:
+ # first argument is an open file
+ self.file = file_name
else:
- raise ValueError, "Unrecognized format: " + format
-
-# def __setattr__(self, attribute):
-# raise SyntaxError, "There are no user-settable attributes."
-
+ raise TypeError, 'Need filename or open file as input'
+ self.setformat(format)
+ self.zbuffer = None
+
def __del__(self):
try:
- self.close()
+ self.file.close()
except:
pass
+ def close(self):
+ self.file.close()
+
+ def seek(self, *args):
+ self.file.seek(*args)
+
+ def tell(self):
+ self.file.tell()
+
def raw_read(self, size=-1):
"""Read raw bytes from file as string."""
- return file.read(self, size)
+ return self.file.read(size)
def raw_write(self, str):
"""Write string to file as raw bytes."""
- return file.read(self, str)
+ return self.file.write(str)
def setformat(self, format):
"""Set the byte-order of the file."""
if format in ['native','n','default']:
- self.__dict__['bs'] = False
- self.__dict__['format'] = 'native'
+ self.bs = False
+ self.format = 'native'
elif format in ['ieee-le','l','little-endian','le']:
- self.__dict__['bs'] = not LittleEndian
- self.__dict__['format'] = 'ieee-le'
+ self.bs = not LittleEndian
+ self.format = 'ieee-le'
elif format in ['ieee-be','B','big-endian','be']:
- self.__dict__['bs'] = LittleEndian
- self.__dict__['format'] = 'ieee-be'
+ self.bs = LittleEndian
+ self.format = 'ieee-be'
else:
raise ValueError, "Unrecognized format: " + format
return
def write(self,data,mtype=None,bs=None):
- """Write to open file object the flattened Numeric array data.
+ """Write to open file object the flattened numpy array data.
Inputs:
- data -- the Numeric array to write.
+ data -- the numpy array to write.
mtype -- a string indicating the binary type to write.
The default is the type of data. If necessary a cast is made.
unsigned byte : 'B', 'uchar', 'byte' 'unsigned char', 'int8',
@@ -227,13 +174,13 @@
mtype = data.dtype.char
howmany,mtype = getsize_type(mtype)
count = product(data.shape)
- numpyio.fwrite(self,count,data,mtype,bs)
+ numpyio.fwrite(self.file,count,data,mtype,bs)
return
fwrite = write
def read(self,count,stype,rtype=None,bs=None,c_is_b=0):
- """Read data from file and return it in a Numeric array.
+ """Read data from file and return it in a numpy array.
Inputs:
@@ -249,7 +196,7 @@
Outputs: (output,)
- output -- a Numeric array of type rtype.
+ output -- a numpy array of type rtype.
"""
if bs is None:
bs = self.bs
@@ -291,9 +238,7 @@
howmany,rtype = getsize_type(rtype)
if count == 0:
return zeros(0,rtype)
- retval = numpyio.fread(self, count, stype, rtype, bs)
- if len(retval) == 1:
- retval = retval[0]
+ retval = numpyio.fread(self.file, count, stype, rtype, bs)
if shape is not None:
retval = resize(retval, shape)
return retval
@@ -301,7 +246,7 @@
fread = read
def rewind(self,howmany=None):
- """Rewind a file to it's beginning or by a specified amount.
+ """Rewind a file to its beginning or by a specified amount.
"""
if howmany is None:
self.seek(0)
@@ -318,7 +263,7 @@
self.seek(0,2)
sz = self.tell()
self.seek(curpos)
- self.__dict__['thesize'] = sz
+ self.thesize = sz
return sz
def fort_write(self,fmt,*args):
@@ -341,7 +286,7 @@
nfmt = ">i"
else:
nfmt = "i"
- if type(fmt) in (types.StringType, types.UnicodeType):
+ if isinstance(fmt, basestring):
if self.format == 'ieee-le':
fmt = "<"+fmt
elif self.format == 'ieee-be':
@@ -359,7 +304,7 @@
count = product(fmt.shape)
strlen = struct.pack(nfmt,count*sz)
self.write(strlen)
- numpyio.fwrite(self.fid,count,fmt,mtype,self.bs)
+ numpyio.fwrite(self.file,count,fmt,mtype,self.bs)
self.write(strlen)
else:
raise TypeError, "Unknown type in first argument"
@@ -412,14 +357,42 @@
raise ValueError, "Negative number of bytes to read:\n file is probably not opened with correct endian-ness."
if ncount == 0:
raise ValueError, "End of file? Zero-bytes to read."
- retval = numpyio.fread(self, ncount, dtype, dtype, self.bs)
+ retval = numpyio.fread(self.file, ncount, dtype, dtype, self.bs)
if len(retval) == 1:
retval = retval[0]
if (self.raw_read(nn) == ''):
raise ValueError, "Unexpected end of file..."
return retval
+
+class CompressedFopen(fopen):
+ """ File container for temporary buffer to decompress data """
+ def __init__(self, *args, **kwargs):
+ fd, fname = mkstemp()
+ super(CompressedFopen, self).__init__(
+ os.fdopen(fd, 'w+b'), *args, **kwargs)
+ self.file_name = fname
+
+ def fill(self, bytes):
+ """ Uncompress buffer in @bytes and write to file """
+ self.rewind()
+ self.raw_write(zlib.decompress(bytes))
+ self.rewind()
+ def __del__(self):
+ try:
+ self.file.truncate(0)
+ except:
+ pass
+ try:
+ self.close()
+ except:
+ pass
+ try:
+ os.remove(self.file_name)
+ except:
+ pass
+
#### MATLAB Version 5 Support ###########
# Portions of code borrowed and (heavily) adapted
@@ -465,6 +438,10 @@
miINT64 =12
miUINT64 = 13
miMATRIX = 14
+miCOMPRESSED = 15
+miUTF8 = 16
+miUTF16 = 17
+miUTF32 = 18
miNumbers = (
miINT8,
@@ -491,8 +468,23 @@
miINT64 : ('miINT64',8,'q'),
miUINT64 : ('miUINT64',8,'Q'),
miMATRIX : ('miMATRIX',0,None),
+ miUTF8 : ('miUTF8',1,'b'),
+ miUTF16 : ('miUTF16',2,'h'),
+ miUTF32 : ('miUTF32',4,'l'),
}
+''' Before release v7.1 (release 14) matlab used the system default
+character encoding scheme padded out to 16-bits. Release 14 and later
+use Unicode. When saving character data, matlab R14 checks if it can
+be encoded in 7-bit ascii, and saves in that format if so.'''
+miCodecs = {
+ miUINT8: 'ascii',
+ miUINT16: sys.getdefaultencoding(),
+ miUTF8: 'utf8',
+ miUTF16: 'utf16',
+ miUTF32: 'utf32',
+ }
+
mxCELL_CLASS = 1
mxSTRUCT_CLASS = 2
mxOBJECT_CLASS = 3
@@ -518,8 +510,8 @@
mxINT32_CLASS,
mxUINT32_CLASS,
)
-
-def _parse_header(fid, dict):
+
+def _parse_header(fid, hdict):
correct_endian = (ord('M')<<8) + ord('I')
# if this number is read no BS
fid.seek(126) # skip to endian detector
@@ -531,12 +523,19 @@
else: openstr = 'l'
fid.setformat(openstr) # change byte-order if necessary
fid.rewind()
- dict['__header__'] = fid.raw_read(124).strip(' \t\n\000')
+ hdict['__header__'] = fid.raw_read(124).strip(' \t\n\000')
vers = fid.read(1,'int16')
- dict['__version__'] = '%d.%d' % (vers >> 8, vers & 255)
+ hdict['__version__'] = '%d.%d' % (vers >> 8, vers & 0xFF)
fid.seek(2,1) # move to start of data
return
+def _skip_padding(fid, numbytes, rowsize):
+ """ Skip to next row or @rowsize after previous read of @numbytes """
+ mod = numbytes % rowsize
+ if mod:
+ skip = rowsize-mod
+ fid.seek(skip,1)
+
def _parse_array_flags(fid):
# first 8 bytes are always miUINT32 and 8 --- just a check
dtype, nbytes = fid.read(2,'I')
@@ -545,8 +544,8 @@
# read array flags.
rawflags = fid.read(2,'I')
- class_ = rawflags[0] & 255
- flags = (rawflags[0] & 65535) >> 8
+ class_ = rawflags[0] & 0xFF
+ flags = (rawflags[0] & 0xFFFF) >> 8
# Global and logical fields are currently ignored
if (flags & 8): cmplx = 1
else: cmplx = 0
@@ -558,16 +557,34 @@
def _parse_mimatrix(fid,bytes):
dclass, cmplx, nzmax =_parse_array_flags(fid)
- dims = _get_element(fid)[0]
- name = asarray(_get_element(fid)[0]).tostring()
+ dims = _get_element(fid)
+ name = _get_element(fid).tostring()
tupdims = tuple(dims[::-1])
if dclass in mxArrays:
- result, unused =_get_element(fid)
+ result, unused, dtype =_get_element(fid, return_name_dtype=True)
if dclass == mxCHAR_CLASS:
- result = ''.join(asarray(result).astype('S1'))
+ en = miCodecs[dtype]
+ try:
+ " ".encode(en)
+ except LookupError:
+ raise ValueError, 'Character encoding %s not supported' % en
+ if dtype == miUINT16:
+ char_len = len(" ".encode(en)) - len(" ".encode(en))
+ if char_len == 1: # Need to downsample from 16 bit
+ result = result.astype(uint8)
+ result = squeeze(transpose(reshape(result,tupdims)))
+ dims = result.shape
+ if len(dims) >= 2: # return array of strings
+ n_dims = dims[:-1]
+ string_arr = reshape(result, (product(n_dims), dims[-1]))
+ result = empty(n_dims, dtype=object)
+ for i in range(0, n_dims[-1]):
+ result[...,i] = string_arr[i].tostring().decode(en)
+ else: # return string
+ result = result.tostring().decode(en)
else:
if cmplx:
- imag, unused =_get_element(fid)
+ imag =_get_element(fid)
try:
result = result + _unit_imag[imag.dtype.char] * imag
except KeyError:
@@ -576,139 +593,167 @@
elif dclass == mxCELL_CLASS:
length = product(dims)
- result = zeros(length, PyObject)
+ result = empty(length, dtype=object)
for i in range(length):
- sa, unused = _get_element(fid)
- result[i]= sa
+ result[i] = _get_element(fid)
result = squeeze(transpose(reshape(result,tupdims)))
- if rank(result)==0: result = result.item()
+ if not result.shape:
+ result = result.item()
elif dclass == mxSTRUCT_CLASS:
length = product(dims)
- result = zeros(length, PyObject)
- namelength = _get_element(fid)[0]
+ result = zeros(length, object)
+ namelength = _get_element(fid)
# get field names
- names = _get_element(fid)[0]
+ names = _get_element(fid)
splitnames = [names[i:i+namelength] for i in \
xrange(0,len(names),namelength)]
- fieldnames = [''.join(asarray(x).astype('S1')).strip('\x00')
+ fieldnames = [x.tostring().strip('\x00')
for x in splitnames]
for i in range(length):
result[i] = mat_struct()
for element in fieldnames:
- val,unused = _get_element(fid)
- result[i].__dict__[element] = val
+ result[i].__dict__[element] = _get_element(fid)
result = squeeze(transpose(reshape(result,tupdims)))
- if rank(result)==0: result = result.item()
+ if not result.shape:
+ result = result.item()
# object is like a structure with but with a class name
elif dclass == mxOBJECT_CLASS:
- class_name = ''.join(asarray(_get_element(fid)[0]).astype('S1'))
+ class_name = _get_element(fid).tostring()
length = product(dims)
- result = zeros(length, PyObject)
- namelength = _get_element(fid)[0]
+ result = zeros(length, object)
+ namelength = _get_element(fid)
# get field names
- names = _get_element(fid)[0]
+ names = _get_element(fid)
splitnames = [names[i:i+namelength] for i in \
xrange(0,len(names),namelength)]
- fieldnames = [''.join(asarray(x).astype('S1')).strip('\x00')
+ fieldnames = [x.tostring().strip('\x00')
for x in splitnames]
for i in range(length):
result[i] = mat_obj()
result[i]._classname = class_name
for element in fieldnames:
- val,unused = _get_element(fid)
- result[i].__dict__[element] = val
+ result[i].__dict__[element] = _get_element(fid)
result = squeeze(transpose(reshape(result,tupdims)))
- if rank(result)==0: result = result.item()
+ if not result.shape:
+ result = result.item()
elif dclass == mxSPARSE_CLASS:
- rowind, unused = _get_element(fid)
- colind, unused = _get_element(fid)
- res, unused = _get_element(fid)
+ rowind = _get_element(fid)
+ colind = _get_element(fid)
+ res = _get_element(fid)
if cmplx:
- imag, unused = _get_element(fid)
+ imag = _get_element(fid)
try:
res = res + _unit_imag[imag.dtype.char] * imag
except (KeyError,AttributeError):
res = res + 1j*imag
+ ''' From the matlab API documentation, last found here:
+ http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_external/
+ @rowind are simply the row indices for all the (@res) non-zero
+ entries in the sparse array. @rowind has nzmax entries, so
+ may well have more entries than len(@res), the actual number
+ of non-zero entries, but @rowind[len(res):] can be discarded
+ and should be 0. @colind has length (number of columns + 1),
+ and is such that, if D = diff(@colind), D[j] gives the number
+ of non-zero entries in column j. Because @rowind values are
+ stored in column order, this gives the column corresponding to
+ each @rowind
+ '''
+ cols = empty((len(res)), dtype=rowind.dtype)
+ col_counts = diff(colind)
+ start_row = 0
+ for i in where(col_counts)[0]:
+ end_row = start_row + col_counts[i]
+ cols[start_row:end_row] = i
+ start_row = end_row
+ ij = vstack((rowind[:len(res)], cols))
if have_sparse:
- spmat = scipy.sparse.csc_matrix(res, (rowind[:len(res)], colind),
- M=dims[0],N=dims[1])
- result = spmat
+ result = scipy.sparse.csc_matrix((res,ij), [dims[0],dims[1]])
else:
- result = (dims, rowind, colind, res)
+ result = (dims, ij, res)
return result, name
# Return a Python object for the element
-def _get_element(fid):
+def _get_element(fid, return_name_dtype=False):
+ """ Return a python object from next element in @fid
+ @fid - fopen object for matfile
+ @return_name_dtype - if True, return tuple of (element, name, dtype)
+ if False, return element only
+ """
+ name = None
test = fid.raw_read(1)
if len(test) == 0: # nothing left
raise EOFError
else:
fid.rewind(1)
# get the data tag
- raw_tag = fid.read(1,'I')
-
- # check for compressed
+ raw_tag = int(fid.read(1,'I'))
+
+ # check for small data element format
numbytes = raw_tag >> 16
- if numbytes > 0: # compressed format
+ if numbytes > 0: # small data element format
if numbytes > 4:
raise IOError, "Problem with MAT file: " \
- "too many bytes in compressed format."
- dtype = raw_tag & 65535
+ "too many bytes in small data element format."
+ dtype = int(raw_tag & 0xFFFF)
el = fid.read(numbytes,miDataTypes[dtype][2],c_is_b=1)
fid.seek(4-numbytes,1) # skip padding
- return el, None
+ else:
+ # otherwise parse tag
+ dtype = raw_tag
+ numbytes = fid.read(1,'I')
+
+ if dtype == miCOMPRESSED: # compressed data type
+ if not fid.zbuffer:
+ fid.zbuffer = CompressedFopen(format=fid.format)
+ fid.zbuffer.fill(fid.raw_read(numbytes))
+ _skip_padding(fid, numbytes, 8)
+ return _get_element(fid.zbuffer, return_name_dtype)
+ if dtype != miMATRIX: # basic data type
+ try:
+ el = fid.read(numbytes,miDataTypes[dtype][2],c_is_b=1)
+ except KeyError:
+ raise ValueError, "Unknown data type"
+ _skip_padding(fid, numbytes, 8)
+ else:
+ # handle miMatrix type
+ el, name = _parse_mimatrix(fid,numbytes)
- # otherwise parse tag
- dtype = raw_tag
- numbytes = fid.read(1,'I')
- if dtype != miMATRIX: # basic data type
- try:
- outarr = fid.read(numbytes,miDataTypes[dtype][2],c_is_b=1)
- except KeyError:
- raise ValueError, "Unknown data type"
- mod8 = numbytes%8
- if mod8: # skip past padding
- skip = 8-mod8
- fid.seek(skip,1)
- return outarr, None
+ if return_name_dtype:
+ return el, name, dtype
+ return el
- # handle miMatrix type
- el, name = _parse_mimatrix(fid,numbytes)
- return el, name
-
def _loadv5(fid,basename):
- # return a dictionary from a Matlab version 5 file
+ # return a dictionary from a Matlab version 5-7.1 file
# always contains the variable __header__
- dict = {}
- _parse_header(fid,dict)
+ mdict = {}
+ _parse_header(fid,mdict)
var = 0
while 1: # file pointer to start of next data
try:
var = var + 1
- el, varname = _get_element(fid)
+ el, varname, unused = _get_element(fid, return_name_dtype=True)
if varname is None:
varname = '%s_%04d' % (basename,var)
- dict[varname] = el
+ mdict[varname] = el
except EOFError:
break
- return dict
+ return mdict
### END MATLAB v5 support #############
-def loadmat(name, dict=None, appendmat=1, basename='raw'):
+def loadmat(name, mdict=None, appendmat=1, basename='raw'):
"""Load the MATLAB(tm) mat file.
If name is a full path name load it in. Otherwise search for the file
on the sys.path list and load the first one found (the current directory
is searched first).
- Both v4 (Level 1.0) and v6 matfiles are supported. Version 7.0 files
- are not yet supported.
+ v4 (Level 1.0), v6 and v7.1 matfiles are supported.
Inputs:
@@ -754,13 +799,13 @@
if not (0 in test_vals): # MATLAB version 5 format
fid.rewind()
thisdict = _loadv5(fid,basename)
- if dict is not None:
- dict.update(thisdict)
+ if mdict is not None:
+ mdict.update(thisdict)
return
else:
return thisdict
-
-
+
+ # The remainder of this function is the v4 codepath
testtype = struct.unpack('i',test_vals.tostring())
# Check to see if the number is positive and less than 5000.
if testtype[0] < 0 or testtype[0] > 4999:
@@ -816,12 +861,13 @@
data = atleast_1d(fid.fread(numels,storage))
if header[3]: # imaginary data
data2 = fid.fread(numels,storage)
- new = zeros(data.shape,data.dtype.char.capitalize())
- new.real = data
- new.imag = data2
- data = new
- del(new)
- del(data2)
+ if data.dtype.char == 'f' and data2.dtype.char == 'f':
+ new = empty(data.shape,'F')
+ new.real = data
+ new.imag = data2
+ data = new
+ del(new)
+ del(data2)
if len(data) > 1:
data=data.reshape((header[2], header[1]) )
thisdict[varname] = transpose(squeeze(data))
@@ -836,14 +882,14 @@
thisdict[varname] = data
fid.close()
- if dict is not None:
+ if mdict is not None:
print "Names defined = ", defnames
- dict.update(thisdict)
+ mdict.update(thisdict)
else:
return thisdict
-def savemat(filename, dict):
+def savemat(filename, mdict):
"""Save a dictionary of names and arrays into the MATLAB-style .mat file.
This saves the arrayobjects in the given dictionary to a matlab Version 4
@@ -855,8 +901,8 @@
fid = fopen(filename,'wb')
M = not LittleEndian
O = 0
- for variable in dict.keys():
- var = dict[variable]
+ for variable in mdict.keys():
+ var = mdict[variable]
if not isinstance(var, ndarray):
continue
if var.dtype.char == 'S1':
Added: trunk/Lib/io/tests/data/test3dmatrix_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/test3dmatrix_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testcell_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testcell_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testcellnest_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testcellnest_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testcomplex_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testcomplex_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testdouble_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testdouble_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testmatrix_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testmatrix_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testminus_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testminus_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testobject_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testobject_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testonechar_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testonechar_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testsparse_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testsparse_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/testsparsecomplex_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testsparsecomplex_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/teststring_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/teststring_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/teststringarray_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/teststringarray_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/teststruct_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/teststruct_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/teststructarr_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/teststructarr_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/data/teststructnest_6.5.1_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/teststructnest_6.5.1_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: trunk/Lib/io/tests/test_mio.py
===================================================================
--- trunk/Lib/io/tests/test_mio.py 2006-08-09 22:43:16 UTC (rev 2156)
+++ trunk/Lib/io/tests/test_mio.py 2006-08-12 21:37:25 UTC (rev 2157)
@@ -0,0 +1,195 @@
+#!/usr/bin/env python
+
+import os
+from glob import glob
+from numpy.testing import set_package_path, restore_path, ScipyTestCase, ScipyTest
+from numpy.testing import assert_equal, assert_array_almost_equal
+from numpy import arange, array, eye, pi, cos, exp, sin, sqrt, ndarray, \
+ zeros, reshape, transpose, empty
+import scipy.sparse as SP
+
+set_package_path()
+from scipy.io.mio import loadmat, mat_obj, mat_struct
+restore_path()
+
+try: # Python 2.3 support
+ from sets import Set as set
+except:
+ pass
+
+class test_mio_array(ScipyTestCase):
+ def __init__(self, *args, **kwargs):
+ super(test_mio_array, self).__init__(*args, **kwargs)
+ self.test_data_path = os.path.join(os.path.dirname(__file__), './data')
+
+ def _check_level(self, label, expected, actual):
+ """ Check one level of a potentially nested dictionary / list """
+ # object array is returned from cell array in mat file
+ if isinstance(expected, ndarray) and expected.dtype.hasobject == 1:
+ assert type(expected) is type(actual), "Different types at %s" % label
+ assert len(expected) == len(actual), "Different list lengths at %s" % label
+ for i, ev in enumerate(expected):
+ level_label = "%s, [%d], " % (label, i)
+ self._check_level(level_label, ev, actual[i])
+ return
+ # object, as container for matlab structs and objects
+ elif isinstance(expected, mat_struct) or isinstance(expected, mat_obj):
+ assert isinstance(actual, type(expected)), \
+ "Different types %s and %s at %s" % label
+ ex_fields = dir(expected)
+ ac_fields = dir(actual)
+ for k in ex_fields:
+ if k.startswith('__') and k.endswith('__'):
+ continue
+ assert k in ac_fields, "Missing field at %s" % label
+ ev = expected.__dict__[k]
+ v = actual.__dict__[k]
+ level_label = "%s, field %s, " % (label, k)
+ self._check_level(level_label, ev, v)
+ return
+ # hoping this is a single value, which might be an array
+ if SP.issparse(expected):
+ assert SP.issparse(actual), "Expected sparse at %s" % label
+ assert_array_almost_equal(actual.todense(),
+ expected.todense(),
+ err_msg = label)
+ elif isinstance(expected, ndarray):
+ assert isinstance(actual, ndarray), "Expected ndarray at %s" % label
+ assert_array_almost_equal(actual, expected, err_msg=label)
+ else:
+ assert isinstance(expected, type(actual)), \
+ "Types %s and %s do not match at %s" % (type(expected), type(actual), label)
+ assert_equal(actual, expected, err_msg=label)
+
+ def _check_case(self, name, case):
+ filt = os.path.join(self.test_data_path, 'test%s_*.mat' % name)
+ files = glob(filt)
+ assert files, "No files for test %s using filter %s" % (name, filt)
+ for f in files:
+ matdict = loadmat(f)
+ label = "Test '%s', file:%s" % (name, f)
+ for k, expected in case.items():
+ k_label = "%s, variable %s" % (label, k)
+ assert k in matdict, "Missing key at %s" % k_label
+ self._check_level(k_label, expected, matdict[k])
+
+ # Add the actual tests dynamically, with given parameters
+ def _make_check_case(name, expected):
+ def cc(self):
+ self._check_case(name, expected)
+ cc.__doc__ = "check loadmat case %s" % name
+ return cc
+
+ # Define cases to test
+ theta = pi/4*arange(9,dtype=float)
+ case_table = [
+ {'name': 'double',
+ 'expected': {'testdouble': theta}
+ }]
+ case_table.append(
+ {'name': 'string',
+ 'expected': {'teststring': u'"Do nine men interpret?" "Nine men," I nod.'},
+ })
+ case_table.append(
+ {'name': 'complex',
+ 'expected': {'testcomplex': cos(theta) + 1j*sin(theta)}
+ })
+ case_table.append(
+ {'name': 'cell',
+ 'expected': {'testcell':
+ array([u'This cell contains this string and 3 arrays of '+\
+ 'increasing length',
+ array([1]), array([1,2]), array([1,2,3])],
+ dtype=object)}
+ })
+ st = mat_struct()
+ st.stringfield = u'Rats live on no evil star.'
+ st.doublefield = array([sqrt(2),exp(1),pi])
+ st.complexfield = (1+1j)*array([sqrt(2),exp(1),pi])
+ case_table.append(
+ {'name': 'struct',
+ 'expected': {'teststruct': st}
+ })
+ A = zeros((3,5))
+ A[0] = range(1,6)
+ A[:,0] = range(1,4)
+ case_table.append(
+ {'name': 'matrix',
+ 'expected': {'testmatrix': A},
+ })
+ case_table.append(
+ {'name': '3dmatrix',
+ 'expected': {'test3dmatrix': transpose(reshape(range(1,25), (4,3,2)))}
+ })
+ case_table.append(
+ {'name': 'sparse',
+ 'expected': {'testsparse': SP.csc_matrix(A)},
+ })
+ B = A.astype(complex)
+ B[0,0] += 1j
+ case_table.append(
+ {'name': 'sparsecomplex',
+ 'expected': {'testsparsecomplex': SP.csc_matrix(B)},
+ })
+ case_table.append(
+ {'name': 'minus',
+ 'expected': {'testminus': array([-1])},
+ })
+ case_table.append(
+ {'name': 'onechar',
+ 'expected': {'testonechar': u'r'},
+ })
+ case_table.append(
+ {'name': 'stringarray',
+ 'expected': {'teststringarray': array([u'one ', u'two ', u'three'], dtype=object)},
+ })
+ case_table.append(
+ {'name': 'cellnest',
+ 'expected': {'testcellnest': array([array([1]),
+ array([array([2]), array([3]),
+ array([array([4]), array([5])],
+ dtype=object)],
+ dtype=object)],
+ dtype=object)},
+ })
+ st = mat_struct()
+ st.one = array([1])
+ st.two = mat_struct()
+ st.two.three = u'number 3'
+ case_table.append(
+ {'name': 'structnest',
+ 'expected': {'teststructnest': st}
+ })
+ a = empty((2), dtype=object)
+ a[0], a[1] = mat_struct(), mat_struct()
+ a[0].one = array([1])
+ a[0].two = array([2])
+ a[1].one = u'number 1'
+ a[1].two = u'number 2'
+ case_table.append(
+ {'name': 'structarr',
+ 'expected': {'teststructarr': a}
+ })
+
+ a = mat_obj()
+ a._classname = 'inline'
+ a.expr = u'x'
+ a.inputExpr = u' x = INLINE_INPUTS_{1};'
+ a.args = u'x'
+ a.isEmpty = array([0])
+ a.numArgs = array([1])
+ a.version = array([1])
+ case_table.append(
+ {'name': 'object',
+ 'expected': {'testobject': a}
+ })
+
+ # add tests
+ for case in case_table:
+ name = case['name']
+ expected = case['expected']
+ exec 'check_%s = _make_check_case(name, expected)' % name
+
+if __name__ == "__main__":
+ ScipyTest().run()
+
From scipy-svn at scipy.org Sat Aug 12 19:04:37 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sat, 12 Aug 2006 18:04:37 -0500 (CDT)
Subject: [Scipy-svn] r2158 - trunk/Lib/interpolate
Message-ID: <20060812230437.E011339C051@new.scipy.org>
Author: stefan
Date: 2006-08-12 18:04:32 -0500 (Sat, 12 Aug 2006)
New Revision: 2158
Modified:
trunk/Lib/interpolate/fitpack.py
Log:
Improve user-friendliness of splrep [for David Huard]. Closes ticket
#199.
Modified: trunk/Lib/interpolate/fitpack.py
===================================================================
--- trunk/Lib/interpolate/fitpack.py 2006-08-12 21:37:25 UTC (rev 2157)
+++ trunk/Lib/interpolate/fitpack.py 2006-08-12 23:04:32 UTC (rev 2158)
@@ -49,7 +49,7 @@
fp gives the upper bound fp0 for the smoothing factor s""",None],
1:["""\
The required storage space exceeds the available strorage space.
- Probably causes: nest to small or s is too small. (fp>s)""",ValueError],
+ Probably causes: data (x,y) size is too small or smoothing parameter s is too small (fp>s).""",ValueError],
2:["""\
A theoretically impossible results when finding a smoothin spline
with fp = s. Probably causes: s too small. (abs(fp-s)/s>0.001)""",ValueError],
@@ -246,7 +246,7 @@
_curfit_cache = {'t': array([],float), 'wrk': array([],float),
'iwrk':array([],int)}
-def splrep(x,y,w=None,xb=None,xe=None,k=3,task=0,s=None,t=None,
+def splrep(x,y,w=None,xb=None,xe=None,k=3,task=0,s=1e-3,t=None,
full_output=0,per=0,quiet=1):
"""Find the B-spline representation of 1-D curve.
@@ -308,7 +308,17 @@
Remarks:
- SEE splev for evaluation of the spline and its derivatives.
+ See splev for evaluation of the spline and its derivatives.
+
+ Example:
+
+ x = linspace(0, 10, 10)
+ y = sin(x)
+ tck = splrep(x, y)
+ x2 = linspace(0, 10, 200)
+ y2 = splev(x2, tck)
+ plot(x, y, 'o', x2, y2)
+
"""
if task<=0:
_curfit_cache = {}
From scipy-svn at scipy.org Sun Aug 13 21:27:12 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 13 Aug 2006 20:27:12 -0500 (CDT)
Subject: [Scipy-svn] r2159 - in trunk/Lib: integrate/odepack
integrate/quadpack interpolate/fitpack
Message-ID: <20060814012712.9EB5139C049@new.scipy.org>
Author: cookedm
Date: 2006-08-13 20:26:54 -0500 (Sun, 13 Aug 2006)
New Revision: 2159
Modified:
trunk/Lib/integrate/odepack/intdy.f
trunk/Lib/integrate/odepack/lsoda.f
trunk/Lib/integrate/odepack/lsodar.f
trunk/Lib/integrate/odepack/lsode.f
trunk/Lib/integrate/odepack/lsodes.f
trunk/Lib/integrate/odepack/lsodi.f
trunk/Lib/integrate/odepack/lsoibt.f
trunk/Lib/integrate/odepack/xerrwv.f
trunk/Lib/integrate/quadpack/dqag.f
trunk/Lib/integrate/quadpack/dqagi.f
trunk/Lib/integrate/quadpack/dqagp.f
trunk/Lib/integrate/quadpack/dqags.f
trunk/Lib/integrate/quadpack/dqawc.f
trunk/Lib/integrate/quadpack/dqawf.f
trunk/Lib/integrate/quadpack/dqawo.f
trunk/Lib/integrate/quadpack/dqaws.f
trunk/Lib/integrate/quadpack/dqng.f
trunk/Lib/interpolate/fitpack/fppola.f
trunk/Lib/interpolate/fitpack/fpsphe.f
trunk/Lib/interpolate/fitpack/fpsurf.f
Log:
Move some Fortran code out of the 1960's: remove Hollerith constants
Modified: trunk/Lib/integrate/odepack/intdy.f
===================================================================
--- trunk/Lib/integrate/odepack/intdy.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/intdy.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -69,14 +69,14 @@
60 dky(i) = r*dky(i)
return
c
- 80 call xerrwv(30hintdy-- k (=i1) illegal ,
+ 80 call xerrwv('intdy-- k (=i1) illegal ',
1 30, 51, 0, 1, k, 0, 0, 0.0d0, 0.0d0)
iflag = -1
return
- 90 call xerrwv(30hintdy-- t (=r1) illegal ,
+ 90 call xerrwv('intdy-- t (=r1) illegal ',
1 30, 52, 0, 0, 0, 0, 1, t, 0.0d0)
call xerrwv(
- 1 60h t not in interval tcur - hu (= r1) to tcur (=r2) ,
+ 1 ' t not in interval tcur - hu (= r1) to tcur (=r2) ',
1 60, 52, 0, 0, 0, 0, 2, tp, tn)
iflag = -2
return
Modified: trunk/Lib/integrate/odepack/lsoda.f
===================================================================
--- trunk/Lib/integrate/odepack/lsoda.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/lsoda.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -164,15 +164,15 @@
c call lsoda(fex,neq,y,t,tout,itol,rtol,atol,itask,istate,
c 1 iopt,rwork,lrw,iwork,liw,jdum,jt)
c write(6,20)t,y(1),y(2),y(3)
-c 20 format(7h at t =,e12.4,6h y =,3e14.6)
+c 20 format(' at t =',e12.4,' y =',3e14.6)
c if (istate .lt. 0) go to 80
c 40 tout = tout*10.0d0
c write(6,60)iwork(11),iwork(12),iwork(13),iwork(19),rwork(15)
-c 60 format(/12h no. steps =,i4,11h no. f-s =,i4,11h no. j-s =,i4/
-c 1 19h method last used =,i2,25h last switch was at t =,e12.4)
+c 60 format(/' no. steps =',i4,' no. f-s =',i4,' no. j-s =',i4/
+c 1 ' method last used =',i2,' last switch was at t =',e12.4)
c stop
c 80 write(6,90)istate
-c 90 format(///22h error halt.. istate =,i3)
+c 90 format(///' error halt.. istate =',i3)
c stop
c end
c
@@ -1134,13 +1134,13 @@
insufr = 2
lewt = len1c + 1
call xerrwv(
- 1 60hlsoda-- warning.. rwork length is sufficient for now, but ,
+ 1 'lsoda-- warning.. rwork length is sufficient for now, but ',
1 60, 103, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h may not be later. integration will proceed anyway. ,
+ 1 ' may not be later. integration will proceed anyway. ',
1 60, 103, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 50h length needed is lenrw = i1, while lrw = i2.,
+ 1 ' length needed is lenrw = i1, while lrw = i2.',
1 50, 103, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
65 lsavf = lewt + n
lacor = lsavf + n
@@ -1148,13 +1148,13 @@
if (liw .ge. leniw) go to 70
insufi = 2
call xerrwv(
- 1 60hlsoda-- warning.. iwork length is sufficient for now, but ,
+ 1 'lsoda-- warning.. iwork length is sufficient for now, but ',
1 60, 104, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h may not be later. integration will proceed anyway. ,
+ 1 ' may not be later. integration will proceed anyway. ',
1 60, 104, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 50h length needed is leniw = i1, while liw = i2.,
+ 1 ' length needed is leniw = i1, while liw = i2.',
1 50, 104, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
70 continue
c check rtol and atol for legality. ------------------------------------
@@ -1334,17 +1334,17 @@
280 if ((tn + h) .ne. tn) go to 290
nhnil = nhnil + 1
if (nhnil .gt. mxhnil) go to 290
- call xerrwv(50hlsoda-- warning..internal t (=r1) and h (=r2) are,
+ call xerrwv('lsoda-- warning..internal t (=r1) and h (=r2) are',
1 50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h such that in the machine, t + h = t on the next step ,
+ 1 ' such that in the machine, t + h = t on the next step ',
1 60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h (h = step size). solver will continue anyway,
+ call xerrwv(' (h = step size). solver will continue anyway',
1 50, 101, 0, 0, 0, 0, 2, tn, h)
if (nhnil .lt. mxhnil) go to 290
- call xerrwv(50hlsoda-- above warning has been issued i1 times. ,
+ call xerrwv('lsoda-- above warning has been issued i1 times. ',
1 50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h it will not be issued again for this problem,
+ call xerrwv(' it will not be issued again for this problem',
1 50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
290 continue
c-----------------------------------------------------------------------
@@ -1375,13 +1375,13 @@
jstart = -1
if (ixpr .eq. 0) go to 310
if (meth .eq. 2) call xerrwv(
- 1 60hlsoda-- a switch to the bdf (stiff) method has occurred ,
+ 1 'lsoda-- a switch to the bdf (stiff) method has occurred ',
1 60, 105, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
if (meth .eq. 1) call xerrwv(
- 1 60hlsoda-- a switch to the adams (nonstiff) method has occurred,
+ 1 'lsoda-- a switch to the adams (nonstiff) method has occurred',
1 60, 106, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h at t = r1, tentative step size h = r2, step nst = i1 ,
+ 1 ' at t = r1, tentative step size h = r2, step nst = i1 ',
1 60, 107, 0, 1, nst, 0, 2, tn, h)
310 go to (320, 400, 330, 340, 350), itask
c itask = 1. if tout has been reached, interpolate. -------------------
@@ -1440,7 +1440,7 @@
430 ntrep = ntrep + 1
if (ntrep .lt. 5) return
call xerrwv(
- 1 60hlsoda-- repeated calls with istate = 1 and tout = t (=r1) ,
+ 1 'lsoda-- repeated calls with istate = 1 and tout = t (=r1) ',
1 60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
go to 800
c-----------------------------------------------------------------------
@@ -1453,55 +1453,55 @@
c the work arrays before returning.
c-----------------------------------------------------------------------
c the maximum number of steps was taken before reaching tout. ----------
- 500 call xerrwv(50hlsoda-- at current t (=r1), mxstep (=i1) steps ,
+ 500 call xerrwv('lsoda-- at current t (=r1), mxstep (=i1) steps ',
1 50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h taken on this call before reaching tout ,
+ call xerrwv(' taken on this call before reaching tout ',
1 50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
istate = -1
go to 580
c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
510 ewti = rwork(lewt+i-1)
- call xerrwv(50hlsoda-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+ call xerrwv('lsoda-- at t (=r1), ewt(i1) has become r2 .le. 0.',
1 50, 202, 0, 1, i, 0, 2, tn, ewti)
istate = -6
go to 580
c too much accuracy requested for machine precision. -------------------
- 520 call xerrwv(50hlsoda-- at t (=r1), too much accuracy requested ,
+ 520 call xerrwv('lsoda-- at t (=r1), too much accuracy requested ',
1 50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h for precision of machine.. see tolsf (=r2) ,
+ call xerrwv(' for precision of machine.. see tolsf (=r2) ',
1 50, 203, 0, 0, 0, 0, 2, tn, tolsf)
rwork(14) = tolsf
istate = -2
go to 580
c kflag = -1. error test failed repeatedly or with abs(h) = hmin. -----
- 530 call xerrwv(50hlsoda-- at t(=r1) and step size h(=r2), the error,
+ 530 call xerrwv('lsoda-- at t(=r1) and step size h(=r2), the error',
1 50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h test failed repeatedly or with abs(h) = hmin,
+ call xerrwv(' test failed repeatedly or with abs(h) = hmin',
1 50, 204, 0, 0, 0, 0, 2, tn, h)
istate = -4
go to 560
c kflag = -2. convergence failed repeatedly or with abs(h) = hmin. ----
- 540 call xerrwv(50hlsoda-- at t (=r1) and step size h (=r2), the ,
+ 540 call xerrwv('lsoda-- at t (=r1) and step size h (=r2), the ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h corrector convergence failed repeatedly ,
+ call xerrwv(' corrector convergence failed repeatedly ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h or with abs(h) = hmin ,
+ call xerrwv(' or with abs(h) = hmin ',
1 30, 205, 0, 0, 0, 0, 2, tn, h)
istate = -5
go to 560
c rwork length too small to proceed. -----------------------------------
- 550 call xerrwv(50hlsoda-- at current t(=r1), rwork length too small,
+ 550 call xerrwv('lsoda-- at current t(=r1), rwork length too small',
1 50, 206, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h to proceed. the integration was otherwise successful.,
+ 1 ' to proceed. the integration was otherwise successful.',
1 60, 206, 0, 0, 0, 0, 1, tn, 0.0d0)
istate = -7
go to 580
c iwork length too small to proceed. -----------------------------------
- 555 call xerrwv(50hlsoda-- at current t(=r1), iwork length too small,
+ 555 call xerrwv('lsoda-- at current t(=r1), iwork length too small',
1 50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h to proceed. the integration was otherwise successful.,
+ 1 ' to proceed. the integration was otherwise successful.',
1 60, 207, 0, 0, 0, 0, 1, tn, 0.0d0)
istate = -7
go to 580
@@ -1540,114 +1540,114 @@
c 5 consecutive such returns just before this call to the solver,
c the run is halted.
c-----------------------------------------------------------------------
- 601 call xerrwv(30hlsoda-- istate (=i1) illegal ,
+ 601 call xerrwv('lsoda-- istate (=i1) illegal ',
1 30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
go to 700
- 602 call xerrwv(30hlsoda-- itask (=i1) illegal ,
+ 602 call xerrwv('lsoda-- itask (=i1) illegal ',
1 30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
go to 700
- 603 call xerrwv(50hlsoda-- istate .gt. 1 but lsoda not initialized ,
+ 603 call xerrwv('lsoda-- istate .gt. 1 but lsoda not initialized ',
1 50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
go to 700
- 604 call xerrwv(30hlsoda-- neq (=i1) .lt. 1 ,
+ 604 call xerrwv('lsoda-- neq (=i1) .lt. 1 ',
1 30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
go to 700
- 605 call xerrwv(50hlsoda-- istate = 3 and neq increased (i1 to i2) ,
+ 605 call xerrwv('lsoda-- istate = 3 and neq increased (i1 to i2) ',
1 50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 606 call xerrwv(30hlsoda-- itol (=i1) illegal ,
+ 606 call xerrwv('lsoda-- itol (=i1) illegal ',
1 30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
go to 700
- 607 call xerrwv(30hlsoda-- iopt (=i1) illegal ,
+ 607 call xerrwv('lsoda-- iopt (=i1) illegal ',
1 30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 608 call xerrwv(30hlsoda-- jt (=i1) illegal ,
+ 608 call xerrwv('lsoda-- jt (=i1) illegal ',
1 30, 8, 0, 1, jt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 609 call xerrwv(50hlsoda-- ml (=i1) illegal.. .lt.0 or .ge.neq (=i2),
+ 609 call xerrwv('lsoda-- ml (=i1) illegal.. .lt.0 or .ge.neq (=i2)',
1 50, 9, 0, 2, ml, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 610 call xerrwv(50hlsoda-- mu (=i1) illegal.. .lt.0 or .ge.neq (=i2),
+ 610 call xerrwv('lsoda-- mu (=i1) illegal.. .lt.0 or .ge.neq (=i2)',
1 50, 10, 0, 2, mu, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 611 call xerrwv(30hlsoda-- ixpr (=i1) illegal ,
+ 611 call xerrwv('lsoda-- ixpr (=i1) illegal ',
1 30, 11, 0, 1, ixpr, 0, 0, 0.0d0, 0.0d0)
go to 700
- 612 call xerrwv(30hlsoda-- mxstep (=i1) .lt. 0 ,
+ 612 call xerrwv('lsoda-- mxstep (=i1) .lt. 0 ',
1 30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
go to 700
- 613 call xerrwv(30hlsoda-- mxhnil (=i1) .lt. 0 ,
+ 613 call xerrwv('lsoda-- mxhnil (=i1) .lt. 0 ',
1 30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
go to 700
- 614 call xerrwv(40hlsoda-- tout (=r1) behind t (=r2) ,
+ 614 call xerrwv('lsoda-- tout (=r1) behind t (=r2) ',
1 40, 14, 0, 0, 0, 0, 2, tout, t)
- call xerrwv(50h integration direction is given by h0 (=r1) ,
+ call xerrwv(' integration direction is given by h0 (=r1) ',
1 50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
go to 700
- 615 call xerrwv(30hlsoda-- hmax (=r1) .lt. 0.0 ,
+ 615 call xerrwv('lsoda-- hmax (=r1) .lt. 0.0 ',
1 30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
go to 700
- 616 call xerrwv(30hlsoda-- hmin (=r1) .lt. 0.0 ,
+ 616 call xerrwv('lsoda-- hmin (=r1) .lt. 0.0 ',
1 30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
go to 700
617 call xerrwv(
- 1 60hlsoda-- rwork length needed, lenrw (=i1), exceeds lrw (=i2),
+ 1 'lsoda-- rwork length needed, lenrw (=i1), exceeds lrw (=i2)',
1 60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
618 call xerrwv(
- 1 60hlsoda-- iwork length needed, leniw (=i1), exceeds liw (=i2),
+ 1 'lsoda-- iwork length needed, leniw (=i1), exceeds liw (=i2)',
1 60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
go to 700
- 619 call xerrwv(40hlsoda-- rtol(i1) is r1 .lt. 0.0 ,
+ 619 call xerrwv('lsoda-- rtol(i1) is r1 .lt. 0.0 ',
1 40, 19, 0, 1, i, 0, 1, rtoli, 0.0d0)
go to 700
- 620 call xerrwv(40hlsoda-- atol(i1) is r1 .lt. 0.0 ,
+ 620 call xerrwv('lsoda-- atol(i1) is r1 .lt. 0.0 ',
1 40, 20, 0, 1, i, 0, 1, atoli, 0.0d0)
go to 700
621 ewti = rwork(lewt+i-1)
- call xerrwv(40hlsoda-- ewt(i1) is r1 .le. 0.0 ,
+ call xerrwv('lsoda-- ewt(i1) is r1 .le. 0.0 ',
1 40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
go to 700
622 call xerrwv(
- 1 60hlsoda-- tout (=r1) too close to t(=r2) to start integration,
+ 1 'lsoda-- tout (=r1) too close to t(=r2) to start integration',
1 60, 22, 0, 0, 0, 0, 2, tout, t)
go to 700
623 call xerrwv(
- 1 60hlsoda-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ,
+ 1 'lsoda-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ',
1 60, 23, 0, 1, itask, 0, 2, tout, tp)
go to 700
624 call xerrwv(
- 1 60hlsoda-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ,
+ 1 'lsoda-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ',
1 60, 24, 0, 0, 0, 0, 2, tcrit, tn)
go to 700
625 call xerrwv(
- 1 60hlsoda-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ,
+ 1 'lsoda-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ',
1 60, 25, 0, 0, 0, 0, 2, tcrit, tout)
go to 700
- 626 call xerrwv(50hlsoda-- at start of problem, too much accuracy ,
+ 626 call xerrwv('lsoda-- at start of problem, too much accuracy ',
1 50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h requested for precision of machine.. see tolsf (=r1) ,
+ 1 ' requested for precision of machine.. see tolsf (=r1) ',
1 60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
rwork(14) = tolsf
go to 700
- 627 call xerrwv(50hlsoda-- trouble from intdy. itask = i1, tout = r1,
+ 627 call xerrwv('lsoda-- trouble from intdy. itask = i1, tout = r1',
1 50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
go to 700
- 628 call xerrwv(30hlsoda-- mxordn (=i1) .lt. 0 ,
+ 628 call xerrwv('lsoda-- mxordn (=i1) .lt. 0 ',
1 30, 28, 0, 1, mxordn, 0, 0, 0.0d0, 0.0d0)
go to 700
- 629 call xerrwv(30hlsoda-- mxords (=i1) .lt. 0 ,
+ 629 call xerrwv('lsoda-- mxords (=i1) .lt. 0 ',
1 30, 29, 0, 1, mxords, 0, 0, 0.0d0, 0.0d0)
c
700 if (illin .eq. 5) go to 710
illin = illin + 1
istate = -3
return
- 710 call xerrwv(50hlsoda-- repeated occurrences of illegal input ,
+ 710 call xerrwv('lsoda-- repeated occurrences of illegal input ',
1 50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
- 800 call xerrwv(50hlsoda-- run aborted.. apparent infinite loop ,
+ 800 call xerrwv('lsoda-- run aborted.. apparent infinite loop ',
1 50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
return
c----------------------- end of subroutine lsoda -----------------------
Modified: trunk/Lib/integrate/odepack/lsodar.f
===================================================================
--- trunk/Lib/integrate/odepack/lsodar.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/lsodar.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -206,22 +206,22 @@
c 10 call lsodar(fex,neq,y,t,tout,itol,rtol,atol,itask,istate,
c 1 iopt,rwork,lrw,iwork,liw,jdum,jt,gex,ng,jroot)
c write(6,20)t,y(1),y(2),y(3)
-c 20 format(7h at t =,e12.4,6h y =,3e14.6)
+c 20 format(' at t =',e12.4,' y =',3e14.6)
c if (istate .lt. 0) go to 80
c if (istate .eq. 2) go to 40
c write(6,30)jroot(1),jroot(2)
-c 30 format(5x,35h the above line is a root, jroot =,2i5)
+c 30 format(5x,' the above line is a root, jroot =',2i5)
c istate = 2
c go to 10
c 40 tout = tout*10.0d0
c write(6,60)iwork(11),iwork(12),iwork(13),iwork(10),
c 1 iwork(19),rwork(15)
-c 60 format(/12h no. steps =,i4,11h no. f-s =,i4,11h no. j-s =,i4,
-c 1 11h no. g-s =,i4/
-c 2 19h method last used =,i2,25h last switch was at t =,e12.4)
+c 60 format(/' no. steps =',i4,' no. f-s =',i4,' no. j-s =',i4,
+c 1 ' no. g-s =',i4/
+c 2 ' method last used =',i2,' last switch was at t =',e12.4)
c stop
c 80 write(6,90)istate
-c 90 format(///22h error halt.. istate =,i3)
+c 90 format(///' error halt.. istate =',i3)
c stop
c end
c
@@ -1277,13 +1277,13 @@
insufr = 2
lewt = len1c + 1
call xerrwv(
- 1 60hlsodar- warning.. rwork length is sufficient for now, but ,
+ 1 'lsodar- warning.. rwork length is sufficient for now, but ',
1 60, 103, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h may not be later. integration will proceed anyway. ,
+ 1 ' may not be later. integration will proceed anyway. ',
1 60, 103, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 50h length needed is lenrw = i1, while lrw = i2.,
+ 1 ' length needed is lenrw = i1, while lrw = i2.',
1 50, 103, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
65 lsavf = lewt + n
lacor = lsavf + n
@@ -1291,13 +1291,13 @@
if (liw .ge. leniw) go to 70
insufi = 2
call xerrwv(
- 1 60hlsodar- warning.. iwork length is sufficient for now, but ,
+ 1 'lsodar- warning.. iwork length is sufficient for now, but ',
1 60, 104, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h may not be later. integration will proceed anyway. ,
+ 1 ' may not be later. integration will proceed anyway. ',
1 60, 104, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 50h length needed is leniw = i1, while liw = i2.,
+ 1 ' length needed is leniw = i1, while liw = i2.',
1 50, 104, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
70 continue
c check rtol and atol for legality. ------------------------------------
@@ -1503,17 +1503,17 @@
280 if ((tn + h) .ne. tn) go to 290
nhnil = nhnil + 1
if (nhnil .gt. mxhnil) go to 290
- call xerrwv(50hlsodar- warning..internal t (=r1) and h (=r2) are,
+ call xerrwv('lsodar- warning..internal t (=r1) and h (=r2) are',
1 50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h such that in the machine, t + h = t on the next step ,
+ 1 ' such that in the machine, t + h = t on the next step ',
1 60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h (h = step size). solver will continue anyway,
+ call xerrwv(' (h = step size). solver will continue anyway',
1 50, 101, 0, 0, 0, 0, 2, tn, h)
if (nhnil .lt. mxhnil) go to 290
- call xerrwv(50hlsodar- above warning has been issued i1 times. ,
+ call xerrwv('lsodar- above warning has been issued i1 times. ',
1 50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h it will not be issued again for this problem,
+ call xerrwv(' it will not be issued again for this problem',
1 50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
290 continue
c-----------------------------------------------------------------------
@@ -1545,13 +1545,13 @@
jstart = -1
if (ixpr .eq. 0) go to 310
if (meth .eq. 2) call xerrwv(
- 1 60hlsodar- a switch to the bdf (stiff) method has occurred ,
+ 1 'lsodar- a switch to the bdf (stiff) method has occurred ',
1 60, 105, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
if (meth .eq. 1) call xerrwv(
- 1 60hlsodar- a switch to the adams (nonstiff) method has occurred,
+ 1 'lsodar- a switch to the adams (nonstiff) method has occurred',
1 60, 106, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h at t = r1, tentative step size h = r2, step nst = i1 ,
+ 1 ' at t = r1, tentative step size h = r2, step nst = i1 ',
1 60, 107, 0, 1, nst, 0, 2, tn, h)
310 continue
c
@@ -1625,7 +1625,7 @@
430 ntrep = ntrep + 1
if (ntrep .lt. 5) return
call xerrwv(
- 1 60hlsodar- repeated calls with istate = 1 and tout = t (=r1) ,
+ 1 'lsodar- repeated calls with istate = 1 and tout = t (=r1) ',
1 60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
go to 800
c-----------------------------------------------------------------------
@@ -1638,55 +1638,55 @@
c the work arrays before returning.
c-----------------------------------------------------------------------
c the maximum number of steps was taken before reaching tout. ----------
- 500 call xerrwv(50hlsodar- at current t (=r1), mxstep (=i1) steps ,
+ 500 call xerrwv('lsodar- at current t (=r1), mxstep (=i1) steps ',
1 50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h taken on this call before reaching tout ,
+ call xerrwv(' taken on this call before reaching tout ',
1 50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
istate = -1
go to 580
c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
510 ewti = rwork(lewt+i-1)
- call xerrwv(50hlsodar- at t (=r1), ewt(i1) has become r2 .le. 0.,
+ call xerrwv('lsodar- at t (=r1), ewt(i1) has become r2 .le. 0.',
1 50, 202, 0, 1, i, 0, 2, tn, ewti)
istate = -6
go to 580
c too much accuracy requested for machine precision. -------------------
- 520 call xerrwv(50hlsodar- at t (=r1), too much accuracy requested ,
+ 520 call xerrwv('lsodar- at t (=r1), too much accuracy requested ',
1 50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h for precision of machine.. see tolsf (=r2) ,
+ call xerrwv(' for precision of machine.. see tolsf (=r2) ',
1 50, 203, 0, 0, 0, 0, 2, tn, tolsf)
rwork(14) = tolsf
istate = -2
go to 580
c kflag = -1. error test failed repeatedly or with abs(h) = hmin. -----
- 530 call xerrwv(50hlsodar- at t(=r1) and step size h(=r2), the error,
+ 530 call xerrwv('lsodar- at t(=r1) and step size h(=r2), the error',
1 50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h test failed repeatedly or with abs(h) = hmin,
+ call xerrwv(' test failed repeatedly or with abs(h) = hmin',
1 50, 204, 0, 0, 0, 0, 2, tn, h)
istate = -4
go to 560
c kflag = -2. convergence failed repeatedly or with abs(h) = hmin. ----
- 540 call xerrwv(50hlsodar- at t (=r1) and step size h (=r2), the ,
+ 540 call xerrwv('lsodar- at t (=r1) and step size h (=r2), the ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h corrector convergence failed repeatedly ,
+ call xerrwv(' corrector convergence failed repeatedly ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h or with abs(h) = hmin ,
+ call xerrwv(' or with abs(h) = hmin ',
1 30, 205, 0, 0, 0, 0, 2, tn, h)
istate = -5
go to 560
c rwork length too small to proceed. -----------------------------------
- 550 call xerrwv(50hlsodar- at current t(=r1), rwork length too small,
+ 550 call xerrwv('lsodar- at current t(=r1), rwork length too small',
1 50, 206, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h to proceed. the integration was otherwise successful.,
+ 1 ' to proceed. the integration was otherwise successful.',
1 60, 206, 0, 0, 0, 0, 1, tn, 0.0d0)
istate = -7
go to 580
c iwork length too small to proceed. -----------------------------------
- 555 call xerrwv(50hlsodar- at current t(=r1), iwork length too small,
+ 555 call xerrwv('lsodar- at current t(=r1), iwork length too small',
1 50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h to proceed. the integration was otherwise successful.,
+ 1 ' to proceed. the integration was otherwise successful.',
1 60, 207, 0, 0, 0, 0, 1, tn, 0.0d0)
istate = -7
go to 580
@@ -1727,117 +1727,117 @@
c 5 consecutive such returns just before this call to the solver,
c the run is halted.
c-----------------------------------------------------------------------
- 601 call xerrwv(30hlsodar- istate (=i1) illegal ,
+ 601 call xerrwv('lsodar- istate (=i1) illegal ',
1 30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
go to 700
- 602 call xerrwv(30hlsodar- itask (=i1) illegal ,
+ 602 call xerrwv('lsodar- itask (=i1) illegal ',
1 30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
go to 700
- 603 call xerrwv(50hlsodar- istate .gt. 1 but lsodar not initialized ,
+ 603 call xerrwv('lsodar- istate .gt. 1 but lsodar not initialized ',
1 50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
go to 700
- 604 call xerrwv(30hlsodar- neq (=i1) .lt. 1 ,
+ 604 call xerrwv('lsodar- neq (=i1) .lt. 1 ',
1 30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
go to 700
- 605 call xerrwv(50hlsodar- istate = 3 and neq increased (i1 to i2) ,
+ 605 call xerrwv('lsodar- istate = 3 and neq increased (i1 to i2) ',
1 50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 606 call xerrwv(30hlsodar- itol (=i1) illegal ,
+ 606 call xerrwv('lsodar- itol (=i1) illegal ',
1 30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
go to 700
- 607 call xerrwv(30hlsodar- iopt (=i1) illegal ,
+ 607 call xerrwv('lsodar- iopt (=i1) illegal ',
1 30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 608 call xerrwv(30hlsodar- jt (=i1) illegal ,
+ 608 call xerrwv('lsodar- jt (=i1) illegal ',
1 30, 8, 0, 1, jt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 609 call xerrwv(50hlsodar- ml (=i1) illegal.. .lt.0 or .ge.neq (=i2),
+ 609 call xerrwv('lsodar- ml (=i1) illegal.. .lt.0 or .ge.neq (=i2)',
1 50, 9, 0, 2, ml, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 610 call xerrwv(50hlsodar- mu (=i1) illegal.. .lt.0 or .ge.neq (=i2),
+ 610 call xerrwv('lsodar- mu (=i1) illegal.. .lt.0 or .ge.neq (=i2)',
1 50, 10, 0, 2, mu, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 611 call xerrwv(30hlsodar- ixpr (=i1) illegal ,
+ 611 call xerrwv('lsodar- ixpr (=i1) illegal ',
1 30, 11, 0, 1, ixpr, 0, 0, 0.0d0, 0.0d0)
go to 700
- 612 call xerrwv(30hlsodar- mxstep (=i1) .lt. 0 ,
+ 612 call xerrwv('lsodar- mxstep (=i1) .lt. 0 ',
1 30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
go to 700
- 613 call xerrwv(30hlsodar- mxhnil (=i1) .lt. 0 ,
+ 613 call xerrwv('lsodar- mxhnil (=i1) .lt. 0 ',
1 30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
go to 700
- 614 call xerrwv(40hlsodar- tout (=r1) behind t (=r2) ,
+ 614 call xerrwv('lsodar- tout (=r1) behind t (=r2) ',
1 40, 14, 0, 0, 0, 0, 2, tout, t)
- call xerrwv(50h integration direction is given by h0 (=r1) ,
+ call xerrwv(' integration direction is given by h0 (=r1) ',
1 50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
go to 700
- 615 call xerrwv(30hlsodar- hmax (=r1) .lt. 0.0 ,
+ 615 call xerrwv('lsodar- hmax (=r1) .lt. 0.0 ',
1 30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
go to 700
- 616 call xerrwv(30hlsodar- hmin (=r1) .lt. 0.0 ,
+ 616 call xerrwv('lsodar- hmin (=r1) .lt. 0.0 ',
1 30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
go to 700
617 call xerrwv(
- 1 60hlsodar- rwork length needed, lenrw (=i1), exceeds lrw (=i2),
+ 1 'lsodar- rwork length needed, lenrw (=i1), exceeds lrw (=i2)',
1 60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
618 call xerrwv(
- 1 60hlsodar- iwork length needed, leniw (=i1), exceeds liw (=i2),
+ 1 'lsodar- iwork length needed, leniw (=i1), exceeds liw (=i2)',
1 60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
go to 700
- 619 call xerrwv(40hlsodar- rtol(i1) is r1 .lt. 0.0 ,
+ 619 call xerrwv('lsodar- rtol(i1) is r1 .lt. 0.0 ',
1 40, 19, 0, 1, i, 0, 1, rtoli, 0.0d0)
go to 700
- 620 call xerrwv(40hlsodar- atol(i1) is r1 .lt. 0.0 ,
+ 620 call xerrwv('lsodar- atol(i1) is r1 .lt. 0.0 ',
1 40, 20, 0, 1, i, 0, 1, atoli, 0.0d0)
go to 700
621 ewti = rwork(lewt+i-1)
- call xerrwv(40hlsodar- ewt(i1) is r1 .le. 0.0 ,
+ call xerrwv('lsodar- ewt(i1) is r1 .le. 0.0 ',
1 40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
go to 700
622 call xerrwv(
- 1 60hlsodar- tout (=r1) too close to t(=r2) to start integration,
+ 1 'lsodar- tout (=r1) too close to t(=r2) to start integration',
1 60, 22, 0, 0, 0, 0, 2, tout, t)
go to 700
623 call xerrwv(
- 1 60hlsodar- itask = i1 and tout (=r1) behind tcur - hu (= r2) ,
+ 1 'lsodar- itask = i1 and tout (=r1) behind tcur - hu (= r2) ',
1 60, 23, 0, 1, itask, 0, 2, tout, tp)
go to 700
624 call xerrwv(
- 1 60hlsodar- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ,
+ 1 'lsodar- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ',
1 60, 24, 0, 0, 0, 0, 2, tcrit, tn)
go to 700
625 call xerrwv(
- 1 60hlsodar- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ,
+ 1 'lsodar- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ',
1 60, 25, 0, 0, 0, 0, 2, tcrit, tout)
go to 700
- 626 call xerrwv(50hlsodar- at start of problem, too much accuracy ,
+ 626 call xerrwv('lsodar- at start of problem, too much accuracy ',
1 50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h requested for precision of machine.. see tolsf (=r1) ,
+ 1 ' requested for precision of machine.. see tolsf (=r1) ',
1 60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
rwork(14) = tolsf
go to 700
- 627 call xerrwv(50hlsodar- trouble from intdy. itask = i1, tout = r1,
+ 627 call xerrwv('lsodar- trouble from intdy. itask = i1, tout = r1',
1 50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
go to 700
- 628 call xerrwv(30hlsodar- mxordn (=i1) .lt. 0 ,
+ 628 call xerrwv('lsodar- mxordn (=i1) .lt. 0 ',
1 30, 28, 0, 1, mxordn, 0, 0, 0.0d0, 0.0d0)
go to 700
- 629 call xerrwv(30hlsodar- mxords (=i1) .lt. 0 ,
+ 629 call xerrwv('lsodar- mxords (=i1) .lt. 0 ',
1 30, 29, 0, 1, mxords, 0, 0, 0.0d0, 0.0d0)
go to 700
- 630 call xerrwv(30hlsodar- ng (=i1) .lt. 0 ,
+ 630 call xerrwv('lsodar- ng (=i1) .lt. 0 ',
1 30, 30, 0, 1, ng, 0, 0, 0.0d0, 0.0d0)
go to 700
- 631 call xerrwv(50hlsodar- ng changed (from i1 to i2) illegally, ,
+ 631 call xerrwv('lsodar- ng changed (from i1 to i2) illegally, ',
1 50, 31, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h i.e. not immediately after a root was found ,
+ call xerrwv(' i.e. not immediately after a root was found ',
1 50, 31, 0, 2, ngc, ng, 0, 0.0d0, 0.0d0)
go to 700
- 632 call xerrwv(50hlsodar- one or more components of g has a root ,
+ 632 call xerrwv('lsodar- one or more components of g has a root ',
1 50, 32, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(40h too near to the initial point ,
+ call xerrwv(' too near to the initial point ',
1 40, 32, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
700 if (illin .eq. 5) go to 710
@@ -1845,10 +1845,10 @@
tlast = t
istate = -3
return
- 710 call xerrwv(50hlsodar- repeated occurrences of illegal input ,
+ 710 call xerrwv('lsodar- repeated occurrences of illegal input ',
1 50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
- 800 call xerrwv(50hlsodar- run aborted.. apparent infinite loop ,
+ 800 call xerrwv('lsodar- run aborted.. apparent infinite loop ',
1 50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
return
c----------------------- end of subroutine lsodar ----------------------
Modified: trunk/Lib/integrate/odepack/lsode.f
===================================================================
--- trunk/Lib/integrate/odepack/lsode.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/lsode.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -178,14 +178,14 @@
c call lsode(fex,neq,y,t,tout,itol,rtol,atol,itask,istate,
c 1 iopt,rwork,lrw,iwork,liw,jex,mf)
c write(6,20)t,y(1),y(2),y(3)
-c 20 format(7h at t =,e12.4,6h y =,3e14.6)
+c 20 format(' at t =',e12.4,' y =',3e14.6)
c if (istate .lt. 0) go to 80
c 40 tout = tout*10.d0
c write(6,60)iwork(11),iwork(12),iwork(13)
-c 60 format(/12h no. steps =,i4,11h no. f-s =,i4,11h no. j-s =,i4)
+c 60 format(/' no. steps =',i4,' no. f-s =',i4,' no. j-s =',i4)
c stop
c 80 write(6,90)istate
-c 90 format(///22h error halt.. istate =,i3)
+c 90 format(///' error halt.. istate =',i3)
c stop
c end
c
@@ -1243,17 +1243,17 @@
280 if ((tn + h) .ne. tn) go to 290
nhnil = nhnil + 1
if (nhnil .gt. mxhnil) go to 290
- call xerrwv(50hlsode-- warning..internal t (=r1) and h (=r2) are,
+ call xerrwv('lsode-- warning..internal t (=r1) and h (=r2) are',
1 50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h such that in the machine, t + h = t on the next step ,
+ 1 ' such that in the machine, t + h = t on the next step ',
1 60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h (h = step size). solver will continue anyway,
+ call xerrwv(' (h = step size). solver will continue anyway',
1 50, 101, 0, 0, 0, 0, 2, tn, h)
if (nhnil .lt. mxhnil) go to 290
- call xerrwv(50hlsode-- above warning has been issued i1 times. ,
+ call xerrwv('lsode-- above warning has been issued i1 times. ',
1 50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h it will not be issued again for this problem,
+ call xerrwv(' it will not be issued again for this problem',
1 50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
290 continue
c-----------------------------------------------------------------------
@@ -1324,7 +1324,7 @@
430 ntrep = ntrep + 1
if (ntrep .lt. 5) return
call xerrwv(
- 1 60hlsode-- repeated calls with istate = 1 and tout = t (=r1) ,
+ 1 'lsode-- repeated calls with istate = 1 and tout = t (=r1) ',
1 60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
go to 800
c-----------------------------------------------------------------------
@@ -1337,39 +1337,39 @@
c the work arrays before returning.
c-----------------------------------------------------------------------
c the maximum number of steps was taken before reaching tout. ----------
- 500 call xerrwv(50hlsode-- at current t (=r1), mxstep (=i1) steps ,
+ 500 call xerrwv('lsode-- at current t (=r1), mxstep (=i1) steps ',
1 50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h taken on this call before reaching tout ,
+ call xerrwv(' taken on this call before reaching tout ',
1 50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
istate = -1
go to 580
c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
510 ewti = rwork(lewt+i-1)
- call xerrwv(50hlsode-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+ call xerrwv('lsode-- at t (=r1), ewt(i1) has become r2 .le. 0.',
1 50, 202, 0, 1, i, 0, 2, tn, ewti)
istate = -6
go to 580
c too much accuracy requested for machine precision. -------------------
- 520 call xerrwv(50hlsode-- at t (=r1), too much accuracy requested ,
+ 520 call xerrwv('lsode-- at t (=r1), too much accuracy requested ',
1 50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h for precision of machine.. see tolsf (=r2) ,
+ call xerrwv(' for precision of machine.. see tolsf (=r2) ',
1 50, 203, 0, 0, 0, 0, 2, tn, tolsf)
rwork(14) = tolsf
istate = -2
go to 580
c kflag = -1. error test failed repeatedly or with abs(h) = hmin. -----
- 530 call xerrwv(50hlsode-- at t(=r1) and step size h(=r2), the error,
+ 530 call xerrwv('lsode-- at t(=r1) and step size h(=r2), the error',
1 50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h test failed repeatedly or with abs(h) = hmin,
+ call xerrwv(' test failed repeatedly or with abs(h) = hmin',
1 50, 204, 0, 0, 0, 0, 2, tn, h)
istate = -4
go to 560
c kflag = -2. convergence failed repeatedly or with abs(h) = hmin. ----
- 540 call xerrwv(50hlsode-- at t (=r1) and step size h (=r2), the ,
+ 540 call xerrwv('lsode-- at t (=r1) and step size h (=r2), the ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h corrector convergence failed repeatedly ,
+ call xerrwv(' corrector convergence failed repeatedly ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h or with abs(h) = hmin ,
+ call xerrwv(' or with abs(h) = hmin ',
1 30, 205, 0, 0, 0, 0, 2, tn, h)
istate = -5
c compute imxer if relevant. -------------------------------------------
@@ -1404,108 +1404,108 @@
c 5 consecutive such returns just before this call to the solver,
c the run is halted.
c-----------------------------------------------------------------------
- 601 call xerrwv(30hlsode-- istate (=i1) illegal ,
+ 601 call xerrwv('lsode-- istate (=i1) illegal ',
1 30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
go to 700
- 602 call xerrwv(30hlsode-- itask (=i1) illegal ,
+ 602 call xerrwv('lsode-- itask (=i1) illegal ',
1 30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
go to 700
- 603 call xerrwv(50hlsode-- istate .gt. 1 but lsode not initialized ,
+ 603 call xerrwv('lsode-- istate .gt. 1 but lsode not initialized ',
1 50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
go to 700
- 604 call xerrwv(30hlsode-- neq (=i1) .lt. 1 ,
+ 604 call xerrwv('lsode-- neq (=i1) .lt. 1 ',
1 30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
go to 700
- 605 call xerrwv(50hlsode-- istate = 3 and neq increased (i1 to i2) ,
+ 605 call xerrwv('lsode-- istate = 3 and neq increased (i1 to i2) ',
1 50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 606 call xerrwv(30hlsode-- itol (=i1) illegal ,
+ 606 call xerrwv('lsode-- itol (=i1) illegal ',
1 30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
go to 700
- 607 call xerrwv(30hlsode-- iopt (=i1) illegal ,
+ 607 call xerrwv('lsode-- iopt (=i1) illegal ',
1 30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 608 call xerrwv(30hlsode-- mf (=i1) illegal ,
+ 608 call xerrwv('lsode-- mf (=i1) illegal ',
1 30, 8, 0, 1, mf, 0, 0, 0.0d0, 0.0d0)
go to 700
- 609 call xerrwv(50hlsode-- ml (=i1) illegal.. .lt.0 or .ge.neq (=i2),
+ 609 call xerrwv('lsode-- ml (=i1) illegal.. .lt.0 or .ge.neq (=i2)',
1 50, 9, 0, 2, ml, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 610 call xerrwv(50hlsode-- mu (=i1) illegal.. .lt.0 or .ge.neq (=i2),
+ 610 call xerrwv('lsode-- mu (=i1) illegal.. .lt.0 or .ge.neq (=i2)',
1 50, 10, 0, 2, mu, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 611 call xerrwv(30hlsode-- maxord (=i1) .lt. 0 ,
+ 611 call xerrwv('lsode-- maxord (=i1) .lt. 0 ',
1 30, 11, 0, 1, maxord, 0, 0, 0.0d0, 0.0d0)
go to 700
- 612 call xerrwv(30hlsode-- mxstep (=i1) .lt. 0 ,
+ 612 call xerrwv('lsode-- mxstep (=i1) .lt. 0 ',
1 30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
go to 700
- 613 call xerrwv(30hlsode-- mxhnil (=i1) .lt. 0 ,
+ 613 call xerrwv('lsode-- mxhnil (=i1) .lt. 0 ',
1 30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
go to 700
- 614 call xerrwv(40hlsode-- tout (=r1) behind t (=r2) ,
+ 614 call xerrwv('lsode-- tout (=r1) behind t (=r2) ',
1 40, 14, 0, 0, 0, 0, 2, tout, t)
- call xerrwv(50h integration direction is given by h0 (=r1) ,
+ call xerrwv(' integration direction is given by h0 (=r1) ',
1 50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
go to 700
- 615 call xerrwv(30hlsode-- hmax (=r1) .lt. 0.0 ,
+ 615 call xerrwv('lsode-- hmax (=r1) .lt. 0.0 ',
1 30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
go to 700
- 616 call xerrwv(30hlsode-- hmin (=r1) .lt. 0.0 ,
+ 616 call xerrwv('lsode-- hmin (=r1) .lt. 0.0 ',
1 30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
go to 700
617 call xerrwv(
- 1 60hlsode-- rwork length needed, lenrw (=i1), exceeds lrw (=i2),
+ 1 'lsode-- rwork length needed, lenrw (=i1), exceeds lrw (=i2)',
1 60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
618 call xerrwv(
- 1 60hlsode-- iwork length needed, leniw (=i1), exceeds liw (=i2),
+ 1 'lsode-- iwork length needed, leniw (=i1), exceeds liw (=i2)',
1 60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
go to 700
- 619 call xerrwv(40hlsode-- rtol(i1) is r1 .lt. 0.0 ,
+ 619 call xerrwv('lsode-- rtol(i1) is r1 .lt. 0.0 ',
1 40, 19, 0, 1, i, 0, 1, rtoli, 0.0d0)
go to 700
- 620 call xerrwv(40hlsode-- atol(i1) is r1 .lt. 0.0 ,
+ 620 call xerrwv('lsode-- atol(i1) is r1 .lt. 0.0 ',
1 40, 20, 0, 1, i, 0, 1, atoli, 0.0d0)
go to 700
621 ewti = rwork(lewt+i-1)
- call xerrwv(40hlsode-- ewt(i1) is r1 .le. 0.0 ,
+ call xerrwv('lsode-- ewt(i1) is r1 .le. 0.0 ',
1 40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
go to 700
622 call xerrwv(
- 1 60hlsode-- tout (=r1) too close to t(=r2) to start integration,
+ 1 'lsode-- tout (=r1) too close to t(=r2) to start integration',
1 60, 22, 0, 0, 0, 0, 2, tout, t)
go to 700
623 call xerrwv(
- 1 60hlsode-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ,
+ 1 'lsode-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ',
1 60, 23, 0, 1, itask, 0, 2, tout, tp)
go to 700
624 call xerrwv(
- 1 60hlsode-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ,
+ 1 'lsode-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ',
1 60, 24, 0, 0, 0, 0, 2, tcrit, tn)
go to 700
625 call xerrwv(
- 1 60hlsode-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ,
+ 1 'lsode-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ',
1 60, 25, 0, 0, 0, 0, 2, tcrit, tout)
go to 700
- 626 call xerrwv(50hlsode-- at start of problem, too much accuracy ,
+ 626 call xerrwv('lsode-- at start of problem, too much accuracy ',
1 50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h requested for precision of machine.. see tolsf (=r1) ,
+ 1 ' requested for precision of machine.. see tolsf (=r1) ',
1 60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
rwork(14) = tolsf
go to 700
- 627 call xerrwv(50hlsode-- trouble from intdy. itask = i1, tout = r1,
+ 627 call xerrwv('lsode-- trouble from intdy. itask = i1, tout = r1',
1 50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
c
700 if (illin .eq. 5) go to 710
illin = illin + 1
istate = -3
return
- 710 call xerrwv(50hlsode-- repeated occurrences of illegal input ,
+ 710 call xerrwv('lsode-- repeated occurrences of illegal input ',
1 50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
- 800 call xerrwv(50hlsode-- run aborted.. apparent infinite loop ,
+ 800 call xerrwv('lsode-- run aborted.. apparent infinite loop ',
1 50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
return
c----------------------- end of subroutine lsode -----------------------
Modified: trunk/Lib/integrate/odepack/lsodes.f
===================================================================
--- trunk/Lib/integrate/odepack/lsodes.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/lsodes.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -217,9 +217,9 @@
c call lsodes (fex, neq, y, t, tout, itol, rtol, atol,
c 1 itask, istate, iopt, rwork, lrw, iwork, liw, jex, mf)
c write(6,30)t,iwork(11),rwork(11),(y(i),i=1,neq)
-c 30 format(//7h at t =,e11.3,4x,
-c 1 12h no. steps =,i5,4x,12h last step =,e11.3/
-c 2 13h y array = ,4e14.5/13x,4e14.5/13x,4e14.5)
+c 30 format(//' at t =',e11.3,4x,
+c 1 ' no. steps =',i5,4x,' last step =',e11.3/
+c 2 ' y array = ',4e14.5/13x,4e14.5/13x,4e14.5)
c if (istate .lt. 0) go to 80
c tout = tout*10.0d0
c 40 continue
@@ -232,13 +232,13 @@
c nnz = iwork(19)
c nnzlu = iwork(25) + iwork(26) + neq
c write (6,70) lenrw,leniw,nst,nfe,nje,nlu,nnz,nnzlu
-c 70 format(//22h required rwork size =,i4,15h iwork size =,i4/
-c 1 12h no. steps =,i4,12h no. f-s =,i4,12h no. j-s =,i4,
-c 2 13h no. lu-s =,i4/23h no. of nonzeros in j =,i5,
-c 3 26h no. of nonzeros in lu =,i5)
+c 70 format(//' required rwork size =',i4,' iwork size =',i4/
+c 1 ' no. steps =',i4,' no. f-s =',i4,' no. j-s =',i4,
+c 2 ' no. lu-s =',i4/' no. of nonzeros in j =',i5,
+c 3 ' no. of nonzeros in lu =',i5)
c stop
c 80 write(6,90)istate
-c 90 format(///22h error halt.. istate =,i3)
+c 90 format(///' error halt.. istate =',i3)
c stop
c end
c
@@ -1646,17 +1646,17 @@
280 if ((tn + h) .ne. tn) go to 290
nhnil = nhnil + 1
if (nhnil .gt. mxhnil) go to 290
- call xerrwv(50hlsodes-- warning..internal t (=r1) and h (=r2) are,
+ call xerrwv('lsodes-- warning..internal t (=r1) and h (=r2) are',
1 50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h such that in the machine, t + h = t on the next step ,
+ 1 ' such that in the machine, t + h = t on the next step ',
1 60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h (h = step size). solver will continue anyway,
+ call xerrwv(' (h = step size). solver will continue anyway',
1 50, 101, 0, 0, 0, 0, 2, tn, h)
if (nhnil .lt. mxhnil) go to 290
- call xerrwv(50hlsodes-- above warning has been issued i1 times. ,
+ call xerrwv('lsodes-- above warning has been issued i1 times. ',
1 50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h it will not be issued again for this problem,
+ call xerrwv(' it will not be issued again for this problem',
1 50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
290 continue
c-----------------------------------------------------------------------
@@ -1732,7 +1732,7 @@
430 ntrep = ntrep + 1
if (ntrep .lt. 5) return
call xerrwv(
- 1 60hlsodes-- repeated calls with istate = 1 and tout = t (=r1) ,
+ 1 'lsodes-- repeated calls with istate = 1 and tout = t (=r1) ',
1 60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
go to 800
c-----------------------------------------------------------------------
@@ -1745,48 +1745,48 @@
c the work arrays before returning.
c-----------------------------------------------------------------------
c the maximum number of steps was taken before reaching tout. ----------
- 500 call xerrwv(50hlsodes-- at current t (=r1), mxstep (=i1) steps ,
+ 500 call xerrwv('lsodes-- at current t (=r1), mxstep (=i1) steps ',
1 50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h taken on this call before reaching tout ,
+ call xerrwv(' taken on this call before reaching tout ',
1 50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
istate = -1
go to 580
c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
510 ewti = rwork(lewt+i-1)
- call xerrwv(50hlsodes-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+ call xerrwv('lsodes-- at t (=r1), ewt(i1) has become r2 .le. 0.',
1 50, 202, 0, 1, i, 0, 2, tn, ewti)
istate = -6
go to 580
c too much accuracy requested for machine precision. -------------------
- 520 call xerrwv(50hlsodes-- at t (=r1), too much accuracy requested ,
+ 520 call xerrwv('lsodes-- at t (=r1), too much accuracy requested ',
1 50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h for precision of machine.. see tolsf (=r2) ,
+ call xerrwv(' for precision of machine.. see tolsf (=r2) ',
1 50, 203, 0, 0, 0, 0, 2, tn, tolsf)
rwork(14) = tolsf
istate = -2
go to 580
c kflag = -1. error test failed repeatedly or with abs(h) = hmin. -----
- 530 call xerrwv(50hlsodes-- at t(=r1) and step size h(=r2), the error,
+ 530 call xerrwv('lsodes-- at t(=r1) and step size h(=r2), the error',
1 50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h test failed repeatedly or with abs(h) = hmin,
+ call xerrwv(' test failed repeatedly or with abs(h) = hmin',
1 50, 204, 0, 0, 0, 0, 2, tn, h)
istate = -4
go to 560
c kflag = -2. convergence failed repeatedly or with abs(h) = hmin. ----
- 540 call xerrwv(50hlsodes-- at t (=r1) and step size h (=r2), the ,
+ 540 call xerrwv('lsodes-- at t (=r1) and step size h (=r2), the ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h corrector convergence failed repeatedly ,
+ call xerrwv(' corrector convergence failed repeatedly ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h or with abs(h) = hmin ,
+ call xerrwv(' or with abs(h) = hmin ',
1 30, 205, 0, 0, 0, 0, 2, tn, h)
istate = -5
go to 560
c kflag = -3. fatal error flag returned by prjs or slss (cdrv). -------
- 550 call xerrwv(50hlsodes-- at t (=r1) and step size h (=r2), a fatal,
+ 550 call xerrwv('lsodes-- at t (=r1) and step size h (=r2), a fatal',
1 50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h error flag was returned by cdrv (by way of ,
+ call xerrwv(' error flag was returned by cdrv (by way of ',
1 50, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h subroutine prjs or slss),
+ call xerrwv(' subroutine prjs or slss)',
1 30, 207, 0, 0, 0, 0, 2, tn, h)
istate = -7
go to 580
@@ -1827,161 +1827,161 @@
c 5 consecutive such returns just before this call to the solver,
c the run is halted.
c-----------------------------------------------------------------------
- 601 call xerrwv(30hlsodes-- istate (=i1) illegal ,
+ 601 call xerrwv('lsodes-- istate (=i1) illegal ',
1 30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
go to 700
- 602 call xerrwv(30hlsodes-- itask (=i1) illegal ,
+ 602 call xerrwv('lsodes-- itask (=i1) illegal ',
1 30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
go to 700
- 603 call xerrwv(50hlsodes-- istate .gt. 1 but lsodes not initialized ,
+ 603 call xerrwv('lsodes-- istate .gt. 1 but lsodes not initialized ',
1 50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
go to 700
- 604 call xerrwv(30hlsodes-- neq (=i1) .lt. 1 ,
+ 604 call xerrwv('lsodes-- neq (=i1) .lt. 1 ',
1 30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
go to 700
- 605 call xerrwv(50hlsodes-- istate = 3 and neq increased (i1 to i2) ,
+ 605 call xerrwv('lsodes-- istate = 3 and neq increased (i1 to i2) ',
1 50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 606 call xerrwv(30hlsodes-- itol (=i1) illegal ,
+ 606 call xerrwv('lsodes-- itol (=i1) illegal ',
1 30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
go to 700
- 607 call xerrwv(30hlsodes-- iopt (=i1) illegal ,
+ 607 call xerrwv('lsodes-- iopt (=i1) illegal ',
1 30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 608 call xerrwv(30hlsodes-- mf (=i1) illegal ,
+ 608 call xerrwv('lsodes-- mf (=i1) illegal ',
1 30, 8, 0, 1, mf, 0, 0, 0.0d0, 0.0d0)
go to 700
- 609 call xerrwv(30hlsodes-- seth (=r1) .lt. 0.0 ,
+ 609 call xerrwv('lsodes-- seth (=r1) .lt. 0.0 ',
1 30, 9, 0, 0, 0, 0, 1, seth, 0.0d0)
go to 700
- 611 call xerrwv(30hlsodes-- maxord (=i1) .lt. 0 ,
+ 611 call xerrwv('lsodes-- maxord (=i1) .lt. 0 ',
1 30, 11, 0, 1, maxord, 0, 0, 0.0d0, 0.0d0)
go to 700
- 612 call xerrwv(30hlsodes-- mxstep (=i1) .lt. 0 ,
+ 612 call xerrwv('lsodes-- mxstep (=i1) .lt. 0 ',
1 30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
go to 700
- 613 call xerrwv(30hlsodes-- mxhnil (=i1) .lt. 0 ,
+ 613 call xerrwv('lsodes-- mxhnil (=i1) .lt. 0 ',
1 30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
go to 700
- 614 call xerrwv(40hlsodes-- tout (=r1) behind t (=r2) ,
+ 614 call xerrwv('lsodes-- tout (=r1) behind t (=r2) ',
1 40, 14, 0, 0, 0, 0, 2, tout, t)
- call xerrwv(50h integration direction is given by h0 (=r1) ,
+ call xerrwv(' integration direction is given by h0 (=r1) ',
1 50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
go to 700
- 615 call xerrwv(30hlsodes-- hmax (=r1) .lt. 0.0 ,
+ 615 call xerrwv('lsodes-- hmax (=r1) .lt. 0.0 ',
1 30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
go to 700
- 616 call xerrwv(30hlsodes-- hmin (=r1) .lt. 0.0 ,
+ 616 call xerrwv('lsodes-- hmin (=r1) .lt. 0.0 ',
1 30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
go to 700
- 617 call xerrwv(50hlsodes-- rwork length is insufficient to proceed. ,
+ 617 call xerrwv('lsodes-- rwork length is insufficient to proceed. ',
1 50, 17, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+ 1 ' length needed is .ge. lenrw (=i1), exceeds lrw (=i2)',
1 60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
- 618 call xerrwv(50hlsodes-- iwork length is insufficient to proceed. ,
+ 618 call xerrwv('lsodes-- iwork length is insufficient to proceed. ',
1 50, 18, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h length needed is .ge. leniw (=i1), exceeds liw (=i2),
+ 1 ' length needed is .ge. leniw (=i1), exceeds liw (=i2)',
1 60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
go to 700
- 619 call xerrwv(40hlsodes-- rtol(i1) is r1 .lt. 0.0 ,
+ 619 call xerrwv('lsodes-- rtol(i1) is r1 .lt. 0.0 ',
1 40, 19, 0, 1, i, 0, 1, rtoli, 0.0d0)
go to 700
- 620 call xerrwv(40hlsodes-- atol(i1) is r1 .lt. 0.0 ,
+ 620 call xerrwv('lsodes-- atol(i1) is r1 .lt. 0.0 ',
1 40, 20, 0, 1, i, 0, 1, atoli, 0.0d0)
go to 700
621 ewti = rwork(lewt+i-1)
- call xerrwv(40hlsodes-- ewt(i1) is r1 .le. 0.0 ,
+ call xerrwv('lsodes-- ewt(i1) is r1 .le. 0.0 ',
1 40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
go to 700
622 call xerrwv(
- 1 60hlsodes-- tout (=r1) too close to t(=r2) to start integration,
+ 1 'lsodes-- tout (=r1) too close to t(=r2) to start integration',
1 60, 22, 0, 0, 0, 0, 2, tout, t)
go to 700
623 call xerrwv(
- 1 60hlsodes-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ,
+ 1 'lsodes-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ',
1 60, 23, 0, 1, itask, 0, 2, tout, tp)
go to 700
624 call xerrwv(
- 1 60hlsodes-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ,
+ 1 'lsodes-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ',
1 60, 24, 0, 0, 0, 0, 2, tcrit, tn)
go to 700
625 call xerrwv(
- 1 60hlsodes-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ,
+ 1 'lsodes-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ',
1 60, 25, 0, 0, 0, 0, 2, tcrit, tout)
go to 700
- 626 call xerrwv(50hlsodes-- at start of problem, too much accuracy ,
+ 626 call xerrwv('lsodes-- at start of problem, too much accuracy ',
1 50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h requested for precision of machine.. see tolsf (=r1) ,
+ 1 ' requested for precision of machine.. see tolsf (=r1) ',
1 60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
rwork(14) = tolsf
go to 700
- 627 call xerrwv(50hlsodes-- trouble from intdy. itask = i1, tout = r1,
+ 627 call xerrwv('lsodes-- trouble from intdy. itask = i1, tout = r1',
1 50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
go to 700
628 call xerrwv(
- 1 60hlsodes-- rwork length insufficient (for subroutine prep). ,
+ 1 'lsodes-- rwork length insufficient (for subroutine prep). ',
1 60, 28, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+ 1 ' length needed is .ge. lenrw (=i1), exceeds lrw (=i2)',
1 60, 28, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
629 call xerrwv(
- 1 60hlsodes-- rwork length insufficient (for subroutine jgroup). ,
+ 1 'lsodes-- rwork length insufficient (for subroutine jgroup). ',
1 60, 29, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+ 1 ' length needed is .ge. lenrw (=i1), exceeds lrw (=i2)',
1 60, 29, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
630 call xerrwv(
- 1 60hlsodes-- rwork length insufficient (for subroutine odrv). ,
+ 1 'lsodes-- rwork length insufficient (for subroutine odrv). ',
1 60, 30, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+ 1 ' length needed is .ge. lenrw (=i1), exceeds lrw (=i2)',
1 60, 30, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
631 call xerrwv(
- 1 60hlsodes-- error from odrv in yale sparse matrix package ,
+ 1 'lsodes-- error from odrv in yale sparse matrix package ',
1 60, 31, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
imul = (iys - 1)/n
irem = iys - imul*n
call xerrwv(
- 1 60h at t (=r1), odrv returned error flag = i1*neq + i2. ,
+ 1 ' at t (=r1), odrv returned error flag = i1*neq + i2. ',
1 60, 31, 0, 2, imul, irem, 1, tn, 0.0d0)
go to 700
632 call xerrwv(
- 1 60hlsodes-- rwork length insufficient (for subroutine cdrv). ,
+ 1 'lsodes-- rwork length insufficient (for subroutine cdrv). ',
1 60, 32, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h length needed is .ge. lenrw (=i1), exceeds lrw (=i2),
+ 1 ' length needed is .ge. lenrw (=i1), exceeds lrw (=i2)',
1 60, 32, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
633 call xerrwv(
- 1 60hlsodes-- error from cdrv in yale sparse matrix package ,
+ 1 'lsodes-- error from cdrv in yale sparse matrix package ',
1 60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
imul = (iys - 1)/n
irem = iys - imul*n
call xerrwv(
- 1 60h at t (=r1), cdrv returned error flag = i1*neq + i2. ,
+ 1 ' at t (=r1), cdrv returned error flag = i1*neq + i2. ',
1 60, 33, 0, 2, imul, irem, 1, tn, 0.0d0)
if (imul .eq. 2) call xerrwv(
- 1 60h duplicate entry in sparsity structure descriptors ,
+ 1 ' duplicate entry in sparsity structure descriptors ',
1 60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
if (imul .eq. 3 .or. imul .eq. 6) call xerrwv(
- 1 60h insufficient storage for nsfc (called by cdrv) ,
+ 1 ' insufficient storage for nsfc (called by cdrv) ',
1 60, 33, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
700 if (illin .eq. 5) go to 710
illin = illin + 1
istate = -3
return
- 710 call xerrwv(50hlsodes-- repeated occurrences of illegal input ,
+ 710 call xerrwv('lsodes-- repeated occurrences of illegal input ',
1 50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
- 800 call xerrwv(50hlsodes-- run aborted.. apparent infinite loop ,
+ 800 call xerrwv('lsodes-- run aborted.. apparent infinite loop ',
1 50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
return
c----------------------- end of subroutine lsodes ----------------------
Modified: trunk/Lib/integrate/odepack/lsodi.f
===================================================================
--- trunk/Lib/integrate/odepack/lsodi.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/lsodi.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -247,15 +247,15 @@
c call lsodi(resid, aplusp, dgbydy, neq, y, ydoti, t, tout, itol,
c 1 rtol, atol, itask, istate, iopt, rwork, lrw, iwork, liw, mf)
c write (6,20) t, y(1), y(2), y(3)
-c 20 format(7h at t =,e12.4,6h y =,3e14.6)
+c 20 format(' at t =',e12.4,' y =',3e14.6)
c if (istate .lt. 0 ) go to 80
c 40 tout = tout*10.d0
c write (6,60) iwork(11), iwork(12), iwork(13)
-c 60 format(/12h no. steps =,i4,11h no. r-s =,i4,
-c 1 11h no. j-s =,i4)
+c 60 format(/' no. steps =',i4,' no. r-s =',i4,
+c 1 ' no. j-s =',i4)
c stop
c 80 write (6,90) istate
-c 90 format(///22h error halt.. istate =,i3)
+c 90 format(///' error halt.. istate =',i3)
c stop
c end
c
@@ -1446,17 +1446,17 @@
280 if ((tn + h) .ne. tn) go to 290
nhnil = nhnil + 1
if (nhnil .gt. mxhnil) go to 290
- call xerrwv(50hlsodi-- warning..internal t (=r1) and h (=r2) are,
+ call xerrwv('lsodi-- warning..internal t (=r1) and h (=r2) are',
1 50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h such that in the machine, t + h = t on the next step ,
+ 1 ' such that in the machine, t + h = t on the next step ',
1 60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h (h = step size). solver will continue anyway,
+ call xerrwv(' (h = step size). solver will continue anyway',
1 50, 101, 0, 0, 0, 0, 2, tn, h)
if (nhnil .lt. mxhnil) go to 290
- call xerrwv(50hlsodi-- above warning has been issued i1 times. ,
+ call xerrwv('lsodi-- above warning has been issued i1 times. ',
1 50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h it will not be issued again for this problem,
+ call xerrwv(' it will not be issued again for this problem',
1 50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
290 continue
c-----------------------------------------------------------------------
@@ -1533,7 +1533,7 @@
430 ntrep = ntrep + 1
if (ntrep .lt. 5) return
call xerrwv(
- 1 60hlsodi-- repeated calls with istate= 0 or 1 and tout= t(=r1),
+ 1 'lsodi-- repeated calls with istate= 0 or 1 and tout= t(=r1)',
1 60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
go to 800
c-----------------------------------------------------------------------
@@ -1546,64 +1546,64 @@
c the work arrays before returning.
c-----------------------------------------------------------------------
c the maximum number of steps was taken before reaching tout. ----------
- 500 call xerrwv(50hlsodi-- at current t (=r1), mxstep (=i1) steps ,
+ 500 call xerrwv('lsodi-- at current t (=r1), mxstep (=i1) steps ',
1 50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h taken on this call before reaching tout ,
+ call xerrwv(' taken on this call before reaching tout ',
1 50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
istate = -1
go to 580
c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
510 ewti = rwork(lewt+i-1)
- call xerrwv(50hlsodi-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+ call xerrwv('lsodi-- at t (=r1), ewt(i1) has become r2 .le. 0.',
1 50, 202, 0, 1, i, 0, 2, tn, ewti)
istate = -6
go to 590
c too much accuracy requested for machine precision. -------------------
- 520 call xerrwv(50hlsodi-- at t (=r1), too much accuracy requested ,
+ 520 call xerrwv('lsodi-- at t (=r1), too much accuracy requested ',
1 50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h for precision of machine.. see tolsf (=r2) ,
+ call xerrwv(' for precision of machine.. see tolsf (=r2) ',
1 50, 203, 0, 0, 0, 0, 2, tn, tolsf)
rwork(14) = tolsf
istate = -2
go to 590
c kflag = -1. error test failed repeatedly or with abs(h) = hmin. -----
- 530 call xerrwv(50hlsodi-- at t(=r1) and step size h(=r2), the error,
+ 530 call xerrwv('lsodi-- at t(=r1) and step size h(=r2), the error',
1 50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h test failed repeatedly or with abs(h) = hmin,
+ call xerrwv(' test failed repeatedly or with abs(h) = hmin',
1 50, 204, 0, 0, 0, 0, 2, tn, h)
istate = -4
go to 570
c kflag = -2. convergence failed repeatedly or with abs(h) = hmin. ----
- 540 call xerrwv(50hlsodi-- at t (=r1) and step size h (=r2), the ,
+ 540 call xerrwv('lsodi-- at t (=r1) and step size h (=r2), the ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h corrector convergence failed repeatedly ,
+ call xerrwv(' corrector convergence failed repeatedly ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h or with abs(h) = hmin ,
+ call xerrwv(' or with abs(h) = hmin ',
1 30, 205, 0, 0, 0, 0, 2, tn, h)
istate = -5
go to 570
c ires = 3 returned by res, despite retries by stodi. ------------------
- 550 call xerrwv(50hlsodi-- at t (=r1) residual routine returned ,
+ 550 call xerrwv('lsodi-- at t (=r1) residual routine returned ',
1 50, 206, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(40h error ires = 3 repeatedly ,
+ call xerrwv(' error ires = 3 repeatedly ',
1 40, 206, 0, 0, 0, 0, 1, tn, 0.0d0)
istate = -7
go to 590
c ainvg failed because a-matrix was singular. --------------------------
560 ier = -ier
call xerrwv(
- 1 60hlsodi-- attempt to initialize dy/dt failed.. matrix a is ,
+ 1 'lsodi-- attempt to initialize dy/dt failed.. matrix a is ',
1 60, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h singular. sgefa or sgbfa returned info=(i1),
+ call xerrwv(' singular. sgefa or sgbfa returned info=(i1)',
2 50, 207, 0, 1, ier, 0, 0, 0.0d0, 0.0d0)
istate = -8
return
c ainvg failed because res set ires to 2 or 3. -------------------------
- 565 call xerrwv(50hlsodi-- attempt to initialize dy/dt failed ,
+ 565 call xerrwv('lsodi-- attempt to initialize dy/dt failed ',
1 50, 208, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h because residual routine set its error flag ,
+ call xerrwv(' because residual routine set its error flag ',
1 50, 208, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(20h to ires = (i1),
+ call xerrwv(' to ires = (i1)',
1 20, 208, 0, 1, ier, 0, 0, 0.0d0, 0.0d0)
istate = -8
return
@@ -1626,9 +1626,9 @@
call res ( neq, tn, y, rwork(lsavr), ydoti, ires )
nre = nre + 1
if (ires .le. 1) go to 595
- call xerrwv(50hlsodi-- residual routine set its flag ires ,
+ call xerrwv('lsodi-- residual routine set its flag ires ',
1 50, 210, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h to (i1) when called for final output. ,
+ call xerrwv(' to (i1) when called for final output. ',
1 50, 210, 0, 1, ires, 0, 0, 0.0d0, 0.0d0)
go to 595
c set y vector, t, illin, and optional outputs. ------------------------
@@ -1653,108 +1653,108 @@
c 5 consecutive such returns just before this call to the solver,
c the run is halted.
c-----------------------------------------------------------------------
- 601 call xerrwv(30hlsodi-- istate (=i1) illegal ,
+ 601 call xerrwv('lsodi-- istate (=i1) illegal ',
1 30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
go to 700
- 602 call xerrwv(30hlsodi-- itask (=i1) illegal ,
+ 602 call xerrwv('lsodi-- itask (=i1) illegal ',
1 30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
go to 700
- 603 call xerrwv(50hlsodi-- istate .gt. 1 but lsodi not initialized ,
+ 603 call xerrwv('lsodi-- istate .gt. 1 but lsodi not initialized ',
1 50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
go to 700
- 604 call xerrwv(30hlsodi-- neq (=i1) .lt. 1 ,
+ 604 call xerrwv('lsodi-- neq (=i1) .lt. 1 ',
1 30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
go to 700
- 605 call xerrwv(50hlsodi-- istate = 3 and neq increased (i1 to i2) ,
+ 605 call xerrwv('lsodi-- istate = 3 and neq increased (i1 to i2) ',
1 50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 606 call xerrwv(30hlsodi-- itol (=i1) illegal ,
+ 606 call xerrwv('lsodi-- itol (=i1) illegal ',
1 30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
go to 700
- 607 call xerrwv(30hlsodi-- iopt (=i1) illegal ,
+ 607 call xerrwv('lsodi-- iopt (=i1) illegal ',
1 30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 608 call xerrwv(30hlsodi-- mf (=i1) illegal ,
+ 608 call xerrwv('lsodi-- mf (=i1) illegal ',
1 30, 8, 0, 1, mf, 0, 0, 0.0d0, 0.0d0)
go to 700
- 609 call xerrwv(50hlsodi-- ml(=i1) illegal.. .lt. 0 or .ge. neq(=i2),
+ 609 call xerrwv('lsodi-- ml(=i1) illegal.. .lt. 0 or .ge. neq(=i2)',
1 50, 9, 0, 2, ml, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 610 call xerrwv(50hlsodi-- mu(=i1) illegal.. .lt. 0 or .ge. neq(=i2),
+ 610 call xerrwv('lsodi-- mu(=i1) illegal.. .lt. 0 or .ge. neq(=i2)',
1 50, 10, 0, 2, mu, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 611 call xerrwv(30hlsodi-- maxord (=i1) .lt. 0 ,
+ 611 call xerrwv('lsodi-- maxord (=i1) .lt. 0 ',
1 30, 11, 0, 1, maxord, 0, 0, 0.0d0, 0.0d0)
go to 700
- 612 call xerrwv(30hlsodi-- mxstep (=i1) .lt. 0 ,
+ 612 call xerrwv('lsodi-- mxstep (=i1) .lt. 0 ',
1 30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
go to 700
- 613 call xerrwv(30hlsodi-- mxhnil (=i1) .lt. 0 ,
+ 613 call xerrwv('lsodi-- mxhnil (=i1) .lt. 0 ',
1 30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
go to 700
- 614 call xerrwv(40hlsodi-- tout (=r1) behind t (=r2) ,
+ 614 call xerrwv('lsodi-- tout (=r1) behind t (=r2) ',
1 40, 14, 0, 0, 0, 0, 2, tout, t)
- call xerrwv(50h integration direction is given by h0 (=r1) ,
+ call xerrwv(' integration direction is given by h0 (=r1) ',
1 50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
go to 700
- 615 call xerrwv(30hlsodi-- hmax (=r1) .lt. 0.0 ,
+ 615 call xerrwv('lsodi-- hmax (=r1) .lt. 0.0 ',
1 30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
go to 700
- 616 call xerrwv(30hlsodi-- hmin (=r1) .lt. 0.0 ,
+ 616 call xerrwv('lsodi-- hmin (=r1) .lt. 0.0 ',
1 30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
go to 700
617 call xerrwv(
- 1 60hlsodi-- rwork length needed, lenrw (=i1), exceeds lrw (=i2),
+ 1 'lsodi-- rwork length needed, lenrw (=i1), exceeds lrw (=i2)',
1 60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
618 call xerrwv(
- 1 60hlsodi-- iwork length needed, leniw (=i1), exceeds liw (=i2),
+ 1 'lsodi-- iwork length needed, leniw (=i1), exceeds liw (=i2)',
1 60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
go to 700
- 619 call xerrwv(40hlsodi-- rtol(=i1) is r1 .lt. 0.0 ,
+ 619 call xerrwv('lsodi-- rtol(=i1) is r1 .lt. 0.0 ',
1 40, 19, 0, 1, i, 0, 1, rtoli, 0.0d0)
go to 700
- 620 call xerrwv(40hlsodi-- atol(=i1) is r1 .lt. 0.0 ,
+ 620 call xerrwv('lsodi-- atol(=i1) is r1 .lt. 0.0 ',
1 40, 20, 0, 1, i, 0, 1, atoli, 0.0d0)
go to 700
621 ewti = rwork(lewt+i-1)
- call xerrwv(40hlsodi-- ewt(=i1) is r1 .le. 0.0 ,
+ call xerrwv('lsodi-- ewt(=i1) is r1 .le. 0.0 ',
1 40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
go to 700
622 call xerrwv(
- 1 60hlsodi-- tout (=r1) too close to t(=r2) to start integration,
+ 1 'lsodi-- tout (=r1) too close to t(=r2) to start integration',
1 60, 22, 0, 0, 0, 0, 2, tout, t)
go to 700
623 call xerrwv(
- 1 60hlsodi-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ,
+ 1 'lsodi-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ',
1 60, 23, 0, 1, itask, 0, 2, tout, tp)
go to 700
624 call xerrwv(
- 1 60hlsodi-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ,
+ 1 'lsodi-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ',
1 60, 24, 0, 0, 0, 0, 2, tcrit, tn)
go to 700
625 call xerrwv(
- 1 60hlsodi-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ,
+ 1 'lsodi-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ',
1 60, 25, 0, 0, 0, 0, 2, tcrit, tout)
go to 700
- 626 call xerrwv(50hlsodi-- at start of problem, too much accuracy ,
+ 626 call xerrwv('lsodi-- at start of problem, too much accuracy ',
1 50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h requested for precision of machine.. see tolsf (=r1) ,
+ 1 ' requested for precision of machine.. see tolsf (=r1) ',
1 60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
rwork(14) = tolsf
go to 700
- 627 call xerrwv(50hlsodi-- trouble from intdy. itask = i1, tout = r1,
+ 627 call xerrwv('lsodi-- trouble from intdy. itask = i1, tout = r1',
1 50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
c
700 if (illin .eq. 5) go to 710
illin = illin + 1
istate = -3
return
- 710 call xerrwv(50hlsodi-- repeated occurrences of illegal input ,
+ 710 call xerrwv('lsodi-- repeated occurrences of illegal input ',
1 50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
- 800 call xerrwv(50hlsodi-- run aborted.. apparent infinite loop ,
+ 800 call xerrwv('lsodi-- run aborted.. apparent infinite loop ',
1 50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
return
c----------------------- end of subroutine lsodi -----------------------
Modified: trunk/Lib/integrate/odepack/lsoibt.f
===================================================================
--- trunk/Lib/integrate/odepack/lsoibt.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/lsoibt.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -280,16 +280,16 @@
c call lsoibt (resid, addabt, jacbt, neq, y, ydoti, t, tout,
c 1 itol,rtol,atol, itask, istate, iopt, rwork,lrw,iwork,liw, mf)
c write (6,30) t, iwork(11), iwork(12), iwork(13)
-c 30 format(7h at t =,f5.2,14h no. steps =,i4,11h no. r-s =,i4,
-c 1 11h no. j-s =,i3)
+c 30 format(' at t =',f5.2,' no. steps =',i4,' no. r-s =',i4,
+c 1 ' no. j-s =',i3)
c if (istate .ne. 2) go to 90
c tout = tout + 0.1d0
c 40 continue
c write(6,50) (y(i),i=1,neq)
-c 50 format(/24h final solution values../9(5e12.4/))
+c 50 format(/' final solution values..'/9(5e12.4/))
c stop
c 90 write(6,95) istate
-c 95 format(///22h error halt.. istate =,i3)
+c 95 format(///' error halt.. istate =',i3)
c stop
c end
c
@@ -1500,17 +1500,17 @@
280 if ((tn + h) .ne. tn) go to 290
nhnil = nhnil + 1
if (nhnil .gt. mxhnil) go to 290
- call xerrwv(50hlsoibt-- warning..internal t (=r1) and h (=r2) are,
+ call xerrwv('lsoibt-- warning..internal t (=r1) and h (=r2) are',
1 50, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h such that in the machine, t + h = t on the next step ,
+ 1 ' such that in the machine, t + h = t on the next step ',
1 60, 101, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h (h = step size). solver will continue anyway,
+ call xerrwv(' (h = step size). solver will continue anyway',
1 50, 101, 0, 0, 0, 0, 2, tn, h)
if (nhnil .lt. mxhnil) go to 290
- call xerrwv(50hlsoibt-- above warning has been issued i1 times. ,
+ call xerrwv('lsoibt-- above warning has been issued i1 times. ',
1 50, 102, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h it will not be issued again for this problem,
+ call xerrwv(' it will not be issued again for this problem',
1 50, 102, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
290 continue
c-----------------------------------------------------------------------
@@ -1587,7 +1587,7 @@
430 ntrep = ntrep + 1
if (ntrep .lt. 5) return
call xerrwv(
- 1 60hlsoibt-- repeated calls with istate= 0 or 1 and tout= t(=r1),
+ 1 'lsoibt-- repeated calls with istate= 0 or 1 and tout= t(=r1)',
1 60, 301, 0, 0, 0, 0, 1, t, 0.0d0)
go to 800
c-----------------------------------------------------------------------
@@ -1600,64 +1600,64 @@
c the work arrays before returning.
c-----------------------------------------------------------------------
c the maximum number of steps was taken before reaching tout. ----------
- 500 call xerrwv(50hlsoibt-- at current t (=r1), mxstep (=i1) steps ,
+ 500 call xerrwv('lsoibt-- at current t (=r1), mxstep (=i1) steps ',
1 50, 201, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h taken on this call before reaching tout ,
+ call xerrwv(' taken on this call before reaching tout ',
1 50, 201, 0, 1, mxstep, 0, 1, tn, 0.0d0)
istate = -1
go to 580
c ewt(i) .le. 0.0 for some i (not at start of problem). ----------------
510 ewti = rwork(lewt+i-1)
- call xerrwv(50hlsoibt-- at t (=r1), ewt(i1) has become r2 .le. 0.,
+ call xerrwv('lsoibt-- at t (=r1), ewt(i1) has become r2 .le. 0.',
1 50, 202, 0, 1, i, 0, 2, tn, ewti)
istate = -6
go to 590
c too much accuracy requested for machine precision. -------------------
- 520 call xerrwv(50hlsoibt-- at t (=r1), too much accuracy requested ,
+ 520 call xerrwv('lsoibt-- at t (=r1), too much accuracy requested ',
1 50, 203, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h for precision of machine.. see tolsf (=r2) ,
+ call xerrwv(' for precision of machine.. see tolsf (=r2) ',
1 50, 203, 0, 0, 0, 0, 2, tn, tolsf)
rwork(14) = tolsf
istate = -2
go to 590
c kflag = -1. error test failed repeatedly or with abs(h) = hmin. -----
- 530 call xerrwv(50hlsoibt-- at t(=r1) and step size h(=r2), the error,
+ 530 call xerrwv('lsoibt-- at t(=r1) and step size h(=r2), the error',
1 50, 204, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h test failed repeatedly or with abs(h) = hmin,
+ call xerrwv(' test failed repeatedly or with abs(h) = hmin',
1 50, 204, 0, 0, 0, 0, 2, tn, h)
istate = -4
go to 570
c kflag = -2. convergence failed repeatedly or with abs(h) = hmin. ----
- 540 call xerrwv(50hlsoibt-- at t (=r1) and step size h (=r2), the ,
+ 540 call xerrwv('lsoibt-- at t (=r1) and step size h (=r2), the ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h corrector convergence failed repeatedly ,
+ call xerrwv(' corrector convergence failed repeatedly ',
1 50, 205, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(30h or with abs(h) = hmin ,
+ call xerrwv(' or with abs(h) = hmin ',
1 30, 205, 0, 0, 0, 0, 2, tn, h)
istate = -5
go to 570
c ires = 3 returned by res, despite retries by stodi. ------------------
- 550 call xerrwv(50hlsoibt-- at t (=r1) residual routine returned ,
+ 550 call xerrwv('lsoibt-- at t (=r1) residual routine returned ',
1 50, 206, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(40h error ires = 3 repeatedly ,
+ call xerrwv(' error ires = 3 repeatedly ',
1 40, 206, 0, 0, 0, 0, 1, tn, 0.0d0)
istate = -7
go to 590
c aigbt failed because a diagonal block of a-matrix was singular. ------
560 ier = -ier
call xerrwv(
- 1 60hlsoibt-- attempt to initialize dy/dt failed.. matrix a has a,
+ 1 'lsoibt-- attempt to initialize dy/dt failed.. matrix a has a',
1 60, 207, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h singular diagonal block, block no. = (i1) ,
+ call xerrwv(' singular diagonal block, block no. = (i1) ',
2 50, 207, 0, 1, ier, 0, 0, 0.0d0, 0.0d0)
istate = -8
return
c aigbt failed because res set ires to 2 or 3. -------------------------
- 565 call xerrwv(50hlsoibt-- attempt to initialize dy/dt failed ,
+ 565 call xerrwv('lsoibt-- attempt to initialize dy/dt failed ',
1 50, 208, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h because residual routine set its error flag ,
+ call xerrwv(' because residual routine set its error flag ',
1 50, 208, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(20h to ires = (i1),
+ call xerrwv(' to ires = (i1)',
1 20, 208, 0, 1, ier, 0, 0, 0.0d0, 0.0d0)
istate = -8
return
@@ -1680,9 +1680,9 @@
call res ( neq, tn, y, rwork(lsavr), ydoti, ires )
nre = nre + 1
if ( ires .le. 1 ) go to 595
- call xerrwv(50hlsoibt-- residual routine set its flag ires ,
+ call xerrwv('lsoibt-- residual routine set its flag ires ',
1 50, 210, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
- call xerrwv(50h to (i1) when called for final output. ,
+ call xerrwv(' to (i1) when called for final output. ',
1 50, 210, 0, 1, ires, 0, 0, 0.0d0, 0.0d0)
go to 595
c set y vector, t, illin, and optional outputs. ------------------------
@@ -1707,108 +1707,108 @@
c 5 consecutive such returns just before this call to the solver,
c the run is halted.
c-----------------------------------------------------------------------
- 601 call xerrwv(30hlsoibt-- istate (=i1) illegal ,
+ 601 call xerrwv('lsoibt-- istate (=i1) illegal ',
1 30, 1, 0, 1, istate, 0, 0, 0.0d0, 0.0d0)
go to 700
- 602 call xerrwv(30hlsoibt-- itask (=i1) illegal ,
+ 602 call xerrwv('lsoibt-- itask (=i1) illegal ',
1 30, 2, 0, 1, itask, 0, 0, 0.0d0, 0.0d0)
go to 700
- 603 call xerrwv(50hlsoibt-- istate .gt. 1 but lsoibt not initialized ,
+ 603 call xerrwv('lsoibt-- istate .gt. 1 but lsoibt not initialized ',
1 50, 3, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
go to 700
- 604 call xerrwv(30hlsoibt-- neq (=i1) .lt. 1 ,
+ 604 call xerrwv('lsoibt-- neq (=i1) .lt. 1 ',
1 30, 4, 0, 1, neq(1), 0, 0, 0.0d0, 0.0d0)
go to 700
- 605 call xerrwv(50hlsoibt-- istate = 3 and neq increased (i1 to i2) ,
+ 605 call xerrwv('lsoibt-- istate = 3 and neq increased (i1 to i2) ',
1 50, 5, 0, 2, n, neq(1), 0, 0.0d0, 0.0d0)
go to 700
- 606 call xerrwv(30hlsoibt-- itol (=i1) illegal ,
+ 606 call xerrwv('lsoibt-- itol (=i1) illegal ',
1 30, 6, 0, 1, itol, 0, 0, 0.0d0, 0.0d0)
go to 700
- 607 call xerrwv(30hlsoibt-- iopt (=i1) illegal ,
+ 607 call xerrwv('lsoibt-- iopt (=i1) illegal ',
1 30, 7, 0, 1, iopt, 0, 0, 0.0d0, 0.0d0)
go to 700
- 608 call xerrwv(30hlsoibt-- mf (=i1) illegal ,
+ 608 call xerrwv('lsoibt-- mf (=i1) illegal ',
1 30, 8, 0, 1, mf, 0, 0, 0.0d0, 0.0d0)
go to 700
- 609 call xerrwv(40hlsoibt-- mb (=i1) or nb (=i2) illegal ,
+ 609 call xerrwv('lsoibt-- mb (=i1) or nb (=i2) illegal ',
1 50, 9, 0, 2, mb, nb, 0, 0.0d0, 0.0d0)
go to 700
- 610 call xerrwv(40hlsoibt-- nb(=i1) illegal.. .lt. 4 ,
+ 610 call xerrwv('lsoibt-- nb(=i1) illegal.. .lt. 4 ',
1 50, 10, 0, 1, nb, 0, 0, 0.0d0, 0.0d0)
go to 700
- 611 call xerrwv(30hlsoibt-- maxord (=i1) .lt. 0 ,
+ 611 call xerrwv('lsoibt-- maxord (=i1) .lt. 0 ',
1 30, 11, 0, 1, maxord, 0, 0, 0.0d0, 0.0d0)
go to 700
- 612 call xerrwv(30hlsoibt-- mxstep (=i1) .lt. 0 ,
+ 612 call xerrwv('lsoibt-- mxstep (=i1) .lt. 0 ',
1 30, 12, 0, 1, mxstep, 0, 0, 0.0d0, 0.0d0)
go to 700
- 613 call xerrwv(30hlsoibt-- mxhnil (=i1) .lt. 0 ,
+ 613 call xerrwv('lsoibt-- mxhnil (=i1) .lt. 0 ',
1 30, 13, 0, 1, mxhnil, 0, 0, 0.0d0, 0.0d0)
go to 700
- 614 call xerrwv(40hlsoibt-- tout (=r1) behind t (=r2) ,
+ 614 call xerrwv('lsoibt-- tout (=r1) behind t (=r2) ',
1 40, 14, 0, 0, 0, 0, 2, tout, t)
- call xerrwv(50h integration direction is given by h0 (=r1) ,
+ call xerrwv(' integration direction is given by h0 (=r1) ',
1 50, 14, 0, 0, 0, 0, 1, h0, 0.0d0)
go to 700
- 615 call xerrwv(30hlsoibt-- hmax (=r1) .lt. 0.0 ,
+ 615 call xerrwv('lsoibt-- hmax (=r1) .lt. 0.0 ',
1 30, 15, 0, 0, 0, 0, 1, hmax, 0.0d0)
go to 700
- 616 call xerrwv(30hlsoibt-- hmin (=r1) .lt. 0.0 ,
+ 616 call xerrwv('lsoibt-- hmin (=r1) .lt. 0.0 ',
1 30, 16, 0, 0, 0, 0, 1, hmin, 0.0d0)
go to 700
617 call xerrwv(
- 1 60hlsoibt-- rwork length needed, lenrw (=i1), exceeds lrw (=i2),
+ 1 'lsoibt-- rwork length needed, lenrw (=i1), exceeds lrw (=i2)',
1 60, 17, 0, 2, lenrw, lrw, 0, 0.0d0, 0.0d0)
go to 700
618 call xerrwv(
- 1 60hlsoibt-- iwork length needed, leniw (=i1), exceeds liw (=i2),
+ 1 'lsoibt-- iwork length needed, leniw (=i1), exceeds liw (=i2)',
1 60, 18, 0, 2, leniw, liw, 0, 0.0d0, 0.0d0)
go to 700
- 619 call xerrwv(40hlsoibt-- rtol(=i1) is r1 .lt. 0.0 ,
+ 619 call xerrwv('lsoibt-- rtol(=i1) is r1 .lt. 0.0 ',
1 40, 19, 0, 1, i, 0, 1, rtoli, 0.0d0)
go to 700
- 620 call xerrwv(40hlsoibt-- atol(=i1) is r1 .lt. 0.0 ,
+ 620 call xerrwv('lsoibt-- atol(=i1) is r1 .lt. 0.0 ',
1 40, 20, 0, 1, i, 0, 1, atoli, 0.0d0)
go to 700
621 ewti = rwork(lewt+i-1)
- call xerrwv(40hlsoibt-- ewt(=i1) is r1 .le. 0.0 ,
+ call xerrwv('lsoibt-- ewt(=i1) is r1 .le. 0.0 ',
1 40, 21, 0, 1, i, 0, 1, ewti, 0.0d0)
go to 700
622 call xerrwv(
- 1 60hlsoibt-- tout (=r1) too close to t(=r2) to start integration,
+ 1 'lsoibt-- tout (=r1) too close to t(=r2) to start integration',
1 60, 22, 0, 0, 0, 0, 2, tout, t)
go to 700
623 call xerrwv(
- 1 60hlsoibt-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ,
+ 1 'lsoibt-- itask = i1 and tout (=r1) behind tcur - hu (= r2) ',
1 60, 23, 0, 1, itask, 0, 2, tout, tp)
go to 700
624 call xerrwv(
- 1 60hlsoibt-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ,
+ 1 'lsoibt-- itask = 4 or 5 and tcrit (=r1) behind tcur (=r2) ',
1 60, 24, 0, 0, 0, 0, 2, tcrit, tn)
go to 700
625 call xerrwv(
- 1 60hlsoibt-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ,
+ 1 'lsoibt-- itask = 4 or 5 and tcrit (=r1) behind tout (=r2) ',
1 60, 25, 0, 0, 0, 0, 2, tcrit, tout)
go to 700
- 626 call xerrwv(50hlsoibt-- at start of problem, too much accuracy ,
+ 626 call xerrwv('lsoibt-- at start of problem, too much accuracy ',
1 50, 26, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
call xerrwv(
- 1 60h requested for precision of machine.. see tolsf (=r1) ,
+ 1 ' requested for precision of machine.. see tolsf (=r1) ',
1 60, 26, 0, 0, 0, 0, 1, tolsf, 0.0d0)
rwork(14) = tolsf
go to 700
- 627 call xerrwv(50hlsoibt-- trouble from intdy. itask = i1, tout = r1,
+ 627 call xerrwv('lsoibt-- trouble from intdy. itask = i1, tout = r1',
1 50, 27, 0, 1, itask, 0, 1, tout, 0.0d0)
c
700 if (illin .eq. 5) go to 710
illin = illin + 1
istate = -3
return
- 710 call xerrwv(50hlsoibt-- repeated occurrences of illegal input ,
+ 710 call xerrwv('lsoibt-- repeated occurrences of illegal input ',
1 50, 302, 0, 0, 0, 0, 0, 0.0d0, 0.0d0)
c
- 800 call xerrwv(50hlsoibt-- run aborted.. apparent infinite loop ,
+ 800 call xerrwv('lsoibt-- run aborted.. apparent infinite loop ',
1 50, 303, 2, 0, 0, 0, 0, 0.0d0, 0.0d0)
return
c----------------------- end of subroutine lsoibt ----------------------
Modified: trunk/Lib/integrate/odepack/xerrwv.f
===================================================================
--- trunk/Lib/integrate/odepack/xerrwv.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/odepack/xerrwv.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -100,13 +100,13 @@
c 10 format(1x,30a2)
c-----------------------------------------------------------------------
if (ni .eq. 1) write (lun, 20) i1
- 20 format(6x,23hin above message, i1 =,i10)
+ 20 format(6x,'in above message, i1 =',i10)
if (ni .eq. 2) write (lun, 30) i1,i2
- 30 format(6x,23hin above message, i1 =,i10,3x,4hi2 =,i10)
+ 30 format(6x,'in above message, i1 =',i10,3x,'i2 =',i10)
if (nr .eq. 1) write (lun, 40) r1
- 40 format(6x,23hin above message, r1 =,d21.13)
+ 40 format(6x,'in above message, r1 =',d21.13)
if (nr .eq. 2) write (lun, 50) r1,r2
- 50 format(6x,15hin above, r1 =,d21.13,3x,4hr2 =,d21.13)
+ 50 format(6x,'in above, r1 =',d21.13,3x,'r2 =',d21.13)
c abort the run if level = 2. ------------------------------------------
100 if (level .ne. 2) return
stop
Modified: trunk/Lib/integrate/quadpack/dqag.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqag.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqag.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -177,6 +177,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqag ,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqag' ,26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqagi.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqagi.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqagi.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -186,6 +186,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqagi,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqagi',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqagp.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqagp.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqagp.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -220,6 +220,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqagp,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqagp',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqags.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqags.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqags.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -183,6 +183,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqags,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqags',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqawc.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqawc.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqawc.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -173,6 +173,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqawc,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqawc',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqawf.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqawf.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqawf.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -226,6 +226,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqawf,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqawf',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqawo.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqawo.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqawo.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -220,6 +220,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 0
- if(ier.ne.0) call xerror(26habnormal return from dqawo,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqawo',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqaws.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqaws.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqaws.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -195,6 +195,6 @@
c
lvl = 0
10 if(ier.eq.6) lvl = 1
- if(ier.ne.0) call xerror(26habnormal return from dqaws,26,ier,lvl)
+ if(ier.ne.0) call xerror('abnormal return from dqaws',26,ier,lvl)
return
end
Modified: trunk/Lib/integrate/quadpack/dqng.f
===================================================================
--- trunk/Lib/integrate/quadpack/dqng.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/integrate/quadpack/dqng.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -369,6 +369,6 @@
c ***jump out of do-loop
if (ier.eq.0) go to 999
70 continue
- 80 call xerror(26habnormal return from dqng ,26,ier,0)
+ 80 call xerror('abnormal return from dqng ',26,ier,0)
999 return
end
Modified: trunk/Lib/interpolate/fitpack/fppola.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fppola.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/interpolate/fitpack/fppola.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -51,7 +51,9 @@
c calculation of acc, the absolute tolerance for the root of f(p)=s.
acc = tol*s
if(iopt1.eq.0) go to 10
- if(s.lt.sup) if(nv-nvmin) 70,90,90
+ if(s.lt.sup) then
+ if(nv-nvmin) 70,90,90
+ endif
c if iopt1 = 0 we begin by computing the weighted least-squares
c polymomial of the form
c s(u,v) = f(1)*(1-u**3)+f(2)*u**3+f(3)*(u**2-u**3)+f(4)*(u-u**3)
@@ -416,9 +418,13 @@
c the spline.
430 call fprppo(nu,nv,iopt2,iopt3,cosi,ratio,c,ff,ncoff)
c test whether the least-squares spline is an acceptable solution.
- if(iopt1.lt.0) if(fp) 970,970,980
+ if(iopt1.lt.0) then
+ if(fp) 970,970,980
+ endif
fpms = fp-s
- if(abs(fpms).le.acc) if(fp) 970,970,980
+ if(abs(fpms).le.acc) then
+ if(fp) 970,970,980
+ endif
c if f(p=inf) < s, accept the choice of knots.
if(fpms.lt.0.) go to 580
c test whether we cannot further increase the number of knots
@@ -634,7 +640,9 @@
do 710 irot=jrot,ncof
piv = h(1)
i2 = min0(iband1,ncof-irot)
- if(piv.eq.0.) if(i2) 720,720,690
+ if(piv.eq.0.) then
+ if(i2) 720,720,690
+ endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
c apply that givens transformation to the right hand side.
@@ -697,7 +705,9 @@
do 800 irot=jrot,ncof
piv = h(1)
i2 = min0(iband3,ncof-irot)
- if(piv.eq.0.) if(i2) 810,810,780
+ if(piv.eq.0.) then
+ if(i2) 810,810,780
+ endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
c apply that givens transformation to the right hand side.
Modified: trunk/Lib/interpolate/fitpack/fpsphe.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpsphe.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/interpolate/fitpack/fpsphe.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -44,7 +44,9 @@
c calculation of acc, the absolute tolerance for the root of f(p)=s.
acc = tol*s
if(iopt.eq.0) go to 10
- if(s.lt.sup) if(np-11) 60,70,70
+ if(s.lt.sup) then
+ if(np-11) 60,70,70
+ endif
c if iopt=0 we begin by computing the weighted least-squares polynomial
c of the form
c s(teta,phi) = c1*f1(teta) + cn*fn(teta)
@@ -366,9 +368,13 @@
c the spherical spline.
390 call fprpsp(nt,np,coco,cosi,c,ff,ncoff)
c test whether the least-squares spline is an acceptable solution.
- if(iopt.lt.0) if(fp) 970,970,980
+ if(iopt.lt.0) then
+ if(fp) 970,970,980
+ endif
fpms = fp-s
- if(abs(fpms).le.acc) if(fp) 970,970,980
+ if(abs(fpms).le.acc) then
+ if(fp) 970,970,980
+ endif
c if f(p=inf) < s, accept the choice of knots.
if(fpms.lt.0.) go to 580
c test whether we cannot further increase the number of knots.
@@ -567,7 +573,9 @@
do 710 irot=jrot,ncof
piv = h(1)
i2 = min0(iband1,ncof-irot)
- if(piv.eq.0.) if(i2) 720,720,690
+ if(piv.eq.0.) then
+ if(i2) 720,720,690
+ endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
c apply that givens transformation to the right hand side.
@@ -622,7 +630,9 @@
do 800 irot=jrot,ncof
piv = h(1)
i2 = min0(iband3,ncof-irot)
- if(piv.eq.0.) if(i2) 810,810,780
+ if(piv.eq.0.) then
+ if(i2) 810,810,780
+ endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
c apply that givens transformation to the right hand side.
Modified: trunk/Lib/interpolate/fitpack/fpsurf.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpsurf.f 2006-08-12 23:04:32 UTC (rev 2158)
+++ trunk/Lib/interpolate/fitpack/fpsurf.f 2006-08-14 01:26:54 UTC (rev 2159)
@@ -286,7 +286,9 @@
c test whether the least-squares spline is an acceptable solution.
if(iopt.lt.0) go to 820
fpms = fp-s
- if(abs(fpms).le.acc) if(fp) 815,815,820
+ if(abs(fpms).le.acc) then
+ if(fp) 815,815,820
+ endif
c test whether we can accept the choice of knots.
if(fpms.lt.0.) go to 430
c test whether we cannot further increase the number of knots.
@@ -464,7 +466,9 @@
do 540 irot=jrot,ncof
piv = h(1)
i2 = min0(iband1,ncof-irot)
- if(piv.eq.0.) if(i2) 550,550,520
+ if(piv.eq.0.) then
+ if(i2) 550,550,520
+ endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),cos,sin)
c apply that givens transformation to the right hand side.
@@ -504,7 +508,9 @@
do 620 irot=jrot,ncof
piv = h(1)
i2 = min0(iband3,ncof-irot)
- if(piv.eq.0.) if(i2) 630,630,600
+ if(piv.eq.0.) then
+ if(i2) 630,630,600
+ endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),cos,sin)
c apply that givens transformation to the right hand side.
From scipy-svn at scipy.org Mon Aug 14 00:23:06 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 13 Aug 2006 23:23:06 -0500 (CDT)
Subject: [Scipy-svn] r2160 - in trunk/Lib: fftpack/dfftpack fftpack/fftpack
integrate/odepack interpolate/fitpack sandbox/odr/odrpack
special/cdflib
Message-ID: <20060814042306.5CD6739C093@new.scipy.org>
Author: cookedm
Date: 2006-08-13 23:22:28 -0500 (Sun, 13 Aug 2006)
New Revision: 2160
Modified:
trunk/Lib/fftpack/dfftpack/dcosqb.f
trunk/Lib/fftpack/dfftpack/dcosqf.f
trunk/Lib/fftpack/dfftpack/dcost.f
trunk/Lib/fftpack/dfftpack/dfftb1.f
trunk/Lib/fftpack/dfftpack/dfftf1.f
trunk/Lib/fftpack/dfftpack/dffti1.f
trunk/Lib/fftpack/dfftpack/dsint1.f
trunk/Lib/fftpack/dfftpack/zffti1.f
trunk/Lib/fftpack/fftpack/cffti1.f
trunk/Lib/fftpack/fftpack/cosqb.f
trunk/Lib/fftpack/fftpack/cosqf.f
trunk/Lib/fftpack/fftpack/cost.f
trunk/Lib/fftpack/fftpack/rfftb1.f
trunk/Lib/fftpack/fftpack/rfftf1.f
trunk/Lib/fftpack/fftpack/rffti1.f
trunk/Lib/fftpack/fftpack/sint1.f
trunk/Lib/integrate/odepack/cntnzu.f
trunk/Lib/integrate/odepack/lsodes.f
trunk/Lib/integrate/odepack/lsodi.f
trunk/Lib/integrate/odepack/lsoibt.f
trunk/Lib/integrate/odepack/mdi.f
trunk/Lib/integrate/odepack/mdu.f
trunk/Lib/integrate/odepack/nsfc.f
trunk/Lib/interpolate/fitpack/bispev.f
trunk/Lib/interpolate/fitpack/clocur.f
trunk/Lib/interpolate/fitpack/cocosp.f
trunk/Lib/interpolate/fitpack/concur.f
trunk/Lib/interpolate/fitpack/curev.f
trunk/Lib/interpolate/fitpack/curfit.f
trunk/Lib/interpolate/fitpack/fpadno.f
trunk/Lib/interpolate/fitpack/fpchep.f
trunk/Lib/interpolate/fitpack/fpfrno.f
trunk/Lib/interpolate/fitpack/fpintb.f
trunk/Lib/interpolate/fitpack/fppasu.f
trunk/Lib/interpolate/fitpack/fppogr.f
trunk/Lib/interpolate/fitpack/fppola.f
trunk/Lib/interpolate/fitpack/fpregr.f
trunk/Lib/interpolate/fitpack/fpseno.f
trunk/Lib/interpolate/fitpack/fpspgr.f
trunk/Lib/interpolate/fitpack/fpsphe.f
trunk/Lib/interpolate/fitpack/fpsurf.f
trunk/Lib/interpolate/fitpack/parcur.f
trunk/Lib/interpolate/fitpack/parder.f
trunk/Lib/interpolate/fitpack/parsur.f
trunk/Lib/interpolate/fitpack/percur.f
trunk/Lib/interpolate/fitpack/pogrid.f
trunk/Lib/interpolate/fitpack/regrid.f
trunk/Lib/interpolate/fitpack/spgrid.f
trunk/Lib/interpolate/fitpack/surev.f
trunk/Lib/sandbox/odr/odrpack/d_lpkbls.f
trunk/Lib/special/cdflib/gam1.f
trunk/Lib/special/cdflib/gamma_fort.f
trunk/Lib/special/cdflib/gratio.f
Log:
More 1960's Fortran removal: replace arithmetic IF's.
This cuts down the warnings from gfortran by a lot.
Modified: trunk/Lib/fftpack/dfftpack/dcosqb.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dcosqb.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dcosqb.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -2,7 +2,9 @@
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION X(*) ,WSAVE(*)
DATA TSQRT2 /2.82842712474619009760D0/
- IF (N-2) 101,102,103
+ IF (N.lt.2) GO TO 101
+ IF (N.eq.2) GO TO 102
+ GO TO 103
101 X(1) = 4.0D0*X(1)
RETURN
102 X1 = 4.0D0*(X(1)+X(2))
Modified: trunk/Lib/fftpack/dfftpack/dcosqf.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dcosqf.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dcosqf.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -2,7 +2,9 @@
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION X(*) ,WSAVE(*)
DATA SQRT2 /1.41421356237309504880D0/
- IF (N-2) 102,101,103
+ IF (N.lt.2) GO TO 102
+ IF (N.eq.2) GO TO 101
+ GO TO 103
101 TSQX = SQRT2*X(2)
X(2) = X(1)-TSQX
X(1) = X(1)+TSQX
Modified: trunk/Lib/fftpack/dfftpack/dcost.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dcost.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dcost.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -4,7 +4,9 @@
NM1 = N-1
NP1 = N+1
NS2 = N/2
- IF (N-2) 106,101,102
+ IF (N.lt.2) GO TO 106
+ IF (N.eq.2) GO TO 101
+ GO TO 102
101 X1H = X(1)+X(2)
X(2) = X(1)-X(2)
X(1) = X1H
Modified: trunk/Lib/fftpack/dfftpack/dfftb1.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dfftb1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dfftb1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -229,7 +229,9 @@
CH(1,K,1) = CC(1,1,K)+CC(IDO,2,K)
CH(1,K,2) = CC(1,1,K)-CC(IDO,2,K)
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
@@ -305,7 +307,9 @@
CH(1,K,3) = TR2-TR3
CH(1,K,4) = TR1+TR4
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
Modified: trunk/Lib/fftpack/dfftpack/dfftf1.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dfftf1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dfftf1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -236,7 +236,9 @@
CH(1,1,K) = CC(1,K,1)+CC(1,K,2)
CH(IDO,2,K) = CC(1,K,1)-CC(1,K,2)
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
@@ -308,7 +310,9 @@
CH(IDO,2,K) = CC(1,K,1)-CC(1,K,3)
CH(1,3,K) = CC(1,K,4)-CC(1,K,2)
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
Modified: trunk/Lib/fftpack/dfftpack/dffti1.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dffti1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dffti1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -6,13 +6,15 @@
NF = 0
J = 0
101 J = J+1
- IF (J-4) 102,102,103
+ IF (J.le.4) GO TO 102
+ GO TO 103
102 NTRY = NTRYH(J)
GO TO 104
103 NTRY = NTRY+2
104 NQ = NL/NTRY
NR = NL-NTRY*NQ
- IF (NR) 101,105,101
+ IF (NR.eq.0) GO TO 105
+ GO TO 101
105 NF = NF+1
IFAC(NF+2) = NTRY
NL = NQ
Modified: trunk/Lib/fftpack/dfftpack/dsint1.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/dsint1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/dsint1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -6,7 +6,9 @@
XH(I) = WAR(I)
WAR(I) = X(I)
100 CONTINUE
- IF (N-2) 101,102,103
+ IF (N.lt.2) GO TO 101
+ IF (N.eq.2) GO TO 102
+ GO TO 103
101 XH(1) = XH(1)+XH(1)
GO TO 106
102 XHOLD = SQRT3*(XH(1)+XH(2))
Modified: trunk/Lib/fftpack/dfftpack/zffti1.f
===================================================================
--- trunk/Lib/fftpack/dfftpack/zffti1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/dfftpack/zffti1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -6,13 +6,15 @@
NF = 0
J = 0
101 J = J+1
- IF (J-4) 102,102,103
+ IF (J.le.4) GO TO 102
+ GO TO 103
102 NTRY = NTRYH(J)
GO TO 104
103 NTRY = NTRY+2
104 NQ = NL/NTRY
NR = NL-NTRY*NQ
- IF (NR) 101,105,101
+ IF (NR.eq.0) GO TO 105
+ GO TO 101
105 NF = NF+1
IFAC(NF+2) = NTRY
NL = NQ
Modified: trunk/Lib/fftpack/fftpack/cffti1.f
===================================================================
--- trunk/Lib/fftpack/fftpack/cffti1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/cffti1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -5,13 +5,15 @@
NF = 0
J = 0
101 J = J+1
- IF (J-4) 102,102,103
+ IF (J.le.4) GO TO 102
+ GO TO 103
102 NTRY = NTRYH(J)
GO TO 104
103 NTRY = NTRY+2
104 NQ = NL/NTRY
NR = NL-NTRY*NQ
- IF (NR) 101,105,101
+ IF (NR.eq.0) GO TO 105
+ GO TO 101
105 NF = NF+1
IFAC(NF+2) = NTRY
NL = NQ
Modified: trunk/Lib/fftpack/fftpack/cosqb.f
===================================================================
--- trunk/Lib/fftpack/fftpack/cosqb.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/cosqb.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -1,7 +1,9 @@
SUBROUTINE COSQB (N,X,WSAVE)
DIMENSION X(*) ,WSAVE(*)
DATA TSQRT2 /2.82842712474619/
- IF (N-2) 101,102,103
+ IF (N.lt.2) GO TO 101
+ IF (N.eq.2) GO TO 102
+ GO TO 103
101 X(1) = 4.*X(1)
RETURN
102 X1 = 4.*(X(1)+X(2))
Modified: trunk/Lib/fftpack/fftpack/cosqf.f
===================================================================
--- trunk/Lib/fftpack/fftpack/cosqf.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/cosqf.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -1,7 +1,9 @@
SUBROUTINE COSQF (N,X,WSAVE)
DIMENSION X(*) ,WSAVE(*)
DATA SQRT2 /1.4142135623731/
- IF (N-2) 102,101,103
+ IF (N.lt.2) GO TO 102
+ IF (N.eq.2) GO TO 101
+ GO TO 103
101 TSQX = SQRT2*X(2)
X(2) = X(1)-TSQX
X(1) = X(1)+TSQX
Modified: trunk/Lib/fftpack/fftpack/cost.f
===================================================================
--- trunk/Lib/fftpack/fftpack/cost.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/cost.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -3,7 +3,9 @@
NM1 = N-1
NP1 = N+1
NS2 = N/2
- IF (N-2) 106,101,102
+ IF (N.lt.2) GO TO 106
+ IF (N.eq.2) GO TO 101
+ GO TO 102
101 X1H = X(1)+X(2)
X(2) = X(1)-X(2)
X(1) = X1H
Modified: trunk/Lib/fftpack/fftpack/rfftb1.f
===================================================================
--- trunk/Lib/fftpack/fftpack/rfftb1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/rfftb1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -64,7 +64,9 @@
CH(1,K,1) = CC(1,1,K)+CC(IDO,2,K)
CH(1,K,2) = CC(1,1,K)-CC(IDO,2,K)
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
@@ -135,7 +137,9 @@
CH(1,K,3) = TR2-TR3
CH(1,K,4) = TR1+TR4
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
Modified: trunk/Lib/fftpack/fftpack/rfftf1.f
===================================================================
--- trunk/Lib/fftpack/fftpack/rfftf1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/rfftf1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -64,7 +64,9 @@
CH(1,1,K) = CC(1,K,1)+CC(1,K,2)
CH(IDO,2,K) = CC(1,K,1)-CC(1,K,2)
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
@@ -131,7 +133,9 @@
CH(IDO,2,K) = CC(1,K,1)-CC(1,K,3)
CH(1,3,K) = CC(1,K,4)-CC(1,K,2)
101 CONTINUE
- IF (IDO-2) 107,105,102
+ IF (IDO.lt.2) GO TO 107
+ IF (IDO.eq.2) GO TO 105
+ GO TO 102
102 IDP2 = IDO+2
DO 104 K=1,L1
DO 103 I=3,IDO,2
Modified: trunk/Lib/fftpack/fftpack/rffti1.f
===================================================================
--- trunk/Lib/fftpack/fftpack/rffti1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/rffti1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -5,13 +5,15 @@
NF = 0
J = 0
101 J = J+1
- IF (J-4) 102,102,103
+ IF (J.le.4) GO TO 102
+ GO TO 103
102 NTRY = NTRYH(J)
GO TO 104
103 NTRY = NTRY+2
104 NQ = NL/NTRY
NR = NL-NTRY*NQ
- IF (NR) 101,105,101
+ IF (NR.eq.0) GO TO 105
+ GO TO 101
105 NF = NF+1
IFAC(NF+2) = NTRY
NL = NQ
Modified: trunk/Lib/fftpack/fftpack/sint1.f
===================================================================
--- trunk/Lib/fftpack/fftpack/sint1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/fftpack/fftpack/sint1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -5,7 +5,9 @@
XH(I) = WAR(I)
WAR(I) = X(I)
100 CONTINUE
- IF (N-2) 101,102,103
+ IF (N.lt.2) GO TO 101
+ IF (N.eq.2) GO TO 102
+ GO TO 103
101 XH(1) = XH(1)+XH(1)
GO TO 106
102 XHOLD = SQRT3*(XH(1)+XH(2))
Modified: trunk/Lib/integrate/odepack/cntnzu.f
===================================================================
--- trunk/Lib/integrate/odepack/cntnzu.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/cntnzu.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -16,7 +16,9 @@
jmax = ia(ii+1) - 1
if (jmin .gt. jmax) go to 50
do 40 j = jmin,jmax
- if (ja(j) - ii) 10, 40, 30
+ if (ja(j).lt.ii) go to 10
+ if (ja(j).eq.ii) go to 40
+ go to 30
10 jj =ja(j)
kmin = ia(jj)
kmax = ia(jj+1) - 1
Modified: trunk/Lib/integrate/odepack/lsodes.f
===================================================================
--- trunk/Lib/integrate/odepack/lsodes.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/lsodes.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -1433,7 +1433,9 @@
lyhd = lyh - lyhn
imax = lyhn - 1 + lenyhm
c move yh. branch for move right, no move, or move left. --------------
- if (lyhd) 70,80,74
+ if (lyhd.lt.0) go to 70
+ if (lyhd.eq.0) go to 80
+ go to 74
70 do 72 i = lyhn,imax
j = imax + lyhn - i
72 rwork(j) = rwork(j+lyhd)
Modified: trunk/Lib/integrate/odepack/lsodi.f
===================================================================
--- trunk/Lib/integrate/odepack/lsodi.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/lsodi.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -1325,7 +1325,9 @@
call ainvg( res, adda, neq, t, y, rwork(lyd0), miter,
1 ml, mu, rwork(lp), iwork(21), ier )
nre = nre + 1
- if (ier) 560,110,565
+ if (ier.lt.0) go to 560
+ if (ier.eq.0) go to 110
+ go to 565
110 continue
do 115 i = 1,n
115 rwork(i+lyh-1) = y(i)
Modified: trunk/Lib/integrate/odepack/lsoibt.f
===================================================================
--- trunk/Lib/integrate/odepack/lsoibt.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/lsoibt.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -1379,7 +1379,9 @@
call aigbt( res, adda, neq, t, y, rwork(lyd0),
1 mb, nb, rwork(lp), iwork(21), ier )
nre = nre + 1
- if (ier) 560,110,565
+ if (ier.lt.0) go to 560
+ if (ier.eq.0) go to 110
+ go to 565
110 continue
do 115 i = 1,n
115 rwork(i+lyh-1) = y(i)
Modified: trunk/Lib/integrate/odepack/mdi.f
===================================================================
--- trunk/Lib/integrate/odepack/mdi.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/mdi.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -22,7 +22,9 @@
if (jmin.gt.jmax) go to 6
do 5 j=jmin,jmax
vj = ja(j)
- if (vj-vi) 2, 5, 4
+ if (vj.lt.vi) go to 2
+ if (vj.eq.vi) go to 5
+ go to 4
c
c------if a(vi,vj) is in strict lower triangle
c------check for previous occurrence of a(vj,vi)
Modified: trunk/Lib/integrate/odepack/mdu.f
===================================================================
--- trunk/Lib/integrate/odepack/mdu.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/mdu.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -19,7 +19,9 @@
do 10 ilp=1,ilpmax
i = l(i)
vi = v(i)
- if (last(vi)) 1, 10, 8
+ if (last(vi).lt.0) go to 1
+ if (last(vi).eq.0) go to 10
+ go to 8
c
c------if vi neither prototype nor duplicate vertex, then merge elements
c------to compute degree
Modified: trunk/Lib/integrate/odepack/nsfc.f
===================================================================
--- trunk/Lib/integrate/odepack/nsfc.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/integrate/odepack/nsfc.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -148,7 +148,9 @@
11 if (jlmin .gt. jlptr) go to 15
qm = q(qm)
do 12 j=jlmin,jlptr
- if (jl(j) - qm) 12, 13, 15
+ if (jl(j).lt.qm) go to 12
+ if (jl(j).eq.qm) go to 13
+ go to 15
12 continue
go to 15
13 ijl(k) = j
@@ -250,7 +252,9 @@
28 if (jumin .gt. juptr) go to 32
qm = q(qm)
do 29 j=jumin,juptr
- if (ju(j) - qm) 29, 30, 32
+ if (ju(j).lt.qm) go to 29
+ if (ju(j).eq.qm) go to 30
+ go to 32
29 continue
go to 32
30 iju(k) = j
Modified: trunk/Lib/interpolate/fitpack/bispev.f
===================================================================
--- trunk/Lib/interpolate/fitpack/bispev.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/bispev.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -83,11 +83,15 @@
lwest = (kx+1)*mx+(ky+1)*my
if(lwrk.lt.lwest) go to 100
if(kwrk.lt.(mx+my)) go to 100
- if(mx-1) 100,30,10
+ if (mx.lt.1) go to 100
+ if (mx.eq.1) go to 30
+ go to 10
10 do 20 i=2,mx
if(x(i).lt.x(i-1)) go to 100
20 continue
- 30 if(my-1) 100,60,40
+ 30 if (my.lt.1) go to 100
+ if (my.eq.1) go to 60
+ go to 40
40 do 50 i=2,my
if(y(i).lt.y(i-1)) go to 100
50 continue
Modified: trunk/Lib/interpolate/fitpack/clocur.f
===================================================================
--- trunk/Lib/interpolate/fitpack/clocur.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/clocur.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -331,7 +331,8 @@
t(i1) = t(j1)+per
60 continue
call fpchep(u,m,t,n,k,ier)
- if(ier) 90,80,90
+ if (ier.eq.0) go to 80
+ go to 90
70 if(s.lt.0.) go to 90
if(s.eq.0. .and. nest.lt.(m+2*k)) go to 90
ier = 0
Modified: trunk/Lib/interpolate/fitpack/cocosp.f
===================================================================
--- trunk/Lib/interpolate/fitpack/cocosp.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/cocosp.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -148,7 +148,8 @@
if(x(i-1).ge.x(i) .or. w(i).le.0.) go to 40
10 continue
call fpchec(x,m,t,n,3,ier)
- if(ier) 40,20,40
+ if (ier.eq.0) go to 20
+ go to 40
c set numbers e(i)
20 n6 = n-6
do 30 i=1,n6
Modified: trunk/Lib/interpolate/fitpack/concur.f
===================================================================
--- trunk/Lib/interpolate/fitpack/concur.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/concur.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -330,7 +330,8 @@
j = j-1
20 continue
call fpched(u,m,t,n,k,ib,ie,ier)
- if(ier) 90,40,90
+ if (ier.eq.0) go to 40
+ go to 90
30 if(s.lt.0.) go to 90
nmax = m+k1+ib1+ie1
if(s.eq.0. .and. nest.lt.nmax) go to 90
Modified: trunk/Lib/interpolate/fitpack/curev.f
===================================================================
--- trunk/Lib/interpolate/fitpack/curev.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/curev.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -63,7 +63,9 @@
c before starting computations a data check is made. if the input data
c are invalid control is immediately repassed to the calling program.
ier = 10
- if(m-1) 100,30,10
+ if (m.lt.1) go to 100
+ if (m.eq.1) go to 30
+ go to 10
10 do 20 i=2,m
if(u(i).lt.u(i-1)) go to 100
20 continue
Modified: trunk/Lib/interpolate/fitpack/curfit.f
===================================================================
--- trunk/Lib/interpolate/fitpack/curfit.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/curfit.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -243,7 +243,8 @@
j = j-1
20 continue
call fpchec(x,m,t,n,k,ier)
- if(ier) 50,40,50
+ if (ier.eq.0) go to 40
+ go to 50
30 if(s.lt.0.) go to 50
if(s.eq.0. .and. nest.lt.(m+k1)) go to 50
ier = 0
Modified: trunk/Lib/interpolate/fitpack/fpadno.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpadno.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpadno.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -25,7 +25,9 @@
10 k = left(point)
bool = .true.
20 if(k.eq.0) go to 50
- if(info(k)-jbind(niveau)) 30,40,50
+ if (info(k)-jbind(niveau).lt.0) go to 30
+ if (info(k)-jbind(niveau).eq.0) go to 40
+ go to 50
30 point = k
k = right(point)
bool = .false.
Modified: trunk/Lib/interpolate/fitpack/fpchep.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpchep.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpchep.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -66,7 +66,8 @@
70 i = i+1
if(i.gt.mm) go to 120
i2 = i-m1
- if(i2) 80,80,90
+ if (i2.le.0) go to 80
+ go to 90
80 xi = x(i)
go to 100
90 xi = x(i2)+per
Modified: trunk/Lib/interpolate/fitpack/fpfrno.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpfrno.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpfrno.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -26,7 +26,9 @@
i = l
j = j+1
go to 20
- 30 if(i-count) 110,100,40
+ 30 if (i.lt.count) go to 110
+ if (i.eq.count) go to 100
+ go to 40
40 if(up(count).eq.0) go to 50
count = count+1
go to 30
Modified: trunk/Lib/interpolate/fitpack/fpintb.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpintb.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpintb.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -39,7 +39,9 @@
a = x
b = y
min = 0
- if(a-b) 30,160,20
+ if (a.lt.b) go to 30
+ if (a.eq.b) go to 160
+ go to 20
20 a = y
b = x
min = 1
Modified: trunk/Lib/interpolate/fitpack/fppasu.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fppasu.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fppasu.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -256,7 +256,9 @@
ier = 0
c adjust the parameter reducu or reducv according to the direction
c in which the last added knots were located.
- if(lastdi) 150,170,160
+ if (lastdi.lt.0) go to 150
+ if (lastdi.eq.0) go to 170
+ go to 160
150 reducu = fpold-fp
go to 170
160 reducv = fpold-fp
@@ -276,7 +278,9 @@
rn = nplusv
if(reducv.gt.acc) npl1 = rn*fpms/reducv
nplv = min0(nplusv*2,max0(npl1,nplusv/2,1))
- 190 if(nplu-nplv) 210,200,230
+ 190 if (nplu.lt.nplv) go to 210
+ if (nplu.eq.nplv) go to 200
+ go to 230
200 if(lastdi.lt.0) go to 230
210 if(nu.eq.nue) go to 230
c addition in the u-direction.
Modified: trunk/Lib/interpolate/fitpack/fppogr.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fppogr.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fppogr.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -266,7 +266,9 @@
ier = 0
c adjust the parameter reducu or reducv according to the direction
c in which the last added knots were located.
- if(lastdi) 160,155,170
+ if (lastdi.lt.0) go to 160
+ if (lastdi.eq.0) go to 155
+ go to 170
155 nplv = 3
idd(2) = ider(2)
fpold = fp
@@ -291,7 +293,9 @@
if(reducv.gt.acc) npl1 = rn*fpms/reducv
nplv = min0(nplusv*2,max0(npl1,nplusv/2,1))
c test whether we are going to add knots in the u- or v-direction.
- 190 if(nplu-nplv) 210,200,230
+ 190 if (nplu.lt.nplv) go to 210
+ if (nplu.eq.nplv) go to 200
+ go to 230
200 if(lastdi.lt.0) go to 230
210 if(nu.eq.nue) go to 230
c addition in the u-direction.
Modified: trunk/Lib/interpolate/fitpack/fppola.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fppola.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fppola.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -52,7 +52,8 @@
acc = tol*s
if(iopt1.eq.0) go to 10
if(s.lt.sup) then
- if(nv-nvmin) 70,90,90
+ if (nv.lt.nvmin) go to 70
+ go to 90
endif
c if iopt1 = 0 we begin by computing the weighted least-squares
c polymomial of the form
@@ -419,11 +420,13 @@
430 call fprppo(nu,nv,iopt2,iopt3,cosi,ratio,c,ff,ncoff)
c test whether the least-squares spline is an acceptable solution.
if(iopt1.lt.0) then
- if(fp) 970,970,980
+ if (fp.le.0) go to 970
+ go to 980
endif
fpms = fp-s
if(abs(fpms).le.acc) then
- if(fp) 970,970,980
+ if (fp.le.0) go to 970
+ go to 980
endif
c if f(p=inf) < s, accept the choice of knots.
if(fpms.lt.0.) go to 580
@@ -641,7 +644,8 @@
piv = h(1)
i2 = min0(iband1,ncof-irot)
if(piv.eq.0.) then
- if(i2) 720,720,690
+ if (i2.le.0) go to 720
+ go to 690
endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
@@ -706,7 +710,8 @@
piv = h(1)
i2 = min0(iband3,ncof-irot)
if(piv.eq.0.) then
- if(i2) 810,810,780
+ if (i2.le.0) go to 810
+ go to 780
endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
Modified: trunk/Lib/interpolate/fitpack/fpregr.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpregr.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpregr.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -230,7 +230,9 @@
ier = 0
c adjust the parameter reducx or reducy according to the direction
c in which the last added knots were located.
- if(lastdi) 150,170,160
+ if (lastdi.lt.0) go to 150
+ if (lastdi.eq.0) go to 170
+ go to 160
150 reducx = fpold-fp
go to 170
160 reducy = fpold-fp
@@ -250,7 +252,9 @@
rn = nplusy
if(reducy.gt.acc) npl1 = rn*fpms/reducy
nply = min0(nplusy*2,max0(npl1,nplusy/2,1))
- 190 if(nplx-nply) 210,200,230
+ 190 if (nplx.lt.nply) go to 210
+ if (nplx.eq.nply) go to 200
+ go to 230
200 if(lastdi.lt.0) go to 230
210 if(nx.eq.nxe) go to 230
c addition in the x-direction.
Modified: trunk/Lib/interpolate/fitpack/fpseno.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpseno.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpseno.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -25,7 +25,8 @@
20 k = right(merk)
if(k.ne.0) go to 30
merk = up(merk)
- if(merk-1) 40,40,20
+ if (merk.le.1) go to 40
+ go to 20
30 merk = k
k = left(merk)
if(k.ne.0) go to 30
Modified: trunk/Lib/interpolate/fitpack/fpspgr.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpspgr.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpspgr.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -294,7 +294,9 @@
ier = 0
c adjust the parameter reducu or reducv according to the direction
c in which the last added knots were located.
- if(lastdi) 160,155,170
+ if (lastdi.lt.0) go to 160
+ if (lastdi.eq.0) go to 155
+ go to 170
155 nplv = 3
idd(2) = ider(2)
idd(4) = ider(4)
@@ -320,7 +322,9 @@
if(reducv.gt.acc) npl1 = rn*fpms/reducv
nplv = min0(nplusv*2,max0(npl1,nplusv/2,1))
c test whether we are going to add knots in the u- or v-direction.
- 190 if(nplu-nplv) 210,200,230
+ 190 if (nplu.lt.nplv) go to 210
+ if (nplu.eq.nplv) go to 200
+ go to 230
200 if(lastdi.lt.0) go to 230
210 if(nu.eq.nue) go to 230
c addition in the u-direction.
Modified: trunk/Lib/interpolate/fitpack/fpsphe.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpsphe.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpsphe.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -45,7 +45,8 @@
acc = tol*s
if(iopt.eq.0) go to 10
if(s.lt.sup) then
- if(np-11) 60,70,70
+ if (np.lt.11) go to 60
+ go to 70
endif
c if iopt=0 we begin by computing the weighted least-squares polynomial
c of the form
@@ -369,11 +370,13 @@
390 call fprpsp(nt,np,coco,cosi,c,ff,ncoff)
c test whether the least-squares spline is an acceptable solution.
if(iopt.lt.0) then
- if(fp) 970,970,980
+ if (fp.le.0) go to 970
+ go to 980
endif
fpms = fp-s
if(abs(fpms).le.acc) then
- if(fp) 970,970,980
+ if (fp.le.0) go to 970
+ go to 980
endif
c if f(p=inf) < s, accept the choice of knots.
if(fpms.lt.0.) go to 580
@@ -574,7 +577,8 @@
piv = h(1)
i2 = min0(iband1,ncof-irot)
if(piv.eq.0.) then
- if(i2) 720,720,690
+ if (i2.le.0) go to 720
+ go to 690
endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
@@ -631,7 +635,8 @@
piv = h(1)
i2 = min0(iband3,ncof-irot)
if(piv.eq.0.) then
- if(i2) 810,810,780
+ if (i2.le.0) go to 810
+ go to 780
endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),co,si)
Modified: trunk/Lib/interpolate/fitpack/fpsurf.f
===================================================================
--- trunk/Lib/interpolate/fitpack/fpsurf.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/fpsurf.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -135,7 +135,9 @@
ty(i) = store
70 continue
n1 = n+1
- if(nx-ny) 80,120,100
+ if (nx.lt.ny) go to 80
+ if (nx.eq.ny) go to 120
+ go to 100
80 do 90 i=n1,ny
tx(i) = ty(i)
90 continue
@@ -287,7 +289,8 @@
if(iopt.lt.0) go to 820
fpms = fp-s
if(abs(fpms).le.acc) then
- if(fp) 815,815,820
+ if (fp.le.0) go to 815
+ go to 820
endif
c test whether we can accept the choice of knots.
if(fpms.lt.0.) go to 430
@@ -467,7 +470,8 @@
piv = h(1)
i2 = min0(iband1,ncof-irot)
if(piv.eq.0.) then
- if(i2) 550,550,520
+ if (i2.le.0) go to 550
+ go to 520
endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),cos,sin)
@@ -509,7 +513,8 @@
piv = h(1)
i2 = min0(iband3,ncof-irot)
if(piv.eq.0.) then
- if(i2) 630,630,600
+ if (i2.le.0) go to 630
+ go to 600
endif
c calculate the parameters of the givens transformation.
call fpgivs(piv,q(irot,1),cos,sin)
@@ -654,7 +659,9 @@
ty(i) = store
870 continue
n1 = n+1
- if(nx-ny) 880,920,900
+ if (nx.lt.ny) go to 880
+ if (nx.eq.ny) go to 920
+ go to 900
880 do 890 i=n1,ny
tx(i) = ty(i)
890 continue
Modified: trunk/Lib/interpolate/fitpack/parcur.f
===================================================================
--- trunk/Lib/interpolate/fitpack/parcur.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/parcur.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -315,7 +315,8 @@
j = j-1
60 continue
call fpchec(u,m,t,n,k,ier)
- if(ier) 90,80,90
+ if (ier.eq.0) go to 80
+ go to 90
70 if(s.lt.0.) go to 90
if(s.eq.0. .and. nest.lt.(m+k1)) go to 90
ier = 0
Modified: trunk/Lib/interpolate/fitpack/parder.f
===================================================================
--- trunk/Lib/interpolate/fitpack/parder.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/parder.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -94,11 +94,15 @@
lwest = nc +(kx1-nux)*mx+(ky1-nuy)*my
if(lwrk.lt.lwest) go to 400
if(kwrk.lt.(mx+my)) go to 400
- if(mx-1) 400,30,10
+ if (mx.lt.1) go to 400
+ if (mx.eq.1) go to 30
+ go to 10
10 do 20 i=2,mx
if(x(i).lt.x(i-1)) go to 400
20 continue
- 30 if(my-1) 400,60,40
+ 30 if (my.lt.1) go to 400
+ if (my.eq.1) go to 60
+ go to 40
40 do 50 i=2,my
if(y(i).lt.y(i-1)) go to 400
50 continue
Modified: trunk/Lib/interpolate/fitpack/parsur.f
===================================================================
--- trunk/Lib/interpolate/fitpack/parsur.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/parsur.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -367,7 +367,8 @@
tv(l3) = tv(l1)+perv
90 continue
call fpchep(v,mv,tv,nv,3,ier)
- if(ier) 200,150,200
+ if (ier.eq.0) go to 150
+ go to 200
100 if(s.lt.0.) go to 200
if(s.eq.0. .and. (nuest.lt.(mu+4+2*ipar(1)) .or.
* nvest.lt.(mv+4+2*ipar(2))) )go to 200
Modified: trunk/Lib/interpolate/fitpack/percur.f
===================================================================
--- trunk/Lib/interpolate/fitpack/percur.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/percur.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -253,7 +253,8 @@
t(i1) = t(j1)+per
20 continue
call fpchep(x,m,t,n,k,ier)
- if(ier) 50,40,50
+ if (ier.eq.0) go to 40
+ go to 50
30 if(s.lt.0.) go to 50
if(s.eq.0. .and. nest.lt.(m+2*k)) go to 50
ier = 0
Modified: trunk/Lib/interpolate/fitpack/pogrid.f
===================================================================
--- trunk/Lib/interpolate/fitpack/pogrid.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/pogrid.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -442,7 +442,8 @@
135 continue
wrk(l) = ve
call fpchep(wrk(9),mv+1,tv,nv,3,ier)
- if(ier) 200,150,200
+ if (ier.eq.0) go to 150
+ go to 200
140 if(s.lt.0.) go to 200
if(s.eq.0. .and. (nuest.lt.(mu+5+iopt(2)+iopt(3)) .or.
* nvest.lt.(mv+7)) ) go to 200
Modified: trunk/Lib/interpolate/fitpack/regrid.f
===================================================================
--- trunk/Lib/interpolate/fitpack/regrid.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/regrid.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -329,7 +329,8 @@
j = j-1
40 continue
call fpchec(y,my,ty,ny,ky,ier)
- if(ier) 70,60,70
+ if (ier.eq.0) go to 60
+ go to 70
50 if(s.lt.0.) go to 70
if(s.eq.0. .and. (nxest.lt.(mx+kx1) .or. nyest.lt.(my+ky1)) )
* go to 70
Modified: trunk/Lib/interpolate/fitpack/spgrid.f
===================================================================
--- trunk/Lib/interpolate/fitpack/spgrid.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/spgrid.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -476,7 +476,8 @@
135 continue
wrk(l) = ve
call fpchep(wrk(13),mv+1,tv,nv,3,ier)
- if(ier) 200,150,200
+ if (ier.eq.0) go to 150
+ go to 200
140 if(s.lt.0.) go to 200
if(s.eq.0. .and. (nuest.lt.(mu+6+iopt(2)+iopt(3)) .or.
* nvest.lt.(mv+7)) ) go to 200
Modified: trunk/Lib/interpolate/fitpack/surev.f
===================================================================
--- trunk/Lib/interpolate/fitpack/surev.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/interpolate/fitpack/surev.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -87,11 +87,15 @@
muv = mu+mv
if(lwrk.lt.4*muv) go to 100
if(kwrk.lt.muv) go to 100
- if(mu-1) 100,30,10
+ if (mu.lt.1) go to 100
+ if (mu.eq.1) go to 30
+ go to 10
10 do 20 i=2,mu
if(u(i).lt.u(i-1)) go to 100
20 continue
- 30 if(mv-1) 100,60,40
+ 30 if (mv.lt.1) go to 100
+ if (mv.eq.1) go to 60
+ go to 40
40 do 50 i=2,mv
if(v(i).lt.v(i-1)) go to 100
50 continue
Modified: trunk/Lib/sandbox/odr/odrpack/d_lpkbls.f
===================================================================
--- trunk/Lib/sandbox/odr/odrpack/d_lpkbls.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/sandbox/odr/odrpack/d_lpkbls.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -136,7 +136,9 @@
IF(N.LE.0.OR.DA.EQ.0.D0) RETURN
- IF(INCX.EQ.INCY) IF(INCX-1) 5,20,60
+ IF (INCX.EQ.INCY) IF(INCX.lt.1) GOTO 5
+ IF (INCX.EQ.INCY) IF(INCX.eq.1) GOTO 20
+ GOTO 60
5 CONTINUE
C CODE FOR NONEQUAL OR NONPOSITIVE INCREMENTS.
@@ -481,7 +483,9 @@
IF(N.LE.0)RETURN
- IF(INCX.EQ.INCY) IF(INCX-1) 5,20,60
+ IF (INCX.EQ.INCY) IF(INCX.lt.1) GOTO 5
+ IF (INCX.EQ.INCY) IF(INCX.eq.1) GOTO 20
+ GOTO 60
5 CONTINUE
C CODE FOR UNEQUAL OR NONPOSITIVE INCREMENTS.
@@ -585,7 +589,9 @@
DDOT = 0.D0
IF(N.LE.0)RETURN
- IF(INCX.EQ.INCY) IF(INCX-1) 5,20,60
+ IF (INCX.EQ.INCY) IF(INCX.lt.1) GOTO 5
+ IF (INCX.EQ.INCY) IF(INCX.eq.1) GOTO 20
+ GOTO 60
5 CONTINUE
C CODE FOR UNEQUAL OR NONPOSITIVE INCREMENTS.
@@ -1766,7 +1772,9 @@
IF(N.LE.0)RETURN
- IF(INCX.EQ.INCY) IF(INCX-1) 5,20,60
+ IF (INCX.EQ.INCY) IF(INCX.lt.1) GOTO 5
+ IF (INCX.EQ.INCY) IF(INCX.eq.1) GOTO 20
+ GOTO 60
5 CONTINUE
C CODE FOR UNEQUAL OR NONPOSITIVE INCREMENTS.
Modified: trunk/Lib/special/cdflib/gam1.f
===================================================================
--- trunk/Lib/special/cdflib/gam1.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/special/cdflib/gam1.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -35,7 +35,9 @@
t = a
d = a - 0.5D0
IF (d.GT.0.0D0) t = d - 0.5D0
- IF (t) 40,10,20
+ IF (t.lt.0) GO TO 40
+ IF (t.eq.0) GO TO 10
+ GO TO 20
C
10 gam1 = 0.0D0
RETURN
Modified: trunk/Lib/special/cdflib/gamma_fort.f
===================================================================
--- trunk/Lib/special/cdflib/gamma_fort.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/special/cdflib/gamma_fort.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -63,7 +63,9 @@
C
C LET T BE THE PRODUCT OF A-J WHEN A .GE. 2
C
- IF (m) 40,30,10
+ IF (m.lt.0) GO TO 40
+ IF (m.eq.0) GO TO 30
+ GO TO 10
10 DO 20 j = 1,m
x = x - 1.0D0
t = x*t
Modified: trunk/Lib/special/cdflib/gratio.f
===================================================================
--- trunk/Lib/special/cdflib/gratio.f 2006-08-14 01:26:54 UTC (rev 2159)
+++ trunk/Lib/special/cdflib/gratio.f 2006-08-14 04:22:28 UTC (rev 2160)
@@ -317,7 +317,9 @@
u = 1.0D0/a
z = sqrt(z+z)
IF (l.LT.1.0D0) z = -z
- IF (iop-2) 280,290,300
+ IF (iop.lt.2) GO TO 280
+ IF (iop.eq.2) GO TO 290
+ GO TO 300
C
280 IF (abs(s).LE.1.D-3) GO TO 340
c0 = ((((((((((((d0(13)*z+d0(12))*z+d0(11))*z+d0(10))*z+d0(9))*z+
@@ -363,7 +365,9 @@
u = 1.0D0/a
z = sqrt(z+z)
IF (l.LT.1.0D0) z = -z
- IF (iop-2) 340,350,360
+ IF (iop.lt.2) GO TO 340
+ IF (iop.eq.2) GO TO 350
+ GO TO 360
C
340 c0 = ((((((d0(7)*z+d0(6))*z+d0(5))*z+d0(4))*z+d0(3))*z+d0(2))*z+
+ d0(1))*z - third
From scipy-svn at scipy.org Mon Aug 14 17:03:08 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Mon, 14 Aug 2006 16:03:08 -0500 (CDT)
Subject: [Scipy-svn] r2161 - in trunk/Lib/stsci: convolve/lib image/lib
Message-ID: <20060814210308.1FFC039C045@new.scipy.org>
Author: oliphant
Date: 2006-08-14 16:02:53 -0500 (Mon, 14 Aug 2006)
New Revision: 2161
Modified:
trunk/Lib/stsci/convolve/lib/Convolve.py
trunk/Lib/stsci/image/lib/_image.py
Log:
Fix up imports in stsci
Modified: trunk/Lib/stsci/convolve/lib/Convolve.py
===================================================================
--- trunk/Lib/stsci/convolve/lib/Convolve.py 2006-08-14 04:22:28 UTC (rev 2160)
+++ trunk/Lib/stsci/convolve/lib/Convolve.py 2006-08-14 21:02:53 UTC (rev 2161)
@@ -1,6 +1,6 @@
import numpy as num
import _correlate
-import numpy.dft as dft
+import numpy.fft as dft
import iraf_frame
VALID = 0
Modified: trunk/Lib/stsci/image/lib/_image.py
===================================================================
--- trunk/Lib/stsci/image/lib/_image.py 2006-08-14 04:22:28 UTC (rev 2160)
+++ trunk/Lib/stsci/image/lib/_image.py 2006-08-14 21:02:53 UTC (rev 2161)
@@ -1,6 +1,6 @@
import numpy as num
-import scipy.sandbox.stsci.convolve as convolve
-import scipy.sandbox.stsci.convolve._correlate as _correlate
+import scipy.stsci.convolve as convolve
+import scipy.stsci.convolve._correlate as _correlate
MLab=num
def _translate(a, dx, dy, output=None, mode="nearest", cval=0.0):
From scipy-svn at scipy.org Mon Aug 14 19:19:29 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Mon, 14 Aug 2006 18:19:29 -0500 (CDT)
Subject: [Scipy-svn] r2162 - trunk/Lib/io
Message-ID: <20060814231929.3AB9839C044@new.scipy.org>
Author: stefan
Date: 2006-08-14 18:19:23 -0500 (Mon, 14 Aug 2006)
New Revision: 2162
Modified:
trunk/Lib/io/mio.py
Log:
Add 64-bit support to mio [for Matthew Brett].
Modified: trunk/Lib/io/mio.py
===================================================================
--- trunk/Lib/io/mio.py 2006-08-14 21:02:53 UTC (rev 2161)
+++ trunk/Lib/io/mio.py 2006-08-14 23:19:23 UTC (rev 2162)
@@ -38,8 +38,8 @@
mtype = 'i'
elif mtype in ['I','uint','uint32','unsigned int']:
mtype = 'I'
- elif mtype in ['l','long','int32','integer*4']:
- mtype = 'l'
+ elif mtype in ['u4','int32','integer*4']:
+ mtype = 'u4'
elif mtype in ['f','float','float32','real*4', 'real']:
mtype = 'f'
elif mtype in ['d','double','float64','real*8', 'double precision']:
@@ -154,7 +154,7 @@
unsigned short : 'H', 'ushort','uint16','unsigned short'
int : 'i', 'int'
unsigned int : 'I', 'uint32','uint','unsigned int'
- long : 'l', 'long', 'int32', 'integer*4'
+ int32 : 'u4', 'int32', 'integer*4'
float : 'f', 'float', 'float32', 'real*4'
double : 'd', 'double', 'float64', 'real*8'
complex float : 'F', 'complex float', 'complex*8', 'complex64'
@@ -461,7 +461,7 @@
miUINT8 : ('miUINT8', 1,'B'),
miINT16 : ('miINT16', 2,'h'),
miUINT16 :('miUINT16',2,'H'),
- miINT32 : ('miINT32',4,'l'),
+ miINT32 : ('miINT32',4,'u4'),
miUINT32 : ('miUINT32',4,'I'),
miSINGLE : ('miSINGLE',4,'f'),
miDOUBLE : ('miDOUBLE',8,'d'),
@@ -470,7 +470,7 @@
miMATRIX : ('miMATRIX',0,None),
miUTF8 : ('miUTF8',1,'b'),
miUTF16 : ('miUTF16',2,'h'),
- miUTF32 : ('miUTF32',4,'l'),
+ miUTF32 : ('miUTF32',4,'u4'),
}
''' Before release v7.1 (release 14) matlab used the system default
@@ -567,11 +567,13 @@
try:
" ".encode(en)
except LookupError:
- raise ValueError, 'Character encoding %s not supported' % en
+ raise TypeError, 'Character encoding %s not supported' % en
if dtype == miUINT16:
char_len = len(" ".encode(en)) - len(" ".encode(en))
if char_len == 1: # Need to downsample from 16 bit
result = result.astype(uint8)
+ elif char_len != 2:
+ raise TypeError, 'miUNIT16 type cannot use >2 bytes encoding'
result = squeeze(transpose(reshape(result,tupdims)))
dims = result.shape
if len(dims) >= 2: # return array of strings
@@ -590,7 +592,7 @@
except KeyError:
result = result + 1j*imag
result = squeeze(transpose(reshape(result,tupdims)))
-
+
elif dclass == mxCELL_CLASS:
length = product(dims)
result = empty(length, dtype=object)
@@ -713,7 +715,7 @@
fid.zbuffer.fill(fid.raw_read(numbytes))
_skip_padding(fid, numbytes, 8)
return _get_element(fid.zbuffer, return_name_dtype)
- if dtype != miMATRIX: # basic data type
+ if dtype != miMATRIX: # therefore basic data type
try:
el = fid.read(numbytes,miDataTypes[dtype][2],c_is_b=1)
except KeyError:
@@ -895,7 +897,7 @@
This saves the arrayobjects in the given dictionary to a matlab Version 4
style .mat file.
"""
- storage = {'D':0,'d':0,'F':1,'f':1,'l':2,'i':2,'h':3,'B':5}
+ storage = {'D':0,'d':0,'F':1,'f':1,'u4':2,'i':2,'h':3,'B':5}
if filename[-4:] != ".mat":
filename = filename + ".mat"
fid = fopen(filename,'wb')
From scipy-svn at scipy.org Tue Aug 15 08:01:49 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Tue, 15 Aug 2006 07:01:49 -0500 (CDT)
Subject: [Scipy-svn] r2163 - trunk/Lib/signal
Message-ID: <20060815120149.80E7F39C010@new.scipy.org>
Author: stefan
Date: 2006-08-15 07:01:44 -0500 (Tue, 15 Aug 2006)
New Revision: 2163
Modified:
trunk/Lib/signal/signaltools.py
Log:
Convert remez input argument to array.
Modified: trunk/Lib/signal/signaltools.py
===================================================================
--- trunk/Lib/signal/signaltools.py 2006-08-14 23:19:23 UTC (rev 2162)
+++ trunk/Lib/signal/signaltools.py 2006-08-15 12:01:44 UTC (rev 2163)
@@ -422,7 +422,7 @@
if weight is None:
weight = [1] * len(desired)
- bands = bands.copy()
+ bands = asarray(bands).copy()
return sigtools._remez(numtaps, bands, desired, weight, tnum, Hz,
maxiter, grid_density)
From scipy-svn at scipy.org Fri Aug 18 11:32:50 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 18 Aug 2006 10:32:50 -0500 (CDT)
Subject: [Scipy-svn] r2164 - trunk/Lib/sparse
Message-ID: <20060818153250.8A01539C107@new.scipy.org>
Author: edschofield
Date: 2006-08-18 10:32:46 -0500 (Fri, 18 Aug 2006)
New Revision: 2164
Modified:
trunk/Lib/sparse/sparse.py
Log:
Removed stray breakpoint in sparse.py
Modified: trunk/Lib/sparse/sparse.py
===================================================================
--- trunk/Lib/sparse/sparse.py 2006-08-15 12:01:44 UTC (rev 2163)
+++ trunk/Lib/sparse/sparse.py 2006-08-18 15:32:46 UTC (rev 2164)
@@ -2497,8 +2497,6 @@
elif operator.isSequenceType(i):
seq = i
else:
- import pdb
- pdb.set_trace()
raise IndexError, "invalid index"
try:
if not len(x) == len(seq):
From scipy-svn at scipy.org Fri Aug 18 12:39:23 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 18 Aug 2006 11:39:23 -0500 (CDT)
Subject: [Scipy-svn] r2165 - trunk/Lib/sandbox/ann
Message-ID: <20060818163923.9ED7039C089@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-18 11:39:21 -0500 (Fri, 18 Aug 2006)
New Revision: 2165
Added:
trunk/Lib/sandbox/ann/rbf.py
Log:
New start with RBF net. Will finish this Sunday.
Added: trunk/Lib/sandbox/ann/rbf.py
===================================================================
--- trunk/Lib/sandbox/ann/rbf.py 2006-08-18 15:32:46 UTC (rev 2164)
+++ trunk/Lib/sandbox/ann/rbf.py 2006-08-18 16:39:21 UTC (rev 2165)
@@ -0,0 +1,39 @@
+# rbf2.py
+# tilde
+# 2006/08/18
+# - new attempt at RBF net to get my ideas straight...deadline is fast approaching!
+
+from numpy import *
+
+class rbf:
+
+ _type = 'rbf'
+
+ def __init__(nin,nhid,nout,trndata):
+ # set easy params
+ self.nin = nin
+ self.nhid = nhid
+ self.nout = nout
+ # choose subset (1/5?) of training data for basis fxn centers and
+ self.centers = []
+ for i in trndata:
+ if random.random < 0.2:
+ self.centers.append(i)
+ # set common variance proportional to max dist between centers
+ d_max = 0.0
+ for i in self.centers:
+ for j in self.centers:
+ tmp = sqrt((i-j)**2)
+ if tmp > d_max:
+ d_max = tmp
+ self.variance = d_max/2.0*size(trndata)
+
+
+ def fwd(self,inputs):
+ """ Propagate values forward through the net.
+ Inputs:
+ inputs - vector of input values
+ """
+ z = exp((-1.0/(2*self.variance))*
+ o = dot(z,self.w) + dot(ones((len(z),1)),self.b)
+
From scipy-svn at scipy.org Fri Aug 18 12:40:57 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 18 Aug 2006 11:40:57 -0500 (CDT)
Subject: [Scipy-svn] r2166 - trunk/Lib/sandbox/ann
Message-ID: <20060818164057.92F8C39C0D4@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-18 11:40:55 -0500 (Fri, 18 Aug 2006)
New Revision: 2166
Modified:
trunk/Lib/sandbox/ann/mlp.py
Log:
Heavily refactored MLP. Only leastsq used for optimization.
Modified: trunk/Lib/sandbox/ann/mlp.py
===================================================================
--- trunk/Lib/sandbox/ann/mlp.py 2006-08-18 16:39:21 UTC (rev 2165)
+++ trunk/Lib/sandbox/ann/mlp.py 2006-08-18 16:40:55 UTC (rev 2166)
@@ -1,8 +1,10 @@
# mlp.py
# by: Fred Mailhot
-# last mod: 2006-06-21
+# last mod: 2006-08-18
-from scipy import *
+from scipy import * # I'll want to change this for numpy eventually
+from scipy.optimize import leastsq
+import copy
class mlp:
"""Class to define, train and test a multilayer perceptron."""
@@ -10,7 +12,6 @@
_type = 'mlp'
_outfxns = ('linear','logistic','softmax')
_algs = ('simplex','powell','bfgs','cg','ncg','leastsq')
- _options = zeros(18) # don't know if I'll use this or not
def __init__(self,nin,nhid,nout,fxn,alg='leastsq',w=None):
""" Set up instance of mlp. Initial weights are drawn from a
@@ -47,7 +48,6 @@
self.w2 = randn(nhid,nout)/sqrt(nhid+1)
self.b2 = randn(1,nout)/sqrt(nhid+1)
self.packwts()
- self.options = self._options
def unpackwts(self):
""" Decompose 1-d vector of weights w into appropriate weight
@@ -96,138 +96,55 @@
return array(y)
def errfxn(self,w,x,t):
- """ Implementing 'canonical' error fxns for each of the output
- activation fxns (see Nabney pp.123-128,156-158 for more info).
- Borrowing heavily from the Netlab implementations for now.
+ """ Return vector of squared-errors for the leastsq optimizer
"""
y = self.fwd(x,w)
- if self.alg == 'leastsq':
- return sum(array(y-t)**2,axis=1)
- if self.outfxn == 'linear':
- # calculate & return SSE
- return 0.5*sum(sum(array(y-t)**2,axis=1))
- elif self.outfxn == 'logistic':
- # calculate & return x-entropy
- return -1.0*sum(sum(t*log2(y)+(1-t)*log2(1-y),axis=1))
- elif self.outfxn == 'softmax':
- # calculate & return entropy
- return -1.0*sum(sum(t*log2(y),axis=1))
- else:
- # this shouldn't happen...return SSE as a reasonable default
- return 0.5*sum(sum((y - t)**2,axis=1))
-
- def errgrad(self,w,x,t):
- """ Error gradient fxns for canonical error fxns (see above, and
- Nabney pp.127-128,156-158)
- ** Includes error-backpropagation (Netlab splits these fxns)
- Inputs:
- w - weight vector (don't really know why I pass this around...)
- x - input patterns
- t - targets
- Outputs:
- g - gradient
-
-
- ***N.B.*********************************************************
- I'M DOING SOMETHING WRONG HERE, EVIDENTLY, AS THE OPTIMIZATION
- FXNS THAT DEPEND ON A GRADIENT FXN AREN'T DOING WHAT THEY'RE
- SUPPOSED TO (i.e. they're not optimizing anything)
- ****************************************************************
- """
- # get output and hidden activation patterns for a full forward pass
- y,z = self.fwd(x,w,True)
- outdeltas = y-t
-
- # compute second-layer weight and bias gradients
- # THIS IS AN AWFUL-LOOKING HACK, BUT I HAVEN'T FOUND A BETTER
- # WAY TO DO IT, YET...
- w2grad = zeros((shape(x)[0],shape(z)[1]*shape(outdeltas)[1]),dtype=Float)
- for i in range(shape(w2grad)[0]):
- w2grad[i] = outer(outdeltas[i],z[i]).reshape(size(outdeltas[i])*size(z[i]))
- w2grad = sum(w2grad)
- b2grad = sum(outdeltas)
- # backpropagate...AGAIN WITH THE FUGLY HACK...PLUS I HAVE TO EXPLICITLY
- # LOOP OVER ALL INPUT PATTERNS....*bleah*...
- hiddeltas = zeros((shape(x)[0],self.nhid),dtype=Float)
- for i in range(shape(hiddeltas)[0]):
- for j in range(shape(hiddeltas)[1]):
- hiddeltas[i][j] = (1-z[i][j]**2)*sum(diag(outer(self.w2[j],outdeltas[i])))
- # compute first-layer weight and bias gradients
- w1grad = zeros((shape(x)[0],shape(x)[1]*shape(hiddeltas)[1]),dtype=Float)
- for i in range(shape(w1grad)[0]):
- w1grad[i] = outer(hiddeltas[i],x[i]).reshape(size(hiddeltas[i])*size(x[i]))
- w1grad = sum(w1grad)
- b1grad = sum(hiddeltas)
- # pack into a single vector and return it
- g = hstack([w1grad.reshape(size(w1grad)),
- b1grad.reshape(size(b1grad)),
- w2grad.reshape(size(w2grad)),
- b2grad.reshape(size(b2grad))])
- return g
-
+ return sum(array(y-t)**2,axis=1)
+
def train(self,x,t):
- """ Train a multilayer perceptron with a user-specified algorithm.
- Inputs:
+ """ Train a multilayer perceptron using scipy's leastsq optimizer
+ Input:
x - matrix of input data
t - matrix of target outputs
- alg - training algorithm, one of {simplex,bfgs,ncg,leastsq}
- Outputs:
- w - post-optimization weight vector
+ Returns:
+ post-optimization weight vector
"""
- # N.B. doing nothing with the specified algorithm for now,
- # just optimizing with the leastsq fxn in scipy.optimize
- if self.alg == 'simplex':
- from scipy.optimize import fmin
- w = fmin(self.errfxn,self.w_packed,args=(x,t),full_output=True)
- elif self.alg == 'bfgs':
- from scipy.optimize import fmin_bfgs
- # version of this that uses errgrad doesn't converge
- #w = fmin_bfgs(self.errfxn,self.w_packed,fprime=self.errgrad,args=(x,t),full_output=True)
- w = fmin_bfgs(self.errfxn,self.w_packed,args=(x,t),full_output=True)
- elif self.alg == 'cg':
- from scipy.optimize import fmin_cg
- #w = fmin_cg(self.errfxn,self.w_packed,self.errgrad,args=(x,t),full_output=True)
- w = fmin_cg(self.errfxn,self.w_packed,args=(x,t),full_output=True)
- elif self.alg == 'ncg':
- from scipy.optimize import fmin_ncg
- w = fmin_ncg(self.errfxn,self.w_packed,self.errgrad,args=(x,t),\
- full_output=True)
- else:
- # leastsq, or undef'd algorithm, in which case use leastsq as
- # a reasonable default
- if self.alg != 'leastsq':
- import sys
- print "Undefined algorithm, using least-squares"
- sys.stdout.flush()
- from scipy.optimize import leastsq
- w = leastsq(self.errfxn,self.w_packed,args=(x,t),\
- full_output=True)
- return w
+ # something's going wrong w/ the full_output option
+ # return leastsq(self.errfxn,self.w_packed,args=(x,t),full_output=True)
+ return leastsq(self.errfxn,self.w_packed,args=(x,t))
def main():
- import os,sys,copy
- from scipy.io import read_array, write_array
""" Approx test of module, using the oilTrn/oilTst data files that are
- distributed with Netlab. Prints a bunch of info about weight vector and
- error measures before and after optimization.
"""
- opt = raw_input("\nEnter desired optimizer (simplex,bfgs,cg,ncg,leastsq): ")
+ from scipy.io import read_array, write_array
+ # build the net
print "\nCreating 12-5-2 MLP with linear outputs"
- net = mlp(12,5,2,'linear',opt)
+ net = mlp(12,5,2,'linear')
w_init = copy.copy(net.w_packed)
+ # prep the train/test data
print "\nLoading training and test sets...",
trn_input = read_array('data/oilTrn.dat',lines=(3,-1),columns=(0,(1,12)))
trn_targs = read_array('data/oilTrn.dat',lines=(3,-1),columns=(12,-1))
tst_input = read_array('data/oilTst.dat',lines=(3,-1),columns=(0,(1,12)))
tst_targs = read_array('data/oilTst.dat',lines=(3,-1),columns=(12,-1))
print "done."
- sys.stdout.flush()
-
- print "\nInitial error: ",net.errfxn(net.w_packed,tst_input,tst_targs)
- retval = net.train(trn_input,trn_targs)
- net.w_packed = retval[0]
- print "\nFinal error: ",net.errfxn(net.w_packed,tst_input,tst_targs)
-
+ # initial squared-error
+ print "\nInitial SSE on training set: ",\
+ sum(net.errfxn(net.w_packed,trn_input,trn_targs))
+ print "\nInitial SSE on testing set: ",\
+ sum(net.errfxn(net.w_packed,tst_input,tst_targs))
+ # train the net
+ net.w_packed = net.train(trn_input,trn_targs)[0]
+ # final squared-error
+ print "\nFinal SSE on training set: ",\
+ sum(net.errfxn(net.w_packed,trn_input,trn_targs))
+ print "\nFinal SSE on testing set: ",\
+ sum(net.errfxn(net.w_packed,tst_input,tst_targs))
+ # view extended output?
+ # REMOVING THIS OPTION FOR NOW
+ #if raw_input("Do you want to see the full training output? (y/n").lower() == 'y':
+ # print retval[1]
+
if __name__ == '__main__':
main()
From scipy-svn at scipy.org Fri Aug 18 12:41:56 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 18 Aug 2006 11:41:56 -0500 (CDT)
Subject: [Scipy-svn] r2167 - trunk/Lib/sandbox/ann
Message-ID: <20060818164156.7C90939C089@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-18 11:41:53 -0500 (Fri, 18 Aug 2006)
New Revision: 2167
Modified:
trunk/Lib/sandbox/ann/srn.py
Log:
Refactoring SRN based on MLP. Simple 1-step backprop only.
Modified: trunk/Lib/sandbox/ann/srn.py
===================================================================
--- trunk/Lib/sandbox/ann/srn.py 2006-08-18 16:40:55 UTC (rev 2166)
+++ trunk/Lib/sandbox/ann/srn.py 2006-08-18 16:41:53 UTC (rev 2167)
@@ -8,19 +8,13 @@
class srn:
"""Class to define, train and test a simple recurrent network
a.k.a. 'Elman net' (cf. Elman 1991's Machine Learnig paper,inter alia)
-
- ************************* NOTA BENE 2006-06-23 ************************
- * This is obviously still very incomplete. The initial implementation *
- * will only have straightforward backprop-through-time (with the *
- * option to truncate). *
- ***********************************************************************
"""
_type = 'srn'
_outfxns = ('linear','logistic','softmax')
- _algs = ('bptt') # hopefully eventually RTRL and EKF
+ _alg = ('srn')
- def __init__(self,ni,nh,no,f,tau=-1,w=None):
+ def __init__(self,ni,nh,no,f,h=-1,w=None):
""" Set up instance of srn. Initial weights are drawn from a
zero-mean Gaussian w/ variance is scaled by fan-in.
(see Bishop 1995 for justification)
@@ -31,7 +25,6 @@
f - string description of output unit activation fxn;
one of {'linear','logistic','softmax'}
(n.b. hidden/context units use tanh)
- h - truncation constant for bptt(h)
w - initialized 1-d weight vector
"""
if f not in self._outfxns:
@@ -39,14 +32,15 @@
self.outfxn = 'linear'
else:
self.outfxn = f
+ # set up layers of units
self.ni = ni
self.nh = nh
- self.nc = nh # context units
+ self.nc = nh
self.no = no
- self.alg = self._algs[1]
self.z = zeros((h,nh),dtype=Float) # hidden activations for 1 epoch
self.c = zeros((h,nh),dtype=Float) # context activations for 1 epoch
self.o = zeros((h,no),dtype=Float) # output activiation for 1 epoch
+ self.p = zeros((nh,nw,nw),dtype=Float)
if w:
self.nw = size(w)
self.wp = w
@@ -95,10 +89,11 @@
self.b2.reshape(size(self.b2))])
def fwd(self,x,w=None,hid=False):
- """ Propagate values forward through the net. This (i) feeds the current input
- and values of the context units (i.e. hidden vals from previous time step)
- into the hidden layer, which is then (ii) fed to the output layer, and
- (iii) copied to the context layer
+ """ Propagate values forward through the net.
+ This involves the following steps:
+ (i) feeds the current input and context values to the hidden layer,
+ (ii) hidden layer net input is transformed and then sent to the outputs
+ (iii) output values are copied to the context layer
Inputs:
x - matrix of all input patterns
w - 1-d vector of weights
@@ -111,14 +106,11 @@
if wts is not None:
self.wp = w
self.unpack()
-
- # compute hidden activations
+ # compute net input to hiddens and then squash it
self.z = tanh(dot(x,self.w1) + dot(self.c,self.wc) + dot(ones((len(x),1)),self.b1))
- # copy hidden vals to context units
+ # send hidden vals to output and copy to context
+ o = dot(self.z,self.w2) + dot(ones((len(self.z),1)),self.b2)
self.c = copy.copy(self.z)
- # compute net input to output units
- o = dot(self.z,self.w2) + dot(ones((len(self.z),1)),self.b2)
-
# compute output activations
if self.outfxn == 'linear':
y = o
@@ -134,7 +126,7 @@
return array(y)
def train(self,x,t,N):
- """ The calls to the various trainig algorithms.
+ """ Train net by standard backpropagation
Inputs:
x - all input patterns
t - all target patterns
@@ -142,30 +134,47 @@
Outputs:
w - new weight vector
"""
- pass
+ for i in range(N):
+
def errfxn(self,w,x,t):
""" Error functions for each of the output-unit activation functions.
Inputs:
w - current weight vector
- x - current pattern input(s) (len(x) == tau)
+ x - current pattern input(s) (len(x) == self.h)
t - current pattern target(s)
"""
- pass
+ y,z = self.fwd(w,x,True)
+ if self.outfxn == 'linear':
+ # calculate & return SSE
+ err = 0.5*sum(sum(array(y-t)**2,axis=1))
+ elif self.outfxn == 'logistic':
+ # calculate & return x-entropy
+ err = -1.0*sum(sum(t*log2(y)+(1-t)*log2(1-y),axis=1))
+ elif self.outfxn == 'softmax':
+ # calculate & return entropy
+ err = -1.0*sum(sum(t*log2(y),axis=1))
+ else:
+ # this shouldn't happen, return SSE as safe default
+ err = 0.5*sum(sum(array(y-t)**2,axis=1))
+
+ # returning a tuple of info for now...not sure why
+ return err,y,z
def main():
""" Set up a 1-2-1 SRN to solve the temporal-XOR problem from Elman 1990.
"""
from scipy.io import read_array, write_array
- print "Creating 1-2-1 SRN for 'temporal-XOR' (sent net.trunc to 2)"
+ print "Creating 1-2-1 SRN for 'temporal-XOR' (net.h = 2)"
net = srn(1,2,1,'logistic',2)
+ print net
print "\nLoading training and test sets...",
trn_input = read_array('data/t-xor1.dat')
trn_targs = hstack([trn_input[1:],trn_input[0]])
tst_input = read_array('data/t-xor2.dat')
tst_targs = hstack([tst_input[1:],tst_input[0]])
print "done."
- N = input("Number of times to see all patterns: ")
+ N = input("Number of iterations over training set: ")
print "\nInitial error: ",net.errfxn(net.wp,tst_input,tst_targs)
net.train(trn_input,trn_targs,N)
From scipy-svn at scipy.org Sun Aug 20 02:29:30 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 20 Aug 2006 01:29:30 -0500 (CDT)
Subject: [Scipy-svn] r2168 - trunk/Lib/sandbox/ann/data
Message-ID: <20060820062930.1D6FB39C0B2@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-20 01:29:23 -0500 (Sun, 20 Aug 2006)
New Revision: 2168
Added:
trunk/Lib/sandbox/ann/data/xor-trn.dat
Log:
data files for testing
Added: trunk/Lib/sandbox/ann/data/xor-trn.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/xor-trn.dat 2006-08-18 16:41:53 UTC (rev 2167)
+++ trunk/Lib/sandbox/ann/data/xor-trn.dat 2006-08-20 06:29:23 UTC (rev 2168)
@@ -0,0 +1,15 @@
+nin 2
+nout 1
+ndata 12
+1 0 1
+0 1 1
+0 0 0
+1 1 0
+1 0 1
+0 1 1
+0 0 0
+1 1 0
+1 0 1
+0 1 1
+0 0 0
+1 1 0
From scipy-svn at scipy.org Sun Aug 20 02:30:16 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 20 Aug 2006 01:30:16 -0500 (CDT)
Subject: [Scipy-svn] r2169 - trunk/Lib/sandbox/ann/data
Message-ID: <20060820063016.531E939C016@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-20 01:30:09 -0500 (Sun, 20 Aug 2006)
New Revision: 2169
Added:
trunk/Lib/sandbox/ann/data/oil-trn.dat
trunk/Lib/sandbox/ann/data/oil-tst.dat
trunk/Lib/sandbox/ann/data/txor-trn.dat
trunk/Lib/sandbox/ann/data/txor-tst.dat
trunk/Lib/sandbox/ann/data/xor-tst.dat
Log:
more data files for testing
Added: trunk/Lib/sandbox/ann/data/oil-trn.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/oil-trn.dat 2006-08-20 06:29:23 UTC (rev 2168)
+++ trunk/Lib/sandbox/ann/data/oil-trn.dat 2006-08-20 06:30:09 UTC (rev 2169)
@@ -0,0 +1,503 @@
+ nin 12
+ nout 2
+ ndata 500
+ 3.315000e-01 2.156000e-01 6.802000e-01 1.434000e-01 6.825000e-01 2.720000e-01 6.223000e-01 2.092000e-01 7.961000e-01 1.530000e-01 5.856000e-01 2.573000e-01 3.440000e-01 1.401000e-01
+ 9.390000e-02 1.008900e+00 3.650000e-02 6.944000e-01 9.080000e-02 4.961000e-01 7.220000e-02 6.521000e-01 -1.300000e-02 6.085000e-01 6.310000e-02 6.597000e-01 5.140000e-02 4.459000e-01
+ 5.184000e-01 2.283000e-01 5.300000e-01 6.884000e-01 7.456000e-01 6.171000e-01 6.136000e-01 5.928000e-01 7.678000e-01 6.130000e-01 6.705000e-01 5.202000e-01 3.710000e-01 3.214000e-01
+ 4.208000e-01 6.740000e-01 1.651000e-01 7.592000e-01 1.810000e-01 5.448000e-01 1.707000e-01 7.554000e-01 1.635000e-01 5.492000e-01 2.598000e-01 6.455000e-01 1.667000e-01 4.177000e-01
+ 3.130000e-01 6.465000e-01 5.908000e-01 6.924000e-01 7.664000e-01 6.262000e-01 1.717700e+00 1.500000e-02 8.510000e-02 1.904600e+00 -1.650000e-02 2.210000e-02 3.378000e-01 4.184000e-01
+ 1.145800e+00 -4.670000e-02 4.056000e-01 5.662000e-01 3.123000e-01 4.580000e-01 3.636000e-01 6.134000e-01 3.305000e-01 4.132000e-01 4.167000e-01 5.514000e-01 3.249000e-01 2.790000e-01
+-1.900000e-03 1.732000e-01 5.700000e-03 4.882000e-01 2.076000e-01 3.910000e-01 8.600000e-03 1.719800e+00 2.150000e-02 -2.580000e-02 6.730000e-02 -8.290000e-02 5.100000e-02 2.123000e-01
+ 7.800000e-03 4.615000e-01 1.181000e-01 6.590000e-01 2.587000e-01 6.352000e-01 -1.910000e-02 1.749100e+00 1.098000e-01 -1.315000e-01 4.070000e-02 -4.850000e-02 6.210000e-02 3.856000e-01
+ 7.305000e-01 1.189000e-01 1.062600e+00 1.013000e-01 1.138500e+00 1.486000e-01 1.763100e+00 -4.160000e-02 2.073100e+00 -8.720000e-02 -4.390000e-02 5.300000e-02 6.070000e-01 8.130000e-02
+ 6.199000e-01 4.779000e-01 9.528000e-01 7.463000e-01 9.741000e-01 8.633000e-01 1.677100e+00 6.200000e-02 2.027100e+00 -3.010000e-02 1.510000e-02 1.714700e+00 5.065000e-01 4.589000e-01
+ 1.130800e+00 -2.860000e-02 1.000500e+00 7.387000e-01 8.390000e-01 1.874000e-01 1.084800e+00 6.374000e-01 8.534000e-01 1.373000e-01 1.042200e+00 6.836000e-01 6.215000e-01 1.323000e-01
+ 5.093000e-01 6.038000e-01 2.874000e-01 8.162000e-01 2.267000e-01 6.181000e-01 2.646000e-01 8.490000e-01 3.365000e-01 4.648000e-01 2.815000e-01 8.254000e-01 2.280000e-01 4.243000e-01
+ 7.600000e-02 5.010000e-01 1.870000e-01 7.011000e-01 1.728000e-01 8.475000e-01 2.300000e-01 6.536000e-01 1.616000e-01 8.732000e-01 1.603000e-01 7.331000e-01 9.550000e-02 4.203000e-01
+ 4.662000e-01 1.209000e-01 7.657000e-01 1.390000e-01 8.886000e-01 1.304000e-01 1.694000e+00 4.530000e-02 -1.170000e-02 2.011100e+00 -1.940000e-02 2.170000e-02 4.422000e-01 7.900000e-02
+ 1.125400e+00 -2.520000e-02 6.776000e-01 1.793000e-01 4.287000e-01 2.804000e-01 6.003000e-01 2.737000e-01 4.541000e-01 2.370000e-01 6.775000e-01 1.850000e-01 4.369000e-01 1.284000e-01
+ 3.334000e-01 5.468000e-01 6.072000e-01 7.549000e-01 6.294000e-01 9.322000e-01 5.850000e-01 7.859000e-01 6.324000e-01 9.568000e-01 6.026000e-01 7.616000e-01 3.277000e-01 4.629000e-01
+ 3.760000e-02 7.113000e-01 4.992000e-01 5.377000e-01 6.049000e-01 5.530000e-01 1.663500e+00 8.210000e-02 -1.890000e-02 2.024100e+00 1.400000e-03 -3.000000e-03 2.534000e-01 3.568000e-01
+ 1.703000e-01 2.234000e-01 2.677000e-01 3.477000e-01 2.734000e-01 4.324000e-01 1.222000e-01 5.213000e-01 2.333000e-01 4.926000e-01 2.044000e-01 4.215000e-01 1.407000e-01 2.175000e-01
+ 1.328000e-01 2.144000e-01 2.466000e-01 2.912000e-01 3.244000e-01 2.815000e-01 1.586000e-01 3.982000e-01 3.165000e-01 3.005000e-01 3.038000e-01 2.239000e-01 1.300000e-01 1.831000e-01
+ 1.106900e+00 -1.500000e-03 1.787100e+00 -7.230000e-02 1.038900e+00 7.086000e-01 1.672800e+00 7.010000e-02 1.008300e+00 5.901000e-01 1.740500e+00 -1.880000e-02 7.498000e-01 2.096000e-01
+ 1.083700e+00 2.940000e-02 6.675000e-01 5.421000e-01 5.040000e-01 3.997000e-01 7.271000e-01 4.673000e-01 6.061000e-01 2.526000e-01 7.957000e-01 3.861000e-01 4.794000e-01 1.997000e-01
+ 6.379000e-01 3.709000e-01 9.139000e-01 6.785000e-01 1.117100e+00 6.825000e-01 9.074000e-01 6.917000e-01 1.152700e+00 6.739000e-01 9.866000e-01 5.957000e-01 5.590000e-01 3.562000e-01
+ 6.520000e-02 4.575000e-01 5.170000e-01 2.900000e-01 6.257000e-01 3.041000e-01 1.700700e+00 3.410000e-02 -1.700000e-03 2.400000e-03 -4.430000e-02 5.270000e-02 2.800000e-01 1.838000e-01
+ 5.460000e-02 4.317000e-01 2.260000e-02 8.026000e-01 2.228000e-01 7.077000e-01 1.370000e-02 1.717800e+00 -5.640000e-02 6.540000e-02 -9.100000e-03 1.070000e-02 7.470000e-02 3.874000e-01
+ 6.250000e-02 1.036100e+00 -3.160000e-02 9.835000e-01 1.020000e-02 7.331000e-01 -5.260000e-02 1.005500e+00 -5.360000e-02 7.915000e-01 -2.270000e-02 9.754000e-01 3.200000e-03 5.922000e-01
+ 8.813000e-01 2.321000e-01 4.637000e-01 1.117000e-01 2.749000e-01 2.270000e-01 4.328000e-01 1.497000e-01 3.223000e-01 1.589000e-01 4.639000e-01 1.134000e-01 2.964000e-01 1.282000e-01
+ 2.830000e-02 1.087400e+00 1.069000e-01 6.261000e-01 1.089000e-01 4.879000e-01 -3.670000e-02 7.978000e-01 -6.910000e-02 6.871000e-01 4.170000e-02 7.048000e-01 3.750000e-02 4.698000e-01
+ 1.116000e+00 -1.490000e-02 1.075900e+00 6.281000e-01 6.518000e-01 9.179000e-01 9.002000e-01 8.356000e-01 6.325000e-01 8.442000e-01 8.748000e-01 8.595000e-01 5.796000e-01 3.492000e-01
+ 3.371000e-01 7.714000e-01 7.103000e-01 8.678000e-01 8.329000e-01 8.652000e-01 1.701600e+00 3.270000e-02 -1.300000e-01 2.157200e+00 -8.280000e-02 1.834700e+00 3.773000e-01 5.367000e-01
+ 7.327000e-01 3.195000e-01 9.908000e-01 6.799000e-01 1.154500e+00 7.437000e-01 1.039000e+00 6.200000e-01 1.251800e+00 6.617000e-01 9.425000e-01 7.395000e-01 5.773000e-01 3.877000e-01
+ 3.568000e-01 4.784000e-01 7.597000e-01 3.709000e-01 7.185000e-01 5.614000e-01 1.689700e+00 4.820000e-02 -5.500000e-02 2.069800e+00 1.110000e-02 -1.070000e-02 3.974000e-01 2.757000e-01
+ 8.451000e-01 2.537000e-01 1.175900e+00 3.158000e-01 1.157700e+00 4.833000e-01 1.690800e+00 5.060000e-02 1.869400e+00 1.534000e-01 -8.700000e-02 1.834000e+00 6.629000e-01 2.139000e-01
+ 1.053400e+00 6.240000e-02 9.920000e-01 7.462000e-01 6.545000e-01 9.606000e-01 9.666000e-01 7.742000e-01 7.771000e-01 7.086000e-01 9.877000e-01 7.512000e-01 6.243000e-01 3.112000e-01
+ 7.150000e-02 1.045000e+00 1.133000e-01 8.252000e-01 4.200000e-02 7.057000e-01 1.016000e-01 8.422000e-01 7.360000e-02 6.540000e-01 7.840000e-02 8.680000e-01 7.220000e-02 5.227000e-01
+ 1.002600e+00 1.198000e-01 6.942000e-01 1.048700e+00 5.669000e-01 5.787000e-01 7.905000e-01 9.402000e-01 6.875000e-01 3.929000e-01 7.361000e-01 1.000800e+00 5.116000e-01 2.856000e-01
+ 4.843000e-01 6.102000e-01 2.827000e-01 1.441700e+00 2.176000e-01 8.856000e-01 3.216000e-01 1.399100e+00 8.600000e-02 1.002300e+00 2.466000e-01 1.485100e+00 1.914000e-01 5.923000e-01
+ 3.972000e-01 1.078000e-01 5.178000e-01 2.948000e-01 5.923000e-01 3.344000e-01 5.037000e-01 3.121000e-01 6.118000e-01 3.270000e-01 5.425000e-01 2.633000e-01 3.099000e-01 1.574000e-01
+ 3.522000e-01 3.868000e-01 5.201000e-01 6.377000e-01 5.522000e-01 7.776000e-01 5.076000e-01 6.553000e-01 6.258000e-01 7.105000e-01 4.515000e-01 7.196000e-01 3.029000e-01 3.665000e-01
+ 2.230000e-01 8.879000e-01 1.593000e-01 7.129000e-01 1.089000e-01 5.914000e-01 1.294000e-01 7.501000e-01 1.590000e-01 5.180000e-01 1.132000e-01 7.677000e-01 1.232000e-01 4.428000e-01
+ 4.409000e-01 -1.820000e-02 6.190000e-01 5.930000e-02 5.689000e-01 2.286000e-01 4.717000e-01 2.311000e-01 5.974000e-01 2.056000e-01 4.849000e-01 2.192000e-01 3.067000e-01 9.330000e-02
+ 7.310000e-02 4.657000e-01 1.022000e-01 7.503000e-01 5.510000e-02 9.277000e-01 7.300000e-02 7.852000e-01 1.180000e-01 8.651000e-01 1.219000e-01 7.260000e-01 5.260000e-02 4.397000e-01
+ 6.670000e-02 5.461000e-01 4.370000e-01 4.789000e-01 5.523000e-01 4.830000e-01 1.668600e+00 7.700000e-02 1.280000e-02 1.978700e+00 3.340000e-02 -4.030000e-02 2.290000e-01 3.043000e-01
+ 8.427000e-01 2.270000e-01 1.094300e+00 3.023000e-01 1.294900e+00 2.022000e-01 1.886300e+00 -1.803000e-01 2.044700e+00 -4.780000e-02 2.900000e-03 1.732800e+00 6.900000e-01 1.222000e-01
+ 1.126600e+00 -2.560000e-02 5.215000e-01 1.210700e+00 4.669000e-01 6.685000e-01 5.571000e-01 1.170500e+00 4.676000e-01 6.308000e-01 4.948000e-01 1.244900e+00 3.906000e-01 4.083000e-01
+ 5.600000e-01 3.640000e-01 8.255000e-01 6.307000e-01 9.831000e-01 6.679000e-01 8.842000e-01 5.626000e-01 9.357000e-01 7.488000e-01 8.266000e-01 6.312000e-01 4.738000e-01 3.681000e-01
+ 4.810000e-02 1.007400e+00 4.296000e-01 9.304000e-01 4.478000e-01 1.047200e+00 1.756000e+00 -3.380000e-02 -7.480000e-02 2.089300e+00 -4.250000e-02 5.140000e-02 2.391000e-01 5.596000e-01
+ 1.095200e+00 1.350000e-02 8.862000e-01 8.475000e-01 7.144000e-01 3.892000e-01 9.740000e-01 7.529000e-01 7.114000e-01 3.571000e-01 9.248000e-01 8.077000e-01 5.859000e-01 1.979000e-01
+ 2.006000e-01 3.454000e-01 3.986000e-01 4.469000e-01 3.417000e-01 6.387000e-01 2.808000e-01 5.793000e-01 4.392000e-01 5.374000e-01 3.424000e-01 5.096000e-01 2.043000e-01 2.865000e-01
+-2.480000e-02 8.079000e-01 3.514000e-01 7.237000e-01 4.603000e-01 7.386000e-01 8.570000e-02 1.632300e+00 6.240000e-02 1.922700e+00 -2.600000e-02 3.120000e-02 1.639000e-01 4.770000e-01
+ 4.297000e-01 1.825000e-01 5.939000e-01 3.794000e-01 7.233000e-01 3.816000e-01 6.731000e-01 2.893000e-01 7.694000e-01 3.435000e-01 7.308000e-01 2.192000e-01 3.835000e-01 1.722000e-01
+ 6.357000e-01 4.547000e-01 2.637000e-01 7.217000e-01 2.175000e-01 5.563000e-01 2.751000e-01 7.127000e-01 1.261000e-01 6.451000e-01 2.460000e-01 7.426000e-01 2.248000e-01 3.850000e-01
+ 1.124800e+00 -2.590000e-02 4.916000e-01 1.229300e+00 3.932000e-01 9.462000e-01 5.271000e-01 1.185500e+00 4.211000e-01 8.591000e-01 5.142000e-01 1.206400e+00 3.246000e-01 5.502000e-01
+ 1.131100e+00 -2.980000e-02 1.013700e+00 7.144000e-01 8.036000e-01 2.317000e-01 1.076000e+00 6.498000e-01 7.927000e-01 2.099000e-01 9.650000e-01 7.713000e-01 6.183000e-01 1.358000e-01
+ 3.026000e-01 4.889000e-01 6.114000e-01 4.941000e-01 6.889000e-01 5.464000e-01 1.615600e+00 1.361000e-01 5.000000e-04 2.004300e+00 3.290000e-02 -3.970000e-02 3.152000e-01 3.408000e-01
+-1.580000e-02 4.553000e-01 1.158000e-01 6.442000e-01 3.486000e-01 5.106000e-01 -1.019000e-01 1.854600e+00 2.450000e-02 -3.050000e-02 6.260000e-02 -7.460000e-02 1.096000e-01 3.147000e-01
+-8.610000e-02 1.207600e+00 3.407000e-01 1.090100e+00 5.373000e-01 9.981000e-01 -3.530000e-02 1.776400e+00 -1.200000e-03 2.001700e+00 2.530000e-02 1.701800e+00 1.707000e-01 6.720000e-01
+ 3.425000e-01 1.699000e-01 6.039000e-01 1.853000e-01 5.608000e-01 3.606000e-01 5.748000e-01 2.185000e-01 6.062000e-01 3.205000e-01 4.801000e-01 3.313000e-01 3.026000e-01 1.613000e-01
+ 8.624000e-01 2.389000e-01 1.129600e+00 5.381000e-01 1.292500e+00 4.896000e-01 1.810500e+00 -9.300000e-02 2.041200e+00 -4.980000e-02 4.800000e-03 1.730400e+00 6.792000e-01 2.692000e-01
+-2.360000e-02 6.987000e-01 1.493000e-01 8.415000e-01 2.933000e-01 8.121000e-01 -3.410000e-02 1.772800e+00 -7.390000e-02 2.085800e+00 -5.190000e-02 6.100000e-02 1.021000e-01 4.729000e-01
+ 1.140600e+00 -3.760000e-02 5.592000e-01 1.172900e+00 3.989000e-01 8.188000e-01 6.176000e-01 1.108100e+00 4.037000e-01 7.717000e-01 5.580000e-01 1.172800e+00 4.104000e-01 4.151000e-01
+ 4.442000e-01 2.989000e-01 6.370000e-01 5.436000e-01 8.215000e-01 5.003000e-01 7.841000e-01 3.647000e-01 7.794000e-01 5.730000e-01 6.997000e-01 4.653000e-01 3.936000e-01 2.806000e-01
+ 7.410000e-02 3.967000e-01 4.133000e-01 3.645000e-01 4.413000e-01 4.767000e-01 -4.360000e-02 1.781800e+00 4.830000e-02 -5.760000e-02 1.240000e-02 -1.260000e-02 1.716000e-01 2.843000e-01
+ 3.583000e-01 7.460000e-01 1.489000e-01 6.681000e-01 1.327000e-01 5.254000e-01 1.705000e-01 6.434000e-01 1.733000e-01 4.643000e-01 1.570000e-01 6.552000e-01 1.646000e-01 3.708000e-01
+ 5.144000e-01 7.100000e-03 7.310000e-01 1.166000e-01 8.438000e-01 1.292000e-01 1.745400e+00 -2.040000e-02 5.240000e-02 -6.220000e-02 2.000000e-04 -1.200000e-03 4.207000e-01 6.780000e-02
+ 6.726000e-01 1.323000e-01 1.144800e+00 9.590000e-02 1.362000e+00 3.870000e-02 1.169700e+00 6.840000e-02 1.369600e+00 5.110000e-02 1.182100e+00 5.370000e-02 6.784000e-01 3.530000e-02
+ 1.674000e-01 3.897000e-01 4.111000e-01 4.741000e-01 6.153000e-01 3.688000e-01 1.697900e+00 3.140000e-02 -5.520000e-02 2.065200e+00 -4.320000e-02 5.020000e-02 2.435000e-01 2.632000e-01
+ 3.785000e-01 7.282000e-01 1.824000e-01 7.266000e-01 1.605000e-01 5.580000e-01 1.435000e-01 7.714000e-01 1.922000e-01 5.056000e-01 3.317000e-01 5.522000e-01 1.777000e-01 3.997000e-01
+ 3.145000e-01 7.818000e-01 1.241000e-01 5.976000e-01 1.230000e-01 4.677000e-01 1.220000e-01 6.060000e-01 1.649000e-01 4.058000e-01 7.690000e-02 6.546000e-01 1.322000e-01 3.602000e-01
+ 2.918000e-01 2.719000e-01 6.459000e-01 2.241000e-01 7.378000e-01 2.574000e-01 1.683400e+00 6.250000e-02 2.860000e-02 1.964400e+00 -5.600000e-03 6.500000e-03 3.631000e-01 1.400000e-01
+ 1.151300e+00 -5.120000e-02 6.183000e-01 3.049000e-01 6.627000e-01 3.790000e-02 7.937000e-01 9.420000e-02 5.698000e-01 1.317000e-01 8.385000e-01 4.390000e-02 4.815000e-01 9.850000e-02
+ 1.269000e-01 9.731000e-01 4.120000e-01 1.036700e+00 5.733000e-01 9.856000e-01 1.699400e+00 3.680000e-02 -2.470000e-02 2.024300e+00 -1.100000e-02 1.743800e+00 2.299000e-01 6.160000e-01
+-9.200000e-03 6.616000e-01 5.080000e-02 9.117000e-01 1.767000e-01 9.075000e-01 2.000000e-02 1.709800e+00 -6.340000e-02 2.076700e+00 -2.020000e-02 2.450000e-02 4.400000e-02 5.188000e-01
+ 3.096000e-01 3.670000e-01 4.894000e-01 5.677000e-01 5.287000e-01 6.841000e-01 4.190000e-01 6.544000e-01 5.844000e-01 6.375000e-01 5.973000e-01 4.401000e-01 2.783000e-01 3.331000e-01
+ 5.330000e-02 8.748000e-01 1.818000e-01 1.072900e+00 2.553000e-01 1.123700e+00 -2.450000e-02 1.760300e+00 -3.000000e-03 2.009000e+00 4.320000e-02 -5.350000e-02 1.072000e-01 6.315000e-01
+ 1.054700e+00 5.700000e-02 9.906000e-01 9.390000e-02 8.846000e-01 -8.220000e-02 1.024500e+00 4.920000e-02 7.418000e-01 6.930000e-02 1.035600e+00 3.830000e-02 6.174000e-01 2.600000e-02
+ 4.399000e-01 3.581000e-01 8.365000e-01 3.885000e-01 9.079000e-01 4.923000e-01 7.725000e-01 4.573000e-01 7.929000e-01 6.507000e-01 7.882000e-01 4.434000e-01 4.279000e-01 2.874000e-01
+ 4.167000e-01 5.007000e-01 6.382000e-01 7.986000e-01 8.046000e-01 8.237000e-01 7.404000e-01 6.831000e-01 7.403000e-01 9.233000e-01 6.321000e-01 8.118000e-01 3.938000e-01 4.348000e-01
+ 1.641000e-01 5.116000e-01 5.404000e-01 4.425000e-01 5.521000e-01 5.661000e-01 1.699300e+00 3.610000e-02 2.810000e-02 1.964300e+00 6.130000e-02 -7.280000e-02 2.508000e-01 3.306000e-01
+ 6.288000e-01 4.748000e-01 3.036000e-01 1.429400e+00 1.956000e-01 1.249500e+00 3.526000e-01 1.368400e+00 2.819000e-01 1.080300e+00 2.704000e-01 1.468300e+00 2.507000e-01 6.484000e-01
+ 2.369000e-01 6.611000e-01 5.288000e-01 6.834000e-01 6.557000e-01 6.726000e-01 1.709300e+00 2.570000e-02 -3.230000e-02 2.038300e+00 -7.010000e-02 8.680000e-02 2.784000e-01 4.395000e-01
+ 8.934000e-01 2.195000e-01 4.395000e-01 9.475000e-01 3.611000e-01 6.075000e-01 3.924000e-01 1.003200e+00 3.487000e-01 5.886000e-01 4.447000e-01 9.433000e-01 2.960000e-01 4.255000e-01
+ 3.127000e-01 7.936000e-01 2.430000e-01 1.480400e+00 1.331000e-01 1.843300e+00 1.919000e-01 1.538600e+00 8.090000e-02 1.620200e+00 2.307000e-01 1.493000e+00 1.468000e-01 8.283000e-01
+ 4.778000e-01 5.678000e-01 8.714000e-01 7.462000e-01 9.055000e-01 9.499000e-01 8.423000e-01 7.811000e-01 9.141000e-01 9.747000e-01 7.781000e-01 8.622000e-01 4.561000e-01 4.868000e-01
+ 8.896000e-01 2.207000e-01 2.578000e-01 1.349300e+00 2.169000e-01 8.216000e-01 4.123000e-01 1.165400e+00 3.797000e-01 5.948000e-01 4.365000e-01 1.129600e+00 2.961000e-01 4.484000e-01
+ 1.164000e-01 5.170000e-01 9.500000e-03 1.017200e+00 1.090000e-02 1.156900e+00 -2.770000e-02 1.060900e+00 -2.000000e-03 1.186900e+00 7.900000e-02 9.352000e-01 2.830000e-02 5.596000e-01
+ 4.084000e-01 6.935000e-01 7.813000e-01 7.456000e-01 8.580000e-01 7.981000e-01 1.763400e+00 -3.380000e-02 3.120000e-02 1.962900e+00 4.640000e-02 1.680600e+00 4.056000e-01 4.892000e-01
+ 4.115000e-01 3.150000e-01 6.251000e-01 5.168000e-01 6.864000e-01 6.216000e-01 6.157000e-01 5.283000e-01 5.501000e-01 8.035000e-01 5.848000e-01 5.660000e-01 3.420000e-01 3.209000e-01
+ 5.793000e-01 5.256000e-01 2.275000e-01 6.283000e-01 2.350000e-01 4.414000e-01 3.038000e-01 5.316000e-01 2.404000e-01 4.183000e-01 2.991000e-01 5.356000e-01 2.314000e-01 3.192000e-01
+ 1.988000e-01 4.499000e-01 2.277000e-01 8.006000e-01 2.805000e-01 8.852000e-01 2.238000e-01 8.069000e-01 2.915000e-01 8.895000e-01 2.605000e-01 7.604000e-01 1.524000e-01 4.373000e-01
+ 5.380000e-02 4.115000e-01 1.528000e-01 5.627000e-01 5.870000e-02 7.814000e-01 1.204000e-01 6.025000e-01 2.900000e-03 8.575000e-01 8.210000e-02 6.511000e-01 4.320000e-02 3.794000e-01
+ 5.143000e-01 4.670000e-01 6.954000e-01 6.313000e-01 8.395000e-01 5.981000e-01 1.833600e+00 -1.195000e-01 6.730000e-02 1.927100e+00 4.320000e-02 -5.020000e-02 4.050000e-01 3.727000e-01
+ 1.093200e+00 1.700000e-02 9.920000e-01 2.131000e-01 8.428000e-01 4.310000e-02 1.037400e+00 1.593000e-01 8.353000e-01 2.400000e-02 1.127100e+00 5.930000e-02 6.564000e-01 1.860000e-02
+ 1.529000e-01 7.166000e-01 4.760000e-01 7.066000e-01 6.900000e-01 5.941000e-01 1.790100e+00 -6.710000e-02 8.600000e-03 1.987800e+00 -4.000000e-03 4.600000e-03 3.005000e-01 3.884000e-01
+ 6.414000e-01 1.886000e-01 9.415000e-01 2.036000e-01 9.966000e-01 2.832000e-01 1.774400e+00 -5.000000e-02 2.061900e+00 -7.050000e-02 2.750000e-02 -3.310000e-02 5.474000e-01 1.283000e-01
+ 1.100400e+00 1.080000e-02 1.541000e+00 1.791000e-01 9.895000e-01 8.366000e-01 1.446100e+00 2.887000e-01 9.364000e-01 7.076000e-01 1.512700e+00 2.114000e-01 7.341000e-01 2.329000e-01
+ 1.063300e+00 4.970000e-02 6.328000e-01 1.103200e+00 4.612000e-01 1.008900e+00 7.123000e-01 1.013200e+00 5.231000e-01 8.612000e-01 7.706000e-01 9.377000e-01 4.556000e-01 4.502000e-01
+ 9.390000e-02 2.852000e-01 1.502000e-01 5.744000e-01 3.306000e-01 4.972000e-01 2.500000e-02 1.699300e+00 2.940000e-02 -3.570000e-02 -5.610000e-02 6.750000e-02 1.023000e-01 3.008000e-01
+ 6.954000e-01 2.670000e-01 1.011800e+00 2.593000e-01 1.137400e+00 2.561000e-01 1.706800e+00 3.340000e-02 2.083900e+00 -9.270000e-02 1.300000e-02 -1.780000e-02 6.024000e-01 1.478000e-01
+ 1.190800e+00 -9.960000e-02 3.961000e-01 1.285800e+00 3.905000e-01 6.359000e-01 4.426000e-01 1.233500e+00 3.446000e-01 6.614000e-01 4.912000e-01 1.180000e+00 3.361000e-01 4.130000e-01
+ 5.374000e-01 3.805000e-01 8.830000e-01 5.444000e-01 1.049100e+00 5.771000e-01 9.036000e-01 5.234000e-01 1.049500e+00 5.964000e-01 9.324000e-01 4.881000e-01 5.132000e-01 3.125000e-01
+ 1.039100e+00 7.860000e-02 1.266200e+00 4.742000e-01 9.161000e-01 1.626000e-01 1.197900e+00 5.470000e-01 9.137000e-01 1.269000e-01 1.213700e+00 5.333000e-01 6.993000e-01 7.170000e-02
+ 6.458000e-01 4.649000e-01 2.589000e-01 9.217000e-01 3.329000e-01 5.323000e-01 2.311000e-01 9.548000e-01 1.899000e-01 6.802000e-01 3.269000e-01 8.420000e-01 2.573000e-01 4.138000e-01
+ 1.052100e+00 6.650000e-02 7.528000e-01 9.807000e-01 6.024000e-01 8.703000e-01 7.803000e-01 9.460000e-01 7.222000e-01 6.507000e-01 7.261000e-01 1.012000e+00 5.141000e-01 3.938000e-01
+ 5.840000e-02 5.279000e-01 8.240000e-02 8.389000e-01 8.580000e-02 9.652000e-01 7.990000e-02 8.364000e-01 1.640000e-02 1.055800e+00 1.320000e-01 7.804000e-01 6.160000e-02 4.665000e-01
+ 4.050000e-02 9.263000e-01 3.432000e-01 9.408000e-01 4.826000e-01 9.161000e-01 -1.620000e-02 1.747900e+00 -1.530000e-02 2.022200e+00 6.260000e-02 -7.430000e-02 1.872000e-01 5.699000e-01
+ 5.268000e-01 3.336000e-01 6.997000e-01 4.976000e-01 9.724000e-01 3.158000e-01 1.717100e+00 1.850000e-02 1.060000e-02 1.983800e+00 -2.130000e-02 2.460000e-02 4.486000e-01 2.498000e-01
+ 1.870000e-02 6.936000e-01 1.526000e-01 8.764000e-01 2.685000e-01 8.772000e-01 -2.400000e-02 1.761100e+00 5.660000e-02 1.933300e+00 3.520000e-02 -4.000000e-02 7.850000e-02 5.252000e-01
+ 1.103300e+00 3.900000e-03 8.285000e-01 3.832000e-01 6.649000e-01 2.246000e-01 6.963000e-01 5.402000e-01 5.935000e-01 2.886000e-01 7.667000e-01 4.494000e-01 5.473000e-01 1.339000e-01
+ 8.410000e-02 1.032800e+00 4.392000e-01 1.048400e+00 6.082000e-01 9.935000e-01 1.738900e+00 -3.800000e-03 -2.100000e-02 2.026900e+00 -1.067000e-01 1.858800e+00 2.398000e-01 6.295000e-01
+ 4.689000e-01 4.092000e-01 6.791000e-01 7.029000e-01 8.472000e-01 7.169000e-01 6.373000e-01 7.540000e-01 7.336000e-01 8.768000e-01 7.611000e-01 6.114000e-01 3.997000e-01 3.986000e-01
+ 5.368000e-01 2.121000e-01 7.638000e-01 3.146000e-01 8.883000e-01 3.072000e-01 1.674800e+00 6.920000e-02 9.300000e-03 1.989600e+00 6.700000e-03 -9.100000e-03 4.426000e-01 1.885000e-01
+ 4.240000e-01 4.900000e-01 7.232000e-01 5.014000e-01 8.591000e-01 4.838000e-01 1.772600e+00 -4.870000e-02 4.240000e-02 1.954800e+00 -1.780000e-02 2.100000e-02 4.348000e-01 2.854000e-01
+ 1.050000e-01 1.003300e+00 2.230000e-02 5.880000e-01 3.430000e-02 4.697000e-01 1.249000e-01 4.665000e-01 6.710000e-02 4.225000e-01 1.030000e-01 4.903000e-01 6.130000e-02 3.688000e-01
+ 3.111000e-01 3.751000e-01 4.651000e-01 6.121000e-01 6.362000e-01 5.681000e-01 5.020000e-01 5.630000e-01 6.580000e-01 5.583000e-01 5.059000e-01 5.646000e-01 3.052000e-01 3.081000e-01
+ 4.478000e-01 -1.400000e-03 6.501000e-01 6.110000e-02 7.771000e-01 2.590000e-02 6.717000e-01 3.060000e-02 7.627000e-01 5.250000e-02 6.493000e-01 5.720000e-02 3.869000e-01 2.020000e-02
+ 7.303000e-01 3.720000e-01 3.490000e-01 6.100000e-01 2.788000e-01 4.756000e-01 2.771000e-01 6.963000e-01 3.090000e-01 4.241000e-01 2.837000e-01 6.863000e-01 2.655000e-01 3.350000e-01
+ 5.140000e-02 1.062500e+00 3.940000e-02 4.118000e-01 -9.000000e-03 4.001000e-01 1.314000e-01 3.037000e-01 7.130000e-02 2.978000e-01 7.100000e-02 3.778000e-01 4.670000e-02 2.925000e-01
+ 4.980000e-01 5.100000e-01 8.111000e-01 5.115000e-01 8.700000e-01 5.826000e-01 1.682700e+00 5.570000e-02 7.700000e-03 1.987000e+00 3.500000e-02 -4.180000e-02 4.798000e-01 2.986000e-01
+ 2.034000e-01 6.543000e-01 2.535000e-01 1.109500e+00 3.152000e-01 1.231200e+00 2.384000e-01 1.129500e+00 3.808000e-01 1.179800e+00 2.254000e-01 1.140700e+00 1.744000e-01 6.073000e-01
+ 3.153000e-01 4.310000e-01 6.277000e-01 5.140000e-01 6.222000e-01 6.974000e-01 6.016000e-01 5.469000e-01 7.290000e-01 5.904000e-01 5.691000e-01 5.835000e-01 3.592000e-01 3.007000e-01
+ 8.961000e-01 2.310000e-02 1.048800e+00 2.182000e-01 1.305600e+00 6.030000e-02 1.701700e+00 3.300000e-02 2.162900e+00 -1.954000e-01 -5.500000e-03 6.700000e-03 6.851000e-01 5.080000e-02
+ 1.099300e+00 6.800000e-03 4.745000e-01 1.250200e+00 3.631000e-01 8.284000e-01 4.291000e-01 1.304800e+00 3.799000e-01 7.691000e-01 5.049000e-01 1.217200e+00 3.288000e-01 4.910000e-01
+ 1.124000e-01 4.549000e-01 1.585000e-01 7.363000e-01 7.680000e-02 9.628000e-01 1.012000e-01 8.069000e-01 9.650000e-02 9.527000e-01 1.245000e-01 7.763000e-01 5.500000e-02 4.688000e-01
+ 2.914000e-01 8.203000e-01 1.384000e-01 9.877000e-01 1.531000e-01 6.968000e-01 2.093000e-01 9.102000e-01 2.100000e-01 6.084000e-01 1.684000e-01 9.538000e-01 1.537000e-01 5.024000e-01
+ 2.503000e-01 5.377000e-01 4.508000e-01 7.689000e-01 6.041000e-01 7.665000e-01 4.468000e-01 7.721000e-01 6.211000e-01 7.645000e-01 4.442000e-01 7.789000e-01 2.925000e-01 4.055000e-01
+ 5.522000e-01 9.600000e-02 8.623000e-01 9.830000e-02 9.783000e-01 1.028000e-01 1.732200e+00 1.400000e-03 6.040000e-02 1.928700e+00 -1.110000e-02 1.420000e-02 4.638000e-01 1.047000e-01
+ 6.990000e-01 1.695000e-01 1.112800e+00 2.379000e-01 1.287200e+00 2.463000e-01 1.054400e+00 3.047000e-01 1.330800e+00 2.267000e-01 1.103400e+00 2.486000e-01 6.255000e-01 1.588000e-01
+ 1.206000e-01 5.177000e-01 2.957000e-01 6.815000e-01 2.742000e-01 8.485000e-01 2.064000e-01 7.865000e-01 3.213000e-01 8.104000e-01 2.374000e-01 7.500000e-01 1.375000e-01 4.325000e-01
+ 7.560000e-02 4.799000e-01 1.069000e-01 7.654000e-01 2.251000e-01 7.443000e-01 2.162000e-01 6.340000e-01 1.732000e-01 8.273000e-01 1.715000e-01 6.874000e-01 9.100000e-02 4.062000e-01
+ 2.584000e-01 8.386000e-01 7.620000e-02 7.278000e-01 1.070000e-01 5.378000e-01 7.110000e-02 7.384000e-01 7.870000e-02 5.573000e-01 4.850000e-02 7.629000e-01 1.041000e-01 4.274000e-01
+ 7.270000e-01 3.828000e-01 1.070200e+00 4.521000e-01 1.323100e+00 3.022000e-01 1.663400e+00 8.400000e-02 2.080600e+00 -9.090000e-02 7.430000e-02 1.642100e+00 6.176000e-01 2.725000e-01
+ 2.311000e-01 8.728000e-01 1.756000e-01 5.309000e-01 1.360000e-01 4.464000e-01 1.481000e-01 5.650000e-01 6.090000e-02 5.215000e-01 1.231000e-01 5.944000e-01 1.064000e-01 3.859000e-01
+ 6.257000e-01 4.252000e-01 8.745000e-01 5.017000e-01 8.145000e-01 7.101000e-01 1.767800e+00 -4.060000e-02 3.790000e-02 1.954800e+00 -3.610000e-02 1.777500e+00 4.962000e-01 3.155000e-01
+ 3.711000e-01 3.448000e-01 6.690000e-01 3.564000e-01 7.493000e-01 4.080000e-01 1.665500e+00 8.190000e-02 4.510000e-02 1.949600e+00 1.120000e-02 -1.470000e-02 3.586000e-01 2.472000e-01
+ 1.091400e+00 1.500000e-02 7.516000e-01 9.932000e-01 6.739000e-01 4.224000e-01 9.437000e-01 7.683000e-01 6.294000e-01 4.399000e-01 8.063000e-01 9.298000e-01 5.482000e-01 2.326000e-01
+ 4.256000e-01 2.780000e-02 6.816000e-01 2.220000e-02 7.522000e-01 5.630000e-02 6.717000e-01 3.390000e-02 8.997000e-01 -1.075000e-01 6.933000e-01 9.500000e-03 3.776000e-01 3.240000e-02
+ 1.028000e+00 9.510000e-02 5.619000e-01 4.529000e-01 5.648000e-01 2.058000e-01 6.508000e-01 3.510000e-01 4.077000e-01 3.744000e-01 5.686000e-01 4.476000e-01 4.042000e-01 2.186000e-01
+-4.200000e-02 7.610000e-01 1.212000e-01 9.064000e-01 1.753000e-01 9.878000e-01 5.340000e-02 1.670300e+00 -1.660000e-02 2.013600e+00 6.680000e-02 -7.970000e-02 7.740000e-02 5.239000e-01
+ 3.907000e-01 5.587000e-01 6.918000e-01 5.787000e-01 7.508000e-01 6.533000e-01 1.765900e+00 -3.900000e-02 -4.400000e-03 2.007300e+00 1.150000e-02 -1.440000e-02 3.759000e-01 3.750000e-01
+ 5.883000e-01 4.444000e-01 9.442000e-01 6.742000e-01 1.223800e+00 5.907000e-01 1.045900e+00 5.541000e-01 1.129100e+00 7.246000e-01 1.068700e+00 5.271000e-01 5.945000e-01 3.288000e-01
+ 1.261000e-01 4.338000e-01 2.383000e-01 6.331000e-01 1.393000e-01 8.796000e-01 7.800000e-02 8.233000e-01 1.462000e-01 8.875000e-01 1.771000e-01 7.083000e-01 8.940000e-02 4.235000e-01
+ 2.951000e-01 7.971000e-01 2.091000e-01 7.775000e-01 8.550000e-02 6.993000e-01 1.987000e-01 7.923000e-01 5.940000e-02 7.144000e-01 1.031000e-01 9.043000e-01 1.108000e-01 5.057000e-01
+ 1.100700e+00 5.800000e-03 5.735000e-01 5.508000e-01 4.843000e-01 3.643000e-01 5.151000e-01 6.179000e-01 4.244000e-01 4.098000e-01 6.194000e-01 4.928000e-01 4.094000e-01 2.485000e-01
+ 8.864000e-01 1.600000e-03 1.375200e+00 2.020000e-02 1.571500e+00 1.050000e-02 1.415500e+00 -3.190000e-02 1.655200e+00 -6.190000e-02 1.409500e+00 -2.720000e-02 7.862000e-01 1.790000e-02
+ 1.152100e+00 -5.580000e-02 7.192000e-01 1.030300e+00 7.694000e-01 4.801000e-01 8.318000e-01 8.979000e-01 6.653000e-01 5.582000e-01 9.178000e-01 7.947000e-01 5.415000e-01 3.093000e-01
+ 5.044000e-01 1.540000e-02 8.126000e-01 -2.700000e-03 8.906000e-01 4.030000e-02 7.963000e-01 1.780000e-02 9.854000e-01 -5.490000e-02 7.248000e-01 1.000000e-01 4.532000e-01 1.820000e-02
+-2.180000e-02 8.299000e-01 1.599000e-01 9.649000e-01 3.780000e-01 8.483000e-01 2.180000e-02 1.707200e+00 -4.570000e-02 2.054800e+00 -1.020000e-02 1.240000e-02 1.121000e-01 5.458000e-01
+ 9.160000e-02 1.036900e+00 1.755000e-01 6.179000e-01 8.330000e-02 5.723000e-01 1.340000e-01 6.709000e-01 5.480000e-02 5.914000e-01 6.290000e-02 7.533000e-01 1.001000e-01 4.355000e-01
+ 3.507000e-01 4.682000e-01 6.535000e-01 4.860000e-01 7.487000e-01 5.119000e-01 1.678900e+00 5.970000e-02 -5.820000e-02 2.068200e+00 -2.410000e-02 2.870000e-02 3.420000e-01 3.332000e-01
+ 1.034700e+00 8.190000e-02 5.016000e-01 1.232800e+00 4.562000e-01 1.218400e+00 4.686000e-01 1.269500e+00 4.205000e-01 1.132200e+00 5.104000e-01 1.223000e+00 3.742000e-01 5.762000e-01
+ 6.282000e-01 1.157000e-01 8.571000e-01 3.314000e-01 1.049100e+00 2.918000e-01 8.451000e-01 3.437000e-01 1.130400e+00 2.179000e-01 9.457000e-01 2.238000e-01 5.257000e-01 1.544000e-01
+ 1.087900e+00 1.780000e-02 5.849000e-01 9.080000e-02 4.400000e-01 1.295000e-01 5.795000e-01 1.014000e-01 4.978000e-01 4.730000e-02 6.493000e-01 2.220000e-02 4.243000e-01 4.870000e-02
+ 1.043200e+00 7.570000e-02 3.362000e-01 8.387000e-01 3.922000e-01 4.720000e-01 4.663000e-01 6.843000e-01 3.137000e-01 5.435000e-01 4.333000e-01 7.240000e-01 3.211000e-01 3.463000e-01
+ 1.763000e-01 5.283000e-01 4.547000e-01 5.701000e-01 6.420000e-01 4.928000e-01 1.767600e+00 -4.320000e-02 3.570000e-02 1.956900e+00 -3.270000e-02 3.990000e-02 2.514000e-01 3.485000e-01
+ 4.510000e-01 6.430000e-02 6.271000e-01 2.025000e-01 7.699000e-01 1.555000e-01 7.216000e-01 8.540000e-02 8.444000e-01 8.560000e-02 8.332000e-01 -4.750000e-02 4.062000e-01 6.300000e-02
+ 7.900000e-02 5.267000e-01 8.690000e-02 8.697000e-01 1.671000e-01 9.115000e-01 5.880000e-02 9.035000e-01 6.870000e-02 1.042700e+00 8.080000e-02 8.789000e-01 6.730000e-02 4.822000e-01
+ 2.188000e-01 3.369000e-01 3.669000e-01 5.010000e-01 3.112000e-01 6.960000e-01 2.375000e-01 6.537000e-01 3.345000e-01 6.777000e-01 2.797000e-01 6.031000e-01 1.660000e-01 3.429000e-01
+-9.450000e-02 1.214000e+00 -7.660000e-02 1.790700e+00 1.769000e-01 1.628300e+00 -1.730000e-02 1.752100e+00 2.320000e-02 1.976100e+00 -8.350000e-02 1.829900e+00 2.030000e-02 9.413000e-01
+ 1.486000e-01 6.692000e-01 1.849000e-01 1.112100e+00 2.417000e-01 1.229800e+00 3.131000e-01 9.606000e-01 3.608000e-01 1.105200e+00 1.707000e-01 1.123700e+00 1.341000e-01 6.086000e-01
+ 1.151900e+00 -5.420000e-02 6.338000e-01 3.940000e-01 4.542000e-01 3.527000e-01 5.905000e-01 4.522000e-01 5.814000e-01 1.835000e-01 6.035000e-01 4.320000e-01 4.249000e-01 2.042000e-01
+ 1.479000e-01 2.251000e-01 1.986000e-01 3.961000e-01 2.674000e-01 3.986000e-01 1.340000e-01 4.690000e-01 2.304000e-01 4.534000e-01 1.999000e-01 3.911000e-01 1.029000e-01 2.407000e-01
+ 5.890000e-02 1.864000e-01 3.178000e-01 2.535000e-01 4.522000e-01 2.345000e-01 9.190000e-02 1.622500e+00 -7.700000e-03 9.000000e-03 -7.670000e-02 9.070000e-02 1.755000e-01 1.388000e-01
+ 9.400000e-02 6.238000e-01 3.969000e-01 6.334000e-01 4.998000e-01 6.599000e-01 1.790100e+00 -6.620000e-02 -7.930000e-02 2.093800e+00 2.700000e-03 -4.400000e-03 2.079000e-01 3.997000e-01
+ 2.319000e-01 5.927000e-01 3.022000e-01 1.001700e+00 3.991000e-01 1.072700e+00 4.055000e-01 8.795000e-01 4.504000e-01 1.036000e+00 3.112000e-01 9.839000e-01 1.925000e-01 5.553000e-01
+ 3.815000e-01 3.332000e-01 6.462000e-01 3.913000e-01 7.058000e-01 4.557000e-01 1.709500e+00 2.520000e-02 -6.140000e-02 2.076500e+00 2.690000e-02 -3.110000e-02 3.664000e-01 2.403000e-01
+ 1.078300e+00 3.410000e-02 8.201000e-01 9.103000e-01 6.938000e-01 1.278200e+00 7.104000e-01 1.039200e+00 5.932000e-01 1.278000e+00 7.361000e-01 1.003500e+00 5.368000e-01 4.586000e-01
+ 9.140000e-02 5.724000e-01 3.504000e-01 6.380000e-01 4.148000e-01 7.028000e-01 1.752300e+00 -2.260000e-02 -2.290000e-02 2.024300e+00 -1.770000e-02 1.910000e-02 2.003000e-01 3.734000e-01
+ 4.475000e-01 6.681000e-01 3.219000e-01 5.937000e-01 2.144000e-01 5.219000e-01 2.775000e-01 6.470000e-01 1.795000e-01 5.440000e-01 2.650000e-01 6.645000e-01 2.055000e-01 3.837000e-01
+ 1.052400e+00 6.480000e-02 5.225000e-01 8.387000e-01 4.788000e-01 4.712000e-01 5.038000e-01 8.560000e-01 3.832000e-01 5.550000e-01 5.543000e-01 7.987000e-01 3.811000e-01 3.338000e-01
+ 9.849000e-01 1.433000e-01 5.062000e-01 2.203000e-01 5.441000e-01 2.260000e-02 5.696000e-01 1.404000e-01 4.719000e-01 9.920000e-02 4.997000e-01 2.260000e-01 3.843000e-01 1.097000e-01
+ 5.748000e-01 1.579000e-01 9.100000e-01 2.326000e-01 9.980000e-01 3.141000e-01 9.007000e-01 2.419000e-01 9.729000e-01 3.628000e-01 8.942000e-01 2.515000e-01 5.003000e-01 1.643000e-01
+ 4.395000e-01 4.679000e-01 8.962000e-01 2.943000e-01 9.701000e-01 3.516000e-01 1.817900e+00 -9.650000e-02 2.730000e-02 1.960900e+00 2.100000e-03 -1.700000e-03 4.865000e-01 2.228000e-01
+ 4.840000e-01 2.094000e-01 7.491000e-01 3.479000e-01 9.198000e-01 3.134000e-01 7.565000e-01 3.362000e-01 7.934000e-01 4.768000e-01 6.991000e-01 4.020000e-01 4.212000e-01 2.110000e-01
+ 4.958000e-01 1.443000e-01 8.970000e-01 8.420000e-02 8.679000e-01 2.843000e-01 7.258000e-01 2.898000e-01 8.606000e-01 3.076000e-01 7.934000e-01 2.101000e-01 4.459000e-01 1.359000e-01
+ 1.079100e+00 3.290000e-02 5.166000e-01 7.448000e-01 4.626000e-01 4.487000e-01 5.806000e-01 6.720000e-01 4.977000e-01 3.901000e-01 5.378000e-01 7.246000e-01 4.012000e-01 2.923000e-01
+ 5.550000e-02 7.274000e-01 3.617000e-01 7.326000e-01 5.602000e-01 6.382000e-01 1.931200e+00 -2.333000e-01 7.000000e-03 1.992700e+00 -7.110000e-02 8.280000e-02 2.292000e-01 4.078000e-01
+ 1.089100e+00 2.140000e-02 4.152000e-01 8.053000e-01 3.788000e-01 5.185000e-01 4.597000e-01 7.495000e-01 3.572000e-01 5.192000e-01 4.332000e-01 7.823000e-01 3.524000e-01 3.287000e-01
+ 5.581000e-01 5.780000e-02 7.462000e-01 2.461000e-01 8.369000e-01 2.983000e-01 8.010000e-01 1.832000e-01 9.550000e-01 1.747000e-01 8.798000e-01 8.960000e-02 4.791000e-01 8.590000e-02
+ 1.096500e+00 3.900000e-03 4.117000e-01 4.921000e-01 3.664000e-01 3.479000e-01 4.433000e-01 4.572000e-01 3.868000e-01 3.088000e-01 4.363000e-01 4.653000e-01 3.154000e-01 2.638000e-01
+ 1.103600e+00 -9.000000e-04 5.596000e-01 1.163800e+00 4.281000e-01 9.927000e-01 5.554000e-01 1.170500e+00 4.449000e-01 9.107000e-01 5.766000e-01 1.139700e+00 3.750000e-01 5.223000e-01
+ 4.741000e-01 2.965000e-01 7.502000e-01 4.499000e-01 7.687000e-01 6.150000e-01 6.862000e-01 5.282000e-01 8.357000e-01 5.573000e-01 6.292000e-01 5.912000e-01 4.165000e-01 2.794000e-01
+ 3.807000e-01 4.936000e-01 5.540000e-01 8.272000e-01 8.500000e-01 6.754000e-01 6.042000e-01 7.640000e-01 7.195000e-01 8.542000e-01 6.354000e-01 7.275000e-01 3.726000e-01 4.133000e-01
+ 8.364000e-01 3.270000e-02 1.186400e+00 1.968000e-01 1.436000e+00 1.226000e-01 1.236400e+00 1.442000e-01 1.383800e+00 2.110000e-01 1.171300e+00 2.177000e-01 7.280000e-01 6.490000e-02
+-1.560000e-02 4.196000e-01 4.650000e-02 5.764000e-01 6.000000e-02 6.460000e-01 3.050000e-02 5.935000e-01 4.570000e-02 6.741000e-01 -3.280000e-02 6.699000e-01 1.860000e-02 3.420000e-01
+ 5.736000e-01 5.383000e-01 2.750000e-01 1.314900e+00 2.674000e-01 7.521000e-01 3.316000e-01 1.253500e+00 2.474000e-01 7.465000e-01 2.832000e-01 1.306000e+00 2.464000e-01 4.982000e-01
+ 7.007000e-01 3.733000e-01 9.031000e-01 7.899000e-01 1.038900e+00 7.671000e-01 1.784000e+00 -5.930000e-02 2.500000e-02 1.970800e+00 2.790000e-02 1.699700e+00 4.946000e-01 4.653000e-01
+ 1.101300e+00 3.700000e-03 4.778000e-01 5.740000e-02 3.817000e-01 6.810000e-02 3.378000e-01 2.228000e-01 3.602000e-01 8.800000e-02 3.097000e-01 2.582000e-01 3.379000e-01 5.670000e-02
+-5.860000e-02 7.000000e-02 2.469000e-01 5.640000e-02 2.655000e-01 1.748000e-01 -4.000000e-03 5.900000e-03 2.730000e-02 -3.150000e-02 5.900000e-03 -7.100000e-03 1.159000e-01 4.810000e-02
+ 1.120600e+00 -1.640000e-02 5.178000e-01 1.212100e+00 3.926000e-01 1.017600e+00 5.052000e-01 1.224700e+00 3.007000e-01 1.063800e+00 4.734000e-01 1.256600e+00 3.547000e-01 5.385000e-01
+ 2.983000e-01 8.036000e-01 2.176000e-01 9.156000e-01 1.722000e-01 6.839000e-01 1.845000e-01 9.522000e-01 1.204000e-01 7.224000e-01 2.503000e-01 8.755000e-01 1.339000e-01 5.293000e-01
+ 1.063100e+00 5.430000e-02 8.058000e-01 9.270000e-01 5.826000e-01 9.213000e-01 7.334000e-01 1.003300e+00 6.819000e-01 7.321000e-01 7.287000e-01 1.006000e+00 5.168000e-01 4.008000e-01
+ 4.254000e-01 3.643000e-01 7.034000e-01 5.253000e-01 6.943000e-01 7.253000e-01 8.134000e-01 4.001000e-01 7.932000e-01 6.344000e-01 7.578000e-01 4.625000e-01 4.057000e-01 3.053000e-01
+ 4.290000e-02 7.170000e-01 2.490000e-01 8.308000e-01 4.208000e-01 7.661000e-01 -2.320000e-02 1.762900e+00 1.860000e-02 1.978800e+00 -6.870000e-02 8.130000e-02 1.143000e-01 5.234000e-01
+-3.980000e-02 6.514000e-01 1.588000e-01 7.603000e-01 2.672000e-01 7.724000e-01 -1.780000e-02 1.750400e+00 1.890000e-02 1.978200e+00 -5.620000e-02 6.840000e-02 9.140000e-02 4.407000e-01
+ 2.062000e-01 4.098000e-01 2.551000e-01 7.148000e-01 4.466000e-01 6.359000e-01 2.715000e-01 6.969000e-01 2.490000e-01 8.829000e-01 2.201000e-01 7.591000e-01 1.590000e-01 4.010000e-01
+ 3.410000e-01 4.307000e-01 7.206000e-01 3.524000e-01 7.949000e-01 4.069000e-01 1.602900e+00 1.539000e-01 -1.459000e-01 2.171600e+00 1.000000e-02 -1.250000e-02 3.856000e-01 2.496000e-01
+-2.410000e-02 6.119000e-01 2.913000e-01 5.930000e-01 2.959000e-01 7.341000e-01 6.990000e-02 1.644200e+00 -4.070000e-02 2.050400e+00 9.500000e-02 -1.145000e-01 1.324000e-01 3.856000e-01
+ 8.864000e-01 1.457000e-01 1.449500e+00 1.612000e-01 1.558100e+00 2.872000e-01 1.467800e+00 1.383000e-01 1.645400e+00 2.126000e-01 1.511700e+00 8.060000e-02 8.334000e-01 9.520000e-02
+ 4.516000e-01 3.031000e-01 6.539000e-01 4.383000e-01 8.696000e-01 3.244000e-01 1.766400e+00 -3.990000e-02 -4.020000e-02 2.044000e+00 5.800000e-02 -6.990000e-02 3.998000e-01 2.355000e-01
+ 1.500000e-03 1.039600e+00 -6.270000e-02 1.707800e+00 -1.400000e-02 1.880800e+00 6.470000e-02 1.564000e+00 1.572000e-01 1.698000e+00 1.540000e-02 1.620800e+00 1.990000e-02 9.212000e-01
+ 4.896000e-01 2.424000e-01 8.585000e-01 1.687000e-01 1.021900e+00 1.227000e-01 1.728400e+00 -1.600000e-03 3.230000e-02 1.961700e+00 -3.790000e-02 4.570000e-02 4.665000e-01 1.439000e-01
+ 1.028500e+00 2.200000e-03 1.519100e+00 1.153000e-01 1.891400e+00 -6.680000e-02 1.574600e+00 4.710000e-02 1.882900e+00 -2.460000e-02 1.660200e+00 -5.800000e-02 9.215000e-01 1.180000e-02
+ 5.700000e-01 1.949000e-01 6.662000e-01 5.775000e-01 7.901000e-01 6.218000e-01 7.056000e-01 5.306000e-01 7.961000e-01 6.351000e-01 7.592000e-01 4.700000e-01 4.177000e-01 2.949000e-01
+ 2.964000e-01 2.839000e-01 3.532000e-01 5.773000e-01 4.329000e-01 6.187000e-01 3.322000e-01 6.025000e-01 4.204000e-01 6.566000e-01 3.175000e-01 6.181000e-01 2.053000e-01 3.326000e-01
+ 1.110100e+00 -6.900000e-03 5.430000e-01 7.135000e-01 3.813000e-01 5.501000e-01 4.775000e-01 7.901000e-01 4.455000e-01 4.477000e-01 5.519000e-01 7.022000e-01 3.929000e-01 3.006000e-01
+ 4.494000e-01 3.016000e-01 6.661000e-01 5.118000e-01 8.272000e-01 5.039000e-01 7.380000e-01 4.324000e-01 8.066000e-01 5.531000e-01 7.674000e-01 3.959000e-01 4.210000e-01 2.538000e-01
+ 1.201700e+00 -1.156000e-01 3.379000e-01 6.891000e-01 3.519000e-01 4.317000e-01 4.171000e-01 5.947000e-01 2.714000e-01 5.115000e-01 3.865000e-01 6.303000e-01 3.125000e-01 3.083000e-01
+ 4.175000e-01 6.920000e-01 7.238000e-01 8.324000e-01 8.213000e-01 8.528000e-01 1.684100e+00 5.680000e-02 9.100000e-03 1.987300e+00 -1.150000e-02 1.749900e+00 4.226000e-01 4.766000e-01
+ 4.360000e-01 3.713000e-01 6.214000e-01 6.574000e-01 7.203000e-01 7.235000e-01 5.825000e-01 6.956000e-01 7.206000e-01 7.458000e-01 6.731000e-01 5.917000e-01 3.731000e-01 3.595000e-01
+ 3.848000e-01 2.801000e-01 5.886000e-01 4.593000e-01 7.417000e-01 4.387000e-01 5.876000e-01 4.592000e-01 7.156000e-01 4.903000e-01 6.483000e-01 3.882000e-01 3.588000e-01 2.423000e-01
+ 1.096400e+00 1.260000e-02 8.966000e-01 3.421000e-01 6.822000e-01 2.301000e-01 8.664000e-01 3.788000e-01 6.956000e-01 1.860000e-01 8.982000e-01 3.447000e-01 5.707000e-01 1.193000e-01
+ 4.805000e-01 5.688000e-01 5.959000e-01 1.079200e+00 6.938000e-01 1.213100e+00 6.770000e-01 9.835000e-01 7.859000e-01 1.129700e+00 7.537000e-01 8.900000e-01 3.702000e-01 5.925000e-01
+ 1.090700e+00 1.510000e-02 4.532000e-01 8.947000e-01 3.829000e-01 5.780000e-01 4.569000e-01 8.886000e-01 3.970000e-01 5.348000e-01 5.703000e-01 7.581000e-01 3.893000e-01 3.213000e-01
+ 4.580000e-02 5.139000e-01 -1.840000e-02 3.196000e-01 -3.710000e-02 3.004000e-01 9.080000e-02 1.905000e-01 -1.390000e-02 2.675000e-01 1.530000e-02 2.785000e-01 9.600000e-03 2.236000e-01
+ 1.131200e+00 -3.020000e-02 8.929000e-01 7.040000e-02 7.703000e-01 -2.560000e-02 8.951000e-01 6.580000e-02 6.570000e-01 8.810000e-02 8.834000e-01 8.170000e-02 5.877000e-01 1.170000e-02
+-5.820000e-02 8.150000e-01 3.495000e-01 7.002000e-01 4.372000e-01 7.411000e-01 -8.800000e-02 1.829700e+00 6.840000e-02 1.920900e+00 -3.980000e-02 4.890000e-02 1.860000e-01 4.308000e-01
+ 3.479000e-01 6.417000e-01 6.093000e-01 7.009000e-01 7.565000e-01 6.621000e-01 1.628200e+00 1.224000e-01 1.492000e-01 1.828500e+00 -1.960000e-02 2.300000e-02 3.743000e-01 3.924000e-01
+ 4.160000e-01 1.654000e-01 6.349000e-01 2.783000e-01 6.370000e-01 4.172000e-01 6.487000e-01 2.577000e-01 6.379000e-01 4.257000e-01 6.367000e-01 2.739000e-01 3.315000e-01 2.005000e-01
+ 7.600000e-02 1.032000e+00 3.440000e-02 1.042800e+00 -1.570000e-02 8.486000e-01 4.830000e-02 1.026200e+00 9.170000e-02 7.007000e-01 -1.420000e-02 1.099300e+00 4.420000e-02 5.973000e-01
+ 6.870000e-02 6.446000e-01 4.410000e-01 5.699000e-01 4.881000e-01 6.571000e-01 1.674200e+00 6.730000e-02 1.860000e-02 1.976100e+00 2.750000e-02 -3.180000e-02 2.199000e-01 3.772000e-01
+ 1.838000e-01 9.222000e-01 1.668000e-01 8.231000e-01 1.093000e-01 6.645000e-01 1.597000e-01 8.303000e-01 1.604000e-01 5.899000e-01 1.905000e-01 7.935000e-01 9.970000e-02 5.155000e-01
+ 5.985000e-01 2.114000e-01 8.599000e-01 2.747000e-01 8.155000e-01 4.715000e-01 1.754300e+00 -2.590000e-02 -1.890000e-02 2.017000e+00 -6.550000e-02 7.960000e-02 4.398000e-01 2.384000e-01
+ 9.812000e-01 1.464000e-01 9.873000e-01 7.388000e-01 7.230000e-01 1.253800e+00 9.414000e-01 7.927000e-01 7.645000e-01 1.026800e+00 9.855000e-01 7.375000e-01 6.030000e-01 3.864000e-01
+ 2.771000e-01 4.934000e-01 4.557000e-01 7.448000e-01 4.533000e-01 9.261000e-01 3.633000e-01 8.519000e-01 3.589000e-01 1.055700e+00 4.432000e-01 7.585000e-01 2.485000e-01 4.471000e-01
+ 2.765000e-01 5.446000e-01 4.058000e-01 8.792000e-01 5.765000e-01 8.749000e-01 4.498000e-01 8.381000e-01 6.530000e-01 8.068000e-01 4.016000e-01 8.954000e-01 2.742000e-01 4.652000e-01
+ 8.580000e-01 2.206000e-01 3.943000e-01 1.329800e+00 3.000000e-01 7.321000e-01 4.228000e-01 1.296500e+00 3.049000e-01 6.911000e-01 3.720000e-01 1.352200e+00 2.668000e-01 4.835000e-01
+ 4.178000e-01 5.168000e-01 5.407000e-01 9.438000e-01 6.523000e-01 1.029500e+00 6.214000e-01 8.466000e-01 7.659000e-01 9.212000e-01 5.444000e-01 9.391000e-01 3.318000e-01 5.214000e-01
+ 5.398000e-01 3.048000e-01 8.779000e-01 4.404000e-01 1.011700e+00 4.854000e-01 8.146000e-01 5.131000e-01 9.718000e-01 5.539000e-01 8.771000e-01 4.340000e-01 4.961000e-01 2.664000e-01
+ 1.737000e-01 1.020000e-01 2.218000e-01 2.243000e-01 3.025000e-01 1.940000e-01 2.421000e-01 1.973000e-01 2.738000e-01 2.345000e-01 1.940000e-01 2.585000e-01 1.483000e-01 1.043000e-01
+ 2.552000e-01 6.242000e-01 5.095000e-01 6.932000e-01 7.394000e-01 5.597000e-01 1.650500e+00 1.011000e-01 -2.090000e-02 2.025200e+00 4.510000e-02 -5.310000e-02 3.175000e-01 3.858000e-01
+ 6.043000e-01 4.847000e-01 2.698000e-01 7.133000e-01 1.207000e-01 6.650000e-01 1.966000e-01 7.995000e-01 3.183000e-01 4.146000e-01 3.367000e-01 6.292000e-01 2.181000e-01 3.906000e-01
+ 7.783000e-01 4.700000e-03 1.048700e+00 2.047000e-01 1.169700e+00 2.627000e-01 1.024000e+00 2.338000e-01 1.229200e+00 2.135000e-01 1.067300e+00 1.827000e-01 5.997000e-01 1.258000e-01
+ 1.056900e+00 5.520000e-02 7.505000e-01 1.643000e-01 5.627000e-01 1.735000e-01 7.464000e-01 1.701000e-01 5.599000e-01 1.603000e-01 7.443000e-01 1.746000e-01 4.886000e-01 9.790000e-02
+ 1.082000e+00 2.940000e-02 6.796000e-01 1.778000e-01 5.755000e-01 1.053000e-01 7.075000e-01 1.409000e-01 5.595000e-01 1.105000e-01 8.247000e-01 -2.300000e-03 5.124000e-01 3.890000e-02
+ 5.710000e-02 1.050300e+00 -1.100000e-03 4.328000e-01 1.623000e-01 1.709000e-01 -3.400000e-02 4.719000e-01 -1.950000e-02 3.805000e-01 -9.330000e-02 5.434000e-01 3.350000e-02 2.892000e-01
+ 1.309000e-01 3.577000e-01 1.534000e-01 6.240000e-01 1.369000e-01 7.509000e-01 2.430000e-01 5.122000e-01 2.289000e-01 6.538000e-01 2.045000e-01 5.573000e-01 1.022000e-01 3.412000e-01
+ 3.363000e-01 4.877000e-01 6.284000e-01 5.175000e-01 6.639000e-01 6.105000e-01 1.634700e+00 1.160000e-01 -7.740000e-02 2.089800e+00 1.650000e-02 -2.060000e-02 3.415000e-01 3.319000e-01
+ 8.430000e-02 3.520000e-01 5.280000e-02 6.516000e-01 6.420000e-02 7.334000e-01 5.900000e-02 6.430000e-01 6.910000e-02 7.387000e-01 1.051000e-01 5.891000e-01 3.390000e-02 3.710000e-01
+ 2.419000e-01 2.554000e-01 3.898000e-01 3.872000e-01 4.288000e-01 4.575000e-01 3.504000e-01 4.362000e-01 4.903000e-01 3.988000e-01 3.969000e-01 3.784000e-01 2.171000e-01 2.331000e-01
+ 6.307000e-01 4.740000e-01 9.798000e-01 5.770000e-01 9.152000e-01 7.924000e-01 1.912900e+00 -2.140000e-01 2.007500e+00 -1.050000e-02 -5.000000e-04 1.730100e+00 5.307000e-01 3.768000e-01
+ 4.460000e-01 -1.960000e-02 7.009000e-01 -2.960000e-02 7.206000e-01 5.770000e-02 6.415000e-01 4.150000e-02 7.693000e-01 1.520000e-02 7.258000e-01 -5.950000e-02 3.754000e-01 1.790000e-02
+ 1.226000e-01 8.072000e-01 5.387000e-01 6.823000e-01 6.626000e-01 6.829000e-01 1.689300e+00 4.540000e-02 -1.990000e-02 2.019300e+00 -3.810000e-02 4.740000e-02 2.932000e-01 4.304000e-01
+ 7.825000e-01 9.250000e-02 1.127900e+00 2.562000e-01 1.325700e+00 2.437000e-01 1.183100e+00 1.954000e-01 1.290500e+00 3.130000e-01 1.240500e+00 1.253000e-01 6.916000e-01 1.009000e-01
+ 4.689000e-01 1.481000e-01 7.357000e-01 2.329000e-01 7.442000e-01 3.792000e-01 6.927000e-01 2.833000e-01 8.208000e-01 3.054000e-01 7.793000e-01 1.818000e-01 4.031000e-01 1.613000e-01
+ 6.073000e-01 1.505000e-01 8.918000e-01 3.078000e-01 1.123600e+00 2.238000e-01 8.878000e-01 3.141000e-01 1.023600e+00 3.635000e-01 8.919000e-01 3.122000e-01 4.959000e-01 2.008000e-01
+ 1.084500e+00 2.560000e-02 1.255700e+00 4.653000e-01 9.001000e-01 1.065200e+00 1.240200e+00 4.783000e-01 9.773000e-01 7.541000e-01 1.280700e+00 4.358000e-01 6.714000e-01 3.143000e-01
+ 1.122400e+00 -2.090000e-02 6.288000e-01 1.111500e+00 5.239000e-01 8.923000e-01 7.640000e-01 9.513000e-01 6.113000e-01 7.272000e-01 6.948000e-01 1.037500e+00 4.859000e-01 4.066000e-01
+ 8.826000e-01 2.210000e-01 3.047000e-01 6.431000e-01 3.247000e-01 4.102000e-01 4.222000e-01 5.054000e-01 3.085000e-01 4.134000e-01 3.644000e-01 5.701000e-01 2.931000e-01 2.968000e-01
+-7.180000e-02 6.558000e-01 2.116000e-01 6.708000e-01 3.328000e-01 6.744000e-01 3.570000e-02 1.688300e+00 5.100000e-02 1.946700e+00 -7.030000e-02 8.540000e-02 1.075000e-01 4.049000e-01
+ 3.613000e-01 7.365000e-01 2.189000e-01 5.576000e-01 1.782000e-01 4.514000e-01 2.020000e-01 5.775000e-01 1.855000e-01 4.275000e-01 2.536000e-01 5.144000e-01 1.511000e-01 3.725000e-01
+ 1.074900e+00 4.140000e-02 9.121000e-01 1.876000e-01 7.667000e-01 5.760000e-02 9.258000e-01 1.722000e-01 7.291000e-01 8.450000e-02 8.942000e-01 2.083000e-01 5.681000e-01 8.440000e-02
+ 2.760000e-02 1.086800e+00 -4.250000e-02 5.219000e-01 3.250000e-02 3.607000e-01 2.460000e-02 4.429000e-01 8.690000e-02 2.859000e-01 -1.100000e-03 4.726000e-01 3.560000e-02 3.120000e-01
+-4.950000e-02 5.970000e-02 5.990000e-02 1.809000e-01 1.120000e-02 3.660000e-01 1.340000e-02 -1.290000e-02 7.630000e-02 -9.200000e-02 5.320000e-02 -6.370000e-02 6.000000e-03 1.293000e-01
+-7.640000e-02 1.198800e+00 3.247000e-01 1.192000e+00 3.850000e-01 1.257300e+00 -8.280000e-02 1.832100e+00 4.500000e-03 1.991200e+00 -1.990000e-02 1.757700e+00 1.692000e-01 7.139000e-01
+ 3.735000e-01 7.355000e-01 1.927000e-01 5.480000e-01 2.143000e-01 3.824000e-01 2.458000e-01 4.837000e-01 1.067000e-01 4.974000e-01 1.687000e-01 5.756000e-01 1.769000e-01 3.251000e-01
+ 2.741000e-01 5.164000e-01 3.749000e-01 8.773000e-01 4.355000e-01 9.832000e-01 4.299000e-01 8.103000e-01 5.146000e-01 9.149000e-01 3.877000e-01 8.587000e-01 2.248000e-01 4.949000e-01
+-7.800000e-03 7.603000e-01 -4.110000e-02 1.110900e+00 -3.300000e-03 1.193900e+00 -7.110000e-02 1.819100e+00 6.250000e-02 1.926700e+00 4.510000e-02 -5.140000e-02 1.150000e-02 6.132000e-01
+ 1.184000e+00 -9.540000e-02 4.044000e-01 6.970000e-01 2.919000e-01 5.550000e-01 5.266000e-01 5.560000e-01 3.209000e-01 5.018000e-01 3.657000e-01 7.450000e-01 3.112000e-01 3.396000e-01
+ 4.732000e-01 3.046000e-01 6.683000e-01 4.455000e-01 8.095000e-01 4.224000e-01 1.736500e+00 1.300000e-03 3.190000e-02 1.964000e+00 -2.400000e-03 3.500000e-03 4.121000e-01 2.376000e-01
+ 1.384000e-01 6.302000e-01 1.225000e-01 1.096600e+00 2.138000e-01 1.162500e+00 1.260000e-01 1.090700e+00 2.173000e-01 1.177400e+00 2.158000e-01 9.860000e-01 1.137000e-01 5.832000e-01
+ 5.437000e-01 1.828000e-01 8.222000e-01 3.264000e-01 1.067400e+00 2.131000e-01 8.137000e-01 3.349000e-01 1.033500e+00 2.770000e-01 8.017000e-01 3.519000e-01 5.158000e-01 1.387000e-01
+ 8.353000e-01 1.856000e-01 1.130800e+00 2.115000e-01 1.142400e+00 3.409000e-01 1.648800e+00 9.690000e-02 1.939400e+00 7.250000e-02 -3.960000e-02 4.650000e-02 6.589000e-01 1.338000e-01
+ 5.665000e-01 4.000000e-01 8.040000e-01 4.914000e-01 9.725000e-01 4.351000e-01 1.770100e+00 -5.090000e-02 -6.530000e-02 2.077400e+00 8.140000e-02 -9.730000e-02 4.666000e-01 2.948000e-01
+ 1.780000e-02 6.441000e-01 1.934000e-01 8.153000e-01 2.080000e-01 9.453000e-01 2.370000e-01 7.618000e-01 2.103000e-01 9.556000e-01 8.110000e-02 9.460000e-01 8.990000e-02 4.970000e-01
+ 3.716000e-01 5.727000e-01 5.762000e-01 9.028000e-01 7.666000e-01 8.992000e-01 6.574000e-01 8.045000e-01 8.085000e-01 8.724000e-01 6.284000e-01 8.446000e-01 3.867000e-01 4.575000e-01
+ 9.650000e-02 8.800000e-02 5.990000e-02 2.461000e-01 1.445000e-01 1.877000e-01 1.420000e-01 1.516000e-01 1.662000e-01 1.680000e-01 1.162000e-01 1.799000e-01 6.860000e-02 1.019000e-01
+ 5.024000e-01 5.639000e-01 7.328000e-01 9.492000e-01 8.707000e-01 1.036400e+00 6.174000e-01 1.084500e+00 8.037000e-01 1.142800e+00 7.794000e-01 8.958000e-01 4.507000e-01 5.156000e-01
+ 5.465000e-01 4.334000e-01 9.130000e-01 6.068000e-01 8.931000e-01 8.647000e-01 8.490000e-01 6.866000e-01 9.978000e-01 7.642000e-01 8.058000e-01 7.353000e-01 4.696000e-01 4.187000e-01
+ 1.090000e-01 7.328000e-01 2.592000e-01 1.042400e+00 3.453000e-01 1.126100e+00 2.120000e-01 1.099000e+00 3.552000e-01 1.139400e+00 2.400000e-01 1.065500e+00 1.622000e-01 5.869000e-01
+ 3.045000e-01 4.043000e-01 4.679000e-01 6.469000e-01 5.784000e-01 6.798000e-01 4.442000e-01 6.740000e-01 5.287000e-01 7.581000e-01 4.444000e-01 6.719000e-01 2.540000e-01 3.910000e-01
+ 5.597000e-01 2.298000e-01 8.849000e-01 3.551000e-01 1.034300e+00 3.724000e-01 1.094000e+00 1.069000e-01 1.116900e+00 3.034000e-01 8.565000e-01 3.830000e-01 5.458000e-01 1.637000e-01
+ 1.135400e+00 -3.660000e-02 9.930000e-01 7.328000e-01 7.396000e-01 4.829000e-01 1.096200e+00 6.153000e-01 7.750000e-01 4.016000e-01 1.057200e+00 6.568000e-01 6.032000e-01 2.289000e-01
+ 2.453000e-01 4.808000e-01 4.855000e-01 6.343000e-01 6.267000e-01 6.316000e-01 5.035000e-01 6.100000e-01 6.372000e-01 6.430000e-01 4.382000e-01 6.838000e-01 2.897000e-01 3.544000e-01
+ 1.590000e-01 9.624000e-01 5.616000e-01 1.167600e+00 7.067000e-01 1.198000e+00 1.750800e+00 -2.140000e-02 1.230000e-02 1.983100e+00 1.710000e-02 1.712500e+00 3.037000e-01 6.852000e-01
+ 1.016200e+00 1.034000e-01 4.259000e-01 4.574000e-01 3.615000e-01 3.437000e-01 3.998000e-01 4.866000e-01 3.650000e-01 3.214000e-01 4.585000e-01 4.220000e-01 3.193000e-01 2.518000e-01
+-6.100000e-02 1.181100e+00 1.040000e-02 1.661100e+00 9.170000e-02 1.701800e+00 1.160000e-02 1.715900e+00 -5.730000e-02 2.068800e+00 -1.860000e-02 1.750300e+00 4.010000e-02 9.064000e-01
+ 1.116900e+00 -1.100000e-02 1.668300e+00 7.910000e-02 1.079600e+00 2.620000e-02 1.753600e+00 -3.070000e-02 9.317000e-01 1.614000e-01 1.719400e+00 1.680000e-02 7.741000e-01 1.160000e-02
+ 5.425000e-01 5.662000e-01 4.065000e-01 7.119000e-01 1.688000e-01 7.062000e-01 3.222000e-01 8.160000e-01 7.430000e-02 7.979000e-01 1.885000e-01 9.741000e-01 2.290000e-01 4.339000e-01
+ 1.092100e+00 1.910000e-02 6.402000e-01 6.883000e-01 4.099000e-01 5.550000e-01 5.433000e-01 8.057000e-01 4.109000e-01 5.229000e-01 5.550000e-01 7.881000e-01 4.032000e-01 3.093000e-01
+ 4.276000e-01 5.982000e-01 8.580000e-01 4.580000e-01 9.666000e-01 4.712000e-01 1.702400e+00 3.460000e-02 9.500000e-03 1.983900e+00 3.450000e-02 -4.050000e-02 4.654000e-01 3.163000e-01
+ 1.115200e+00 -1.240000e-02 8.336000e-01 9.390000e-02 7.419000e-01 -2.350000e-02 7.926000e-01 1.436000e-01 6.870000e-01 2.140000e-02 8.857000e-01 3.260000e-02 5.579000e-01 2.920000e-02
+ 6.695000e-01 2.592000e-01 1.030400e+00 1.922000e-01 1.123800e+00 2.317000e-01 1.701900e+00 3.900000e-02 1.941600e+00 6.780000e-02 -6.900000e-03 9.600000e-03 5.872000e-01 1.409000e-01
+ 1.106000e+00 1.000000e-04 5.493000e-01 1.184000e+00 5.373000e-01 6.650000e-01 4.143000e-01 1.344100e+00 4.731000e-01 6.990000e-01 5.029000e-01 1.236600e+00 4.045000e-01 4.258000e-01
+ 2.478000e-01 6.458000e-01 4.043000e-01 8.337000e-01 7.193000e-01 6.084000e-01 1.761800e+00 -2.940000e-02 3.350000e-02 1.959700e+00 -3.270000e-02 4.190000e-02 2.817000e-01 4.376000e-01
+ 7.105000e-01 3.832000e-01 9.548000e-01 4.648000e-01 1.065400e+00 4.734000e-01 1.780600e+00 -5.460000e-02 1.931100e+00 7.980000e-02 -8.090000e-02 1.827600e+00 5.788000e-01 2.513000e-01
+ 9.968000e-01 1.254000e-01 3.771000e-01 8.535000e-01 3.739000e-01 5.202000e-01 4.012000e-01 8.273000e-01 3.794000e-01 4.933000e-01 3.189000e-01 9.200000e-01 3.228000e-01 3.621000e-01
+ 8.350000e-02 5.562000e-01 -2.360000e-02 9.990000e-01 1.625000e-01 8.986000e-01 -2.440000e-02 1.758700e+00 9.700000e-02 1.884700e+00 -6.000000e-03 8.400000e-03 4.000000e-03 5.609000e-01
+ 7.489000e-01 2.026000e-01 1.055900e+00 4.588000e-01 1.076900e+00 6.637000e-01 9.010000e-01 6.377000e-01 1.106200e+00 6.628000e-01 9.712000e-01 5.537000e-01 5.625000e-01 3.189000e-01
+ 6.852000e-01 4.216000e-01 2.922000e-01 1.446000e+00 2.703000e-01 1.491500e+00 3.944000e-01 1.328700e+00 2.530000e-01 1.362000e+00 3.464000e-01 1.382300e+00 2.611000e-01 7.005000e-01
+ 1.096600e+00 1.160000e-02 5.389000e-01 6.236000e-01 4.291000e-01 4.441000e-01 4.939000e-01 6.776000e-01 5.015000e-01 3.356000e-01 5.481000e-01 6.099000e-01 3.832000e-01 2.869000e-01
+ 4.674000e-01 3.366000e-01 6.300000e-01 6.509000e-01 8.707000e-01 5.648000e-01 8.028000e-01 4.547000e-01 7.896000e-01 6.800000e-01 6.882000e-01 5.842000e-01 3.931000e-01 3.419000e-01
+ 3.740000e-02 3.977000e-01 1.968000e-01 5.588000e-01 3.630000e-01 5.027000e-01 5.700000e-03 1.723800e+00 5.880000e-02 -6.790000e-02 4.370000e-02 -5.240000e-02 9.980000e-02 3.309000e-01
+-8.640000e-02 7.606000e-01 1.386000e-01 8.285000e-01 1.761000e-01 9.310000e-01 1.890000e-02 1.707500e+00 8.900000e-02 1.899300e+00 -2.260000e-02 2.660000e-02 7.470000e-02 4.927000e-01
+ 9.280000e-02 4.511000e-01 2.259000e-01 6.111000e-01 2.024000e-01 7.561000e-01 2.166000e-01 6.206000e-01 2.474000e-01 7.191000e-01 3.004000e-01 5.213000e-01 1.155000e-01 3.700000e-01
+ 1.129200e+00 -2.850000e-02 1.839300e+00 -1.256000e-01 1.044800e+00 3.002000e-01 1.690200e+00 4.770000e-02 1.060200e+00 2.250000e-01 1.756400e+00 -2.550000e-02 7.967000e-01 7.160000e-02
+ 4.576000e-01 6.481000e-01 8.842000e-01 6.654000e-01 8.400000e-01 8.585000e-01 1.776800e+00 -5.000000e-02 -2.600000e-02 2.027400e+00 -3.770000e-02 1.776600e+00 4.504000e-01 4.539000e-01
+ 9.950000e-01 1.179000e-01 4.039000e-01 5.380000e-02 3.093000e-01 8.520000e-02 3.899000e-01 6.880000e-02 3.294000e-01 5.420000e-02 3.797000e-01 8.240000e-02 3.046000e-01 4.090000e-02
+ 3.339000e-01 6.875000e-01 4.558000e-01 1.153400e+00 6.172000e-01 1.192000e+00 5.502000e-01 1.038800e+00 6.202000e-01 1.225200e+00 5.811000e-01 1.007600e+00 3.185000e-01 6.004000e-01
+-4.820000e-02 6.359000e-01 1.800000e-02 8.810000e-01 2.713000e-01 7.287000e-01 -7.900000e-03 1.742900e+00 -7.300000e-02 2.082400e+00 1.420000e-02 -1.830000e-02 5.610000e-02 4.595000e-01
+ 2.457000e-01 8.729000e-01 5.142000e-01 1.241100e+00 6.712000e-01 1.218500e+00 1.593200e+00 1.650000e-01 -7.070000e-02 2.076500e+00 -4.660000e-02 1.782600e+00 3.449000e-01 6.335000e-01
+ 1.229000e-01 4.821000e-01 1.893000e-01 7.599000e-01 1.586000e-01 9.281000e-01 1.126000e-01 8.487000e-01 1.617000e-01 9.455000e-01 1.438000e-01 8.120000e-01 8.710000e-02 4.641000e-01
+ 1.070200e+00 4.060000e-02 9.576000e-01 7.759000e-01 7.389000e-01 6.740000e-01 9.694000e-01 7.624000e-01 6.454000e-01 7.210000e-01 8.924000e-01 8.504000e-01 5.947000e-01 3.001000e-01
+ 1.169300e+00 -7.410000e-02 4.090000e-01 1.405000e-01 3.912000e-01 5.770000e-02 3.398000e-01 2.218000e-01 3.632000e-01 8.360000e-02 3.703000e-01 1.829000e-01 3.115000e-01 8.760000e-02
+ 1.105400e+00 -1.500000e-03 8.807000e-01 8.586000e-01 7.397000e-01 7.915000e-01 8.299000e-01 9.165000e-01 6.437000e-01 8.200000e-01 8.560000e-01 8.872000e-01 5.826000e-01 3.420000e-01
+ 7.364000e-01 3.606000e-01 3.379000e-01 1.395600e+00 3.809000e-01 6.602000e-01 3.742000e-01 1.349900e+00 2.766000e-01 7.495000e-01 3.453000e-01 1.385800e+00 2.625000e-01 5.014000e-01
+ 2.111000e-01 4.445000e-01 3.171000e-01 7.100000e-01 2.735000e-01 9.087000e-01 2.507000e-01 7.881000e-01 3.714000e-01 8.123000e-01 3.026000e-01 7.286000e-01 1.915000e-01 3.995000e-01
+ 1.103900e+00 1.500000e-03 1.563900e+00 1.408000e-01 1.042800e+00 2.625000e-01 1.342200e+00 4.042000e-01 9.119000e-01 3.649000e-01 1.385600e+00 3.508000e-01 7.253000e-01 1.404000e-01
+ 4.195000e-01 8.830000e-02 7.209000e-01 9.850000e-02 9.006000e-01 3.060000e-02 1.774500e+00 -4.860000e-02 4.910000e-02 -5.700000e-02 -4.180000e-02 4.740000e-02 4.286000e-01 3.880000e-02
+ 5.653000e-01 2.091000e-01 8.336000e-01 2.673000e-01 9.022000e-01 3.250000e-01 1.754900e+00 -2.750000e-02 -4.610000e-02 2.045700e+00 9.900000e-03 -1.070000e-02 4.766000e-01 1.708000e-01
+ 1.073400e+00 3.650000e-02 1.302600e+00 4.334000e-01 9.583000e-01 1.296000e-01 1.387600e+00 3.254000e-01 9.933000e-01 4.790000e-02 1.318700e+00 4.104000e-01 7.018000e-01 7.740000e-02
+ 1.012300e+00 9.170000e-02 1.274500e+00 4.656000e-01 1.394300e+00 5.197000e-01 1.596500e+00 1.580000e-01 1.963400e+00 4.470000e-02 -3.710000e-02 1.775800e+00 7.757000e-01 2.109000e-01
+ 3.312000e-01 4.549000e-01 4.088000e-01 8.564000e-01 4.991000e-01 9.237000e-01 3.774000e-01 8.868000e-01 4.258000e-01 1.034300e+00 4.400000e-01 8.127000e-01 2.453000e-01 4.791000e-01
+ 2.755000e-01 5.100000e-02 5.709000e-01 7.640000e-02 6.809000e-01 8.630000e-02 1.552000e+00 2.105000e-01 1.029000e-01 -1.244000e-01 4.730000e-02 -5.740000e-02 3.188000e-01 4.080000e-02
+ 1.982000e-01 4.741000e-01 5.539000e-01 4.219000e-01 5.941000e-01 5.179000e-01 1.645400e+00 9.840000e-02 -2.010000e-02 2.023500e+00 2.800000e-03 -4.000000e-03 2.789000e-01 2.966000e-01
+ 5.457000e-01 5.523000e-01 2.855000e-01 1.444900e+00 2.507000e-01 9.536000e-01 2.293000e-01 1.511200e+00 1.937000e-01 9.833000e-01 2.684000e-01 1.465500e+00 2.168000e-01 6.102000e-01
+-1.760000e-02 7.540000e-01 2.606000e-01 7.783000e-01 3.203000e-01 8.502000e-01 3.800000e-02 1.688500e+00 -8.700000e-03 2.010800e+00 1.600000e-03 -5.200000e-03 1.225000e-01 4.917000e-01
+ 4.159000e-01 3.145000e-01 5.517000e-01 6.108000e-01 6.129000e-01 7.097000e-01 5.831000e-01 5.751000e-01 5.852000e-01 7.686000e-01 6.010000e-01 5.550000e-01 3.130000e-01 3.593000e-01
+ 9.423000e-01 8.490000e-02 1.512500e+00 9.520000e-02 1.424700e+00 4.486000e-01 1.395900e+00 2.259000e-01 1.504800e+00 3.934000e-01 1.365400e+00 2.641000e-01 7.831000e-01 1.587000e-01
+ 4.414000e-01 3.166000e-01 7.875000e-01 2.755000e-01 8.969000e-01 2.846000e-01 1.744600e+00 -1.050000e-02 2.500000e-02 1.969800e+00 6.880000e-02 -8.310000e-02 4.572000e-01 1.650000e-01
+ 4.897000e-01 6.166000e-01 7.778000e-01 7.313000e-01 9.998000e-01 6.125000e-01 1.702800e+00 3.800000e-02 1.101000e-01 1.871500e+00 6.670000e-02 1.654300e+00 4.621000e-01 4.153000e-01
+ 3.592000e-01 1.203000e-01 5.896000e-01 1.628000e-01 7.070000e-01 1.390000e-01 6.235000e-01 1.224000e-01 6.721000e-01 1.972000e-01 6.086000e-01 1.439000e-01 3.612000e-01 6.870000e-02
+ 1.177800e+00 -8.270000e-02 1.425000e+00 2.890000e-02 1.075300e+00 -1.025000e-01 1.426900e+00 3.190000e-02 9.603000e-01 8.000000e-04 1.419000e+00 4.170000e-02 7.187000e-01 1.360000e-02
+ 2.602000e-01 7.164000e-01 7.322000e-01 5.280000e-01 7.810000e-01 6.129000e-01 1.754400e+00 -2.570000e-02 -4.170000e-02 2.048600e+00 -7.420000e-02 8.850000e-02 3.622000e-01 3.902000e-01
+ 9.853000e-01 1.293000e-01 4.345000e-01 2.152000e-01 3.437000e-01 1.954000e-01 4.099000e-01 2.471000e-01 3.284000e-01 2.032000e-01 4.200000e-01 2.330000e-01 3.041000e-01 1.577000e-01
+ 9.117000e-01 1.948000e-01 1.158700e+00 4.074000e-01 1.335200e+00 3.364000e-01 1.714900e+00 1.760000e-02 2.016600e+00 -2.550000e-02 -1.041000e-01 1.856400e+00 7.200000e-01 1.807000e-01
+ 1.140600e+00 -3.580000e-02 6.300000e-01 1.801000e-01 3.542000e-01 3.308000e-01 5.145000e-01 3.221000e-01 4.868000e-01 1.562000e-01 5.023000e-01 3.346000e-01 4.021000e-01 1.433000e-01
+ 6.267000e-01 4.142000e-01 9.552000e-01 6.795000e-01 1.028300e+00 8.437000e-01 9.689000e-01 6.655000e-01 1.223900e+00 6.474000e-01 9.202000e-01 7.226000e-01 5.495000e-01 3.955000e-01
+ 2.915000e-01 2.898000e-01 3.733000e-01 5.469000e-01 3.424000e-01 7.258000e-01 3.200000e-01 6.140000e-01 4.248000e-01 6.449000e-01 2.811000e-01 6.647000e-01 1.979000e-01 3.389000e-01
+ 7.741000e-01 1.946000e-01 1.068400e+00 4.755000e-01 1.394300e+00 3.300000e-01 1.170700e+00 3.506000e-01 1.343000e+00 4.205000e-01 1.218300e+00 2.957000e-01 6.731000e-01 2.077000e-01
+-3.680000e-02 4.017000e-01 6.590000e-02 6.122000e-01 2.108000e-01 5.843000e-01 -7.320000e-02 1.821100e+00 -7.040000e-02 8.380000e-02 -1.620000e-02 1.770000e-02 6.800000e-02 3.089000e-01
+ 3.511000e-01 8.330000e-02 6.243000e-01 4.320000e-02 6.950000e-01 7.220000e-02 6.273000e-01 3.880000e-02 8.073000e-01 -5.250000e-02 6.866000e-01 -2.930000e-02 3.668000e-01 1.780000e-02
+-2.200000e-03 4.328000e-01 9.620000e-02 5.566000e-01 1.032000e-01 6.397000e-01 7.780000e-02 5.799000e-01 1.418000e-01 6.060000e-01 1.540000e-02 6.526000e-01 4.010000e-02 3.400000e-01
+ 1.157000e-01 3.932000e-01 2.233000e-01 5.684000e-01 3.136000e-01 5.740000e-01 2.221000e-01 5.673000e-01 1.697000e-01 7.595000e-01 1.936000e-01 6.002000e-01 1.201000e-01 3.379000e-01
+ 3.699000e-01 7.311000e-01 7.281000e-01 9.934000e-01 6.734000e-01 1.311100e+00 1.734800e+00 -5.500000e-03 1.186000e-01 1.858800e+00 -1.470000e-02 1.746300e+00 3.813000e-01 6.166000e-01
+ 3.891000e-01 2.215000e-01 6.282000e-01 3.252000e-01 7.111000e-01 3.700000e-01 6.102000e-01 3.434000e-01 7.287000e-01 3.707000e-01 5.959000e-01 3.620000e-01 3.536000e-01 1.964000e-01
+ 1.167600e+00 -7.010000e-02 3.770000e-01 1.359000e+00 2.343000e-01 1.332700e+00 4.709000e-01 1.250900e+00 2.915000e-01 1.174700e+00 3.580000e-01 1.382700e+00 3.080000e-01 6.191000e-01
+ 4.259000e-01 4.327000e-01 6.630000e-01 6.835000e-01 6.497000e-01 9.032000e-01 6.208000e-01 7.378000e-01 6.525000e-01 9.307000e-01 6.688000e-01 6.760000e-01 3.576000e-01 4.249000e-01
+ 4.507000e-01 5.850000e-01 7.612000e-01 8.484000e-01 8.878000e-01 9.469000e-01 7.216000e-01 8.978000e-01 7.942000e-01 1.079400e+00 7.377000e-01 8.773000e-01 4.067000e-01 5.303000e-01
+ 1.700000e-01 9.436000e-01 1.486000e-01 1.091900e+00 5.420000e-02 8.650000e-01 2.837000e-01 9.306000e-01 1.378000e-01 7.436000e-01 1.412000e-01 1.099300e+00 1.027000e-01 5.879000e-01
+ 3.313000e-01 2.213000e-01 5.529000e-01 3.276000e-01 7.630000e-01 2.247000e-01 1.775100e+00 -4.960000e-02 -1.123000e-01 2.130400e+00 3.450000e-02 -4.120000e-02 3.109000e-01 1.995000e-01
+-3.970000e-02 8.653000e-01 2.490000e-02 1.106400e+00 1.539000e-01 1.077600e+00 2.170000e-02 1.703100e+00 -3.390000e-02 2.043400e+00 4.890000e-02 -5.940000e-02 9.900000e-03 6.578000e-01
+ 4.160000e-02 2.492000e-01 3.630000e-02 5.778000e-01 2.428000e-01 4.730000e-01 -2.500000e-03 1.733400e+00 -5.520000e-02 6.750000e-02 4.880000e-02 -5.870000e-02 4.570000e-02 2.934000e-01
+ 1.156100e+00 -6.180000e-02 4.096000e-01 1.040000e+00 4.179000e-01 5.648000e-01 4.842000e-01 9.480000e-01 3.375000e-01 6.273000e-01 3.995000e-01 1.051100e+00 3.377000e-01 3.912000e-01
+ 1.151400e+00 -5.380000e-02 5.146000e-01 1.212200e+00 4.147000e-01 8.332000e-01 5.307000e-01 1.194600e+00 3.870000e-01 8.223000e-01 5.730000e-01 1.144800e+00 3.725000e-01 4.698000e-01
+ 8.854000e-01 2.118000e-01 2.810000e-01 5.846000e-01 3.241000e-01 3.542000e-01 3.327000e-01 5.222000e-01 3.007000e-01 3.679000e-01 4.131000e-01 4.262000e-01 2.879000e-01 2.674000e-01
+ 3.638000e-01 3.804000e-01 7.445000e-01 2.988000e-01 8.495000e-01 3.202000e-01 1.906100e+00 -2.026000e-01 0.000000e+00 2.001200e+00 -8.700000e-03 9.600000e-03 3.821000e-01 2.389000e-01
+ 2.077000e-01 4.487000e-01 2.482000e-01 7.953000e-01 3.955000e-01 7.727000e-01 3.535000e-01 6.678000e-01 4.896000e-01 6.782000e-01 3.969000e-01 6.183000e-01 2.022000e-01 3.902000e-01
+ 2.329000e-01 6.285000e-01 5.094000e-01 8.113000e-01 6.033000e-01 8.956000e-01 5.496000e-01 7.599000e-01 6.561000e-01 8.529000e-01 5.272000e-01 7.862000e-01 3.007000e-01 4.596000e-01
+ 2.791000e-01 3.898000e-01 3.058000e-01 7.622000e-01 5.019000e-01 6.861000e-01 4.306000e-01 6.145000e-01 4.562000e-01 7.582000e-01 4.978000e-01 5.388000e-01 2.469000e-01 3.571000e-01
+ 7.123000e-01 4.088000e-01 4.206000e-01 5.596000e-01 2.809000e-01 4.953000e-01 3.921000e-01 5.953000e-01 3.269000e-01 4.263000e-01 3.688000e-01 6.182000e-01 2.817000e-01 3.309000e-01
+ 4.560000e-01 6.668000e-01 9.033000e-01 7.476000e-01 1.013600e+00 7.590000e-01 1.754300e+00 -2.050000e-02 1.967200e+00 3.600000e-02 -5.360000e-02 1.796700e+00 5.007000e-01 4.429000e-01
+ 8.890000e-02 1.325000e-01 4.074000e-01 1.244000e-01 5.965000e-01 4.450000e-02 1.626600e+00 1.235000e-01 -4.290000e-02 5.310000e-02 4.770000e-02 -5.700000e-02 2.280000e-01 6.230000e-02
+ 1.146600e+00 -4.920000e-02 7.559000e-01 2.360000e-02 5.875000e-01 5.060000e-02 7.465000e-01 3.910000e-02 6.143000e-01 2.300000e-03 8.245000e-01 -5.390000e-02 5.154000e-01 7.700000e-03
+ 8.170000e-02 2.001000e-01 1.828000e-01 2.480000e-01 5.410000e-02 4.648000e-01 1.310000e-01 3.071000e-01 6.150000e-02 4.636000e-01 1.292000e-01 3.150000e-01 6.720000e-02 1.890000e-01
+ 3.180000e-02 6.007000e-01 9.280000e-02 8.930000e-01 6.660000e-02 1.058400e+00 1.871000e-01 7.811000e-01 1.862000e-01 9.383000e-01 1.827000e-01 7.888000e-01 4.380000e-02 5.275000e-01
+ 4.072000e-01 3.659000e-01 5.085000e-01 7.296000e-01 5.936000e-01 8.117000e-01 6.028000e-01 6.189000e-01 5.598000e-01 8.765000e-01 6.076000e-01 6.148000e-01 3.187000e-01 3.925000e-01
+ 2.243000e-01 6.124000e-01 4.186000e-01 7.552000e-01 5.787000e-01 7.057000e-01 1.668500e+00 7.700000e-02 -8.110000e-02 2.092600e+00 -5.970000e-02 7.010000e-02 2.660000e-01 4.185000e-01
+ 1.119900e+00 -1.730000e-02 7.295000e-01 1.010000e+00 6.374000e-01 6.944000e-01 7.769000e-01 9.545000e-01 7.149000e-01 5.439000e-01 7.168000e-01 1.024200e+00 5.167000e-01 3.524000e-01
+ 4.520000e-01 4.722000e-01 6.902000e-01 7.582000e-01 9.625000e-01 6.599000e-01 7.994000e-01 6.382000e-01 8.570000e-01 8.108000e-01 7.531000e-01 6.950000e-01 4.221000e-01 4.123000e-01
+ 1.081400e+00 2.580000e-02 7.381000e-01 8.548000e-01 5.455000e-01 4.843000e-01 8.089000e-01 7.721000e-01 6.447000e-01 3.352000e-01 7.806000e-01 8.049000e-01 5.102000e-01 2.349000e-01
+-3.530000e-02 9.139000e-01 3.109000e-01 8.767000e-01 3.875000e-01 9.291000e-01 1.760000e-02 1.708500e+00 5.190000e-02 1.937300e+00 -2.270000e-02 2.460000e-02 1.649000e-01 5.366000e-01
+ 9.807000e-01 1.179000e-01 4.309000e-01 2.824000e-01 3.117000e-01 2.823000e-01 4.382000e-01 2.777000e-01 3.246000e-01 2.548000e-01 4.180000e-01 3.002000e-01 3.007000e-01 1.943000e-01
+ 3.250000e-01 2.790000e-01 7.360000e-01 1.607000e-01 7.521000e-01 2.878000e-01 1.784500e+00 -6.330000e-02 -7.240000e-02 2.082300e+00 3.470000e-02 -4.150000e-02 3.443000e-01 1.906000e-01
+ 5.688000e-01 9.040000e-02 8.446000e-01 1.970000e-01 9.281000e-01 2.649000e-01 8.492000e-01 1.929000e-01 8.796000e-01 3.376000e-01 7.574000e-01 3.030000e-01 4.745000e-01 1.294000e-01
+ 3.120000e-01 4.004000e-01 6.671000e-01 3.566000e-01 5.774000e-01 6.072000e-01 1.690600e+00 5.000000e-02 1.290000e-02 1.987400e+00 -1.380000e-02 1.650000e-02 3.382000e-01 2.667000e-01
+ 1.663000e-01 6.186000e-01 1.562000e-01 1.084300e+00 1.519000e-01 1.267800e+00 1.862000e-01 1.049100e+00 3.050000e-01 1.105300e+00 1.669000e-01 1.073600e+00 1.202000e-01 5.912000e-01
+ 3.376000e-01 5.206000e-01 4.022000e-01 9.626000e-01 6.526000e-01 8.635000e-01 5.593000e-01 7.763000e-01 5.713000e-01 9.856000e-01 6.018000e-01 7.242000e-01 3.129000e-01 4.596000e-01
+ 4.579000e-01 6.553000e-01 2.936000e-01 8.654000e-01 2.920000e-01 5.680000e-01 2.777000e-01 8.882000e-01 2.360000e-01 6.118000e-01 2.499000e-01 9.187000e-01 2.159000e-01 4.540000e-01
+ 3.084000e-01 5.384000e-01 6.887000e-01 4.607000e-01 7.591000e-01 5.193000e-01 1.674400e+00 6.190000e-02 -2.330000e-02 2.028300e+00 -1.730000e-02 2.100000e-02 3.601000e-01 3.235000e-01
+ 2.808000e-01 2.563000e-01 4.488000e-01 3.873000e-01 5.796000e-01 3.615000e-01 4.806000e-01 3.485000e-01 5.999000e-01 3.518000e-01 4.774000e-01 3.545000e-01 2.802000e-01 1.986000e-01
+ 8.380000e-02 1.481000e-01 1.604000e-01 1.943000e-01 2.514000e-01 1.399000e-01 2.079000e-01 1.384000e-01 2.309000e-01 1.706000e-01 1.796000e-01 1.728000e-01 1.045000e-01 9.790000e-02
+ 5.270000e-02 4.620000e-01 3.844000e-01 4.432000e-01 5.097000e-01 4.337000e-01 -2.350000e-02 1.761600e+00 -9.900000e-03 1.100000e-02 3.140000e-02 -3.780000e-02 1.804000e-01 3.003000e-01
+ 4.784000e-01 -3.000000e-03 7.456000e-01 2.300000e-03 7.309000e-01 1.364000e-01 6.966000e-01 5.930000e-02 7.600000e-01 1.187000e-01 7.205000e-01 3.540000e-02 4.033000e-01 3.320000e-02
+ 3.585000e-01 6.260000e-01 7.743000e-01 5.065000e-01 7.985000e-01 6.149000e-01 1.737500e+00 -1.090000e-02 4.900000e-02 1.945400e+00 -8.970000e-02 1.065000e-01 4.380000e-01 3.180000e-01
+ 5.082000e-01 5.910000e-01 7.890000e-01 7.576000e-01 8.673000e-01 8.025000e-01 1.677600e+00 6.540000e-02 -5.020000e-02 2.058300e+00 8.400000e-02 1.632800e+00 4.487000e-01 4.481000e-01
+ 3.315000e-01 5.409000e-01 6.587000e-01 5.250000e-01 6.879000e-01 6.287000e-01 1.730300e+00 0.000000e+00 8.930000e-02 1.898600e+00 4.910000e-02 -5.990000e-02 3.776000e-01 3.192000e-01
+ 7.500000e-03 7.326000e-01 2.217000e-01 8.010000e-01 2.055000e-01 9.643000e-01 6.180000e-02 1.656800e+00 -5.870000e-02 2.070400e+00 -2.560000e-02 3.100000e-02 4.460000e-02 5.755000e-01
+-4.240000e-02 7.591000e-01 3.428000e-01 6.647000e-01 3.545000e-01 7.933000e-01 5.000000e-02 1.675500e+00 -9.690000e-02 2.112200e+00 -1.800000e-03 2.400000e-03 1.535000e-01 4.441000e-01
+ 3.393000e-01 5.055000e-01 6.030000e-01 7.080000e-01 7.056000e-01 7.814000e-01 6.102000e-01 7.022000e-01 7.245000e-01 7.864000e-01 5.652000e-01 7.547000e-01 3.327000e-01 4.272000e-01
+ 6.824000e-01 4.344000e-01 1.050700e+00 6.378000e-01 1.118400e+00 7.004000e-01 1.775100e+00 -5.320000e-02 1.875000e+00 1.442000e-01 3.940000e-02 1.686500e+00 6.244000e-01 3.308000e-01
+ 3.648000e-01 5.643000e-01 7.458000e-01 4.867000e-01 8.342000e-01 5.187000e-01 1.737500e+00 -6.500000e-03 -9.810000e-02 2.117800e+00 -5.920000e-02 7.120000e-02 3.983000e-01 3.318000e-01
+ 1.129600e+00 -3.020000e-02 6.534000e-01 1.097600e+00 6.021000e-01 4.781000e-01 7.221000e-01 1.015500e+00 6.298000e-01 4.144000e-01 7.729000e-01 9.528000e-01 5.045000e-01 2.708000e-01
+ 4.052000e-01 3.131000e-01 6.783000e-01 4.436000e-01 7.699000e-01 5.071000e-01 6.499000e-01 4.775000e-01 8.500000e-01 4.314000e-01 7.182000e-01 3.959000e-01 4.053000e-01 2.391000e-01
+ 1.131800e+00 -3.150000e-02 6.668000e-01 5.677000e-01 5.198000e-01 3.855000e-01 6.295000e-01 6.142000e-01 4.733000e-01 4.171000e-01 7.019000e-01 5.303000e-01 4.325000e-01 2.588000e-01
+-1.350000e-02 9.692000e-01 6.860000e-02 1.201600e+00 2.007000e-01 1.184700e+00 -1.011000e-01 1.850400e+00 2.550000e-02 1.973700e+00 6.100000e-02 -7.320000e-02 5.340000e-02 6.952000e-01
+ 1.009400e+00 1.134000e-01 4.213000e-01 8.066000e-01 3.547000e-01 5.525000e-01 4.474000e-01 7.713000e-01 4.188000e-01 4.510000e-01 5.455000e-01 6.543000e-01 3.627000e-01 3.198000e-01
+ 4.146000e-01 4.600000e-02 7.304000e-01 4.780000e-02 8.895000e-01 -9.000000e-04 1.766900e+00 -4.180000e-02 1.940000e-02 -2.560000e-02 1.600000e-03 -2.100000e-03 4.215000e-01 2.020000e-02
+ 4.200000e-03 7.406000e-01 4.619000e-01 5.687000e-01 5.006000e-01 6.651000e-01 1.647100e+00 9.630000e-02 -8.380000e-02 2.093600e+00 1.680000e-02 -2.180000e-02 2.127000e-01 3.993000e-01
+ 8.960000e-01 2.122000e-01 1.236100e+00 2.560000e-01 1.376200e+00 2.300000e-01 1.731100e+00 5.000000e-04 1.994500e+00 4.600000e-03 -2.330000e-02 1.759100e+00 7.241000e-01 1.468000e-01
+ 1.125000e+00 -2.640000e-02 1.185100e+00 5.672000e-01 9.300000e-01 2.285000e-01 1.218800e+00 5.273000e-01 8.381000e-01 2.953000e-01 1.288500e+00 4.426000e-01 7.039000e-01 1.022000e-01
+ 9.570000e-02 2.974000e-01 4.062000e-01 1.635000e-01 4.607000e-01 1.812000e-01 3.996000e-01 1.672000e-01 4.821000e-01 1.683000e-01 3.296000e-01 2.546000e-01 2.160000e-01 1.141000e-01
+ 1.066400e+00 5.060000e-02 4.352000e-01 1.309700e+00 3.315000e-01 1.332100e+00 4.690000e-01 1.277800e+00 4.950000e-01 1.028800e+00 4.517000e-01 1.293800e+00 3.870000e-01 5.589000e-01
+ 9.807000e-01 1.493000e-01 1.107100e+00 6.114000e-01 7.685000e-01 2.679000e-01 9.559000e-01 7.915000e-01 7.832000e-01 2.189000e-01 1.040300e+00 6.888000e-01 6.295000e-01 1.212000e-01
+ 4.976000e-01 3.970000e-01 6.387000e-01 7.825000e-01 8.251000e-01 7.792000e-01 7.457000e-01 6.585000e-01 7.633000e-01 8.793000e-01 7.247000e-01 6.854000e-01 3.927000e-01 4.256000e-01
+ 7.080000e-02 8.437000e-01 1.565000e-01 1.267600e+00 2.215000e-01 1.388900e+00 2.746000e-01 1.129200e+00 2.840000e-01 1.339000e+00 1.668000e-01 1.250800e+00 1.165000e-01 7.000000e-01
+ 2.704000e-01 7.288000e-01 6.289000e-01 6.757000e-01 7.274000e-01 7.037000e-01 1.694200e+00 4.620000e-02 5.750000e-02 1.930000e+00 -1.150000e-02 1.200000e-02 3.791000e-01 3.871000e-01
+ 3.198000e-01 7.852000e-01 6.013000e-01 1.135000e+00 7.234000e-01 1.198300e+00 1.628900e+00 1.248000e-01 -4.420000e-02 2.053300e+00 8.170000e-02 1.635800e+00 3.488000e-01 6.410000e-01
+ 8.978000e-01 1.226000e-01 1.111100e+00 2.376000e-01 1.333900e+00 1.199000e-01 1.906700e+00 -2.029000e-01 1.955700e+00 4.500000e-02 1.680000e-02 -1.970000e-02 7.193000e-01 6.620000e-02
+ 3.376000e-01 4.681000e-01 7.722000e-01 3.205000e-01 7.227000e-01 5.211000e-01 1.563600e+00 1.941000e-01 5.300000e-03 1.993600e+00 -4.300000e-02 5.260000e-02 3.808000e-01 2.757000e-01
+-1.780000e-02 9.781000e-01 2.480000e-01 1.004500e+00 2.617000e-01 1.130300e+00 -5.760000e-02 1.800700e+00 3.090000e-02 1.965300e+00 -6.770000e-02 7.990000e-02 9.110000e-02 6.573000e-01
+ 3.065000e-01 4.802000e-01 5.440000e-01 6.745000e-01 5.246000e-01 8.795000e-01 4.652000e-01 7.694000e-01 5.639000e-01 8.570000e-01 4.735000e-01 7.587000e-01 2.864000e-01 4.227000e-01
+ 7.427000e-01 7.390000e-02 1.189300e+00 8.300000e-02 1.414300e+00 2.050000e-02 1.250600e+00 6.000000e-03 1.441500e+00 1.240000e-02 1.193500e+00 7.420000e-02 7.161000e-01 1.110000e-02
+ 4.666000e-01 6.226000e-01 8.800000e-01 7.976000e-01 9.467000e-01 9.688000e-01 6.725000e-01 1.039400e+00 8.872000e-01 1.067700e+00 7.361000e-01 9.614000e-01 4.290000e-01 5.515000e-01
+ 3.063000e-01 6.264000e-01 7.307000e-01 4.934000e-01 8.177000e-01 5.290000e-01 1.775700e+00 -4.860000e-02 -1.500000e-02 2.013600e+00 -5.090000e-02 6.170000e-02 4.033000e-01 3.219000e-01
+-2.300000e-03 9.057000e-01 2.291000e-01 9.915000e-01 4.589000e-01 8.647000e-01 5.000000e-04 1.731800e+00 4.500000e-03 1.990400e+00 -5.000000e-03 5.300000e-03 1.490000e-01 5.679000e-01
+ 7.854000e-01 3.098000e-01 2.999000e-01 6.876000e-01 2.856000e-01 4.767000e-01 3.644000e-01 6.130000e-01 2.626000e-01 4.918000e-01 3.000000e-01 6.889000e-01 2.698000e-01 3.384000e-01
+ 4.141000e-01 2.904000e-01 6.394000e-01 3.938000e-01 8.197000e-01 3.237000e-01 1.624800e+00 1.227000e-01 -1.530000e-02 2.018500e+00 -3.490000e-02 4.160000e-02 4.051000e-01 1.915000e-01
+ 6.392000e-01 4.688000e-01 9.039000e-01 8.416000e-01 1.061400e+00 8.376000e-01 1.598700e+00 1.593000e-01 1.972200e+00 3.310000e-02 -9.980000e-02 1.852400e+00 5.675000e-01 4.143000e-01
+ 6.436000e-01 2.330000e-02 1.019000e+00 -4.770000e-02 9.992000e-01 1.174000e-01 1.605600e+00 1.474000e-01 2.067800e+00 -8.150000e-02 5.890000e-02 -6.990000e-02 5.617000e-01 1.030000e-02
+ 1.056800e+00 5.610000e-02 9.277000e-01 3.840000e-01 7.862000e-01 1.421000e-01 9.047000e-01 4.088000e-01 7.154000e-01 1.977000e-01 9.725000e-01 3.286000e-01 5.982000e-01 1.060000e-01
+ 2.863000e-01 2.397000e-01 3.017000e-01 5.512000e-01 4.118000e-01 5.414000e-01 4.823000e-01 3.335000e-01 2.984000e-01 6.918000e-01 4.641000e-01 3.558000e-01 2.224000e-01 2.593000e-01
+ 4.731000e-01 8.560000e-02 7.429000e-01 1.325000e-01 9.045000e-01 8.170000e-02 8.110000e-01 4.620000e-02 8.391000e-01 1.784000e-01 7.406000e-01 1.352000e-01 4.483000e-01 5.340000e-02
+ 1.335000e-01 9.647000e-01 4.820000e-02 1.051100e+00 1.408000e-01 6.785000e-01 3.630000e-02 1.068100e+00 7.970000e-02 7.308000e-01 1.641000e-01 9.179000e-01 4.960000e-02 6.001000e-01
+ 4.580000e-02 9.044000e-01 3.932000e-01 8.614000e-01 5.322000e-01 8.431000e-01 1.675300e+00 6.230000e-02 3.500000e-02 1.957700e+00 -3.200000e-03 3.000000e-03 2.104000e-01 5.312000e-01
+ 1.039000e+00 7.570000e-02 7.307000e-01 1.009800e+00 5.982000e-01 1.377000e+00 7.363000e-01 1.004300e+00 6.714000e-01 1.031500e+00 8.457000e-01 8.775000e-01 5.253000e-01 4.539000e-01
+ 5.764000e-01 3.032000e-01 9.577000e-01 4.120000e-01 9.673000e-01 6.153000e-01 9.352000e-01 4.392000e-01 9.752000e-01 6.314000e-01 7.572000e-01 6.480000e-01 5.075000e-01 2.932000e-01
+ 1.140700e+00 -4.550000e-02 9.417000e-01 7.776000e-01 7.075000e-01 5.760000e-01 8.199000e-01 9.228000e-01 6.980000e-01 5.391000e-01 9.480000e-01 7.681000e-01 5.668000e-01 2.880000e-01
+-2.900000e-02 6.733000e-01 3.202000e-01 6.315000e-01 4.043000e-01 6.685000e-01 -7.370000e-02 1.813700e+00 1.229000e-01 1.851200e+00 4.170000e-02 -5.200000e-02 1.569000e-01 3.977000e-01
+ 3.265000e-01 4.894000e-01 6.227000e-01 5.130000e-01 7.186000e-01 5.417000e-01 1.765500e+00 -3.930000e-02 -4.840000e-02 2.053500e+00 9.800000e-03 -1.190000e-02 3.285000e-01 3.432000e-01
+ 1.117100e+00 -8.600000e-03 7.302000e-01 3.616000e-01 6.130000e-01 2.139000e-01 6.646000e-01 4.410000e-01 6.113000e-01 1.987000e-01 7.062000e-01 3.899000e-01 4.921000e-01 1.567000e-01
+ 1.141900e+00 -4.700000e-02 6.574000e-01 7.773000e-01 5.479000e-01 4.382000e-01 7.244000e-01 6.954000e-01 5.710000e-01 3.823000e-01 7.053000e-01 7.203000e-01 4.940000e-01 2.317000e-01
+ 4.965000e-01 1.738000e-01 7.885000e-01 2.035000e-01 9.662000e-01 1.357000e-01 1.835300e+00 -1.154000e-01 -1.560000e-02 2.021700e+00 -1.450000e-02 1.650000e-02 4.759000e-01 9.810000e-02
+ 4.544000e-01 3.766000e-01 8.270000e-01 4.520000e-01 7.125000e-01 7.868000e-01 6.932000e-01 6.157000e-01 7.669000e-01 7.423000e-01 5.673000e-01 7.614000e-01 3.870000e-01 3.691000e-01
+ 4.055000e-01 3.654000e-01 7.823000e-01 3.933000e-01 7.759000e-01 5.908000e-01 7.125000e-01 4.798000e-01 9.026000e-01 4.538000e-01 7.434000e-01 4.432000e-01 4.013000e-01 2.881000e-01
+ 5.728000e-01 2.989000e-01 8.306000e-01 3.644000e-01 9.304000e-01 3.902000e-01 1.696000e+00 4.100000e-02 -8.430000e-02 2.101000e+00 -7.130000e-02 8.580000e-02 5.000000e-01 2.026000e-01
+ 3.376000e-01 7.775000e-01 3.464000e-01 1.362100e+00 2.232000e-01 9.473000e-01 2.115000e-01 1.521300e+00 2.551000e-01 8.705000e-01 2.435000e-01 1.486300e+00 1.729000e-01 6.418000e-01
+ 1.090600e+00 1.860000e-02 6.090000e-01 1.122400e+00 4.901000e-01 5.531000e-01 5.431000e-01 1.201300e+00 5.042000e-01 5.040000e-01 5.107000e-01 1.237100e+00 4.253000e-01 3.304000e-01
+ 1.114300e+00 -1.080000e-02 5.238000e-01 4.260000e-01 3.534000e-01 4.049000e-01 5.256000e-01 4.235000e-01 4.289000e-01 2.981000e-01 5.392000e-01 4.056000e-01 3.375000e-01 2.647000e-01
+ 4.647000e-01 9.610000e-02 8.450000e-01 1.090000e-02 9.376000e-01 3.980000e-02 7.987000e-01 6.400000e-02 8.026000e-01 2.185000e-01 7.818000e-01 8.880000e-02 4.603000e-01 3.840000e-02
+ 1.721000e-01 2.183000e-01 2.819000e-01 3.280000e-01 3.557000e-01 3.364000e-01 2.338000e-01 3.847000e-01 3.266000e-01 3.775000e-01 2.295000e-01 3.909000e-01 1.535000e-01 2.003000e-01
+ 1.860000e-02 2.330000e-01 8.280000e-02 2.981000e-01 6.380000e-02 3.789000e-01 -1.660000e-02 4.184000e-01 1.610000e-01 2.707000e-01 8.580000e-02 2.988000e-01 3.820000e-02 1.848000e-01
+ 4.782000e-01 4.641000e-01 8.946000e-01 3.435000e-01 8.573000e-01 5.357000e-01 1.875700e+00 -1.691000e-01 -6.900000e-03 2.014400e+00 2.090000e-02 -2.310000e-02 4.434000e-01 3.007000e-01
+ 3.309000e-01 4.250000e-01 4.928000e-01 6.981000e-01 6.051000e-01 7.404000e-01 6.155000e-01 5.528000e-01 6.382000e-01 7.205000e-01 5.233000e-01 6.605000e-01 3.175000e-01 3.624000e-01
+ 2.536000e-01 1.080000e-01 5.554000e-01 1.227000e-01 7.170000e-01 7.060000e-02 1.696900e+00 4.170000e-02 -1.440000e-02 1.760000e-02 -1.016000e-01 1.216000e-01 3.275000e-01 4.920000e-02
+ 3.390000e-01 3.020000e-01 5.153000e-01 4.942000e-01 5.936000e-01 5.545000e-01 5.314000e-01 4.704000e-01 6.225000e-01 5.370000e-01 5.093000e-01 4.972000e-01 3.172000e-01 2.615000e-01
+ 1.167900e+00 -7.670000e-02 1.151900e+00 5.657000e-01 8.234000e-01 1.057900e+00 1.061100e+00 6.778000e-01 6.292000e-01 1.053300e+00 1.050300e+00 6.942000e-01 6.490000e-01 3.211000e-01
+ 4.128000e-01 6.886000e-01 7.720000e-01 6.333000e-01 8.191000e-01 7.276000e-01 1.696900e+00 4.170000e-02 -1.400000e-03 1.999100e+00 -2.770000e-02 1.763800e+00 4.395000e-01 3.880000e-01
+ 2.401000e-01 8.456000e-01 2.801000e-01 1.440500e+00 3.156000e-01 1.645200e+00 4.983000e-01 1.182000e+00 4.511000e-01 1.513000e+00 4.349000e-01 1.260300e+00 2.223000e-01 7.598000e-01
+ 3.190000e-02 2.327000e-01 1.329000e-01 4.503000e-01 1.820000e-01 5.382000e-01 1.320000e-01 1.579700e+00 6.880000e-02 -8.450000e-02 -1.080000e-02 1.390000e-02 8.020000e-02 2.422000e-01
+ 4.039000e-01 3.573000e-01 6.585000e-01 5.334000e-01 6.388000e-01 7.320000e-01 6.293000e-01 5.603000e-01 6.803000e-01 7.047000e-01 5.667000e-01 6.358000e-01 3.484000e-01 3.435000e-01
+ 1.027700e+00 8.760000e-02 5.360000e-01 1.174600e+00 3.294000e-01 7.892000e-01 3.724000e-01 1.366100e+00 2.953000e-01 7.905000e-01 4.678000e-01 1.253200e+00 3.132000e-01 4.753000e-01
+ 6.950000e-02 4.076000e-01 1.708000e-01 5.636000e-01 1.306000e-01 7.205000e-01 -1.290000e-02 7.861000e-01 1.415000e-01 7.203000e-01 6.850000e-02 6.867000e-01 5.100000e-02 3.835000e-01
+ 5.578000e-01 4.956000e-01 8.414000e-01 5.372000e-01 9.265000e-01 5.695000e-01 1.720000e+00 1.960000e-02 7.740000e-02 1.906200e+00 -9.720000e-02 1.850300e+00 4.662000e-01 3.445000e-01
+ 2.043000e-01 1.528000e-01 3.941000e-01 1.483000e-01 4.314000e-01 1.899000e-01 4.244000e-01 1.136000e-01 5.053000e-01 1.130000e-01 4.428000e-01 8.950000e-02 2.396000e-01 7.130000e-02
+ 3.115000e-01 6.206000e-01 5.196000e-01 9.349000e-01 4.160000e-01 1.275600e+00 4.773000e-01 9.806000e-01 5.755000e-01 1.103300e+00 3.650000e-01 1.116200e+00 2.662000e-01 5.800000e-01
+ 1.036700e+00 8.220000e-02 8.868000e-01 8.528000e-01 7.260000e-01 4.464000e-01 1.059900e+00 6.539000e-01 6.681000e-01 4.769000e-01 9.639000e-01 7.606000e-01 5.826000e-01 2.310000e-01
+ 1.069800e+00 4.080000e-02 4.507000e-01 2.553000e-01 3.520000e-01 2.347000e-01 4.403000e-01 2.715000e-01 3.898000e-01 1.776000e-01 4.880000e-01 2.127000e-01 3.393000e-01 1.490000e-01
+ 9.398000e-01 9.490000e-02 1.514900e+00 9.620000e-02 1.657200e+00 1.844000e-01 1.592300e+00 4.300000e-03 1.785300e+00 7.150000e-02 1.490300e+00 1.233000e-01 8.673000e-01 6.500000e-02
+ 2.916000e-01 8.154000e-01 2.496000e-01 7.557000e-01 7.570000e-02 7.302000e-01 2.293000e-01 7.797000e-01 1.223000e-01 6.540000e-01 1.639000e-01 8.590000e-01 1.455000e-01 4.776000e-01
+ 1.027000e-01 1.016100e+00 1.556000e-01 1.566700e+00 1.183000e-01 9.786000e-01 1.365000e-01 1.589500e+00 1.133000e-01 9.559000e-01 1.248000e-01 1.605400e+00 8.940000e-02 6.949000e-01
+ 1.103500e+00 3.500000e-03 5.619000e-01 1.930000e-01 4.270000e-01 1.961000e-01 5.009000e-01 2.624000e-01 4.615000e-01 1.391000e-01 5.809000e-01 1.712000e-01 3.970000e-01 1.167000e-01
+ 1.000000e-03 9.440000e-01 3.068000e-01 9.555000e-01 4.642000e-01 9.027000e-01 -1.152000e-01 1.865900e+00 -8.080000e-02 2.098800e+00 -8.500000e-03 1.020000e-02 1.939000e-01 5.414000e-01
+ 4.455000e-01 6.606000e-01 2.377000e-01 6.792000e-01 2.448000e-01 4.713000e-01 2.568000e-01 6.523000e-01 3.088000e-01 3.794000e-01 2.070000e-01 7.139000e-01 1.991000e-01 3.831000e-01
+ 3.431000e-01 3.872000e-01 5.262000e-01 6.181000e-01 5.925000e-01 7.169000e-01 6.176000e-01 5.152000e-01 6.126000e-01 7.107000e-01 4.996000e-01 6.554000e-01 3.275000e-01 3.312000e-01
+ 3.390000e-02 6.709000e-01 4.034000e-01 6.058000e-01 4.849000e-01 6.530000e-01 1.696000e+00 4.940000e-02 -7.460000e-02 2.088600e+00 -6.100000e-03 7.900000e-03 2.012000e-01 3.928000e-01
+-3.340000e-02 1.136700e+00 8.860000e-02 1.330500e+00 2.922000e-01 1.235300e+00 1.830000e-02 1.712800e+00 -8.160000e-02 2.100200e+00 3.500000e-03 1.726300e+00 7.930000e-02 7.498000e-01
+ 1.158900e+00 -6.460000e-02 4.903000e-01 1.257400e+00 5.872000e-01 4.286000e-01 5.796000e-01 1.149900e+00 5.293000e-01 4.681000e-01 5.713000e-01 1.158500e+00 4.171000e-01 3.362000e-01
+ 1.061400e+00 5.460000e-02 4.624000e-01 4.138000e-01 4.538000e-01 2.395000e-01 6.261000e-01 2.194000e-01 4.383000e-01 2.373000e-01 5.559000e-01 2.980000e-01 3.813000e-01 1.803000e-01
+-6.870000e-02 1.177000e+00 3.070000e-01 1.094200e+00 3.066000e-01 1.239500e+00 8.420000e-02 1.636600e+00 -2.100000e-03 1.999800e+00 -3.140000e-02 1.768700e+00 1.517000e-01 6.749000e-01
+ 4.358000e-01 5.687000e-01 7.750000e-01 5.402000e-01 9.538000e-01 4.687000e-01 1.750700e+00 -2.560000e-02 1.563000e-01 1.817000e+00 6.030000e-02 -7.160000e-02 4.426000e-01 3.335000e-01
+ 3.493000e-01 3.879000e-01 4.468000e-01 7.277000e-01 5.066000e-01 8.343000e-01 6.364000e-01 5.005000e-01 6.528000e-01 6.812000e-01 4.985000e-01 6.694000e-01 3.007000e-01 3.705000e-01
+ 3.451000e-01 3.304000e-01 4.110000e-01 6.678000e-01 4.958000e-01 7.328000e-01 4.974000e-01 5.712000e-01 4.849000e-01 7.611000e-01 3.385000e-01 7.543000e-01 2.568000e-01 3.634000e-01
+ 6.628000e-01 4.250000e-01 2.748000e-01 2.046000e-01 1.555000e-01 2.684000e-01 2.439000e-01 2.413000e-01 2.985000e-01 8.700000e-02 2.819000e-01 1.962000e-01 2.311000e-01 1.262000e-01
+ 5.381000e-01 2.008000e-01 9.185000e-01 2.281000e-01 1.066400e+00 2.308000e-01 9.062000e-01 2.368000e-01 9.814000e-01 3.535000e-01 8.856000e-01 2.679000e-01 5.252000e-01 1.371000e-01
+ 1.112900e+00 -9.100000e-03 8.964000e-01 8.369000e-01 6.871000e-01 7.348000e-01 8.873000e-01 8.529000e-01 7.308000e-01 6.121000e-01 8.880000e-01 8.495000e-01 5.774000e-01 3.174000e-01
+ 9.408000e-01 1.572000e-01 1.180300e+00 3.368000e-01 1.296200e+00 3.425000e-01 1.684700e+00 5.910000e-02 2.001600e+00 2.300000e-03 4.320000e-02 1.685900e+00 7.190000e-01 1.595000e-01
+ 1.581000e-01 3.713000e-01 3.274000e-01 4.837000e-01 2.731000e-01 6.740000e-01 4.187000e-01 3.731000e-01 3.721000e-01 5.650000e-01 3.401000e-01 4.673000e-01 1.892000e-01 2.795000e-01
+ 3.393000e-01 1.388000e-01 2.235000e-01 3.140000e-02 7.320000e-02 1.648000e-01 2.143000e-01 4.110000e-02 1.466000e-01 7.950000e-02 1.840000e-01 7.610000e-02 1.639000e-01 4.260000e-02
+ 2.449000e-01 1.485000e-01 1.748000e-01 3.990000e-02 7.900000e-02 1.229000e-01 1.639000e-01 5.250000e-02 1.908000e-01 -1.550000e-02 7.440000e-02 1.631000e-01 1.260000e-01 5.300000e-02
+ 3.539000e-01 7.224000e-01 4.408000e-01 1.274400e+00 6.796000e-01 1.237900e+00 4.989000e-01 1.199600e+00 6.023000e-01 1.362300e+00 4.924000e-01 1.209500e+00 2.847000e-01 6.989000e-01
+ 4.341000e-01 4.468000e-01 6.116000e-01 7.835000e-01 7.314000e-01 8.503000e-01 6.383000e-01 7.511000e-01 8.338000e-01 7.523000e-01 6.846000e-01 6.988000e-01 3.918000e-01 4.062000e-01
+ 5.380000e-01 4.697000e-01 7.407000e-01 8.628000e-01 7.885000e-01 1.048800e+00 7.124000e-01 8.969000e-01 9.390000e-01 9.041000e-01 7.319000e-01 8.754000e-01 4.184000e-01 5.099000e-01
+ 2.920000e-01 8.900000e-02 4.256000e-01 1.747000e-01 4.704000e-01 2.201000e-01 4.925000e-01 9.680000e-02 4.691000e-01 2.292000e-01 4.426000e-01 1.539000e-01 2.753000e-01 6.600000e-02
+ 4.122000e-01 8.940000e-02 5.834000e-01 2.571000e-01 6.954000e-01 2.638000e-01 1.677400e+00 6.480000e-02 -2.700000e-03 2.000000e-03 1.870000e-02 -2.020000e-02 3.243000e-01 1.595000e-01
+-5.000000e-04 1.120800e+00 6.350000e-02 1.665100e+00 -5.980000e-02 1.582700e+00 -7.100000e-03 1.746900e+00 8.840000e-02 1.332500e+00 1.032000e-01 1.617900e+00 3.190000e-02 8.864000e-01
+ 2.250000e-02 4.186000e-01 2.250000e-02 2.158000e-01 4.480000e-02 1.556000e-01 6.030000e-02 1.744000e-01 6.030000e-02 1.389000e-01 -2.940000e-02 2.825000e-01 1.240000e-02 1.834000e-01
+ 1.856000e-01 3.467000e-01 6.820000e-02 2.194000e-01 4.480000e-02 2.059000e-01 9.490000e-02 1.882000e-01 3.840000e-02 2.095000e-01 5.270000e-02 2.388000e-01 7.130000e-02 1.545000e-01
+ 5.003000e-01 2.536000e-01 1.001900e+00 1.310000e-01 1.054300e+00 2.531000e-01 8.935000e-01 2.608000e-01 1.017600e+00 3.172000e-01 9.822000e-01 1.566000e-01 5.335000e-01 1.295000e-01
+ 4.205000e-01 6.878000e-01 8.430000e-02 1.679500e+00 1.585000e-01 9.973000e-01 2.664000e-01 1.464800e+00 1.663000e-01 9.523000e-01 3.439000e-01 1.375300e+00 1.936000e-01 6.086000e-01
+ 7.230000e-01 2.897000e-01 1.061700e+00 5.399000e-01 1.291800e+00 5.118000e-01 1.153700e+00 4.307000e-01 1.208600e+00 6.427000e-01 9.571000e-01 6.620000e-01 6.198000e-01 3.023000e-01
+ 2.124000e-01 6.169000e-01 4.337000e-01 8.492000e-01 4.279000e-01 1.041800e+00 4.311000e-01 8.475000e-01 4.554000e-01 1.033700e+00 3.460000e-01 9.528000e-01 2.282000e-01 5.165000e-01
+ 1.087000e+00 2.050000e-02 3.814000e-01 9.184000e-01 3.311000e-01 6.046000e-01 3.696000e-01 9.346000e-01 3.396000e-01 5.683000e-01 4.533000e-01 8.328000e-01 3.132000e-01 3.887000e-01
+ 1.122500e+00 -2.000000e-02 7.035000e-01 1.028900e+00 5.001000e-01 6.363000e-01 7.524000e-01 9.642000e-01 5.688000e-01 5.181000e-01 7.309000e-01 9.958000e-01 4.889000e-01 3.028000e-01
+ 1.122700e+00 -2.120000e-02 7.345000e-01 1.126000e-01 5.620000e-01 1.254000e-01 7.846000e-01 5.580000e-02 5.239000e-01 1.548000e-01 7.256000e-01 1.218000e-01 4.972000e-01 5.870000e-02
+ 2.307000e-01 7.521000e-01 4.215000e-01 8.968000e-01 4.895000e-01 9.583000e-01 1.706200e+00 3.010000e-02 2.510000e-02 1.976100e+00 5.130000e-02 -5.990000e-02 2.203000e-01 5.587000e-01
+ 3.168000e-01 1.169000e-01 7.908000e-01 -7.260000e-02 8.958000e-01 -5.690000e-02 1.596400e+00 1.594000e-01 -4.350000e-02 5.030000e-02 -4.990000e-02 5.970000e-02 3.999000e-01 1.530000e-02
+ 1.098600e+00 1.060000e-02 1.170200e+00 5.680000e-01 8.732000e-01 2.272000e-01 1.142800e+00 5.946000e-01 8.219000e-01 2.528000e-01 1.195700e+00 5.319000e-01 6.724000e-01 1.097000e-01
+ 1.823000e-01 6.265000e-01 1.940000e-01 1.089600e+00 2.839000e-01 1.166500e+00 2.785000e-01 9.865000e-01 3.379000e-01 1.124600e+00 2.203000e-01 1.059100e+00 1.262000e-01 6.122000e-01
+ 4.150000e-02 7.618000e-01 2.864000e-01 8.324000e-01 4.110000e-01 8.252000e-01 4.500000e-03 1.725100e+00 -2.590000e-02 2.027700e+00 -2.960000e-02 3.420000e-02 1.374000e-01 5.252000e-01
+ 5.909000e-01 4.002000e-01 8.241000e-01 7.434000e-01 1.137400e+00 6.116000e-01 9.519000e-01 5.897000e-01 1.061400e+00 7.307000e-01 8.974000e-01 6.602000e-01 5.347000e-01 3.598000e-01
+ 7.907000e-01 2.081000e-01 1.288000e+00 2.727000e-01 1.441700e+00 3.342000e-01 1.260200e+00 3.046000e-01 1.501900e+00 2.953000e-01 1.235200e+00 3.337000e-01 7.069000e-01 1.993000e-01
+ 5.221000e-01 5.633000e-01 9.389000e-01 7.340000e-01 9.714000e-01 9.561000e-01 9.044000e-01 7.730000e-01 1.116400e+00 8.080000e-01 9.204000e-01 7.541000e-01 5.285000e-01 4.408000e-01
+ 1.143700e+00 -4.720000e-02 5.848000e-01 9.845000e-01 6.145000e-01 3.859000e-01 6.835000e-01 8.577000e-01 5.857000e-01 3.928000e-01 6.892000e-01 8.599000e-01 4.808000e-01 2.604000e-01
+ 1.652000e-01 5.220000e-01 7.564000e-01 1.959000e-01 7.352000e-01 3.619000e-01 1.798300e+00 -8.000000e-02 -6.110000e-02 2.072900e+00 -3.170000e-02 3.590000e-02 3.185000e-01 2.556000e-01
+ 2.429000e-01 8.192000e-01 5.522000e-01 8.254000e-01 6.584000e-01 8.397000e-01 1.758500e+00 -2.970000e-02 1.117000e-01 1.871200e+00 2.010000e-02 1.704900e+00 3.055000e-01 5.041000e-01
+ 1.027500e+00 9.290000e-02 7.770000e-01 9.647000e-01 7.027000e-01 6.231000e-01 8.090000e-01 9.281000e-01 7.108000e-01 5.548000e-01 9.417000e-01 7.737000e-01 5.562000e-01 3.125000e-01
+ 2.098000e-01 4.697000e-01 2.148000e-01 8.691000e-01 2.709000e-01 9.603000e-01 2.065000e-01 8.809000e-01 1.751000e-01 1.090800e+00 1.634000e-01 9.365000e-01 1.426000e-01 4.818000e-01
+ 8.182000e-01 2.860000e-01 1.228700e+00 2.121000e-01 1.275100e+00 2.980000e-01 1.731500e+00 2.500000e-03 2.029300e+00 -3.240000e-02 2.870000e-02 1.699900e+00 6.670000e-01 1.885000e-01
+ 1.416000e-01 9.664000e-01 7.030000e-02 8.976000e-01 1.443000e-01 5.991000e-01 4.980000e-02 9.250000e-01 1.007000e-01 6.328000e-01 6.130000e-02 9.041000e-01 7.600000e-02 5.271000e-01
+ 6.420000e-01 1.712000e-01 8.587000e-01 4.432000e-01 9.461000e-01 5.424000e-01 1.049100e+00 2.220000e-01 1.132600e+00 3.475000e-01 9.113000e-01 3.815000e-01 5.211000e-01 2.263000e-01
Added: trunk/Lib/sandbox/ann/data/oil-tst.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/oil-tst.dat 2006-08-20 06:29:23 UTC (rev 2168)
+++ trunk/Lib/sandbox/ann/data/oil-tst.dat 2006-08-20 06:30:09 UTC (rev 2169)
@@ -0,0 +1,503 @@
+ nin 12
+ nout 2
+ ndata 500
+ 6.448000e-01 4.650000e-01 3.659000e-01 8.761000e-01 2.214000e-01 7.023000e-01 3.702000e-01 8.750000e-01 2.981000e-01 5.870000e-01 3.130000e-01 9.374000e-01 2.574000e-01 4.349000e-01
+ 5.013000e-01 9.710000e-02 7.749000e-01 1.599000e-01 8.716000e-01 1.946000e-01 7.986000e-01 1.304000e-01 8.874000e-01 1.974000e-01 6.991000e-01 2.499000e-01 4.547000e-01 8.450000e-02
+ 3.908000e-01 4.842000e-01 5.148000e-01 8.738000e-01 6.925000e-01 8.681000e-01 5.985000e-01 7.700000e-01 5.325000e-01 1.079000e+00 6.069000e-01 7.554000e-01 3.284000e-01 4.656000e-01
+ 1.038400e+00 8.240000e-02 1.578400e+00 1.819000e-01 1.242100e+00 5.329000e-01 1.780600e+00 -5.680000e-02 1.239700e+00 3.690000e-01 1.656900e+00 8.240000e-02 8.512000e-01 1.109000e-01
+-9.100000e-03 6.477000e-01 3.510000e-02 9.081000e-01 3.810000e-02 1.031800e+00 6.780000e-02 1.656900e+00 3.950000e-02 1.950300e+00 -2.490000e-02 3.090000e-02 7.000000e-03 5.461000e-01
+ 6.458000e-01 2.965000e-01 9.246000e-01 3.379000e-01 1.054200e+00 3.263000e-01 1.751900e+00 -2.230000e-02 2.070800e+00 -7.860000e-02 -1.010000e-02 1.030000e-02 5.419000e-01 2.027000e-01
+ 4.951000e-01 5.899000e-01 9.069000e-01 7.700000e-01 8.367000e-01 1.101400e+00 7.952000e-01 9.014000e-01 9.185000e-01 1.039600e+00 7.024000e-01 1.008900e+00 4.378000e-01 5.457000e-01
+ 1.136300e+00 -3.530000e-02 3.838000e-01 2.079000e-01 3.385000e-01 1.536000e-01 4.569000e-01 1.199000e-01 2.972000e-01 1.929000e-01 3.505000e-01 2.441000e-01 3.074000e-01 1.153000e-01
+ 1.646000e-01 5.148000e-01 4.558000e-01 5.405000e-01 5.855000e-01 5.258000e-01 1.727000e+00 4.400000e-03 -1.250000e-02 2.019000e+00 3.960000e-02 -4.630000e-02 2.334000e-01 3.525000e-01
+ 2.028000e-01 3.866000e-01 2.659000e-01 6.712000e-01 3.368000e-01 7.250000e-01 3.495000e-01 5.704000e-01 3.358000e-01 7.372000e-01 2.509000e-01 6.834000e-01 1.608000e-01 3.771000e-01
+ 6.930000e-01 1.407000e-01 1.015300e+00 3.020000e-01 1.114100e+00 3.990000e-01 1.070600e+00 2.370000e-01 1.106800e+00 4.251000e-01 1.041400e+00 2.751000e-01 6.056000e-01 1.516000e-01
+ 5.753000e-01 5.257000e-01 8.693000e-01 5.906000e-01 8.992000e-01 6.983000e-01 1.670000e+00 7.510000e-02 1.942200e+00 6.400000e-02 -2.000000e-02 1.753100e+00 5.033000e-01 3.513000e-01
+ 8.400000e-03 5.567000e-01 2.480000e-02 8.560000e-01 1.377000e-01 8.414000e-01 8.530000e-02 7.866000e-01 -6.210000e-02 1.098600e+00 9.400000e-02 7.736000e-01 1.660000e-02 4.914000e-01
+ 1.122000e-01 2.212000e-01 2.767000e-01 2.258000e-01 4.065000e-01 1.461000e-01 2.236000e-01 2.891000e-01 2.271000e-01 3.709000e-01 2.522000e-01 2.523000e-01 1.470000e-01 1.456000e-01
+ 2.765000e-01 8.222000e-01 6.055000e-01 9.075000e-01 7.480000e-01 8.832000e-01 1.749700e+00 -2.060000e-02 4.540000e-02 1.950100e+00 4.800000e-02 1.672300e+00 3.080000e-01 5.781000e-01
+ 3.000000e-01 2.843000e-01 5.036000e-01 4.081000e-01 6.104000e-01 4.229000e-01 4.810000e-01 4.380000e-01 5.600000e-01 5.012000e-01 4.791000e-01 4.364000e-01 2.898000e-01 2.373000e-01
+ 1.142700e+00 -4.400000e-02 8.870000e-01 1.008000e-01 7.355000e-01 2.940000e-02 9.660000e-01 8.200000e-03 6.765000e-01 7.800000e-02 1.012500e+00 -4.360000e-02 5.768000e-01 3.400000e-02
+ 2.788000e-01 1.947000e-01 4.153000e-01 3.330000e-01 4.493000e-01 4.033000e-01 3.633000e-01 3.906000e-01 4.544000e-01 4.106000e-01 3.182000e-01 4.397000e-01 2.318000e-01 1.993000e-01
+ 4.448000e-01 6.422000e-01 8.192000e-01 5.634000e-01 8.853000e-01 6.292000e-01 1.754600e+00 -2.460000e-02 2.870000e-02 1.963900e+00 -1.710000e-02 1.754600e+00 4.858000e-01 3.275000e-01
+ 1.169600e+00 -7.950000e-02 6.595000e-01 3.301000e-01 5.647000e-01 2.009000e-01 7.108000e-01 2.644000e-01 4.990000e-01 2.600000e-01 6.660000e-01 3.246000e-01 4.636000e-01 1.476000e-01
+ 2.800000e-02 4.749000e-01 3.082000e-01 5.165000e-01 4.995000e-01 4.292000e-01 -6.680000e-02 1.809500e+00 -5.310000e-02 6.340000e-02 7.020000e-02 -8.250000e-02 1.794000e-01 2.888000e-01
+-2.050000e-02 1.080400e+00 1.990000e-01 1.171300e+00 2.044000e-01 1.301100e+00 -6.300000e-02 1.807000e+00 -1.090000e-01 2.131100e+00 9.110000e-02 1.625400e+00 1.084000e-01 6.975000e-01
+-1.990000e-02 1.129400e+00 6.400000e-03 1.475300e+00 1.195000e-01 1.479400e+00 -8.570000e-02 1.833300e+00 -5.250000e-02 2.061500e+00 8.600000e-02 1.630200e+00 1.760000e-02 8.479000e-01
+ 7.734000e-01 3.108000e-01 1.078300e+00 6.418000e-01 1.267100e+00 6.887000e-01 1.212800e+00 4.844000e-01 1.260900e+00 7.241000e-01 1.197800e+00 5.027000e-01 6.789000e-01 3.063000e-01
+ 4.740000e-01 6.379000e-01 2.710000e-01 7.720000e-01 2.148000e-01 5.921000e-01 2.197000e-01 8.294000e-01 2.198000e-01 5.664000e-01 2.387000e-01 8.073000e-01 2.159000e-01 4.153000e-01
+ 1.412000e-01 9.814000e-01 1.210000e-01 5.891000e-01 5.280000e-02 5.381000e-01 1.400000e-01 5.603000e-01 1.442000e-01 4.171000e-01 1.087000e-01 6.031000e-01 1.059000e-01 3.814000e-01
+ 8.093000e-01 1.447000e-01 1.019800e+00 2.690000e-01 1.202300e+00 2.014000e-01 1.642000e+00 1.033000e-01 2.117700e+00 -1.391000e-01 -8.490000e-02 1.015000e-01 6.179000e-01 1.411000e-01
+ 6.051000e-01 3.129000e-01 1.013600e+00 4.145000e-01 1.062800e+00 5.765000e-01 9.327000e-01 5.089000e-01 1.094600e+00 5.687000e-01 9.348000e-01 5.066000e-01 5.441000e-01 2.873000e-01
+ 1.044400e+00 7.250000e-02 7.841000e-01 6.701000e-01 5.830000e-01 4.092000e-01 7.340000e-01 7.407000e-01 4.950000e-01 4.886000e-01 7.533000e-01 7.148000e-01 4.912000e-01 2.421000e-01
+ 6.847000e-01 3.897000e-01 9.817000e-01 4.101000e-01 1.045500e+00 4.734000e-01 1.734700e+00 -3.000000e-04 1.986600e+00 1.320000e-02 5.550000e-02 1.665800e+00 5.296000e-01 2.952000e-01
+ 1.740000e-02 8.344000e-01 -7.070000e-02 1.251500e+00 4.490000e-02 1.250200e+00 -8.910000e-02 1.834800e+00 3.770000e-02 1.952000e+00 1.850000e-02 -2.100000e-02 2.190000e-02 6.670000e-01
+ 2.622000e-01 8.393000e-01 1.888000e-01 7.998000e-01 2.062000e-01 5.559000e-01 2.330000e-01 7.465000e-01 1.065000e-01 6.558000e-01 1.107000e-01 8.962000e-01 1.222000e-01 4.926000e-01
+ 6.600000e-03 1.097000e+00 4.751000e-01 9.095000e-01 5.517000e-01 9.640000e-01 1.777900e+00 -5.290000e-02 -2.350000e-02 2.028300e+00 5.520000e-02 1.666900e+00 2.132000e-01 6.103000e-01
+ 4.735000e-01 2.950000e-02 6.149000e-01 2.003000e-01 7.815000e-01 1.288000e-01 6.322000e-01 1.794000e-01 6.874000e-01 2.575000e-01 6.046000e-01 2.099000e-01 3.779000e-01 8.710000e-02
+ 6.480000e-02 5.514000e-01 3.730000e-02 9.392000e-01 1.505000e-01 9.401000e-01 2.350000e-02 9.564000e-01 1.424000e-01 9.696000e-01 3.140000e-02 9.441000e-01 3.910000e-02 5.217000e-01
+ 1.271900e+00 -1.940000e-01 4.195000e-01 1.021300e+00 3.379000e-01 6.556000e-01 4.200000e-01 1.027200e+00 3.894000e-01 5.664000e-01 4.430000e-01 1.001100e+00 3.273000e-01 4.017000e-01
+ 3.084000e-01 7.897000e-01 1.522000e-01 1.576900e+00 7.180000e-02 9.782000e-01 2.220000e-01 1.498500e+00 4.430000e-02 9.810000e-01 9.340000e-02 1.646600e+00 1.257000e-01 6.302000e-01
+ 5.818000e-01 2.661000e-01 8.678000e-01 4.688000e-01 9.546000e-01 5.728000e-01 7.304000e-01 6.334000e-01 8.540000e-01 7.134000e-01 8.607000e-01 4.792000e-01 5.011000e-01 2.696000e-01
+ 5.940000e-02 7.090000e-01 4.563000e-01 6.108000e-01 5.679000e-01 6.220000e-01 1.778700e+00 -5.690000e-02 3.970000e-02 1.952300e+00 3.590000e-02 -4.270000e-02 2.095000e-01 4.262000e-01
+ 5.933000e-01 2.304000e-01 9.529000e-01 3.319000e-01 1.151400e+00 2.991000e-01 9.822000e-01 3.042000e-01 1.184000e+00 2.901000e-01 9.725000e-01 3.120000e-01 5.705000e-01 1.696000e-01
+ 8.719000e-01 2.312000e-01 4.310000e-01 5.507000e-01 3.146000e-01 4.567000e-01 4.258000e-01 5.563000e-01 3.740000e-01 3.700000e-01 3.330000e-01 6.646000e-01 2.901000e-01 3.226000e-01
+ 1.360000e-02 9.961000e-01 2.466000e-01 1.077500e+00 3.379000e-01 1.112000e+00 5.620000e-02 1.662300e+00 -4.080000e-02 2.046100e+00 -1.250000e-02 1.610000e-02 1.257000e-01 6.558000e-01
+ 1.218000e+00 -1.338000e-01 6.016000e-01 1.136800e+00 4.434000e-01 7.737000e-01 6.493000e-01 1.074600e+00 5.333000e-01 6.233000e-01 5.916000e-01 1.146600e+00 4.410000e-01 3.835000e-01
+ 7.636000e-01 1.110000e-01 1.172100e+00 4.000000e-04 1.307500e+00 -1.810000e-02 1.756100e+00 -3.150000e-02 1.876900e+00 1.464000e-01 4.910000e-02 -5.820000e-02 6.767000e-01 1.780000e-02
+ 4.733000e-01 5.533000e-01 7.878000e-01 5.479000e-01 9.136000e-01 5.419000e-01 1.809900e+00 -8.920000e-02 -7.870000e-02 2.088800e+00 2.570000e-02 -3.140000e-02 4.780000e-01 3.072000e-01
+ 2.005000e-01 5.829000e-01 6.213000e-01 4.544000e-01 6.185000e-01 6.031000e-01 1.674800e+00 6.370000e-02 4.690000e-02 1.944500e+00 4.540000e-02 -5.330000e-02 2.894000e-01 3.546000e-01
+ 2.873000e-01 3.904000e-01 5.542000e-01 4.862000e-01 6.085000e-01 5.771000e-01 6.228000e-01 4.063000e-01 6.241000e-01 5.769000e-01 5.590000e-01 4.789000e-01 3.226000e-01 2.772000e-01
+ 1.065800e+00 4.890000e-02 9.754000e-01 2.339000e-01 7.418000e-01 1.505000e-01 8.248000e-01 4.087000e-01 6.896000e-01 1.874000e-01 8.415000e-01 3.902000e-01 5.896000e-01 9.380000e-02
+ 2.749000e-01 8.322000e-01 7.550000e-02 8.470000e-01 1.179000e-01 6.081000e-01 2.079000e-01 6.938000e-01 1.133000e-01 5.986000e-01 1.856000e-01 7.187000e-01 1.310000e-01 4.502000e-01
+ 1.160400e+00 -7.070000e-02 3.873000e-01 4.790000e-01 3.702000e-01 3.135000e-01 3.731000e-01 4.934000e-01 4.204000e-01 2.415000e-01 3.768000e-01 4.884000e-01 3.431000e-01 2.132000e-01
+ 7.850000e-01 3.097000e-01 1.039200e+00 6.899000e-01 1.007400e+00 9.179000e-01 1.606700e+00 1.494000e-01 2.023600e+00 -2.750000e-02 7.740000e-02 1.643000e+00 6.075000e-01 3.769000e-01
+ 4.767000e-01 6.200000e-01 8.124000e-01 6.201000e-01 8.201000e-01 7.476000e-01 1.762100e+00 -3.200000e-02 2.850000e-02 1.962500e+00 -2.400000e-03 1.735200e+00 4.170000e-01 4.287000e-01
+ 7.000000e-02 5.804000e-01 3.603000e-01 6.051000e-01 5.032000e-01 5.804000e-01 1.808000e+00 -9.050000e-02 2.450000e-02 1.971800e+00 5.380000e-02 -6.290000e-02 2.108000e-01 3.495000e-01
+ 2.398000e-01 5.381000e-01 4.280000e-01 7.827000e-01 4.594000e-01 9.249000e-01 4.543000e-01 7.498000e-01 4.837000e-01 9.178000e-01 3.558000e-01 8.688000e-01 2.354000e-01 4.663000e-01
+ 6.772000e-01 4.153000e-01 8.702000e-01 6.673000e-01 1.097600e+00 5.371000e-01 1.671400e+00 7.230000e-02 1.913400e+00 1.031000e-01 4.360000e-02 1.682100e+00 5.430000e-01 3.427000e-01
+ 5.771000e-01 2.690000e-01 9.626000e-01 1.865000e-01 9.748000e-01 3.090000e-01 1.720800e+00 1.200000e-02 1.904000e+00 1.157000e-01 4.180000e-02 -5.090000e-02 5.076000e-01 1.776000e-01
+ 9.678000e-01 1.205000e-01 4.169000e-01 7.365000e-01 2.957000e-01 5.802000e-01 4.317000e-01 7.145000e-01 3.142000e-01 5.355000e-01 3.243000e-01 8.496000e-01 2.935000e-01 3.748000e-01
+ 3.039000e-01 8.250000e-02 5.032000e-01 1.001000e-01 6.313000e-01 4.200000e-02 5.443000e-01 4.810000e-02 6.187000e-01 7.040000e-02 5.802000e-01 5.800000e-03 3.000000e-01 4.560000e-02
+ 1.066000e+00 4.740000e-02 8.390000e-01 3.301000e-01 6.501000e-01 2.295000e-01 8.427000e-01 3.239000e-01 6.770000e-01 1.715000e-01 7.632000e-01 4.213000e-01 5.597000e-01 1.096000e-01
+ 4.445000e-01 4.328000e-01 7.354000e-01 6.306000e-01 7.351000e-01 8.423000e-01 7.142000e-01 6.597000e-01 8.077000e-01 7.814000e-01 6.867000e-01 6.933000e-01 3.992000e-01 3.965000e-01
+ 1.113800e+00 -1.200000e-02 4.509000e-01 1.285400e+00 4.255000e-01 1.115600e+00 4.581000e-01 1.271400e+00 3.918000e-01 1.065600e+00 4.900000e-01 1.234000e+00 3.392000e-01 5.883000e-01
+ 3.929000e-01 1.168000e-01 6.146000e-01 2.238000e-01 8.554000e-01 8.000000e-02 1.677700e+00 6.240000e-02 -6.710000e-02 7.830000e-02 3.840000e-02 -4.460000e-02 3.705000e-01 1.066000e-01
+ 1.174900e+00 -7.820000e-02 5.318000e-01 1.208200e+00 4.090000e-01 8.032000e-01 6.121000e-01 1.106000e+00 4.824000e-01 6.767000e-01 5.083000e-01 1.234000e+00 3.942000e-01 4.315000e-01
+ 1.112500e+00 -1.900000e-03 7.953000e-01 4.182000e-01 5.772000e-01 3.317000e-01 8.666000e-01 3.376000e-01 6.822000e-01 1.837000e-01 7.594000e-01 4.607000e-01 5.409000e-01 1.411000e-01
+ 1.064300e+00 4.830000e-02 4.031000e-01 4.715000e-01 4.217000e-01 2.610000e-01 5.285000e-01 3.166000e-01 4.123000e-01 2.549000e-01 4.966000e-01 3.544000e-01 3.839000e-01 1.711000e-01
+ 1.462000e-01 1.741000e-01 3.355000e-01 3.210000e-01 5.901000e-01 1.645000e-01 1.819900e+00 -1.075000e-01 4.480000e-02 -5.060000e-02 -1.540000e-02 1.900000e-02 1.997000e-01 1.640000e-01
+ 1.082600e+00 2.900000e-02 5.759000e-01 1.143600e+00 3.587000e-01 1.001100e+00 3.984000e-01 1.351900e+00 3.697000e-01 9.311000e-01 4.609000e-01 1.280500e+00 3.813000e-01 4.929000e-01
+ 1.749000e-01 9.337000e-01 4.971000e-01 9.799000e-01 5.158000e-01 1.106500e+00 1.858000e+00 -1.477000e-01 5.880000e-02 1.932100e+00 -9.480000e-02 1.840300e+00 2.799000e-01 5.831000e-01
+ 2.320000e-02 4.472000e-01 2.880000e-02 7.578000e-01 1.640000e-02 8.930000e-01 -2.840000e-02 1.768200e+00 -4.300000e-03 5.000000e-03 1.630000e-02 -1.920000e-02 1.400000e-03 4.502000e-01
+-1.890000e-02 9.049000e-01 2.733000e-01 9.240000e-01 4.054000e-01 9.117000e-01 -1.630000e-02 1.749400e+00 8.600000e-03 1.989800e+00 1.650000e-02 -1.970000e-02 1.497000e-01 5.558000e-01
+ 3.017000e-01 1.810000e-02 5.904000e-01 5.250000e-02 8.312000e-01 -9.490000e-02 1.793900e+00 -7.140000e-02 2.200000e-03 -2.400000e-03 1.700000e-03 -1.600000e-03 3.347000e-01 2.090000e-02
+ 3.039000e-01 3.121000e-01 6.046000e-01 3.240000e-01 8.146000e-01 2.188000e-01 1.698900e+00 4.070000e-02 -9.370000e-02 2.104700e+00 -1.610000e-02 2.060000e-02 3.003000e-01 2.485000e-01
+ 1.249000e-01 9.827000e-01 6.260000e-02 1.675200e+00 8.900000e-02 9.563000e-01 1.085000e-01 1.615700e+00 5.530000e-02 9.614000e-01 3.070000e-02 1.713800e+00 7.130000e-02 6.857000e-01
+ 1.155700e+00 -5.860000e-02 3.913000e-01 1.361500e+00 4.194000e-01 8.176000e-01 4.429000e-01 1.295800e+00 4.218000e-01 7.674000e-01 4.723000e-01 1.270600e+00 3.738000e-01 4.626000e-01
+ 2.459000e-01 7.784000e-01 5.481000e-01 7.902000e-01 6.902000e-01 7.715000e-01 1.765200e+00 -3.940000e-02 -1.560000e-02 2.020000e+00 4.010000e-02 -4.900000e-02 3.023000e-01 4.882000e-01
+ 6.220000e-01 4.951000e-01 3.017000e-01 7.115000e-01 2.143000e-01 5.816000e-01 2.724000e-01 7.436000e-01 2.240000e-01 5.504000e-01 3.288000e-01 6.809000e-01 2.659000e-01 3.523000e-01
+ 3.249000e-01 2.344000e-01 5.291000e-01 3.440000e-01 5.390000e-01 4.644000e-01 6.531000e-01 1.941000e-01 5.935000e-01 4.141000e-01 5.112000e-01 3.632000e-01 3.074000e-01 1.955000e-01
+ 3.186000e-01 6.189000e-01 7.353000e-01 5.008000e-01 7.807000e-01 5.874000e-01 1.759200e+00 -3.670000e-02 1.700000e-02 1.983200e+00 -3.570000e-02 4.160000e-02 3.922000e-01 3.411000e-01
+ 8.110000e-02 5.730000e-01 -5.400000e-03 1.059500e+00 4.620000e-02 1.141800e+00 9.510000e-02 9.377000e-01 4.330000e-02 1.157600e+00 4.870000e-02 9.916000e-01 3.510000e-02 5.644000e-01
+ 2.594000e-01 3.892000e-01 5.220000e-01 4.511000e-01 6.600000e-01 4.274000e-01 1.716700e+00 1.820000e-02 -2.340000e-02 2.023900e+00 2.910000e-02 -3.230000e-02 3.178000e-01 2.422000e-01
+ 5.516000e-01 4.323000e-01 9.537000e-01 3.289000e-01 1.019900e+00 3.933000e-01 1.765300e+00 -3.410000e-02 2.026400e+00 -2.980000e-02 1.780000e-02 -2.150000e-02 5.026000e-01 2.628000e-01
+ 1.111500e+00 -6.900000e-03 5.701000e-01 1.157500e+00 4.381000e-01 1.535200e+00 4.560000e-01 1.290200e+00 4.360000e-01 1.382700e+00 5.761000e-01 1.156000e+00 4.032000e-01 5.885000e-01
+ 4.961000e-01 1.890000e-01 7.077000e-01 3.780000e-01 8.067000e-01 4.309000e-01 7.211000e-01 3.645000e-01 8.028000e-01 4.556000e-01 7.352000e-01 3.442000e-01 3.970000e-01 2.335000e-01
+ 1.133100e+00 -3.640000e-02 4.325000e-01 4.307000e-01 3.780000e-01 3.109000e-01 4.364000e-01 4.285000e-01 3.326000e-01 3.505000e-01 4.787000e-01 3.815000e-01 3.200000e-01 2.438000e-01
+ 4.649000e-01 6.439000e-01 7.775000e-01 6.826000e-01 9.982000e-01 5.638000e-01 1.757300e+00 -2.250000e-02 -1.580000e-02 2.011300e+00 4.970000e-02 1.671300e+00 4.476000e-01 4.080000e-01
+ 5.782000e-01 6.300000e-03 9.617000e-01 -6.070000e-02 1.034800e+00 4.300000e-03 9.053000e-01 7.600000e-03 1.051300e+00 2.400000e-03 1.007700e+00 -1.158000e-01 5.201000e-01 7.200000e-03
+ 7.918000e-01 3.077000e-01 5.134000e-01 9.919000e-01 2.700000e-01 7.473000e-01 4.521000e-01 1.058100e+00 2.535000e-01 7.352000e-01 4.208000e-01 1.096100e+00 2.795000e-01 4.604000e-01
+ 5.928000e-01 5.222000e-01 1.003600e+00 4.579000e-01 1.078100e+00 5.070000e-01 1.647000e+00 9.860000e-02 2.106100e+00 -1.167000e-01 3.710000e-02 1.683300e+00 5.517000e-01 3.079000e-01
+ 5.960000e-02 7.629000e-01 3.239000e-01 8.181000e-01 4.259000e-01 8.440000e-01 1.670200e+00 7.190000e-02 -2.630000e-02 2.035400e+00 9.080000e-02 -1.085000e-01 1.982000e-01 4.708000e-01
+ 1.049800e+00 6.410000e-02 5.919000e-01 2.174000e-01 3.979000e-01 2.718000e-01 4.788000e-01 3.486000e-01 4.119000e-01 2.361000e-01 5.073000e-01 3.169000e-01 3.661000e-01 1.799000e-01
+ 1.155500e+00 -5.990000e-02 1.190600e+00 2.981000e-01 9.963000e-01 -1.430000e-02 1.078900e+00 4.294000e-01 8.709000e-01 1.026000e-01 1.261800e+00 2.111000e-01 6.923000e-01 4.150000e-02
+ 6.215000e-01 2.120000e-01 1.045100e+00 2.494000e-01 1.139400e+00 3.451000e-01 1.084900e+00 1.967000e-01 1.175900e+00 3.235000e-01 1.139200e+00 1.358000e-01 6.034000e-01 1.435000e-01
+ 2.349000e-01 1.442000e-01 2.265000e-01 3.929000e-01 2.736000e-01 4.296000e-01 2.931000e-01 3.112000e-01 2.363000e-01 4.802000e-01 2.454000e-01 3.726000e-01 1.406000e-01 2.151000e-01
+ 3.019000e-01 8.005000e-01 2.399000e-01 1.477400e+00 1.681000e-01 1.178700e+00 1.256000e-01 1.612900e+00 1.998000e-01 1.085000e+00 1.193000e-01 1.621700e+00 1.418000e-01 7.335000e-01
+ 1.147600e+00 -4.770000e-02 6.603000e-01 5.889000e-01 4.982000e-01 4.222000e-01 6.575000e-01 5.907000e-01 5.041000e-01 3.874000e-01 5.851000e-01 6.789000e-01 4.479000e-01 2.445000e-01
+ 1.101200e+00 7.300000e-03 8.426000e-01 1.042000e-01 6.891000e-01 5.540000e-02 9.469000e-01 -1.900000e-02 7.682000e-01 -6.170000e-02 8.742000e-01 6.580000e-02 5.727000e-01 2.010000e-02
+-4.210000e-02 6.206000e-01 -8.900000e-03 9.080000e-01 4.440000e-02 9.645000e-01 2.560000e-02 8.678000e-01 3.390000e-02 9.927000e-01 1.381000e-01 7.345000e-01 9.100000e-03 5.054000e-01
+ 3.173000e-01 1.439000e-01 4.652000e-01 2.672000e-01 4.718000e-01 3.732000e-01 4.224000e-01 3.186000e-01 5.422000e-01 2.998000e-01 4.661000e-01 2.660000e-01 2.607000e-01 1.635000e-01
+ 3.098000e-01 5.266000e-01 7.139000e-01 4.210000e-01 7.526000e-01 5.123000e-01 1.844200e+00 -1.276000e-01 4.160000e-02 1.950200e+00 3.560000e-02 -4.230000e-02 3.870000e-01 2.836000e-01
+ 1.113300e+00 -1.020000e-02 6.586000e-01 3.186000e-01 5.528000e-01 2.098000e-01 6.548000e-01 3.203000e-01 4.692000e-01 2.883000e-01 5.417000e-01 4.562000e-01 4.591000e-01 1.485000e-01
+ 1.120500e+00 -1.250000e-02 4.273000e-01 1.305000e+00 4.001000e-01 1.569000e+00 5.607000e-01 1.152400e+00 4.132000e-01 1.340800e+00 3.841000e-01 1.354200e+00 3.303000e-01 6.559000e-01
+ 6.990000e-01 3.968000e-01 1.746000e-01 6.364000e-01 2.241000e-01 4.211000e-01 3.194000e-01 4.643000e-01 2.155000e-01 4.168000e-01 4.041000e-01 3.630000e-01 2.536000e-01 2.708000e-01
+ 4.087000e-01 1.144000e-01 6.518000e-01 1.959000e-01 7.540000e-01 2.240000e-01 1.739300e+00 -8.900000e-03 4.300000e-03 -5.200000e-03 -2.820000e-02 3.580000e-02 3.589000e-01 1.307000e-01
+ 8.990000e-02 4.962000e-01 1.670000e-01 7.478000e-01 1.831000e-01 8.579000e-01 1.603000e-01 7.559000e-01 1.481000e-01 9.170000e-01 1.539000e-01 7.605000e-01 6.710000e-02 4.654000e-01
+ 7.275000e-01 8.800000e-02 1.026300e+00 2.773000e-01 1.203800e+00 2.712000e-01 1.026200e+00 2.689000e-01 1.253600e+00 2.343000e-01 9.783000e-01 3.308000e-01 5.823000e-01 1.706000e-01
+ 5.495000e-01 5.437000e-01 2.686000e-01 7.107000e-01 1.793000e-01 5.921000e-01 2.232000e-01 7.645000e-01 2.558000e-01 4.846000e-01 3.518000e-01 6.074000e-01 2.065000e-01 4.018000e-01
+ 5.979000e-01 2.631000e-01 9.246000e-01 2.454000e-01 1.040700e+00 2.497000e-01 1.743200e+00 -1.210000e-02 2.035700e+00 -4.280000e-02 5.510000e-02 -6.860000e-02 5.446000e-01 1.450000e-01
+ 4.053000e-01 3.193000e-01 7.128000e-01 4.065000e-01 6.600000e-01 6.450000e-01 6.435000e-01 4.922000e-01 7.326000e-01 5.784000e-01 6.610000e-01 4.686000e-01 3.683000e-01 2.864000e-01
+ 3.101000e-01 7.882000e-01 2.058000e-01 6.524000e-01 1.578000e-01 5.337000e-01 1.578000e-01 7.100000e-01 1.407000e-01 5.390000e-01 1.659000e-01 7.029000e-01 1.362000e-01 4.268000e-01
+ 3.448000e-01 7.733000e-01 2.226000e-01 3.745000e-01 1.856000e-01 3.102000e-01 2.002000e-01 3.992000e-01 2.583000e-01 2.151000e-01 1.775000e-01 4.266000e-01 1.738000e-01 2.538000e-01
+ 1.163000e-01 6.281000e-01 6.240000e-02 1.128500e+00 1.577000e-01 1.181700e+00 8.570000e-02 1.103700e+00 1.171000e-01 1.252400e+00 2.270000e-01 9.335000e-01 7.730000e-02 6.036000e-01
+ 1.841000e-01 9.089000e-01 9.620000e-02 1.631700e+00 3.060000e-02 1.153200e+00 4.420000e-02 1.694200e+00 1.440000e-02 1.136600e+00 9.730000e-02 1.630200e+00 6.780000e-02 7.479000e-01
+ 2.871000e-01 4.391000e-01 5.545000e-01 5.586000e-01 5.610000e-01 7.182000e-01 6.155000e-01 4.853000e-01 6.982000e-01 5.763000e-01 5.284000e-01 5.929000e-01 3.306000e-01 3.102000e-01
+ 6.266000e-01 4.869000e-01 8.659000e-01 8.900000e-01 1.030200e+00 9.553000e-01 1.955700e+00 -2.583000e-01 1.954300e+00 5.250000e-02 1.870000e-02 1.709700e+00 5.739000e-01 4.255000e-01
+ 2.521000e-01 5.208000e-01 4.874000e-01 6.131000e-01 7.096000e-01 4.927000e-01 1.693000e+00 4.670000e-02 2.250000e-02 1.967700e+00 1.410000e-02 -1.790000e-02 2.880000e-01 3.549000e-01
+ 1.115700e+00 -1.130000e-02 5.825000e-01 6.135000e-01 6.044000e-01 2.598000e-01 5.369000e-01 6.677000e-01 5.063000e-01 3.521000e-01 5.327000e-01 6.701000e-01 4.238000e-01 2.538000e-01
+ 4.343000e-01 2.892000e-01 6.943000e-01 4.379000e-01 8.366000e-01 4.458000e-01 8.259000e-01 2.838000e-01 8.670000e-01 4.263000e-01 7.693000e-01 3.494000e-01 4.452000e-01 2.014000e-01
+ 3.767000e-01 6.610000e-01 7.348000e-01 6.040000e-01 9.230000e-01 5.251000e-01 1.740300e+00 -4.500000e-03 -4.600000e-02 2.054200e+00 2.160000e-02 -2.470000e-02 4.012000e-01 3.929000e-01
+ 1.776000e-01 9.447000e-01 6.292000e-01 9.101000e-01 7.055000e-01 9.575000e-01 1.797300e+00 -8.050000e-02 -8.980000e-02 2.111000e+00 -2.000000e-03 1.733600e+00 3.322000e-01 5.643000e-01
+ 2.923000e-01 5.579000e-01 3.704000e-01 9.829000e-01 3.558000e-01 1.191800e+00 3.351000e-01 1.025100e+00 3.176000e-01 1.266500e+00 3.619000e-01 9.876000e-01 1.767000e-01 6.106000e-01
+ 1.100500e+00 6.600000e-03 4.421000e-01 8.560000e-01 3.823000e-01 5.487000e-01 4.909000e-01 7.966000e-01 3.241000e-01 5.907000e-01 5.004000e-01 7.838000e-01 3.299000e-01 3.734000e-01
+ 1.048000e+00 6.760000e-02 7.788000e-01 9.475000e-01 6.592000e-01 1.156800e+00 7.752000e-01 9.544000e-01 6.585000e-01 9.674000e-01 7.535000e-01 9.787000e-01 5.198000e-01 4.468000e-01
+ 6.970000e-02 9.352000e-01 2.593000e-01 1.061000e+00 3.419000e-01 1.108000e+00 7.300000e-03 1.719100e+00 -7.600000e-03 2.004800e+00 3.520000e-02 -4.400000e-02 1.164000e-01 6.692000e-01
+ 3.260000e-01 2.160000e-01 7.528000e-01 7.900000e-02 7.924000e-01 1.742000e-01 1.687000e+00 5.020000e-02 -3.940000e-02 4.670000e-02 -6.030000e-02 7.090000e-02 4.082000e-01 7.520000e-02
+ 1.050000e-01 6.663000e-01 3.348000e-01 7.601000e-01 5.875000e-01 6.110000e-01 1.713200e+00 2.610000e-02 1.228000e-01 1.855500e+00 -2.320000e-02 2.860000e-02 2.201000e-01 4.189000e-01
+ 1.002700e+00 1.252000e-01 6.166000e-01 4.814000e-01 4.798000e-01 3.617000e-01 7.088000e-01 3.755000e-01 5.636000e-01 2.377000e-01 6.239000e-01 4.772000e-01 4.345000e-01 2.159000e-01
+ 4.496000e-01 2.169000e-01 6.392000e-01 3.630000e-01 8.200000e-01 2.899000e-01 1.770400e+00 -4.520000e-02 -1.100000e-02 2.011200e+00 1.760000e-02 -1.910000e-02 4.239000e-01 1.501000e-01
+ 4.926000e-01 6.137000e-01 3.186000e-01 1.404600e+00 2.477000e-01 1.260500e+00 1.928000e-01 1.552100e+00 2.102000e-01 1.225200e+00 2.542000e-01 1.481800e+00 2.139000e-01 7.059000e-01
+ 1.138700e+00 -4.270000e-02 8.879000e-01 1.301000e-01 6.693000e-01 1.269000e-01 8.105000e-01 2.219000e-01 6.306000e-01 1.497000e-01 8.711000e-01 1.517000e-01 5.312000e-01 9.750000e-02
+ 9.711000e-01 1.022000e-01 1.494600e+00 2.016000e-01 1.763500e+00 1.583000e-01 1.554200e+00 1.290000e-01 1.834300e+00 1.014000e-01 1.488900e+00 2.066000e-01 8.892000e-01 8.380000e-02
+ 2.105000e-01 1.522000e-01 5.753000e-01 9.360000e-02 6.696000e-01 1.234000e-01 1.763000e+00 -3.660000e-02 4.100000e-03 -4.000000e-03 -1.860000e-02 2.320000e-02 3.220000e-01 5.130000e-02
+ 5.364000e-01 5.697000e-01 2.754000e-01 1.459900e+00 2.340000e-01 9.770000e-01 2.480000e-01 1.489200e+00 3.099000e-01 8.484000e-01 2.989000e-01 1.428300e+00 2.200000e-01 6.076000e-01
+ 1.165300e+00 -7.410000e-02 4.147000e-01 6.831000e-01 3.322000e-01 5.073000e-01 4.404000e-01 6.515000e-01 3.882000e-01 4.203000e-01 3.910000e-01 7.064000e-01 3.222000e-01 3.256000e-01
+ 5.929000e-01 4.753000e-01 7.672000e-01 9.424000e-01 8.572000e-01 1.086400e+00 7.978000e-01 8.958000e-01 9.469000e-01 1.005600e+00 7.537000e-01 9.506000e-01 4.475000e-01 5.341000e-01
+ 1.982000e-01 7.611000e-01 4.901000e-01 7.844000e-01 6.065000e-01 7.851000e-01 1.734700e+00 -4.100000e-03 9.350000e-02 1.890800e+00 -3.790000e-02 4.530000e-02 2.528000e-01 5.018000e-01
+ 1.546000e-01 4.171000e-01 2.119000e-01 6.868000e-01 2.017000e-01 8.355000e-01 3.120000e-01 5.704000e-01 2.865000e-01 7.473000e-01 2.101000e-01 6.932000e-01 1.401000e-01 3.778000e-01
+ 5.030000e-02 4.674000e-01 7.340000e-02 7.643000e-01 2.045000e-01 7.558000e-01 -4.600000e-03 1.736500e+00 -6.460000e-02 7.550000e-02 -1.480000e-02 1.930000e-02 5.150000e-02 4.315000e-01
+ 1.041000e-01 6.762000e-01 3.926000e-01 7.050000e-01 5.157000e-01 7.068000e-01 1.774500e+00 -5.130000e-02 3.810000e-02 1.958000e+00 -2.210000e-02 2.530000e-02 2.124000e-01 4.345000e-01
+ 6.700000e-03 5.981000e-01 -6.650000e-02 1.033500e+00 -2.740000e-02 1.112100e+00 3.610000e-02 9.109000e-01 1.080000e-02 1.085600e+00 -6.430000e-02 1.026400e+00 6.900000e-03 5.412000e-01
+ 2.601000e-01 8.426000e-01 1.748000e-01 5.536000e-01 1.488000e-01 4.436000e-01 2.177000e-01 4.987000e-01 1.135000e-01 4.778000e-01 1.067000e-01 6.321000e-01 1.217000e-01 3.789000e-01
+ 7.495000e-01 3.638000e-01 3.087000e-01 7.132000e-01 2.289000e-01 5.704000e-01 4.013000e-01 5.987000e-01 4.147000e-01 3.338000e-01 3.795000e-01 6.300000e-01 2.800000e-01 3.398000e-01
+ 2.536000e-01 3.032000e-01 3.890000e-01 4.836000e-01 4.285000e-01 5.635000e-01 4.099000e-01 4.558000e-01 5.144000e-01 4.786000e-01 3.665000e-01 5.107000e-01 2.354000e-01 2.655000e-01
+ 1.108700e+00 -1.400000e-03 6.231000e-01 1.103400e+00 5.175000e-01 5.217000e-01 5.151000e-01 1.232300e+00 5.308000e-01 4.732000e-01 4.814000e-01 1.269600e+00 4.136000e-01 3.438000e-01
+ 1.243000e-01 8.552000e-01 2.607000e-01 1.254300e+00 2.224000e-01 1.517600e+00 2.060000e-01 1.322800e+00 2.795000e-01 1.476000e+00 3.078000e-01 1.201100e+00 1.504000e-01 7.250000e-01
+ 9.213000e-01 1.830000e-01 1.271100e+00 2.182000e-01 1.436000e+00 1.685000e-01 1.739100e+00 -6.500000e-03 2.118200e+00 -1.382000e-01 2.510000e-02 1.703800e+00 7.304000e-01 1.416000e-01
+ 4.906000e-01 2.284000e-01 7.607000e-01 3.695000e-01 7.548000e-01 5.566000e-01 8.102000e-01 3.068000e-01 8.265000e-01 4.896000e-01 7.111000e-01 4.283000e-01 4.367000e-01 2.166000e-01
+ 5.023000e-01 2.296000e-01 8.095000e-01 3.391000e-01 8.645000e-01 4.546000e-01 7.044000e-01 4.620000e-01 8.431000e-01 5.025000e-01 7.605000e-01 3.984000e-01 4.166000e-01 2.559000e-01
+ 1.156500e+00 -5.760000e-02 6.427000e-01 1.085200e+00 4.490000e-01 9.378000e-01 5.651000e-01 1.172700e+00 4.125000e-01 9.192000e-01 6.713000e-01 1.048000e+00 4.359000e-01 4.478000e-01
+ 3.471000e-01 4.969000e-01 5.672000e-01 6.026000e-01 6.693000e-01 6.248000e-01 1.642200e+00 1.036000e-01 2.180000e-02 1.976600e+00 -6.900000e-03 6.900000e-03 3.297000e-01 3.596000e-01
+ 1.772000e-01 7.112000e-01 3.103000e-01 1.079600e+00 2.551000e-01 1.339400e+00 2.338000e-01 1.168600e+00 3.075000e-01 1.305000e+00 2.437000e-01 1.153100e+00 1.468000e-01 6.600000e-01
+ 4.819000e-01 5.060000e-01 7.012000e-01 8.559000e-01 8.285000e-01 9.376000e-01 6.944000e-01 8.615000e-01 7.004000e-01 1.112700e+00 7.276000e-01 8.193000e-01 4.284000e-01 4.650000e-01
+ 4.597000e-01 2.749000e-01 7.482000e-01 3.990000e-01 9.198000e-01 3.746000e-01 7.880000e-01 3.529000e-01 8.253000e-01 5.067000e-01 7.385000e-01 4.140000e-01 4.344000e-01 2.271000e-01
+ 4.523000e-01 6.470000e-01 2.413000e-01 1.312200e+00 1.894000e-01 8.252000e-01 1.803000e-01 1.379300e+00 1.961000e-01 7.919000e-01 1.998000e-01 1.361800e+00 1.884000e-01 5.538000e-01
+ 4.270000e-02 6.164000e-01 1.516000e-01 8.657000e-01 8.410000e-02 1.095600e+00 1.261000e-01 8.992000e-01 1.549000e-01 1.029100e+00 7.630000e-02 9.625000e-01 3.020000e-02 5.699000e-01
+ 4.810000e-02 6.301000e-01 3.641000e-01 6.274000e-01 4.213000e-01 6.975000e-01 4.650000e-02 1.677500e+00 -2.970000e-02 2.037900e+00 1.500000e-03 -2.200000e-03 1.792000e-01 4.041000e-01
+-5.410000e-02 8.424000e-01 2.830000e-01 8.134000e-01 4.024000e-01 8.135000e-01 6.600000e-03 1.724300e+00 -8.130000e-02 2.099400e+00 -3.590000e-02 4.370000e-02 1.669000e-01 4.733000e-01
+ 1.492000e-01 9.433000e-01 4.581000e-01 1.263300e+00 4.340000e-01 1.517700e+00 1.692600e+00 4.630000e-02 -5.270000e-02 2.056400e+00 -1.043000e-01 1.855000e+00 2.145000e-01 7.789000e-01
+ 5.950000e-01 5.037000e-01 8.418000e-01 6.593000e-01 1.035600e+00 5.684000e-01 1.736200e+00 -4.000000e-03 1.998700e+00 2.900000e-03 7.450000e-02 1.641700e+00 5.081000e-01 3.627000e-01
+ 1.041200e+00 7.690000e-02 3.429000e-01 5.131000e-01 4.083000e-01 2.563000e-01 4.457000e-01 3.872000e-01 3.686000e-01 2.875000e-01 4.201000e-01 4.196000e-01 3.165000e-01 2.346000e-01
+ 5.750000e-01 9.830000e-02 7.359000e-01 3.524000e-01 9.226000e-01 3.027000e-01 7.922000e-01 2.849000e-01 9.758000e-01 2.588000e-01 8.202000e-01 2.514000e-01 4.557000e-01 1.661000e-01
+ 2.356000e-01 2.608000e-01 3.491000e-01 4.312000e-01 5.015000e-01 3.656000e-01 3.259000e-01 4.589000e-01 3.623000e-01 5.480000e-01 3.415000e-01 4.391000e-01 2.121000e-01 2.362000e-01
+-4.400000e-03 5.750000e-02 2.999000e-01 5.590000e-02 3.436000e-01 1.495000e-01 6.220000e-02 -7.260000e-02 3.770000e-02 -4.620000e-02 -1.930000e-02 2.460000e-02 1.388000e-01 5.610000e-02
+ 3.853000e-01 2.266000e-01 6.398000e-01 2.940000e-01 7.465000e-01 3.086000e-01 1.889800e+00 -1.804000e-01 2.080000e-02 1.977300e+00 -1.660000e-02 1.840000e-02 3.421000e-01 2.053000e-01
+ 5.732000e-01 9.820000e-02 9.495000e-01 2.150000e-02 1.010600e+00 9.040000e-02 1.689700e+00 5.020000e-02 1.855100e+00 1.663000e-01 -1.440000e-02 1.560000e-02 5.282000e-01 4.370000e-02
+ 5.975000e-01 9.590000e-02 8.709000e-01 2.277000e-01 9.448000e-01 3.096000e-01 8.984000e-01 1.909000e-01 1.040400e+00 2.144000e-01 8.695000e-01 2.280000e-01 4.989000e-01 1.341000e-01
+ 1.161700e+00 -6.800000e-02 5.103000e-01 1.213400e+00 4.322000e-01 6.767000e-01 5.040000e-01 1.219600e+00 3.956000e-01 6.859000e-01 5.204000e-01 1.201400e+00 3.472000e-01 4.431000e-01
+ 1.021700e+00 9.880000e-02 4.318000e-01 4.948000e-01 3.271000e-01 4.096000e-01 4.788000e-01 4.344000e-01 3.361000e-01 3.875000e-01 4.107000e-01 5.175000e-01 3.394000e-01 2.462000e-01
+ 9.910000e-02 6.097000e-01 1.928000e-01 9.126000e-01 2.849000e-01 9.650000e-01 1.819000e-01 9.313000e-01 2.587000e-01 1.014800e+00 2.217000e-01 8.827000e-01 1.360000e-01 4.989000e-01
+ 4.196000e-01 4.070000e-01 8.509000e-01 2.705000e-01 8.090000e-01 4.584000e-01 1.633500e+00 1.120000e-01 -6.650000e-02 2.080700e+00 1.660000e-02 -1.950000e-02 4.122000e-01 2.621000e-01
+ 6.442000e-01 4.657000e-01 2.805000e-01 9.211000e-01 3.062000e-01 5.754000e-01 3.203000e-01 8.736000e-01 3.428000e-01 5.107000e-01 2.195000e-01 9.937000e-01 2.591000e-01 4.182000e-01
+ 1.083000e-01 3.704000e-01 2.198000e-01 5.239000e-01 1.973000e-01 6.579000e-01 1.038000e-01 6.641000e-01 2.724000e-01 5.815000e-01 2.600000e-01 4.734000e-01 9.710000e-02 3.372000e-01
+ 1.143400e+00 -4.700000e-02 6.394000e-01 1.084000e+00 5.072000e-01 8.219000e-01 7.274000e-01 9.770000e-01 4.117000e-01 8.792000e-01 6.133000e-01 1.115600e+00 4.261000e-01 4.439000e-01
+ 4.894000e-01 2.322000e-01 9.444000e-01 1.599000e-01 1.136500e+00 1.100000e-01 9.970000e-01 9.400000e-02 1.083900e+00 1.925000e-01 9.986000e-01 9.700000e-02 5.573000e-01 7.900000e-02
+ 6.940000e-02 4.496000e-01 3.861000e-01 4.431000e-01 5.083000e-01 4.420000e-01 1.722500e+00 8.000000e-03 -2.180000e-02 2.580000e-02 -1.260000e-02 1.530000e-02 2.012000e-01 2.778000e-01
+ 4.709000e-01 1.637000e-01 7.540000e-01 2.368000e-01 9.168000e-01 1.987000e-01 7.055000e-01 2.919000e-01 8.799000e-01 2.597000e-01 6.879000e-01 3.119000e-01 4.364000e-01 1.345000e-01
+ 3.695000e-01 7.475000e-01 7.178000e-01 7.092000e-01 8.749000e-01 6.676000e-01 1.720000e+00 6.400000e-03 -9.800000e-03 2.015000e+00 5.230000e-02 1.671600e+00 4.293000e-01 4.062000e-01
+ 2.833000e-01 6.929000e-01 3.343000e-01 1.207300e+00 4.848000e-01 1.259600e+00 4.201000e-01 1.108400e+00 4.528000e-01 1.313000e+00 3.483000e-01 1.200200e+00 2.231000e-01 6.640000e-01
+ 3.249000e-01 2.663000e-01 2.135000e-01 8.380000e-02 2.176000e-01 3.230000e-02 1.633000e-01 1.440000e-01 1.643000e-01 8.870000e-02 2.186000e-01 7.850000e-02 1.557000e-01 8.340000e-02
+ 2.509000e-01 4.415000e-01 3.253000e-01 7.774000e-01 3.237000e-01 9.379000e-01 2.093000e-01 9.146000e-01 3.470000e-01 9.313000e-01 2.318000e-01 8.854000e-01 1.571000e-01 4.836000e-01
+ 4.089000e-01 3.129000e-01 5.581000e-01 5.068000e-01 8.138000e-01 3.462000e-01 1.677900e+00 6.840000e-02 2.080000e-02 1.974000e+00 -2.290000e-02 2.710000e-02 3.926000e-01 2.173000e-01
+ 6.643000e-01 4.440000e-01 4.709000e-01 3.021000e-01 3.044000e-01 3.373000e-01 3.318000e-01 4.683000e-01 2.892000e-01 3.421000e-01 3.202000e-01 4.828000e-01 2.603000e-01 2.726000e-01
+ 1.089800e+00 1.820000e-02 4.522000e-01 1.280700e+00 2.793000e-01 9.139000e-01 4.674000e-01 1.263400e+00 4.811000e-01 6.379000e-01 5.040000e-01 1.218100e+00 3.527000e-01 4.602000e-01
+ 7.746000e-01 2.773000e-01 1.262500e+00 3.768000e-01 1.368200e+00 5.105000e-01 1.176300e+00 4.776000e-01 1.362200e+00 5.502000e-01 1.244100e+00 4.004000e-01 7.037000e-01 2.478000e-01
+ 1.214400e+00 -1.345000e-01 5.728000e-01 8.045000e-01 4.732000e-01 4.932000e-01 5.432000e-01 8.459000e-01 4.365000e-01 5.079000e-01 6.445000e-01 7.233000e-01 4.171000e-01 3.019000e-01
+ 1.020300e+00 1.023000e-01 1.339900e+00 3.863000e-01 8.918000e-01 4.010000e-01 1.400000e+00 3.113000e-01 9.264000e-01 3.066000e-01 1.256800e+00 4.880000e-01 7.044000e-01 1.491000e-01
+-8.000000e-04 8.211000e-01 2.361000e-01 9.075000e-01 3.880000e-01 8.679000e-01 -2.060000e-02 1.757600e+00 -1.680000e-02 2.020600e+00 -5.400000e-02 6.580000e-02 1.555000e-01 5.119000e-01
+ 8.590000e-02 5.093000e-01 1.094000e-01 8.284000e-01 1.888000e-01 8.672000e-01 2.009000e-01 7.242000e-01 3.171000e-01 7.291000e-01 2.109000e-01 7.078000e-01 1.055000e-01 4.283000e-01
+ 5.585000e-01 4.104000e-01 9.091000e-01 6.040000e-01 9.648000e-01 7.640000e-01 8.639000e-01 6.560000e-01 9.755000e-01 7.808000e-01 9.222000e-01 5.776000e-01 4.978000e-01 3.786000e-01
+ 6.952000e-01 9.790000e-02 1.119200e+00 1.273000e-01 1.299400e+00 1.131000e-01 1.206300e+00 2.280000e-02 1.367300e+00 5.920000e-02 1.061200e+00 1.961000e-01 6.713000e-01 4.250000e-02
+-2.900000e-02 6.100000e-01 1.768000e-01 7.117000e-01 2.572000e-01 7.548000e-01 -4.300000e-02 1.783800e+00 -1.134000e-01 2.131000e+00 2.780000e-02 -3.580000e-02 9.120000e-02 4.239000e-01
+ 6.690000e-02 1.033000e+00 5.470000e-02 4.185000e-01 6.780000e-02 3.254000e-01 1.660000e-02 4.632000e-01 3.370000e-02 3.636000e-01 6.200000e-03 4.806000e-01 1.390000e-02 3.445000e-01
+ 4.392000e-01 1.730000e-01 7.467000e-01 1.972000e-01 7.673000e-01 3.279000e-01 8.360000e-01 9.120000e-02 8.220000e-01 2.830000e-01 7.616000e-01 1.845000e-01 4.333000e-01 1.134000e-01
+ 1.127900e+00 -2.750000e-02 1.157800e+00 5.609000e-01 8.199000e-01 7.000000e-01 1.071100e+00 6.639000e-01 8.206000e-01 6.127000e-01 1.003100e+00 7.467000e-01 6.514000e-01 2.694000e-01
+ 8.172000e-01 2.907000e-01 3.781000e-01 1.356400e+00 3.831000e-01 1.575800e+00 5.063000e-01 1.203100e+00 3.232000e-01 1.481600e+00 5.606000e-01 1.139900e+00 2.864000e-01 7.047000e-01
+ 3.522000e-01 3.816000e-01 6.513000e-01 4.030000e-01 8.796000e-01 2.741000e-01 1.853000e+00 -1.437000e-01 2.020000e-02 1.981500e+00 4.100000e-02 -4.790000e-02 4.054000e-01 2.034000e-01
+ 6.243000e-01 3.136000e-01 9.404000e-01 5.338000e-01 1.054800e+00 6.177000e-01 1.003000e+00 4.583000e-01 1.125700e+00 5.655000e-01 8.917000e-01 5.895000e-01 5.389000e-01 3.107000e-01
+ 1.032000e-01 2.145000e-01 2.228000e-01 2.618000e-01 2.334000e-01 3.197000e-01 2.795000e-01 1.928000e-01 2.514000e-01 3.102000e-01 2.510000e-01 2.285000e-01 1.353000e-01 1.438000e-01
+ 9.120000e-02 4.763000e-01 8.260000e-02 8.195000e-01 1.323000e-01 8.828000e-01 1.208000e-01 7.711000e-01 1.502000e-01 8.749000e-01 8.230000e-02 8.164000e-01 4.590000e-02 4.733000e-01
+ 8.400000e-03 5.233000e-01 3.114000e-01 5.303000e-01 3.548000e-01 6.212000e-01 -7.810000e-02 1.824600e+00 -1.500000e-02 1.630000e-02 1.900000e-02 -2.190000e-02 1.548000e-01 3.324000e-01
+ 3.621000e-01 3.948000e-01 5.814000e-01 5.091000e-01 7.371000e-01 4.622000e-01 1.827200e+00 -1.137000e-01 2.880000e-02 1.964000e+00 -9.400000e-03 1.210000e-02 3.026000e-01 3.417000e-01
+ 3.580000e-01 2.763000e-01 4.854000e-01 5.267000e-01 6.305000e-01 5.067000e-01 6.041000e-01 3.864000e-01 6.265000e-01 5.287000e-01 5.911000e-01 4.011000e-01 3.291000e-01 2.458000e-01
+ 3.187000e-01 7.551000e-01 4.209000e-01 1.268700e+00 6.258000e-01 1.271600e+00 6.451000e-01 1.001000e+00 5.475000e-01 1.395100e+00 5.579000e-01 1.113300e+00 3.066000e-01 6.586000e-01
+ 1.185000e-01 7.796000e-01 2.708000e-01 1.118500e+00 3.414000e-01 1.232300e+00 2.990000e-01 1.083900e+00 4.309000e-01 1.150900e+00 3.358000e-01 1.039400e+00 1.932000e-01 6.014000e-01
+ 1.116200e+00 -1.300000e-02 5.206000e-01 2.610000e-02 4.651000e-01 -1.630000e-02 5.007000e-01 4.660000e-02 4.346000e-01 1.190000e-02 4.827000e-01 6.850000e-02 3.726000e-01 2.650000e-02
+ 8.306000e-01 9.530000e-02 1.104800e+00 3.818000e-01 1.345200e+00 3.360000e-01 1.102500e+00 3.846000e-01 1.274300e+00 4.425000e-01 1.127500e+00 3.547000e-01 6.521000e-01 2.045000e-01
+ 1.156300e+00 -6.370000e-02 9.582000e-01 7.839000e-01 8.017000e-01 5.624000e-01 1.087200e+00 6.377000e-01 7.981000e-01 5.080000e-01 9.966000e-01 7.431000e-01 6.323000e-01 2.479000e-01
+ 1.113700e+00 -1.060000e-02 5.751000e-01 8.128000e-01 5.425000e-01 4.148000e-01 5.360000e-01 8.606000e-01 6.221000e-01 2.954000e-01 6.010000e-01 7.833000e-01 4.364000e-01 2.829000e-01
+-7.000000e-04 1.000200e+00 6.240000e-02 1.491200e+00 3.840000e-02 1.734700e+00 1.108000e-01 1.435400e+00 1.197000e-01 1.670000e+00 -2.700000e-03 1.567500e+00 3.070000e-02 8.685000e-01
+ 1.240000e-01 9.872000e-01 1.695000e-01 5.126000e-01 1.271000e-01 4.343000e-01 1.380000e-02 6.953000e-01 2.270000e-02 5.462000e-01 1.374000e-01 5.482000e-01 7.740000e-02 4.041000e-01
+ 4.141000e-01 6.719000e-01 2.314000e-01 1.497700e+00 2.280000e-01 9.137000e-01 2.178000e-01 1.504500e+00 1.092000e-01 1.019000e+00 1.247000e-01 1.614500e+00 1.445000e-01 6.616000e-01
+ 6.177000e-01 1.427000e-01 9.623000e-01 1.017000e-01 1.103000e+00 7.800000e-02 1.600300e+00 1.562000e-01 1.871500e+00 1.531000e-01 2.210000e-02 -2.600000e-02 5.527000e-01 7.560000e-02
+ 1.059300e+00 5.470000e-02 9.245000e-01 3.887000e-01 7.576000e-01 1.769000e-01 9.578000e-01 3.412000e-01 7.952000e-01 1.095000e-01 1.041500e+00 2.450000e-01 6.124000e-01 9.040000e-02
+ 9.449000e-01 1.353000e-01 3.213000e-01 1.421500e+00 3.429000e-01 7.263000e-01 3.767000e-01 1.351400e+00 3.432000e-01 6.875000e-01 3.776000e-01 1.354700e+00 2.832000e-01 4.873000e-01
+ 6.301000e-01 4.748000e-01 4.008000e-01 9.958000e-01 2.741000e-01 6.979000e-01 3.320000e-01 1.073400e+00 3.438000e-01 5.908000e-01 3.196000e-01 1.086800e+00 2.474000e-01 4.766000e-01
+ 1.978000e-01 9.140000e-01 1.938000e-01 4.248000e-01 6.020000e-02 4.722000e-01 9.960000e-02 5.354000e-01 7.210000e-02 4.447000e-01 1.717000e-01 4.529000e-01 1.206000e-01 3.249000e-01
+ 2.309000e-01 2.064000e-01 6.680000e-01 5.680000e-02 6.932000e-01 1.725000e-01 1.859700e+00 -1.525000e-01 -3.130000e-02 3.630000e-02 5.910000e-02 -7.020000e-02 3.368000e-01 8.280000e-02
+ 2.211000e-01 7.943000e-01 6.555000e-01 6.537000e-01 6.771000e-01 7.673000e-01 1.808700e+00 -8.840000e-02 7.200000e-03 1.994200e+00 -1.680000e-02 1.970000e-02 3.111000e-01 4.701000e-01
+ 2.125000e-01 6.560000e-01 4.932000e-01 6.953000e-01 6.084000e-01 6.982000e-01 1.701900e+00 3.800000e-02 -5.100000e-02 2.060000e+00 -4.300000e-03 2.300000e-03 2.587000e-01 4.444000e-01
+ 5.390000e-02 1.055300e+00 1.167000e-01 5.124000e-01 -7.110000e-02 6.230000e-01 1.115000e-01 5.170000e-01 3.800000e-02 4.834000e-01 6.440000e-02 5.757000e-01 3.960000e-02 4.136000e-01
+ 2.916000e-01 2.618000e-01 3.233000e-01 5.671000e-01 5.434000e-01 4.386000e-01 4.561000e-01 4.079000e-01 4.168000e-01 6.065000e-01 3.949000e-01 4.845000e-01 2.435000e-01 2.603000e-01
+ 3.046000e-01 1.198000e-01 5.786000e-01 1.665000e-01 7.735000e-01 8.260000e-02 1.760100e+00 -3.140000e-02 2.880000e-02 -3.630000e-02 -2.370000e-02 2.720000e-02 3.292000e-01 9.370000e-02
+ 1.812000e-01 5.192000e-01 4.632000e-01 5.597000e-01 6.344000e-01 4.976000e-01 1.709800e+00 2.520000e-02 -7.980000e-02 2.089700e+00 -4.440000e-02 5.320000e-02 2.372000e-01 3.645000e-01
+ 3.179000e-01 4.891000e-01 7.155000e-01 3.883000e-01 7.770000e-01 4.547000e-01 1.566300e+00 1.949000e-01 5.830000e-02 1.927600e+00 3.480000e-02 -4.360000e-02 3.791000e-01 2.744000e-01
+ 1.477000e-01 4.547000e-01 2.569000e-01 6.831000e-01 2.450000e-01 8.360000e-01 3.765000e-01 5.412000e-01 2.740000e-01 8.186000e-01 1.857000e-01 7.708000e-01 1.411000e-01 4.037000e-01
+ 2.131000e-01 6.178000e-01 6.259000e-01 4.974000e-01 7.543000e-01 4.947000e-01 1.708600e+00 2.940000e-02 4.010000e-02 1.945600e+00 2.130000e-02 -2.470000e-02 3.206000e-01 3.490000e-01
+ 1.050800e+00 6.520000e-02 4.232000e-01 8.030000e-02 3.003000e-01 1.362000e-01 3.865000e-01 1.220000e-01 3.645000e-01 4.690000e-02 4.060000e-01 9.850000e-02 3.132000e-01 6.030000e-02
+ 2.090000e-02 7.060000e-01 2.470000e-01 8.011000e-01 3.740000e-01 7.966000e-01 -3.690000e-02 1.777300e+00 4.610000e-02 1.946200e+00 -2.460000e-02 2.910000e-02 1.503000e-01 4.630000e-01
+ 4.137000e-01 2.892000e-01 4.493000e-01 6.976000e-01 7.307000e-01 5.271000e-01 5.331000e-01 5.940000e-01 5.688000e-01 7.422000e-01 5.595000e-01 5.605000e-01 3.348000e-01 3.115000e-01
+ 5.298000e-01 6.420000e-02 6.824000e-01 2.788000e-01 7.870000e-01 3.054000e-01 6.489000e-01 3.206000e-01 8.537000e-01 2.453000e-01 7.167000e-01 2.387000e-01 4.121000e-01 1.402000e-01
+ 4.221000e-01 3.664000e-01 7.573000e-01 4.597000e-01 8.641000e-01 5.222000e-01 7.522000e-01 4.671000e-01 8.513000e-01 5.595000e-01 7.478000e-01 4.688000e-01 4.424000e-01 2.608000e-01
+ 4.622000e-01 1.290000e-01 7.078000e-01 2.222000e-01 7.751000e-01 2.817000e-01 7.012000e-01 2.305000e-01 8.362000e-01 2.308000e-01 6.095000e-01 3.373000e-01 3.959000e-01 1.415000e-01
+ 6.361000e-01 8.160000e-02 9.489000e-01 1.881000e-01 1.033400e+00 2.630000e-01 9.601000e-01 1.715000e-01 1.003700e+00 3.191000e-01 1.146200e+00 -4.830000e-02 5.663000e-01 8.560000e-02
+ 2.930000e-01 5.022000e-01 7.152000e-01 3.739000e-01 7.363000e-01 4.900000e-01 1.759500e+00 -3.130000e-02 -6.460000e-02 2.074000e+00 4.020000e-02 -4.750000e-02 3.524000e-01 2.979000e-01
+ 4.311000e-01 1.810000e-01 8.205000e-01 9.240000e-02 1.006300e+00 1.160000e-02 1.695800e+00 3.640000e-02 -8.400000e-03 2.010900e+00 -5.130000e-02 6.280000e-02 4.713000e-01 5.760000e-02
+ 3.465000e-01 1.600000e-01 6.633000e-01 1.569000e-01 7.640000e-01 1.793000e-01 1.622700e+00 1.281000e-01 1.860000e-02 -2.340000e-02 -2.300000e-03 2.000000e-03 3.697000e-01 1.015000e-01
+ 9.872000e-01 -1.126000e-01 1.332000e+00 7.640000e-02 1.548500e+00 5.010000e-02 1.269100e+00 1.510000e-01 1.585700e+00 2.980000e-02 1.368100e+00 3.380000e-02 7.755000e-01 3.590000e-02
+ 2.610000e-01 7.540000e-01 6.275000e-01 6.880000e-01 6.739000e-01 7.751000e-01 1.638600e+00 1.087000e-01 5.130000e-02 1.938700e+00 4.940000e-02 -5.850000e-02 3.284000e-01 4.529000e-01
+ 2.109000e-01 6.045000e-01 2.995000e-01 9.821000e-01 5.221000e-01 9.051000e-01 3.581000e-01 9.091000e-01 4.162000e-01 1.046800e+00 3.561000e-01 9.154000e-01 1.993000e-01 5.354000e-01
+ 5.272000e-01 1.323000e-01 1.047100e+00 -1.195000e-01 1.095700e+00 -3.110000e-02 1.817900e+00 -1.026000e-01 1.931500e+00 7.750000e-02 6.700000e-03 -8.200000e-03 5.379000e-01 1.850000e-02
+ 2.795000e-01 5.918000e-01 4.382000e-01 9.261000e-01 5.119000e-01 1.035300e+00 4.693000e-01 8.914000e-01 5.577000e-01 1.006300e+00 3.827000e-01 9.897000e-01 2.396000e-01 5.500000e-01
+ 7.918000e-01 -6.760000e-02 9.720000e-01 9.020000e-02 1.069100e+00 1.199000e-01 1.781500e+00 -5.860000e-02 1.962800e+00 4.390000e-02 2.400000e-02 -2.710000e-02 5.785000e-01 4.470000e-02
+ 1.210900e+00 -1.261000e-01 5.953000e-01 1.149400e+00 5.685000e-01 9.512000e-01 6.746000e-01 1.050000e+00 5.015000e-01 9.448000e-01 6.418000e-01 1.093700e+00 4.564000e-01 4.655000e-01
+ 4.166000e-01 -2.610000e-02 7.158000e-01 -8.600000e-03 8.091000e-01 2.500000e-02 1.774000e+00 -4.670000e-02 -6.200000e-03 6.800000e-03 -6.670000e-02 7.770000e-02 3.702000e-01 3.560000e-02
+ 1.066400e+00 4.440000e-02 3.890000e-01 1.361000e+00 4.381000e-01 6.264000e-01 5.386000e-01 1.188200e+00 4.047000e-01 6.327000e-01 3.706000e-01 1.379200e+00 3.626000e-01 4.052000e-01
+ 3.560000e-01 5.282000e-01 6.139000e-01 5.976000e-01 7.348000e-01 5.920000e-01 1.600500e+00 1.565000e-01 -3.680000e-02 2.045900e+00 2.100000e-03 -9.000000e-04 3.704000e-01 3.378000e-01
+ 2.368000e-01 4.550000e-01 4.686000e-01 5.905000e-01 5.762000e-01 6.224000e-01 4.614000e-01 5.998000e-01 5.424000e-01 6.833000e-01 5.509000e-01 4.959000e-01 2.914000e-01 3.168000e-01
+ 1.412000e-01 5.766000e-01 2.682000e-01 7.994000e-01 4.284000e-01 7.535000e-01 2.010000e-02 1.708900e+00 -5.190000e-02 2.063600e+00 -2.990000e-02 3.540000e-02 1.924000e-01 4.226000e-01
+ 4.028000e-01 3.229000e-01 5.538000e-01 5.916000e-01 6.593000e-01 6.407000e-01 5.754000e-01 5.726000e-01 6.679000e-01 6.512000e-01 4.964000e-01 6.656000e-01 3.227000e-01 3.403000e-01
+ 1.014100e+00 1.139000e-01 6.173000e-01 1.123200e+00 5.625000e-01 5.521000e-01 7.679000e-01 9.384000e-01 5.604000e-01 5.170000e-01 5.513000e-01 1.193400e+00 4.537000e-01 3.371000e-01
+ 2.231000e-01 2.160000e-01 3.652000e-01 3.177000e-01 3.538000e-01 4.355000e-01 3.714000e-01 3.082000e-01 3.945000e-01 4.011000e-01 3.866000e-01 2.949000e-01 2.034000e-01 1.923000e-01
+ 3.449000e-01 7.698000e-01 2.342000e-01 1.963000e-01 1.374000e-01 2.406000e-01 2.404000e-01 1.906000e-01 1.173000e-01 2.574000e-01 2.592000e-01 1.675000e-01 1.858000e-01 1.419000e-01
+ 3.156000e-01 1.832000e-01 3.843000e-01 4.186000e-01 5.150000e-01 3.846000e-01 4.053000e-01 3.939000e-01 4.708000e-01 4.471000e-01 4.462000e-01 3.420000e-01 2.460000e-01 2.126000e-01
+ 6.092000e-01 1.414000e-01 8.663000e-01 3.277000e-01 8.921000e-01 4.823000e-01 8.205000e-01 3.809000e-01 1.009700e+00 3.674000e-01 9.123000e-01 2.730000e-01 5.124000e-01 1.745000e-01
+ 8.463000e-01 1.475000e-01 1.383300e+00 1.659000e-01 1.409400e+00 3.871000e-01 1.236000e+00 3.424000e-01 1.439400e+00 3.775000e-01 1.240400e+00 3.315000e-01 7.584000e-01 1.434000e-01
+ 1.186000e-01 5.166000e-01 2.754000e-01 7.017000e-01 3.716000e-01 7.266000e-01 1.927000e-01 8.017000e-01 2.624000e-01 8.739000e-01 3.585000e-01 6.027000e-01 1.595000e-01 4.034000e-01
+-7.150000e-02 1.194100e+00 1.877000e-01 1.441100e+00 3.201000e-01 1.431200e+00 4.790000e-02 1.673200e+00 -5.740000e-02 2.074100e+00 1.340000e-02 1.714800e+00 9.210000e-02 8.434000e-01
+ 1.061600e+00 5.140000e-02 8.015000e-01 9.388000e-01 6.061000e-01 6.110000e-01 9.143000e-01 7.975000e-01 6.790000e-01 4.857000e-01 7.059000e-01 1.043000e+00 5.455000e-01 2.809000e-01
+ 7.813000e-01 2.707000e-01 1.166100e+00 1.809000e-01 1.340200e+00 1.161000e-01 1.784300e+00 -6.440000e-02 2.014600e+00 -1.000000e-02 4.940000e-02 -5.860000e-02 6.698000e-01 1.289000e-01
+-2.000000e-02 8.819000e-01 2.728000e-01 8.867000e-01 2.715000e-01 1.033800e+00 1.349000e-01 1.575400e+00 2.450000e-02 1.974500e+00 2.900000e-02 -3.400000e-02 1.103000e-01 5.812000e-01
+ 1.124500e+00 -2.180000e-02 4.186000e-01 1.652000e-01 3.845000e-01 9.650000e-02 4.261000e-01 1.539000e-01 3.543000e-01 1.256000e-01 4.996000e-01 6.970000e-02 3.512000e-01 6.390000e-02
+-6.500000e-03 7.993000e-01 3.267000e-01 7.767000e-01 4.522000e-01 7.680000e-01 -2.820000e-02 1.766800e+00 4.970000e-02 1.942100e+00 -5.330000e-02 6.490000e-02 1.645000e-01 4.867000e-01
+ 6.900000e-02 7.249000e-01 9.240000e-02 1.152900e+00 4.710000e-02 1.384400e+00 6.110000e-02 1.191900e+00 4.000000e-02 1.400800e+00 1.907000e-01 1.034100e+00 6.170000e-02 6.550000e-01
+ 1.428000e-01 5.786000e-01 4.101000e-01 6.276000e-01 4.227000e-01 7.570000e-01 1.796700e+00 -7.820000e-02 1.590000e-02 1.975800e+00 3.080000e-02 -3.800000e-02 2.194000e-01 3.917000e-01
+ 4.230000e-01 6.180000e-01 6.667000e-01 9.600000e-01 8.423000e-01 9.991000e-01 6.821000e-01 9.383000e-01 7.610000e-01 1.118300e+00 6.837000e-01 9.371000e-01 3.987000e-01 5.377000e-01
+ 1.123200e+00 -1.980000e-02 4.842000e-01 1.256400e+00 4.733000e-01 5.613000e-01 6.713000e-01 1.041900e+00 4.869000e-01 5.181000e-01 6.174000e-01 1.101800e+00 3.947000e-01 3.597000e-01
+ 3.235000e-01 4.008000e-01 6.078000e-01 4.450000e-01 7.643000e-01 3.984000e-01 1.743500e+00 -1.240000e-02 7.710000e-02 1.904800e+00 -4.670000e-02 5.660000e-02 3.336000e-01 2.813000e-01
+ 8.635000e-01 2.416000e-01 3.268000e-01 7.437000e-01 3.194000e-01 4.958000e-01 4.484000e-01 5.974000e-01 3.312000e-01 4.618000e-01 3.342000e-01 7.332000e-01 2.896000e-01 3.473000e-01
+ 3.989000e-01 3.064000e-01 7.602000e-01 3.139000e-01 7.549000e-01 4.913000e-01 6.895000e-01 3.998000e-01 6.527000e-01 6.348000e-01 6.298000e-01 4.730000e-01 3.961000e-01 2.339000e-01
+-5.620000e-02 6.196000e-01 6.960000e-02 8.052000e-01 1.929000e-01 8.025000e-01 2.680000e-02 1.702400e+00 5.080000e-02 1.938200e+00 3.790000e-02 -4.510000e-02 7.300000e-02 4.286000e-01
+ 7.670000e-02 5.532000e-01 3.697000e-01 5.783000e-01 5.229000e-01 5.426000e-01 1.730300e+00 2.500000e-03 -5.700000e-03 2.006900e+00 4.780000e-02 -5.690000e-02 2.083000e-01 3.421000e-01
+ 1.222200e+00 -1.385000e-01 5.873000e-01 1.141900e+00 4.907000e-01 8.950000e-01 4.724000e-01 1.276000e+00 4.236000e-01 9.068000e-01 5.406000e-01 1.195200e+00 4.016000e-01 4.845000e-01
+ 2.563000e-01 6.222000e-01 3.700000e-01 1.011000e+00 4.776000e-01 1.086300e+00 4.206000e-01 9.524000e-01 4.446000e-01 1.143800e+00 3.690000e-01 1.014000e+00 2.464000e-01 5.458000e-01
+ 1.840000e-01 6.729000e-01 4.951000e-01 6.792000e-01 5.736000e-01 7.248000e-01 1.651000e+00 9.460000e-02 -1.130000e-02 2.015000e+00 1.500000e-03 -2.300000e-03 2.611000e-01 4.318000e-01
+ 1.102100e+00 3.900000e-03 1.025300e+00 7.218000e-01 8.517000e-01 8.106000e-01 1.152900e+00 5.722000e-01 9.200000e-01 6.121000e-01 1.224200e+00 4.924000e-01 6.570000e-01 2.914000e-01
+ 4.650000e-01 1.452000e-01 7.837000e-01 1.378000e-01 9.267000e-01 1.065000e-01 1.763500e+00 -3.920000e-02 1.258000e-01 1.849400e+00 -1.710000e-02 2.010000e-02 4.704000e-01 5.990000e-02
+ 1.125400e+00 -1.860000e-02 4.118000e-01 1.341000e+00 5.358000e-01 4.982000e-01 5.828000e-01 1.137600e+00 4.601000e-01 5.488000e-01 5.933000e-01 1.129500e+00 3.844000e-01 3.734000e-01
+ 1.075400e+00 3.380000e-02 7.599000e-01 9.807000e-01 6.185000e-01 7.503000e-01 8.009000e-01 9.346000e-01 6.739000e-01 6.285000e-01 8.539000e-01 8.723000e-01 5.453000e-01 3.332000e-01
+ 3.525000e-01 3.345000e-01 5.116000e-01 5.722000e-01 5.640000e-01 6.692000e-01 4.808000e-01 6.056000e-01 5.902000e-01 6.561000e-01 5.130000e-01 5.635000e-01 3.051000e-01 3.173000e-01
+ 5.190000e-01 5.924000e-01 8.648000e-01 7.441000e-01 1.038200e+00 6.802000e-01 1.758000e+00 -3.610000e-02 1.986400e+00 1.070000e-02 -4.070000e-02 1.777700e+00 5.055000e-01 4.177000e-01
+ 5.158000e-01 1.822000e-01 8.558000e-01 1.480000e-01 9.620000e-01 1.680000e-01 1.790400e+00 -7.240000e-02 -3.050000e-02 2.032800e+00 7.580000e-02 -9.170000e-02 4.772000e-01 1.143000e-01
+ 5.610000e-01 2.925000e-01 7.260000e-01 4.631000e-01 9.444000e-01 3.525000e-01 1.723300e+00 7.400000e-03 3.060000e-02 1.958500e+00 3.750000e-02 -4.560000e-02 4.457000e-01 2.517000e-01
+ 5.050000e-01 6.070000e-01 8.627000e-01 8.609000e-01 8.843000e-01 1.080400e+00 1.662900e+00 7.810000e-02 9.900000e-02 1.886300e+00 -5.900000e-02 1.799200e+00 4.807000e-01 5.152000e-01
+ 4.083000e-01 6.277000e-01 5.078000e-01 1.137300e+00 5.682000e-01 1.305400e+00 6.229000e-01 1.002100e+00 6.980000e-01 1.180200e+00 6.487000e-01 9.710000e-01 3.243000e-01 6.188000e-01
+ 5.610000e-01 1.063000e-01 7.032000e-01 3.773000e-01 7.404000e-01 4.993000e-01 7.263000e-01 3.493000e-01 8.452000e-01 3.924000e-01 6.268000e-01 4.698000e-01 4.199000e-01 2.013000e-01
+-4.600000e-03 4.540000e-01 1.915000e-01 5.706000e-01 3.021000e-01 5.829000e-01 -6.530000e-02 1.807800e+00 -4.130000e-02 4.920000e-02 9.000000e-03 -1.080000e-02 1.095000e-01 3.238000e-01
+ 4.558000e-01 6.417000e-01 7.385000e-01 7.060000e-01 9.107000e-01 6.386000e-01 1.640500e+00 1.095000e-01 -1.430000e-02 2.021500e+00 -6.380000e-02 1.806700e+00 4.203000e-01 4.233000e-01
+ 3.749000e-01 3.478000e-01 6.614000e-01 3.763000e-01 8.617000e-01 2.874000e-01 1.680900e+00 6.080000e-02 5.110000e-02 1.937900e+00 -4.430000e-02 5.130000e-02 3.498000e-01 2.637000e-01
+ 1.172000e+00 -7.900000e-02 5.569000e-01 2.045000e-01 5.080000e-01 1.028000e-01 5.461000e-01 2.194000e-01 4.582000e-01 1.502000e-01 6.272000e-01 1.214000e-01 4.147000e-01 9.840000e-02
+ 1.114400e+00 -1.480000e-02 6.321000e-01 8.080000e-02 5.397000e-01 4.140000e-02 5.880000e-01 1.360000e-01 4.192000e-01 1.711000e-01 5.523000e-01 1.767000e-01 4.362000e-01 5.740000e-02
+ 4.172000e-01 4.878000e-01 7.567000e-01 4.570000e-01 8.219000e-01 5.137000e-01 1.698300e+00 4.280000e-02 -2.360000e-02 2.029800e+00 -3.000000e-04 2.000000e-03 4.055000e-01 3.136000e-01
+ 3.340000e-02 9.060000e-02 1.528000e-01 2.821000e-01 2.778000e-01 2.702000e-01 3.840000e-02 1.689500e+00 8.330000e-02 -1.008000e-01 7.790000e-02 -9.420000e-02 6.010000e-02 1.798000e-01
+ 1.125000e+00 -1.910000e-02 6.254000e-01 1.100600e+00 3.906000e-01 8.229000e-01 6.111000e-01 1.120500e+00 4.252000e-01 7.403000e-01 6.368000e-01 1.083800e+00 4.206000e-01 4.015000e-01
+ 6.356000e-01 4.044000e-01 8.279000e-01 8.315000e-01 9.620000e-01 9.261000e-01 8.210000e-01 8.397000e-01 1.001200e+00 9.082000e-01 8.058000e-01 8.573000e-01 4.849000e-01 4.709000e-01
+ 1.061500e+00 5.180000e-02 7.158000e-01 1.021300e+00 6.573000e-01 4.111000e-01 7.008000e-01 1.036400e+00 5.019000e-01 5.624000e-01 7.263000e-01 1.009700e+00 4.987000e-01 2.754000e-01
+ 1.755000e-01 3.300000e-01 3.664000e-01 4.088000e-01 3.820000e-01 5.115000e-01 3.903000e-01 3.836000e-01 4.519000e-01 4.405000e-01 2.869000e-01 5.086000e-01 1.966000e-01 2.555000e-01
+ 2.700000e-02 1.430000e-02 3.190000e-02 3.198000e-01 3.130000e-02 4.564000e-01 -1.280000e-02 1.590000e-02 -6.610000e-02 7.780000e-02 -8.400000e-03 8.100000e-03 1.590000e-02 1.756000e-01
+ 4.663000e-01 -4.600000e-03 7.408000e-01 4.170000e-02 9.221000e-01 -2.920000e-02 1.735200e+00 -1.600000e-03 7.200000e-02 -8.600000e-02 3.510000e-02 -4.170000e-02 4.131000e-01 3.500000e-02
+ 3.971000e-01 1.871000e-01 6.050000e-01 3.133000e-01 6.799000e-01 3.637000e-01 5.564000e-01 3.703000e-01 7.048000e-01 3.569000e-01 5.925000e-01 3.298000e-01 3.250000e-01 2.095000e-01
+ 1.881000e-01 2.852000e-01 4.351000e-01 3.640000e-01 5.826000e-01 3.299000e-01 1.650900e+00 9.930000e-02 -7.760000e-02 9.370000e-02 3.610000e-02 -4.430000e-02 2.443000e-01 2.118000e-01
+ 7.071000e-01 4.006000e-01 3.163000e-01 1.421300e+00 2.512000e-01 1.208400e+00 3.451000e-01 1.385900e+00 3.214000e-01 1.050100e+00 3.445000e-01 1.383400e+00 2.696000e-01 6.342000e-01
+ 6.183000e-01 4.862000e-01 8.977000e-01 8.166000e-01 1.012400e+00 8.138000e-01 1.728200e+00 4.700000e-03 2.084100e+00 -9.930000e-02 -2.800000e-03 1.733200e+00 5.319000e-01 4.307000e-01
+ 7.480000e-01 2.723000e-01 1.088900e+00 5.234000e-01 1.335700e+00 4.807000e-01 1.197500e+00 3.954000e-01 1.335600e+00 5.135000e-01 1.092100e+00 5.162000e-01 6.428000e-01 2.840000e-01
+ 1.220000e-02 4.463000e-01 3.817000e-01 3.752000e-01 4.660000e-01 4.161000e-01 -3.900000e-02 1.775400e+00 2.450000e-02 -2.800000e-02 -2.000000e-02 2.500000e-02 1.909000e-01 2.436000e-01
+ 4.191000e-01 7.018000e-01 7.914000e-01 6.675000e-01 1.036300e+00 5.181000e-01 1.751200e+00 -2.240000e-02 -1.037000e-01 2.116700e+00 0.000000e+00 1.728200e+00 4.685000e-01 3.836000e-01
+ 5.673000e-01 5.564000e-01 3.051000e-01 8.024000e-01 2.870000e-01 5.490000e-01 3.614000e-01 7.325000e-01 2.592000e-01 5.638000e-01 3.773000e-01 7.175000e-01 2.555000e-01 3.958000e-01
+ 5.016000e-01 1.766000e-01 7.704000e-01 2.323000e-01 9.845000e-01 1.148000e-01 1.770000e+00 -4.560000e-02 -1.452000e-01 2.174300e+00 2.120000e-02 -2.570000e-02 4.619000e-01 1.186000e-01
+ 3.840000e-02 4.844000e-01 2.104000e-01 6.335000e-01 3.165000e-01 6.526000e-01 7.100000e-03 1.721900e+00 2.400000e-02 -3.070000e-02 -3.000000e-04 -1.300000e-03 1.120000e-01 3.751000e-01
+ 6.022000e-01 4.851000e-01 9.271000e-01 4.647000e-01 1.181800e+00 3.103000e-01 1.728700e+00 6.000000e-04 2.143800e+00 -1.692000e-01 2.100000e-02 1.706200e+00 6.078000e-01 2.020000e-01
+ 4.198000e-01 1.360000e-01 7.111000e-01 1.498000e-01 7.691000e-01 2.240000e-01 7.126000e-01 1.501000e-01 8.195000e-01 1.747000e-01 7.925000e-01 5.360000e-02 4.255000e-01 6.960000e-02
+ 4.734000e-01 3.226000e-01 7.321000e-01 5.214000e-01 6.302000e-01 8.344000e-01 7.167000e-01 5.399000e-01 8.025000e-01 6.486000e-01 7.317000e-01 5.186000e-01 3.959000e-01 3.324000e-01
+ 1.976000e-01 2.874000e-01 5.407000e-01 2.456000e-01 6.124000e-01 3.106000e-01 1.765600e+00 -4.640000e-02 -8.500000e-03 1.090000e-02 -3.050000e-02 3.470000e-02 2.834000e-01 1.711000e-01
+ 2.472000e-01 3.830000e-01 4.762000e-01 4.897000e-01 5.658000e-01 5.331000e-01 4.445000e-01 5.271000e-01 4.262000e-01 7.066000e-01 5.670000e-01 3.801000e-01 2.861000e-01 2.700000e-01
+ 5.640000e-02 8.770000e-01 4.094000e-01 8.304000e-01 4.598000e-01 9.081000e-01 1.685500e+00 5.740000e-02 -1.160000e-02 2.014600e+00 3.930000e-02 -4.600000e-02 2.180000e-01 5.141000e-01
+ 5.933000e-01 5.124000e-01 3.009000e-01 4.766000e-01 2.757000e-01 3.484000e-01 2.430000e-01 5.403000e-01 2.414000e-01 3.768000e-01 3.809000e-01 3.783000e-01 2.467000e-01 2.736000e-01
+ 4.738000e-01 1.604000e-01 6.897000e-01 3.143000e-01 7.454000e-01 4.065000e-01 7.160000e-01 2.829000e-01 7.983000e-01 3.611000e-01 6.483000e-01 3.632000e-01 4.115000e-01 1.662000e-01
+ 3.263000e-01 2.228000e-01 5.195000e-01 3.371000e-01 6.499000e-01 3.145000e-01 6.013000e-01 2.391000e-01 5.882000e-01 3.997000e-01 4.504000e-01 4.183000e-01 2.802000e-01 2.177000e-01
+ 2.952000e-01 3.011000e-01 3.907000e-01 5.610000e-01 5.623000e-01 4.951000e-01 3.930000e-01 5.548000e-01 5.071000e-01 5.777000e-01 3.762000e-01 5.773000e-01 2.368000e-01 3.101000e-01
+ 8.571000e-01 2.373000e-01 3.476000e-01 9.596000e-01 2.949000e-01 6.430000e-01 3.605000e-01 9.372000e-01 2.396000e-01 6.787000e-01 4.688000e-01 8.115000e-01 2.814000e-01 4.219000e-01
+-8.300000e-02 7.175000e-01 2.840000e-02 8.961000e-01 4.980000e-02 1.014500e+00 -5.960000e-02 1.804600e+00 -2.070000e-02 2.025200e+00 1.300000e-03 -1.400000e-03 2.410000e-02 5.176000e-01
+ 4.093000e-01 4.796000e-01 7.052000e-01 4.992000e-01 8.137000e-01 5.116000e-01 1.559200e+00 2.063000e-01 -9.400000e-03 2.012900e+00 -4.380000e-02 5.310000e-02 3.694000e-01 3.477000e-01
+-4.070000e-02 3.429000e-01 1.610000e-01 4.522000e-01 3.372000e-01 3.839000e-01 -1.471000e-01 1.905600e+00 2.170000e-02 -2.650000e-02 1.330000e-02 -1.820000e-02 1.011000e-01 2.359000e-01
+ 4.655000e-01 3.234000e-01 6.666000e-01 5.896000e-01 7.814000e-01 6.414000e-01 7.481000e-01 4.871000e-01 8.391000e-01 5.939000e-01 7.590000e-01 4.738000e-01 4.179000e-01 2.995000e-01
+ 3.631000e-01 3.763000e-01 5.393000e-01 6.265000e-01 6.059000e-01 7.227000e-01 5.750000e-01 5.816000e-01 5.516000e-01 8.031000e-01 5.457000e-01 6.142000e-01 3.099000e-01 3.612000e-01
+ 4.637000e-01 4.033000e-01 7.539000e-01 5.969000e-01 7.829000e-01 7.668000e-01 6.929000e-01 6.707000e-01 9.046000e-01 6.521000e-01 7.372000e-01 6.145000e-01 4.322000e-01 3.487000e-01
+ 1.090400e+00 1.660000e-02 6.835000e-01 4.016000e-01 5.539000e-01 2.774000e-01 6.936000e-01 3.948000e-01 5.649000e-01 2.433000e-01 7.215000e-01 3.609000e-01 4.784000e-01 1.675000e-01
+ 1.758000e-01 4.663000e-01 4.616000e-01 5.046000e-01 5.843000e-01 4.959000e-01 1.676900e+00 5.550000e-02 1.330000e-02 1.984500e+00 2.270000e-02 -2.750000e-02 2.619000e-01 2.967000e-01
+ 1.214600e+00 -1.319000e-01 5.935000e-01 5.697000e-01 5.128000e-01 3.593000e-01 5.345000e-01 6.402000e-01 4.997000e-01 3.476000e-01 5.162000e-01 6.670000e-01 4.160000e-01 2.552000e-01
+ 1.620000e-02 -1.880000e-02 2.976000e-01 1.450000e-02 4.584000e-01 -3.510000e-02 -5.870000e-02 6.980000e-02 9.900000e-03 -9.800000e-03 -5.190000e-02 6.120000e-02 1.608000e-01 6.200000e-03
+ 9.487000e-01 1.556000e-01 4.250000e-01 9.013000e-01 2.160000e-01 7.500000e-01 5.109000e-01 8.025000e-01 3.473000e-01 5.742000e-01 4.527000e-01 8.721000e-01 2.995000e-01 4.109000e-01
+ 4.073000e-01 6.996000e-01 6.978000e-01 8.732000e-01 8.389000e-01 8.391000e-01 1.652000e+00 9.270000e-02 -9.850000e-02 2.120300e+00 4.640000e-02 1.671500e+00 4.081000e-01 4.970000e-01
+ 1.179000e-01 3.772000e-01 1.543000e-01 6.233000e-01 2.983000e-01 5.636000e-01 2.670000e-01 4.901000e-01 2.800000e-01 6.010000e-01 1.791000e-01 5.917000e-01 1.150000e-01 3.288000e-01
+ 3.808000e-01 3.059000e-01 7.125000e-01 2.866000e-01 8.360000e-01 2.762000e-01 1.762600e+00 -4.020000e-02 -1.060000e-02 2.014400e+00 -2.190000e-02 2.570000e-02 3.894000e-01 1.950000e-01
+ 1.100700e+00 6.400000e-03 6.214000e-01 1.107200e+00 5.279000e-01 5.033000e-01 6.244000e-01 1.102300e+00 4.872000e-01 5.243000e-01 4.857000e-01 1.269100e+00 4.358000e-01 3.183000e-01
+ 4.452000e-01 4.062000e-01 7.953000e-01 5.247000e-01 7.304000e-01 8.046000e-01 7.100000e-01 6.177000e-01 8.594000e-01 6.745000e-01 7.237000e-01 6.055000e-01 4.072000e-01 3.626000e-01
+-3.360000e-02 7.815000e-01 3.460000e-01 6.911000e-01 3.249000e-01 8.536000e-01 -7.280000e-02 1.825300e+00 1.340000e-02 1.986900e+00 1.620000e-02 -2.070000e-02 1.240000e-01 4.968000e-01
+ 4.713000e-01 4.386000e-01 7.293000e-01 6.936000e-01 7.792000e-01 8.545000e-01 6.979000e-01 7.343000e-01 8.918000e-01 7.419000e-01 6.975000e-01 7.380000e-01 4.071000e-01 4.185000e-01
+ 4.175000e-01 3.384000e-01 7.303000e-01 4.443000e-01 7.458000e-01 6.023000e-01 6.859000e-01 4.919000e-01 8.668000e-01 4.794000e-01 7.331000e-01 4.360000e-01 4.239000e-01 2.520000e-01
+ 5.340000e-02 9.828000e-01 2.123000e-01 1.128600e+00 2.351000e-01 1.247100e+00 -7.900000e-02 1.824500e+00 -3.620000e-02 2.039300e+00 -1.320000e-02 1.450000e-02 8.350000e-02 7.143000e-01
+ 3.388000e-01 3.895000e-01 4.675000e-01 6.855000e-01 4.922000e-01 8.274000e-01 5.061000e-01 6.373000e-01 6.460000e-01 6.687000e-01 4.679000e-01 6.876000e-01 2.774000e-01 3.879000e-01
+ 3.247000e-01 5.262000e-01 6.185000e-01 5.524000e-01 7.928000e-01 4.811000e-01 1.705800e+00 3.450000e-02 -1.000000e-04 1.999800e+00 -2.430000e-02 2.690000e-02 3.642000e-01 3.209000e-01
+ 4.667000e-01 2.944000e-01 8.114000e-01 3.655000e-01 8.536000e-01 4.975000e-01 7.835000e-01 3.983000e-01 9.240000e-01 4.428000e-01 7.512000e-01 4.366000e-01 4.402000e-01 2.459000e-01
+ 1.345000e-01 6.435000e-01 3.909000e-01 7.931000e-01 5.475000e-01 7.823000e-01 3.952000e-01 7.846000e-01 3.832000e-01 9.931000e-01 3.469000e-01 8.406000e-01 2.234000e-01 4.592000e-01
+ 1.940000e-01 4.096000e-01 2.225000e-01 7.397000e-01 2.921000e-01 7.992000e-01 3.331000e-01 6.114000e-01 3.428000e-01 7.537000e-01 2.425000e-01 7.173000e-01 1.560000e-01 3.954000e-01
+ 5.959000e-01 1.939000e-01 9.863000e-01 2.432000e-01 1.230900e+00 1.453000e-01 1.001400e+00 2.181000e-01 1.243900e+00 1.572000e-01 9.501000e-01 2.823000e-01 5.876000e-01 1.168000e-01
+ 3.336000e-01 3.599000e-01 5.074000e-01 5.793000e-01 6.561000e-01 5.657000e-01 6.266000e-01 4.343000e-01 6.604000e-01 5.796000e-01 6.106000e-01 4.549000e-01 3.467000e-01 2.701000e-01
+ 4.059000e-01 3.798000e-01 7.394000e-01 3.555000e-01 8.615000e-01 3.500000e-01 1.760300e+00 -3.010000e-02 -1.800000e-02 2.019900e+00 -1.730000e-02 2.140000e-02 4.065000e-01 2.399000e-01
+ 3.310000e-01 6.894000e-01 7.105000e-01 6.104000e-01 8.226000e-01 6.172000e-01 1.725000e+00 9.400000e-03 1.055000e-01 1.875200e+00 3.200000e-03 -3.000000e-03 4.023000e-01 3.763000e-01
+ 7.199000e-01 3.784000e-01 2.954000e-01 7.870000e-01 2.970000e-01 5.207000e-01 2.539000e-01 8.341000e-01 2.433000e-01 5.660000e-01 3.386000e-01 7.365000e-01 2.611000e-01 3.805000e-01
+ 3.351000e-01 4.388000e-01 4.206000e-01 8.098000e-01 5.920000e-01 7.924000e-01 4.709000e-01 7.497000e-01 6.010000e-01 8.065000e-01 4.283000e-01 8.027000e-01 2.862000e-01 4.179000e-01
+ 2.682000e-01 2.294000e-01 5.970000e-01 1.434000e-01 7.460000e-01 8.930000e-02 5.686000e-01 1.835000e-01 6.593000e-01 2.042000e-01 6.265000e-01 1.115000e-01 3.488000e-01 8.000000e-02
+ 1.968000e-01 5.983000e-01 4.334000e-01 6.884000e-01 6.950000e-01 5.214000e-01 1.668500e+00 7.710000e-02 -1.500000e-02 2.017100e+00 -9.400000e-03 1.200000e-02 2.899000e-01 3.599000e-01
+ 2.743000e-01 2.707000e-01 5.182000e-01 3.226000e-01 6.576000e-01 2.817000e-01 4.334000e-01 4.222000e-01 5.786000e-01 3.969000e-01 5.792000e-01 2.490000e-01 3.026000e-01 1.813000e-01
+ 1.044000e-01 8.482000e-01 2.786000e-01 1.196100e+00 3.187000e-01 1.361100e+00 2.881000e-01 1.186100e+00 2.551000e-01 1.462000e+00 2.166000e-01 1.271600e+00 1.215000e-01 7.374000e-01
+ 7.940000e-02 7.657000e-01 3.944000e-01 7.673000e-01 4.722000e-01 8.130000e-01 1.623500e+00 1.296000e-01 1.566000e-01 1.815600e+00 8.910000e-02 -1.058000e-01 2.025000e-01 4.817000e-01
+ 5.802000e-01 5.219000e-01 2.736000e-01 3.596000e-01 3.377000e-01 1.663000e-01 3.450000e-01 2.768000e-01 2.607000e-01 2.504000e-01 2.996000e-01 3.324000e-01 2.310000e-01 2.168000e-01
+ 3.435000e-01 7.501000e-01 1.504000e-01 4.932000e-01 6.410000e-02 4.826000e-01 2.269000e-01 4.038000e-01 1.557000e-01 3.627000e-01 6.050000e-02 6.040000e-01 1.334000e-01 3.200000e-01
+ 2.296000e-01 8.800000e-02 3.187000e-01 1.855000e-01 3.660000e-01 2.098000e-01 2.541000e-01 2.652000e-01 3.659000e-01 2.184000e-01 1.360000e-01 4.045000e-01 1.647000e-01 1.304000e-01
+ 3.472000e-01 5.533000e-01 7.213000e-01 6.622000e-01 7.495000e-01 8.366000e-01 6.911000e-01 7.010000e-01 7.428000e-01 8.703000e-01 6.704000e-01 7.270000e-01 3.956000e-01 4.075000e-01
+ 1.127300e+00 -2.910000e-02 5.484000e-01 3.926000e-01 4.000000e-01 3.540000e-01 4.938000e-01 4.571000e-01 3.574000e-01 3.831000e-01 3.600000e-01 6.188000e-01 3.658000e-01 2.323000e-01
+ 3.116000e-01 2.006000e-01 6.378000e-01 1.844000e-01 8.251000e-01 1.021000e-01 1.731600e+00 -2.000000e-03 -5.400000e-03 5.500000e-03 6.160000e-02 -7.480000e-02 3.810000e-01 8.600000e-02
+ 5.224000e-01 9.700000e-03 7.253000e-01 1.418000e-01 8.516000e-01 1.318000e-01 1.666600e+00 7.340000e-02 1.910000e-02 -1.910000e-02 -1.140000e-02 1.270000e-02 4.417000e-01 5.310000e-02
+ 5.163000e-01 2.570000e-01 7.918000e-01 4.214000e-01 9.877000e-01 3.764000e-01 8.280000e-01 3.769000e-01 9.526000e-01 4.407000e-01 8.246000e-01 3.858000e-01 4.710000e-01 2.260000e-01
+ 5.571000e-01 5.544000e-01 2.239000e-01 9.428000e-01 2.880000e-01 5.743000e-01 3.653000e-01 7.806000e-01 2.938000e-01 5.459000e-01 3.241000e-01 8.265000e-01 2.381000e-01 4.292000e-01
+ 2.273000e-01 4.148000e-01 3.511000e-01 6.521000e-01 3.822000e-01 7.671000e-01 4.646000e-01 5.182000e-01 4.037000e-01 7.567000e-01 3.498000e-01 6.586000e-01 2.074000e-01 3.724000e-01
+ 4.839000e-01 4.570000e-02 1.840000e-01 1.079000e-01 2.019000e-01 4.250000e-02 3.259000e-01 -6.090000e-02 2.704000e-01 -4.380000e-02 2.482000e-01 3.690000e-02 2.045000e-01 1.880000e-02
+ 1.147700e+00 -5.040000e-02 1.158300e+00 1.214000e-01 9.293000e-01 -1.200000e-02 1.340100e+00 -9.310000e-02 8.479000e-01 5.720000e-02 1.220500e+00 5.150000e-02 6.836000e-01 1.350000e-02
+ 6.989000e-01 3.994000e-01 1.083100e+00 3.312000e-01 1.074000e+00 4.911000e-01 1.831800e+00 -1.164000e-01 2.058700e+00 -6.400000e-02 3.980000e-02 1.682900e+00 5.699000e-01 2.715000e-01
+ 3.769000e-01 4.515000e-01 1.789000e-01 1.933000e-01 1.166000e-01 2.087000e-01 1.752000e-01 1.987000e-01 1.617000e-01 1.490000e-01 1.450000e-01 2.362000e-01 1.476000e-01 1.407000e-01
+ 4.429000e-01 2.770000e-01 6.559000e-01 4.770000e-01 7.533000e-01 5.333000e-01 6.636000e-01 4.679000e-01 9.272000e-01 3.484000e-01 6.942000e-01 4.315000e-01 4.358000e-01 2.080000e-01
+ 2.678000e-01 5.396000e-01 5.706000e-01 5.481000e-01 7.094000e-01 5.272000e-01 1.753200e+00 -2.780000e-02 1.525000e-01 1.819500e+00 -8.100000e-03 9.300000e-03 3.374000e-01 3.192000e-01
+ 5.565000e-01 2.985000e-01 9.732000e-01 1.751000e-01 1.013600e+00 2.741000e-01 1.663900e+00 7.960000e-02 1.972300e+00 3.250000e-02 -3.070000e-02 3.620000e-02 5.264000e-01 1.595000e-01
+ 7.532000e-01 3.612000e-01 3.635000e-01 1.018900e+00 3.685000e-01 5.868000e-01 3.342000e-01 1.066600e+00 2.891000e-01 6.552000e-01 3.743000e-01 1.018400e+00 2.811000e-01 4.401000e-01
+ 1.108600e+00 -5.300000e-03 4.635000e-01 1.283100e+00 4.084000e-01 1.442300e+00 4.793000e-01 1.265200e+00 4.490000e-01 1.193800e+00 6.262000e-01 1.087300e+00 3.890000e-01 5.791000e-01
+ 4.608000e-01 2.314000e-01 8.328000e-01 2.275000e-01 8.639000e-01 3.633000e-01 8.046000e-01 2.602000e-01 8.485000e-01 3.997000e-01 7.342000e-01 3.473000e-01 4.069000e-01 2.202000e-01
+ 4.410000e-02 5.566000e-01 2.636000e-01 6.394000e-01 3.755000e-01 6.360000e-01 2.398000e-01 6.638000e-01 2.537000e-01 7.974000e-01 2.936000e-01 6.030000e-01 1.496000e-01 3.718000e-01
+ 5.005000e-01 3.034000e-01 7.548000e-01 5.121000e-01 1.041600e+00 3.657000e-01 8.597000e-01 3.826000e-01 1.028000e+00 4.066000e-01 7.794000e-01 4.771000e-01 4.800000e-01 2.417000e-01
+ 3.198000e-01 7.901000e-01 1.934000e-01 7.084000e-01 1.126000e-01 6.119000e-01 1.950000e-01 7.055000e-01 1.826000e-01 5.124000e-01 2.665000e-01 6.217000e-01 1.639000e-01 4.130000e-01
+ 5.197000e-01 2.097000e-01 8.513000e-01 1.889000e-01 9.604000e-01 2.034000e-01 1.725800e+00 3.100000e-03 -2.900000e-02 2.034500e+00 -4.180000e-02 4.840000e-02 4.906000e-01 1.207000e-01
+ 2.273000e-01 7.301000e-01 3.601000e-01 1.140200e+00 3.853000e-01 1.328900e+00 3.072000e-01 1.205700e+00 4.551000e-01 1.270000e+00 3.043000e-01 1.206400e+00 2.025000e-01 6.645000e-01
+-4.580000e-02 5.081000e-01 -4.810000e-02 8.260000e-01 -1.860000e-02 9.120000e-01 4.690000e-02 1.675900e+00 -5.220000e-02 6.230000e-02 -4.100000e-03 6.400000e-03 2.600000e-03 4.344000e-01
+ 1.116200e+00 -1.530000e-02 5.599000e-01 5.398000e-01 3.945000e-01 4.545000e-01 5.338000e-01 5.660000e-01 4.524000e-01 3.615000e-01 5.239000e-01 5.846000e-01 3.863000e-01 2.650000e-01
+ 6.918000e-01 3.518000e-01 1.041500e+00 3.028000e-01 1.083500e+00 3.950000e-01 1.622800e+00 1.234000e-01 2.023100e+00 -2.900000e-02 6.140000e-02 -7.670000e-02 6.017000e-01 1.932000e-01
+ 7.017000e-01 3.974000e-01 1.022200e+00 5.651000e-01 1.199500e+00 5.025000e-01 1.701000e+00 3.670000e-02 2.096700e+00 -1.106000e-01 6.400000e-03 1.724200e+00 5.794000e-01 3.400000e-01
+ 3.025000e-01 4.500000e-01 6.046000e-01 4.666000e-01 7.225000e-01 4.639000e-01 1.802600e+00 -8.280000e-02 -4.240000e-02 2.049500e+00 -3.420000e-02 4.300000e-02 3.911000e-01 2.265000e-01
+ 2.405000e-01 4.124000e-01 3.764000e-01 6.427000e-01 4.999000e-01 6.475000e-01 4.117000e-01 5.978000e-01 4.728000e-01 6.944000e-01 4.349000e-01 5.751000e-01 2.347000e-01 3.495000e-01
+ 3.042000e-01 4.975000e-01 5.813000e-01 5.410000e-01 5.880000e-01 6.772000e-01 1.773000e+00 -4.970000e-02 4.010000e-02 1.949800e+00 5.640000e-02 -6.680000e-02 3.048000e-01 3.605000e-01
+ 5.140000e-02 6.044000e-01 1.610000e-01 8.481000e-01 1.999000e-01 9.469000e-01 1.133000e-01 9.042000e-01 1.455000e-01 1.025900e+00 1.506000e-01 8.629000e-01 8.570000e-02 4.987000e-01
+ 7.159000e-01 3.887000e-01 3.221000e-01 2.428000e-01 3.203000e-01 1.404000e-01 3.725000e-01 1.797000e-01 2.981000e-01 1.584000e-01 2.153000e-01 3.692000e-01 2.653000e-01 1.412000e-01
+ 1.038500e+00 8.070000e-02 6.368000e-01 2.733000e-01 5.443000e-01 1.728000e-01 5.774000e-01 3.499000e-01 5.029000e-01 2.067000e-01 6.043000e-01 3.120000e-01 4.286000e-01 1.561000e-01
+ 3.442000e-01 6.581000e-01 6.663000e-01 8.721000e-01 5.898000e-01 1.199100e+00 6.507000e-01 8.913000e-01 5.997000e-01 1.210200e+00 5.873000e-01 9.664000e-01 3.414000e-01 5.564000e-01
+ 4.650000e-02 1.068000e+00 1.044000e-01 4.719000e-01 1.267000e-01 3.475000e-01 2.050000e-02 5.726000e-01 7.500000e-03 4.792000e-01 5.820000e-02 5.241000e-01 4.720000e-02 3.740000e-01
+ 5.320000e-02 3.194000e-01 1.602000e-01 4.124000e-01 1.449000e-01 5.132000e-01 1.762000e-01 3.928000e-01 2.111000e-01 4.435000e-01 1.781000e-01 3.896000e-01 1.014000e-01 2.271000e-01
+ 1.134400e+00 -3.280000e-02 3.935000e-01 4.392000e-01 3.808000e-01 2.835000e-01 4.294000e-01 3.987000e-01 3.470000e-01 3.056000e-01 3.493000e-01 4.929000e-01 3.117000e-01 2.354000e-01
+ 3.821000e-01 6.817000e-01 6.292000e-01 7.613000e-01 8.703000e-01 6.141000e-01 1.673400e+00 6.200000e-02 5.200000e-03 1.990900e+00 -8.500000e-02 1.832600e+00 4.190000e-01 3.872000e-01
+ 3.013000e-01 6.641000e-01 5.217000e-01 9.826000e-01 5.665000e-01 1.154200e+00 6.320000e-01 8.539000e-01 7.991000e-01 9.070000e-01 5.886000e-01 9.031000e-01 3.344000e-01 5.291000e-01
+ 1.506000e-01 7.948000e-01 1.765000e-01 1.315600e+00 2.341000e-01 1.461900e+00 2.085000e-01 1.275200e+00 2.402000e-01 1.474500e+00 1.973000e-01 1.294000e+00 1.203000e-01 7.379000e-01
+ 3.685000e-01 6.324000e-01 7.840000e-01 5.156000e-01 8.288000e-01 6.059000e-01 1.723100e+00 1.340000e-02 -3.700000e-02 2.044700e+00 -1.219000e-01 1.448000e-01 4.090000e-01 3.624000e-01
+ 4.675000e-01 3.226000e-01 7.764000e-01 4.498000e-01 8.159000e-01 5.908000e-01 6.720000e-01 5.726000e-01 8.785000e-01 5.377000e-01 5.608000e-01 7.012000e-01 4.061000e-01 3.096000e-01
+ 1.032100e+00 8.920000e-02 7.001000e-01 1.020800e+00 4.296000e-01 1.249300e+00 5.637000e-01 1.175500e+00 5.356000e-01 1.006600e+00 5.957000e-01 1.141200e+00 4.473000e-01 5.009000e-01
+ 3.537000e-01 3.750000e-01 5.846000e-01 5.609000e-01 6.021000e-01 7.155000e-01 5.300000e-01 6.204000e-01 6.224000e-01 7.085000e-01 5.285000e-01 6.264000e-01 3.126000e-01 3.522000e-01
+ 1.028400e+00 5.230000e-02 3.442000e-01 1.396500e+00 2.839000e-01 1.006800e+00 3.878000e-01 1.345500e+00 4.144000e-01 8.010000e-01 3.794000e-01 1.354100e+00 2.956000e-01 5.589000e-01
+ 1.255500e+00 -1.783000e-01 9.172000e-01 1.170000e-02 6.671000e-01 7.930000e-02 8.712000e-01 6.710000e-02 6.812000e-01 4.210000e-02 9.521000e-01 -2.890000e-02 5.712000e-01 2.040000e-02
+ 3.895000e-01 2.033000e-01 5.606000e-01 3.758000e-01 7.402000e-01 3.101000e-01 5.242000e-01 4.181000e-01 7.393000e-01 3.271000e-01 5.231000e-01 4.183000e-01 3.386000e-01 1.988000e-01
+ 3.526000e-01 7.464000e-01 6.101000e-01 9.113000e-01 7.630000e-01 8.749000e-01 1.689900e+00 4.920000e-02 1.480000e-02 1.983400e+00 -1.200000e-02 1.745600e+00 3.587000e-01 5.248000e-01
+-1.300000e-03 6.041000e-01 4.347000e-01 4.496000e-01 4.004000e-01 6.332000e-01 2.100000e-03 1.727800e+00 -8.340000e-02 2.097300e+00 1.580000e-02 -1.760000e-02 1.446000e-01 3.869000e-01
+ 3.791000e-01 2.530000e-01 8.544000e-01 6.310000e-02 8.729000e-01 1.838000e-01 1.780600e+00 -5.310000e-02 7.710000e-02 1.912700e+00 -3.610000e-02 4.320000e-02 4.118000e-01 1.349000e-01
+ 1.102700e+00 1.900000e-03 4.964000e-01 5.009000e-01 3.975000e-01 3.810000e-01 5.711000e-01 4.126000e-01 3.578000e-01 4.157000e-01 6.194000e-01 3.533000e-01 3.989000e-01 2.126000e-01
+ 3.882000e-01 4.172000e-01 6.311000e-01 6.264000e-01 8.014000e-01 6.151000e-01 7.290000e-01 5.097000e-01 8.256000e-01 6.037000e-01 7.664000e-01 4.626000e-01 4.112000e-01 3.055000e-01
+ 1.168300e+00 -7.610000e-02 5.486000e-01 1.192800e+00 5.699000e-01 4.532000e-01 5.990000e-01 1.130500e+00 4.773000e-01 5.330000e-01 5.430000e-01 1.196900e+00 4.272000e-01 3.263000e-01
+ 1.946000e-01 8.463000e-01 3.935000e-01 9.886000e-01 5.201000e-01 9.817000e-01 1.797000e+00 -7.150000e-02 -9.460000e-02 2.110900e+00 3.840000e-02 1.683800e+00 2.347000e-01 5.724000e-01
+ 2.387000e-01 5.287000e-01 5.081000e-01 5.803000e-01 6.225000e-01 5.861000e-01 1.602700e+00 1.486000e-01 -3.100000e-03 2.002900e+00 -3.110000e-02 3.750000e-02 2.908000e-01 3.475000e-01
+ 3.340000e-02 8.543000e-01 9.320000e-02 1.295600e+00 1.707000e-01 1.390800e+00 3.800000e-02 1.361300e+00 1.285000e-01 1.471100e+00 7.590000e-02 1.317000e+00 5.550000e-02 7.455000e-01
+ 2.603000e-01 6.276000e-01 6.728000e-01 5.071000e-01 7.549000e-01 5.508000e-01 1.824600e+00 -1.058000e-01 -1.900000e-02 2.019000e+00 -7.000000e-04 4.000000e-04 3.338000e-01 3.718000e-01
+ 5.957000e-01 4.387000e-01 8.091000e-01 8.394000e-01 9.161000e-01 9.635000e-01 7.718000e-01 8.814000e-01 1.003700e+00 8.898000e-01 7.043000e-01 9.604000e-01 4.712000e-01 4.792000e-01
+ 1.171000e+00 -7.670000e-02 5.022000e-01 3.121000e-01 4.242000e-01 2.324000e-01 4.959000e-01 3.193000e-01 4.355000e-01 2.043000e-01 5.301000e-01 2.812000e-01 3.576000e-01 1.846000e-01
+ 1.121500e+00 -2.200000e-02 5.811000e-01 1.162100e+00 5.564000e-01 5.510000e-01 6.498000e-01 1.077300e+00 4.685000e-01 6.165000e-01 5.802000e-01 1.157100e+00 4.429000e-01 3.451000e-01
+ 1.084900e+00 2.450000e-02 3.846000e-01 1.362700e+00 4.707000e-01 7.384000e-01 4.256000e-01 1.313500e+00 4.017000e-01 7.778000e-01 4.385000e-01 1.299300e+00 3.552000e-01 4.773000e-01
+ 1.153600e+00 -5.470000e-02 4.680000e-01 3.564000e-01 3.592000e-01 3.113000e-01 3.693000e-01 4.764000e-01 3.756000e-01 2.744000e-01 4.279000e-01 4.029000e-01 3.265000e-01 2.203000e-01
+ 3.748000e-01 2.994000e-01 6.536000e-01 3.408000e-01 8.457000e-01 2.527000e-01 1.739800e+00 -9.200000e-03 -6.410000e-02 2.075800e+00 3.580000e-02 -4.420000e-02 4.033000e-01 1.715000e-01
+ 4.363000e-01 6.118000e-01 7.460000e-01 6.139000e-01 8.352000e-01 6.512000e-01 1.741400e+00 -1.040000e-02 -3.700000e-02 2.039400e+00 4.330000e-02 -5.150000e-02 4.164000e-01 3.860000e-01
+ 1.798000e-01 2.871000e-01 3.085000e-01 4.197000e-01 3.603000e-01 4.645000e-01 2.507000e-01 4.863000e-01 3.400000e-01 5.030000e-01 3.426000e-01 3.776000e-01 1.842000e-01 2.344000e-01
+ 6.403000e-01 5.420000e-02 1.025400e+00 6.470000e-02 1.219600e+00 9.200000e-03 9.108000e-01 1.963000e-01 1.133800e+00 1.292000e-01 9.212000e-01 1.857000e-01 5.768000e-01 5.450000e-02
+ 4.600000e-02 8.990000e-01 1.115000e-01 1.363600e+00 1.098000e-01 1.570600e+00 1.085000e-01 1.371400e+00 2.028000e-01 1.486500e+00 4.920000e-02 1.434900e+00 6.760000e-02 7.827000e-01
+ 3.339000e-01 7.763000e-01 7.458000e-01 7.458000e-01 7.757000e-01 8.486000e-01 1.733500e+00 7.000000e-04 -8.480000e-02 2.099900e+00 -2.780000e-02 1.761200e+00 3.877000e-01 4.879000e-01
+ 2.704000e-01 8.443000e-01 6.167000e-01 8.324000e-01 7.813000e-01 7.781000e-01 1.633800e+00 1.169000e-01 -2.190000e-02 2.026000e+00 -8.870000e-02 1.835800e+00 3.523000e-01 4.940000e-01
+ 3.663000e-01 5.339000e-01 4.716000e-01 9.602000e-01 5.079000e-01 1.127100e+00 5.363000e-01 8.867000e-01 5.595000e-01 1.094100e+00 5.606000e-01 8.596000e-01 3.032000e-01 5.188000e-01
+ 6.235000e-01 1.920000e-01 1.090900e+00 1.685000e-01 1.179400e+00 2.634000e-01 1.007500e+00 2.645000e-01 1.161100e+00 3.117000e-01 1.011000e+00 2.615000e-01 5.957000e-01 1.379000e-01
+-1.810000e-02 6.916000e-01 2.449000e-01 7.359000e-01 4.121000e-01 6.803000e-01 -6.350000e-02 1.805700e+00 7.400000e-02 1.915100e+00 2.490000e-02 -2.860000e-02 1.347000e-01 4.371000e-01
+ 5.528000e-01 5.532000e-01 3.238000e-01 7.494000e-01 2.123000e-01 6.204000e-01 2.494000e-01 8.322000e-01 2.191000e-01 5.926000e-01 2.836000e-01 7.916000e-01 2.339000e-01 4.084000e-01
+ 7.864000e-01 -2.360000e-02 1.092900e+00 1.320000e-01 1.351800e+00 2.660000e-02 1.164200e+00 4.800000e-02 1.409700e+00 -1.860000e-02 1.181300e+00 2.760000e-02 6.641000e-01 3.780000e-02
+ 4.138000e-01 5.768000e-01 7.693000e-01 5.243000e-01 9.692000e-01 4.379000e-01 1.803000e+00 -8.240000e-02 6.050000e-02 1.930600e+00 -1.340000e-02 1.410000e-02 4.108000e-01 3.600000e-01
+ 1.148100e+00 -5.410000e-02 7.842000e-01 2.590000e-01 6.844000e-01 1.110000e-01 8.148000e-01 2.220000e-01 7.089000e-01 6.410000e-02 8.862000e-01 1.437000e-01 5.566000e-01 7.150000e-02
+ 2.915000e-01 6.952000e-01 5.862000e-01 7.160000e-01 8.323000e-01 5.673000e-01 1.671200e+00 7.010000e-02 1.290000e-02 1.985300e+00 7.770000e-02 -9.110000e-02 3.706000e-01 3.907000e-01
+ 1.131700e+00 -3.170000e-02 9.419000e-01 7.896000e-01 7.905000e-01 4.900000e-01 9.017000e-01 8.375000e-01 7.738000e-01 4.528000e-01 9.162000e-01 8.146000e-01 5.810000e-01 2.747000e-01
+ 3.090000e-02 9.172000e-01 3.080000e-02 1.457100e+00 1.922000e-01 1.471700e+00 4.110000e-02 1.445200e+00 1.063000e-01 1.599500e+00 7.490000e-02 1.411300e+00 2.740000e-02 8.309000e-01
+ 6.018000e-01 2.622000e-01 8.873000e-01 2.966000e-01 1.037300e+00 2.592000e-01 1.817400e+00 -9.650000e-02 2.013200e+00 -1.730000e-02 9.150000e-02 -1.097000e-01 5.341000e-01 1.592000e-01
+ 3.616000e-01 5.395000e-01 7.610000e-01 4.352000e-01 8.018000e-01 5.294000e-01 1.749900e+00 -2.180000e-02 6.930000e-02 1.918400e+00 -5.740000e-02 6.910000e-02 4.071000e-01 3.045000e-01
+ 3.879000e-01 5.093000e-01 6.455000e-01 7.533000e-01 7.869000e-01 7.986000e-01 5.291000e-01 8.947000e-01 7.951000e-01 8.101000e-01 6.323000e-01 7.764000e-01 3.686000e-01 4.411000e-01
+ 8.884000e-01 2.158000e-01 1.187600e+00 5.403000e-01 1.283500e+00 5.980000e-01 1.680100e+00 5.840000e-02 2.025300e+00 -3.460000e-02 4.970000e-02 1.670900e+00 6.889000e-01 2.914000e-01
+ 1.108700e+00 2.100000e-03 1.015600e+00 7.153000e-01 7.320000e-01 1.086200e+00 9.141000e-01 8.361000e-01 8.051000e-01 8.140000e-01 9.557000e-01 7.831000e-01 6.136000e-01 3.523000e-01
+ 2.780000e-02 6.130000e-02 2.001000e-01 2.144000e-01 3.815000e-01 1.446000e-01 1.435000e-01 1.563000e+00 -2.340000e-02 2.930000e-02 -1.340000e-02 1.620000e-02 1.320000e-01 8.730000e-02
+ 1.968000e-01 8.896000e-01 4.827000e-01 9.247000e-01 6.167000e-01 9.017000e-01 1.671100e+00 6.720000e-02 -1.130000e-02 2.014000e+00 5.820000e-02 1.666900e+00 2.653000e-01 5.603000e-01
+ 5.201000e-01 5.841000e-01 3.171000e-01 7.668000e-01 3.882000e-01 4.175000e-01 2.912000e-01 8.033000e-01 1.717000e-01 6.541000e-01 2.294000e-01 8.757000e-01 2.216000e-01 4.260000e-01
+ 5.786000e-01 4.950000e-02 8.336000e-01 1.201000e-01 9.328000e-01 1.453000e-01 1.627900e+00 1.184000e-01 1.938700e+00 6.730000e-02 2.700000e-03 -2.800000e-03 5.267000e-01 1.920000e-02
+ 2.881000e-01 5.880000e-01 6.085000e-01 5.808000e-01 7.821000e-01 5.208000e-01 1.687500e+00 5.650000e-02 -1.156000e-01 2.135100e+00 -2.450000e-02 2.660000e-02 3.434000e-01 3.586000e-01
+ 3.163000e-01 4.248000e-01 6.331000e-01 4.197000e-01 7.968000e-01 3.696000e-01 1.673900e+00 6.850000e-02 4.840000e-02 1.946100e+00 1.170000e-02 -1.470000e-02 3.255000e-01 2.971000e-01
+ 1.184100e+00 -9.100000e-02 5.882000e-01 6.830000e-01 4.091000e-01 5.274000e-01 6.264000e-01 6.381000e-01 4.739000e-01 4.277000e-01 5.825000e-01 6.909000e-01 3.942000e-01 3.051000e-01
+ 2.379000e-01 4.085000e-01 3.863000e-01 6.242000e-01 3.834000e-01 7.741000e-01 3.794000e-01 6.333000e-01 3.210000e-01 8.707000e-01 3.651000e-01 6.482000e-01 2.093000e-01 3.762000e-01
+ 1.124500e+00 -2.220000e-02 3.990000e-01 1.027600e+00 2.620000e-01 7.330000e-01 3.240000e-01 1.115300e+00 3.763000e-01 5.714000e-01 4.534000e-01 9.653000e-01 3.213000e-01 4.047000e-01
+ 1.099400e+00 8.000000e-03 8.668000e-01 8.454000e-01 5.698000e-01 1.414000e+00 6.727000e-01 1.078300e+00 5.144000e-01 1.395700e+00 6.686000e-01 1.077000e+00 5.120000e-01 4.853000e-01
+ 3.698000e-01 1.077000e-01 5.224000e-01 2.341000e-01 5.438000e-01 3.333000e-01 5.149000e-01 2.459000e-01 5.892000e-01 2.902000e-01 5.628000e-01 1.885000e-01 3.137000e-01 1.224000e-01
+ 1.164700e+00 -6.970000e-02 3.553000e-01 1.395300e+00 3.349000e-01 1.135600e+00 4.702000e-01 1.253800e+00 3.487000e-01 1.043500e+00 4.655000e-01 1.262100e+00 3.359000e-01 5.706000e-01
+ 3.183000e-01 3.051000e-01 7.323000e-01 2.050000e-01 6.892000e-01 4.029000e-01 4.636000e-01 5.233000e-01 6.157000e-01 5.086000e-01 5.282000e-01 4.456000e-01 3.188000e-01 2.398000e-01
+ 3.521000e-01 3.844000e-01 5.984000e-01 5.504000e-01 6.438000e-01 6.688000e-01 6.586000e-01 4.784000e-01 6.964000e-01 6.264000e-01 5.053000e-01 6.583000e-01 3.198000e-01 3.473000e-01
+ 5.951000e-01 4.877000e-01 8.186000e-01 8.973000e-01 8.961000e-01 1.057700e+00 6.305000e-01 1.118100e+00 8.322000e-01 1.168700e+00 7.579000e-01 9.702000e-01 4.368000e-01 5.585000e-01
+ 3.389000e-01 -2.500000e-03 6.462000e-01 1.600000e-03 8.299000e-01 -7.180000e-02 1.751500e+00 -2.660000e-02 6.930000e-02 -8.170000e-02 -3.820000e-02 4.560000e-02 3.626000e-01 1.000000e-03
+ 5.361000e-01 6.900000e-03 8.957000e-01 -5.900000e-02 8.035000e-01 1.913000e-01 6.853000e-01 1.933000e-01 8.260000e-01 1.836000e-01 8.115000e-01 4.050000e-02 4.454000e-01 5.170000e-02
+ 1.890000e-02 9.513000e-01 1.228000e-01 1.177100e+00 3.517000e-01 1.045600e+00 6.800000e-03 1.724800e+00 -4.210000e-02 2.044000e+00 6.100000e-03 -7.700000e-03 1.020000e-01 6.578000e-01
+ 9.760000e-02 1.367000e-01 1.787000e-01 1.816000e-01 9.870000e-02 3.317000e-01 7.080000e-02 3.092000e-01 1.655000e-01 2.588000e-01 1.027000e-01 2.720000e-01 6.920000e-02 1.454000e-01
+ 8.847000e-01 -4.760000e-02 1.263500e+00 7.040000e-02 1.474600e+00 3.880000e-02 1.329900e+00 -7.300000e-03 1.572400e+00 -5.190000e-02 1.251700e+00 8.340000e-02 7.533000e-01 1.260000e-02
+ 4.102000e-01 6.910000e-01 7.255000e-01 8.216000e-01 8.329000e-01 8.367000e-01 1.705600e+00 3.830000e-02 6.300000e-02 1.926100e+00 -7.250000e-02 1.816300e+00 3.804000e-01 5.212000e-01
+ 1.200200e+00 -1.123000e-01 7.355000e-01 6.722000e-01 6.381000e-01 3.311000e-01 7.752000e-01 6.237000e-01 5.633000e-01 3.925000e-01 7.433000e-01 6.622000e-01 5.182000e-01 2.040000e-01
+ 1.303000e-01 5.144000e-01 2.051000e-01 8.057000e-01 2.318000e-01 9.195000e-01 1.189000e-01 9.103000e-01 2.451000e-01 9.204000e-01 6.870000e-02 9.648000e-01 9.940000e-02 4.873000e-01
+-1.940000e-02 1.128400e+00 9.260000e-02 8.642000e-01 -7.870000e-02 8.619000e-01 1.940000e-02 9.523000e-01 -3.220000e-02 7.856000e-01 1.277000e-01 8.247000e-01 2.400000e-03 6.047000e-01
+ 4.836000e-01 3.774000e-01 8.733000e-01 2.825000e-01 9.310000e-01 3.550000e-01 1.847400e+00 -1.350000e-01 -6.380000e-02 2.077500e+00 -3.200000e-03 5.300000e-03 4.776000e-01 2.108000e-01
+ 3.880000e-01 7.093000e-01 2.357000e-01 1.496200e+00 1.546000e-01 1.279100e+00 2.154000e-01 1.517400e+00 1.865000e-01 1.174800e+00 2.110000e-01 1.518400e+00 1.589000e-01 7.401000e-01
+ 9.033000e-01 1.708000e-01 1.453700e+00 2.186000e-01 1.625800e+00 2.814000e-01 1.394600e+00 2.859000e-01 1.638100e+00 3.015000e-01 1.507100e+00 1.582000e-01 8.207000e-01 1.479000e-01
+ 7.640000e-02 9.569000e-01 1.070000e-02 1.348700e+00 -2.890000e-02 1.525800e+00 -6.690000e-02 1.814900e+00 5.600000e-02 1.930900e+00 -7.500000e-03 8.600000e-03 1.070000e-02 7.913000e-01
+ 6.920000e-01 1.085000e-01 1.126700e+00 1.214000e-01 1.123300e+00 3.258000e-01 9.782000e-01 2.989000e-01 1.109100e+00 3.648000e-01 9.312000e-01 3.528000e-01 5.654000e-01 1.710000e-01
+ 1.140900e+00 -4.250000e-02 5.855000e-01 1.156300e+00 5.839000e-01 5.531000e-01 6.872000e-01 1.039200e+00 5.730000e-01 5.251000e-01 6.184000e-01 1.117100e+00 4.544000e-01 3.476000e-01
+ 2.265000e-01 6.849000e-01 5.588000e-01 6.636000e-01 5.984000e-01 7.636000e-01 1.767000e+00 -3.880000e-02 4.490000e-02 1.949400e+00 -5.390000e-02 6.500000e-02 3.104000e-01 4.117000e-01
+ 1.136600e+00 -3.860000e-02 7.026000e-01 6.384000e-01 4.141000e-01 5.617000e-01 6.621000e-01 6.825000e-01 6.124000e-01 3.018000e-01 7.418000e-01 5.917000e-01 4.552000e-01 2.588000e-01
+ 1.151400e+00 -5.220000e-02 7.812000e-01 9.582000e-01 6.172000e-01 8.571000e-01 8.638000e-01 8.509000e-01 6.028000e-01 8.008000e-01 8.650000e-01 8.518000e-01 5.288000e-01 3.810000e-01
+ 3.512000e-01 7.155000e-01 4.879000e-01 1.195400e+00 6.452000e-01 1.257600e+00 5.178000e-01 1.157700e+00 5.995000e-01 1.341400e+00 4.382000e-01 1.253600e+00 2.947000e-01 6.734000e-01
+ 3.928000e-01 2.647000e-01 5.870000e-01 4.481000e-01 6.574000e-01 5.253000e-01 6.692000e-01 3.489000e-01 7.849000e-01 3.914000e-01 6.414000e-01 3.851000e-01 3.603000e-01 2.330000e-01
+ 9.810000e-02 5.790000e-01 2.610000e-02 1.055300e+00 1.204000e-01 1.094800e+00 1.193000e-01 9.473000e-01 1.539000e-01 1.071500e+00 1.487000e-01 9.104000e-01 5.580000e-02 5.622000e-01
+ 3.960000e-01 5.710000e-01 6.352000e-01 8.757000e-01 6.999000e-01 1.032200e+00 6.124000e-01 9.060000e-01 7.728000e-01 9.632000e-01 6.477000e-01 8.664000e-01 3.643000e-01 5.100000e-01
+ 1.056200e+00 5.920000e-02 5.754000e-01 5.725000e-01 3.995000e-01 4.736000e-01 4.606000e-01 7.063000e-01 4.667000e-01 3.719000e-01 5.426000e-01 6.059000e-01 3.744000e-01 2.928000e-01
+ 1.544000e-01 3.905000e-01 1.708000e-01 6.948000e-01 1.166000e-01 8.799000e-01 1.731000e-01 6.905000e-01 2.379000e-01 7.522000e-01 1.968000e-01 6.632000e-01 1.038000e-01 3.948000e-01
+ 7.474000e-01 3.670000e-01 4.144000e-01 1.308300e+00 3.011000e-01 7.628000e-01 4.681000e-01 1.247800e+00 2.852000e-01 7.465000e-01 2.409000e-01 1.516200e+00 2.805000e-01 4.849000e-01
+ 5.245000e-01 1.796000e-01 8.253000e-01 2.766000e-01 9.779000e-01 2.720000e-01 8.928000e-01 1.989000e-01 1.056100e+00 1.957000e-01 8.944000e-01 1.973000e-01 4.657000e-01 1.730000e-01
+ 2.587000e-01 3.300000e-01 3.558000e-01 5.741000e-01 4.228000e-01 6.357000e-01 3.226000e-01 6.190000e-01 4.366000e-01 6.308000e-01 3.088000e-01 6.295000e-01 2.096000e-01 3.275000e-01
+ 4.381000e-01 3.545000e-01 7.058000e-01 5.334000e-01 7.713000e-01 6.482000e-01 6.476000e-01 6.045000e-01 8.761000e-01 5.459000e-01 7.537000e-01 4.779000e-01 4.071000e-01 3.084000e-01
+ 1.175000e-01 6.417000e-01 2.160000e-02 3.414000e-01 -4.500000e-03 3.157000e-01 4.350000e-02 3.126000e-01 8.800000e-02 2.014000e-01 8.650000e-02 2.635000e-01 5.010000e-02 2.254000e-01
+ 1.150900e+00 -5.330000e-02 8.148000e-01 1.712000e-01 6.775000e-01 8.840000e-02 8.537000e-01 1.243000e-01 6.137000e-01 1.453000e-01 7.788000e-01 2.154000e-01 5.315000e-01 8.070000e-02
+-5.630000e-02 9.848000e-01 1.351000e-01 1.084000e+00 6.650000e-02 1.297100e+00 8.910000e-02 1.623000e+00 6.430000e-02 1.925100e+00 4.000000e-04 -6.000000e-04 4.630000e-02 6.800000e-01
+ 1.074000e+00 4.070000e-02 4.828000e-01 1.259400e+00 3.677000e-01 1.607300e+00 4.678000e-01 1.268900e+00 5.239000e-01 1.195600e+00 4.787000e-01 1.261600e+00 3.748000e-01 6.080000e-01
+ 3.009000e-01 2.211000e-01 5.387000e-01 3.073000e-01 6.518000e-01 3.179000e-01 1.888000e+00 -1.786000e-01 1.250000e-02 -1.310000e-02 4.310000e-02 -5.170000e-02 3.051000e-01 1.811000e-01
+ 4.833000e-01 5.855000e-01 6.725000e-01 1.015700e+00 8.943000e-01 1.002800e+00 7.816000e-01 8.851000e-01 9.070000e-01 1.016200e+00 7.665000e-01 9.063000e-01 4.491000e-01 5.144000e-01
+ 2.202000e-01 1.536000e-01 3.610000e-01 2.209000e-01 5.806000e-01 5.000000e-02 3.611000e-01 2.241000e-01 4.184000e-01 2.550000e-01 4.442000e-01 1.251000e-01 2.334000e-01 9.850000e-02
+ 5.666000e-01 5.338000e-01 2.767000e-01 1.301500e+00 2.398000e-01 7.728000e-01 2.772000e-01 1.298300e+00 2.390000e-01 7.463000e-01 3.174000e-01 1.256700e+00 2.205000e-01 5.236000e-01
+ 3.376000e-01 7.419000e-01 4.848000e-01 1.221000e+00 6.335000e-01 1.291000e+00 5.921000e-01 1.088100e+00 6.010000e-01 1.356400e+00 4.958000e-01 1.201200e+00 3.003000e-01 6.781000e-01
+ 9.463000e-01 2.020000e-02 1.380900e+00 1.522000e-01 1.676300e+00 5.780000e-02 1.385100e+00 1.532000e-01 1.648500e+00 1.135000e-01 1.339300e+00 2.017000e-01 8.296000e-01 5.060000e-02
+ 3.907000e-01 6.294000e-01 5.879000e-01 7.718000e-01 8.172000e-01 6.377000e-01 1.697300e+00 4.520000e-02 1.263000e-01 1.845900e+00 -1.900000e-03 1.300000e-03 4.017000e-01 3.842000e-01
+ 1.724000e-01 3.817000e-01 1.702000e-01 7.203000e-01 2.873000e-01 7.049000e-01 2.921000e-01 5.731000e-01 3.515000e-01 6.442000e-01 2.986000e-01 5.659000e-01 1.455000e-01 3.580000e-01
+ 1.312000e-01 7.093000e-01 3.948000e-01 7.673000e-01 5.272000e-01 7.554000e-01 1.743300e+00 -1.250000e-02 2.350000e-02 1.975500e+00 2.500000e-03 -3.900000e-03 2.266000e-01 4.576000e-01
+ 1.263000e-01 6.105000e-01 2.655000e-01 8.748000e-01 2.336000e-01 1.076800e+00 1.833000e-01 9.726000e-01 3.004000e-01 1.016500e+00 1.962000e-01 9.532000e-01 1.264000e-01 5.363000e-01
+ 6.043000e-01 4.914000e-01 1.090000e+00 5.961000e-01 1.056900e+00 8.966000e-01 1.027900e+00 6.694000e-01 1.212700e+00 7.549000e-01 1.065400e+00 6.278000e-01 6.046000e-01 3.749000e-01
+ 1.028400e+00 8.930000e-02 4.097000e-01 9.375000e-01 2.813000e-01 6.865000e-01 3.827000e-01 9.620000e-01 2.830000e-01 6.586000e-01 3.508000e-01 1.008600e+00 3.087000e-01 4.039000e-01
+-1.970000e-02 7.719000e-01 4.634000e-01 5.700000e-01 5.143000e-01 6.520000e-01 -2.580000e-02 1.762600e+00 -1.730000e-02 2.023200e+00 2.500000e-02 -2.650000e-02 1.832000e-01 4.379000e-01
Added: trunk/Lib/sandbox/ann/data/txor-trn.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/txor-trn.dat 2006-08-20 06:29:23 UTC (rev 2168)
+++ trunk/Lib/sandbox/ann/data/txor-trn.dat 2006-08-20 06:30:09 UTC (rev 2169)
@@ -0,0 +1,3000 @@
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
Added: trunk/Lib/sandbox/ann/data/txor-tst.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/txor-tst.dat 2006-08-20 06:29:23 UTC (rev 2168)
+++ trunk/Lib/sandbox/ann/data/txor-tst.dat 2006-08-20 06:30:09 UTC (rev 2169)
@@ -0,0 +1,3000 @@
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+1
+1
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+1
+0
+1
+1
+0
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+0
+0
+1
+0
+1
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+1
+1
+0
+1
+1
+0
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+0
+0
+1
+0
+1
+0
+0
+0
+0
+1
+1
+1
+1
+0
+0
+1
+1
+1
+0
+1
+0
+1
+1
+0
+1
+1
+1
+1
+0
+1
+0
+1
+1
+1
+0
+0
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+1
+0
+0
+0
+1
+1
+0
+1
+1
+0
+0
+0
+0
+1
+1
+0
+0
+1
+1
+0
+1
+1
+1
+0
+1
+1
+0
+1
Added: trunk/Lib/sandbox/ann/data/xor-tst.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/xor-tst.dat 2006-08-20 06:29:23 UTC (rev 2168)
+++ trunk/Lib/sandbox/ann/data/xor-tst.dat 2006-08-20 06:30:09 UTC (rev 2169)
@@ -0,0 +1,15 @@
+nin 2
+nout 1
+ndata 12
+0 0 0
+1 0 1
+1 1 0
+0 0 0
+0 0 0
+1 1 0
+0 0 0
+1 1 0
+1 0 1
+1 1 0
+0 1 1
+1 0 1
From scipy-svn at scipy.org Sun Aug 20 02:37:07 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 20 Aug 2006 01:37:07 -0500 (CDT)
Subject: [Scipy-svn] r2170 - trunk/Lib/sandbox/ann
Message-ID: <20060820063707.D90D139C016@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-20 01:37:03 -0500 (Sun, 20 Aug 2006)
New Revision: 2170
Modified:
trunk/Lib/sandbox/ann/mlp.py
trunk/Lib/sandbox/ann/srn.py
Log:
Heavy refactoring. These are more or less complete now. Small additions remain to make the interface more obvious for users.
Modified: trunk/Lib/sandbox/ann/mlp.py
===================================================================
--- trunk/Lib/sandbox/ann/mlp.py 2006-08-20 06:30:09 UTC (rev 2169)
+++ trunk/Lib/sandbox/ann/mlp.py 2006-08-20 06:37:03 UTC (rev 2170)
@@ -1,149 +1,146 @@
# mlp.py
# by: Fred Mailhot
-# last mod: 2006-08-18
+# last mod: 2006-08-19
-from scipy import * # I'll want to change this for numpy eventually
+import numpy as N
from scipy.optimize import leastsq
-import copy
class mlp:
- """Class to define, train and test a multilayer perceptron."""
+ """Class to define, train and test a multilayer perceptron.
+ """
_type = 'mlp'
_outfxns = ('linear','logistic','softmax')
- _algs = ('simplex','powell','bfgs','cg','ncg','leastsq')
- def __init__(self,nin,nhid,nout,fxn,alg='leastsq',w=None):
+ def __init__(self,ni,nh,no,f='linear',w=None):
""" Set up instance of mlp. Initial weights are drawn from a
zero-mean Gaussian w/ variance is scaled by fan-in.
- (see Bishop 1995 for justification)
- Inputs:
- nin/nhid/nout - integer number of input/hidden/output units,
- respectively
- fxn - string description of output unit activation
- fxn (hidden units use tanh); can be 'linear',
- 'logistic' or 'softmax'
+ Input:
+ ni - # of inputs
+ nh - # of hidden & context units
+ no - # of outputs
+ f - output activation fxn
+ w - weight vector
"""
- if fxn not in self._outfxns:
+ if f not in self._outfxns:
print "Undefined activation fxn. Using linear"
self.outfxn = 'linear'
else:
- self.outfxn = fxn
- self.nin = nin
- self.nhid = nhid
- self.nout = nout
- self.alg = alg
+ self.outfxn = f
+ self.ni = ni
+ self.nh = nh
+ self.no = no
+ #self.alg = alg
if w:
- self.nwts = size(w)
- self.w_packed = w
- self.w1 = zeros((nin,nhid),dtype=Float)
- self.b1 = zeros((1,nhid),dtype=Float)
- self.w2 = zeros((nhid,nout),dtype=Float)
- self.b2 = zeros((1,nout),dtype=Float)
- self.unpackwts()
+ self.nw = N.size(w)
+ self.wp = w
+ self.w1 = N.zeros((ni,nh),dtype=Float)
+ self.b1 = N.zeros((1,nh),dtype=Float)
+ self.w2 = N.zeros((nh,no),dtype=Float)
+ self.b2 = N.zeros((1,no),dtype=Float)
+ self.unpack()
else:
- self.nwts = (nin+1)*nhid + (nhid+1)*nout
- self.w1 = randn(nin,nhid)/sqrt(nin+1)
- self.b1 = randn(1,nhid)/sqrt(nin+1)
- self.w2 = randn(nhid,nout)/sqrt(nhid+1)
- self.b2 = randn(1,nout)/sqrt(nhid+1)
- self.packwts()
+ self.nw = (ni+1)*nh + (nh+1)*no
+ self.w1 = N.random.randn(ni,nh)/N.sqrt(ni+1)
+ self.b1 = N.random.randn(1,nh)/N.sqrt(ni+1)
+ self.w2 = N.random.randn(nh,no)/N.sqrt(nh+1)
+ self.b2 = N.random.randn(1,no)/N.sqrt(nh+1)
+ self.pack()
- def unpackwts(self):
+ def unpack(self):
""" Decompose 1-d vector of weights w into appropriate weight
matrices (w1,b1,w2,b2) and reinsert them into net
"""
- self.w1 = reshape(array(self.w_packed)[:self.nin*self.nhid],(self.nin,self.nhid))
- self.b1 = reshape(array(self.w_packed)[(self.nin*self.nhid):(self.nin*self.nhid)+self.nhid],(1,self.nhid))
- self.w2 = reshape(array(self.w_packed)[(self.nin*self.nhid)+self.nhid:\
- (self.nin*self.nhid)+self.nhid+(self.nhid*self.nout)],(self.nhid,self.nout))
- self.b2 = reshape(array(self.w_packed)[(self.nin*self.nhid)+self.nhid+(self.nhid*self.nout):],(1,self.nout))
+ self.w1 = N.array(self.wp)[:self.ni*self.nh].reshape(self.ni,self.nh)
+ self.b1 = N.array(self.wp)[(self.ni*self.nh):(self.ni*self.nh)+self.nh].reshape(1,self.nh)
+ self.w2 = N.array(self.wp)[(self.ni*self.nh)+self.nh:(self.ni*self.nh)+self.nh+(self.nh*self.no)].reshape(self.nh,self.no)
+ self.b2 = N.array(self.wp)[(self.ni*self.nh)+self.nh+(self.nh*self.no):].reshape(1,self.no)
- def packwts(self):
+ def pack(self):
""" Compile weight matrices w1,b1,w2,b2 from net into a
single vector, suitable for optimization routines.
"""
- self.w_packed = hstack([self.w1.reshape(size(self.w1)),
- self.b1.reshape(size(self.b1)),
- self.w2.reshape(size(self.w2)),
- self.b2.reshape(size(self.b2))])
+ self.wp = N.hstack([self.w1.reshape(N.size(self.w1)),
+ self.b1.reshape(N.size(self.b1)),
+ self.w2.reshape(N.size(self.w2)),
+ self.b2.reshape(N.size(self.b2))])
- def fwd(self,inputs,wts=None,hid=False):
- """ Propagate values forward through the net.
- Inputs:
- inputs - self.nin*1 vector of inputs
- hid - boolean specifying whether or not to return hidden
- unit activations, False by default
+ def fwd_all(self,x,w=None):
+ """ Propagate values forward through the net.
+ Input:
+ x - array (size>1) of input patterns
+ w - optional 1-d vector of weights
+ Returns:
+ y - array of outputs for all input patterns
"""
- if wts is not None:
- self.w_packed = wts
- self.unpackwts()
-
- z = tanh(dot(inputs,self.w1) + dot(ones((len(inputs),1)),self.b1))
- o = dot(z,self.w2) + dot(ones((len(z),1)),self.b2)
-
+ if w is not None:
+ self.wp = w
+ self.unpack()
+ # compute vector of hidden unit values
+ z = N.tanh(N.dot(x,self.w1) + N.dot(N.ones((len(x),1)),self.b1))
+ # compute vector of net outputs
+ o = N.dot(z,self.w2) + N.dot(N.ones((len(z),1)),self.b2)
+ # compute final output activations
if self.outfxn == 'linear':
y = o
elif self.outfxn == 'logistic': # TODO: check for overflow here...
- y = 1/(1+exp(-o))
+ y = 1/(1+N.exp(-o))
elif self.outfxn == 'softmax': # TODO: and here...
- tmp = exp(o)
- y = tmp/(sum(temp,1)*ones((1,self.nout)))
+ tmp = N.exp(o)
+ y = tmp/(N.sum(temp,1)*N.ones((1,self.no)))
- if hid:
- return array(y),array(z)
- else:
- return array(y)
+ return N.array(y)
def errfxn(self,w,x,t):
""" Return vector of squared-errors for the leastsq optimizer
"""
- y = self.fwd(x,w)
- return sum(array(y-t)**2,axis=1)
+ y = self.fwd_all(x,w)
+ return N.sum(N.array(y-t)**2,axis=1)
def train(self,x,t):
- """ Train a multilayer perceptron using scipy's leastsq optimizer
+ """ Train network using scipy's leastsq optimizer
Input:
- x - matrix of input data
- t - matrix of target outputs
+ x - array of input data
+ t - array of targets
+
+ N.B. x and t comprise the *entire* collection of training data
+
Returns:
post-optimization weight vector
"""
- # something's going wrong w/ the full_output option
- # return leastsq(self.errfxn,self.w_packed,args=(x,t),full_output=True)
- return leastsq(self.errfxn,self.w_packed,args=(x,t))
+ return leastsq(self.errfxn,self.wp,args=(x,t))
+ def test_all(self,x,t):
+ """ Test network on an array (size>1) of patterns
+ Input:
+ x - array of input data
+ t - array of targets
+ Returns:
+ sum-squared-error over all data
+ """
+ return N.sum(self.errfxn(self.wp,x,t))
+
def main():
- """ Approx test of module, using the oilTrn/oilTst data files that are
+ """ Build/train/test MLP
"""
from scipy.io import read_array, write_array
- # build the net
- print "\nCreating 12-5-2 MLP with linear outputs"
- net = mlp(12,5,2,'linear')
- w_init = copy.copy(net.w_packed)
- # prep the train/test data
+ print "\nCreating 2-2-1 MLP with logistic outputs"
+ net = mlp(2,2,1,'logistic')
print "\nLoading training and test sets...",
- trn_input = read_array('data/oilTrn.dat',lines=(3,-1),columns=(0,(1,12)))
- trn_targs = read_array('data/oilTrn.dat',lines=(3,-1),columns=(12,-1))
- tst_input = read_array('data/oilTst.dat',lines=(3,-1),columns=(0,(1,12)))
- tst_targs = read_array('data/oilTst.dat',lines=(3,-1),columns=(12,-1))
+ trn_input = read_array('data/xor-trn.dat',lines=(3,-1),columns=(0,(1,2)))
+ trn_targs = read_array('data/xor-trn.dat',lines=(3,-1),columns=(2,-1))
+ trn_targs = trn_targs.reshape(N.size(trn_targs),1)
+ tst_input = read_array('data/xor-tst.dat',lines=(3,-1),columns=(0,(1,2)))
+ tst_targs = read_array('data/xor-tst.dat',lines=(3,-1),columns=(2,-1))
+ tst_targs = tst_targs.reshape(N.size(tst_targs),1)
print "done."
- # initial squared-error
- print "\nInitial SSE on training set: ",\
- sum(net.errfxn(net.w_packed,trn_input,trn_targs))
- print "\nInitial SSE on testing set: ",\
- sum(net.errfxn(net.w_packed,tst_input,tst_targs))
- # train the net
- net.w_packed = net.train(trn_input,trn_targs)[0]
- # final squared-error
- print "\nFinal SSE on training set: ",\
- sum(net.errfxn(net.w_packed,trn_input,trn_targs))
- print "\nFinal SSE on testing set: ",\
- sum(net.errfxn(net.w_packed,tst_input,tst_targs))
- # view extended output?
- # REMOVING THIS OPTION FOR NOW
- #if raw_input("Do you want to see the full training output? (y/n").lower() == 'y':
- # print retval[1]
+ print "\nInitial SSE:\n"
+ print "\ttraining set: ",net.test_all(trn_input,trn_targs)
+ print "\ttesting set: ",net.test_all(tst_input,tst_targs),"\n"
+ net.wp = net.train(trn_input,trn_targs)[0]
+ print "\nFinal SSE:\n"
+ print "\ttraining set: ",net.test_all(trn_input,trn_targs)
+ print "\ttesting set: ",net.test_all(tst_input,tst_targs),"\n"
if __name__ == '__main__':
main()
Modified: trunk/Lib/sandbox/ann/srn.py
===================================================================
--- trunk/Lib/sandbox/ann/srn.py 2006-08-20 06:30:09 UTC (rev 2169)
+++ trunk/Lib/sandbox/ann/srn.py 2006-08-20 06:37:03 UTC (rev 2170)
@@ -1,54 +1,44 @@
# srn.py
# by: Fred Mailhot
-# last mod: 2006-06-22
+# last mod: 2006-08-18
-from scipy import *
-import copy
+import numpy as N
+from scipy.optimize import leastsq
class srn:
"""Class to define, train and test a simple recurrent network
- a.k.a. 'Elman net' (cf. Elman 1991's Machine Learnig paper,inter alia)
"""
_type = 'srn'
_outfxns = ('linear','logistic','softmax')
- _alg = ('srn')
- def __init__(self,ni,nh,no,f,h=-1,w=None):
+ def __init__(self,ni,nh,no,f='linear',w=None):
""" Set up instance of srn. Initial weights are drawn from a
zero-mean Gaussian w/ variance is scaled by fan-in.
- (see Bishop 1995 for justification)
- Inputs:
- ni - integer number of input units
- nh - integer number of hiden & context units
- no - integer number of output units,
- f - string description of output unit activation fxn;
- one of {'linear','logistic','softmax'}
- (n.b. hidden/context units use tanh)
- w - initialized 1-d weight vector
+ Input:
+ ni - # of inputs
+ nh - # of hidden & context units
+ no - # of outputs
+ f - output activation fxn
+ w - weight vector
"""
if f not in self._outfxns:
print "Undefined activation fxn. Using linear"
self.outfxn = 'linear'
else:
self.outfxn = f
- # set up layers of units
self.ni = ni
self.nh = nh
self.nc = nh
self.no = no
- self.z = zeros((h,nh),dtype=Float) # hidden activations for 1 epoch
- self.c = zeros((h,nh),dtype=Float) # context activations for 1 epoch
- self.o = zeros((h,no),dtype=Float) # output activiation for 1 epoch
- self.p = zeros((nh,nw,nw),dtype=Float)
if w:
- self.nw = size(w)
+ self.nw = N.size(w)
self.wp = w
- self.w1 = zeros((ni,nh),dtype=Float) # input-hidden wts
- self.b1 = zeros((1,nh),dtype=Float) # input biases
- self.wc = zeros((nh,nh),dtype=Float) # context wts
- self.w2 = zeros((nh,no),dtype=Float) # hidden-output wts
- self.b2 = zeros((1,no),dtype=Float) # hidden biases
+ self.w1 = N.zeros((ni,nh),dtype=Float) # input-hidden wts
+ self.b1 = N.zeros((1,nh),dtype=Float) # input biases
+ self.wc = N.zeros((nh,nh),dtype=Float) # context wts
+ self.w2 = N.zeros((nh,no),dtype=Float) # hidden-output wts
+ self.b2 = N.zeros((1,no),dtype=Float) # hidden biases
self.unpack()
else:
# N.B. I just understood something about the way reshape() works
@@ -57,129 +47,113 @@
# propagation.
# I'll implement this next week.
self.nw = (ni+1)*nh + (nh*nh) + (nh+1)*no
- self.w1 = randn(ni,nh)/sqrt(ni+1)
- self.b1 = randn(1,nh)/sqrt(ni+1)
- self.wc = randn(nh,nh)/sqrt(nh+1)
- self.w2 = randn(nh,no)/sqrt(nh+1)
- self.b2 = randn(1,no)/sqrt(nh+1)
+ self.w1 = N.random.randn(ni,nh)/N.sqrt(ni+1)
+ self.b1 = N.random.randn(1,nh)/N.sqrt(ni+1)
+ self.wc = N.random.randn(nh,nh)/N.sqrt(nh+1)
+ self.w2 = N.random.randn(nh,no)/N.sqrt(nh+1)
+ self.b2 = N.random.randn(1,no)/N.sqrt(nh+1)
self.pack()
- if size(self.wp) != self.nw:
- raise ValueError, "Unexpected number of weights"
def unpack(self):
""" Decompose 1-d vector of weights w into appropriate weight
matrices (w1,b1,w2,b2) and reinsert them into net
"""
- self.w1 = reshape(array(self.wp)[:self.ni*self.nh],(self.ni,self.nh))
- self.b1 = reshape(array(self.wp)[(self.ni*self.nh):(self.ni*self.nh)+self.nh],(1,self.nh))
- self.wc = reshape(array(self.wp)[(self.ni*self.nh)+self.nh:\
- (self.ni*self.nh)+self.nh+(self.nh*self.nh)],(self.nh,self.nh))
- self.w2 = reshape(array(self.wp)[(self.ni*self.nh)+self.nh+(self.nh*self.nh):\
- (self.ni*self.nh)+self.nh+(self.nh*self.nh)+(self.nh*self.no)],(self.nh,self.no))
- self.b2 = reshape(array(self.wp)[(self.ni*self.nh)+self.nh+(self.nh*self.no):],(1,self.no))
+ self.w1 = N.array(self.wp)[:self.ni*self.nh].reshape(self.ni,self.nh)
+ self.b1 = N.array(self.wp)[(self.ni*self.nh):(self.ni*self.nh)+self.nh].reshape(1,self.nh)
+ self.wc = N.array(self.wp)[(self.ni*self.nh)+self.nh:(self.ni*self.nh)+self.nh+(self.nh*self.nh)].reshape(self.nh,self.nh)
+ self.w2 = N.array(self.wp)[(self.ni*self.nh)+self.nh+(self.nh*self.nh):(self.ni*self.nh)+self.nh+(self.nh*self.nh)+(self.nh*self.no)].reshape(self.nh,self.no)
+ self.b2 = N.array(self.wp)[(self.ni*self.nh)+self.nh+(self.nh*self.nh)+(self.nh*self.no):].reshape(1,self.no)
def pack(self):
""" Compile weight matrices w1,b1,wc,w2,b2 from net into a
single vector, suitable for optimization routines.
"""
- self.wp = hstack([self.w1.reshape(size(self.w1)),
- self.b1.reshape(size(self.b1)),
- self.wc.reshape(size(self.wc)),
- self.w2.reshape(size(self.w2)),
- self.b2.reshape(size(self.b2))])
+ self.wp = N.hstack([self.w1.reshape(N.size(self.w1)),
+ self.b1.reshape(N.size(self.b1)),
+ self.wc.reshape(N.size(self.wc)),
+ self.w2.reshape(N.size(self.w2)),
+ self.b2.reshape(N.size(self.b2))])
- def fwd(self,x,w=None,hid=False):
+ def fwd_all(self,x,w=None):
""" Propagate values forward through the net.
- This involves the following steps:
- (i) feeds the current input and context values to the hidden layer,
- (ii) hidden layer net input is transformed and then sent to the outputs
- (iii) output values are copied to the context layer
- Inputs:
+ Input:
x - matrix of all input patterns
w - 1-d vector of weights
- hid - boolean specifying whether or not to return hidden
- unit activations, False by default
- Outputs:
+ Returns:
y - matrix of all outputs
- z - matrix of all hidden activations (if hid=True)
"""
- if wts is not None:
+ if w is not None:
self.wp = w
self.unpack()
- # compute net input to hiddens and then squash it
- self.z = tanh(dot(x,self.w1) + dot(self.c,self.wc) + dot(ones((len(x),1)),self.b1))
- # send hidden vals to output and copy to context
- o = dot(self.z,self.w2) + dot(ones((len(self.z),1)),self.b2)
- self.c = copy.copy(self.z)
- # compute output activations
+ # compute vector of context values for current weight matrix
+ c = N.tanh(N.dot(x,self.w1) + N.dot(N.ones((len(x),1)),self.b1))
+ c = N.vstack([c[1:],c[0]])
+ # compute vector of hidden unit values
+ z = N.tanh(N.dot(x,self.w1) + N.dot(c,self.wc) + N.dot(N.ones((len(x),1)),self.b1))
+ # compute vector of net outputs
+ o = N.dot(z,self.w2) + N.dot(N.ones((len(z),1)),self.b2)
+ # compute final output activations
if self.outfxn == 'linear':
y = o
elif self.outfxn == 'logistic': # TODO: check for overflow here...
- y = 1/(1+exp(-o))
+ y = 1/(1+N.exp(-o))
elif self.outfxn == 'softmax': # TODO: and here...
- tmp = exp(o)
- y = tmp/(sum(temp,1)*ones((1,self.no)))
+ tmp = N.exp(o)
+ y = tmp/(N.sum(temp,1)*N.ones((1,self.no)))
- if hid:
- return array(y),array(z)
- else:
- return array(y)
-
- def train(self,x,t,N):
- """ Train net by standard backpropagation
- Inputs:
- x - all input patterns
- t - all target patterns
- N - number of times to go over patterns
- Outputs:
- w - new weight vector
+ return N.array(y)
+
+ def errfxn(self,w,x,t):
+ """ Return vector of squared-errors for the leastsq optimizer
"""
- for i in range(N):
-
+ y = self.fwd_all(x,w)
+ return N.sum(N.array(y-t)**2,axis=1)
- def errfxn(self,w,x,t):
- """ Error functions for each of the output-unit activation functions.
- Inputs:
- w - current weight vector
- x - current pattern input(s) (len(x) == self.h)
- t - current pattern target(s)
+ def train(self,x,t):
+ """ Train a multilayer perceptron using scipy's leastsq optimizer
+ Input:
+ x - matrix of input data
+ t - matrix of target outputs
+ Returns:
+ post-optimization weight vector
"""
- y,z = self.fwd(w,x,True)
- if self.outfxn == 'linear':
- # calculate & return SSE
- err = 0.5*sum(sum(array(y-t)**2,axis=1))
- elif self.outfxn == 'logistic':
- # calculate & return x-entropy
- err = -1.0*sum(sum(t*log2(y)+(1-t)*log2(1-y),axis=1))
- elif self.outfxn == 'softmax':
- # calculate & return entropy
- err = -1.0*sum(sum(t*log2(y),axis=1))
- else:
- # this shouldn't happen, return SSE as safe default
- err = 0.5*sum(sum(array(y-t)**2,axis=1))
-
- # returning a tuple of info for now...not sure why
- return err,y,z
+ return leastsq(self.errfxn,self.wp,args=(x,t))
+ def test_all(self,x,t):
+ """ Test network on an array (size>1) of patterns
+ Input:
+ x - array of input data
+ t - array of targets
+ Returns:
+ sum-squared-error over all data
+ """
+ return N.sum(self.errfxn(self.wp,x,t))
+
+
def main():
""" Set up a 1-2-1 SRN to solve the temporal-XOR problem from Elman 1990.
"""
from scipy.io import read_array, write_array
- print "Creating 1-2-1 SRN for 'temporal-XOR' (net.h = 2)"
- net = srn(1,2,1,'logistic',2)
- print net
+ print "\nCreating 1-2-1 SRN for 'temporal-XOR'"
+ net = srn(1,2,1,'logistic')
print "\nLoading training and test sets...",
- trn_input = read_array('data/t-xor1.dat')
- trn_targs = hstack([trn_input[1:],trn_input[0]])
- tst_input = read_array('data/t-xor2.dat')
- tst_targs = hstack([tst_input[1:],tst_input[0]])
+ trn_input = read_array('data/txor-trn.dat')
+ trn_targs = N.hstack([trn_input[1:],trn_input[0]])
+ trn_input = trn_input.reshape(N.size(trn_input),1)
+ trn_targs = trn_targs.reshape(N.size(trn_targs),1)
+ tst_input = read_array('data/txor-tst.dat')
+ tst_targs = N.hstack([tst_input[1:],tst_input[0]])
+ tst_input = tst_input.reshape(N.size(tst_input),1)
+ tst_targs = tst_targs.reshape(N.size(tst_targs),1)
print "done."
- N = input("Number of iterations over training set: ")
+ print "\nInitial SSE:\n"
+ print "\ttraining set: ",net.test_all(trn_input,trn_targs)
+ print "\ttesting set: ",net.test_all(tst_input,tst_targs),"\n"
+ net.wp = net.train(trn_input,trn_targs)[0]
+ print "\nFinal SSE:\n"
+ print "\ttraining set: ",net.test_all(trn_input,trn_targs)
+ print "\ttesting set: ",net.test_all(tst_input,tst_targs),"\n"
- print "\nInitial error: ",net.errfxn(net.wp,tst_input,tst_targs)
- net.train(trn_input,trn_targs,N)
- print "\nFinal error: ",net.errfxn(net.wp,tst_input,tst_targs)
-
if __name__ == '__main__':
main()
From scipy-svn at scipy.org Sun Aug 20 21:02:49 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 20 Aug 2006 20:02:49 -0500 (CDT)
Subject: [Scipy-svn] r2171 - trunk/Lib/sandbox/ann
Message-ID: <20060821010249.D155839C030@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-20 20:02:46 -0500 (Sun, 20 Aug 2006)
New Revision: 2171
Modified:
trunk/Lib/sandbox/ann/mlp.py
trunk/Lib/sandbox/ann/rbf.py
trunk/Lib/sandbox/ann/srn.py
Log:
Updates/refactorings for mlp and srn, addition of rbf.
Modified: trunk/Lib/sandbox/ann/mlp.py
===================================================================
--- trunk/Lib/sandbox/ann/mlp.py 2006-08-20 06:37:03 UTC (rev 2170)
+++ trunk/Lib/sandbox/ann/mlp.py 2006-08-21 01:02:46 UTC (rev 2171)
@@ -17,10 +17,10 @@
zero-mean Gaussian w/ variance is scaled by fan-in.
Input:
ni - # of inputs
- nh - # of hidden & context units
+ nh - # of hidden units
no - # of outputs
f - output activation fxn
- w - weight vector
+ w - vector of initial weights
"""
if f not in self._outfxns:
print "Undefined activation fxn. Using linear"
Modified: trunk/Lib/sandbox/ann/rbf.py
===================================================================
--- trunk/Lib/sandbox/ann/rbf.py 2006-08-20 06:37:03 UTC (rev 2170)
+++ trunk/Lib/sandbox/ann/rbf.py 2006-08-21 01:02:46 UTC (rev 2171)
@@ -1,39 +1,137 @@
# rbf2.py
# tilde
-# 2006/08/18
-# - new attempt at RBF net to get my ideas straight...deadline is fast approaching!
+# 2006/08/20
-from numpy import *
+import numpy as N
+from scipy.optimize import leastsq
class rbf:
+ """Class to define/train/test a radial basis function network
+ """
_type = 'rbf'
-
- def __init__(nin,nhid,nout,trndata):
- # set easy params
- self.nin = nin
- self.nhid = nhid
- self.nout = nout
- # choose subset (1/5?) of training data for basis fxn centers and
- self.centers = []
- for i in trndata:
- if random.random < 0.2:
- self.centers.append(i)
- # set common variance proportional to max dist between centers
+ _outfxns = ('linear','logistic','softmax')
+
+
+ def __init__(self,ni,no,f='linear'):
+ """ Set up instance of RBF net. N.B. RBF centers and variance are selected at training time
+ Input:
+ ni - # of inputs
+ no - # of outputs
+ f - output activation fxn
+ """
+
+ self.ni = ni
+ self.no = no
+ self.outfxn = f
+
+ def unpack(self):
+ """ Decompose 1-d vector of weights w into appropriate weight
+ matrices (self.{w/b}) and reinsert them into net
+ """
+ self.w = N.array(self.wp)[:self.centers.shape[0]*self.no].reshape(self.centers.shape[0],self.no)
+ self.b = N.array(self.wp)[(self.centers.shape[0]*self.no):].reshape(1,self.no)
+
+ def pack(self):
+ """ Compile weight matrices w,b from net into a
+ single vector, suitable for optimization routines.
+ """
+ self.wp = N.hstack([self.w.reshape(N.size(self.w)),
+ self.b.reshape(N.size(self.b))])
+
+ def fwd_all(self,X,w=None):
+ """ Propagate values forward through the net.
+ Inputs:
+ inputs - vector of input values
+ w - packed array of weights
+ Returns:
+ array of outputs for all input patterns
+ """
+ if w is not None:
+ self.wp = w
+ self.unpack()
+ # compute hidden unit values
+ z = N.zeros((len(X),self.centers.shape[0]))
+ for i in range(len(X)):
+ z[i] = N.exp((-1.0/(2*self.variance))*(N.sum((X[i]-self.centers)**2,axis=1)))
+ # compute net outputs
+ o = N.dot(z,self.w) + N.dot(N.ones((len(z),1)),self.b)
+ # compute final output activations
+ if self.outfxn == 'linear':
+ y = o
+ elif self.outfxn == 'logistic': # TODO: check for overflow here...
+ y = 1/(1+N.exp(-o))
+ elif self.outfxn == 'softmax': # TODO: and here...
+ tmp = N.exp(o)
+ y = tmp/(N.sum(temp,1)*N.ones((1,self.no)))
+
+ return N.array(y)
+
+
+ def err_fxn(self,w,X,Y):
+ """ Return vector of squared-errors for the leastsq optimizer
+ """
+ O = self.fwd_all(X,w)
+ return N.sum(N.array(O-Y)**2,axis=1)
+
+ def train(self,X,Y):
+ """ Train RBF network:
+ (i) select fixed centers randomly from input data (10%)
+ (ii) set fixed variance from max dist between centers
+ (iii) learn output weights using scipy's leastsq optimizer
+ """
+ # set centers
+ self.centers = N.zeros((len(X)/10,X.shape[1]))
+ for i in range(len(X)):
+ if i%10 == 0:
+ self.centers[i/10] = X[i]
+ # set variance
d_max = 0.0
for i in self.centers:
for j in self.centers:
- tmp = sqrt((i-j)**2)
+ tmp = N.sum(N.sqrt((i-j)**2))
if tmp > d_max:
d_max = tmp
- self.variance = d_max/2.0*size(trndata)
-
-
- def fwd(self,inputs):
- """ Propagate values forward through the net.
- Inputs:
- inputs - vector of input values
+ self.variance = d_max/(2.0*len(X))
+ # train weights
+ self.nw = self.centers.shape[0]*self.no
+ self.w = N.random.randn(self.centers.shape[0],self.no)/N.sqrt(self.centers.shape[0]+1)
+ self.b = N.random.randn(1,self.no)/N.sqrt(self.centers.shape[0]+1)
+ self.pack()
+ self.wp = leastsq(self.err_fxn,self.wp,args=(X,Y))[0]
+
+ def test_all(self,X,Y):
+ """ Test network on an array (size>1) of patterns
+ Input:
+ x - array of input data
+ t - array of targets
+ Returns:
+ sum-squared-error over all data
"""
- z = exp((-1.0/(2*self.variance))*
- o = dot(z,self.w) + dot(ones((len(z),1)),self.b)
+ return N.sum(self.err_fxn(self.wp,X,Y))
+def main():
+ """ Build/train/test RBF net
+ """
+ from scipy.io import read_array
+ print "\nCreating RBF net"
+ net = rbf(12,2)
+ print "\nLoading training and test sets...",
+ X_trn = read_array('data/oil-trn.dat',columns=(0,(1,12)),lines=(3,-1))
+ Y_trn = read_array('data/oil-trn.dat',columns=(12,-1),lines=(3,-1))
+ X_tst = read_array('data/oil-tst.dat',columns=(0,(1,12)),lines=(3,-1))
+ Y_tst = read_array('data/oil-tst.dat',columns=(12,-1),lines=(3,-1))
+ print "done."
+ #print "\nInitial SSE:\n"
+ #print "\ttraining set: ",net.test_all(X_trn,Y_trn)
+ #print "\ttesting set: ",net.test_all(X_tst,Y_tst),"\n"
+ print "Training...",
+ net.train(X_trn,Y_trn)
+ print "done."
+ print "\nFinal SSE:\n"
+ print "\ttraining set: ",net.test_all(X_trn,Y_trn)
+ print "\ttesting set: ",net.test_all(X_tst,Y_tst),"\n"
+
+
+if __name__ == '__main__':
+ main()
Modified: trunk/Lib/sandbox/ann/srn.py
===================================================================
--- trunk/Lib/sandbox/ann/srn.py 2006-08-20 06:37:03 UTC (rev 2170)
+++ trunk/Lib/sandbox/ann/srn.py 2006-08-21 01:02:46 UTC (rev 2171)
@@ -85,13 +85,22 @@
if w is not None:
self.wp = w
self.unpack()
+
+ ### NEW ATTEMPT ###
+ z = N.array(N.ones(self.nh)*0.5) # init to 0.5, it will be updated on-the-fly
+ o = N.zeros((x.shape[0],self.no)) # this will hold the non-squashed outputs
+ for i in range(len(x)):
+ z = N.tanh(N.dot(x[i],self.w1) + N.dot(z,self.wc) + self.b1)
+ o[i] = (N.dot(z,self.w2) + self.b2)[0]
+
# compute vector of context values for current weight matrix
- c = N.tanh(N.dot(x,self.w1) + N.dot(N.ones((len(x),1)),self.b1))
- c = N.vstack([c[1:],c[0]])
+ #c = N.tanh(N.dot(x,self.w1) + N.dot(N.ones((len(x),1)),self.b1))
+ #c = N.vstack([c[1:],c[0]])
# compute vector of hidden unit values
- z = N.tanh(N.dot(x,self.w1) + N.dot(c,self.wc) + N.dot(N.ones((len(x),1)),self.b1))
+ #z = N.tanh(N.dot(x,self.w1) + N.dot(c,self.wc) + N.dot(N.ones((len(x),1)),self.b1))
# compute vector of net outputs
- o = N.dot(z,self.w2) + N.dot(N.ones((len(z),1)),self.b2)
+ #o = N.dot(z,self.w2) + N.dot(N.ones((len(z),1)),self.b2)
+
# compute final output activations
if self.outfxn == 'linear':
y = o
@@ -101,7 +110,7 @@
tmp = N.exp(o)
y = tmp/(N.sum(temp,1)*N.ones((1,self.no)))
- return N.array(y)
+ return y
def errfxn(self,w,x,t):
""" Return vector of squared-errors for the leastsq optimizer
From scipy-svn at scipy.org Sun Aug 20 21:40:22 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 20 Aug 2006 20:40:22 -0500 (CDT)
Subject: [Scipy-svn] r2172 - in trunk/Lib/sandbox/ann: . data
Message-ID: <20060821014022.0BD1439C030@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-20 20:40:20 -0500 (Sun, 20 Aug 2006)
New Revision: 2172
Removed:
trunk/Lib/sandbox/ann/data/oilTrn.dat
trunk/Lib/sandbox/ann/data/oilTst.dat
Modified:
trunk/Lib/sandbox/ann/README
Log:
Removed two data files.
Modified: trunk/Lib/sandbox/ann/README
===================================================================
--- trunk/Lib/sandbox/ann/README 2006-08-21 01:02:46 UTC (rev 2171)
+++ trunk/Lib/sandbox/ann/README 2006-08-21 01:40:20 UTC (rev 2172)
@@ -5,8 +5,9 @@
fred.mailhot at gmail.com
-A "neural" network module for scipy, adding standard feedforward architectures
-(MLP and RBF), as well as some recurrent architectures (e.g. SRN) and
-optimization algorithms.
+An artificial neural network module for scipy, adding standard feedforward architectures
+(MLP and RBF), as well as some recurrent architectures (e.g. SRN).
+Each of {mlp,srn,rbf}.py contains a class to define, train and test a network,
+along with a main() functions that demos on a toy dataset.
Deleted: trunk/Lib/sandbox/ann/data/oilTrn.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/oilTrn.dat 2006-08-21 01:02:46 UTC (rev 2171)
+++ trunk/Lib/sandbox/ann/data/oilTrn.dat 2006-08-21 01:40:20 UTC (rev 2172)
@@ -1,503 +0,0 @@
- nin 12
- nout 2
- ndata 500
- 3.315000e-01 2.156000e-01 6.802000e-01 1.434000e-01 6.825000e-01 2.720000e-01 6.223000e-01 2.092000e-01 7.961000e-01 1.530000e-01 5.856000e-01 2.573000e-01 3.440000e-01 1.401000e-01
- 9.390000e-02 1.008900e+00 3.650000e-02 6.944000e-01 9.080000e-02 4.961000e-01 7.220000e-02 6.521000e-01 -1.300000e-02 6.085000e-01 6.310000e-02 6.597000e-01 5.140000e-02 4.459000e-01
- 5.184000e-01 2.283000e-01 5.300000e-01 6.884000e-01 7.456000e-01 6.171000e-01 6.136000e-01 5.928000e-01 7.678000e-01 6.130000e-01 6.705000e-01 5.202000e-01 3.710000e-01 3.214000e-01
- 4.208000e-01 6.740000e-01 1.651000e-01 7.592000e-01 1.810000e-01 5.448000e-01 1.707000e-01 7.554000e-01 1.635000e-01 5.492000e-01 2.598000e-01 6.455000e-01 1.667000e-01 4.177000e-01
- 3.130000e-01 6.465000e-01 5.908000e-01 6.924000e-01 7.664000e-01 6.262000e-01 1.717700e+00 1.500000e-02 8.510000e-02 1.904600e+00 -1.650000e-02 2.210000e-02 3.378000e-01 4.184000e-01
- 1.145800e+00 -4.670000e-02 4.056000e-01 5.662000e-01 3.123000e-01 4.580000e-01 3.636000e-01 6.134000e-01 3.305000e-01 4.132000e-01 4.167000e-01 5.514000e-01 3.249000e-01 2.790000e-01
--1.900000e-03 1.732000e-01 5.700000e-03 4.882000e-01 2.076000e-01 3.910000e-01 8.600000e-03 1.719800e+00 2.150000e-02 -2.580000e-02 6.730000e-02 -8.290000e-02 5.100000e-02 2.123000e-01
- 7.800000e-03 4.615000e-01 1.181000e-01 6.590000e-01 2.587000e-01 6.352000e-01 -1.910000e-02 1.749100e+00 1.098000e-01 -1.315000e-01 4.070000e-02 -4.850000e-02 6.210000e-02 3.856000e-01
- 7.305000e-01 1.189000e-01 1.062600e+00 1.013000e-01 1.138500e+00 1.486000e-01 1.763100e+00 -4.160000e-02 2.073100e+00 -8.720000e-02 -4.390000e-02 5.300000e-02 6.070000e-01 8.130000e-02
- 6.199000e-01 4.779000e-01 9.528000e-01 7.463000e-01 9.741000e-01 8.633000e-01 1.677100e+00 6.200000e-02 2.027100e+00 -3.010000e-02 1.510000e-02 1.714700e+00 5.065000e-01 4.589000e-01
- 1.130800e+00 -2.860000e-02 1.000500e+00 7.387000e-01 8.390000e-01 1.874000e-01 1.084800e+00 6.374000e-01 8.534000e-01 1.373000e-01 1.042200e+00 6.836000e-01 6.215000e-01 1.323000e-01
- 5.093000e-01 6.038000e-01 2.874000e-01 8.162000e-01 2.267000e-01 6.181000e-01 2.646000e-01 8.490000e-01 3.365000e-01 4.648000e-01 2.815000e-01 8.254000e-01 2.280000e-01 4.243000e-01
- 7.600000e-02 5.010000e-01 1.870000e-01 7.011000e-01 1.728000e-01 8.475000e-01 2.300000e-01 6.536000e-01 1.616000e-01 8.732000e-01 1.603000e-01 7.331000e-01 9.550000e-02 4.203000e-01
- 4.662000e-01 1.209000e-01 7.657000e-01 1.390000e-01 8.886000e-01 1.304000e-01 1.694000e+00 4.530000e-02 -1.170000e-02 2.011100e+00 -1.940000e-02 2.170000e-02 4.422000e-01 7.900000e-02
- 1.125400e+00 -2.520000e-02 6.776000e-01 1.793000e-01 4.287000e-01 2.804000e-01 6.003000e-01 2.737000e-01 4.541000e-01 2.370000e-01 6.775000e-01 1.850000e-01 4.369000e-01 1.284000e-01
- 3.334000e-01 5.468000e-01 6.072000e-01 7.549000e-01 6.294000e-01 9.322000e-01 5.850000e-01 7.859000e-01 6.324000e-01 9.568000e-01 6.026000e-01 7.616000e-01 3.277000e-01 4.629000e-01
- 3.760000e-02 7.113000e-01 4.992000e-01 5.377000e-01 6.049000e-01 5.530000e-01 1.663500e+00 8.210000e-02 -1.890000e-02 2.024100e+00 1.400000e-03 -3.000000e-03 2.534000e-01 3.568000e-01
- 1.703000e-01 2.234000e-01 2.677000e-01 3.477000e-01 2.734000e-01 4.324000e-01 1.222000e-01 5.213000e-01 2.333000e-01 4.926000e-01 2.044000e-01 4.215000e-01 1.407000e-01 2.175000e-01
- 1.328000e-01 2.144000e-01 2.466000e-01 2.912000e-01 3.244000e-01 2.815000e-01 1.586000e-01 3.982000e-01 3.165000e-01 3.005000e-01 3.038000e-01 2.239000e-01 1.300000e-01 1.831000e-01
- 1.106900e+00 -1.500000e-03 1.787100e+00 -7.230000e-02 1.038900e+00 7.086000e-01 1.672800e+00 7.010000e-02 1.008300e+00 5.901000e-01 1.740500e+00 -1.880000e-02 7.498000e-01 2.096000e-01
- 1.083700e+00 2.940000e-02 6.675000e-01 5.421000e-01 5.040000e-01 3.997000e-01 7.271000e-01 4.673000e-01 6.061000e-01 2.526000e-01 7.957000e-01 3.861000e-01 4.794000e-01 1.997000e-01
- 6.379000e-01 3.709000e-01 9.139000e-01 6.785000e-01 1.117100e+00 6.825000e-01 9.074000e-01 6.917000e-01 1.152700e+00 6.739000e-01 9.866000e-01 5.957000e-01 5.590000e-01 3.562000e-01
- 6.520000e-02 4.575000e-01 5.170000e-01 2.900000e-01 6.257000e-01 3.041000e-01 1.700700e+00 3.410000e-02 -1.700000e-03 2.400000e-03 -4.430000e-02 5.270000e-02 2.800000e-01 1.838000e-01
- 5.460000e-02 4.317000e-01 2.260000e-02 8.026000e-01 2.228000e-01 7.077000e-01 1.370000e-02 1.717800e+00 -5.640000e-02 6.540000e-02 -9.100000e-03 1.070000e-02 7.470000e-02 3.874000e-01
- 6.250000e-02 1.036100e+00 -3.160000e-02 9.835000e-01 1.020000e-02 7.331000e-01 -5.260000e-02 1.005500e+00 -5.360000e-02 7.915000e-01 -2.270000e-02 9.754000e-01 3.200000e-03 5.922000e-01
- 8.813000e-01 2.321000e-01 4.637000e-01 1.117000e-01 2.749000e-01 2.270000e-01 4.328000e-01 1.497000e-01 3.223000e-01 1.589000e-01 4.639000e-01 1.134000e-01 2.964000e-01 1.282000e-01
- 2.830000e-02 1.087400e+00 1.069000e-01 6.261000e-01 1.089000e-01 4.879000e-01 -3.670000e-02 7.978000e-01 -6.910000e-02 6.871000e-01 4.170000e-02 7.048000e-01 3.750000e-02 4.698000e-01
- 1.116000e+00 -1.490000e-02 1.075900e+00 6.281000e-01 6.518000e-01 9.179000e-01 9.002000e-01 8.356000e-01 6.325000e-01 8.442000e-01 8.748000e-01 8.595000e-01 5.796000e-01 3.492000e-01
- 3.371000e-01 7.714000e-01 7.103000e-01 8.678000e-01 8.329000e-01 8.652000e-01 1.701600e+00 3.270000e-02 -1.300000e-01 2.157200e+00 -8.280000e-02 1.834700e+00 3.773000e-01 5.367000e-01
- 7.327000e-01 3.195000e-01 9.908000e-01 6.799000e-01 1.154500e+00 7.437000e-01 1.039000e+00 6.200000e-01 1.251800e+00 6.617000e-01 9.425000e-01 7.395000e-01 5.773000e-01 3.877000e-01
- 3.568000e-01 4.784000e-01 7.597000e-01 3.709000e-01 7.185000e-01 5.614000e-01 1.689700e+00 4.820000e-02 -5.500000e-02 2.069800e+00 1.110000e-02 -1.070000e-02 3.974000e-01 2.757000e-01
- 8.451000e-01 2.537000e-01 1.175900e+00 3.158000e-01 1.157700e+00 4.833000e-01 1.690800e+00 5.060000e-02 1.869400e+00 1.534000e-01 -8.700000e-02 1.834000e+00 6.629000e-01 2.139000e-01
- 1.053400e+00 6.240000e-02 9.920000e-01 7.462000e-01 6.545000e-01 9.606000e-01 9.666000e-01 7.742000e-01 7.771000e-01 7.086000e-01 9.877000e-01 7.512000e-01 6.243000e-01 3.112000e-01
- 7.150000e-02 1.045000e+00 1.133000e-01 8.252000e-01 4.200000e-02 7.057000e-01 1.016000e-01 8.422000e-01 7.360000e-02 6.540000e-01 7.840000e-02 8.680000e-01 7.220000e-02 5.227000e-01
- 1.002600e+00 1.198000e-01 6.942000e-01 1.048700e+00 5.669000e-01 5.787000e-01 7.905000e-01 9.402000e-01 6.875000e-01 3.929000e-01 7.361000e-01 1.000800e+00 5.116000e-01 2.856000e-01
- 4.843000e-01 6.102000e-01 2.827000e-01 1.441700e+00 2.176000e-01 8.856000e-01 3.216000e-01 1.399100e+00 8.600000e-02 1.002300e+00 2.466000e-01 1.485100e+00 1.914000e-01 5.923000e-01
- 3.972000e-01 1.078000e-01 5.178000e-01 2.948000e-01 5.923000e-01 3.344000e-01 5.037000e-01 3.121000e-01 6.118000e-01 3.270000e-01 5.425000e-01 2.633000e-01 3.099000e-01 1.574000e-01
- 3.522000e-01 3.868000e-01 5.201000e-01 6.377000e-01 5.522000e-01 7.776000e-01 5.076000e-01 6.553000e-01 6.258000e-01 7.105000e-01 4.515000e-01 7.196000e-01 3.029000e-01 3.665000e-01
- 2.230000e-01 8.879000e-01 1.593000e-01 7.129000e-01 1.089000e-01 5.914000e-01 1.294000e-01 7.501000e-01 1.590000e-01 5.180000e-01 1.132000e-01 7.677000e-01 1.232000e-01 4.428000e-01
- 4.409000e-01 -1.820000e-02 6.190000e-01 5.930000e-02 5.689000e-01 2.286000e-01 4.717000e-01 2.311000e-01 5.974000e-01 2.056000e-01 4.849000e-01 2.192000e-01 3.067000e-01 9.330000e-02
- 7.310000e-02 4.657000e-01 1.022000e-01 7.503000e-01 5.510000e-02 9.277000e-01 7.300000e-02 7.852000e-01 1.180000e-01 8.651000e-01 1.219000e-01 7.260000e-01 5.260000e-02 4.397000e-01
- 6.670000e-02 5.461000e-01 4.370000e-01 4.789000e-01 5.523000e-01 4.830000e-01 1.668600e+00 7.700000e-02 1.280000e-02 1.978700e+00 3.340000e-02 -4.030000e-02 2.290000e-01 3.043000e-01
- 8.427000e-01 2.270000e-01 1.094300e+00 3.023000e-01 1.294900e+00 2.022000e-01 1.886300e+00 -1.803000e-01 2.044700e+00 -4.780000e-02 2.900000e-03 1.732800e+00 6.900000e-01 1.222000e-01
- 1.126600e+00 -2.560000e-02 5.215000e-01 1.210700e+00 4.669000e-01 6.685000e-01 5.571000e-01 1.170500e+00 4.676000e-01 6.308000e-01 4.948000e-01 1.244900e+00 3.906000e-01 4.083000e-01
- 5.600000e-01 3.640000e-01 8.255000e-01 6.307000e-01 9.831000e-01 6.679000e-01 8.842000e-01 5.626000e-01 9.357000e-01 7.488000e-01 8.266000e-01 6.312000e-01 4.738000e-01 3.681000e-01
- 4.810000e-02 1.007400e+00 4.296000e-01 9.304000e-01 4.478000e-01 1.047200e+00 1.756000e+00 -3.380000e-02 -7.480000e-02 2.089300e+00 -4.250000e-02 5.140000e-02 2.391000e-01 5.596000e-01
- 1.095200e+00 1.350000e-02 8.862000e-01 8.475000e-01 7.144000e-01 3.892000e-01 9.740000e-01 7.529000e-01 7.114000e-01 3.571000e-01 9.248000e-01 8.077000e-01 5.859000e-01 1.979000e-01
- 2.006000e-01 3.454000e-01 3.986000e-01 4.469000e-01 3.417000e-01 6.387000e-01 2.808000e-01 5.793000e-01 4.392000e-01 5.374000e-01 3.424000e-01 5.096000e-01 2.043000e-01 2.865000e-01
--2.480000e-02 8.079000e-01 3.514000e-01 7.237000e-01 4.603000e-01 7.386000e-01 8.570000e-02 1.632300e+00 6.240000e-02 1.922700e+00 -2.600000e-02 3.120000e-02 1.639000e-01 4.770000e-01
- 4.297000e-01 1.825000e-01 5.939000e-01 3.794000e-01 7.233000e-01 3.816000e-01 6.731000e-01 2.893000e-01 7.694000e-01 3.435000e-01 7.308000e-01 2.192000e-01 3.835000e-01 1.722000e-01
- 6.357000e-01 4.547000e-01 2.637000e-01 7.217000e-01 2.175000e-01 5.563000e-01 2.751000e-01 7.127000e-01 1.261000e-01 6.451000e-01 2.460000e-01 7.426000e-01 2.248000e-01 3.850000e-01
- 1.124800e+00 -2.590000e-02 4.916000e-01 1.229300e+00 3.932000e-01 9.462000e-01 5.271000e-01 1.185500e+00 4.211000e-01 8.591000e-01 5.142000e-01 1.206400e+00 3.246000e-01 5.502000e-01
- 1.131100e+00 -2.980000e-02 1.013700e+00 7.144000e-01 8.036000e-01 2.317000e-01 1.076000e+00 6.498000e-01 7.927000e-01 2.099000e-01 9.650000e-01 7.713000e-01 6.183000e-01 1.358000e-01
- 3.026000e-01 4.889000e-01 6.114000e-01 4.941000e-01 6.889000e-01 5.464000e-01 1.615600e+00 1.361000e-01 5.000000e-04 2.004300e+00 3.290000e-02 -3.970000e-02 3.152000e-01 3.408000e-01
--1.580000e-02 4.553000e-01 1.158000e-01 6.442000e-01 3.486000e-01 5.106000e-01 -1.019000e-01 1.854600e+00 2.450000e-02 -3.050000e-02 6.260000e-02 -7.460000e-02 1.096000e-01 3.147000e-01
--8.610000e-02 1.207600e+00 3.407000e-01 1.090100e+00 5.373000e-01 9.981000e-01 -3.530000e-02 1.776400e+00 -1.200000e-03 2.001700e+00 2.530000e-02 1.701800e+00 1.707000e-01 6.720000e-01
- 3.425000e-01 1.699000e-01 6.039000e-01 1.853000e-01 5.608000e-01 3.606000e-01 5.748000e-01 2.185000e-01 6.062000e-01 3.205000e-01 4.801000e-01 3.313000e-01 3.026000e-01 1.613000e-01
- 8.624000e-01 2.389000e-01 1.129600e+00 5.381000e-01 1.292500e+00 4.896000e-01 1.810500e+00 -9.300000e-02 2.041200e+00 -4.980000e-02 4.800000e-03 1.730400e+00 6.792000e-01 2.692000e-01
--2.360000e-02 6.987000e-01 1.493000e-01 8.415000e-01 2.933000e-01 8.121000e-01 -3.410000e-02 1.772800e+00 -7.390000e-02 2.085800e+00 -5.190000e-02 6.100000e-02 1.021000e-01 4.729000e-01
- 1.140600e+00 -3.760000e-02 5.592000e-01 1.172900e+00 3.989000e-01 8.188000e-01 6.176000e-01 1.108100e+00 4.037000e-01 7.717000e-01 5.580000e-01 1.172800e+00 4.104000e-01 4.151000e-01
- 4.442000e-01 2.989000e-01 6.370000e-01 5.436000e-01 8.215000e-01 5.003000e-01 7.841000e-01 3.647000e-01 7.794000e-01 5.730000e-01 6.997000e-01 4.653000e-01 3.936000e-01 2.806000e-01
- 7.410000e-02 3.967000e-01 4.133000e-01 3.645000e-01 4.413000e-01 4.767000e-01 -4.360000e-02 1.781800e+00 4.830000e-02 -5.760000e-02 1.240000e-02 -1.260000e-02 1.716000e-01 2.843000e-01
- 3.583000e-01 7.460000e-01 1.489000e-01 6.681000e-01 1.327000e-01 5.254000e-01 1.705000e-01 6.434000e-01 1.733000e-01 4.643000e-01 1.570000e-01 6.552000e-01 1.646000e-01 3.708000e-01
- 5.144000e-01 7.100000e-03 7.310000e-01 1.166000e-01 8.438000e-01 1.292000e-01 1.745400e+00 -2.040000e-02 5.240000e-02 -6.220000e-02 2.000000e-04 -1.200000e-03 4.207000e-01 6.780000e-02
- 6.726000e-01 1.323000e-01 1.144800e+00 9.590000e-02 1.362000e+00 3.870000e-02 1.169700e+00 6.840000e-02 1.369600e+00 5.110000e-02 1.182100e+00 5.370000e-02 6.784000e-01 3.530000e-02
- 1.674000e-01 3.897000e-01 4.111000e-01 4.741000e-01 6.153000e-01 3.688000e-01 1.697900e+00 3.140000e-02 -5.520000e-02 2.065200e+00 -4.320000e-02 5.020000e-02 2.435000e-01 2.632000e-01
- 3.785000e-01 7.282000e-01 1.824000e-01 7.266000e-01 1.605000e-01 5.580000e-01 1.435000e-01 7.714000e-01 1.922000e-01 5.056000e-01 3.317000e-01 5.522000e-01 1.777000e-01 3.997000e-01
- 3.145000e-01 7.818000e-01 1.241000e-01 5.976000e-01 1.230000e-01 4.677000e-01 1.220000e-01 6.060000e-01 1.649000e-01 4.058000e-01 7.690000e-02 6.546000e-01 1.322000e-01 3.602000e-01
- 2.918000e-01 2.719000e-01 6.459000e-01 2.241000e-01 7.378000e-01 2.574000e-01 1.683400e+00 6.250000e-02 2.860000e-02 1.964400e+00 -5.600000e-03 6.500000e-03 3.631000e-01 1.400000e-01
- 1.151300e+00 -5.120000e-02 6.183000e-01 3.049000e-01 6.627000e-01 3.790000e-02 7.937000e-01 9.420000e-02 5.698000e-01 1.317000e-01 8.385000e-01 4.390000e-02 4.815000e-01 9.850000e-02
- 1.269000e-01 9.731000e-01 4.120000e-01 1.036700e+00 5.733000e-01 9.856000e-01 1.699400e+00 3.680000e-02 -2.470000e-02 2.024300e+00 -1.100000e-02 1.743800e+00 2.299000e-01 6.160000e-01
--9.200000e-03 6.616000e-01 5.080000e-02 9.117000e-01 1.767000e-01 9.075000e-01 2.000000e-02 1.709800e+00 -6.340000e-02 2.076700e+00 -2.020000e-02 2.450000e-02 4.400000e-02 5.188000e-01
- 3.096000e-01 3.670000e-01 4.894000e-01 5.677000e-01 5.287000e-01 6.841000e-01 4.190000e-01 6.544000e-01 5.844000e-01 6.375000e-01 5.973000e-01 4.401000e-01 2.783000e-01 3.331000e-01
- 5.330000e-02 8.748000e-01 1.818000e-01 1.072900e+00 2.553000e-01 1.123700e+00 -2.450000e-02 1.760300e+00 -3.000000e-03 2.009000e+00 4.320000e-02 -5.350000e-02 1.072000e-01 6.315000e-01
- 1.054700e+00 5.700000e-02 9.906000e-01 9.390000e-02 8.846000e-01 -8.220000e-02 1.024500e+00 4.920000e-02 7.418000e-01 6.930000e-02 1.035600e+00 3.830000e-02 6.174000e-01 2.600000e-02
- 4.399000e-01 3.581000e-01 8.365000e-01 3.885000e-01 9.079000e-01 4.923000e-01 7.725000e-01 4.573000e-01 7.929000e-01 6.507000e-01 7.882000e-01 4.434000e-01 4.279000e-01 2.874000e-01
- 4.167000e-01 5.007000e-01 6.382000e-01 7.986000e-01 8.046000e-01 8.237000e-01 7.404000e-01 6.831000e-01 7.403000e-01 9.233000e-01 6.321000e-01 8.118000e-01 3.938000e-01 4.348000e-01
- 1.641000e-01 5.116000e-01 5.404000e-01 4.425000e-01 5.521000e-01 5.661000e-01 1.699300e+00 3.610000e-02 2.810000e-02 1.964300e+00 6.130000e-02 -7.280000e-02 2.508000e-01 3.306000e-01
- 6.288000e-01 4.748000e-01 3.036000e-01 1.429400e+00 1.956000e-01 1.249500e+00 3.526000e-01 1.368400e+00 2.819000e-01 1.080300e+00 2.704000e-01 1.468300e+00 2.507000e-01 6.484000e-01
- 2.369000e-01 6.611000e-01 5.288000e-01 6.834000e-01 6.557000e-01 6.726000e-01 1.709300e+00 2.570000e-02 -3.230000e-02 2.038300e+00 -7.010000e-02 8.680000e-02 2.784000e-01 4.395000e-01
- 8.934000e-01 2.195000e-01 4.395000e-01 9.475000e-01 3.611000e-01 6.075000e-01 3.924000e-01 1.003200e+00 3.487000e-01 5.886000e-01 4.447000e-01 9.433000e-01 2.960000e-01 4.255000e-01
- 3.127000e-01 7.936000e-01 2.430000e-01 1.480400e+00 1.331000e-01 1.843300e+00 1.919000e-01 1.538600e+00 8.090000e-02 1.620200e+00 2.307000e-01 1.493000e+00 1.468000e-01 8.283000e-01
- 4.778000e-01 5.678000e-01 8.714000e-01 7.462000e-01 9.055000e-01 9.499000e-01 8.423000e-01 7.811000e-01 9.141000e-01 9.747000e-01 7.781000e-01 8.622000e-01 4.561000e-01 4.868000e-01
- 8.896000e-01 2.207000e-01 2.578000e-01 1.349300e+00 2.169000e-01 8.216000e-01 4.123000e-01 1.165400e+00 3.797000e-01 5.948000e-01 4.365000e-01 1.129600e+00 2.961000e-01 4.484000e-01
- 1.164000e-01 5.170000e-01 9.500000e-03 1.017200e+00 1.090000e-02 1.156900e+00 -2.770000e-02 1.060900e+00 -2.000000e-03 1.186900e+00 7.900000e-02 9.352000e-01 2.830000e-02 5.596000e-01
- 4.084000e-01 6.935000e-01 7.813000e-01 7.456000e-01 8.580000e-01 7.981000e-01 1.763400e+00 -3.380000e-02 3.120000e-02 1.962900e+00 4.640000e-02 1.680600e+00 4.056000e-01 4.892000e-01
- 4.115000e-01 3.150000e-01 6.251000e-01 5.168000e-01 6.864000e-01 6.216000e-01 6.157000e-01 5.283000e-01 5.501000e-01 8.035000e-01 5.848000e-01 5.660000e-01 3.420000e-01 3.209000e-01
- 5.793000e-01 5.256000e-01 2.275000e-01 6.283000e-01 2.350000e-01 4.414000e-01 3.038000e-01 5.316000e-01 2.404000e-01 4.183000e-01 2.991000e-01 5.356000e-01 2.314000e-01 3.192000e-01
- 1.988000e-01 4.499000e-01 2.277000e-01 8.006000e-01 2.805000e-01 8.852000e-01 2.238000e-01 8.069000e-01 2.915000e-01 8.895000e-01 2.605000e-01 7.604000e-01 1.524000e-01 4.373000e-01
- 5.380000e-02 4.115000e-01 1.528000e-01 5.627000e-01 5.870000e-02 7.814000e-01 1.204000e-01 6.025000e-01 2.900000e-03 8.575000e-01 8.210000e-02 6.511000e-01 4.320000e-02 3.794000e-01
- 5.143000e-01 4.670000e-01 6.954000e-01 6.313000e-01 8.395000e-01 5.981000e-01 1.833600e+00 -1.195000e-01 6.730000e-02 1.927100e+00 4.320000e-02 -5.020000e-02 4.050000e-01 3.727000e-01
- 1.093200e+00 1.700000e-02 9.920000e-01 2.131000e-01 8.428000e-01 4.310000e-02 1.037400e+00 1.593000e-01 8.353000e-01 2.400000e-02 1.127100e+00 5.930000e-02 6.564000e-01 1.860000e-02
- 1.529000e-01 7.166000e-01 4.760000e-01 7.066000e-01 6.900000e-01 5.941000e-01 1.790100e+00 -6.710000e-02 8.600000e-03 1.987800e+00 -4.000000e-03 4.600000e-03 3.005000e-01 3.884000e-01
- 6.414000e-01 1.886000e-01 9.415000e-01 2.036000e-01 9.966000e-01 2.832000e-01 1.774400e+00 -5.000000e-02 2.061900e+00 -7.050000e-02 2.750000e-02 -3.310000e-02 5.474000e-01 1.283000e-01
- 1.100400e+00 1.080000e-02 1.541000e+00 1.791000e-01 9.895000e-01 8.366000e-01 1.446100e+00 2.887000e-01 9.364000e-01 7.076000e-01 1.512700e+00 2.114000e-01 7.341000e-01 2.329000e-01
- 1.063300e+00 4.970000e-02 6.328000e-01 1.103200e+00 4.612000e-01 1.008900e+00 7.123000e-01 1.013200e+00 5.231000e-01 8.612000e-01 7.706000e-01 9.377000e-01 4.556000e-01 4.502000e-01
- 9.390000e-02 2.852000e-01 1.502000e-01 5.744000e-01 3.306000e-01 4.972000e-01 2.500000e-02 1.699300e+00 2.940000e-02 -3.570000e-02 -5.610000e-02 6.750000e-02 1.023000e-01 3.008000e-01
- 6.954000e-01 2.670000e-01 1.011800e+00 2.593000e-01 1.137400e+00 2.561000e-01 1.706800e+00 3.340000e-02 2.083900e+00 -9.270000e-02 1.300000e-02 -1.780000e-02 6.024000e-01 1.478000e-01
- 1.190800e+00 -9.960000e-02 3.961000e-01 1.285800e+00 3.905000e-01 6.359000e-01 4.426000e-01 1.233500e+00 3.446000e-01 6.614000e-01 4.912000e-01 1.180000e+00 3.361000e-01 4.130000e-01
- 5.374000e-01 3.805000e-01 8.830000e-01 5.444000e-01 1.049100e+00 5.771000e-01 9.036000e-01 5.234000e-01 1.049500e+00 5.964000e-01 9.324000e-01 4.881000e-01 5.132000e-01 3.125000e-01
- 1.039100e+00 7.860000e-02 1.266200e+00 4.742000e-01 9.161000e-01 1.626000e-01 1.197900e+00 5.470000e-01 9.137000e-01 1.269000e-01 1.213700e+00 5.333000e-01 6.993000e-01 7.170000e-02
- 6.458000e-01 4.649000e-01 2.589000e-01 9.217000e-01 3.329000e-01 5.323000e-01 2.311000e-01 9.548000e-01 1.899000e-01 6.802000e-01 3.269000e-01 8.420000e-01 2.573000e-01 4.138000e-01
- 1.052100e+00 6.650000e-02 7.528000e-01 9.807000e-01 6.024000e-01 8.703000e-01 7.803000e-01 9.460000e-01 7.222000e-01 6.507000e-01 7.261000e-01 1.012000e+00 5.141000e-01 3.938000e-01
- 5.840000e-02 5.279000e-01 8.240000e-02 8.389000e-01 8.580000e-02 9.652000e-01 7.990000e-02 8.364000e-01 1.640000e-02 1.055800e+00 1.320000e-01 7.804000e-01 6.160000e-02 4.665000e-01
- 4.050000e-02 9.263000e-01 3.432000e-01 9.408000e-01 4.826000e-01 9.161000e-01 -1.620000e-02 1.747900e+00 -1.530000e-02 2.022200e+00 6.260000e-02 -7.430000e-02 1.872000e-01 5.699000e-01
- 5.268000e-01 3.336000e-01 6.997000e-01 4.976000e-01 9.724000e-01 3.158000e-01 1.717100e+00 1.850000e-02 1.060000e-02 1.983800e+00 -2.130000e-02 2.460000e-02 4.486000e-01 2.498000e-01
- 1.870000e-02 6.936000e-01 1.526000e-01 8.764000e-01 2.685000e-01 8.772000e-01 -2.400000e-02 1.761100e+00 5.660000e-02 1.933300e+00 3.520000e-02 -4.000000e-02 7.850000e-02 5.252000e-01
- 1.103300e+00 3.900000e-03 8.285000e-01 3.832000e-01 6.649000e-01 2.246000e-01 6.963000e-01 5.402000e-01 5.935000e-01 2.886000e-01 7.667000e-01 4.494000e-01 5.473000e-01 1.339000e-01
- 8.410000e-02 1.032800e+00 4.392000e-01 1.048400e+00 6.082000e-01 9.935000e-01 1.738900e+00 -3.800000e-03 -2.100000e-02 2.026900e+00 -1.067000e-01 1.858800e+00 2.398000e-01 6.295000e-01
- 4.689000e-01 4.092000e-01 6.791000e-01 7.029000e-01 8.472000e-01 7.169000e-01 6.373000e-01 7.540000e-01 7.336000e-01 8.768000e-01 7.611000e-01 6.114000e-01 3.997000e-01 3.986000e-01
- 5.368000e-01 2.121000e-01 7.638000e-01 3.146000e-01 8.883000e-01 3.072000e-01 1.674800e+00 6.920000e-02 9.300000e-03 1.989600e+00 6.700000e-03 -9.100000e-03 4.426000e-01 1.885000e-01
- 4.240000e-01 4.900000e-01 7.232000e-01 5.014000e-01 8.591000e-01 4.838000e-01 1.772600e+00 -4.870000e-02 4.240000e-02 1.954800e+00 -1.780000e-02 2.100000e-02 4.348000e-01 2.854000e-01
- 1.050000e-01 1.003300e+00 2.230000e-02 5.880000e-01 3.430000e-02 4.697000e-01 1.249000e-01 4.665000e-01 6.710000e-02 4.225000e-01 1.030000e-01 4.903000e-01 6.130000e-02 3.688000e-01
- 3.111000e-01 3.751000e-01 4.651000e-01 6.121000e-01 6.362000e-01 5.681000e-01 5.020000e-01 5.630000e-01 6.580000e-01 5.583000e-01 5.059000e-01 5.646000e-01 3.052000e-01 3.081000e-01
- 4.478000e-01 -1.400000e-03 6.501000e-01 6.110000e-02 7.771000e-01 2.590000e-02 6.717000e-01 3.060000e-02 7.627000e-01 5.250000e-02 6.493000e-01 5.720000e-02 3.869000e-01 2.020000e-02
- 7.303000e-01 3.720000e-01 3.490000e-01 6.100000e-01 2.788000e-01 4.756000e-01 2.771000e-01 6.963000e-01 3.090000e-01 4.241000e-01 2.837000e-01 6.863000e-01 2.655000e-01 3.350000e-01
- 5.140000e-02 1.062500e+00 3.940000e-02 4.118000e-01 -9.000000e-03 4.001000e-01 1.314000e-01 3.037000e-01 7.130000e-02 2.978000e-01 7.100000e-02 3.778000e-01 4.670000e-02 2.925000e-01
- 4.980000e-01 5.100000e-01 8.111000e-01 5.115000e-01 8.700000e-01 5.826000e-01 1.682700e+00 5.570000e-02 7.700000e-03 1.987000e+00 3.500000e-02 -4.180000e-02 4.798000e-01 2.986000e-01
- 2.034000e-01 6.543000e-01 2.535000e-01 1.109500e+00 3.152000e-01 1.231200e+00 2.384000e-01 1.129500e+00 3.808000e-01 1.179800e+00 2.254000e-01 1.140700e+00 1.744000e-01 6.073000e-01
- 3.153000e-01 4.310000e-01 6.277000e-01 5.140000e-01 6.222000e-01 6.974000e-01 6.016000e-01 5.469000e-01 7.290000e-01 5.904000e-01 5.691000e-01 5.835000e-01 3.592000e-01 3.007000e-01
- 8.961000e-01 2.310000e-02 1.048800e+00 2.182000e-01 1.305600e+00 6.030000e-02 1.701700e+00 3.300000e-02 2.162900e+00 -1.954000e-01 -5.500000e-03 6.700000e-03 6.851000e-01 5.080000e-02
- 1.099300e+00 6.800000e-03 4.745000e-01 1.250200e+00 3.631000e-01 8.284000e-01 4.291000e-01 1.304800e+00 3.799000e-01 7.691000e-01 5.049000e-01 1.217200e+00 3.288000e-01 4.910000e-01
- 1.124000e-01 4.549000e-01 1.585000e-01 7.363000e-01 7.680000e-02 9.628000e-01 1.012000e-01 8.069000e-01 9.650000e-02 9.527000e-01 1.245000e-01 7.763000e-01 5.500000e-02 4.688000e-01
- 2.914000e-01 8.203000e-01 1.384000e-01 9.877000e-01 1.531000e-01 6.968000e-01 2.093000e-01 9.102000e-01 2.100000e-01 6.084000e-01 1.684000e-01 9.538000e-01 1.537000e-01 5.024000e-01
- 2.503000e-01 5.377000e-01 4.508000e-01 7.689000e-01 6.041000e-01 7.665000e-01 4.468000e-01 7.721000e-01 6.211000e-01 7.645000e-01 4.442000e-01 7.789000e-01 2.925000e-01 4.055000e-01
- 5.522000e-01 9.600000e-02 8.623000e-01 9.830000e-02 9.783000e-01 1.028000e-01 1.732200e+00 1.400000e-03 6.040000e-02 1.928700e+00 -1.110000e-02 1.420000e-02 4.638000e-01 1.047000e-01
- 6.990000e-01 1.695000e-01 1.112800e+00 2.379000e-01 1.287200e+00 2.463000e-01 1.054400e+00 3.047000e-01 1.330800e+00 2.267000e-01 1.103400e+00 2.486000e-01 6.255000e-01 1.588000e-01
- 1.206000e-01 5.177000e-01 2.957000e-01 6.815000e-01 2.742000e-01 8.485000e-01 2.064000e-01 7.865000e-01 3.213000e-01 8.104000e-01 2.374000e-01 7.500000e-01 1.375000e-01 4.325000e-01
- 7.560000e-02 4.799000e-01 1.069000e-01 7.654000e-01 2.251000e-01 7.443000e-01 2.162000e-01 6.340000e-01 1.732000e-01 8.273000e-01 1.715000e-01 6.874000e-01 9.100000e-02 4.062000e-01
- 2.584000e-01 8.386000e-01 7.620000e-02 7.278000e-01 1.070000e-01 5.378000e-01 7.110000e-02 7.384000e-01 7.870000e-02 5.573000e-01 4.850000e-02 7.629000e-01 1.041000e-01 4.274000e-01
- 7.270000e-01 3.828000e-01 1.070200e+00 4.521000e-01 1.323100e+00 3.022000e-01 1.663400e+00 8.400000e-02 2.080600e+00 -9.090000e-02 7.430000e-02 1.642100e+00 6.176000e-01 2.725000e-01
- 2.311000e-01 8.728000e-01 1.756000e-01 5.309000e-01 1.360000e-01 4.464000e-01 1.481000e-01 5.650000e-01 6.090000e-02 5.215000e-01 1.231000e-01 5.944000e-01 1.064000e-01 3.859000e-01
- 6.257000e-01 4.252000e-01 8.745000e-01 5.017000e-01 8.145000e-01 7.101000e-01 1.767800e+00 -4.060000e-02 3.790000e-02 1.954800e+00 -3.610000e-02 1.777500e+00 4.962000e-01 3.155000e-01
- 3.711000e-01 3.448000e-01 6.690000e-01 3.564000e-01 7.493000e-01 4.080000e-01 1.665500e+00 8.190000e-02 4.510000e-02 1.949600e+00 1.120000e-02 -1.470000e-02 3.586000e-01 2.472000e-01
- 1.091400e+00 1.500000e-02 7.516000e-01 9.932000e-01 6.739000e-01 4.224000e-01 9.437000e-01 7.683000e-01 6.294000e-01 4.399000e-01 8.063000e-01 9.298000e-01 5.482000e-01 2.326000e-01
- 4.256000e-01 2.780000e-02 6.816000e-01 2.220000e-02 7.522000e-01 5.630000e-02 6.717000e-01 3.390000e-02 8.997000e-01 -1.075000e-01 6.933000e-01 9.500000e-03 3.776000e-01 3.240000e-02
- 1.028000e+00 9.510000e-02 5.619000e-01 4.529000e-01 5.648000e-01 2.058000e-01 6.508000e-01 3.510000e-01 4.077000e-01 3.744000e-01 5.686000e-01 4.476000e-01 4.042000e-01 2.186000e-01
--4.200000e-02 7.610000e-01 1.212000e-01 9.064000e-01 1.753000e-01 9.878000e-01 5.340000e-02 1.670300e+00 -1.660000e-02 2.013600e+00 6.680000e-02 -7.970000e-02 7.740000e-02 5.239000e-01
- 3.907000e-01 5.587000e-01 6.918000e-01 5.787000e-01 7.508000e-01 6.533000e-01 1.765900e+00 -3.900000e-02 -4.400000e-03 2.007300e+00 1.150000e-02 -1.440000e-02 3.759000e-01 3.750000e-01
- 5.883000e-01 4.444000e-01 9.442000e-01 6.742000e-01 1.223800e+00 5.907000e-01 1.045900e+00 5.541000e-01 1.129100e+00 7.246000e-01 1.068700e+00 5.271000e-01 5.945000e-01 3.288000e-01
- 1.261000e-01 4.338000e-01 2.383000e-01 6.331000e-01 1.393000e-01 8.796000e-01 7.800000e-02 8.233000e-01 1.462000e-01 8.875000e-01 1.771000e-01 7.083000e-01 8.940000e-02 4.235000e-01
- 2.951000e-01 7.971000e-01 2.091000e-01 7.775000e-01 8.550000e-02 6.993000e-01 1.987000e-01 7.923000e-01 5.940000e-02 7.144000e-01 1.031000e-01 9.043000e-01 1.108000e-01 5.057000e-01
- 1.100700e+00 5.800000e-03 5.735000e-01 5.508000e-01 4.843000e-01 3.643000e-01 5.151000e-01 6.179000e-01 4.244000e-01 4.098000e-01 6.194000e-01 4.928000e-01 4.094000e-01 2.485000e-01
- 8.864000e-01 1.600000e-03 1.375200e+00 2.020000e-02 1.571500e+00 1.050000e-02 1.415500e+00 -3.190000e-02 1.655200e+00 -6.190000e-02 1.409500e+00 -2.720000e-02 7.862000e-01 1.790000e-02
- 1.152100e+00 -5.580000e-02 7.192000e-01 1.030300e+00 7.694000e-01 4.801000e-01 8.318000e-01 8.979000e-01 6.653000e-01 5.582000e-01 9.178000e-01 7.947000e-01 5.415000e-01 3.093000e-01
- 5.044000e-01 1.540000e-02 8.126000e-01 -2.700000e-03 8.906000e-01 4.030000e-02 7.963000e-01 1.780000e-02 9.854000e-01 -5.490000e-02 7.248000e-01 1.000000e-01 4.532000e-01 1.820000e-02
--2.180000e-02 8.299000e-01 1.599000e-01 9.649000e-01 3.780000e-01 8.483000e-01 2.180000e-02 1.707200e+00 -4.570000e-02 2.054800e+00 -1.020000e-02 1.240000e-02 1.121000e-01 5.458000e-01
- 9.160000e-02 1.036900e+00 1.755000e-01 6.179000e-01 8.330000e-02 5.723000e-01 1.340000e-01 6.709000e-01 5.480000e-02 5.914000e-01 6.290000e-02 7.533000e-01 1.001000e-01 4.355000e-01
- 3.507000e-01 4.682000e-01 6.535000e-01 4.860000e-01 7.487000e-01 5.119000e-01 1.678900e+00 5.970000e-02 -5.820000e-02 2.068200e+00 -2.410000e-02 2.870000e-02 3.420000e-01 3.332000e-01
- 1.034700e+00 8.190000e-02 5.016000e-01 1.232800e+00 4.562000e-01 1.218400e+00 4.686000e-01 1.269500e+00 4.205000e-01 1.132200e+00 5.104000e-01 1.223000e+00 3.742000e-01 5.762000e-01
- 6.282000e-01 1.157000e-01 8.571000e-01 3.314000e-01 1.049100e+00 2.918000e-01 8.451000e-01 3.437000e-01 1.130400e+00 2.179000e-01 9.457000e-01 2.238000e-01 5.257000e-01 1.544000e-01
- 1.087900e+00 1.780000e-02 5.849000e-01 9.080000e-02 4.400000e-01 1.295000e-01 5.795000e-01 1.014000e-01 4.978000e-01 4.730000e-02 6.493000e-01 2.220000e-02 4.243000e-01 4.870000e-02
- 1.043200e+00 7.570000e-02 3.362000e-01 8.387000e-01 3.922000e-01 4.720000e-01 4.663000e-01 6.843000e-01 3.137000e-01 5.435000e-01 4.333000e-01 7.240000e-01 3.211000e-01 3.463000e-01
- 1.763000e-01 5.283000e-01 4.547000e-01 5.701000e-01 6.420000e-01 4.928000e-01 1.767600e+00 -4.320000e-02 3.570000e-02 1.956900e+00 -3.270000e-02 3.990000e-02 2.514000e-01 3.485000e-01
- 4.510000e-01 6.430000e-02 6.271000e-01 2.025000e-01 7.699000e-01 1.555000e-01 7.216000e-01 8.540000e-02 8.444000e-01 8.560000e-02 8.332000e-01 -4.750000e-02 4.062000e-01 6.300000e-02
- 7.900000e-02 5.267000e-01 8.690000e-02 8.697000e-01 1.671000e-01 9.115000e-01 5.880000e-02 9.035000e-01 6.870000e-02 1.042700e+00 8.080000e-02 8.789000e-01 6.730000e-02 4.822000e-01
- 2.188000e-01 3.369000e-01 3.669000e-01 5.010000e-01 3.112000e-01 6.960000e-01 2.375000e-01 6.537000e-01 3.345000e-01 6.777000e-01 2.797000e-01 6.031000e-01 1.660000e-01 3.429000e-01
--9.450000e-02 1.214000e+00 -7.660000e-02 1.790700e+00 1.769000e-01 1.628300e+00 -1.730000e-02 1.752100e+00 2.320000e-02 1.976100e+00 -8.350000e-02 1.829900e+00 2.030000e-02 9.413000e-01
- 1.486000e-01 6.692000e-01 1.849000e-01 1.112100e+00 2.417000e-01 1.229800e+00 3.131000e-01 9.606000e-01 3.608000e-01 1.105200e+00 1.707000e-01 1.123700e+00 1.341000e-01 6.086000e-01
- 1.151900e+00 -5.420000e-02 6.338000e-01 3.940000e-01 4.542000e-01 3.527000e-01 5.905000e-01 4.522000e-01 5.814000e-01 1.835000e-01 6.035000e-01 4.320000e-01 4.249000e-01 2.042000e-01
- 1.479000e-01 2.251000e-01 1.986000e-01 3.961000e-01 2.674000e-01 3.986000e-01 1.340000e-01 4.690000e-01 2.304000e-01 4.534000e-01 1.999000e-01 3.911000e-01 1.029000e-01 2.407000e-01
- 5.890000e-02 1.864000e-01 3.178000e-01 2.535000e-01 4.522000e-01 2.345000e-01 9.190000e-02 1.622500e+00 -7.700000e-03 9.000000e-03 -7.670000e-02 9.070000e-02 1.755000e-01 1.388000e-01
- 9.400000e-02 6.238000e-01 3.969000e-01 6.334000e-01 4.998000e-01 6.599000e-01 1.790100e+00 -6.620000e-02 -7.930000e-02 2.093800e+00 2.700000e-03 -4.400000e-03 2.079000e-01 3.997000e-01
- 2.319000e-01 5.927000e-01 3.022000e-01 1.001700e+00 3.991000e-01 1.072700e+00 4.055000e-01 8.795000e-01 4.504000e-01 1.036000e+00 3.112000e-01 9.839000e-01 1.925000e-01 5.553000e-01
- 3.815000e-01 3.332000e-01 6.462000e-01 3.913000e-01 7.058000e-01 4.557000e-01 1.709500e+00 2.520000e-02 -6.140000e-02 2.076500e+00 2.690000e-02 -3.110000e-02 3.664000e-01 2.403000e-01
- 1.078300e+00 3.410000e-02 8.201000e-01 9.103000e-01 6.938000e-01 1.278200e+00 7.104000e-01 1.039200e+00 5.932000e-01 1.278000e+00 7.361000e-01 1.003500e+00 5.368000e-01 4.586000e-01
- 9.140000e-02 5.724000e-01 3.504000e-01 6.380000e-01 4.148000e-01 7.028000e-01 1.752300e+00 -2.260000e-02 -2.290000e-02 2.024300e+00 -1.770000e-02 1.910000e-02 2.003000e-01 3.734000e-01
- 4.475000e-01 6.681000e-01 3.219000e-01 5.937000e-01 2.144000e-01 5.219000e-01 2.775000e-01 6.470000e-01 1.795000e-01 5.440000e-01 2.650000e-01 6.645000e-01 2.055000e-01 3.837000e-01
- 1.052400e+00 6.480000e-02 5.225000e-01 8.387000e-01 4.788000e-01 4.712000e-01 5.038000e-01 8.560000e-01 3.832000e-01 5.550000e-01 5.543000e-01 7.987000e-01 3.811000e-01 3.338000e-01
- 9.849000e-01 1.433000e-01 5.062000e-01 2.203000e-01 5.441000e-01 2.260000e-02 5.696000e-01 1.404000e-01 4.719000e-01 9.920000e-02 4.997000e-01 2.260000e-01 3.843000e-01 1.097000e-01
- 5.748000e-01 1.579000e-01 9.100000e-01 2.326000e-01 9.980000e-01 3.141000e-01 9.007000e-01 2.419000e-01 9.729000e-01 3.628000e-01 8.942000e-01 2.515000e-01 5.003000e-01 1.643000e-01
- 4.395000e-01 4.679000e-01 8.962000e-01 2.943000e-01 9.701000e-01 3.516000e-01 1.817900e+00 -9.650000e-02 2.730000e-02 1.960900e+00 2.100000e-03 -1.700000e-03 4.865000e-01 2.228000e-01
- 4.840000e-01 2.094000e-01 7.491000e-01 3.479000e-01 9.198000e-01 3.134000e-01 7.565000e-01 3.362000e-01 7.934000e-01 4.768000e-01 6.991000e-01 4.020000e-01 4.212000e-01 2.110000e-01
- 4.958000e-01 1.443000e-01 8.970000e-01 8.420000e-02 8.679000e-01 2.843000e-01 7.258000e-01 2.898000e-01 8.606000e-01 3.076000e-01 7.934000e-01 2.101000e-01 4.459000e-01 1.359000e-01
- 1.079100e+00 3.290000e-02 5.166000e-01 7.448000e-01 4.626000e-01 4.487000e-01 5.806000e-01 6.720000e-01 4.977000e-01 3.901000e-01 5.378000e-01 7.246000e-01 4.012000e-01 2.923000e-01
- 5.550000e-02 7.274000e-01 3.617000e-01 7.326000e-01 5.602000e-01 6.382000e-01 1.931200e+00 -2.333000e-01 7.000000e-03 1.992700e+00 -7.110000e-02 8.280000e-02 2.292000e-01 4.078000e-01
- 1.089100e+00 2.140000e-02 4.152000e-01 8.053000e-01 3.788000e-01 5.185000e-01 4.597000e-01 7.495000e-01 3.572000e-01 5.192000e-01 4.332000e-01 7.823000e-01 3.524000e-01 3.287000e-01
- 5.581000e-01 5.780000e-02 7.462000e-01 2.461000e-01 8.369000e-01 2.983000e-01 8.010000e-01 1.832000e-01 9.550000e-01 1.747000e-01 8.798000e-01 8.960000e-02 4.791000e-01 8.590000e-02
- 1.096500e+00 3.900000e-03 4.117000e-01 4.921000e-01 3.664000e-01 3.479000e-01 4.433000e-01 4.572000e-01 3.868000e-01 3.088000e-01 4.363000e-01 4.653000e-01 3.154000e-01 2.638000e-01
- 1.103600e+00 -9.000000e-04 5.596000e-01 1.163800e+00 4.281000e-01 9.927000e-01 5.554000e-01 1.170500e+00 4.449000e-01 9.107000e-01 5.766000e-01 1.139700e+00 3.750000e-01 5.223000e-01
- 4.741000e-01 2.965000e-01 7.502000e-01 4.499000e-01 7.687000e-01 6.150000e-01 6.862000e-01 5.282000e-01 8.357000e-01 5.573000e-01 6.292000e-01 5.912000e-01 4.165000e-01 2.794000e-01
- 3.807000e-01 4.936000e-01 5.540000e-01 8.272000e-01 8.500000e-01 6.754000e-01 6.042000e-01 7.640000e-01 7.195000e-01 8.542000e-01 6.354000e-01 7.275000e-01 3.726000e-01 4.133000e-01
- 8.364000e-01 3.270000e-02 1.186400e+00 1.968000e-01 1.436000e+00 1.226000e-01 1.236400e+00 1.442000e-01 1.383800e+00 2.110000e-01 1.171300e+00 2.177000e-01 7.280000e-01 6.490000e-02
--1.560000e-02 4.196000e-01 4.650000e-02 5.764000e-01 6.000000e-02 6.460000e-01 3.050000e-02 5.935000e-01 4.570000e-02 6.741000e-01 -3.280000e-02 6.699000e-01 1.860000e-02 3.420000e-01
- 5.736000e-01 5.383000e-01 2.750000e-01 1.314900e+00 2.674000e-01 7.521000e-01 3.316000e-01 1.253500e+00 2.474000e-01 7.465000e-01 2.832000e-01 1.306000e+00 2.464000e-01 4.982000e-01
- 7.007000e-01 3.733000e-01 9.031000e-01 7.899000e-01 1.038900e+00 7.671000e-01 1.784000e+00 -5.930000e-02 2.500000e-02 1.970800e+00 2.790000e-02 1.699700e+00 4.946000e-01 4.653000e-01
- 1.101300e+00 3.700000e-03 4.778000e-01 5.740000e-02 3.817000e-01 6.810000e-02 3.378000e-01 2.228000e-01 3.602000e-01 8.800000e-02 3.097000e-01 2.582000e-01 3.379000e-01 5.670000e-02
--5.860000e-02 7.000000e-02 2.469000e-01 5.640000e-02 2.655000e-01 1.748000e-01 -4.000000e-03 5.900000e-03 2.730000e-02 -3.150000e-02 5.900000e-03 -7.100000e-03 1.159000e-01 4.810000e-02
- 1.120600e+00 -1.640000e-02 5.178000e-01 1.212100e+00 3.926000e-01 1.017600e+00 5.052000e-01 1.224700e+00 3.007000e-01 1.063800e+00 4.734000e-01 1.256600e+00 3.547000e-01 5.385000e-01
- 2.983000e-01 8.036000e-01 2.176000e-01 9.156000e-01 1.722000e-01 6.839000e-01 1.845000e-01 9.522000e-01 1.204000e-01 7.224000e-01 2.503000e-01 8.755000e-01 1.339000e-01 5.293000e-01
- 1.063100e+00 5.430000e-02 8.058000e-01 9.270000e-01 5.826000e-01 9.213000e-01 7.334000e-01 1.003300e+00 6.819000e-01 7.321000e-01 7.287000e-01 1.006000e+00 5.168000e-01 4.008000e-01
- 4.254000e-01 3.643000e-01 7.034000e-01 5.253000e-01 6.943000e-01 7.253000e-01 8.134000e-01 4.001000e-01 7.932000e-01 6.344000e-01 7.578000e-01 4.625000e-01 4.057000e-01 3.053000e-01
- 4.290000e-02 7.170000e-01 2.490000e-01 8.308000e-01 4.208000e-01 7.661000e-01 -2.320000e-02 1.762900e+00 1.860000e-02 1.978800e+00 -6.870000e-02 8.130000e-02 1.143000e-01 5.234000e-01
--3.980000e-02 6.514000e-01 1.588000e-01 7.603000e-01 2.672000e-01 7.724000e-01 -1.780000e-02 1.750400e+00 1.890000e-02 1.978200e+00 -5.620000e-02 6.840000e-02 9.140000e-02 4.407000e-01
- 2.062000e-01 4.098000e-01 2.551000e-01 7.148000e-01 4.466000e-01 6.359000e-01 2.715000e-01 6.969000e-01 2.490000e-01 8.829000e-01 2.201000e-01 7.591000e-01 1.590000e-01 4.010000e-01
- 3.410000e-01 4.307000e-01 7.206000e-01 3.524000e-01 7.949000e-01 4.069000e-01 1.602900e+00 1.539000e-01 -1.459000e-01 2.171600e+00 1.000000e-02 -1.250000e-02 3.856000e-01 2.496000e-01
--2.410000e-02 6.119000e-01 2.913000e-01 5.930000e-01 2.959000e-01 7.341000e-01 6.990000e-02 1.644200e+00 -4.070000e-02 2.050400e+00 9.500000e-02 -1.145000e-01 1.324000e-01 3.856000e-01
- 8.864000e-01 1.457000e-01 1.449500e+00 1.612000e-01 1.558100e+00 2.872000e-01 1.467800e+00 1.383000e-01 1.645400e+00 2.126000e-01 1.511700e+00 8.060000e-02 8.334000e-01 9.520000e-02
- 4.516000e-01 3.031000e-01 6.539000e-01 4.383000e-01 8.696000e-01 3.244000e-01 1.766400e+00 -3.990000e-02 -4.020000e-02 2.044000e+00 5.800000e-02 -6.990000e-02 3.998000e-01 2.355000e-01
- 1.500000e-03 1.039600e+00 -6.270000e-02 1.707800e+00 -1.400000e-02 1.880800e+00 6.470000e-02 1.564000e+00 1.572000e-01 1.698000e+00 1.540000e-02 1.620800e+00 1.990000e-02 9.212000e-01
- 4.896000e-01 2.424000e-01 8.585000e-01 1.687000e-01 1.021900e+00 1.227000e-01 1.728400e+00 -1.600000e-03 3.230000e-02 1.961700e+00 -3.790000e-02 4.570000e-02 4.665000e-01 1.439000e-01
- 1.028500e+00 2.200000e-03 1.519100e+00 1.153000e-01 1.891400e+00 -6.680000e-02 1.574600e+00 4.710000e-02 1.882900e+00 -2.460000e-02 1.660200e+00 -5.800000e-02 9.215000e-01 1.180000e-02
- 5.700000e-01 1.949000e-01 6.662000e-01 5.775000e-01 7.901000e-01 6.218000e-01 7.056000e-01 5.306000e-01 7.961000e-01 6.351000e-01 7.592000e-01 4.700000e-01 4.177000e-01 2.949000e-01
- 2.964000e-01 2.839000e-01 3.532000e-01 5.773000e-01 4.329000e-01 6.187000e-01 3.322000e-01 6.025000e-01 4.204000e-01 6.566000e-01 3.175000e-01 6.181000e-01 2.053000e-01 3.326000e-01
- 1.110100e+00 -6.900000e-03 5.430000e-01 7.135000e-01 3.813000e-01 5.501000e-01 4.775000e-01 7.901000e-01 4.455000e-01 4.477000e-01 5.519000e-01 7.022000e-01 3.929000e-01 3.006000e-01
- 4.494000e-01 3.016000e-01 6.661000e-01 5.118000e-01 8.272000e-01 5.039000e-01 7.380000e-01 4.324000e-01 8.066000e-01 5.531000e-01 7.674000e-01 3.959000e-01 4.210000e-01 2.538000e-01
- 1.201700e+00 -1.156000e-01 3.379000e-01 6.891000e-01 3.519000e-01 4.317000e-01 4.171000e-01 5.947000e-01 2.714000e-01 5.115000e-01 3.865000e-01 6.303000e-01 3.125000e-01 3.083000e-01
- 4.175000e-01 6.920000e-01 7.238000e-01 8.324000e-01 8.213000e-01 8.528000e-01 1.684100e+00 5.680000e-02 9.100000e-03 1.987300e+00 -1.150000e-02 1.749900e+00 4.226000e-01 4.766000e-01
- 4.360000e-01 3.713000e-01 6.214000e-01 6.574000e-01 7.203000e-01 7.235000e-01 5.825000e-01 6.956000e-01 7.206000e-01 7.458000e-01 6.731000e-01 5.917000e-01 3.731000e-01 3.595000e-01
- 3.848000e-01 2.801000e-01 5.886000e-01 4.593000e-01 7.417000e-01 4.387000e-01 5.876000e-01 4.592000e-01 7.156000e-01 4.903000e-01 6.483000e-01 3.882000e-01 3.588000e-01 2.423000e-01
- 1.096400e+00 1.260000e-02 8.966000e-01 3.421000e-01 6.822000e-01 2.301000e-01 8.664000e-01 3.788000e-01 6.956000e-01 1.860000e-01 8.982000e-01 3.447000e-01 5.707000e-01 1.193000e-01
- 4.805000e-01 5.688000e-01 5.959000e-01 1.079200e+00 6.938000e-01 1.213100e+00 6.770000e-01 9.835000e-01 7.859000e-01 1.129700e+00 7.537000e-01 8.900000e-01 3.702000e-01 5.925000e-01
- 1.090700e+00 1.510000e-02 4.532000e-01 8.947000e-01 3.829000e-01 5.780000e-01 4.569000e-01 8.886000e-01 3.970000e-01 5.348000e-01 5.703000e-01 7.581000e-01 3.893000e-01 3.213000e-01
- 4.580000e-02 5.139000e-01 -1.840000e-02 3.196000e-01 -3.710000e-02 3.004000e-01 9.080000e-02 1.905000e-01 -1.390000e-02 2.675000e-01 1.530000e-02 2.785000e-01 9.600000e-03 2.236000e-01
- 1.131200e+00 -3.020000e-02 8.929000e-01 7.040000e-02 7.703000e-01 -2.560000e-02 8.951000e-01 6.580000e-02 6.570000e-01 8.810000e-02 8.834000e-01 8.170000e-02 5.877000e-01 1.170000e-02
--5.820000e-02 8.150000e-01 3.495000e-01 7.002000e-01 4.372000e-01 7.411000e-01 -8.800000e-02 1.829700e+00 6.840000e-02 1.920900e+00 -3.980000e-02 4.890000e-02 1.860000e-01 4.308000e-01
- 3.479000e-01 6.417000e-01 6.093000e-01 7.009000e-01 7.565000e-01 6.621000e-01 1.628200e+00 1.224000e-01 1.492000e-01 1.828500e+00 -1.960000e-02 2.300000e-02 3.743000e-01 3.924000e-01
- 4.160000e-01 1.654000e-01 6.349000e-01 2.783000e-01 6.370000e-01 4.172000e-01 6.487000e-01 2.577000e-01 6.379000e-01 4.257000e-01 6.367000e-01 2.739000e-01 3.315000e-01 2.005000e-01
- 7.600000e-02 1.032000e+00 3.440000e-02 1.042800e+00 -1.570000e-02 8.486000e-01 4.830000e-02 1.026200e+00 9.170000e-02 7.007000e-01 -1.420000e-02 1.099300e+00 4.420000e-02 5.973000e-01
- 6.870000e-02 6.446000e-01 4.410000e-01 5.699000e-01 4.881000e-01 6.571000e-01 1.674200e+00 6.730000e-02 1.860000e-02 1.976100e+00 2.750000e-02 -3.180000e-02 2.199000e-01 3.772000e-01
- 1.838000e-01 9.222000e-01 1.668000e-01 8.231000e-01 1.093000e-01 6.645000e-01 1.597000e-01 8.303000e-01 1.604000e-01 5.899000e-01 1.905000e-01 7.935000e-01 9.970000e-02 5.155000e-01
- 5.985000e-01 2.114000e-01 8.599000e-01 2.747000e-01 8.155000e-01 4.715000e-01 1.754300e+00 -2.590000e-02 -1.890000e-02 2.017000e+00 -6.550000e-02 7.960000e-02 4.398000e-01 2.384000e-01
- 9.812000e-01 1.464000e-01 9.873000e-01 7.388000e-01 7.230000e-01 1.253800e+00 9.414000e-01 7.927000e-01 7.645000e-01 1.026800e+00 9.855000e-01 7.375000e-01 6.030000e-01 3.864000e-01
- 2.771000e-01 4.934000e-01 4.557000e-01 7.448000e-01 4.533000e-01 9.261000e-01 3.633000e-01 8.519000e-01 3.589000e-01 1.055700e+00 4.432000e-01 7.585000e-01 2.485000e-01 4.471000e-01
- 2.765000e-01 5.446000e-01 4.058000e-01 8.792000e-01 5.765000e-01 8.749000e-01 4.498000e-01 8.381000e-01 6.530000e-01 8.068000e-01 4.016000e-01 8.954000e-01 2.742000e-01 4.652000e-01
- 8.580000e-01 2.206000e-01 3.943000e-01 1.329800e+00 3.000000e-01 7.321000e-01 4.228000e-01 1.296500e+00 3.049000e-01 6.911000e-01 3.720000e-01 1.352200e+00 2.668000e-01 4.835000e-01
- 4.178000e-01 5.168000e-01 5.407000e-01 9.438000e-01 6.523000e-01 1.029500e+00 6.214000e-01 8.466000e-01 7.659000e-01 9.212000e-01 5.444000e-01 9.391000e-01 3.318000e-01 5.214000e-01
- 5.398000e-01 3.048000e-01 8.779000e-01 4.404000e-01 1.011700e+00 4.854000e-01 8.146000e-01 5.131000e-01 9.718000e-01 5.539000e-01 8.771000e-01 4.340000e-01 4.961000e-01 2.664000e-01
- 1.737000e-01 1.020000e-01 2.218000e-01 2.243000e-01 3.025000e-01 1.940000e-01 2.421000e-01 1.973000e-01 2.738000e-01 2.345000e-01 1.940000e-01 2.585000e-01 1.483000e-01 1.043000e-01
- 2.552000e-01 6.242000e-01 5.095000e-01 6.932000e-01 7.394000e-01 5.597000e-01 1.650500e+00 1.011000e-01 -2.090000e-02 2.025200e+00 4.510000e-02 -5.310000e-02 3.175000e-01 3.858000e-01
- 6.043000e-01 4.847000e-01 2.698000e-01 7.133000e-01 1.207000e-01 6.650000e-01 1.966000e-01 7.995000e-01 3.183000e-01 4.146000e-01 3.367000e-01 6.292000e-01 2.181000e-01 3.906000e-01
- 7.783000e-01 4.700000e-03 1.048700e+00 2.047000e-01 1.169700e+00 2.627000e-01 1.024000e+00 2.338000e-01 1.229200e+00 2.135000e-01 1.067300e+00 1.827000e-01 5.997000e-01 1.258000e-01
- 1.056900e+00 5.520000e-02 7.505000e-01 1.643000e-01 5.627000e-01 1.735000e-01 7.464000e-01 1.701000e-01 5.599000e-01 1.603000e-01 7.443000e-01 1.746000e-01 4.886000e-01 9.790000e-02
- 1.082000e+00 2.940000e-02 6.796000e-01 1.778000e-01 5.755000e-01 1.053000e-01 7.075000e-01 1.409000e-01 5.595000e-01 1.105000e-01 8.247000e-01 -2.300000e-03 5.124000e-01 3.890000e-02
- 5.710000e-02 1.050300e+00 -1.100000e-03 4.328000e-01 1.623000e-01 1.709000e-01 -3.400000e-02 4.719000e-01 -1.950000e-02 3.805000e-01 -9.330000e-02 5.434000e-01 3.350000e-02 2.892000e-01
- 1.309000e-01 3.577000e-01 1.534000e-01 6.240000e-01 1.369000e-01 7.509000e-01 2.430000e-01 5.122000e-01 2.289000e-01 6.538000e-01 2.045000e-01 5.573000e-01 1.022000e-01 3.412000e-01
- 3.363000e-01 4.877000e-01 6.284000e-01 5.175000e-01 6.639000e-01 6.105000e-01 1.634700e+00 1.160000e-01 -7.740000e-02 2.089800e+00 1.650000e-02 -2.060000e-02 3.415000e-01 3.319000e-01
- 8.430000e-02 3.520000e-01 5.280000e-02 6.516000e-01 6.420000e-02 7.334000e-01 5.900000e-02 6.430000e-01 6.910000e-02 7.387000e-01 1.051000e-01 5.891000e-01 3.390000e-02 3.710000e-01
- 2.419000e-01 2.554000e-01 3.898000e-01 3.872000e-01 4.288000e-01 4.575000e-01 3.504000e-01 4.362000e-01 4.903000e-01 3.988000e-01 3.969000e-01 3.784000e-01 2.171000e-01 2.331000e-01
- 6.307000e-01 4.740000e-01 9.798000e-01 5.770000e-01 9.152000e-01 7.924000e-01 1.912900e+00 -2.140000e-01 2.007500e+00 -1.050000e-02 -5.000000e-04 1.730100e+00 5.307000e-01 3.768000e-01
- 4.460000e-01 -1.960000e-02 7.009000e-01 -2.960000e-02 7.206000e-01 5.770000e-02 6.415000e-01 4.150000e-02 7.693000e-01 1.520000e-02 7.258000e-01 -5.950000e-02 3.754000e-01 1.790000e-02
- 1.226000e-01 8.072000e-01 5.387000e-01 6.823000e-01 6.626000e-01 6.829000e-01 1.689300e+00 4.540000e-02 -1.990000e-02 2.019300e+00 -3.810000e-02 4.740000e-02 2.932000e-01 4.304000e-01
- 7.825000e-01 9.250000e-02 1.127900e+00 2.562000e-01 1.325700e+00 2.437000e-01 1.183100e+00 1.954000e-01 1.290500e+00 3.130000e-01 1.240500e+00 1.253000e-01 6.916000e-01 1.009000e-01
- 4.689000e-01 1.481000e-01 7.357000e-01 2.329000e-01 7.442000e-01 3.792000e-01 6.927000e-01 2.833000e-01 8.208000e-01 3.054000e-01 7.793000e-01 1.818000e-01 4.031000e-01 1.613000e-01
- 6.073000e-01 1.505000e-01 8.918000e-01 3.078000e-01 1.123600e+00 2.238000e-01 8.878000e-01 3.141000e-01 1.023600e+00 3.635000e-01 8.919000e-01 3.122000e-01 4.959000e-01 2.008000e-01
- 1.084500e+00 2.560000e-02 1.255700e+00 4.653000e-01 9.001000e-01 1.065200e+00 1.240200e+00 4.783000e-01 9.773000e-01 7.541000e-01 1.280700e+00 4.358000e-01 6.714000e-01 3.143000e-01
- 1.122400e+00 -2.090000e-02 6.288000e-01 1.111500e+00 5.239000e-01 8.923000e-01 7.640000e-01 9.513000e-01 6.113000e-01 7.272000e-01 6.948000e-01 1.037500e+00 4.859000e-01 4.066000e-01
- 8.826000e-01 2.210000e-01 3.047000e-01 6.431000e-01 3.247000e-01 4.102000e-01 4.222000e-01 5.054000e-01 3.085000e-01 4.134000e-01 3.644000e-01 5.701000e-01 2.931000e-01 2.968000e-01
--7.180000e-02 6.558000e-01 2.116000e-01 6.708000e-01 3.328000e-01 6.744000e-01 3.570000e-02 1.688300e+00 5.100000e-02 1.946700e+00 -7.030000e-02 8.540000e-02 1.075000e-01 4.049000e-01
- 3.613000e-01 7.365000e-01 2.189000e-01 5.576000e-01 1.782000e-01 4.514000e-01 2.020000e-01 5.775000e-01 1.855000e-01 4.275000e-01 2.536000e-01 5.144000e-01 1.511000e-01 3.725000e-01
- 1.074900e+00 4.140000e-02 9.121000e-01 1.876000e-01 7.667000e-01 5.760000e-02 9.258000e-01 1.722000e-01 7.291000e-01 8.450000e-02 8.942000e-01 2.083000e-01 5.681000e-01 8.440000e-02
- 2.760000e-02 1.086800e+00 -4.250000e-02 5.219000e-01 3.250000e-02 3.607000e-01 2.460000e-02 4.429000e-01 8.690000e-02 2.859000e-01 -1.100000e-03 4.726000e-01 3.560000e-02 3.120000e-01
--4.950000e-02 5.970000e-02 5.990000e-02 1.809000e-01 1.120000e-02 3.660000e-01 1.340000e-02 -1.290000e-02 7.630000e-02 -9.200000e-02 5.320000e-02 -6.370000e-02 6.000000e-03 1.293000e-01
--7.640000e-02 1.198800e+00 3.247000e-01 1.192000e+00 3.850000e-01 1.257300e+00 -8.280000e-02 1.832100e+00 4.500000e-03 1.991200e+00 -1.990000e-02 1.757700e+00 1.692000e-01 7.139000e-01
- 3.735000e-01 7.355000e-01 1.927000e-01 5.480000e-01 2.143000e-01 3.824000e-01 2.458000e-01 4.837000e-01 1.067000e-01 4.974000e-01 1.687000e-01 5.756000e-01 1.769000e-01 3.251000e-01
- 2.741000e-01 5.164000e-01 3.749000e-01 8.773000e-01 4.355000e-01 9.832000e-01 4.299000e-01 8.103000e-01 5.146000e-01 9.149000e-01 3.877000e-01 8.587000e-01 2.248000e-01 4.949000e-01
--7.800000e-03 7.603000e-01 -4.110000e-02 1.110900e+00 -3.300000e-03 1.193900e+00 -7.110000e-02 1.819100e+00 6.250000e-02 1.926700e+00 4.510000e-02 -5.140000e-02 1.150000e-02 6.132000e-01
- 1.184000e+00 -9.540000e-02 4.044000e-01 6.970000e-01 2.919000e-01 5.550000e-01 5.266000e-01 5.560000e-01 3.209000e-01 5.018000e-01 3.657000e-01 7.450000e-01 3.112000e-01 3.396000e-01
- 4.732000e-01 3.046000e-01 6.683000e-01 4.455000e-01 8.095000e-01 4.224000e-01 1.736500e+00 1.300000e-03 3.190000e-02 1.964000e+00 -2.400000e-03 3.500000e-03 4.121000e-01 2.376000e-01
- 1.384000e-01 6.302000e-01 1.225000e-01 1.096600e+00 2.138000e-01 1.162500e+00 1.260000e-01 1.090700e+00 2.173000e-01 1.177400e+00 2.158000e-01 9.860000e-01 1.137000e-01 5.832000e-01
- 5.437000e-01 1.828000e-01 8.222000e-01 3.264000e-01 1.067400e+00 2.131000e-01 8.137000e-01 3.349000e-01 1.033500e+00 2.770000e-01 8.017000e-01 3.519000e-01 5.158000e-01 1.387000e-01
- 8.353000e-01 1.856000e-01 1.130800e+00 2.115000e-01 1.142400e+00 3.409000e-01 1.648800e+00 9.690000e-02 1.939400e+00 7.250000e-02 -3.960000e-02 4.650000e-02 6.589000e-01 1.338000e-01
- 5.665000e-01 4.000000e-01 8.040000e-01 4.914000e-01 9.725000e-01 4.351000e-01 1.770100e+00 -5.090000e-02 -6.530000e-02 2.077400e+00 8.140000e-02 -9.730000e-02 4.666000e-01 2.948000e-01
- 1.780000e-02 6.441000e-01 1.934000e-01 8.153000e-01 2.080000e-01 9.453000e-01 2.370000e-01 7.618000e-01 2.103000e-01 9.556000e-01 8.110000e-02 9.460000e-01 8.990000e-02 4.970000e-01
- 3.716000e-01 5.727000e-01 5.762000e-01 9.028000e-01 7.666000e-01 8.992000e-01 6.574000e-01 8.045000e-01 8.085000e-01 8.724000e-01 6.284000e-01 8.446000e-01 3.867000e-01 4.575000e-01
- 9.650000e-02 8.800000e-02 5.990000e-02 2.461000e-01 1.445000e-01 1.877000e-01 1.420000e-01 1.516000e-01 1.662000e-01 1.680000e-01 1.162000e-01 1.799000e-01 6.860000e-02 1.019000e-01
- 5.024000e-01 5.639000e-01 7.328000e-01 9.492000e-01 8.707000e-01 1.036400e+00 6.174000e-01 1.084500e+00 8.037000e-01 1.142800e+00 7.794000e-01 8.958000e-01 4.507000e-01 5.156000e-01
- 5.465000e-01 4.334000e-01 9.130000e-01 6.068000e-01 8.931000e-01 8.647000e-01 8.490000e-01 6.866000e-01 9.978000e-01 7.642000e-01 8.058000e-01 7.353000e-01 4.696000e-01 4.187000e-01
- 1.090000e-01 7.328000e-01 2.592000e-01 1.042400e+00 3.453000e-01 1.126100e+00 2.120000e-01 1.099000e+00 3.552000e-01 1.139400e+00 2.400000e-01 1.065500e+00 1.622000e-01 5.869000e-01
- 3.045000e-01 4.043000e-01 4.679000e-01 6.469000e-01 5.784000e-01 6.798000e-01 4.442000e-01 6.740000e-01 5.287000e-01 7.581000e-01 4.444000e-01 6.719000e-01 2.540000e-01 3.910000e-01
- 5.597000e-01 2.298000e-01 8.849000e-01 3.551000e-01 1.034300e+00 3.724000e-01 1.094000e+00 1.069000e-01 1.116900e+00 3.034000e-01 8.565000e-01 3.830000e-01 5.458000e-01 1.637000e-01
- 1.135400e+00 -3.660000e-02 9.930000e-01 7.328000e-01 7.396000e-01 4.829000e-01 1.096200e+00 6.153000e-01 7.750000e-01 4.016000e-01 1.057200e+00 6.568000e-01 6.032000e-01 2.289000e-01
- 2.453000e-01 4.808000e-01 4.855000e-01 6.343000e-01 6.267000e-01 6.316000e-01 5.035000e-01 6.100000e-01 6.372000e-01 6.430000e-01 4.382000e-01 6.838000e-01 2.897000e-01 3.544000e-01
- 1.590000e-01 9.624000e-01 5.616000e-01 1.167600e+00 7.067000e-01 1.198000e+00 1.750800e+00 -2.140000e-02 1.230000e-02 1.983100e+00 1.710000e-02 1.712500e+00 3.037000e-01 6.852000e-01
- 1.016200e+00 1.034000e-01 4.259000e-01 4.574000e-01 3.615000e-01 3.437000e-01 3.998000e-01 4.866000e-01 3.650000e-01 3.214000e-01 4.585000e-01 4.220000e-01 3.193000e-01 2.518000e-01
--6.100000e-02 1.181100e+00 1.040000e-02 1.661100e+00 9.170000e-02 1.701800e+00 1.160000e-02 1.715900e+00 -5.730000e-02 2.068800e+00 -1.860000e-02 1.750300e+00 4.010000e-02 9.064000e-01
- 1.116900e+00 -1.100000e-02 1.668300e+00 7.910000e-02 1.079600e+00 2.620000e-02 1.753600e+00 -3.070000e-02 9.317000e-01 1.614000e-01 1.719400e+00 1.680000e-02 7.741000e-01 1.160000e-02
- 5.425000e-01 5.662000e-01 4.065000e-01 7.119000e-01 1.688000e-01 7.062000e-01 3.222000e-01 8.160000e-01 7.430000e-02 7.979000e-01 1.885000e-01 9.741000e-01 2.290000e-01 4.339000e-01
- 1.092100e+00 1.910000e-02 6.402000e-01 6.883000e-01 4.099000e-01 5.550000e-01 5.433000e-01 8.057000e-01 4.109000e-01 5.229000e-01 5.550000e-01 7.881000e-01 4.032000e-01 3.093000e-01
- 4.276000e-01 5.982000e-01 8.580000e-01 4.580000e-01 9.666000e-01 4.712000e-01 1.702400e+00 3.460000e-02 9.500000e-03 1.983900e+00 3.450000e-02 -4.050000e-02 4.654000e-01 3.163000e-01
- 1.115200e+00 -1.240000e-02 8.336000e-01 9.390000e-02 7.419000e-01 -2.350000e-02 7.926000e-01 1.436000e-01 6.870000e-01 2.140000e-02 8.857000e-01 3.260000e-02 5.579000e-01 2.920000e-02
- 6.695000e-01 2.592000e-01 1.030400e+00 1.922000e-01 1.123800e+00 2.317000e-01 1.701900e+00 3.900000e-02 1.941600e+00 6.780000e-02 -6.900000e-03 9.600000e-03 5.872000e-01 1.409000e-01
- 1.106000e+00 1.000000e-04 5.493000e-01 1.184000e+00 5.373000e-01 6.650000e-01 4.143000e-01 1.344100e+00 4.731000e-01 6.990000e-01 5.029000e-01 1.236600e+00 4.045000e-01 4.258000e-01
- 2.478000e-01 6.458000e-01 4.043000e-01 8.337000e-01 7.193000e-01 6.084000e-01 1.761800e+00 -2.940000e-02 3.350000e-02 1.959700e+00 -3.270000e-02 4.190000e-02 2.817000e-01 4.376000e-01
- 7.105000e-01 3.832000e-01 9.548000e-01 4.648000e-01 1.065400e+00 4.734000e-01 1.780600e+00 -5.460000e-02 1.931100e+00 7.980000e-02 -8.090000e-02 1.827600e+00 5.788000e-01 2.513000e-01
- 9.968000e-01 1.254000e-01 3.771000e-01 8.535000e-01 3.739000e-01 5.202000e-01 4.012000e-01 8.273000e-01 3.794000e-01 4.933000e-01 3.189000e-01 9.200000e-01 3.228000e-01 3.621000e-01
- 8.350000e-02 5.562000e-01 -2.360000e-02 9.990000e-01 1.625000e-01 8.986000e-01 -2.440000e-02 1.758700e+00 9.700000e-02 1.884700e+00 -6.000000e-03 8.400000e-03 4.000000e-03 5.609000e-01
- 7.489000e-01 2.026000e-01 1.055900e+00 4.588000e-01 1.076900e+00 6.637000e-01 9.010000e-01 6.377000e-01 1.106200e+00 6.628000e-01 9.712000e-01 5.537000e-01 5.625000e-01 3.189000e-01
- 6.852000e-01 4.216000e-01 2.922000e-01 1.446000e+00 2.703000e-01 1.491500e+00 3.944000e-01 1.328700e+00 2.530000e-01 1.362000e+00 3.464000e-01 1.382300e+00 2.611000e-01 7.005000e-01
- 1.096600e+00 1.160000e-02 5.389000e-01 6.236000e-01 4.291000e-01 4.441000e-01 4.939000e-01 6.776000e-01 5.015000e-01 3.356000e-01 5.481000e-01 6.099000e-01 3.832000e-01 2.869000e-01
- 4.674000e-01 3.366000e-01 6.300000e-01 6.509000e-01 8.707000e-01 5.648000e-01 8.028000e-01 4.547000e-01 7.896000e-01 6.800000e-01 6.882000e-01 5.842000e-01 3.931000e-01 3.419000e-01
- 3.740000e-02 3.977000e-01 1.968000e-01 5.588000e-01 3.630000e-01 5.027000e-01 5.700000e-03 1.723800e+00 5.880000e-02 -6.790000e-02 4.370000e-02 -5.240000e-02 9.980000e-02 3.309000e-01
--8.640000e-02 7.606000e-01 1.386000e-01 8.285000e-01 1.761000e-01 9.310000e-01 1.890000e-02 1.707500e+00 8.900000e-02 1.899300e+00 -2.260000e-02 2.660000e-02 7.470000e-02 4.927000e-01
- 9.280000e-02 4.511000e-01 2.259000e-01 6.111000e-01 2.024000e-01 7.561000e-01 2.166000e-01 6.206000e-01 2.474000e-01 7.191000e-01 3.004000e-01 5.213000e-01 1.155000e-01 3.700000e-01
- 1.129200e+00 -2.850000e-02 1.839300e+00 -1.256000e-01 1.044800e+00 3.002000e-01 1.690200e+00 4.770000e-02 1.060200e+00 2.250000e-01 1.756400e+00 -2.550000e-02 7.967000e-01 7.160000e-02
- 4.576000e-01 6.481000e-01 8.842000e-01 6.654000e-01 8.400000e-01 8.585000e-01 1.776800e+00 -5.000000e-02 -2.600000e-02 2.027400e+00 -3.770000e-02 1.776600e+00 4.504000e-01 4.539000e-01
- 9.950000e-01 1.179000e-01 4.039000e-01 5.380000e-02 3.093000e-01 8.520000e-02 3.899000e-01 6.880000e-02 3.294000e-01 5.420000e-02 3.797000e-01 8.240000e-02 3.046000e-01 4.090000e-02
- 3.339000e-01 6.875000e-01 4.558000e-01 1.153400e+00 6.172000e-01 1.192000e+00 5.502000e-01 1.038800e+00 6.202000e-01 1.225200e+00 5.811000e-01 1.007600e+00 3.185000e-01 6.004000e-01
--4.820000e-02 6.359000e-01 1.800000e-02 8.810000e-01 2.713000e-01 7.287000e-01 -7.900000e-03 1.742900e+00 -7.300000e-02 2.082400e+00 1.420000e-02 -1.830000e-02 5.610000e-02 4.595000e-01
- 2.457000e-01 8.729000e-01 5.142000e-01 1.241100e+00 6.712000e-01 1.218500e+00 1.593200e+00 1.650000e-01 -7.070000e-02 2.076500e+00 -4.660000e-02 1.782600e+00 3.449000e-01 6.335000e-01
- 1.229000e-01 4.821000e-01 1.893000e-01 7.599000e-01 1.586000e-01 9.281000e-01 1.126000e-01 8.487000e-01 1.617000e-01 9.455000e-01 1.438000e-01 8.120000e-01 8.710000e-02 4.641000e-01
- 1.070200e+00 4.060000e-02 9.576000e-01 7.759000e-01 7.389000e-01 6.740000e-01 9.694000e-01 7.624000e-01 6.454000e-01 7.210000e-01 8.924000e-01 8.504000e-01 5.947000e-01 3.001000e-01
- 1.169300e+00 -7.410000e-02 4.090000e-01 1.405000e-01 3.912000e-01 5.770000e-02 3.398000e-01 2.218000e-01 3.632000e-01 8.360000e-02 3.703000e-01 1.829000e-01 3.115000e-01 8.760000e-02
- 1.105400e+00 -1.500000e-03 8.807000e-01 8.586000e-01 7.397000e-01 7.915000e-01 8.299000e-01 9.165000e-01 6.437000e-01 8.200000e-01 8.560000e-01 8.872000e-01 5.826000e-01 3.420000e-01
- 7.364000e-01 3.606000e-01 3.379000e-01 1.395600e+00 3.809000e-01 6.602000e-01 3.742000e-01 1.349900e+00 2.766000e-01 7.495000e-01 3.453000e-01 1.385800e+00 2.625000e-01 5.014000e-01
- 2.111000e-01 4.445000e-01 3.171000e-01 7.100000e-01 2.735000e-01 9.087000e-01 2.507000e-01 7.881000e-01 3.714000e-01 8.123000e-01 3.026000e-01 7.286000e-01 1.915000e-01 3.995000e-01
- 1.103900e+00 1.500000e-03 1.563900e+00 1.408000e-01 1.042800e+00 2.625000e-01 1.342200e+00 4.042000e-01 9.119000e-01 3.649000e-01 1.385600e+00 3.508000e-01 7.253000e-01 1.404000e-01
- 4.195000e-01 8.830000e-02 7.209000e-01 9.850000e-02 9.006000e-01 3.060000e-02 1.774500e+00 -4.860000e-02 4.910000e-02 -5.700000e-02 -4.180000e-02 4.740000e-02 4.286000e-01 3.880000e-02
- 5.653000e-01 2.091000e-01 8.336000e-01 2.673000e-01 9.022000e-01 3.250000e-01 1.754900e+00 -2.750000e-02 -4.610000e-02 2.045700e+00 9.900000e-03 -1.070000e-02 4.766000e-01 1.708000e-01
- 1.073400e+00 3.650000e-02 1.302600e+00 4.334000e-01 9.583000e-01 1.296000e-01 1.387600e+00 3.254000e-01 9.933000e-01 4.790000e-02 1.318700e+00 4.104000e-01 7.018000e-01 7.740000e-02
- 1.012300e+00 9.170000e-02 1.274500e+00 4.656000e-01 1.394300e+00 5.197000e-01 1.596500e+00 1.580000e-01 1.963400e+00 4.470000e-02 -3.710000e-02 1.775800e+00 7.757000e-01 2.109000e-01
- 3.312000e-01 4.549000e-01 4.088000e-01 8.564000e-01 4.991000e-01 9.237000e-01 3.774000e-01 8.868000e-01 4.258000e-01 1.034300e+00 4.400000e-01 8.127000e-01 2.453000e-01 4.791000e-01
- 2.755000e-01 5.100000e-02 5.709000e-01 7.640000e-02 6.809000e-01 8.630000e-02 1.552000e+00 2.105000e-01 1.029000e-01 -1.244000e-01 4.730000e-02 -5.740000e-02 3.188000e-01 4.080000e-02
- 1.982000e-01 4.741000e-01 5.539000e-01 4.219000e-01 5.941000e-01 5.179000e-01 1.645400e+00 9.840000e-02 -2.010000e-02 2.023500e+00 2.800000e-03 -4.000000e-03 2.789000e-01 2.966000e-01
- 5.457000e-01 5.523000e-01 2.855000e-01 1.444900e+00 2.507000e-01 9.536000e-01 2.293000e-01 1.511200e+00 1.937000e-01 9.833000e-01 2.684000e-01 1.465500e+00 2.168000e-01 6.102000e-01
--1.760000e-02 7.540000e-01 2.606000e-01 7.783000e-01 3.203000e-01 8.502000e-01 3.800000e-02 1.688500e+00 -8.700000e-03 2.010800e+00 1.600000e-03 -5.200000e-03 1.225000e-01 4.917000e-01
- 4.159000e-01 3.145000e-01 5.517000e-01 6.108000e-01 6.129000e-01 7.097000e-01 5.831000e-01 5.751000e-01 5.852000e-01 7.686000e-01 6.010000e-01 5.550000e-01 3.130000e-01 3.593000e-01
- 9.423000e-01 8.490000e-02 1.512500e+00 9.520000e-02 1.424700e+00 4.486000e-01 1.395900e+00 2.259000e-01 1.504800e+00 3.934000e-01 1.365400e+00 2.641000e-01 7.831000e-01 1.587000e-01
- 4.414000e-01 3.166000e-01 7.875000e-01 2.755000e-01 8.969000e-01 2.846000e-01 1.744600e+00 -1.050000e-02 2.500000e-02 1.969800e+00 6.880000e-02 -8.310000e-02 4.572000e-01 1.650000e-01
- 4.897000e-01 6.166000e-01 7.778000e-01 7.313000e-01 9.998000e-01 6.125000e-01 1.702800e+00 3.800000e-02 1.101000e-01 1.871500e+00 6.670000e-02 1.654300e+00 4.621000e-01 4.153000e-01
- 3.592000e-01 1.203000e-01 5.896000e-01 1.628000e-01 7.070000e-01 1.390000e-01 6.235000e-01 1.224000e-01 6.721000e-01 1.972000e-01 6.086000e-01 1.439000e-01 3.612000e-01 6.870000e-02
- 1.177800e+00 -8.270000e-02 1.425000e+00 2.890000e-02 1.075300e+00 -1.025000e-01 1.426900e+00 3.190000e-02 9.603000e-01 8.000000e-04 1.419000e+00 4.170000e-02 7.187000e-01 1.360000e-02
- 2.602000e-01 7.164000e-01 7.322000e-01 5.280000e-01 7.810000e-01 6.129000e-01 1.754400e+00 -2.570000e-02 -4.170000e-02 2.048600e+00 -7.420000e-02 8.850000e-02 3.622000e-01 3.902000e-01
- 9.853000e-01 1.293000e-01 4.345000e-01 2.152000e-01 3.437000e-01 1.954000e-01 4.099000e-01 2.471000e-01 3.284000e-01 2.032000e-01 4.200000e-01 2.330000e-01 3.041000e-01 1.577000e-01
- 9.117000e-01 1.948000e-01 1.158700e+00 4.074000e-01 1.335200e+00 3.364000e-01 1.714900e+00 1.760000e-02 2.016600e+00 -2.550000e-02 -1.041000e-01 1.856400e+00 7.200000e-01 1.807000e-01
- 1.140600e+00 -3.580000e-02 6.300000e-01 1.801000e-01 3.542000e-01 3.308000e-01 5.145000e-01 3.221000e-01 4.868000e-01 1.562000e-01 5.023000e-01 3.346000e-01 4.021000e-01 1.433000e-01
- 6.267000e-01 4.142000e-01 9.552000e-01 6.795000e-01 1.028300e+00 8.437000e-01 9.689000e-01 6.655000e-01 1.223900e+00 6.474000e-01 9.202000e-01 7.226000e-01 5.495000e-01 3.955000e-01
- 2.915000e-01 2.898000e-01 3.733000e-01 5.469000e-01 3.424000e-01 7.258000e-01 3.200000e-01 6.140000e-01 4.248000e-01 6.449000e-01 2.811000e-01 6.647000e-01 1.979000e-01 3.389000e-01
- 7.741000e-01 1.946000e-01 1.068400e+00 4.755000e-01 1.394300e+00 3.300000e-01 1.170700e+00 3.506000e-01 1.343000e+00 4.205000e-01 1.218300e+00 2.957000e-01 6.731000e-01 2.077000e-01
--3.680000e-02 4.017000e-01 6.590000e-02 6.122000e-01 2.108000e-01 5.843000e-01 -7.320000e-02 1.821100e+00 -7.040000e-02 8.380000e-02 -1.620000e-02 1.770000e-02 6.800000e-02 3.089000e-01
- 3.511000e-01 8.330000e-02 6.243000e-01 4.320000e-02 6.950000e-01 7.220000e-02 6.273000e-01 3.880000e-02 8.073000e-01 -5.250000e-02 6.866000e-01 -2.930000e-02 3.668000e-01 1.780000e-02
--2.200000e-03 4.328000e-01 9.620000e-02 5.566000e-01 1.032000e-01 6.397000e-01 7.780000e-02 5.799000e-01 1.418000e-01 6.060000e-01 1.540000e-02 6.526000e-01 4.010000e-02 3.400000e-01
- 1.157000e-01 3.932000e-01 2.233000e-01 5.684000e-01 3.136000e-01 5.740000e-01 2.221000e-01 5.673000e-01 1.697000e-01 7.595000e-01 1.936000e-01 6.002000e-01 1.201000e-01 3.379000e-01
- 3.699000e-01 7.311000e-01 7.281000e-01 9.934000e-01 6.734000e-01 1.311100e+00 1.734800e+00 -5.500000e-03 1.186000e-01 1.858800e+00 -1.470000e-02 1.746300e+00 3.813000e-01 6.166000e-01
- 3.891000e-01 2.215000e-01 6.282000e-01 3.252000e-01 7.111000e-01 3.700000e-01 6.102000e-01 3.434000e-01 7.287000e-01 3.707000e-01 5.959000e-01 3.620000e-01 3.536000e-01 1.964000e-01
- 1.167600e+00 -7.010000e-02 3.770000e-01 1.359000e+00 2.343000e-01 1.332700e+00 4.709000e-01 1.250900e+00 2.915000e-01 1.174700e+00 3.580000e-01 1.382700e+00 3.080000e-01 6.191000e-01
- 4.259000e-01 4.327000e-01 6.630000e-01 6.835000e-01 6.497000e-01 9.032000e-01 6.208000e-01 7.378000e-01 6.525000e-01 9.307000e-01 6.688000e-01 6.760000e-01 3.576000e-01 4.249000e-01
- 4.507000e-01 5.850000e-01 7.612000e-01 8.484000e-01 8.878000e-01 9.469000e-01 7.216000e-01 8.978000e-01 7.942000e-01 1.079400e+00 7.377000e-01 8.773000e-01 4.067000e-01 5.303000e-01
- 1.700000e-01 9.436000e-01 1.486000e-01 1.091900e+00 5.420000e-02 8.650000e-01 2.837000e-01 9.306000e-01 1.378000e-01 7.436000e-01 1.412000e-01 1.099300e+00 1.027000e-01 5.879000e-01
- 3.313000e-01 2.213000e-01 5.529000e-01 3.276000e-01 7.630000e-01 2.247000e-01 1.775100e+00 -4.960000e-02 -1.123000e-01 2.130400e+00 3.450000e-02 -4.120000e-02 3.109000e-01 1.995000e-01
--3.970000e-02 8.653000e-01 2.490000e-02 1.106400e+00 1.539000e-01 1.077600e+00 2.170000e-02 1.703100e+00 -3.390000e-02 2.043400e+00 4.890000e-02 -5.940000e-02 9.900000e-03 6.578000e-01
- 4.160000e-02 2.492000e-01 3.630000e-02 5.778000e-01 2.428000e-01 4.730000e-01 -2.500000e-03 1.733400e+00 -5.520000e-02 6.750000e-02 4.880000e-02 -5.870000e-02 4.570000e-02 2.934000e-01
- 1.156100e+00 -6.180000e-02 4.096000e-01 1.040000e+00 4.179000e-01 5.648000e-01 4.842000e-01 9.480000e-01 3.375000e-01 6.273000e-01 3.995000e-01 1.051100e+00 3.377000e-01 3.912000e-01
- 1.151400e+00 -5.380000e-02 5.146000e-01 1.212200e+00 4.147000e-01 8.332000e-01 5.307000e-01 1.194600e+00 3.870000e-01 8.223000e-01 5.730000e-01 1.144800e+00 3.725000e-01 4.698000e-01
- 8.854000e-01 2.118000e-01 2.810000e-01 5.846000e-01 3.241000e-01 3.542000e-01 3.327000e-01 5.222000e-01 3.007000e-01 3.679000e-01 4.131000e-01 4.262000e-01 2.879000e-01 2.674000e-01
- 3.638000e-01 3.804000e-01 7.445000e-01 2.988000e-01 8.495000e-01 3.202000e-01 1.906100e+00 -2.026000e-01 0.000000e+00 2.001200e+00 -8.700000e-03 9.600000e-03 3.821000e-01 2.389000e-01
- 2.077000e-01 4.487000e-01 2.482000e-01 7.953000e-01 3.955000e-01 7.727000e-01 3.535000e-01 6.678000e-01 4.896000e-01 6.782000e-01 3.969000e-01 6.183000e-01 2.022000e-01 3.902000e-01
- 2.329000e-01 6.285000e-01 5.094000e-01 8.113000e-01 6.033000e-01 8.956000e-01 5.496000e-01 7.599000e-01 6.561000e-01 8.529000e-01 5.272000e-01 7.862000e-01 3.007000e-01 4.596000e-01
- 2.791000e-01 3.898000e-01 3.058000e-01 7.622000e-01 5.019000e-01 6.861000e-01 4.306000e-01 6.145000e-01 4.562000e-01 7.582000e-01 4.978000e-01 5.388000e-01 2.469000e-01 3.571000e-01
- 7.123000e-01 4.088000e-01 4.206000e-01 5.596000e-01 2.809000e-01 4.953000e-01 3.921000e-01 5.953000e-01 3.269000e-01 4.263000e-01 3.688000e-01 6.182000e-01 2.817000e-01 3.309000e-01
- 4.560000e-01 6.668000e-01 9.033000e-01 7.476000e-01 1.013600e+00 7.590000e-01 1.754300e+00 -2.050000e-02 1.967200e+00 3.600000e-02 -5.360000e-02 1.796700e+00 5.007000e-01 4.429000e-01
- 8.890000e-02 1.325000e-01 4.074000e-01 1.244000e-01 5.965000e-01 4.450000e-02 1.626600e+00 1.235000e-01 -4.290000e-02 5.310000e-02 4.770000e-02 -5.700000e-02 2.280000e-01 6.230000e-02
- 1.146600e+00 -4.920000e-02 7.559000e-01 2.360000e-02 5.875000e-01 5.060000e-02 7.465000e-01 3.910000e-02 6.143000e-01 2.300000e-03 8.245000e-01 -5.390000e-02 5.154000e-01 7.700000e-03
- 8.170000e-02 2.001000e-01 1.828000e-01 2.480000e-01 5.410000e-02 4.648000e-01 1.310000e-01 3.071000e-01 6.150000e-02 4.636000e-01 1.292000e-01 3.150000e-01 6.720000e-02 1.890000e-01
- 3.180000e-02 6.007000e-01 9.280000e-02 8.930000e-01 6.660000e-02 1.058400e+00 1.871000e-01 7.811000e-01 1.862000e-01 9.383000e-01 1.827000e-01 7.888000e-01 4.380000e-02 5.275000e-01
- 4.072000e-01 3.659000e-01 5.085000e-01 7.296000e-01 5.936000e-01 8.117000e-01 6.028000e-01 6.189000e-01 5.598000e-01 8.765000e-01 6.076000e-01 6.148000e-01 3.187000e-01 3.925000e-01
- 2.243000e-01 6.124000e-01 4.186000e-01 7.552000e-01 5.787000e-01 7.057000e-01 1.668500e+00 7.700000e-02 -8.110000e-02 2.092600e+00 -5.970000e-02 7.010000e-02 2.660000e-01 4.185000e-01
- 1.119900e+00 -1.730000e-02 7.295000e-01 1.010000e+00 6.374000e-01 6.944000e-01 7.769000e-01 9.545000e-01 7.149000e-01 5.439000e-01 7.168000e-01 1.024200e+00 5.167000e-01 3.524000e-01
- 4.520000e-01 4.722000e-01 6.902000e-01 7.582000e-01 9.625000e-01 6.599000e-01 7.994000e-01 6.382000e-01 8.570000e-01 8.108000e-01 7.531000e-01 6.950000e-01 4.221000e-01 4.123000e-01
- 1.081400e+00 2.580000e-02 7.381000e-01 8.548000e-01 5.455000e-01 4.843000e-01 8.089000e-01 7.721000e-01 6.447000e-01 3.352000e-01 7.806000e-01 8.049000e-01 5.102000e-01 2.349000e-01
--3.530000e-02 9.139000e-01 3.109000e-01 8.767000e-01 3.875000e-01 9.291000e-01 1.760000e-02 1.708500e+00 5.190000e-02 1.937300e+00 -2.270000e-02 2.460000e-02 1.649000e-01 5.366000e-01
- 9.807000e-01 1.179000e-01 4.309000e-01 2.824000e-01 3.117000e-01 2.823000e-01 4.382000e-01 2.777000e-01 3.246000e-01 2.548000e-01 4.180000e-01 3.002000e-01 3.007000e-01 1.943000e-01
- 3.250000e-01 2.790000e-01 7.360000e-01 1.607000e-01 7.521000e-01 2.878000e-01 1.784500e+00 -6.330000e-02 -7.240000e-02 2.082300e+00 3.470000e-02 -4.150000e-02 3.443000e-01 1.906000e-01
- 5.688000e-01 9.040000e-02 8.446000e-01 1.970000e-01 9.281000e-01 2.649000e-01 8.492000e-01 1.929000e-01 8.796000e-01 3.376000e-01 7.574000e-01 3.030000e-01 4.745000e-01 1.294000e-01
- 3.120000e-01 4.004000e-01 6.671000e-01 3.566000e-01 5.774000e-01 6.072000e-01 1.690600e+00 5.000000e-02 1.290000e-02 1.987400e+00 -1.380000e-02 1.650000e-02 3.382000e-01 2.667000e-01
- 1.663000e-01 6.186000e-01 1.562000e-01 1.084300e+00 1.519000e-01 1.267800e+00 1.862000e-01 1.049100e+00 3.050000e-01 1.105300e+00 1.669000e-01 1.073600e+00 1.202000e-01 5.912000e-01
- 3.376000e-01 5.206000e-01 4.022000e-01 9.626000e-01 6.526000e-01 8.635000e-01 5.593000e-01 7.763000e-01 5.713000e-01 9.856000e-01 6.018000e-01 7.242000e-01 3.129000e-01 4.596000e-01
- 4.579000e-01 6.553000e-01 2.936000e-01 8.654000e-01 2.920000e-01 5.680000e-01 2.777000e-01 8.882000e-01 2.360000e-01 6.118000e-01 2.499000e-01 9.187000e-01 2.159000e-01 4.540000e-01
- 3.084000e-01 5.384000e-01 6.887000e-01 4.607000e-01 7.591000e-01 5.193000e-01 1.674400e+00 6.190000e-02 -2.330000e-02 2.028300e+00 -1.730000e-02 2.100000e-02 3.601000e-01 3.235000e-01
- 2.808000e-01 2.563000e-01 4.488000e-01 3.873000e-01 5.796000e-01 3.615000e-01 4.806000e-01 3.485000e-01 5.999000e-01 3.518000e-01 4.774000e-01 3.545000e-01 2.802000e-01 1.986000e-01
- 8.380000e-02 1.481000e-01 1.604000e-01 1.943000e-01 2.514000e-01 1.399000e-01 2.079000e-01 1.384000e-01 2.309000e-01 1.706000e-01 1.796000e-01 1.728000e-01 1.045000e-01 9.790000e-02
- 5.270000e-02 4.620000e-01 3.844000e-01 4.432000e-01 5.097000e-01 4.337000e-01 -2.350000e-02 1.761600e+00 -9.900000e-03 1.100000e-02 3.140000e-02 -3.780000e-02 1.804000e-01 3.003000e-01
- 4.784000e-01 -3.000000e-03 7.456000e-01 2.300000e-03 7.309000e-01 1.364000e-01 6.966000e-01 5.930000e-02 7.600000e-01 1.187000e-01 7.205000e-01 3.540000e-02 4.033000e-01 3.320000e-02
- 3.585000e-01 6.260000e-01 7.743000e-01 5.065000e-01 7.985000e-01 6.149000e-01 1.737500e+00 -1.090000e-02 4.900000e-02 1.945400e+00 -8.970000e-02 1.065000e-01 4.380000e-01 3.180000e-01
- 5.082000e-01 5.910000e-01 7.890000e-01 7.576000e-01 8.673000e-01 8.025000e-01 1.677600e+00 6.540000e-02 -5.020000e-02 2.058300e+00 8.400000e-02 1.632800e+00 4.487000e-01 4.481000e-01
- 3.315000e-01 5.409000e-01 6.587000e-01 5.250000e-01 6.879000e-01 6.287000e-01 1.730300e+00 0.000000e+00 8.930000e-02 1.898600e+00 4.910000e-02 -5.990000e-02 3.776000e-01 3.192000e-01
- 7.500000e-03 7.326000e-01 2.217000e-01 8.010000e-01 2.055000e-01 9.643000e-01 6.180000e-02 1.656800e+00 -5.870000e-02 2.070400e+00 -2.560000e-02 3.100000e-02 4.460000e-02 5.755000e-01
--4.240000e-02 7.591000e-01 3.428000e-01 6.647000e-01 3.545000e-01 7.933000e-01 5.000000e-02 1.675500e+00 -9.690000e-02 2.112200e+00 -1.800000e-03 2.400000e-03 1.535000e-01 4.441000e-01
- 3.393000e-01 5.055000e-01 6.030000e-01 7.080000e-01 7.056000e-01 7.814000e-01 6.102000e-01 7.022000e-01 7.245000e-01 7.864000e-01 5.652000e-01 7.547000e-01 3.327000e-01 4.272000e-01
- 6.824000e-01 4.344000e-01 1.050700e+00 6.378000e-01 1.118400e+00 7.004000e-01 1.775100e+00 -5.320000e-02 1.875000e+00 1.442000e-01 3.940000e-02 1.686500e+00 6.244000e-01 3.308000e-01
- 3.648000e-01 5.643000e-01 7.458000e-01 4.867000e-01 8.342000e-01 5.187000e-01 1.737500e+00 -6.500000e-03 -9.810000e-02 2.117800e+00 -5.920000e-02 7.120000e-02 3.983000e-01 3.318000e-01
- 1.129600e+00 -3.020000e-02 6.534000e-01 1.097600e+00 6.021000e-01 4.781000e-01 7.221000e-01 1.015500e+00 6.298000e-01 4.144000e-01 7.729000e-01 9.528000e-01 5.045000e-01 2.708000e-01
- 4.052000e-01 3.131000e-01 6.783000e-01 4.436000e-01 7.699000e-01 5.071000e-01 6.499000e-01 4.775000e-01 8.500000e-01 4.314000e-01 7.182000e-01 3.959000e-01 4.053000e-01 2.391000e-01
- 1.131800e+00 -3.150000e-02 6.668000e-01 5.677000e-01 5.198000e-01 3.855000e-01 6.295000e-01 6.142000e-01 4.733000e-01 4.171000e-01 7.019000e-01 5.303000e-01 4.325000e-01 2.588000e-01
--1.350000e-02 9.692000e-01 6.860000e-02 1.201600e+00 2.007000e-01 1.184700e+00 -1.011000e-01 1.850400e+00 2.550000e-02 1.973700e+00 6.100000e-02 -7.320000e-02 5.340000e-02 6.952000e-01
- 1.009400e+00 1.134000e-01 4.213000e-01 8.066000e-01 3.547000e-01 5.525000e-01 4.474000e-01 7.713000e-01 4.188000e-01 4.510000e-01 5.455000e-01 6.543000e-01 3.627000e-01 3.198000e-01
- 4.146000e-01 4.600000e-02 7.304000e-01 4.780000e-02 8.895000e-01 -9.000000e-04 1.766900e+00 -4.180000e-02 1.940000e-02 -2.560000e-02 1.600000e-03 -2.100000e-03 4.215000e-01 2.020000e-02
- 4.200000e-03 7.406000e-01 4.619000e-01 5.687000e-01 5.006000e-01 6.651000e-01 1.647100e+00 9.630000e-02 -8.380000e-02 2.093600e+00 1.680000e-02 -2.180000e-02 2.127000e-01 3.993000e-01
- 8.960000e-01 2.122000e-01 1.236100e+00 2.560000e-01 1.376200e+00 2.300000e-01 1.731100e+00 5.000000e-04 1.994500e+00 4.600000e-03 -2.330000e-02 1.759100e+00 7.241000e-01 1.468000e-01
- 1.125000e+00 -2.640000e-02 1.185100e+00 5.672000e-01 9.300000e-01 2.285000e-01 1.218800e+00 5.273000e-01 8.381000e-01 2.953000e-01 1.288500e+00 4.426000e-01 7.039000e-01 1.022000e-01
- 9.570000e-02 2.974000e-01 4.062000e-01 1.635000e-01 4.607000e-01 1.812000e-01 3.996000e-01 1.672000e-01 4.821000e-01 1.683000e-01 3.296000e-01 2.546000e-01 2.160000e-01 1.141000e-01
- 1.066400e+00 5.060000e-02 4.352000e-01 1.309700e+00 3.315000e-01 1.332100e+00 4.690000e-01 1.277800e+00 4.950000e-01 1.028800e+00 4.517000e-01 1.293800e+00 3.870000e-01 5.589000e-01
- 9.807000e-01 1.493000e-01 1.107100e+00 6.114000e-01 7.685000e-01 2.679000e-01 9.559000e-01 7.915000e-01 7.832000e-01 2.189000e-01 1.040300e+00 6.888000e-01 6.295000e-01 1.212000e-01
- 4.976000e-01 3.970000e-01 6.387000e-01 7.825000e-01 8.251000e-01 7.792000e-01 7.457000e-01 6.585000e-01 7.633000e-01 8.793000e-01 7.247000e-01 6.854000e-01 3.927000e-01 4.256000e-01
- 7.080000e-02 8.437000e-01 1.565000e-01 1.267600e+00 2.215000e-01 1.388900e+00 2.746000e-01 1.129200e+00 2.840000e-01 1.339000e+00 1.668000e-01 1.250800e+00 1.165000e-01 7.000000e-01
- 2.704000e-01 7.288000e-01 6.289000e-01 6.757000e-01 7.274000e-01 7.037000e-01 1.694200e+00 4.620000e-02 5.750000e-02 1.930000e+00 -1.150000e-02 1.200000e-02 3.791000e-01 3.871000e-01
- 3.198000e-01 7.852000e-01 6.013000e-01 1.135000e+00 7.234000e-01 1.198300e+00 1.628900e+00 1.248000e-01 -4.420000e-02 2.053300e+00 8.170000e-02 1.635800e+00 3.488000e-01 6.410000e-01
- 8.978000e-01 1.226000e-01 1.111100e+00 2.376000e-01 1.333900e+00 1.199000e-01 1.906700e+00 -2.029000e-01 1.955700e+00 4.500000e-02 1.680000e-02 -1.970000e-02 7.193000e-01 6.620000e-02
- 3.376000e-01 4.681000e-01 7.722000e-01 3.205000e-01 7.227000e-01 5.211000e-01 1.563600e+00 1.941000e-01 5.300000e-03 1.993600e+00 -4.300000e-02 5.260000e-02 3.808000e-01 2.757000e-01
--1.780000e-02 9.781000e-01 2.480000e-01 1.004500e+00 2.617000e-01 1.130300e+00 -5.760000e-02 1.800700e+00 3.090000e-02 1.965300e+00 -6.770000e-02 7.990000e-02 9.110000e-02 6.573000e-01
- 3.065000e-01 4.802000e-01 5.440000e-01 6.745000e-01 5.246000e-01 8.795000e-01 4.652000e-01 7.694000e-01 5.639000e-01 8.570000e-01 4.735000e-01 7.587000e-01 2.864000e-01 4.227000e-01
- 7.427000e-01 7.390000e-02 1.189300e+00 8.300000e-02 1.414300e+00 2.050000e-02 1.250600e+00 6.000000e-03 1.441500e+00 1.240000e-02 1.193500e+00 7.420000e-02 7.161000e-01 1.110000e-02
- 4.666000e-01 6.226000e-01 8.800000e-01 7.976000e-01 9.467000e-01 9.688000e-01 6.725000e-01 1.039400e+00 8.872000e-01 1.067700e+00 7.361000e-01 9.614000e-01 4.290000e-01 5.515000e-01
- 3.063000e-01 6.264000e-01 7.307000e-01 4.934000e-01 8.177000e-01 5.290000e-01 1.775700e+00 -4.860000e-02 -1.500000e-02 2.013600e+00 -5.090000e-02 6.170000e-02 4.033000e-01 3.219000e-01
--2.300000e-03 9.057000e-01 2.291000e-01 9.915000e-01 4.589000e-01 8.647000e-01 5.000000e-04 1.731800e+00 4.500000e-03 1.990400e+00 -5.000000e-03 5.300000e-03 1.490000e-01 5.679000e-01
- 7.854000e-01 3.098000e-01 2.999000e-01 6.876000e-01 2.856000e-01 4.767000e-01 3.644000e-01 6.130000e-01 2.626000e-01 4.918000e-01 3.000000e-01 6.889000e-01 2.698000e-01 3.384000e-01
- 4.141000e-01 2.904000e-01 6.394000e-01 3.938000e-01 8.197000e-01 3.237000e-01 1.624800e+00 1.227000e-01 -1.530000e-02 2.018500e+00 -3.490000e-02 4.160000e-02 4.051000e-01 1.915000e-01
- 6.392000e-01 4.688000e-01 9.039000e-01 8.416000e-01 1.061400e+00 8.376000e-01 1.598700e+00 1.593000e-01 1.972200e+00 3.310000e-02 -9.980000e-02 1.852400e+00 5.675000e-01 4.143000e-01
- 6.436000e-01 2.330000e-02 1.019000e+00 -4.770000e-02 9.992000e-01 1.174000e-01 1.605600e+00 1.474000e-01 2.067800e+00 -8.150000e-02 5.890000e-02 -6.990000e-02 5.617000e-01 1.030000e-02
- 1.056800e+00 5.610000e-02 9.277000e-01 3.840000e-01 7.862000e-01 1.421000e-01 9.047000e-01 4.088000e-01 7.154000e-01 1.977000e-01 9.725000e-01 3.286000e-01 5.982000e-01 1.060000e-01
- 2.863000e-01 2.397000e-01 3.017000e-01 5.512000e-01 4.118000e-01 5.414000e-01 4.823000e-01 3.335000e-01 2.984000e-01 6.918000e-01 4.641000e-01 3.558000e-01 2.224000e-01 2.593000e-01
- 4.731000e-01 8.560000e-02 7.429000e-01 1.325000e-01 9.045000e-01 8.170000e-02 8.110000e-01 4.620000e-02 8.391000e-01 1.784000e-01 7.406000e-01 1.352000e-01 4.483000e-01 5.340000e-02
- 1.335000e-01 9.647000e-01 4.820000e-02 1.051100e+00 1.408000e-01 6.785000e-01 3.630000e-02 1.068100e+00 7.970000e-02 7.308000e-01 1.641000e-01 9.179000e-01 4.960000e-02 6.001000e-01
- 4.580000e-02 9.044000e-01 3.932000e-01 8.614000e-01 5.322000e-01 8.431000e-01 1.675300e+00 6.230000e-02 3.500000e-02 1.957700e+00 -3.200000e-03 3.000000e-03 2.104000e-01 5.312000e-01
- 1.039000e+00 7.570000e-02 7.307000e-01 1.009800e+00 5.982000e-01 1.377000e+00 7.363000e-01 1.004300e+00 6.714000e-01 1.031500e+00 8.457000e-01 8.775000e-01 5.253000e-01 4.539000e-01
- 5.764000e-01 3.032000e-01 9.577000e-01 4.120000e-01 9.673000e-01 6.153000e-01 9.352000e-01 4.392000e-01 9.752000e-01 6.314000e-01 7.572000e-01 6.480000e-01 5.075000e-01 2.932000e-01
- 1.140700e+00 -4.550000e-02 9.417000e-01 7.776000e-01 7.075000e-01 5.760000e-01 8.199000e-01 9.228000e-01 6.980000e-01 5.391000e-01 9.480000e-01 7.681000e-01 5.668000e-01 2.880000e-01
--2.900000e-02 6.733000e-01 3.202000e-01 6.315000e-01 4.043000e-01 6.685000e-01 -7.370000e-02 1.813700e+00 1.229000e-01 1.851200e+00 4.170000e-02 -5.200000e-02 1.569000e-01 3.977000e-01
- 3.265000e-01 4.894000e-01 6.227000e-01 5.130000e-01 7.186000e-01 5.417000e-01 1.765500e+00 -3.930000e-02 -4.840000e-02 2.053500e+00 9.800000e-03 -1.190000e-02 3.285000e-01 3.432000e-01
- 1.117100e+00 -8.600000e-03 7.302000e-01 3.616000e-01 6.130000e-01 2.139000e-01 6.646000e-01 4.410000e-01 6.113000e-01 1.987000e-01 7.062000e-01 3.899000e-01 4.921000e-01 1.567000e-01
- 1.141900e+00 -4.700000e-02 6.574000e-01 7.773000e-01 5.479000e-01 4.382000e-01 7.244000e-01 6.954000e-01 5.710000e-01 3.823000e-01 7.053000e-01 7.203000e-01 4.940000e-01 2.317000e-01
- 4.965000e-01 1.738000e-01 7.885000e-01 2.035000e-01 9.662000e-01 1.357000e-01 1.835300e+00 -1.154000e-01 -1.560000e-02 2.021700e+00 -1.450000e-02 1.650000e-02 4.759000e-01 9.810000e-02
- 4.544000e-01 3.766000e-01 8.270000e-01 4.520000e-01 7.125000e-01 7.868000e-01 6.932000e-01 6.157000e-01 7.669000e-01 7.423000e-01 5.673000e-01 7.614000e-01 3.870000e-01 3.691000e-01
- 4.055000e-01 3.654000e-01 7.823000e-01 3.933000e-01 7.759000e-01 5.908000e-01 7.125000e-01 4.798000e-01 9.026000e-01 4.538000e-01 7.434000e-01 4.432000e-01 4.013000e-01 2.881000e-01
- 5.728000e-01 2.989000e-01 8.306000e-01 3.644000e-01 9.304000e-01 3.902000e-01 1.696000e+00 4.100000e-02 -8.430000e-02 2.101000e+00 -7.130000e-02 8.580000e-02 5.000000e-01 2.026000e-01
- 3.376000e-01 7.775000e-01 3.464000e-01 1.362100e+00 2.232000e-01 9.473000e-01 2.115000e-01 1.521300e+00 2.551000e-01 8.705000e-01 2.435000e-01 1.486300e+00 1.729000e-01 6.418000e-01
- 1.090600e+00 1.860000e-02 6.090000e-01 1.122400e+00 4.901000e-01 5.531000e-01 5.431000e-01 1.201300e+00 5.042000e-01 5.040000e-01 5.107000e-01 1.237100e+00 4.253000e-01 3.304000e-01
- 1.114300e+00 -1.080000e-02 5.238000e-01 4.260000e-01 3.534000e-01 4.049000e-01 5.256000e-01 4.235000e-01 4.289000e-01 2.981000e-01 5.392000e-01 4.056000e-01 3.375000e-01 2.647000e-01
- 4.647000e-01 9.610000e-02 8.450000e-01 1.090000e-02 9.376000e-01 3.980000e-02 7.987000e-01 6.400000e-02 8.026000e-01 2.185000e-01 7.818000e-01 8.880000e-02 4.603000e-01 3.840000e-02
- 1.721000e-01 2.183000e-01 2.819000e-01 3.280000e-01 3.557000e-01 3.364000e-01 2.338000e-01 3.847000e-01 3.266000e-01 3.775000e-01 2.295000e-01 3.909000e-01 1.535000e-01 2.003000e-01
- 1.860000e-02 2.330000e-01 8.280000e-02 2.981000e-01 6.380000e-02 3.789000e-01 -1.660000e-02 4.184000e-01 1.610000e-01 2.707000e-01 8.580000e-02 2.988000e-01 3.820000e-02 1.848000e-01
- 4.782000e-01 4.641000e-01 8.946000e-01 3.435000e-01 8.573000e-01 5.357000e-01 1.875700e+00 -1.691000e-01 -6.900000e-03 2.014400e+00 2.090000e-02 -2.310000e-02 4.434000e-01 3.007000e-01
- 3.309000e-01 4.250000e-01 4.928000e-01 6.981000e-01 6.051000e-01 7.404000e-01 6.155000e-01 5.528000e-01 6.382000e-01 7.205000e-01 5.233000e-01 6.605000e-01 3.175000e-01 3.624000e-01
- 2.536000e-01 1.080000e-01 5.554000e-01 1.227000e-01 7.170000e-01 7.060000e-02 1.696900e+00 4.170000e-02 -1.440000e-02 1.760000e-02 -1.016000e-01 1.216000e-01 3.275000e-01 4.920000e-02
- 3.390000e-01 3.020000e-01 5.153000e-01 4.942000e-01 5.936000e-01 5.545000e-01 5.314000e-01 4.704000e-01 6.225000e-01 5.370000e-01 5.093000e-01 4.972000e-01 3.172000e-01 2.615000e-01
- 1.167900e+00 -7.670000e-02 1.151900e+00 5.657000e-01 8.234000e-01 1.057900e+00 1.061100e+00 6.778000e-01 6.292000e-01 1.053300e+00 1.050300e+00 6.942000e-01 6.490000e-01 3.211000e-01
- 4.128000e-01 6.886000e-01 7.720000e-01 6.333000e-01 8.191000e-01 7.276000e-01 1.696900e+00 4.170000e-02 -1.400000e-03 1.999100e+00 -2.770000e-02 1.763800e+00 4.395000e-01 3.880000e-01
- 2.401000e-01 8.456000e-01 2.801000e-01 1.440500e+00 3.156000e-01 1.645200e+00 4.983000e-01 1.182000e+00 4.511000e-01 1.513000e+00 4.349000e-01 1.260300e+00 2.223000e-01 7.598000e-01
- 3.190000e-02 2.327000e-01 1.329000e-01 4.503000e-01 1.820000e-01 5.382000e-01 1.320000e-01 1.579700e+00 6.880000e-02 -8.450000e-02 -1.080000e-02 1.390000e-02 8.020000e-02 2.422000e-01
- 4.039000e-01 3.573000e-01 6.585000e-01 5.334000e-01 6.388000e-01 7.320000e-01 6.293000e-01 5.603000e-01 6.803000e-01 7.047000e-01 5.667000e-01 6.358000e-01 3.484000e-01 3.435000e-01
- 1.027700e+00 8.760000e-02 5.360000e-01 1.174600e+00 3.294000e-01 7.892000e-01 3.724000e-01 1.366100e+00 2.953000e-01 7.905000e-01 4.678000e-01 1.253200e+00 3.132000e-01 4.753000e-01
- 6.950000e-02 4.076000e-01 1.708000e-01 5.636000e-01 1.306000e-01 7.205000e-01 -1.290000e-02 7.861000e-01 1.415000e-01 7.203000e-01 6.850000e-02 6.867000e-01 5.100000e-02 3.835000e-01
- 5.578000e-01 4.956000e-01 8.414000e-01 5.372000e-01 9.265000e-01 5.695000e-01 1.720000e+00 1.960000e-02 7.740000e-02 1.906200e+00 -9.720000e-02 1.850300e+00 4.662000e-01 3.445000e-01
- 2.043000e-01 1.528000e-01 3.941000e-01 1.483000e-01 4.314000e-01 1.899000e-01 4.244000e-01 1.136000e-01 5.053000e-01 1.130000e-01 4.428000e-01 8.950000e-02 2.396000e-01 7.130000e-02
- 3.115000e-01 6.206000e-01 5.196000e-01 9.349000e-01 4.160000e-01 1.275600e+00 4.773000e-01 9.806000e-01 5.755000e-01 1.103300e+00 3.650000e-01 1.116200e+00 2.662000e-01 5.800000e-01
- 1.036700e+00 8.220000e-02 8.868000e-01 8.528000e-01 7.260000e-01 4.464000e-01 1.059900e+00 6.539000e-01 6.681000e-01 4.769000e-01 9.639000e-01 7.606000e-01 5.826000e-01 2.310000e-01
- 1.069800e+00 4.080000e-02 4.507000e-01 2.553000e-01 3.520000e-01 2.347000e-01 4.403000e-01 2.715000e-01 3.898000e-01 1.776000e-01 4.880000e-01 2.127000e-01 3.393000e-01 1.490000e-01
- 9.398000e-01 9.490000e-02 1.514900e+00 9.620000e-02 1.657200e+00 1.844000e-01 1.592300e+00 4.300000e-03 1.785300e+00 7.150000e-02 1.490300e+00 1.233000e-01 8.673000e-01 6.500000e-02
- 2.916000e-01 8.154000e-01 2.496000e-01 7.557000e-01 7.570000e-02 7.302000e-01 2.293000e-01 7.797000e-01 1.223000e-01 6.540000e-01 1.639000e-01 8.590000e-01 1.455000e-01 4.776000e-01
- 1.027000e-01 1.016100e+00 1.556000e-01 1.566700e+00 1.183000e-01 9.786000e-01 1.365000e-01 1.589500e+00 1.133000e-01 9.559000e-01 1.248000e-01 1.605400e+00 8.940000e-02 6.949000e-01
- 1.103500e+00 3.500000e-03 5.619000e-01 1.930000e-01 4.270000e-01 1.961000e-01 5.009000e-01 2.624000e-01 4.615000e-01 1.391000e-01 5.809000e-01 1.712000e-01 3.970000e-01 1.167000e-01
- 1.000000e-03 9.440000e-01 3.068000e-01 9.555000e-01 4.642000e-01 9.027000e-01 -1.152000e-01 1.865900e+00 -8.080000e-02 2.098800e+00 -8.500000e-03 1.020000e-02 1.939000e-01 5.414000e-01
- 4.455000e-01 6.606000e-01 2.377000e-01 6.792000e-01 2.448000e-01 4.713000e-01 2.568000e-01 6.523000e-01 3.088000e-01 3.794000e-01 2.070000e-01 7.139000e-01 1.991000e-01 3.831000e-01
- 3.431000e-01 3.872000e-01 5.262000e-01 6.181000e-01 5.925000e-01 7.169000e-01 6.176000e-01 5.152000e-01 6.126000e-01 7.107000e-01 4.996000e-01 6.554000e-01 3.275000e-01 3.312000e-01
- 3.390000e-02 6.709000e-01 4.034000e-01 6.058000e-01 4.849000e-01 6.530000e-01 1.696000e+00 4.940000e-02 -7.460000e-02 2.088600e+00 -6.100000e-03 7.900000e-03 2.012000e-01 3.928000e-01
--3.340000e-02 1.136700e+00 8.860000e-02 1.330500e+00 2.922000e-01 1.235300e+00 1.830000e-02 1.712800e+00 -8.160000e-02 2.100200e+00 3.500000e-03 1.726300e+00 7.930000e-02 7.498000e-01
- 1.158900e+00 -6.460000e-02 4.903000e-01 1.257400e+00 5.872000e-01 4.286000e-01 5.796000e-01 1.149900e+00 5.293000e-01 4.681000e-01 5.713000e-01 1.158500e+00 4.171000e-01 3.362000e-01
- 1.061400e+00 5.460000e-02 4.624000e-01 4.138000e-01 4.538000e-01 2.395000e-01 6.261000e-01 2.194000e-01 4.383000e-01 2.373000e-01 5.559000e-01 2.980000e-01 3.813000e-01 1.803000e-01
--6.870000e-02 1.177000e+00 3.070000e-01 1.094200e+00 3.066000e-01 1.239500e+00 8.420000e-02 1.636600e+00 -2.100000e-03 1.999800e+00 -3.140000e-02 1.768700e+00 1.517000e-01 6.749000e-01
- 4.358000e-01 5.687000e-01 7.750000e-01 5.402000e-01 9.538000e-01 4.687000e-01 1.750700e+00 -2.560000e-02 1.563000e-01 1.817000e+00 6.030000e-02 -7.160000e-02 4.426000e-01 3.335000e-01
- 3.493000e-01 3.879000e-01 4.468000e-01 7.277000e-01 5.066000e-01 8.343000e-01 6.364000e-01 5.005000e-01 6.528000e-01 6.812000e-01 4.985000e-01 6.694000e-01 3.007000e-01 3.705000e-01
- 3.451000e-01 3.304000e-01 4.110000e-01 6.678000e-01 4.958000e-01 7.328000e-01 4.974000e-01 5.712000e-01 4.849000e-01 7.611000e-01 3.385000e-01 7.543000e-01 2.568000e-01 3.634000e-01
- 6.628000e-01 4.250000e-01 2.748000e-01 2.046000e-01 1.555000e-01 2.684000e-01 2.439000e-01 2.413000e-01 2.985000e-01 8.700000e-02 2.819000e-01 1.962000e-01 2.311000e-01 1.262000e-01
- 5.381000e-01 2.008000e-01 9.185000e-01 2.281000e-01 1.066400e+00 2.308000e-01 9.062000e-01 2.368000e-01 9.814000e-01 3.535000e-01 8.856000e-01 2.679000e-01 5.252000e-01 1.371000e-01
- 1.112900e+00 -9.100000e-03 8.964000e-01 8.369000e-01 6.871000e-01 7.348000e-01 8.873000e-01 8.529000e-01 7.308000e-01 6.121000e-01 8.880000e-01 8.495000e-01 5.774000e-01 3.174000e-01
- 9.408000e-01 1.572000e-01 1.180300e+00 3.368000e-01 1.296200e+00 3.425000e-01 1.684700e+00 5.910000e-02 2.001600e+00 2.300000e-03 4.320000e-02 1.685900e+00 7.190000e-01 1.595000e-01
- 1.581000e-01 3.713000e-01 3.274000e-01 4.837000e-01 2.731000e-01 6.740000e-01 4.187000e-01 3.731000e-01 3.721000e-01 5.650000e-01 3.401000e-01 4.673000e-01 1.892000e-01 2.795000e-01
- 3.393000e-01 1.388000e-01 2.235000e-01 3.140000e-02 7.320000e-02 1.648000e-01 2.143000e-01 4.110000e-02 1.466000e-01 7.950000e-02 1.840000e-01 7.610000e-02 1.639000e-01 4.260000e-02
- 2.449000e-01 1.485000e-01 1.748000e-01 3.990000e-02 7.900000e-02 1.229000e-01 1.639000e-01 5.250000e-02 1.908000e-01 -1.550000e-02 7.440000e-02 1.631000e-01 1.260000e-01 5.300000e-02
- 3.539000e-01 7.224000e-01 4.408000e-01 1.274400e+00 6.796000e-01 1.237900e+00 4.989000e-01 1.199600e+00 6.023000e-01 1.362300e+00 4.924000e-01 1.209500e+00 2.847000e-01 6.989000e-01
- 4.341000e-01 4.468000e-01 6.116000e-01 7.835000e-01 7.314000e-01 8.503000e-01 6.383000e-01 7.511000e-01 8.338000e-01 7.523000e-01 6.846000e-01 6.988000e-01 3.918000e-01 4.062000e-01
- 5.380000e-01 4.697000e-01 7.407000e-01 8.628000e-01 7.885000e-01 1.048800e+00 7.124000e-01 8.969000e-01 9.390000e-01 9.041000e-01 7.319000e-01 8.754000e-01 4.184000e-01 5.099000e-01
- 2.920000e-01 8.900000e-02 4.256000e-01 1.747000e-01 4.704000e-01 2.201000e-01 4.925000e-01 9.680000e-02 4.691000e-01 2.292000e-01 4.426000e-01 1.539000e-01 2.753000e-01 6.600000e-02
- 4.122000e-01 8.940000e-02 5.834000e-01 2.571000e-01 6.954000e-01 2.638000e-01 1.677400e+00 6.480000e-02 -2.700000e-03 2.000000e-03 1.870000e-02 -2.020000e-02 3.243000e-01 1.595000e-01
--5.000000e-04 1.120800e+00 6.350000e-02 1.665100e+00 -5.980000e-02 1.582700e+00 -7.100000e-03 1.746900e+00 8.840000e-02 1.332500e+00 1.032000e-01 1.617900e+00 3.190000e-02 8.864000e-01
- 2.250000e-02 4.186000e-01 2.250000e-02 2.158000e-01 4.480000e-02 1.556000e-01 6.030000e-02 1.744000e-01 6.030000e-02 1.389000e-01 -2.940000e-02 2.825000e-01 1.240000e-02 1.834000e-01
- 1.856000e-01 3.467000e-01 6.820000e-02 2.194000e-01 4.480000e-02 2.059000e-01 9.490000e-02 1.882000e-01 3.840000e-02 2.095000e-01 5.270000e-02 2.388000e-01 7.130000e-02 1.545000e-01
- 5.003000e-01 2.536000e-01 1.001900e+00 1.310000e-01 1.054300e+00 2.531000e-01 8.935000e-01 2.608000e-01 1.017600e+00 3.172000e-01 9.822000e-01 1.566000e-01 5.335000e-01 1.295000e-01
- 4.205000e-01 6.878000e-01 8.430000e-02 1.679500e+00 1.585000e-01 9.973000e-01 2.664000e-01 1.464800e+00 1.663000e-01 9.523000e-01 3.439000e-01 1.375300e+00 1.936000e-01 6.086000e-01
- 7.230000e-01 2.897000e-01 1.061700e+00 5.399000e-01 1.291800e+00 5.118000e-01 1.153700e+00 4.307000e-01 1.208600e+00 6.427000e-01 9.571000e-01 6.620000e-01 6.198000e-01 3.023000e-01
- 2.124000e-01 6.169000e-01 4.337000e-01 8.492000e-01 4.279000e-01 1.041800e+00 4.311000e-01 8.475000e-01 4.554000e-01 1.033700e+00 3.460000e-01 9.528000e-01 2.282000e-01 5.165000e-01
- 1.087000e+00 2.050000e-02 3.814000e-01 9.184000e-01 3.311000e-01 6.046000e-01 3.696000e-01 9.346000e-01 3.396000e-01 5.683000e-01 4.533000e-01 8.328000e-01 3.132000e-01 3.887000e-01
- 1.122500e+00 -2.000000e-02 7.035000e-01 1.028900e+00 5.001000e-01 6.363000e-01 7.524000e-01 9.642000e-01 5.688000e-01 5.181000e-01 7.309000e-01 9.958000e-01 4.889000e-01 3.028000e-01
- 1.122700e+00 -2.120000e-02 7.345000e-01 1.126000e-01 5.620000e-01 1.254000e-01 7.846000e-01 5.580000e-02 5.239000e-01 1.548000e-01 7.256000e-01 1.218000e-01 4.972000e-01 5.870000e-02
- 2.307000e-01 7.521000e-01 4.215000e-01 8.968000e-01 4.895000e-01 9.583000e-01 1.706200e+00 3.010000e-02 2.510000e-02 1.976100e+00 5.130000e-02 -5.990000e-02 2.203000e-01 5.587000e-01
- 3.168000e-01 1.169000e-01 7.908000e-01 -7.260000e-02 8.958000e-01 -5.690000e-02 1.596400e+00 1.594000e-01 -4.350000e-02 5.030000e-02 -4.990000e-02 5.970000e-02 3.999000e-01 1.530000e-02
- 1.098600e+00 1.060000e-02 1.170200e+00 5.680000e-01 8.732000e-01 2.272000e-01 1.142800e+00 5.946000e-01 8.219000e-01 2.528000e-01 1.195700e+00 5.319000e-01 6.724000e-01 1.097000e-01
- 1.823000e-01 6.265000e-01 1.940000e-01 1.089600e+00 2.839000e-01 1.166500e+00 2.785000e-01 9.865000e-01 3.379000e-01 1.124600e+00 2.203000e-01 1.059100e+00 1.262000e-01 6.122000e-01
- 4.150000e-02 7.618000e-01 2.864000e-01 8.324000e-01 4.110000e-01 8.252000e-01 4.500000e-03 1.725100e+00 -2.590000e-02 2.027700e+00 -2.960000e-02 3.420000e-02 1.374000e-01 5.252000e-01
- 5.909000e-01 4.002000e-01 8.241000e-01 7.434000e-01 1.137400e+00 6.116000e-01 9.519000e-01 5.897000e-01 1.061400e+00 7.307000e-01 8.974000e-01 6.602000e-01 5.347000e-01 3.598000e-01
- 7.907000e-01 2.081000e-01 1.288000e+00 2.727000e-01 1.441700e+00 3.342000e-01 1.260200e+00 3.046000e-01 1.501900e+00 2.953000e-01 1.235200e+00 3.337000e-01 7.069000e-01 1.993000e-01
- 5.221000e-01 5.633000e-01 9.389000e-01 7.340000e-01 9.714000e-01 9.561000e-01 9.044000e-01 7.730000e-01 1.116400e+00 8.080000e-01 9.204000e-01 7.541000e-01 5.285000e-01 4.408000e-01
- 1.143700e+00 -4.720000e-02 5.848000e-01 9.845000e-01 6.145000e-01 3.859000e-01 6.835000e-01 8.577000e-01 5.857000e-01 3.928000e-01 6.892000e-01 8.599000e-01 4.808000e-01 2.604000e-01
- 1.652000e-01 5.220000e-01 7.564000e-01 1.959000e-01 7.352000e-01 3.619000e-01 1.798300e+00 -8.000000e-02 -6.110000e-02 2.072900e+00 -3.170000e-02 3.590000e-02 3.185000e-01 2.556000e-01
- 2.429000e-01 8.192000e-01 5.522000e-01 8.254000e-01 6.584000e-01 8.397000e-01 1.758500e+00 -2.970000e-02 1.117000e-01 1.871200e+00 2.010000e-02 1.704900e+00 3.055000e-01 5.041000e-01
- 1.027500e+00 9.290000e-02 7.770000e-01 9.647000e-01 7.027000e-01 6.231000e-01 8.090000e-01 9.281000e-01 7.108000e-01 5.548000e-01 9.417000e-01 7.737000e-01 5.562000e-01 3.125000e-01
- 2.098000e-01 4.697000e-01 2.148000e-01 8.691000e-01 2.709000e-01 9.603000e-01 2.065000e-01 8.809000e-01 1.751000e-01 1.090800e+00 1.634000e-01 9.365000e-01 1.426000e-01 4.818000e-01
- 8.182000e-01 2.860000e-01 1.228700e+00 2.121000e-01 1.275100e+00 2.980000e-01 1.731500e+00 2.500000e-03 2.029300e+00 -3.240000e-02 2.870000e-02 1.699900e+00 6.670000e-01 1.885000e-01
- 1.416000e-01 9.664000e-01 7.030000e-02 8.976000e-01 1.443000e-01 5.991000e-01 4.980000e-02 9.250000e-01 1.007000e-01 6.328000e-01 6.130000e-02 9.041000e-01 7.600000e-02 5.271000e-01
- 6.420000e-01 1.712000e-01 8.587000e-01 4.432000e-01 9.461000e-01 5.424000e-01 1.049100e+00 2.220000e-01 1.132600e+00 3.475000e-01 9.113000e-01 3.815000e-01 5.211000e-01 2.263000e-01
Deleted: trunk/Lib/sandbox/ann/data/oilTst.dat
===================================================================
--- trunk/Lib/sandbox/ann/data/oilTst.dat 2006-08-21 01:02:46 UTC (rev 2171)
+++ trunk/Lib/sandbox/ann/data/oilTst.dat 2006-08-21 01:40:20 UTC (rev 2172)
@@ -1,503 +0,0 @@
- nin 12
- nout 2
- ndata 500
- 6.448000e-01 4.650000e-01 3.659000e-01 8.761000e-01 2.214000e-01 7.023000e-01 3.702000e-01 8.750000e-01 2.981000e-01 5.870000e-01 3.130000e-01 9.374000e-01 2.574000e-01 4.349000e-01
- 5.013000e-01 9.710000e-02 7.749000e-01 1.599000e-01 8.716000e-01 1.946000e-01 7.986000e-01 1.304000e-01 8.874000e-01 1.974000e-01 6.991000e-01 2.499000e-01 4.547000e-01 8.450000e-02
- 3.908000e-01 4.842000e-01 5.148000e-01 8.738000e-01 6.925000e-01 8.681000e-01 5.985000e-01 7.700000e-01 5.325000e-01 1.079000e+00 6.069000e-01 7.554000e-01 3.284000e-01 4.656000e-01
- 1.038400e+00 8.240000e-02 1.578400e+00 1.819000e-01 1.242100e+00 5.329000e-01 1.780600e+00 -5.680000e-02 1.239700e+00 3.690000e-01 1.656900e+00 8.240000e-02 8.512000e-01 1.109000e-01
--9.100000e-03 6.477000e-01 3.510000e-02 9.081000e-01 3.810000e-02 1.031800e+00 6.780000e-02 1.656900e+00 3.950000e-02 1.950300e+00 -2.490000e-02 3.090000e-02 7.000000e-03 5.461000e-01
- 6.458000e-01 2.965000e-01 9.246000e-01 3.379000e-01 1.054200e+00 3.263000e-01 1.751900e+00 -2.230000e-02 2.070800e+00 -7.860000e-02 -1.010000e-02 1.030000e-02 5.419000e-01 2.027000e-01
- 4.951000e-01 5.899000e-01 9.069000e-01 7.700000e-01 8.367000e-01 1.101400e+00 7.952000e-01 9.014000e-01 9.185000e-01 1.039600e+00 7.024000e-01 1.008900e+00 4.378000e-01 5.457000e-01
- 1.136300e+00 -3.530000e-02 3.838000e-01 2.079000e-01 3.385000e-01 1.536000e-01 4.569000e-01 1.199000e-01 2.972000e-01 1.929000e-01 3.505000e-01 2.441000e-01 3.074000e-01 1.153000e-01
- 1.646000e-01 5.148000e-01 4.558000e-01 5.405000e-01 5.855000e-01 5.258000e-01 1.727000e+00 4.400000e-03 -1.250000e-02 2.019000e+00 3.960000e-02 -4.630000e-02 2.334000e-01 3.525000e-01
- 2.028000e-01 3.866000e-01 2.659000e-01 6.712000e-01 3.368000e-01 7.250000e-01 3.495000e-01 5.704000e-01 3.358000e-01 7.372000e-01 2.509000e-01 6.834000e-01 1.608000e-01 3.771000e-01
- 6.930000e-01 1.407000e-01 1.015300e+00 3.020000e-01 1.114100e+00 3.990000e-01 1.070600e+00 2.370000e-01 1.106800e+00 4.251000e-01 1.041400e+00 2.751000e-01 6.056000e-01 1.516000e-01
- 5.753000e-01 5.257000e-01 8.693000e-01 5.906000e-01 8.992000e-01 6.983000e-01 1.670000e+00 7.510000e-02 1.942200e+00 6.400000e-02 -2.000000e-02 1.753100e+00 5.033000e-01 3.513000e-01
- 8.400000e-03 5.567000e-01 2.480000e-02 8.560000e-01 1.377000e-01 8.414000e-01 8.530000e-02 7.866000e-01 -6.210000e-02 1.098600e+00 9.400000e-02 7.736000e-01 1.660000e-02 4.914000e-01
- 1.122000e-01 2.212000e-01 2.767000e-01 2.258000e-01 4.065000e-01 1.461000e-01 2.236000e-01 2.891000e-01 2.271000e-01 3.709000e-01 2.522000e-01 2.523000e-01 1.470000e-01 1.456000e-01
- 2.765000e-01 8.222000e-01 6.055000e-01 9.075000e-01 7.480000e-01 8.832000e-01 1.749700e+00 -2.060000e-02 4.540000e-02 1.950100e+00 4.800000e-02 1.672300e+00 3.080000e-01 5.781000e-01
- 3.000000e-01 2.843000e-01 5.036000e-01 4.081000e-01 6.104000e-01 4.229000e-01 4.810000e-01 4.380000e-01 5.600000e-01 5.012000e-01 4.791000e-01 4.364000e-01 2.898000e-01 2.373000e-01
- 1.142700e+00 -4.400000e-02 8.870000e-01 1.008000e-01 7.355000e-01 2.940000e-02 9.660000e-01 8.200000e-03 6.765000e-01 7.800000e-02 1.012500e+00 -4.360000e-02 5.768000e-01 3.400000e-02
- 2.788000e-01 1.947000e-01 4.153000e-01 3.330000e-01 4.493000e-01 4.033000e-01 3.633000e-01 3.906000e-01 4.544000e-01 4.106000e-01 3.182000e-01 4.397000e-01 2.318000e-01 1.993000e-01
- 4.448000e-01 6.422000e-01 8.192000e-01 5.634000e-01 8.853000e-01 6.292000e-01 1.754600e+00 -2.460000e-02 2.870000e-02 1.963900e+00 -1.710000e-02 1.754600e+00 4.858000e-01 3.275000e-01
- 1.169600e+00 -7.950000e-02 6.595000e-01 3.301000e-01 5.647000e-01 2.009000e-01 7.108000e-01 2.644000e-01 4.990000e-01 2.600000e-01 6.660000e-01 3.246000e-01 4.636000e-01 1.476000e-01
- 2.800000e-02 4.749000e-01 3.082000e-01 5.165000e-01 4.995000e-01 4.292000e-01 -6.680000e-02 1.809500e+00 -5.310000e-02 6.340000e-02 7.020000e-02 -8.250000e-02 1.794000e-01 2.888000e-01
--2.050000e-02 1.080400e+00 1.990000e-01 1.171300e+00 2.044000e-01 1.301100e+00 -6.300000e-02 1.807000e+00 -1.090000e-01 2.131100e+00 9.110000e-02 1.625400e+00 1.084000e-01 6.975000e-01
--1.990000e-02 1.129400e+00 6.400000e-03 1.475300e+00 1.195000e-01 1.479400e+00 -8.570000e-02 1.833300e+00 -5.250000e-02 2.061500e+00 8.600000e-02 1.630200e+00 1.760000e-02 8.479000e-01
- 7.734000e-01 3.108000e-01 1.078300e+00 6.418000e-01 1.267100e+00 6.887000e-01 1.212800e+00 4.844000e-01 1.260900e+00 7.241000e-01 1.197800e+00 5.027000e-01 6.789000e-01 3.063000e-01
- 4.740000e-01 6.379000e-01 2.710000e-01 7.720000e-01 2.148000e-01 5.921000e-01 2.197000e-01 8.294000e-01 2.198000e-01 5.664000e-01 2.387000e-01 8.073000e-01 2.159000e-01 4.153000e-01
- 1.412000e-01 9.814000e-01 1.210000e-01 5.891000e-01 5.280000e-02 5.381000e-01 1.400000e-01 5.603000e-01 1.442000e-01 4.171000e-01 1.087000e-01 6.031000e-01 1.059000e-01 3.814000e-01
- 8.093000e-01 1.447000e-01 1.019800e+00 2.690000e-01 1.202300e+00 2.014000e-01 1.642000e+00 1.033000e-01 2.117700e+00 -1.391000e-01 -8.490000e-02 1.015000e-01 6.179000e-01 1.411000e-01
- 6.051000e-01 3.129000e-01 1.013600e+00 4.145000e-01 1.062800e+00 5.765000e-01 9.327000e-01 5.089000e-01 1.094600e+00 5.687000e-01 9.348000e-01 5.066000e-01 5.441000e-01 2.873000e-01
- 1.044400e+00 7.250000e-02 7.841000e-01 6.701000e-01 5.830000e-01 4.092000e-01 7.340000e-01 7.407000e-01 4.950000e-01 4.886000e-01 7.533000e-01 7.148000e-01 4.912000e-01 2.421000e-01
- 6.847000e-01 3.897000e-01 9.817000e-01 4.101000e-01 1.045500e+00 4.734000e-01 1.734700e+00 -3.000000e-04 1.986600e+00 1.320000e-02 5.550000e-02 1.665800e+00 5.296000e-01 2.952000e-01
- 1.740000e-02 8.344000e-01 -7.070000e-02 1.251500e+00 4.490000e-02 1.250200e+00 -8.910000e-02 1.834800e+00 3.770000e-02 1.952000e+00 1.850000e-02 -2.100000e-02 2.190000e-02 6.670000e-01
- 2.622000e-01 8.393000e-01 1.888000e-01 7.998000e-01 2.062000e-01 5.559000e-01 2.330000e-01 7.465000e-01 1.065000e-01 6.558000e-01 1.107000e-01 8.962000e-01 1.222000e-01 4.926000e-01
- 6.600000e-03 1.097000e+00 4.751000e-01 9.095000e-01 5.517000e-01 9.640000e-01 1.777900e+00 -5.290000e-02 -2.350000e-02 2.028300e+00 5.520000e-02 1.666900e+00 2.132000e-01 6.103000e-01
- 4.735000e-01 2.950000e-02 6.149000e-01 2.003000e-01 7.815000e-01 1.288000e-01 6.322000e-01 1.794000e-01 6.874000e-01 2.575000e-01 6.046000e-01 2.099000e-01 3.779000e-01 8.710000e-02
- 6.480000e-02 5.514000e-01 3.730000e-02 9.392000e-01 1.505000e-01 9.401000e-01 2.350000e-02 9.564000e-01 1.424000e-01 9.696000e-01 3.140000e-02 9.441000e-01 3.910000e-02 5.217000e-01
- 1.271900e+00 -1.940000e-01 4.195000e-01 1.021300e+00 3.379000e-01 6.556000e-01 4.200000e-01 1.027200e+00 3.894000e-01 5.664000e-01 4.430000e-01 1.001100e+00 3.273000e-01 4.017000e-01
- 3.084000e-01 7.897000e-01 1.522000e-01 1.576900e+00 7.180000e-02 9.782000e-01 2.220000e-01 1.498500e+00 4.430000e-02 9.810000e-01 9.340000e-02 1.646600e+00 1.257000e-01 6.302000e-01
- 5.818000e-01 2.661000e-01 8.678000e-01 4.688000e-01 9.546000e-01 5.728000e-01 7.304000e-01 6.334000e-01 8.540000e-01 7.134000e-01 8.607000e-01 4.792000e-01 5.011000e-01 2.696000e-01
- 5.940000e-02 7.090000e-01 4.563000e-01 6.108000e-01 5.679000e-01 6.220000e-01 1.778700e+00 -5.690000e-02 3.970000e-02 1.952300e+00 3.590000e-02 -4.270000e-02 2.095000e-01 4.262000e-01
- 5.933000e-01 2.304000e-01 9.529000e-01 3.319000e-01 1.151400e+00 2.991000e-01 9.822000e-01 3.042000e-01 1.184000e+00 2.901000e-01 9.725000e-01 3.120000e-01 5.705000e-01 1.696000e-01
- 8.719000e-01 2.312000e-01 4.310000e-01 5.507000e-01 3.146000e-01 4.567000e-01 4.258000e-01 5.563000e-01 3.740000e-01 3.700000e-01 3.330000e-01 6.646000e-01 2.901000e-01 3.226000e-01
- 1.360000e-02 9.961000e-01 2.466000e-01 1.077500e+00 3.379000e-01 1.112000e+00 5.620000e-02 1.662300e+00 -4.080000e-02 2.046100e+00 -1.250000e-02 1.610000e-02 1.257000e-01 6.558000e-01
- 1.218000e+00 -1.338000e-01 6.016000e-01 1.136800e+00 4.434000e-01 7.737000e-01 6.493000e-01 1.074600e+00 5.333000e-01 6.233000e-01 5.916000e-01 1.146600e+00 4.410000e-01 3.835000e-01
- 7.636000e-01 1.110000e-01 1.172100e+00 4.000000e-04 1.307500e+00 -1.810000e-02 1.756100e+00 -3.150000e-02 1.876900e+00 1.464000e-01 4.910000e-02 -5.820000e-02 6.767000e-01 1.780000e-02
- 4.733000e-01 5.533000e-01 7.878000e-01 5.479000e-01 9.136000e-01 5.419000e-01 1.809900e+00 -8.920000e-02 -7.870000e-02 2.088800e+00 2.570000e-02 -3.140000e-02 4.780000e-01 3.072000e-01
- 2.005000e-01 5.829000e-01 6.213000e-01 4.544000e-01 6.185000e-01 6.031000e-01 1.674800e+00 6.370000e-02 4.690000e-02 1.944500e+00 4.540000e-02 -5.330000e-02 2.894000e-01 3.546000e-01
- 2.873000e-01 3.904000e-01 5.542000e-01 4.862000e-01 6.085000e-01 5.771000e-01 6.228000e-01 4.063000e-01 6.241000e-01 5.769000e-01 5.590000e-01 4.789000e-01 3.226000e-01 2.772000e-01
- 1.065800e+00 4.890000e-02 9.754000e-01 2.339000e-01 7.418000e-01 1.505000e-01 8.248000e-01 4.087000e-01 6.896000e-01 1.874000e-01 8.415000e-01 3.902000e-01 5.896000e-01 9.380000e-02
- 2.749000e-01 8.322000e-01 7.550000e-02 8.470000e-01 1.179000e-01 6.081000e-01 2.079000e-01 6.938000e-01 1.133000e-01 5.986000e-01 1.856000e-01 7.187000e-01 1.310000e-01 4.502000e-01
- 1.160400e+00 -7.070000e-02 3.873000e-01 4.790000e-01 3.702000e-01 3.135000e-01 3.731000e-01 4.934000e-01 4.204000e-01 2.415000e-01 3.768000e-01 4.884000e-01 3.431000e-01 2.132000e-01
- 7.850000e-01 3.097000e-01 1.039200e+00 6.899000e-01 1.007400e+00 9.179000e-01 1.606700e+00 1.494000e-01 2.023600e+00 -2.750000e-02 7.740000e-02 1.643000e+00 6.075000e-01 3.769000e-01
- 4.767000e-01 6.200000e-01 8.124000e-01 6.201000e-01 8.201000e-01 7.476000e-01 1.762100e+00 -3.200000e-02 2.850000e-02 1.962500e+00 -2.400000e-03 1.735200e+00 4.170000e-01 4.287000e-01
- 7.000000e-02 5.804000e-01 3.603000e-01 6.051000e-01 5.032000e-01 5.804000e-01 1.808000e+00 -9.050000e-02 2.450000e-02 1.971800e+00 5.380000e-02 -6.290000e-02 2.108000e-01 3.495000e-01
- 2.398000e-01 5.381000e-01 4.280000e-01 7.827000e-01 4.594000e-01 9.249000e-01 4.543000e-01 7.498000e-01 4.837000e-01 9.178000e-01 3.558000e-01 8.688000e-01 2.354000e-01 4.663000e-01
- 6.772000e-01 4.153000e-01 8.702000e-01 6.673000e-01 1.097600e+00 5.371000e-01 1.671400e+00 7.230000e-02 1.913400e+00 1.031000e-01 4.360000e-02 1.682100e+00 5.430000e-01 3.427000e-01
- 5.771000e-01 2.690000e-01 9.626000e-01 1.865000e-01 9.748000e-01 3.090000e-01 1.720800e+00 1.200000e-02 1.904000e+00 1.157000e-01 4.180000e-02 -5.090000e-02 5.076000e-01 1.776000e-01
- 9.678000e-01 1.205000e-01 4.169000e-01 7.365000e-01 2.957000e-01 5.802000e-01 4.317000e-01 7.145000e-01 3.142000e-01 5.355000e-01 3.243000e-01 8.496000e-01 2.935000e-01 3.748000e-01
- 3.039000e-01 8.250000e-02 5.032000e-01 1.001000e-01 6.313000e-01 4.200000e-02 5.443000e-01 4.810000e-02 6.187000e-01 7.040000e-02 5.802000e-01 5.800000e-03 3.000000e-01 4.560000e-02
- 1.066000e+00 4.740000e-02 8.390000e-01 3.301000e-01 6.501000e-01 2.295000e-01 8.427000e-01 3.239000e-01 6.770000e-01 1.715000e-01 7.632000e-01 4.213000e-01 5.597000e-01 1.096000e-01
- 4.445000e-01 4.328000e-01 7.354000e-01 6.306000e-01 7.351000e-01 8.423000e-01 7.142000e-01 6.597000e-01 8.077000e-01 7.814000e-01 6.867000e-01 6.933000e-01 3.992000e-01 3.965000e-01
- 1.113800e+00 -1.200000e-02 4.509000e-01 1.285400e+00 4.255000e-01 1.115600e+00 4.581000e-01 1.271400e+00 3.918000e-01 1.065600e+00 4.900000e-01 1.234000e+00 3.392000e-01 5.883000e-01
- 3.929000e-01 1.168000e-01 6.146000e-01 2.238000e-01 8.554000e-01 8.000000e-02 1.677700e+00 6.240000e-02 -6.710000e-02 7.830000e-02 3.840000e-02 -4.460000e-02 3.705000e-01 1.066000e-01
- 1.174900e+00 -7.820000e-02 5.318000e-01 1.208200e+00 4.090000e-01 8.032000e-01 6.121000e-01 1.106000e+00 4.824000e-01 6.767000e-01 5.083000e-01 1.234000e+00 3.942000e-01 4.315000e-01
- 1.112500e+00 -1.900000e-03 7.953000e-01 4.182000e-01 5.772000e-01 3.317000e-01 8.666000e-01 3.376000e-01 6.822000e-01 1.837000e-01 7.594000e-01 4.607000e-01 5.409000e-01 1.411000e-01
- 1.064300e+00 4.830000e-02 4.031000e-01 4.715000e-01 4.217000e-01 2.610000e-01 5.285000e-01 3.166000e-01 4.123000e-01 2.549000e-01 4.966000e-01 3.544000e-01 3.839000e-01 1.711000e-01
- 1.462000e-01 1.741000e-01 3.355000e-01 3.210000e-01 5.901000e-01 1.645000e-01 1.819900e+00 -1.075000e-01 4.480000e-02 -5.060000e-02 -1.540000e-02 1.900000e-02 1.997000e-01 1.640000e-01
- 1.082600e+00 2.900000e-02 5.759000e-01 1.143600e+00 3.587000e-01 1.001100e+00 3.984000e-01 1.351900e+00 3.697000e-01 9.311000e-01 4.609000e-01 1.280500e+00 3.813000e-01 4.929000e-01
- 1.749000e-01 9.337000e-01 4.971000e-01 9.799000e-01 5.158000e-01 1.106500e+00 1.858000e+00 -1.477000e-01 5.880000e-02 1.932100e+00 -9.480000e-02 1.840300e+00 2.799000e-01 5.831000e-01
- 2.320000e-02 4.472000e-01 2.880000e-02 7.578000e-01 1.640000e-02 8.930000e-01 -2.840000e-02 1.768200e+00 -4.300000e-03 5.000000e-03 1.630000e-02 -1.920000e-02 1.400000e-03 4.502000e-01
--1.890000e-02 9.049000e-01 2.733000e-01 9.240000e-01 4.054000e-01 9.117000e-01 -1.630000e-02 1.749400e+00 8.600000e-03 1.989800e+00 1.650000e-02 -1.970000e-02 1.497000e-01 5.558000e-01
- 3.017000e-01 1.810000e-02 5.904000e-01 5.250000e-02 8.312000e-01 -9.490000e-02 1.793900e+00 -7.140000e-02 2.200000e-03 -2.400000e-03 1.700000e-03 -1.600000e-03 3.347000e-01 2.090000e-02
- 3.039000e-01 3.121000e-01 6.046000e-01 3.240000e-01 8.146000e-01 2.188000e-01 1.698900e+00 4.070000e-02 -9.370000e-02 2.104700e+00 -1.610000e-02 2.060000e-02 3.003000e-01 2.485000e-01
- 1.249000e-01 9.827000e-01 6.260000e-02 1.675200e+00 8.900000e-02 9.563000e-01 1.085000e-01 1.615700e+00 5.530000e-02 9.614000e-01 3.070000e-02 1.713800e+00 7.130000e-02 6.857000e-01
- 1.155700e+00 -5.860000e-02 3.913000e-01 1.361500e+00 4.194000e-01 8.176000e-01 4.429000e-01 1.295800e+00 4.218000e-01 7.674000e-01 4.723000e-01 1.270600e+00 3.738000e-01 4.626000e-01
- 2.459000e-01 7.784000e-01 5.481000e-01 7.902000e-01 6.902000e-01 7.715000e-01 1.765200e+00 -3.940000e-02 -1.560000e-02 2.020000e+00 4.010000e-02 -4.900000e-02 3.023000e-01 4.882000e-01
- 6.220000e-01 4.951000e-01 3.017000e-01 7.115000e-01 2.143000e-01 5.816000e-01 2.724000e-01 7.436000e-01 2.240000e-01 5.504000e-01 3.288000e-01 6.809000e-01 2.659000e-01 3.523000e-01
- 3.249000e-01 2.344000e-01 5.291000e-01 3.440000e-01 5.390000e-01 4.644000e-01 6.531000e-01 1.941000e-01 5.935000e-01 4.141000e-01 5.112000e-01 3.632000e-01 3.074000e-01 1.955000e-01
- 3.186000e-01 6.189000e-01 7.353000e-01 5.008000e-01 7.807000e-01 5.874000e-01 1.759200e+00 -3.670000e-02 1.700000e-02 1.983200e+00 -3.570000e-02 4.160000e-02 3.922000e-01 3.411000e-01
- 8.110000e-02 5.730000e-01 -5.400000e-03 1.059500e+00 4.620000e-02 1.141800e+00 9.510000e-02 9.377000e-01 4.330000e-02 1.157600e+00 4.870000e-02 9.916000e-01 3.510000e-02 5.644000e-01
- 2.594000e-01 3.892000e-01 5.220000e-01 4.511000e-01 6.600000e-01 4.274000e-01 1.716700e+00 1.820000e-02 -2.340000e-02 2.023900e+00 2.910000e-02 -3.230000e-02 3.178000e-01 2.422000e-01
- 5.516000e-01 4.323000e-01 9.537000e-01 3.289000e-01 1.019900e+00 3.933000e-01 1.765300e+00 -3.410000e-02 2.026400e+00 -2.980000e-02 1.780000e-02 -2.150000e-02 5.026000e-01 2.628000e-01
- 1.111500e+00 -6.900000e-03 5.701000e-01 1.157500e+00 4.381000e-01 1.535200e+00 4.560000e-01 1.290200e+00 4.360000e-01 1.382700e+00 5.761000e-01 1.156000e+00 4.032000e-01 5.885000e-01
- 4.961000e-01 1.890000e-01 7.077000e-01 3.780000e-01 8.067000e-01 4.309000e-01 7.211000e-01 3.645000e-01 8.028000e-01 4.556000e-01 7.352000e-01 3.442000e-01 3.970000e-01 2.335000e-01
- 1.133100e+00 -3.640000e-02 4.325000e-01 4.307000e-01 3.780000e-01 3.109000e-01 4.364000e-01 4.285000e-01 3.326000e-01 3.505000e-01 4.787000e-01 3.815000e-01 3.200000e-01 2.438000e-01
- 4.649000e-01 6.439000e-01 7.775000e-01 6.826000e-01 9.982000e-01 5.638000e-01 1.757300e+00 -2.250000e-02 -1.580000e-02 2.011300e+00 4.970000e-02 1.671300e+00 4.476000e-01 4.080000e-01
- 5.782000e-01 6.300000e-03 9.617000e-01 -6.070000e-02 1.034800e+00 4.300000e-03 9.053000e-01 7.600000e-03 1.051300e+00 2.400000e-03 1.007700e+00 -1.158000e-01 5.201000e-01 7.200000e-03
- 7.918000e-01 3.077000e-01 5.134000e-01 9.919000e-01 2.700000e-01 7.473000e-01 4.521000e-01 1.058100e+00 2.535000e-01 7.352000e-01 4.208000e-01 1.096100e+00 2.795000e-01 4.604000e-01
- 5.928000e-01 5.222000e-01 1.003600e+00 4.579000e-01 1.078100e+00 5.070000e-01 1.647000e+00 9.860000e-02 2.106100e+00 -1.167000e-01 3.710000e-02 1.683300e+00 5.517000e-01 3.079000e-01
- 5.960000e-02 7.629000e-01 3.239000e-01 8.181000e-01 4.259000e-01 8.440000e-01 1.670200e+00 7.190000e-02 -2.630000e-02 2.035400e+00 9.080000e-02 -1.085000e-01 1.982000e-01 4.708000e-01
- 1.049800e+00 6.410000e-02 5.919000e-01 2.174000e-01 3.979000e-01 2.718000e-01 4.788000e-01 3.486000e-01 4.119000e-01 2.361000e-01 5.073000e-01 3.169000e-01 3.661000e-01 1.799000e-01
- 1.155500e+00 -5.990000e-02 1.190600e+00 2.981000e-01 9.963000e-01 -1.430000e-02 1.078900e+00 4.294000e-01 8.709000e-01 1.026000e-01 1.261800e+00 2.111000e-01 6.923000e-01 4.150000e-02
- 6.215000e-01 2.120000e-01 1.045100e+00 2.494000e-01 1.139400e+00 3.451000e-01 1.084900e+00 1.967000e-01 1.175900e+00 3.235000e-01 1.139200e+00 1.358000e-01 6.034000e-01 1.435000e-01
- 2.349000e-01 1.442000e-01 2.265000e-01 3.929000e-01 2.736000e-01 4.296000e-01 2.931000e-01 3.112000e-01 2.363000e-01 4.802000e-01 2.454000e-01 3.726000e-01 1.406000e-01 2.151000e-01
- 3.019000e-01 8.005000e-01 2.399000e-01 1.477400e+00 1.681000e-01 1.178700e+00 1.256000e-01 1.612900e+00 1.998000e-01 1.085000e+00 1.193000e-01 1.621700e+00 1.418000e-01 7.335000e-01
- 1.147600e+00 -4.770000e-02 6.603000e-01 5.889000e-01 4.982000e-01 4.222000e-01 6.575000e-01 5.907000e-01 5.041000e-01 3.874000e-01 5.851000e-01 6.789000e-01 4.479000e-01 2.445000e-01
- 1.101200e+00 7.300000e-03 8.426000e-01 1.042000e-01 6.891000e-01 5.540000e-02 9.469000e-01 -1.900000e-02 7.682000e-01 -6.170000e-02 8.742000e-01 6.580000e-02 5.727000e-01 2.010000e-02
--4.210000e-02 6.206000e-01 -8.900000e-03 9.080000e-01 4.440000e-02 9.645000e-01 2.560000e-02 8.678000e-01 3.390000e-02 9.927000e-01 1.381000e-01 7.345000e-01 9.100000e-03 5.054000e-01
- 3.173000e-01 1.439000e-01 4.652000e-01 2.672000e-01 4.718000e-01 3.732000e-01 4.224000e-01 3.186000e-01 5.422000e-01 2.998000e-01 4.661000e-01 2.660000e-01 2.607000e-01 1.635000e-01
- 3.098000e-01 5.266000e-01 7.139000e-01 4.210000e-01 7.526000e-01 5.123000e-01 1.844200e+00 -1.276000e-01 4.160000e-02 1.950200e+00 3.560000e-02 -4.230000e-02 3.870000e-01 2.836000e-01
- 1.113300e+00 -1.020000e-02 6.586000e-01 3.186000e-01 5.528000e-01 2.098000e-01 6.548000e-01 3.203000e-01 4.692000e-01 2.883000e-01 5.417000e-01 4.562000e-01 4.591000e-01 1.485000e-01
- 1.120500e+00 -1.250000e-02 4.273000e-01 1.305000e+00 4.001000e-01 1.569000e+00 5.607000e-01 1.152400e+00 4.132000e-01 1.340800e+00 3.841000e-01 1.354200e+00 3.303000e-01 6.559000e-01
- 6.990000e-01 3.968000e-01 1.746000e-01 6.364000e-01 2.241000e-01 4.211000e-01 3.194000e-01 4.643000e-01 2.155000e-01 4.168000e-01 4.041000e-01 3.630000e-01 2.536000e-01 2.708000e-01
- 4.087000e-01 1.144000e-01 6.518000e-01 1.959000e-01 7.540000e-01 2.240000e-01 1.739300e+00 -8.900000e-03 4.300000e-03 -5.200000e-03 -2.820000e-02 3.580000e-02 3.589000e-01 1.307000e-01
- 8.990000e-02 4.962000e-01 1.670000e-01 7.478000e-01 1.831000e-01 8.579000e-01 1.603000e-01 7.559000e-01 1.481000e-01 9.170000e-01 1.539000e-01 7.605000e-01 6.710000e-02 4.654000e-01
- 7.275000e-01 8.800000e-02 1.026300e+00 2.773000e-01 1.203800e+00 2.712000e-01 1.026200e+00 2.689000e-01 1.253600e+00 2.343000e-01 9.783000e-01 3.308000e-01 5.823000e-01 1.706000e-01
- 5.495000e-01 5.437000e-01 2.686000e-01 7.107000e-01 1.793000e-01 5.921000e-01 2.232000e-01 7.645000e-01 2.558000e-01 4.846000e-01 3.518000e-01 6.074000e-01 2.065000e-01 4.018000e-01
- 5.979000e-01 2.631000e-01 9.246000e-01 2.454000e-01 1.040700e+00 2.497000e-01 1.743200e+00 -1.210000e-02 2.035700e+00 -4.280000e-02 5.510000e-02 -6.860000e-02 5.446000e-01 1.450000e-01
- 4.053000e-01 3.193000e-01 7.128000e-01 4.065000e-01 6.600000e-01 6.450000e-01 6.435000e-01 4.922000e-01 7.326000e-01 5.784000e-01 6.610000e-01 4.686000e-01 3.683000e-01 2.864000e-01
- 3.101000e-01 7.882000e-01 2.058000e-01 6.524000e-01 1.578000e-01 5.337000e-01 1.578000e-01 7.100000e-01 1.407000e-01 5.390000e-01 1.659000e-01 7.029000e-01 1.362000e-01 4.268000e-01
- 3.448000e-01 7.733000e-01 2.226000e-01 3.745000e-01 1.856000e-01 3.102000e-01 2.002000e-01 3.992000e-01 2.583000e-01 2.151000e-01 1.775000e-01 4.266000e-01 1.738000e-01 2.538000e-01
- 1.163000e-01 6.281000e-01 6.240000e-02 1.128500e+00 1.577000e-01 1.181700e+00 8.570000e-02 1.103700e+00 1.171000e-01 1.252400e+00 2.270000e-01 9.335000e-01 7.730000e-02 6.036000e-01
- 1.841000e-01 9.089000e-01 9.620000e-02 1.631700e+00 3.060000e-02 1.153200e+00 4.420000e-02 1.694200e+00 1.440000e-02 1.136600e+00 9.730000e-02 1.630200e+00 6.780000e-02 7.479000e-01
- 2.871000e-01 4.391000e-01 5.545000e-01 5.586000e-01 5.610000e-01 7.182000e-01 6.155000e-01 4.853000e-01 6.982000e-01 5.763000e-01 5.284000e-01 5.929000e-01 3.306000e-01 3.102000e-01
- 6.266000e-01 4.869000e-01 8.659000e-01 8.900000e-01 1.030200e+00 9.553000e-01 1.955700e+00 -2.583000e-01 1.954300e+00 5.250000e-02 1.870000e-02 1.709700e+00 5.739000e-01 4.255000e-01
- 2.521000e-01 5.208000e-01 4.874000e-01 6.131000e-01 7.096000e-01 4.927000e-01 1.693000e+00 4.670000e-02 2.250000e-02 1.967700e+00 1.410000e-02 -1.790000e-02 2.880000e-01 3.549000e-01
- 1.115700e+00 -1.130000e-02 5.825000e-01 6.135000e-01 6.044000e-01 2.598000e-01 5.369000e-01 6.677000e-01 5.063000e-01 3.521000e-01 5.327000e-01 6.701000e-01 4.238000e-01 2.538000e-01
- 4.343000e-01 2.892000e-01 6.943000e-01 4.379000e-01 8.366000e-01 4.458000e-01 8.259000e-01 2.838000e-01 8.670000e-01 4.263000e-01 7.693000e-01 3.494000e-01 4.452000e-01 2.014000e-01
- 3.767000e-01 6.610000e-01 7.348000e-01 6.040000e-01 9.230000e-01 5.251000e-01 1.740300e+00 -4.500000e-03 -4.600000e-02 2.054200e+00 2.160000e-02 -2.470000e-02 4.012000e-01 3.929000e-01
- 1.776000e-01 9.447000e-01 6.292000e-01 9.101000e-01 7.055000e-01 9.575000e-01 1.797300e+00 -8.050000e-02 -8.980000e-02 2.111000e+00 -2.000000e-03 1.733600e+00 3.322000e-01 5.643000e-01
- 2.923000e-01 5.579000e-01 3.704000e-01 9.829000e-01 3.558000e-01 1.191800e+00 3.351000e-01 1.025100e+00 3.176000e-01 1.266500e+00 3.619000e-01 9.876000e-01 1.767000e-01 6.106000e-01
- 1.100500e+00 6.600000e-03 4.421000e-01 8.560000e-01 3.823000e-01 5.487000e-01 4.909000e-01 7.966000e-01 3.241000e-01 5.907000e-01 5.004000e-01 7.838000e-01 3.299000e-01 3.734000e-01
- 1.048000e+00 6.760000e-02 7.788000e-01 9.475000e-01 6.592000e-01 1.156800e+00 7.752000e-01 9.544000e-01 6.585000e-01 9.674000e-01 7.535000e-01 9.787000e-01 5.198000e-01 4.468000e-01
- 6.970000e-02 9.352000e-01 2.593000e-01 1.061000e+00 3.419000e-01 1.108000e+00 7.300000e-03 1.719100e+00 -7.600000e-03 2.004800e+00 3.520000e-02 -4.400000e-02 1.164000e-01 6.692000e-01
- 3.260000e-01 2.160000e-01 7.528000e-01 7.900000e-02 7.924000e-01 1.742000e-01 1.687000e+00 5.020000e-02 -3.940000e-02 4.670000e-02 -6.030000e-02 7.090000e-02 4.082000e-01 7.520000e-02
- 1.050000e-01 6.663000e-01 3.348000e-01 7.601000e-01 5.875000e-01 6.110000e-01 1.713200e+00 2.610000e-02 1.228000e-01 1.855500e+00 -2.320000e-02 2.860000e-02 2.201000e-01 4.189000e-01
- 1.002700e+00 1.252000e-01 6.166000e-01 4.814000e-01 4.798000e-01 3.617000e-01 7.088000e-01 3.755000e-01 5.636000e-01 2.377000e-01 6.239000e-01 4.772000e-01 4.345000e-01 2.159000e-01
- 4.496000e-01 2.169000e-01 6.392000e-01 3.630000e-01 8.200000e-01 2.899000e-01 1.770400e+00 -4.520000e-02 -1.100000e-02 2.011200e+00 1.760000e-02 -1.910000e-02 4.239000e-01 1.501000e-01
- 4.926000e-01 6.137000e-01 3.186000e-01 1.404600e+00 2.477000e-01 1.260500e+00 1.928000e-01 1.552100e+00 2.102000e-01 1.225200e+00 2.542000e-01 1.481800e+00 2.139000e-01 7.059000e-01
- 1.138700e+00 -4.270000e-02 8.879000e-01 1.301000e-01 6.693000e-01 1.269000e-01 8.105000e-01 2.219000e-01 6.306000e-01 1.497000e-01 8.711000e-01 1.517000e-01 5.312000e-01 9.750000e-02
- 9.711000e-01 1.022000e-01 1.494600e+00 2.016000e-01 1.763500e+00 1.583000e-01 1.554200e+00 1.290000e-01 1.834300e+00 1.014000e-01 1.488900e+00 2.066000e-01 8.892000e-01 8.380000e-02
- 2.105000e-01 1.522000e-01 5.753000e-01 9.360000e-02 6.696000e-01 1.234000e-01 1.763000e+00 -3.660000e-02 4.100000e-03 -4.000000e-03 -1.860000e-02 2.320000e-02 3.220000e-01 5.130000e-02
- 5.364000e-01 5.697000e-01 2.754000e-01 1.459900e+00 2.340000e-01 9.770000e-01 2.480000e-01 1.489200e+00 3.099000e-01 8.484000e-01 2.989000e-01 1.428300e+00 2.200000e-01 6.076000e-01
- 1.165300e+00 -7.410000e-02 4.147000e-01 6.831000e-01 3.322000e-01 5.073000e-01 4.404000e-01 6.515000e-01 3.882000e-01 4.203000e-01 3.910000e-01 7.064000e-01 3.222000e-01 3.256000e-01
- 5.929000e-01 4.753000e-01 7.672000e-01 9.424000e-01 8.572000e-01 1.086400e+00 7.978000e-01 8.958000e-01 9.469000e-01 1.005600e+00 7.537000e-01 9.506000e-01 4.475000e-01 5.341000e-01
- 1.982000e-01 7.611000e-01 4.901000e-01 7.844000e-01 6.065000e-01 7.851000e-01 1.734700e+00 -4.100000e-03 9.350000e-02 1.890800e+00 -3.790000e-02 4.530000e-02 2.528000e-01 5.018000e-01
- 1.546000e-01 4.171000e-01 2.119000e-01 6.868000e-01 2.017000e-01 8.355000e-01 3.120000e-01 5.704000e-01 2.865000e-01 7.473000e-01 2.101000e-01 6.932000e-01 1.401000e-01 3.778000e-01
- 5.030000e-02 4.674000e-01 7.340000e-02 7.643000e-01 2.045000e-01 7.558000e-01 -4.600000e-03 1.736500e+00 -6.460000e-02 7.550000e-02 -1.480000e-02 1.930000e-02 5.150000e-02 4.315000e-01
- 1.041000e-01 6.762000e-01 3.926000e-01 7.050000e-01 5.157000e-01 7.068000e-01 1.774500e+00 -5.130000e-02 3.810000e-02 1.958000e+00 -2.210000e-02 2.530000e-02 2.124000e-01 4.345000e-01
- 6.700000e-03 5.981000e-01 -6.650000e-02 1.033500e+00 -2.740000e-02 1.112100e+00 3.610000e-02 9.109000e-01 1.080000e-02 1.085600e+00 -6.430000e-02 1.026400e+00 6.900000e-03 5.412000e-01
- 2.601000e-01 8.426000e-01 1.748000e-01 5.536000e-01 1.488000e-01 4.436000e-01 2.177000e-01 4.987000e-01 1.135000e-01 4.778000e-01 1.067000e-01 6.321000e-01 1.217000e-01 3.789000e-01
- 7.495000e-01 3.638000e-01 3.087000e-01 7.132000e-01 2.289000e-01 5.704000e-01 4.013000e-01 5.987000e-01 4.147000e-01 3.338000e-01 3.795000e-01 6.300000e-01 2.800000e-01 3.398000e-01
- 2.536000e-01 3.032000e-01 3.890000e-01 4.836000e-01 4.285000e-01 5.635000e-01 4.099000e-01 4.558000e-01 5.144000e-01 4.786000e-01 3.665000e-01 5.107000e-01 2.354000e-01 2.655000e-01
- 1.108700e+00 -1.400000e-03 6.231000e-01 1.103400e+00 5.175000e-01 5.217000e-01 5.151000e-01 1.232300e+00 5.308000e-01 4.732000e-01 4.814000e-01 1.269600e+00 4.136000e-01 3.438000e-01
- 1.243000e-01 8.552000e-01 2.607000e-01 1.254300e+00 2.224000e-01 1.517600e+00 2.060000e-01 1.322800e+00 2.795000e-01 1.476000e+00 3.078000e-01 1.201100e+00 1.504000e-01 7.250000e-01
- 9.213000e-01 1.830000e-01 1.271100e+00 2.182000e-01 1.436000e+00 1.685000e-01 1.739100e+00 -6.500000e-03 2.118200e+00 -1.382000e-01 2.510000e-02 1.703800e+00 7.304000e-01 1.416000e-01
- 4.906000e-01 2.284000e-01 7.607000e-01 3.695000e-01 7.548000e-01 5.566000e-01 8.102000e-01 3.068000e-01 8.265000e-01 4.896000e-01 7.111000e-01 4.283000e-01 4.367000e-01 2.166000e-01
- 5.023000e-01 2.296000e-01 8.095000e-01 3.391000e-01 8.645000e-01 4.546000e-01 7.044000e-01 4.620000e-01 8.431000e-01 5.025000e-01 7.605000e-01 3.984000e-01 4.166000e-01 2.559000e-01
- 1.156500e+00 -5.760000e-02 6.427000e-01 1.085200e+00 4.490000e-01 9.378000e-01 5.651000e-01 1.172700e+00 4.125000e-01 9.192000e-01 6.713000e-01 1.048000e+00 4.359000e-01 4.478000e-01
- 3.471000e-01 4.969000e-01 5.672000e-01 6.026000e-01 6.693000e-01 6.248000e-01 1.642200e+00 1.036000e-01 2.180000e-02 1.976600e+00 -6.900000e-03 6.900000e-03 3.297000e-01 3.596000e-01
- 1.772000e-01 7.112000e-01 3.103000e-01 1.079600e+00 2.551000e-01 1.339400e+00 2.338000e-01 1.168600e+00 3.075000e-01 1.305000e+00 2.437000e-01 1.153100e+00 1.468000e-01 6.600000e-01
- 4.819000e-01 5.060000e-01 7.012000e-01 8.559000e-01 8.285000e-01 9.376000e-01 6.944000e-01 8.615000e-01 7.004000e-01 1.112700e+00 7.276000e-01 8.193000e-01 4.284000e-01 4.650000e-01
- 4.597000e-01 2.749000e-01 7.482000e-01 3.990000e-01 9.198000e-01 3.746000e-01 7.880000e-01 3.529000e-01 8.253000e-01 5.067000e-01 7.385000e-01 4.140000e-01 4.344000e-01 2.271000e-01
- 4.523000e-01 6.470000e-01 2.413000e-01 1.312200e+00 1.894000e-01 8.252000e-01 1.803000e-01 1.379300e+00 1.961000e-01 7.919000e-01 1.998000e-01 1.361800e+00 1.884000e-01 5.538000e-01
- 4.270000e-02 6.164000e-01 1.516000e-01 8.657000e-01 8.410000e-02 1.095600e+00 1.261000e-01 8.992000e-01 1.549000e-01 1.029100e+00 7.630000e-02 9.625000e-01 3.020000e-02 5.699000e-01
- 4.810000e-02 6.301000e-01 3.641000e-01 6.274000e-01 4.213000e-01 6.975000e-01 4.650000e-02 1.677500e+00 -2.970000e-02 2.037900e+00 1.500000e-03 -2.200000e-03 1.792000e-01 4.041000e-01
--5.410000e-02 8.424000e-01 2.830000e-01 8.134000e-01 4.024000e-01 8.135000e-01 6.600000e-03 1.724300e+00 -8.130000e-02 2.099400e+00 -3.590000e-02 4.370000e-02 1.669000e-01 4.733000e-01
- 1.492000e-01 9.433000e-01 4.581000e-01 1.263300e+00 4.340000e-01 1.517700e+00 1.692600e+00 4.630000e-02 -5.270000e-02 2.056400e+00 -1.043000e-01 1.855000e+00 2.145000e-01 7.789000e-01
- 5.950000e-01 5.037000e-01 8.418000e-01 6.593000e-01 1.035600e+00 5.684000e-01 1.736200e+00 -4.000000e-03 1.998700e+00 2.900000e-03 7.450000e-02 1.641700e+00 5.081000e-01 3.627000e-01
- 1.041200e+00 7.690000e-02 3.429000e-01 5.131000e-01 4.083000e-01 2.563000e-01 4.457000e-01 3.872000e-01 3.686000e-01 2.875000e-01 4.201000e-01 4.196000e-01 3.165000e-01 2.346000e-01
- 5.750000e-01 9.830000e-02 7.359000e-01 3.524000e-01 9.226000e-01 3.027000e-01 7.922000e-01 2.849000e-01 9.758000e-01 2.588000e-01 8.202000e-01 2.514000e-01 4.557000e-01 1.661000e-01
- 2.356000e-01 2.608000e-01 3.491000e-01 4.312000e-01 5.015000e-01 3.656000e-01 3.259000e-01 4.589000e-01 3.623000e-01 5.480000e-01 3.415000e-01 4.391000e-01 2.121000e-01 2.362000e-01
--4.400000e-03 5.750000e-02 2.999000e-01 5.590000e-02 3.436000e-01 1.495000e-01 6.220000e-02 -7.260000e-02 3.770000e-02 -4.620000e-02 -1.930000e-02 2.460000e-02 1.388000e-01 5.610000e-02
- 3.853000e-01 2.266000e-01 6.398000e-01 2.940000e-01 7.465000e-01 3.086000e-01 1.889800e+00 -1.804000e-01 2.080000e-02 1.977300e+00 -1.660000e-02 1.840000e-02 3.421000e-01 2.053000e-01
- 5.732000e-01 9.820000e-02 9.495000e-01 2.150000e-02 1.010600e+00 9.040000e-02 1.689700e+00 5.020000e-02 1.855100e+00 1.663000e-01 -1.440000e-02 1.560000e-02 5.282000e-01 4.370000e-02
- 5.975000e-01 9.590000e-02 8.709000e-01 2.277000e-01 9.448000e-01 3.096000e-01 8.984000e-01 1.909000e-01 1.040400e+00 2.144000e-01 8.695000e-01 2.280000e-01 4.989000e-01 1.341000e-01
- 1.161700e+00 -6.800000e-02 5.103000e-01 1.213400e+00 4.322000e-01 6.767000e-01 5.040000e-01 1.219600e+00 3.956000e-01 6.859000e-01 5.204000e-01 1.201400e+00 3.472000e-01 4.431000e-01
- 1.021700e+00 9.880000e-02 4.318000e-01 4.948000e-01 3.271000e-01 4.096000e-01 4.788000e-01 4.344000e-01 3.361000e-01 3.875000e-01 4.107000e-01 5.175000e-01 3.394000e-01 2.462000e-01
- 9.910000e-02 6.097000e-01 1.928000e-01 9.126000e-01 2.849000e-01 9.650000e-01 1.819000e-01 9.313000e-01 2.587000e-01 1.014800e+00 2.217000e-01 8.827000e-01 1.360000e-01 4.989000e-01
- 4.196000e-01 4.070000e-01 8.509000e-01 2.705000e-01 8.090000e-01 4.584000e-01 1.633500e+00 1.120000e-01 -6.650000e-02 2.080700e+00 1.660000e-02 -1.950000e-02 4.122000e-01 2.621000e-01
- 6.442000e-01 4.657000e-01 2.805000e-01 9.211000e-01 3.062000e-01 5.754000e-01 3.203000e-01 8.736000e-01 3.428000e-01 5.107000e-01 2.195000e-01 9.937000e-01 2.591000e-01 4.182000e-01
- 1.083000e-01 3.704000e-01 2.198000e-01 5.239000e-01 1.973000e-01 6.579000e-01 1.038000e-01 6.641000e-01 2.724000e-01 5.815000e-01 2.600000e-01 4.734000e-01 9.710000e-02 3.372000e-01
- 1.143400e+00 -4.700000e-02 6.394000e-01 1.084000e+00 5.072000e-01 8.219000e-01 7.274000e-01 9.770000e-01 4.117000e-01 8.792000e-01 6.133000e-01 1.115600e+00 4.261000e-01 4.439000e-01
- 4.894000e-01 2.322000e-01 9.444000e-01 1.599000e-01 1.136500e+00 1.100000e-01 9.970000e-01 9.400000e-02 1.083900e+00 1.925000e-01 9.986000e-01 9.700000e-02 5.573000e-01 7.900000e-02
- 6.940000e-02 4.496000e-01 3.861000e-01 4.431000e-01 5.083000e-01 4.420000e-01 1.722500e+00 8.000000e-03 -2.180000e-02 2.580000e-02 -1.260000e-02 1.530000e-02 2.012000e-01 2.778000e-01
- 4.709000e-01 1.637000e-01 7.540000e-01 2.368000e-01 9.168000e-01 1.987000e-01 7.055000e-01 2.919000e-01 8.799000e-01 2.597000e-01 6.879000e-01 3.119000e-01 4.364000e-01 1.345000e-01
- 3.695000e-01 7.475000e-01 7.178000e-01 7.092000e-01 8.749000e-01 6.676000e-01 1.720000e+00 6.400000e-03 -9.800000e-03 2.015000e+00 5.230000e-02 1.671600e+00 4.293000e-01 4.062000e-01
- 2.833000e-01 6.929000e-01 3.343000e-01 1.207300e+00 4.848000e-01 1.259600e+00 4.201000e-01 1.108400e+00 4.528000e-01 1.313000e+00 3.483000e-01 1.200200e+00 2.231000e-01 6.640000e-01
- 3.249000e-01 2.663000e-01 2.135000e-01 8.380000e-02 2.176000e-01 3.230000e-02 1.633000e-01 1.440000e-01 1.643000e-01 8.870000e-02 2.186000e-01 7.850000e-02 1.557000e-01 8.340000e-02
- 2.509000e-01 4.415000e-01 3.253000e-01 7.774000e-01 3.237000e-01 9.379000e-01 2.093000e-01 9.146000e-01 3.470000e-01 9.313000e-01 2.318000e-01 8.854000e-01 1.571000e-01 4.836000e-01
- 4.089000e-01 3.129000e-01 5.581000e-01 5.068000e-01 8.138000e-01 3.462000e-01 1.677900e+00 6.840000e-02 2.080000e-02 1.974000e+00 -2.290000e-02 2.710000e-02 3.926000e-01 2.173000e-01
- 6.643000e-01 4.440000e-01 4.709000e-01 3.021000e-01 3.044000e-01 3.373000e-01 3.318000e-01 4.683000e-01 2.892000e-01 3.421000e-01 3.202000e-01 4.828000e-01 2.603000e-01 2.726000e-01
- 1.089800e+00 1.820000e-02 4.522000e-01 1.280700e+00 2.793000e-01 9.139000e-01 4.674000e-01 1.263400e+00 4.811000e-01 6.379000e-01 5.040000e-01 1.218100e+00 3.527000e-01 4.602000e-01
- 7.746000e-01 2.773000e-01 1.262500e+00 3.768000e-01 1.368200e+00 5.105000e-01 1.176300e+00 4.776000e-01 1.362200e+00 5.502000e-01 1.244100e+00 4.004000e-01 7.037000e-01 2.478000e-01
- 1.214400e+00 -1.345000e-01 5.728000e-01 8.045000e-01 4.732000e-01 4.932000e-01 5.432000e-01 8.459000e-01 4.365000e-01 5.079000e-01 6.445000e-01 7.233000e-01 4.171000e-01 3.019000e-01
- 1.020300e+00 1.023000e-01 1.339900e+00 3.863000e-01 8.918000e-01 4.010000e-01 1.400000e+00 3.113000e-01 9.264000e-01 3.066000e-01 1.256800e+00 4.880000e-01 7.044000e-01 1.491000e-01
--8.000000e-04 8.211000e-01 2.361000e-01 9.075000e-01 3.880000e-01 8.679000e-01 -2.060000e-02 1.757600e+00 -1.680000e-02 2.020600e+00 -5.400000e-02 6.580000e-02 1.555000e-01 5.119000e-01
- 8.590000e-02 5.093000e-01 1.094000e-01 8.284000e-01 1.888000e-01 8.672000e-01 2.009000e-01 7.242000e-01 3.171000e-01 7.291000e-01 2.109000e-01 7.078000e-01 1.055000e-01 4.283000e-01
- 5.585000e-01 4.104000e-01 9.091000e-01 6.040000e-01 9.648000e-01 7.640000e-01 8.639000e-01 6.560000e-01 9.755000e-01 7.808000e-01 9.222000e-01 5.776000e-01 4.978000e-01 3.786000e-01
- 6.952000e-01 9.790000e-02 1.119200e+00 1.273000e-01 1.299400e+00 1.131000e-01 1.206300e+00 2.280000e-02 1.367300e+00 5.920000e-02 1.061200e+00 1.961000e-01 6.713000e-01 4.250000e-02
--2.900000e-02 6.100000e-01 1.768000e-01 7.117000e-01 2.572000e-01 7.548000e-01 -4.300000e-02 1.783800e+00 -1.134000e-01 2.131000e+00 2.780000e-02 -3.580000e-02 9.120000e-02 4.239000e-01
- 6.690000e-02 1.033000e+00 5.470000e-02 4.185000e-01 6.780000e-02 3.254000e-01 1.660000e-02 4.632000e-01 3.370000e-02 3.636000e-01 6.200000e-03 4.806000e-01 1.390000e-02 3.445000e-01
- 4.392000e-01 1.730000e-01 7.467000e-01 1.972000e-01 7.673000e-01 3.279000e-01 8.360000e-01 9.120000e-02 8.220000e-01 2.830000e-01 7.616000e-01 1.845000e-01 4.333000e-01 1.134000e-01
- 1.127900e+00 -2.750000e-02 1.157800e+00 5.609000e-01 8.199000e-01 7.000000e-01 1.071100e+00 6.639000e-01 8.206000e-01 6.127000e-01 1.003100e+00 7.467000e-01 6.514000e-01 2.694000e-01
- 8.172000e-01 2.907000e-01 3.781000e-01 1.356400e+00 3.831000e-01 1.575800e+00 5.063000e-01 1.203100e+00 3.232000e-01 1.481600e+00 5.606000e-01 1.139900e+00 2.864000e-01 7.047000e-01
- 3.522000e-01 3.816000e-01 6.513000e-01 4.030000e-01 8.796000e-01 2.741000e-01 1.853000e+00 -1.437000e-01 2.020000e-02 1.981500e+00 4.100000e-02 -4.790000e-02 4.054000e-01 2.034000e-01
- 6.243000e-01 3.136000e-01 9.404000e-01 5.338000e-01 1.054800e+00 6.177000e-01 1.003000e+00 4.583000e-01 1.125700e+00 5.655000e-01 8.917000e-01 5.895000e-01 5.389000e-01 3.107000e-01
- 1.032000e-01 2.145000e-01 2.228000e-01 2.618000e-01 2.334000e-01 3.197000e-01 2.795000e-01 1.928000e-01 2.514000e-01 3.102000e-01 2.510000e-01 2.285000e-01 1.353000e-01 1.438000e-01
- 9.120000e-02 4.763000e-01 8.260000e-02 8.195000e-01 1.323000e-01 8.828000e-01 1.208000e-01 7.711000e-01 1.502000e-01 8.749000e-01 8.230000e-02 8.164000e-01 4.590000e-02 4.733000e-01
- 8.400000e-03 5.233000e-01 3.114000e-01 5.303000e-01 3.548000e-01 6.212000e-01 -7.810000e-02 1.824600e+00 -1.500000e-02 1.630000e-02 1.900000e-02 -2.190000e-02 1.548000e-01 3.324000e-01
- 3.621000e-01 3.948000e-01 5.814000e-01 5.091000e-01 7.371000e-01 4.622000e-01 1.827200e+00 -1.137000e-01 2.880000e-02 1.964000e+00 -9.400000e-03 1.210000e-02 3.026000e-01 3.417000e-01
- 3.580000e-01 2.763000e-01 4.854000e-01 5.267000e-01 6.305000e-01 5.067000e-01 6.041000e-01 3.864000e-01 6.265000e-01 5.287000e-01 5.911000e-01 4.011000e-01 3.291000e-01 2.458000e-01
- 3.187000e-01 7.551000e-01 4.209000e-01 1.268700e+00 6.258000e-01 1.271600e+00 6.451000e-01 1.001000e+00 5.475000e-01 1.395100e+00 5.579000e-01 1.113300e+00 3.066000e-01 6.586000e-01
- 1.185000e-01 7.796000e-01 2.708000e-01 1.118500e+00 3.414000e-01 1.232300e+00 2.990000e-01 1.083900e+00 4.309000e-01 1.150900e+00 3.358000e-01 1.039400e+00 1.932000e-01 6.014000e-01
- 1.116200e+00 -1.300000e-02 5.206000e-01 2.610000e-02 4.651000e-01 -1.630000e-02 5.007000e-01 4.660000e-02 4.346000e-01 1.190000e-02 4.827000e-01 6.850000e-02 3.726000e-01 2.650000e-02
- 8.306000e-01 9.530000e-02 1.104800e+00 3.818000e-01 1.345200e+00 3.360000e-01 1.102500e+00 3.846000e-01 1.274300e+00 4.425000e-01 1.127500e+00 3.547000e-01 6.521000e-01 2.045000e-01
- 1.156300e+00 -6.370000e-02 9.582000e-01 7.839000e-01 8.017000e-01 5.624000e-01 1.087200e+00 6.377000e-01 7.981000e-01 5.080000e-01 9.966000e-01 7.431000e-01 6.323000e-01 2.479000e-01
- 1.113700e+00 -1.060000e-02 5.751000e-01 8.128000e-01 5.425000e-01 4.148000e-01 5.360000e-01 8.606000e-01 6.221000e-01 2.954000e-01 6.010000e-01 7.833000e-01 4.364000e-01 2.829000e-01
--7.000000e-04 1.000200e+00 6.240000e-02 1.491200e+00 3.840000e-02 1.734700e+00 1.108000e-01 1.435400e+00 1.197000e-01 1.670000e+00 -2.700000e-03 1.567500e+00 3.070000e-02 8.685000e-01
- 1.240000e-01 9.872000e-01 1.695000e-01 5.126000e-01 1.271000e-01 4.343000e-01 1.380000e-02 6.953000e-01 2.270000e-02 5.462000e-01 1.374000e-01 5.482000e-01 7.740000e-02 4.041000e-01
- 4.141000e-01 6.719000e-01 2.314000e-01 1.497700e+00 2.280000e-01 9.137000e-01 2.178000e-01 1.504500e+00 1.092000e-01 1.019000e+00 1.247000e-01 1.614500e+00 1.445000e-01 6.616000e-01
- 6.177000e-01 1.427000e-01 9.623000e-01 1.017000e-01 1.103000e+00 7.800000e-02 1.600300e+00 1.562000e-01 1.871500e+00 1.531000e-01 2.210000e-02 -2.600000e-02 5.527000e-01 7.560000e-02
- 1.059300e+00 5.470000e-02 9.245000e-01 3.887000e-01 7.576000e-01 1.769000e-01 9.578000e-01 3.412000e-01 7.952000e-01 1.095000e-01 1.041500e+00 2.450000e-01 6.124000e-01 9.040000e-02
- 9.449000e-01 1.353000e-01 3.213000e-01 1.421500e+00 3.429000e-01 7.263000e-01 3.767000e-01 1.351400e+00 3.432000e-01 6.875000e-01 3.776000e-01 1.354700e+00 2.832000e-01 4.873000e-01
- 6.301000e-01 4.748000e-01 4.008000e-01 9.958000e-01 2.741000e-01 6.979000e-01 3.320000e-01 1.073400e+00 3.438000e-01 5.908000e-01 3.196000e-01 1.086800e+00 2.474000e-01 4.766000e-01
- 1.978000e-01 9.140000e-01 1.938000e-01 4.248000e-01 6.020000e-02 4.722000e-01 9.960000e-02 5.354000e-01 7.210000e-02 4.447000e-01 1.717000e-01 4.529000e-01 1.206000e-01 3.249000e-01
- 2.309000e-01 2.064000e-01 6.680000e-01 5.680000e-02 6.932000e-01 1.725000e-01 1.859700e+00 -1.525000e-01 -3.130000e-02 3.630000e-02 5.910000e-02 -7.020000e-02 3.368000e-01 8.280000e-02
- 2.211000e-01 7.943000e-01 6.555000e-01 6.537000e-01 6.771000e-01 7.673000e-01 1.808700e+00 -8.840000e-02 7.200000e-03 1.994200e+00 -1.680000e-02 1.970000e-02 3.111000e-01 4.701000e-01
- 2.125000e-01 6.560000e-01 4.932000e-01 6.953000e-01 6.084000e-01 6.982000e-01 1.701900e+00 3.800000e-02 -5.100000e-02 2.060000e+00 -4.300000e-03 2.300000e-03 2.587000e-01 4.444000e-01
- 5.390000e-02 1.055300e+00 1.167000e-01 5.124000e-01 -7.110000e-02 6.230000e-01 1.115000e-01 5.170000e-01 3.800000e-02 4.834000e-01 6.440000e-02 5.757000e-01 3.960000e-02 4.136000e-01
- 2.916000e-01 2.618000e-01 3.233000e-01 5.671000e-01 5.434000e-01 4.386000e-01 4.561000e-01 4.079000e-01 4.168000e-01 6.065000e-01 3.949000e-01 4.845000e-01 2.435000e-01 2.603000e-01
- 3.046000e-01 1.198000e-01 5.786000e-01 1.665000e-01 7.735000e-01 8.260000e-02 1.760100e+00 -3.140000e-02 2.880000e-02 -3.630000e-02 -2.370000e-02 2.720000e-02 3.292000e-01 9.370000e-02
- 1.812000e-01 5.192000e-01 4.632000e-01 5.597000e-01 6.344000e-01 4.976000e-01 1.709800e+00 2.520000e-02 -7.980000e-02 2.089700e+00 -4.440000e-02 5.320000e-02 2.372000e-01 3.645000e-01
- 3.179000e-01 4.891000e-01 7.155000e-01 3.883000e-01 7.770000e-01 4.547000e-01 1.566300e+00 1.949000e-01 5.830000e-02 1.927600e+00 3.480000e-02 -4.360000e-02 3.791000e-01 2.744000e-01
- 1.477000e-01 4.547000e-01 2.569000e-01 6.831000e-01 2.450000e-01 8.360000e-01 3.765000e-01 5.412000e-01 2.740000e-01 8.186000e-01 1.857000e-01 7.708000e-01 1.411000e-01 4.037000e-01
- 2.131000e-01 6.178000e-01 6.259000e-01 4.974000e-01 7.543000e-01 4.947000e-01 1.708600e+00 2.940000e-02 4.010000e-02 1.945600e+00 2.130000e-02 -2.470000e-02 3.206000e-01 3.490000e-01
- 1.050800e+00 6.520000e-02 4.232000e-01 8.030000e-02 3.003000e-01 1.362000e-01 3.865000e-01 1.220000e-01 3.645000e-01 4.690000e-02 4.060000e-01 9.850000e-02 3.132000e-01 6.030000e-02
- 2.090000e-02 7.060000e-01 2.470000e-01 8.011000e-01 3.740000e-01 7.966000e-01 -3.690000e-02 1.777300e+00 4.610000e-02 1.946200e+00 -2.460000e-02 2.910000e-02 1.503000e-01 4.630000e-01
- 4.137000e-01 2.892000e-01 4.493000e-01 6.976000e-01 7.307000e-01 5.271000e-01 5.331000e-01 5.940000e-01 5.688000e-01 7.422000e-01 5.595000e-01 5.605000e-01 3.348000e-01 3.115000e-01
- 5.298000e-01 6.420000e-02 6.824000e-01 2.788000e-01 7.870000e-01 3.054000e-01 6.489000e-01 3.206000e-01 8.537000e-01 2.453000e-01 7.167000e-01 2.387000e-01 4.121000e-01 1.402000e-01
- 4.221000e-01 3.664000e-01 7.573000e-01 4.597000e-01 8.641000e-01 5.222000e-01 7.522000e-01 4.671000e-01 8.513000e-01 5.595000e-01 7.478000e-01 4.688000e-01 4.424000e-01 2.608000e-01
- 4.622000e-01 1.290000e-01 7.078000e-01 2.222000e-01 7.751000e-01 2.817000e-01 7.012000e-01 2.305000e-01 8.362000e-01 2.308000e-01 6.095000e-01 3.373000e-01 3.959000e-01 1.415000e-01
- 6.361000e-01 8.160000e-02 9.489000e-01 1.881000e-01 1.033400e+00 2.630000e-01 9.601000e-01 1.715000e-01 1.003700e+00 3.191000e-01 1.146200e+00 -4.830000e-02 5.663000e-01 8.560000e-02
- 2.930000e-01 5.022000e-01 7.152000e-01 3.739000e-01 7.363000e-01 4.900000e-01 1.759500e+00 -3.130000e-02 -6.460000e-02 2.074000e+00 4.020000e-02 -4.750000e-02 3.524000e-01 2.979000e-01
- 4.311000e-01 1.810000e-01 8.205000e-01 9.240000e-02 1.006300e+00 1.160000e-02 1.695800e+00 3.640000e-02 -8.400000e-03 2.010900e+00 -5.130000e-02 6.280000e-02 4.713000e-01 5.760000e-02
- 3.465000e-01 1.600000e-01 6.633000e-01 1.569000e-01 7.640000e-01 1.793000e-01 1.622700e+00 1.281000e-01 1.860000e-02 -2.340000e-02 -2.300000e-03 2.000000e-03 3.697000e-01 1.015000e-01
- 9.872000e-01 -1.126000e-01 1.332000e+00 7.640000e-02 1.548500e+00 5.010000e-02 1.269100e+00 1.510000e-01 1.585700e+00 2.980000e-02 1.368100e+00 3.380000e-02 7.755000e-01 3.590000e-02
- 2.610000e-01 7.540000e-01 6.275000e-01 6.880000e-01 6.739000e-01 7.751000e-01 1.638600e+00 1.087000e-01 5.130000e-02 1.938700e+00 4.940000e-02 -5.850000e-02 3.284000e-01 4.529000e-01
- 2.109000e-01 6.045000e-01 2.995000e-01 9.821000e-01 5.221000e-01 9.051000e-01 3.581000e-01 9.091000e-01 4.162000e-01 1.046800e+00 3.561000e-01 9.154000e-01 1.993000e-01 5.354000e-01
- 5.272000e-01 1.323000e-01 1.047100e+00 -1.195000e-01 1.095700e+00 -3.110000e-02 1.817900e+00 -1.026000e-01 1.931500e+00 7.750000e-02 6.700000e-03 -8.200000e-03 5.379000e-01 1.850000e-02
- 2.795000e-01 5.918000e-01 4.382000e-01 9.261000e-01 5.119000e-01 1.035300e+00 4.693000e-01 8.914000e-01 5.577000e-01 1.006300e+00 3.827000e-01 9.897000e-01 2.396000e-01 5.500000e-01
- 7.918000e-01 -6.760000e-02 9.720000e-01 9.020000e-02 1.069100e+00 1.199000e-01 1.781500e+00 -5.860000e-02 1.962800e+00 4.390000e-02 2.400000e-02 -2.710000e-02 5.785000e-01 4.470000e-02
- 1.210900e+00 -1.261000e-01 5.953000e-01 1.149400e+00 5.685000e-01 9.512000e-01 6.746000e-01 1.050000e+00 5.015000e-01 9.448000e-01 6.418000e-01 1.093700e+00 4.564000e-01 4.655000e-01
- 4.166000e-01 -2.610000e-02 7.158000e-01 -8.600000e-03 8.091000e-01 2.500000e-02 1.774000e+00 -4.670000e-02 -6.200000e-03 6.800000e-03 -6.670000e-02 7.770000e-02 3.702000e-01 3.560000e-02
- 1.066400e+00 4.440000e-02 3.890000e-01 1.361000e+00 4.381000e-01 6.264000e-01 5.386000e-01 1.188200e+00 4.047000e-01 6.327000e-01 3.706000e-01 1.379200e+00 3.626000e-01 4.052000e-01
- 3.560000e-01 5.282000e-01 6.139000e-01 5.976000e-01 7.348000e-01 5.920000e-01 1.600500e+00 1.565000e-01 -3.680000e-02 2.045900e+00 2.100000e-03 -9.000000e-04 3.704000e-01 3.378000e-01
- 2.368000e-01 4.550000e-01 4.686000e-01 5.905000e-01 5.762000e-01 6.224000e-01 4.614000e-01 5.998000e-01 5.424000e-01 6.833000e-01 5.509000e-01 4.959000e-01 2.914000e-01 3.168000e-01
- 1.412000e-01 5.766000e-01 2.682000e-01 7.994000e-01 4.284000e-01 7.535000e-01 2.010000e-02 1.708900e+00 -5.190000e-02 2.063600e+00 -2.990000e-02 3.540000e-02 1.924000e-01 4.226000e-01
- 4.028000e-01 3.229000e-01 5.538000e-01 5.916000e-01 6.593000e-01 6.407000e-01 5.754000e-01 5.726000e-01 6.679000e-01 6.512000e-01 4.964000e-01 6.656000e-01 3.227000e-01 3.403000e-01
- 1.014100e+00 1.139000e-01 6.173000e-01 1.123200e+00 5.625000e-01 5.521000e-01 7.679000e-01 9.384000e-01 5.604000e-01 5.170000e-01 5.513000e-01 1.193400e+00 4.537000e-01 3.371000e-01
- 2.231000e-01 2.160000e-01 3.652000e-01 3.177000e-01 3.538000e-01 4.355000e-01 3.714000e-01 3.082000e-01 3.945000e-01 4.011000e-01 3.866000e-01 2.949000e-01 2.034000e-01 1.923000e-01
- 3.449000e-01 7.698000e-01 2.342000e-01 1.963000e-01 1.374000e-01 2.406000e-01 2.404000e-01 1.906000e-01 1.173000e-01 2.574000e-01 2.592000e-01 1.675000e-01 1.858000e-01 1.419000e-01
- 3.156000e-01 1.832000e-01 3.843000e-01 4.186000e-01 5.150000e-01 3.846000e-01 4.053000e-01 3.939000e-01 4.708000e-01 4.471000e-01 4.462000e-01 3.420000e-01 2.460000e-01 2.126000e-01
- 6.092000e-01 1.414000e-01 8.663000e-01 3.277000e-01 8.921000e-01 4.823000e-01 8.205000e-01 3.809000e-01 1.009700e+00 3.674000e-01 9.123000e-01 2.730000e-01 5.124000e-01 1.745000e-01
- 8.463000e-01 1.475000e-01 1.383300e+00 1.659000e-01 1.409400e+00 3.871000e-01 1.236000e+00 3.424000e-01 1.439400e+00 3.775000e-01 1.240400e+00 3.315000e-01 7.584000e-01 1.434000e-01
- 1.186000e-01 5.166000e-01 2.754000e-01 7.017000e-01 3.716000e-01 7.266000e-01 1.927000e-01 8.017000e-01 2.624000e-01 8.739000e-01 3.585000e-01 6.027000e-01 1.595000e-01 4.034000e-01
--7.150000e-02 1.194100e+00 1.877000e-01 1.441100e+00 3.201000e-01 1.431200e+00 4.790000e-02 1.673200e+00 -5.740000e-02 2.074100e+00 1.340000e-02 1.714800e+00 9.210000e-02 8.434000e-01
- 1.061600e+00 5.140000e-02 8.015000e-01 9.388000e-01 6.061000e-01 6.110000e-01 9.143000e-01 7.975000e-01 6.790000e-01 4.857000e-01 7.059000e-01 1.043000e+00 5.455000e-01 2.809000e-01
- 7.813000e-01 2.707000e-01 1.166100e+00 1.809000e-01 1.340200e+00 1.161000e-01 1.784300e+00 -6.440000e-02 2.014600e+00 -1.000000e-02 4.940000e-02 -5.860000e-02 6.698000e-01 1.289000e-01
--2.000000e-02 8.819000e-01 2.728000e-01 8.867000e-01 2.715000e-01 1.033800e+00 1.349000e-01 1.575400e+00 2.450000e-02 1.974500e+00 2.900000e-02 -3.400000e-02 1.103000e-01 5.812000e-01
- 1.124500e+00 -2.180000e-02 4.186000e-01 1.652000e-01 3.845000e-01 9.650000e-02 4.261000e-01 1.539000e-01 3.543000e-01 1.256000e-01 4.996000e-01 6.970000e-02 3.512000e-01 6.390000e-02
--6.500000e-03 7.993000e-01 3.267000e-01 7.767000e-01 4.522000e-01 7.680000e-01 -2.820000e-02 1.766800e+00 4.970000e-02 1.942100e+00 -5.330000e-02 6.490000e-02 1.645000e-01 4.867000e-01
- 6.900000e-02 7.249000e-01 9.240000e-02 1.152900e+00 4.710000e-02 1.384400e+00 6.110000e-02 1.191900e+00 4.000000e-02 1.400800e+00 1.907000e-01 1.034100e+00 6.170000e-02 6.550000e-01
- 1.428000e-01 5.786000e-01 4.101000e-01 6.276000e-01 4.227000e-01 7.570000e-01 1.796700e+00 -7.820000e-02 1.590000e-02 1.975800e+00 3.080000e-02 -3.800000e-02 2.194000e-01 3.917000e-01
- 4.230000e-01 6.180000e-01 6.667000e-01 9.600000e-01 8.423000e-01 9.991000e-01 6.821000e-01 9.383000e-01 7.610000e-01 1.118300e+00 6.837000e-01 9.371000e-01 3.987000e-01 5.377000e-01
- 1.123200e+00 -1.980000e-02 4.842000e-01 1.256400e+00 4.733000e-01 5.613000e-01 6.713000e-01 1.041900e+00 4.869000e-01 5.181000e-01 6.174000e-01 1.101800e+00 3.947000e-01 3.597000e-01
- 3.235000e-01 4.008000e-01 6.078000e-01 4.450000e-01 7.643000e-01 3.984000e-01 1.743500e+00 -1.240000e-02 7.710000e-02 1.904800e+00 -4.670000e-02 5.660000e-02 3.336000e-01 2.813000e-01
- 8.635000e-01 2.416000e-01 3.268000e-01 7.437000e-01 3.194000e-01 4.958000e-01 4.484000e-01 5.974000e-01 3.312000e-01 4.618000e-01 3.342000e-01 7.332000e-01 2.896000e-01 3.473000e-01
- 3.989000e-01 3.064000e-01 7.602000e-01 3.139000e-01 7.549000e-01 4.913000e-01 6.895000e-01 3.998000e-01 6.527000e-01 6.348000e-01 6.298000e-01 4.730000e-01 3.961000e-01 2.339000e-01
--5.620000e-02 6.196000e-01 6.960000e-02 8.052000e-01 1.929000e-01 8.025000e-01 2.680000e-02 1.702400e+00 5.080000e-02 1.938200e+00 3.790000e-02 -4.510000e-02 7.300000e-02 4.286000e-01
- 7.670000e-02 5.532000e-01 3.697000e-01 5.783000e-01 5.229000e-01 5.426000e-01 1.730300e+00 2.500000e-03 -5.700000e-03 2.006900e+00 4.780000e-02 -5.690000e-02 2.083000e-01 3.421000e-01
- 1.222200e+00 -1.385000e-01 5.873000e-01 1.141900e+00 4.907000e-01 8.950000e-01 4.724000e-01 1.276000e+00 4.236000e-01 9.068000e-01 5.406000e-01 1.195200e+00 4.016000e-01 4.845000e-01
- 2.563000e-01 6.222000e-01 3.700000e-01 1.011000e+00 4.776000e-01 1.086300e+00 4.206000e-01 9.524000e-01 4.446000e-01 1.143800e+00 3.690000e-01 1.014000e+00 2.464000e-01 5.458000e-01
- 1.840000e-01 6.729000e-01 4.951000e-01 6.792000e-01 5.736000e-01 7.248000e-01 1.651000e+00 9.460000e-02 -1.130000e-02 2.015000e+00 1.500000e-03 -2.300000e-03 2.611000e-01 4.318000e-01
- 1.102100e+00 3.900000e-03 1.025300e+00 7.218000e-01 8.517000e-01 8.106000e-01 1.152900e+00 5.722000e-01 9.200000e-01 6.121000e-01 1.224200e+00 4.924000e-01 6.570000e-01 2.914000e-01
- 4.650000e-01 1.452000e-01 7.837000e-01 1.378000e-01 9.267000e-01 1.065000e-01 1.763500e+00 -3.920000e-02 1.258000e-01 1.849400e+00 -1.710000e-02 2.010000e-02 4.704000e-01 5.990000e-02
- 1.125400e+00 -1.860000e-02 4.118000e-01 1.341000e+00 5.358000e-01 4.982000e-01 5.828000e-01 1.137600e+00 4.601000e-01 5.488000e-01 5.933000e-01 1.129500e+00 3.844000e-01 3.734000e-01
- 1.075400e+00 3.380000e-02 7.599000e-01 9.807000e-01 6.185000e-01 7.503000e-01 8.009000e-01 9.346000e-01 6.739000e-01 6.285000e-01 8.539000e-01 8.723000e-01 5.453000e-01 3.332000e-01
- 3.525000e-01 3.345000e-01 5.116000e-01 5.722000e-01 5.640000e-01 6.692000e-01 4.808000e-01 6.056000e-01 5.902000e-01 6.561000e-01 5.130000e-01 5.635000e-01 3.051000e-01 3.173000e-01
- 5.190000e-01 5.924000e-01 8.648000e-01 7.441000e-01 1.038200e+00 6.802000e-01 1.758000e+00 -3.610000e-02 1.986400e+00 1.070000e-02 -4.070000e-02 1.777700e+00 5.055000e-01 4.177000e-01
- 5.158000e-01 1.822000e-01 8.558000e-01 1.480000e-01 9.620000e-01 1.680000e-01 1.790400e+00 -7.240000e-02 -3.050000e-02 2.032800e+00 7.580000e-02 -9.170000e-02 4.772000e-01 1.143000e-01
- 5.610000e-01 2.925000e-01 7.260000e-01 4.631000e-01 9.444000e-01 3.525000e-01 1.723300e+00 7.400000e-03 3.060000e-02 1.958500e+00 3.750000e-02 -4.560000e-02 4.457000e-01 2.517000e-01
- 5.050000e-01 6.070000e-01 8.627000e-01 8.609000e-01 8.843000e-01 1.080400e+00 1.662900e+00 7.810000e-02 9.900000e-02 1.886300e+00 -5.900000e-02 1.799200e+00 4.807000e-01 5.152000e-01
- 4.083000e-01 6.277000e-01 5.078000e-01 1.137300e+00 5.682000e-01 1.305400e+00 6.229000e-01 1.002100e+00 6.980000e-01 1.180200e+00 6.487000e-01 9.710000e-01 3.243000e-01 6.188000e-01
- 5.610000e-01 1.063000e-01 7.032000e-01 3.773000e-01 7.404000e-01 4.993000e-01 7.263000e-01 3.493000e-01 8.452000e-01 3.924000e-01 6.268000e-01 4.698000e-01 4.199000e-01 2.013000e-01
--4.600000e-03 4.540000e-01 1.915000e-01 5.706000e-01 3.021000e-01 5.829000e-01 -6.530000e-02 1.807800e+00 -4.130000e-02 4.920000e-02 9.000000e-03 -1.080000e-02 1.095000e-01 3.238000e-01
- 4.558000e-01 6.417000e-01 7.385000e-01 7.060000e-01 9.107000e-01 6.386000e-01 1.640500e+00 1.095000e-01 -1.430000e-02 2.021500e+00 -6.380000e-02 1.806700e+00 4.203000e-01 4.233000e-01
- 3.749000e-01 3.478000e-01 6.614000e-01 3.763000e-01 8.617000e-01 2.874000e-01 1.680900e+00 6.080000e-02 5.110000e-02 1.937900e+00 -4.430000e-02 5.130000e-02 3.498000e-01 2.637000e-01
- 1.172000e+00 -7.900000e-02 5.569000e-01 2.045000e-01 5.080000e-01 1.028000e-01 5.461000e-01 2.194000e-01 4.582000e-01 1.502000e-01 6.272000e-01 1.214000e-01 4.147000e-01 9.840000e-02
- 1.114400e+00 -1.480000e-02 6.321000e-01 8.080000e-02 5.397000e-01 4.140000e-02 5.880000e-01 1.360000e-01 4.192000e-01 1.711000e-01 5.523000e-01 1.767000e-01 4.362000e-01 5.740000e-02
- 4.172000e-01 4.878000e-01 7.567000e-01 4.570000e-01 8.219000e-01 5.137000e-01 1.698300e+00 4.280000e-02 -2.360000e-02 2.029800e+00 -3.000000e-04 2.000000e-03 4.055000e-01 3.136000e-01
- 3.340000e-02 9.060000e-02 1.528000e-01 2.821000e-01 2.778000e-01 2.702000e-01 3.840000e-02 1.689500e+00 8.330000e-02 -1.008000e-01 7.790000e-02 -9.420000e-02 6.010000e-02 1.798000e-01
- 1.125000e+00 -1.910000e-02 6.254000e-01 1.100600e+00 3.906000e-01 8.229000e-01 6.111000e-01 1.120500e+00 4.252000e-01 7.403000e-01 6.368000e-01 1.083800e+00 4.206000e-01 4.015000e-01
- 6.356000e-01 4.044000e-01 8.279000e-01 8.315000e-01 9.620000e-01 9.261000e-01 8.210000e-01 8.397000e-01 1.001200e+00 9.082000e-01 8.058000e-01 8.573000e-01 4.849000e-01 4.709000e-01
- 1.061500e+00 5.180000e-02 7.158000e-01 1.021300e+00 6.573000e-01 4.111000e-01 7.008000e-01 1.036400e+00 5.019000e-01 5.624000e-01 7.263000e-01 1.009700e+00 4.987000e-01 2.754000e-01
- 1.755000e-01 3.300000e-01 3.664000e-01 4.088000e-01 3.820000e-01 5.115000e-01 3.903000e-01 3.836000e-01 4.519000e-01 4.405000e-01 2.869000e-01 5.086000e-01 1.966000e-01 2.555000e-01
- 2.700000e-02 1.430000e-02 3.190000e-02 3.198000e-01 3.130000e-02 4.564000e-01 -1.280000e-02 1.590000e-02 -6.610000e-02 7.780000e-02 -8.400000e-03 8.100000e-03 1.590000e-02 1.756000e-01
- 4.663000e-01 -4.600000e-03 7.408000e-01 4.170000e-02 9.221000e-01 -2.920000e-02 1.735200e+00 -1.600000e-03 7.200000e-02 -8.600000e-02 3.510000e-02 -4.170000e-02 4.131000e-01 3.500000e-02
- 3.971000e-01 1.871000e-01 6.050000e-01 3.133000e-01 6.799000e-01 3.637000e-01 5.564000e-01 3.703000e-01 7.048000e-01 3.569000e-01 5.925000e-01 3.298000e-01 3.250000e-01 2.095000e-01
- 1.881000e-01 2.852000e-01 4.351000e-01 3.640000e-01 5.826000e-01 3.299000e-01 1.650900e+00 9.930000e-02 -7.760000e-02 9.370000e-02 3.610000e-02 -4.430000e-02 2.443000e-01 2.118000e-01
- 7.071000e-01 4.006000e-01 3.163000e-01 1.421300e+00 2.512000e-01 1.208400e+00 3.451000e-01 1.385900e+00 3.214000e-01 1.050100e+00 3.445000e-01 1.383400e+00 2.696000e-01 6.342000e-01
- 6.183000e-01 4.862000e-01 8.977000e-01 8.166000e-01 1.012400e+00 8.138000e-01 1.728200e+00 4.700000e-03 2.084100e+00 -9.930000e-02 -2.800000e-03 1.733200e+00 5.319000e-01 4.307000e-01
- 7.480000e-01 2.723000e-01 1.088900e+00 5.234000e-01 1.335700e+00 4.807000e-01 1.197500e+00 3.954000e-01 1.335600e+00 5.135000e-01 1.092100e+00 5.162000e-01 6.428000e-01 2.840000e-01
- 1.220000e-02 4.463000e-01 3.817000e-01 3.752000e-01 4.660000e-01 4.161000e-01 -3.900000e-02 1.775400e+00 2.450000e-02 -2.800000e-02 -2.000000e-02 2.500000e-02 1.909000e-01 2.436000e-01
- 4.191000e-01 7.018000e-01 7.914000e-01 6.675000e-01 1.036300e+00 5.181000e-01 1.751200e+00 -2.240000e-02 -1.037000e-01 2.116700e+00 0.000000e+00 1.728200e+00 4.685000e-01 3.836000e-01
- 5.673000e-01 5.564000e-01 3.051000e-01 8.024000e-01 2.870000e-01 5.490000e-01 3.614000e-01 7.325000e-01 2.592000e-01 5.638000e-01 3.773000e-01 7.175000e-01 2.555000e-01 3.958000e-01
- 5.016000e-01 1.766000e-01 7.704000e-01 2.323000e-01 9.845000e-01 1.148000e-01 1.770000e+00 -4.560000e-02 -1.452000e-01 2.174300e+00 2.120000e-02 -2.570000e-02 4.619000e-01 1.186000e-01
- 3.840000e-02 4.844000e-01 2.104000e-01 6.335000e-01 3.165000e-01 6.526000e-01 7.100000e-03 1.721900e+00 2.400000e-02 -3.070000e-02 -3.000000e-04 -1.300000e-03 1.120000e-01 3.751000e-01
- 6.022000e-01 4.851000e-01 9.271000e-01 4.647000e-01 1.181800e+00 3.103000e-01 1.728700e+00 6.000000e-04 2.143800e+00 -1.692000e-01 2.100000e-02 1.706200e+00 6.078000e-01 2.020000e-01
- 4.198000e-01 1.360000e-01 7.111000e-01 1.498000e-01 7.691000e-01 2.240000e-01 7.126000e-01 1.501000e-01 8.195000e-01 1.747000e-01 7.925000e-01 5.360000e-02 4.255000e-01 6.960000e-02
- 4.734000e-01 3.226000e-01 7.321000e-01 5.214000e-01 6.302000e-01 8.344000e-01 7.167000e-01 5.399000e-01 8.025000e-01 6.486000e-01 7.317000e-01 5.186000e-01 3.959000e-01 3.324000e-01
- 1.976000e-01 2.874000e-01 5.407000e-01 2.456000e-01 6.124000e-01 3.106000e-01 1.765600e+00 -4.640000e-02 -8.500000e-03 1.090000e-02 -3.050000e-02 3.470000e-02 2.834000e-01 1.711000e-01
- 2.472000e-01 3.830000e-01 4.762000e-01 4.897000e-01 5.658000e-01 5.331000e-01 4.445000e-01 5.271000e-01 4.262000e-01 7.066000e-01 5.670000e-01 3.801000e-01 2.861000e-01 2.700000e-01
- 5.640000e-02 8.770000e-01 4.094000e-01 8.304000e-01 4.598000e-01 9.081000e-01 1.685500e+00 5.740000e-02 -1.160000e-02 2.014600e+00 3.930000e-02 -4.600000e-02 2.180000e-01 5.141000e-01
- 5.933000e-01 5.124000e-01 3.009000e-01 4.766000e-01 2.757000e-01 3.484000e-01 2.430000e-01 5.403000e-01 2.414000e-01 3.768000e-01 3.809000e-01 3.783000e-01 2.467000e-01 2.736000e-01
- 4.738000e-01 1.604000e-01 6.897000e-01 3.143000e-01 7.454000e-01 4.065000e-01 7.160000e-01 2.829000e-01 7.983000e-01 3.611000e-01 6.483000e-01 3.632000e-01 4.115000e-01 1.662000e-01
- 3.263000e-01 2.228000e-01 5.195000e-01 3.371000e-01 6.499000e-01 3.145000e-01 6.013000e-01 2.391000e-01 5.882000e-01 3.997000e-01 4.504000e-01 4.183000e-01 2.802000e-01 2.177000e-01
- 2.952000e-01 3.011000e-01 3.907000e-01 5.610000e-01 5.623000e-01 4.951000e-01 3.930000e-01 5.548000e-01 5.071000e-01 5.777000e-01 3.762000e-01 5.773000e-01 2.368000e-01 3.101000e-01
- 8.571000e-01 2.373000e-01 3.476000e-01 9.596000e-01 2.949000e-01 6.430000e-01 3.605000e-01 9.372000e-01 2.396000e-01 6.787000e-01 4.688000e-01 8.115000e-01 2.814000e-01 4.219000e-01
--8.300000e-02 7.175000e-01 2.840000e-02 8.961000e-01 4.980000e-02 1.014500e+00 -5.960000e-02 1.804600e+00 -2.070000e-02 2.025200e+00 1.300000e-03 -1.400000e-03 2.410000e-02 5.176000e-01
- 4.093000e-01 4.796000e-01 7.052000e-01 4.992000e-01 8.137000e-01 5.116000e-01 1.559200e+00 2.063000e-01 -9.400000e-03 2.012900e+00 -4.380000e-02 5.310000e-02 3.694000e-01 3.477000e-01
--4.070000e-02 3.429000e-01 1.610000e-01 4.522000e-01 3.372000e-01 3.839000e-01 -1.471000e-01 1.905600e+00 2.170000e-02 -2.650000e-02 1.330000e-02 -1.820000e-02 1.011000e-01 2.359000e-01
- 4.655000e-01 3.234000e-01 6.666000e-01 5.896000e-01 7.814000e-01 6.414000e-01 7.481000e-01 4.871000e-01 8.391000e-01 5.939000e-01 7.590000e-01 4.738000e-01 4.179000e-01 2.995000e-01
- 3.631000e-01 3.763000e-01 5.393000e-01 6.265000e-01 6.059000e-01 7.227000e-01 5.750000e-01 5.816000e-01 5.516000e-01 8.031000e-01 5.457000e-01 6.142000e-01 3.099000e-01 3.612000e-01
- 4.637000e-01 4.033000e-01 7.539000e-01 5.969000e-01 7.829000e-01 7.668000e-01 6.929000e-01 6.707000e-01 9.046000e-01 6.521000e-01 7.372000e-01 6.145000e-01 4.322000e-01 3.487000e-01
- 1.090400e+00 1.660000e-02 6.835000e-01 4.016000e-01 5.539000e-01 2.774000e-01 6.936000e-01 3.948000e-01 5.649000e-01 2.433000e-01 7.215000e-01 3.609000e-01 4.784000e-01 1.675000e-01
- 1.758000e-01 4.663000e-01 4.616000e-01 5.046000e-01 5.843000e-01 4.959000e-01 1.676900e+00 5.550000e-02 1.330000e-02 1.984500e+00 2.270000e-02 -2.750000e-02 2.619000e-01 2.967000e-01
- 1.214600e+00 -1.319000e-01 5.935000e-01 5.697000e-01 5.128000e-01 3.593000e-01 5.345000e-01 6.402000e-01 4.997000e-01 3.476000e-01 5.162000e-01 6.670000e-01 4.160000e-01 2.552000e-01
- 1.620000e-02 -1.880000e-02 2.976000e-01 1.450000e-02 4.584000e-01 -3.510000e-02 -5.870000e-02 6.980000e-02 9.900000e-03 -9.800000e-03 -5.190000e-02 6.120000e-02 1.608000e-01 6.200000e-03
- 9.487000e-01 1.556000e-01 4.250000e-01 9.013000e-01 2.160000e-01 7.500000e-01 5.109000e-01 8.025000e-01 3.473000e-01 5.742000e-01 4.527000e-01 8.721000e-01 2.995000e-01 4.109000e-01
- 4.073000e-01 6.996000e-01 6.978000e-01 8.732000e-01 8.389000e-01 8.391000e-01 1.652000e+00 9.270000e-02 -9.850000e-02 2.120300e+00 4.640000e-02 1.671500e+00 4.081000e-01 4.970000e-01
- 1.179000e-01 3.772000e-01 1.543000e-01 6.233000e-01 2.983000e-01 5.636000e-01 2.670000e-01 4.901000e-01 2.800000e-01 6.010000e-01 1.791000e-01 5.917000e-01 1.150000e-01 3.288000e-01
- 3.808000e-01 3.059000e-01 7.125000e-01 2.866000e-01 8.360000e-01 2.762000e-01 1.762600e+00 -4.020000e-02 -1.060000e-02 2.014400e+00 -2.190000e-02 2.570000e-02 3.894000e-01 1.950000e-01
- 1.100700e+00 6.400000e-03 6.214000e-01 1.107200e+00 5.279000e-01 5.033000e-01 6.244000e-01 1.102300e+00 4.872000e-01 5.243000e-01 4.857000e-01 1.269100e+00 4.358000e-01 3.183000e-01
- 4.452000e-01 4.062000e-01 7.953000e-01 5.247000e-01 7.304000e-01 8.046000e-01 7.100000e-01 6.177000e-01 8.594000e-01 6.745000e-01 7.237000e-01 6.055000e-01 4.072000e-01 3.626000e-01
--3.360000e-02 7.815000e-01 3.460000e-01 6.911000e-01 3.249000e-01 8.536000e-01 -7.280000e-02 1.825300e+00 1.340000e-02 1.986900e+00 1.620000e-02 -2.070000e-02 1.240000e-01 4.968000e-01
- 4.713000e-01 4.386000e-01 7.293000e-01 6.936000e-01 7.792000e-01 8.545000e-01 6.979000e-01 7.343000e-01 8.918000e-01 7.419000e-01 6.975000e-01 7.380000e-01 4.071000e-01 4.185000e-01
- 4.175000e-01 3.384000e-01 7.303000e-01 4.443000e-01 7.458000e-01 6.023000e-01 6.859000e-01 4.919000e-01 8.668000e-01 4.794000e-01 7.331000e-01 4.360000e-01 4.239000e-01 2.520000e-01
- 5.340000e-02 9.828000e-01 2.123000e-01 1.128600e+00 2.351000e-01 1.247100e+00 -7.900000e-02 1.824500e+00 -3.620000e-02 2.039300e+00 -1.320000e-02 1.450000e-02 8.350000e-02 7.143000e-01
- 3.388000e-01 3.895000e-01 4.675000e-01 6.855000e-01 4.922000e-01 8.274000e-01 5.061000e-01 6.373000e-01 6.460000e-01 6.687000e-01 4.679000e-01 6.876000e-01 2.774000e-01 3.879000e-01
- 3.247000e-01 5.262000e-01 6.185000e-01 5.524000e-01 7.928000e-01 4.811000e-01 1.705800e+00 3.450000e-02 -1.000000e-04 1.999800e+00 -2.430000e-02 2.690000e-02 3.642000e-01 3.209000e-01
- 4.667000e-01 2.944000e-01 8.114000e-01 3.655000e-01 8.536000e-01 4.975000e-01 7.835000e-01 3.983000e-01 9.240000e-01 4.428000e-01 7.512000e-01 4.366000e-01 4.402000e-01 2.459000e-01
- 1.345000e-01 6.435000e-01 3.909000e-01 7.931000e-01 5.475000e-01 7.823000e-01 3.952000e-01 7.846000e-01 3.832000e-01 9.931000e-01 3.469000e-01 8.406000e-01 2.234000e-01 4.592000e-01
- 1.940000e-01 4.096000e-01 2.225000e-01 7.397000e-01 2.921000e-01 7.992000e-01 3.331000e-01 6.114000e-01 3.428000e-01 7.537000e-01 2.425000e-01 7.173000e-01 1.560000e-01 3.954000e-01
- 5.959000e-01 1.939000e-01 9.863000e-01 2.432000e-01 1.230900e+00 1.453000e-01 1.001400e+00 2.181000e-01 1.243900e+00 1.572000e-01 9.501000e-01 2.823000e-01 5.876000e-01 1.168000e-01
- 3.336000e-01 3.599000e-01 5.074000e-01 5.793000e-01 6.561000e-01 5.657000e-01 6.266000e-01 4.343000e-01 6.604000e-01 5.796000e-01 6.106000e-01 4.549000e-01 3.467000e-01 2.701000e-01
- 4.059000e-01 3.798000e-01 7.394000e-01 3.555000e-01 8.615000e-01 3.500000e-01 1.760300e+00 -3.010000e-02 -1.800000e-02 2.019900e+00 -1.730000e-02 2.140000e-02 4.065000e-01 2.399000e-01
- 3.310000e-01 6.894000e-01 7.105000e-01 6.104000e-01 8.226000e-01 6.172000e-01 1.725000e+00 9.400000e-03 1.055000e-01 1.875200e+00 3.200000e-03 -3.000000e-03 4.023000e-01 3.763000e-01
- 7.199000e-01 3.784000e-01 2.954000e-01 7.870000e-01 2.970000e-01 5.207000e-01 2.539000e-01 8.341000e-01 2.433000e-01 5.660000e-01 3.386000e-01 7.365000e-01 2.611000e-01 3.805000e-01
- 3.351000e-01 4.388000e-01 4.206000e-01 8.098000e-01 5.920000e-01 7.924000e-01 4.709000e-01 7.497000e-01 6.010000e-01 8.065000e-01 4.283000e-01 8.027000e-01 2.862000e-01 4.179000e-01
- 2.682000e-01 2.294000e-01 5.970000e-01 1.434000e-01 7.460000e-01 8.930000e-02 5.686000e-01 1.835000e-01 6.593000e-01 2.042000e-01 6.265000e-01 1.115000e-01 3.488000e-01 8.000000e-02
- 1.968000e-01 5.983000e-01 4.334000e-01 6.884000e-01 6.950000e-01 5.214000e-01 1.668500e+00 7.710000e-02 -1.500000e-02 2.017100e+00 -9.400000e-03 1.200000e-02 2.899000e-01 3.599000e-01
- 2.743000e-01 2.707000e-01 5.182000e-01 3.226000e-01 6.576000e-01 2.817000e-01 4.334000e-01 4.222000e-01 5.786000e-01 3.969000e-01 5.792000e-01 2.490000e-01 3.026000e-01 1.813000e-01
- 1.044000e-01 8.482000e-01 2.786000e-01 1.196100e+00 3.187000e-01 1.361100e+00 2.881000e-01 1.186100e+00 2.551000e-01 1.462000e+00 2.166000e-01 1.271600e+00 1.215000e-01 7.374000e-01
- 7.940000e-02 7.657000e-01 3.944000e-01 7.673000e-01 4.722000e-01 8.130000e-01 1.623500e+00 1.296000e-01 1.566000e-01 1.815600e+00 8.910000e-02 -1.058000e-01 2.025000e-01 4.817000e-01
- 5.802000e-01 5.219000e-01 2.736000e-01 3.596000e-01 3.377000e-01 1.663000e-01 3.450000e-01 2.768000e-01 2.607000e-01 2.504000e-01 2.996000e-01 3.324000e-01 2.310000e-01 2.168000e-01
- 3.435000e-01 7.501000e-01 1.504000e-01 4.932000e-01 6.410000e-02 4.826000e-01 2.269000e-01 4.038000e-01 1.557000e-01 3.627000e-01 6.050000e-02 6.040000e-01 1.334000e-01 3.200000e-01
- 2.296000e-01 8.800000e-02 3.187000e-01 1.855000e-01 3.660000e-01 2.098000e-01 2.541000e-01 2.652000e-01 3.659000e-01 2.184000e-01 1.360000e-01 4.045000e-01 1.647000e-01 1.304000e-01
- 3.472000e-01 5.533000e-01 7.213000e-01 6.622000e-01 7.495000e-01 8.366000e-01 6.911000e-01 7.010000e-01 7.428000e-01 8.703000e-01 6.704000e-01 7.270000e-01 3.956000e-01 4.075000e-01
- 1.127300e+00 -2.910000e-02 5.484000e-01 3.926000e-01 4.000000e-01 3.540000e-01 4.938000e-01 4.571000e-01 3.574000e-01 3.831000e-01 3.600000e-01 6.188000e-01 3.658000e-01 2.323000e-01
- 3.116000e-01 2.006000e-01 6.378000e-01 1.844000e-01 8.251000e-01 1.021000e-01 1.731600e+00 -2.000000e-03 -5.400000e-03 5.500000e-03 6.160000e-02 -7.480000e-02 3.810000e-01 8.600000e-02
- 5.224000e-01 9.700000e-03 7.253000e-01 1.418000e-01 8.516000e-01 1.318000e-01 1.666600e+00 7.340000e-02 1.910000e-02 -1.910000e-02 -1.140000e-02 1.270000e-02 4.417000e-01 5.310000e-02
- 5.163000e-01 2.570000e-01 7.918000e-01 4.214000e-01 9.877000e-01 3.764000e-01 8.280000e-01 3.769000e-01 9.526000e-01 4.407000e-01 8.246000e-01 3.858000e-01 4.710000e-01 2.260000e-01
- 5.571000e-01 5.544000e-01 2.239000e-01 9.428000e-01 2.880000e-01 5.743000e-01 3.653000e-01 7.806000e-01 2.938000e-01 5.459000e-01 3.241000e-01 8.265000e-01 2.381000e-01 4.292000e-01
- 2.273000e-01 4.148000e-01 3.511000e-01 6.521000e-01 3.822000e-01 7.671000e-01 4.646000e-01 5.182000e-01 4.037000e-01 7.567000e-01 3.498000e-01 6.586000e-01 2.074000e-01 3.724000e-01
- 4.839000e-01 4.570000e-02 1.840000e-01 1.079000e-01 2.019000e-01 4.250000e-02 3.259000e-01 -6.090000e-02 2.704000e-01 -4.380000e-02 2.482000e-01 3.690000e-02 2.045000e-01 1.880000e-02
- 1.147700e+00 -5.040000e-02 1.158300e+00 1.214000e-01 9.293000e-01 -1.200000e-02 1.340100e+00 -9.310000e-02 8.479000e-01 5.720000e-02 1.220500e+00 5.150000e-02 6.836000e-01 1.350000e-02
- 6.989000e-01 3.994000e-01 1.083100e+00 3.312000e-01 1.074000e+00 4.911000e-01 1.831800e+00 -1.164000e-01 2.058700e+00 -6.400000e-02 3.980000e-02 1.682900e+00 5.699000e-01 2.715000e-01
- 3.769000e-01 4.515000e-01 1.789000e-01 1.933000e-01 1.166000e-01 2.087000e-01 1.752000e-01 1.987000e-01 1.617000e-01 1.490000e-01 1.450000e-01 2.362000e-01 1.476000e-01 1.407000e-01
- 4.429000e-01 2.770000e-01 6.559000e-01 4.770000e-01 7.533000e-01 5.333000e-01 6.636000e-01 4.679000e-01 9.272000e-01 3.484000e-01 6.942000e-01 4.315000e-01 4.358000e-01 2.080000e-01
- 2.678000e-01 5.396000e-01 5.706000e-01 5.481000e-01 7.094000e-01 5.272000e-01 1.753200e+00 -2.780000e-02 1.525000e-01 1.819500e+00 -8.100000e-03 9.300000e-03 3.374000e-01 3.192000e-01
- 5.565000e-01 2.985000e-01 9.732000e-01 1.751000e-01 1.013600e+00 2.741000e-01 1.663900e+00 7.960000e-02 1.972300e+00 3.250000e-02 -3.070000e-02 3.620000e-02 5.264000e-01 1.595000e-01
- 7.532000e-01 3.612000e-01 3.635000e-01 1.018900e+00 3.685000e-01 5.868000e-01 3.342000e-01 1.066600e+00 2.891000e-01 6.552000e-01 3.743000e-01 1.018400e+00 2.811000e-01 4.401000e-01
- 1.108600e+00 -5.300000e-03 4.635000e-01 1.283100e+00 4.084000e-01 1.442300e+00 4.793000e-01 1.265200e+00 4.490000e-01 1.193800e+00 6.262000e-01 1.087300e+00 3.890000e-01 5.791000e-01
- 4.608000e-01 2.314000e-01 8.328000e-01 2.275000e-01 8.639000e-01 3.633000e-01 8.046000e-01 2.602000e-01 8.485000e-01 3.997000e-01 7.342000e-01 3.473000e-01 4.069000e-01 2.202000e-01
- 4.410000e-02 5.566000e-01 2.636000e-01 6.394000e-01 3.755000e-01 6.360000e-01 2.398000e-01 6.638000e-01 2.537000e-01 7.974000e-01 2.936000e-01 6.030000e-01 1.496000e-01 3.718000e-01
- 5.005000e-01 3.034000e-01 7.548000e-01 5.121000e-01 1.041600e+00 3.657000e-01 8.597000e-01 3.826000e-01 1.028000e+00 4.066000e-01 7.794000e-01 4.771000e-01 4.800000e-01 2.417000e-01
- 3.198000e-01 7.901000e-01 1.934000e-01 7.084000e-01 1.126000e-01 6.119000e-01 1.950000e-01 7.055000e-01 1.826000e-01 5.124000e-01 2.665000e-01 6.217000e-01 1.639000e-01 4.130000e-01
- 5.197000e-01 2.097000e-01 8.513000e-01 1.889000e-01 9.604000e-01 2.034000e-01 1.725800e+00 3.100000e-03 -2.900000e-02 2.034500e+00 -4.180000e-02 4.840000e-02 4.906000e-01 1.207000e-01
- 2.273000e-01 7.301000e-01 3.601000e-01 1.140200e+00 3.853000e-01 1.328900e+00 3.072000e-01 1.205700e+00 4.551000e-01 1.270000e+00 3.043000e-01 1.206400e+00 2.025000e-01 6.645000e-01
--4.580000e-02 5.081000e-01 -4.810000e-02 8.260000e-01 -1.860000e-02 9.120000e-01 4.690000e-02 1.675900e+00 -5.220000e-02 6.230000e-02 -4.100000e-03 6.400000e-03 2.600000e-03 4.344000e-01
- 1.116200e+00 -1.530000e-02 5.599000e-01 5.398000e-01 3.945000e-01 4.545000e-01 5.338000e-01 5.660000e-01 4.524000e-01 3.615000e-01 5.239000e-01 5.846000e-01 3.863000e-01 2.650000e-01
- 6.918000e-01 3.518000e-01 1.041500e+00 3.028000e-01 1.083500e+00 3.950000e-01 1.622800e+00 1.234000e-01 2.023100e+00 -2.900000e-02 6.140000e-02 -7.670000e-02 6.017000e-01 1.932000e-01
- 7.017000e-01 3.974000e-01 1.022200e+00 5.651000e-01 1.199500e+00 5.025000e-01 1.701000e+00 3.670000e-02 2.096700e+00 -1.106000e-01 6.400000e-03 1.724200e+00 5.794000e-01 3.400000e-01
- 3.025000e-01 4.500000e-01 6.046000e-01 4.666000e-01 7.225000e-01 4.639000e-01 1.802600e+00 -8.280000e-02 -4.240000e-02 2.049500e+00 -3.420000e-02 4.300000e-02 3.911000e-01 2.265000e-01
- 2.405000e-01 4.124000e-01 3.764000e-01 6.427000e-01 4.999000e-01 6.475000e-01 4.117000e-01 5.978000e-01 4.728000e-01 6.944000e-01 4.349000e-01 5.751000e-01 2.347000e-01 3.495000e-01
- 3.042000e-01 4.975000e-01 5.813000e-01 5.410000e-01 5.880000e-01 6.772000e-01 1.773000e+00 -4.970000e-02 4.010000e-02 1.949800e+00 5.640000e-02 -6.680000e-02 3.048000e-01 3.605000e-01
- 5.140000e-02 6.044000e-01 1.610000e-01 8.481000e-01 1.999000e-01 9.469000e-01 1.133000e-01 9.042000e-01 1.455000e-01 1.025900e+00 1.506000e-01 8.629000e-01 8.570000e-02 4.987000e-01
- 7.159000e-01 3.887000e-01 3.221000e-01 2.428000e-01 3.203000e-01 1.404000e-01 3.725000e-01 1.797000e-01 2.981000e-01 1.584000e-01 2.153000e-01 3.692000e-01 2.653000e-01 1.412000e-01
- 1.038500e+00 8.070000e-02 6.368000e-01 2.733000e-01 5.443000e-01 1.728000e-01 5.774000e-01 3.499000e-01 5.029000e-01 2.067000e-01 6.043000e-01 3.120000e-01 4.286000e-01 1.561000e-01
- 3.442000e-01 6.581000e-01 6.663000e-01 8.721000e-01 5.898000e-01 1.199100e+00 6.507000e-01 8.913000e-01 5.997000e-01 1.210200e+00 5.873000e-01 9.664000e-01 3.414000e-01 5.564000e-01
- 4.650000e-02 1.068000e+00 1.044000e-01 4.719000e-01 1.267000e-01 3.475000e-01 2.050000e-02 5.726000e-01 7.500000e-03 4.792000e-01 5.820000e-02 5.241000e-01 4.720000e-02 3.740000e-01
- 5.320000e-02 3.194000e-01 1.602000e-01 4.124000e-01 1.449000e-01 5.132000e-01 1.762000e-01 3.928000e-01 2.111000e-01 4.435000e-01 1.781000e-01 3.896000e-01 1.014000e-01 2.271000e-01
- 1.134400e+00 -3.280000e-02 3.935000e-01 4.392000e-01 3.808000e-01 2.835000e-01 4.294000e-01 3.987000e-01 3.470000e-01 3.056000e-01 3.493000e-01 4.929000e-01 3.117000e-01 2.354000e-01
- 3.821000e-01 6.817000e-01 6.292000e-01 7.613000e-01 8.703000e-01 6.141000e-01 1.673400e+00 6.200000e-02 5.200000e-03 1.990900e+00 -8.500000e-02 1.832600e+00 4.190000e-01 3.872000e-01
- 3.013000e-01 6.641000e-01 5.217000e-01 9.826000e-01 5.665000e-01 1.154200e+00 6.320000e-01 8.539000e-01 7.991000e-01 9.070000e-01 5.886000e-01 9.031000e-01 3.344000e-01 5.291000e-01
- 1.506000e-01 7.948000e-01 1.765000e-01 1.315600e+00 2.341000e-01 1.461900e+00 2.085000e-01 1.275200e+00 2.402000e-01 1.474500e+00 1.973000e-01 1.294000e+00 1.203000e-01 7.379000e-01
- 3.685000e-01 6.324000e-01 7.840000e-01 5.156000e-01 8.288000e-01 6.059000e-01 1.723100e+00 1.340000e-02 -3.700000e-02 2.044700e+00 -1.219000e-01 1.448000e-01 4.090000e-01 3.624000e-01
- 4.675000e-01 3.226000e-01 7.764000e-01 4.498000e-01 8.159000e-01 5.908000e-01 6.720000e-01 5.726000e-01 8.785000e-01 5.377000e-01 5.608000e-01 7.012000e-01 4.061000e-01 3.096000e-01
- 1.032100e+00 8.920000e-02 7.001000e-01 1.020800e+00 4.296000e-01 1.249300e+00 5.637000e-01 1.175500e+00 5.356000e-01 1.006600e+00 5.957000e-01 1.141200e+00 4.473000e-01 5.009000e-01
- 3.537000e-01 3.750000e-01 5.846000e-01 5.609000e-01 6.021000e-01 7.155000e-01 5.300000e-01 6.204000e-01 6.224000e-01 7.085000e-01 5.285000e-01 6.264000e-01 3.126000e-01 3.522000e-01
- 1.028400e+00 5.230000e-02 3.442000e-01 1.396500e+00 2.839000e-01 1.006800e+00 3.878000e-01 1.345500e+00 4.144000e-01 8.010000e-01 3.794000e-01 1.354100e+00 2.956000e-01 5.589000e-01
- 1.255500e+00 -1.783000e-01 9.172000e-01 1.170000e-02 6.671000e-01 7.930000e-02 8.712000e-01 6.710000e-02 6.812000e-01 4.210000e-02 9.521000e-01 -2.890000e-02 5.712000e-01 2.040000e-02
- 3.895000e-01 2.033000e-01 5.606000e-01 3.758000e-01 7.402000e-01 3.101000e-01 5.242000e-01 4.181000e-01 7.393000e-01 3.271000e-01 5.231000e-01 4.183000e-01 3.386000e-01 1.988000e-01
- 3.526000e-01 7.464000e-01 6.101000e-01 9.113000e-01 7.630000e-01 8.749000e-01 1.689900e+00 4.920000e-02 1.480000e-02 1.983400e+00 -1.200000e-02 1.745600e+00 3.587000e-01 5.248000e-01
--1.300000e-03 6.041000e-01 4.347000e-01 4.496000e-01 4.004000e-01 6.332000e-01 2.100000e-03 1.727800e+00 -8.340000e-02 2.097300e+00 1.580000e-02 -1.760000e-02 1.446000e-01 3.869000e-01
- 3.791000e-01 2.530000e-01 8.544000e-01 6.310000e-02 8.729000e-01 1.838000e-01 1.780600e+00 -5.310000e-02 7.710000e-02 1.912700e+00 -3.610000e-02 4.320000e-02 4.118000e-01 1.349000e-01
- 1.102700e+00 1.900000e-03 4.964000e-01 5.009000e-01 3.975000e-01 3.810000e-01 5.711000e-01 4.126000e-01 3.578000e-01 4.157000e-01 6.194000e-01 3.533000e-01 3.989000e-01 2.126000e-01
- 3.882000e-01 4.172000e-01 6.311000e-01 6.264000e-01 8.014000e-01 6.151000e-01 7.290000e-01 5.097000e-01 8.256000e-01 6.037000e-01 7.664000e-01 4.626000e-01 4.112000e-01 3.055000e-01
- 1.168300e+00 -7.610000e-02 5.486000e-01 1.192800e+00 5.699000e-01 4.532000e-01 5.990000e-01 1.130500e+00 4.773000e-01 5.330000e-01 5.430000e-01 1.196900e+00 4.272000e-01 3.263000e-01
- 1.946000e-01 8.463000e-01 3.935000e-01 9.886000e-01 5.201000e-01 9.817000e-01 1.797000e+00 -7.150000e-02 -9.460000e-02 2.110900e+00 3.840000e-02 1.683800e+00 2.347000e-01 5.724000e-01
- 2.387000e-01 5.287000e-01 5.081000e-01 5.803000e-01 6.225000e-01 5.861000e-01 1.602700e+00 1.486000e-01 -3.100000e-03 2.002900e+00 -3.110000e-02 3.750000e-02 2.908000e-01 3.475000e-01
- 3.340000e-02 8.543000e-01 9.320000e-02 1.295600e+00 1.707000e-01 1.390800e+00 3.800000e-02 1.361300e+00 1.285000e-01 1.471100e+00 7.590000e-02 1.317000e+00 5.550000e-02 7.455000e-01
- 2.603000e-01 6.276000e-01 6.728000e-01 5.071000e-01 7.549000e-01 5.508000e-01 1.824600e+00 -1.058000e-01 -1.900000e-02 2.019000e+00 -7.000000e-04 4.000000e-04 3.338000e-01 3.718000e-01
- 5.957000e-01 4.387000e-01 8.091000e-01 8.394000e-01 9.161000e-01 9.635000e-01 7.718000e-01 8.814000e-01 1.003700e+00 8.898000e-01 7.043000e-01 9.604000e-01 4.712000e-01 4.792000e-01
- 1.171000e+00 -7.670000e-02 5.022000e-01 3.121000e-01 4.242000e-01 2.324000e-01 4.959000e-01 3.193000e-01 4.355000e-01 2.043000e-01 5.301000e-01 2.812000e-01 3.576000e-01 1.846000e-01
- 1.121500e+00 -2.200000e-02 5.811000e-01 1.162100e+00 5.564000e-01 5.510000e-01 6.498000e-01 1.077300e+00 4.685000e-01 6.165000e-01 5.802000e-01 1.157100e+00 4.429000e-01 3.451000e-01
- 1.084900e+00 2.450000e-02 3.846000e-01 1.362700e+00 4.707000e-01 7.384000e-01 4.256000e-01 1.313500e+00 4.017000e-01 7.778000e-01 4.385000e-01 1.299300e+00 3.552000e-01 4.773000e-01
- 1.153600e+00 -5.470000e-02 4.680000e-01 3.564000e-01 3.592000e-01 3.113000e-01 3.693000e-01 4.764000e-01 3.756000e-01 2.744000e-01 4.279000e-01 4.029000e-01 3.265000e-01 2.203000e-01
- 3.748000e-01 2.994000e-01 6.536000e-01 3.408000e-01 8.457000e-01 2.527000e-01 1.739800e+00 -9.200000e-03 -6.410000e-02 2.075800e+00 3.580000e-02 -4.420000e-02 4.033000e-01 1.715000e-01
- 4.363000e-01 6.118000e-01 7.460000e-01 6.139000e-01 8.352000e-01 6.512000e-01 1.741400e+00 -1.040000e-02 -3.700000e-02 2.039400e+00 4.330000e-02 -5.150000e-02 4.164000e-01 3.860000e-01
- 1.798000e-01 2.871000e-01 3.085000e-01 4.197000e-01 3.603000e-01 4.645000e-01 2.507000e-01 4.863000e-01 3.400000e-01 5.030000e-01 3.426000e-01 3.776000e-01 1.842000e-01 2.344000e-01
- 6.403000e-01 5.420000e-02 1.025400e+00 6.470000e-02 1.219600e+00 9.200000e-03 9.108000e-01 1.963000e-01 1.133800e+00 1.292000e-01 9.212000e-01 1.857000e-01 5.768000e-01 5.450000e-02
- 4.600000e-02 8.990000e-01 1.115000e-01 1.363600e+00 1.098000e-01 1.570600e+00 1.085000e-01 1.371400e+00 2.028000e-01 1.486500e+00 4.920000e-02 1.434900e+00 6.760000e-02 7.827000e-01
- 3.339000e-01 7.763000e-01 7.458000e-01 7.458000e-01 7.757000e-01 8.486000e-01 1.733500e+00 7.000000e-04 -8.480000e-02 2.099900e+00 -2.780000e-02 1.761200e+00 3.877000e-01 4.879000e-01
- 2.704000e-01 8.443000e-01 6.167000e-01 8.324000e-01 7.813000e-01 7.781000e-01 1.633800e+00 1.169000e-01 -2.190000e-02 2.026000e+00 -8.870000e-02 1.835800e+00 3.523000e-01 4.940000e-01
- 3.663000e-01 5.339000e-01 4.716000e-01 9.602000e-01 5.079000e-01 1.127100e+00 5.363000e-01 8.867000e-01 5.595000e-01 1.094100e+00 5.606000e-01 8.596000e-01 3.032000e-01 5.188000e-01
- 6.235000e-01 1.920000e-01 1.090900e+00 1.685000e-01 1.179400e+00 2.634000e-01 1.007500e+00 2.645000e-01 1.161100e+00 3.117000e-01 1.011000e+00 2.615000e-01 5.957000e-01 1.379000e-01
--1.810000e-02 6.916000e-01 2.449000e-01 7.359000e-01 4.121000e-01 6.803000e-01 -6.350000e-02 1.805700e+00 7.400000e-02 1.915100e+00 2.490000e-02 -2.860000e-02 1.347000e-01 4.371000e-01
- 5.528000e-01 5.532000e-01 3.238000e-01 7.494000e-01 2.123000e-01 6.204000e-01 2.494000e-01 8.322000e-01 2.191000e-01 5.926000e-01 2.836000e-01 7.916000e-01 2.339000e-01 4.084000e-01
- 7.864000e-01 -2.360000e-02 1.092900e+00 1.320000e-01 1.351800e+00 2.660000e-02 1.164200e+00 4.800000e-02 1.409700e+00 -1.860000e-02 1.181300e+00 2.760000e-02 6.641000e-01 3.780000e-02
- 4.138000e-01 5.768000e-01 7.693000e-01 5.243000e-01 9.692000e-01 4.379000e-01 1.803000e+00 -8.240000e-02 6.050000e-02 1.930600e+00 -1.340000e-02 1.410000e-02 4.108000e-01 3.600000e-01
- 1.148100e+00 -5.410000e-02 7.842000e-01 2.590000e-01 6.844000e-01 1.110000e-01 8.148000e-01 2.220000e-01 7.089000e-01 6.410000e-02 8.862000e-01 1.437000e-01 5.566000e-01 7.150000e-02
- 2.915000e-01 6.952000e-01 5.862000e-01 7.160000e-01 8.323000e-01 5.673000e-01 1.671200e+00 7.010000e-02 1.290000e-02 1.985300e+00 7.770000e-02 -9.110000e-02 3.706000e-01 3.907000e-01
- 1.131700e+00 -3.170000e-02 9.419000e-01 7.896000e-01 7.905000e-01 4.900000e-01 9.017000e-01 8.375000e-01 7.738000e-01 4.528000e-01 9.162000e-01 8.146000e-01 5.810000e-01 2.747000e-01
- 3.090000e-02 9.172000e-01 3.080000e-02 1.457100e+00 1.922000e-01 1.471700e+00 4.110000e-02 1.445200e+00 1.063000e-01 1.599500e+00 7.490000e-02 1.411300e+00 2.740000e-02 8.309000e-01
- 6.018000e-01 2.622000e-01 8.873000e-01 2.966000e-01 1.037300e+00 2.592000e-01 1.817400e+00 -9.650000e-02 2.013200e+00 -1.730000e-02 9.150000e-02 -1.097000e-01 5.341000e-01 1.592000e-01
- 3.616000e-01 5.395000e-01 7.610000e-01 4.352000e-01 8.018000e-01 5.294000e-01 1.749900e+00 -2.180000e-02 6.930000e-02 1.918400e+00 -5.740000e-02 6.910000e-02 4.071000e-01 3.045000e-01
- 3.879000e-01 5.093000e-01 6.455000e-01 7.533000e-01 7.869000e-01 7.986000e-01 5.291000e-01 8.947000e-01 7.951000e-01 8.101000e-01 6.323000e-01 7.764000e-01 3.686000e-01 4.411000e-01
- 8.884000e-01 2.158000e-01 1.187600e+00 5.403000e-01 1.283500e+00 5.980000e-01 1.680100e+00 5.840000e-02 2.025300e+00 -3.460000e-02 4.970000e-02 1.670900e+00 6.889000e-01 2.914000e-01
- 1.108700e+00 2.100000e-03 1.015600e+00 7.153000e-01 7.320000e-01 1.086200e+00 9.141000e-01 8.361000e-01 8.051000e-01 8.140000e-01 9.557000e-01 7.831000e-01 6.136000e-01 3.523000e-01
- 2.780000e-02 6.130000e-02 2.001000e-01 2.144000e-01 3.815000e-01 1.446000e-01 1.435000e-01 1.563000e+00 -2.340000e-02 2.930000e-02 -1.340000e-02 1.620000e-02 1.320000e-01 8.730000e-02
- 1.968000e-01 8.896000e-01 4.827000e-01 9.247000e-01 6.167000e-01 9.017000e-01 1.671100e+00 6.720000e-02 -1.130000e-02 2.014000e+00 5.820000e-02 1.666900e+00 2.653000e-01 5.603000e-01
- 5.201000e-01 5.841000e-01 3.171000e-01 7.668000e-01 3.882000e-01 4.175000e-01 2.912000e-01 8.033000e-01 1.717000e-01 6.541000e-01 2.294000e-01 8.757000e-01 2.216000e-01 4.260000e-01
- 5.786000e-01 4.950000e-02 8.336000e-01 1.201000e-01 9.328000e-01 1.453000e-01 1.627900e+00 1.184000e-01 1.938700e+00 6.730000e-02 2.700000e-03 -2.800000e-03 5.267000e-01 1.920000e-02
- 2.881000e-01 5.880000e-01 6.085000e-01 5.808000e-01 7.821000e-01 5.208000e-01 1.687500e+00 5.650000e-02 -1.156000e-01 2.135100e+00 -2.450000e-02 2.660000e-02 3.434000e-01 3.586000e-01
- 3.163000e-01 4.248000e-01 6.331000e-01 4.197000e-01 7.968000e-01 3.696000e-01 1.673900e+00 6.850000e-02 4.840000e-02 1.946100e+00 1.170000e-02 -1.470000e-02 3.255000e-01 2.971000e-01
- 1.184100e+00 -9.100000e-02 5.882000e-01 6.830000e-01 4.091000e-01 5.274000e-01 6.264000e-01 6.381000e-01 4.739000e-01 4.277000e-01 5.825000e-01 6.909000e-01 3.942000e-01 3.051000e-01
- 2.379000e-01 4.085000e-01 3.863000e-01 6.242000e-01 3.834000e-01 7.741000e-01 3.794000e-01 6.333000e-01 3.210000e-01 8.707000e-01 3.651000e-01 6.482000e-01 2.093000e-01 3.762000e-01
- 1.124500e+00 -2.220000e-02 3.990000e-01 1.027600e+00 2.620000e-01 7.330000e-01 3.240000e-01 1.115300e+00 3.763000e-01 5.714000e-01 4.534000e-01 9.653000e-01 3.213000e-01 4.047000e-01
- 1.099400e+00 8.000000e-03 8.668000e-01 8.454000e-01 5.698000e-01 1.414000e+00 6.727000e-01 1.078300e+00 5.144000e-01 1.395700e+00 6.686000e-01 1.077000e+00 5.120000e-01 4.853000e-01
- 3.698000e-01 1.077000e-01 5.224000e-01 2.341000e-01 5.438000e-01 3.333000e-01 5.149000e-01 2.459000e-01 5.892000e-01 2.902000e-01 5.628000e-01 1.885000e-01 3.137000e-01 1.224000e-01
- 1.164700e+00 -6.970000e-02 3.553000e-01 1.395300e+00 3.349000e-01 1.135600e+00 4.702000e-01 1.253800e+00 3.487000e-01 1.043500e+00 4.655000e-01 1.262100e+00 3.359000e-01 5.706000e-01
- 3.183000e-01 3.051000e-01 7.323000e-01 2.050000e-01 6.892000e-01 4.029000e-01 4.636000e-01 5.233000e-01 6.157000e-01 5.086000e-01 5.282000e-01 4.456000e-01 3.188000e-01 2.398000e-01
- 3.521000e-01 3.844000e-01 5.984000e-01 5.504000e-01 6.438000e-01 6.688000e-01 6.586000e-01 4.784000e-01 6.964000e-01 6.264000e-01 5.053000e-01 6.583000e-01 3.198000e-01 3.473000e-01
- 5.951000e-01 4.877000e-01 8.186000e-01 8.973000e-01 8.961000e-01 1.057700e+00 6.305000e-01 1.118100e+00 8.322000e-01 1.168700e+00 7.579000e-01 9.702000e-01 4.368000e-01 5.585000e-01
- 3.389000e-01 -2.500000e-03 6.462000e-01 1.600000e-03 8.299000e-01 -7.180000e-02 1.751500e+00 -2.660000e-02 6.930000e-02 -8.170000e-02 -3.820000e-02 4.560000e-02 3.626000e-01 1.000000e-03
- 5.361000e-01 6.900000e-03 8.957000e-01 -5.900000e-02 8.035000e-01 1.913000e-01 6.853000e-01 1.933000e-01 8.260000e-01 1.836000e-01 8.115000e-01 4.050000e-02 4.454000e-01 5.170000e-02
- 1.890000e-02 9.513000e-01 1.228000e-01 1.177100e+00 3.517000e-01 1.045600e+00 6.800000e-03 1.724800e+00 -4.210000e-02 2.044000e+00 6.100000e-03 -7.700000e-03 1.020000e-01 6.578000e-01
- 9.760000e-02 1.367000e-01 1.787000e-01 1.816000e-01 9.870000e-02 3.317000e-01 7.080000e-02 3.092000e-01 1.655000e-01 2.588000e-01 1.027000e-01 2.720000e-01 6.920000e-02 1.454000e-01
- 8.847000e-01 -4.760000e-02 1.263500e+00 7.040000e-02 1.474600e+00 3.880000e-02 1.329900e+00 -7.300000e-03 1.572400e+00 -5.190000e-02 1.251700e+00 8.340000e-02 7.533000e-01 1.260000e-02
- 4.102000e-01 6.910000e-01 7.255000e-01 8.216000e-01 8.329000e-01 8.367000e-01 1.705600e+00 3.830000e-02 6.300000e-02 1.926100e+00 -7.250000e-02 1.816300e+00 3.804000e-01 5.212000e-01
- 1.200200e+00 -1.123000e-01 7.355000e-01 6.722000e-01 6.381000e-01 3.311000e-01 7.752000e-01 6.237000e-01 5.633000e-01 3.925000e-01 7.433000e-01 6.622000e-01 5.182000e-01 2.040000e-01
- 1.303000e-01 5.144000e-01 2.051000e-01 8.057000e-01 2.318000e-01 9.195000e-01 1.189000e-01 9.103000e-01 2.451000e-01 9.204000e-01 6.870000e-02 9.648000e-01 9.940000e-02 4.873000e-01
--1.940000e-02 1.128400e+00 9.260000e-02 8.642000e-01 -7.870000e-02 8.619000e-01 1.940000e-02 9.523000e-01 -3.220000e-02 7.856000e-01 1.277000e-01 8.247000e-01 2.400000e-03 6.047000e-01
- 4.836000e-01 3.774000e-01 8.733000e-01 2.825000e-01 9.310000e-01 3.550000e-01 1.847400e+00 -1.350000e-01 -6.380000e-02 2.077500e+00 -3.200000e-03 5.300000e-03 4.776000e-01 2.108000e-01
- 3.880000e-01 7.093000e-01 2.357000e-01 1.496200e+00 1.546000e-01 1.279100e+00 2.154000e-01 1.517400e+00 1.865000e-01 1.174800e+00 2.110000e-01 1.518400e+00 1.589000e-01 7.401000e-01
- 9.033000e-01 1.708000e-01 1.453700e+00 2.186000e-01 1.625800e+00 2.814000e-01 1.394600e+00 2.859000e-01 1.638100e+00 3.015000e-01 1.507100e+00 1.582000e-01 8.207000e-01 1.479000e-01
- 7.640000e-02 9.569000e-01 1.070000e-02 1.348700e+00 -2.890000e-02 1.525800e+00 -6.690000e-02 1.814900e+00 5.600000e-02 1.930900e+00 -7.500000e-03 8.600000e-03 1.070000e-02 7.913000e-01
- 6.920000e-01 1.085000e-01 1.126700e+00 1.214000e-01 1.123300e+00 3.258000e-01 9.782000e-01 2.989000e-01 1.109100e+00 3.648000e-01 9.312000e-01 3.528000e-01 5.654000e-01 1.710000e-01
- 1.140900e+00 -4.250000e-02 5.855000e-01 1.156300e+00 5.839000e-01 5.531000e-01 6.872000e-01 1.039200e+00 5.730000e-01 5.251000e-01 6.184000e-01 1.117100e+00 4.544000e-01 3.476000e-01
- 2.265000e-01 6.849000e-01 5.588000e-01 6.636000e-01 5.984000e-01 7.636000e-01 1.767000e+00 -3.880000e-02 4.490000e-02 1.949400e+00 -5.390000e-02 6.500000e-02 3.104000e-01 4.117000e-01
- 1.136600e+00 -3.860000e-02 7.026000e-01 6.384000e-01 4.141000e-01 5.617000e-01 6.621000e-01 6.825000e-01 6.124000e-01 3.018000e-01 7.418000e-01 5.917000e-01 4.552000e-01 2.588000e-01
- 1.151400e+00 -5.220000e-02 7.812000e-01 9.582000e-01 6.172000e-01 8.571000e-01 8.638000e-01 8.509000e-01 6.028000e-01 8.008000e-01 8.650000e-01 8.518000e-01 5.288000e-01 3.810000e-01
- 3.512000e-01 7.155000e-01 4.879000e-01 1.195400e+00 6.452000e-01 1.257600e+00 5.178000e-01 1.157700e+00 5.995000e-01 1.341400e+00 4.382000e-01 1.253600e+00 2.947000e-01 6.734000e-01
- 3.928000e-01 2.647000e-01 5.870000e-01 4.481000e-01 6.574000e-01 5.253000e-01 6.692000e-01 3.489000e-01 7.849000e-01 3.914000e-01 6.414000e-01 3.851000e-01 3.603000e-01 2.330000e-01
- 9.810000e-02 5.790000e-01 2.610000e-02 1.055300e+00 1.204000e-01 1.094800e+00 1.193000e-01 9.473000e-01 1.539000e-01 1.071500e+00 1.487000e-01 9.104000e-01 5.580000e-02 5.622000e-01
- 3.960000e-01 5.710000e-01 6.352000e-01 8.757000e-01 6.999000e-01 1.032200e+00 6.124000e-01 9.060000e-01 7.728000e-01 9.632000e-01 6.477000e-01 8.664000e-01 3.643000e-01 5.100000e-01
- 1.056200e+00 5.920000e-02 5.754000e-01 5.725000e-01 3.995000e-01 4.736000e-01 4.606000e-01 7.063000e-01 4.667000e-01 3.719000e-01 5.426000e-01 6.059000e-01 3.744000e-01 2.928000e-01
- 1.544000e-01 3.905000e-01 1.708000e-01 6.948000e-01 1.166000e-01 8.799000e-01 1.731000e-01 6.905000e-01 2.379000e-01 7.522000e-01 1.968000e-01 6.632000e-01 1.038000e-01 3.948000e-01
- 7.474000e-01 3.670000e-01 4.144000e-01 1.308300e+00 3.011000e-01 7.628000e-01 4.681000e-01 1.247800e+00 2.852000e-01 7.465000e-01 2.409000e-01 1.516200e+00 2.805000e-01 4.849000e-01
- 5.245000e-01 1.796000e-01 8.253000e-01 2.766000e-01 9.779000e-01 2.720000e-01 8.928000e-01 1.989000e-01 1.056100e+00 1.957000e-01 8.944000e-01 1.973000e-01 4.657000e-01 1.730000e-01
- 2.587000e-01 3.300000e-01 3.558000e-01 5.741000e-01 4.228000e-01 6.357000e-01 3.226000e-01 6.190000e-01 4.366000e-01 6.308000e-01 3.088000e-01 6.295000e-01 2.096000e-01 3.275000e-01
- 4.381000e-01 3.545000e-01 7.058000e-01 5.334000e-01 7.713000e-01 6.482000e-01 6.476000e-01 6.045000e-01 8.761000e-01 5.459000e-01 7.537000e-01 4.779000e-01 4.071000e-01 3.084000e-01
- 1.175000e-01 6.417000e-01 2.160000e-02 3.414000e-01 -4.500000e-03 3.157000e-01 4.350000e-02 3.126000e-01 8.800000e-02 2.014000e-01 8.650000e-02 2.635000e-01 5.010000e-02 2.254000e-01
- 1.150900e+00 -5.330000e-02 8.148000e-01 1.712000e-01 6.775000e-01 8.840000e-02 8.537000e-01 1.243000e-01 6.137000e-01 1.453000e-01 7.788000e-01 2.154000e-01 5.315000e-01 8.070000e-02
--5.630000e-02 9.848000e-01 1.351000e-01 1.084000e+00 6.650000e-02 1.297100e+00 8.910000e-02 1.623000e+00 6.430000e-02 1.925100e+00 4.000000e-04 -6.000000e-04 4.630000e-02 6.800000e-01
- 1.074000e+00 4.070000e-02 4.828000e-01 1.259400e+00 3.677000e-01 1.607300e+00 4.678000e-01 1.268900e+00 5.239000e-01 1.195600e+00 4.787000e-01 1.261600e+00 3.748000e-01 6.080000e-01
- 3.009000e-01 2.211000e-01 5.387000e-01 3.073000e-01 6.518000e-01 3.179000e-01 1.888000e+00 -1.786000e-01 1.250000e-02 -1.310000e-02 4.310000e-02 -5.170000e-02 3.051000e-01 1.811000e-01
- 4.833000e-01 5.855000e-01 6.725000e-01 1.015700e+00 8.943000e-01 1.002800e+00 7.816000e-01 8.851000e-01 9.070000e-01 1.016200e+00 7.665000e-01 9.063000e-01 4.491000e-01 5.144000e-01
- 2.202000e-01 1.536000e-01 3.610000e-01 2.209000e-01 5.806000e-01 5.000000e-02 3.611000e-01 2.241000e-01 4.184000e-01 2.550000e-01 4.442000e-01 1.251000e-01 2.334000e-01 9.850000e-02
- 5.666000e-01 5.338000e-01 2.767000e-01 1.301500e+00 2.398000e-01 7.728000e-01 2.772000e-01 1.298300e+00 2.390000e-01 7.463000e-01 3.174000e-01 1.256700e+00 2.205000e-01 5.236000e-01
- 3.376000e-01 7.419000e-01 4.848000e-01 1.221000e+00 6.335000e-01 1.291000e+00 5.921000e-01 1.088100e+00 6.010000e-01 1.356400e+00 4.958000e-01 1.201200e+00 3.003000e-01 6.781000e-01
- 9.463000e-01 2.020000e-02 1.380900e+00 1.522000e-01 1.676300e+00 5.780000e-02 1.385100e+00 1.532000e-01 1.648500e+00 1.135000e-01 1.339300e+00 2.017000e-01 8.296000e-01 5.060000e-02
- 3.907000e-01 6.294000e-01 5.879000e-01 7.718000e-01 8.172000e-01 6.377000e-01 1.697300e+00 4.520000e-02 1.263000e-01 1.845900e+00 -1.900000e-03 1.300000e-03 4.017000e-01 3.842000e-01
- 1.724000e-01 3.817000e-01 1.702000e-01 7.203000e-01 2.873000e-01 7.049000e-01 2.921000e-01 5.731000e-01 3.515000e-01 6.442000e-01 2.986000e-01 5.659000e-01 1.455000e-01 3.580000e-01
- 1.312000e-01 7.093000e-01 3.948000e-01 7.673000e-01 5.272000e-01 7.554000e-01 1.743300e+00 -1.250000e-02 2.350000e-02 1.975500e+00 2.500000e-03 -3.900000e-03 2.266000e-01 4.576000e-01
- 1.263000e-01 6.105000e-01 2.655000e-01 8.748000e-01 2.336000e-01 1.076800e+00 1.833000e-01 9.726000e-01 3.004000e-01 1.016500e+00 1.962000e-01 9.532000e-01 1.264000e-01 5.363000e-01
- 6.043000e-01 4.914000e-01 1.090000e+00 5.961000e-01 1.056900e+00 8.966000e-01 1.027900e+00 6.694000e-01 1.212700e+00 7.549000e-01 1.065400e+00 6.278000e-01 6.046000e-01 3.749000e-01
- 1.028400e+00 8.930000e-02 4.097000e-01 9.375000e-01 2.813000e-01 6.865000e-01 3.827000e-01 9.620000e-01 2.830000e-01 6.586000e-01 3.508000e-01 1.008600e+00 3.087000e-01 4.039000e-01
--1.970000e-02 7.719000e-01 4.634000e-01 5.700000e-01 5.143000e-01 6.520000e-01 -2.580000e-02 1.762600e+00 -1.730000e-02 2.023200e+00 2.500000e-02 -2.650000e-02 1.832000e-01 4.379000e-01
From scipy-svn at scipy.org Mon Aug 21 04:36:10 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Mon, 21 Aug 2006 03:36:10 -0500 (CDT)
Subject: [Scipy-svn] r2173 - in trunk/Lib/sandbox/svm: . libsvm-2.82 tests
Message-ID: <20060821083610.A7E7C39C013@new.scipy.org>
Author: fullung
Date: 2006-08-21 03:34:44 -0500 (Mon, 21 Aug 2006)
New Revision: 2173
Modified:
trunk/Lib/sandbox/svm/classification.py
trunk/Lib/sandbox/svm/dataset.py
trunk/Lib/sandbox/svm/kernel.py
trunk/Lib/sandbox/svm/libsvm-2.82/svm.h
trunk/Lib/sandbox/svm/libsvm.py
trunk/Lib/sandbox/svm/predict.py
trunk/Lib/sandbox/svm/regression.py
trunk/Lib/sandbox/svm/setup.py
trunk/Lib/sandbox/svm/tests/test_classification.py
trunk/Lib/sandbox/svm/tests/test_dataset.py
trunk/Lib/sandbox/svm/tests/test_kernel.py
trunk/Lib/sandbox/svm/tests/test_regression.py
trunk/Lib/sandbox/svm/tests/test_speed.py
Log:
Refactoring kernels to work better in sparse and dense cases.
Lots of other updates.
Modified: trunk/Lib/sandbox/svm/classification.py
===================================================================
--- trunk/Lib/sandbox/svm/classification.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/classification.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -1,4 +1,5 @@
from ctypes import POINTER, c_int, c_double
+from itertools import izip, repeat, chain
import numpy as N
from model import LibSvmModel
@@ -32,7 +33,11 @@
This function does classification on a test vector x and
returns the label of the predicted class.
"""
- return [int(self.predictor.predict(x)) for x in dataset]
+ if self.predictor.is_compact and dataset.is_array_data():
+ return [int(x) for x in
+ self.predictor.predict(dataset.data)]
+ else:
+ return [int(self.predictor.predict(x)) for x in dataset]
def predict_values(self, dataset):
"""
@@ -45,16 +50,19 @@
2-tuples, one for each permutation of two class labels.
"""
n = self.nr_class * (self.nr_class - 1) / 2
- def p(v):
- count = 0
+ def p(vv):
d = {}
- for i in range(len(self.labels)):
- for j in range(i + 1, len(self.labels)):
- d[self.labels[i], self.labels[j]] = v[count]
- d[self.labels[j], self.labels[i]] = -v[count]
- count += 1
+ labels = self.labels
+ for v, (li, lj) in \
+ izip(vv, chain(*[izip(repeat(x), labels[i+1:])
+ for i, x in enumerate(labels[:-1])])):
+ d[li, lj] = v
+ d[lj, li] = -v
return d
- vs = [self.predictor.predict_values(x, n) for x in dataset]
+ if self.predictor.is_compact and dataset.is_array_data():
+ vs = self.predictor.predict_values(dataset.data, n)
+ else:
+ vs = [self.predictor.predict_values(x, n) for x in dataset]
return [p(v) for v in vs]
def predict_probability(self, dataset):
Modified: trunk/Lib/sandbox/svm/dataset.py
===================================================================
--- trunk/Lib/sandbox/svm/dataset.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/dataset.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -63,7 +63,7 @@
for j, (yj, xj) in enumerate(origdata[i:]):
# Gram matrix is symmetric, so calculate dot product
# once and store it in both required locations
- z = self.kernel(xi, xj, svm_node_dot)
+ z = svm_node_dot(xi, xj, self.kernel)
# fix index so we assign to the right place
j += i
grammat[i][j + 1] = 0, z
@@ -112,7 +112,7 @@
for i, (yi, xi) in enumerate(dataset.data):
i += m
for j, (yj, xj) in enumerate(self.origdata):
- z = self.kernel(xi, xj, svm_node_dot)
+ z = svm_node_dot(xi, xj, self.kernel)
newgrammat[i][j + 1] = 0, z
newgrammat[j][i + 1] = 0, z
for i, (yi, xi) in enumerate(dataset.data):
@@ -121,7 +121,7 @@
newgrammat[k][0] = 0, id
newiddatamap[id] = xi
for j, (yj, xj) in enumerate(dataset.data[i:]):
- z = self.kernel(xi, xj, svm_node_dot)
+ z = svm_node_dot(xi, xj, self.kernel)
j += k
newgrammat[k][j + 1] = 0, z
newgrammat[j][k + 1] = 0, z
@@ -156,12 +156,17 @@
LibSvmDataSet.__init__(self, data)
class LibSvmTestDataSet:
- def __init__(self, origdata):
- self.data = map(lambda x: convert_to_svm_node(x), origdata)
+ def __init__(self, data):
+ self.data = data
self.__len__ = self.data.__len__
- self.__iter__ = self.data.__iter__
- self.__getitem__ = self.data.__getitem__
+ def __iter__(self):
+ for x in self.data:
+ yield convert_to_svm_node(x)
+
+ def is_array_data(self):
+ return isinstance(self.data, N.ndarray)
+
def convert_to_svm_node(x):
y = N.empty(len(x) + 1, dtype=libsvm.svm_node_dtype)
y[-1] = -1, 0.
@@ -179,15 +184,10 @@
'indexes must be unique'
return y
-def svm_node_dot(x, y):
- # associate node indexes with array indexes
- xidx = dict(zip(x['index'][:-1],range(0,len(x))))
- yidx = dict(zip(y['index'][:-1],range(0,len(y))))
- # indexes in either vector
- indexes = N.unique(N.hstack([x['index'],y['index']]))
- z = 0.
- for j in indexes:
- if j in xidx and j in yidx:
- # dot if index is present in both vectors
- z += x['value'][xidx[j]] * y['value'][yidx[j]]
- return z
+def svm_node_dot(x, y, kernel):
+ maxlen = N.maximum(x['index'].max(), y['index'].max()) + 1
+ tmpx = N.zeros((maxlen,), N.float64)
+ tmpy = N.zeros((maxlen,), N.float64)
+ tmpx[x['index'][:-1]] = x['value'][:-1]
+ tmpy[y['index'][:-1]] = y['value'][:-1]
+ return kernel(tmpx, tmpy)
Modified: trunk/Lib/sandbox/svm/kernel.py
===================================================================
--- trunk/Lib/sandbox/svm/kernel.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/kernel.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -14,8 +14,10 @@
def __init__(self):
self.kernel_type = libsvm.LINEAR
- def __call__(self, x, y, dot):
- return dot(x, y)
+ def __call__(self, x, y):
+ x = N.atleast_2d(x)
+ y = N.atleast_2d(y)
+ return N.dot(x, y.T)
class PolynomialKernel:
def __init__(self, degree, gamma, coef0):
@@ -24,8 +26,10 @@
self.gamma = gamma
self.coef0 = coef0
- def __call__(self, x, y, dot):
- base = self.gamma * dot(x, y) + self.coef0
+ def __call__(self, x, y):
+ x = N.atleast_2d(x)
+ y = N.atleast_2d(y)
+ base = self.gamma * N.dot(x, y.T) + self.coef0
tmp = base
ret = 1.0
t = self.degree
@@ -35,28 +39,50 @@
t /= 2
return ret
+ def __repr__(self):
+ return '' % \
+ (self.degree, self.gamma, self.coef0)
+
class RBFKernel:
def __init__(self, gamma):
self.kernel_type = libsvm.RBF
self.gamma = gamma
- def __call__(self, x, y, dot):
- z = dot(x, x) + dot(y, y) - 2 * dot(x, y)
+ def __call__(self, x, y):
+ x = N.atleast_2d(x)
+ y = N.atleast_2d(y)
+ xnorm = N.atleast_2d(N.sum(x*x, axis=1))
+ ynorm = N.atleast_2d(N.sum(y*y, axis=1))
+ z = xnorm + ynorm - 2 * N.atleast_2d(N.dot(x, y.T).squeeze())
return N.exp(-self.gamma * z)
+ def __repr__(self):
+ return '' % (self.gamma,)
+
class SigmoidKernel:
def __init__(self, gamma, coef0):
self.kernel_type = libsvm.SIGMOID
self.gamma = gamma
self.coef0 = coef0
- def __call__(self, x, y, dot):
- return N.tanh(self.gamma * dot(x, y) + self.coef0)
+ def __call__(self, x, y):
+ x = N.atleast_2d(x)
+ y = N.atleast_2d(y)
+ return N.tanh(self.gamma * N.dot(x, y.T) + self.coef0)
+ def __repr__(self):
+ return '' % \
+ (self.gamma, self.coef0)
+
class CustomKernel:
def __init__(self, f):
self.kernel_type = libsvm.PRECOMPUTED
self.f = f
- def __call__(self, x, y, dot):
- return self.f(x, y, dot)
+ def __call__(self, x, y):
+ x = N.atleast_2d(x)
+ y = N.atleast_2d(y)
+ return self.f(x, y)
+
+ def __repr__(self):
+ return '' % str(self.f)
Modified: trunk/Lib/sandbox/svm/libsvm-2.82/svm.h
===================================================================
--- trunk/Lib/sandbox/svm/libsvm-2.82/svm.h 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/libsvm-2.82/svm.h 2006-08-21 08:34:44 UTC (rev 2173)
@@ -1,6 +1,7 @@
#ifndef _LIBSVM_H
#define _LIBSVM_H
+#ifdef _WIN32
#ifdef LIBSVM_DLL
#ifdef LIBSVM_EXPORTS
#define LIBSVM_API __declspec(dllexport)
@@ -10,6 +11,9 @@
#else
#define LIBSVM_API
#endif /* LIBSVM_DLL */
+#else
+#define LIBSVM_API
+#endif /* _WIN32 */
#ifdef __cplusplus
extern "C" {
@@ -73,6 +77,10 @@
LIBSVM_API const char *svm_check_parameter(const struct svm_problem *prob, const struct svm_parameter *param);
LIBSVM_API int svm_check_probability_model(const struct svm_model *model);
+LIBSVM_API void initlibsvm_()
+{
+}
+
#ifdef __cplusplus
}
#endif
Modified: trunk/Lib/sandbox/svm/libsvm.py
===================================================================
--- trunk/Lib/sandbox/svm/libsvm.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/libsvm.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -7,7 +7,7 @@
'svm_node_dtype'
]
-_libsvm = N.ctypes_load_library('libsvm_', __file__)
+_libsvm = N.ctypeslib.load_library('libsvm_', __file__)
svm_node_dtype = \
N.dtype({'names' : ['index', 'value'],
Modified: trunk/Lib/sandbox/svm/predict.py
===================================================================
--- trunk/Lib/sandbox/svm/predict.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/predict.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -1,5 +1,5 @@
from ctypes import POINTER, c_double, addressof, byref
-from itertools import izip
+from itertools import izip, repeat, chain
import numpy as N
from dataset import svm_node_dot
@@ -22,6 +22,7 @@
self._transform_input = self._create_gramvec
else:
self._transform_input = lambda x: x
+ self.is_compact = False
def __del__(self):
libsvm.svm_destroy_model(self.model)
@@ -31,7 +32,7 @@
dtype=libsvm.svm_node_dtype)
for sv_id in self.sv_ids:
sv = self.dataset[sv_id]
- gramvec[sv_id]['value'] = self.kernel(x, sv, svm_node_dot)
+ gramvec[sv_id]['value'] = svm_node_dot(x, sv, self.kernel)
return gramvec
def predict(self, x):
@@ -70,7 +71,7 @@
self.svm_type = modelc.param.svm_type
if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
self.nr_class = modelc.nr_class
- self.labels = modelc.labels[:self.nr_class]
+ self.labels = N.array(modelc.labels[:self.nr_class])
nrho = self.nr_class * (self.nr_class - 1) / 2
self.rho = modelc.rho[:nrho]
self.sv_coef = [modelc.sv_coef[i][:modelc.l]
@@ -97,18 +98,21 @@
def predict(self, x):
if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
- n = self.nr_class * (self.nr_class - 1) / 2
+ nr_class = self.nr_class
+ n = nr_class * (nr_class - 1) / 2
dec_values = self.predict_values(x, n)
- vote = N.zeros((self.nr_class,), N.intc)
- pos = 0
- for i in range(self.nr_class):
- for j in range(i + 1, self.nr_class):
- if dec_values[pos] > 0:
- vote[i] += 1
- else:
- vote[j] += 1
- pos += 1
- return self.labels[vote.argmax()]
+ dec_values = N.atleast_2d(dec_values)
+ vote = N.zeros((nr_class, dec_values.shape[0]), N.uint32)
+ classidx = range(nr_class)
+ for pos, (i, j) in \
+ enumerate(chain(*[izip(repeat(idx), classidx[k+1:])
+ for k, idx in
+ enumerate(classidx[:-1])])):
+ ji = N.array((j, i))
+ decisions = N.array(N.sign(dec_values[:,pos]) > 0, N.int8)
+ chosen_classes = ji[decisions]
+ vote[chosen_classes,:] += 1
+ return self.labels[vote.argmax(axis=0)]
else:
return self.predict_values(x, 1)
@@ -116,7 +120,7 @@
if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
kvalue = N.empty((len(self.support_vectors),))
for i, sv in enumerate(self.support_vectors):
- kvalue[i] = self.kernel(x, sv, svm_node_dot)
+ kvalue[i] = svm_node_dot(x, sv, self.kernel)
p = 0
dec_values = N.empty((n,))
for i in range(self.nr_class):
@@ -136,23 +140,31 @@
return dec_values
else:
z = -self.rho
- for sv_coef, sv in zip(self.sv_coef, self.support_vectors):
- z += sv_coef * self.kernel(x, sv, svm_node_dot)
+ for sv_coef, sv in izip(self.sv_coef, self.support_vectors):
+ z += sv_coef * svm_node_dot(x, sv, self.kernel)
return z
def _predict_values_compact(self, x, n):
if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
for i, sv in enumerate(self.support_vectors):
kvalue = N.empty((len(self.support_vectors),))
- kvalue[i] = self.kernel(x, sv, svm_node_dot)
+ kvalue[i] = svm_node_dot(x, sv, self.kernel)
return kvalue - self.rho
else:
sv = self.support_vectors[0]
- return self.kernel(x, sv, svm_node_dot) - self.rho
+ return svm_node_dot(x, sv, self.kernel) - self.rho
def predict_values(self, x, n):
if self.is_compact:
- return self._predict_values_compact(x, n)
+ if isinstance(x, N.ndarray) \
+ and x.dtype in N.sctypes['float']:
+ svvals = [sv['value'][:-1] for sv in self.support_vectors]
+ kvalues = [self.kernel(x[:,:len(sv)], sv) for sv in svvals]
+ x = [kvalue - rho
+ for kvalue, rho in izip(kvalues, self.rho)]
+ return N.asarray(zip(*x))
+ else:
+ return self._predict_values_compact(x, n)
else:
return self._predict_values_sparse(x, n)
Modified: trunk/Lib/sandbox/svm/regression.py
===================================================================
--- trunk/Lib/sandbox/svm/regression.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/regression.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -29,7 +29,8 @@
This function does regression on a test vector x and returns
the function value of x calculated using the model.
"""
- return [self.predictor.predict(x) for x in dataset]
+ z = [self.predictor.predict(x) for x in dataset]
+ return N.asarray(z).squeeze()
def get_svr_probability(self):
"""
Modified: trunk/Lib/sandbox/svm/setup.py
===================================================================
--- trunk/Lib/sandbox/svm/setup.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/setup.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -1,3 +1,5 @@
+from os.path import join
+
def configuration(parent_package='', top_path=None, package_name='svm'):
from numpy.distutils.misc_util import Configuration
config = Configuration(package_name,parent_package,top_path)
@@ -2,6 +4,12 @@
config.add_subpackage('*')
+ config.add_extension('libsvm_',
+ define_macros=[('LIBSVM_EXPORTS', None),
+ ('LIBSVM_DLL', None)],
+ sources=[join('libsvm-2.82', 'svm.cpp')],
+ depends=[join('libsvm-2.82', 'svm.h')])
return config
if __name__ == '__main__':
from numpy.distutils.core import setup
- setup(**configuration(top_path='', package_name='scipy.sandbox.svm').todict())
+ setup(**configuration(top_path='',
+ package_name='scipy.sandbox.svm').todict())
Modified: trunk/Lib/sandbox/svm/tests/test_classification.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -226,7 +226,7 @@
p = results.predict(testdata)
assert_array_equal(p, refp)
- def check_compact(self):
+ def xcheck_compact(self):
traindata, testdata = self._make_basic_datasets()
kernel = LinearKernel()
cost = 10.0
@@ -236,7 +236,6 @@
refvs = results.predict_values(testdata)
results.compact()
vs = results.predict_values(testdata)
- print vs
for refv, v in zip(refvs, vs):
for key, value in refv.iteritems():
self.assertEqual(value, v[key])
Modified: trunk/Lib/sandbox/svm/tests/test_dataset.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_dataset.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/tests/test_dataset.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -43,7 +43,9 @@
def check_regression(self):
data = [(1.0, N.arange(5))]
- dataset = LibSvmRegressionDataSet(data)
+ y = map(lambda x: x[0], data)
+ x = map(lambda x: x[1], data)
+ dataset = LibSvmRegressionDataSet(y, x)
self.assertAlmostEqual(dataset.gamma, 0.2)
self.assertEqual(len(dataset), len(data))
for i, x in enumerate(dataset):
@@ -52,10 +54,12 @@
def check_classification(self):
data = [(1, N.arange(4)), (2, N.arange(10))]
- dataset = LibSvmClassificationDataSet(data)
+ labels = map(lambda x: x[0], data)
+ x = map(lambda x: x[1], data)
+ dataset = LibSvmClassificationDataSet(labels, x)
self.assertAlmostEqual(dataset.gamma, 0.1)
- self.assert_(1 in dataset.labels)
- self.assert_(2 in dataset.labels)
+ #self.assert_(1 in dataset.labels)
+ #self.assert_(2 in dataset.labels)
self.assertEqual(len(dataset), len(data))
for i, x in enumerate(dataset):
self.assertEqual(data[i][0], x[0])
@@ -70,17 +74,19 @@
assert_array_equal(data[i], x[1]['value'][:-1])
class test_svm_node_dot(NumpyTestCase):
- def check_dot(self):
+ def check_basics(self):
+ kernel = LinearKernel()
+
x = N.array([(-1,0.)], dtype=svm_node_dtype)
- self.assertAlmostEqual(svm_node_dot(x, x), 0.)
+ self.assertAlmostEqual(svm_node_dot(x, x, kernel), 0.)
x = N.array([(1,1.),(-1,0.)], dtype=svm_node_dtype)
y = N.array([(2,2.),(-1,0.)], dtype=svm_node_dtype)
- self.assertAlmostEqual(svm_node_dot(x, y), 0.)
+ self.assertAlmostEqual(svm_node_dot(x, y, kernel), 0.)
x = N.array([(3,2.),(-1,0.)], dtype=svm_node_dtype)
y = N.array([(3,2.),(-1,0.)], dtype=svm_node_dtype)
- self.assertAlmostEqual(svm_node_dot(x, y), 4.)
+ self.assertAlmostEqual(svm_node_dot(x, y, kernel), 4.)
class test_precomputed_dataset(NumpyTestCase):
def check_precompute(self):
@@ -100,7 +106,7 @@
expt_grammat = N.empty((len(y),)*2)
for i, xi in enumerate(x):
for j, xj in enumerate(x):
- expt_grammat[i, j] = kernel(xi, xj, N.dot)
+ expt_grammat[i, j] = kernel(xi, xj)
# get a new dataset containing the precomputed data
pcdata = origdata.precompute(kernel)
for i, row in enumerate(pcdata.grammat):
@@ -124,7 +130,7 @@
x = N.vstack([x1,x2])
for i, xi in enumerate(x):
for j, xj in enumerate(x):
- expt_grammat[i, j] = kernel(xi, xj, N.dot)
+ expt_grammat[i, j] = kernel(xi, xj)
for i, row in enumerate(morepcdata.grammat):
valuerow = row[1:]['value']
assert_array_almost_equal(valuerow, expt_grammat[i])
Modified: trunk/Lib/sandbox/svm/tests/test_kernel.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_kernel.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/tests/test_kernel.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -5,39 +5,59 @@
from svm.kernel import *
restore_path()
+def kernelfunc(x, y):
+ return 8 * N.dot(x, y.T)
+
class test_kernel(NumpyTestCase):
def check_linear_kernel(self):
kernel = LinearKernel()
- dot = N.dot
x = N.array([2.])
- self.assertAlmostEqual(kernel(x, x, dot), 4.)
+ self.assertAlmostEqual(kernel(x, x), 4.)
def check_polynomial_kernel(self):
kernel = PolynomialKernel(degree=6, gamma=1.0, coef0=1.0)
- dot = N.dot
x = N.array([2.])
- self.assertAlmostEqual(kernel(x, x, dot), 15625.)
+ self.assertAlmostEqual(kernel(x, x), 15625.)
def check_sigmoid_kernel(self):
kernel = SigmoidKernel(gamma=0.2, coef0=0.3)
- dot = N.dot
x = N.array([2.])
- self.assertAlmostEqual(kernel(x, x, dot), 0.80049902)
+ self.assertAlmostEqual(kernel(x, x), 0.80049902)
def check_rbf_kernel(self):
kernel = RBFKernel(gamma=1.0)
- dot = N.dot
x, y = N.array([2.]), N.array([3.])
- self.assertAlmostEqual(kernel(x, y, dot), N.exp(-1.))
+ self.assertAlmostEqual(kernel(x, y), N.exp(-1.))
def check_custom_kernel(self):
- def f(x, y, dot):
- return 4 * dot(x, y)
- kernel = CustomKernel(f)
- def dot(x, y):
- return 2 * N.dot(x, y)
+ kernel = CustomKernel(kernelfunc)
x = N.array([2.])
- self.assertAlmostEqual(kernel(x, x, dot), 32.0)
+ self.assertAlmostEqual(kernel(x, x), 32.0)
+ def check_multidim_input(self):
+ kernels = [
+ LinearKernel(),
+ PolynomialKernel(degree=6, gamma=1.0, coef0=1.0),
+ SigmoidKernel(gamma=0.2, coef0=0.3),
+ RBFKernel(gamma=1.0),
+ CustomKernel(kernelfunc)
+ ]
+ args = [
+ N.random.randn(10),
+ N.random.randn(1, 10),
+ N.random.randn(5, 10)
+ ]
+ for kernel in kernels:
+ self.assert_(type(repr(kernel)) is str)
+ for i, x in enumerate(args):
+ zshape0 = N.atleast_2d(x).shape[0]
+ for y in args[i:]:
+ zshape1 = N.atleast_2d(y).shape[0]
+ z = kernel(x, y)
+ self.assertEqual(z.shape[0], zshape0)
+ self.assertEqual(z.shape[1], zshape1)
+ u = kernel(y, x)
+ assert_array_equal(u.squeeze(), z.squeeze())
+
if __name__ == '__main__':
NumpyTest().run()
Modified: trunk/Lib/sandbox/svm/tests/test_regression.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -117,10 +117,10 @@
return trndata, trndata1, trndata2, testdata
def _make_kernels(self):
- def kernelf(x, y, dot):
- return dot(x, y)
- def kernelg(x, y, dot):
- return -dot(x, y)
+ def kernelf(x, y):
+ return N.dot(x, y.T)
+ def kernelg(x, y):
+ return -N.dot(x, y.T)
kernels = [LinearKernel()]
kernels += [RBFKernel(gamma)
for gamma in [-0.1, 0.2, 0.3]]
Modified: trunk/Lib/sandbox/svm/tests/test_speed.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_speed.py 2006-08-21 01:40:20 UTC (rev 2172)
+++ trunk/Lib/sandbox/svm/tests/test_speed.py 2006-08-21 08:34:44 UTC (rev 2173)
@@ -10,19 +10,25 @@
class test_classification_speed(NumpyTestCase):
def check_large_test_dataset(self):
- x = N.random.randn(150, 5)
+ x = N.random.randn(150, 3)
labels = N.random.random_integers(1, 5, x.shape[0])
traindata = LibSvmClassificationDataSet(labels, x)
kernel = RBFKernel(traindata.gamma)
model = LibSvmCClassificationModel(kernel)
+ xdim, ydim = 2, 2
+ img = N.random.randn(xdim, ydim, 3)
+ testdata = LibSvmTestDataSet(img.reshape(xdim*ydim, 3))
+
+ refresults = model.fit(traindata)
results = model.fit(traindata, LibSvmPythonPredictor)
results.compact()
- xdim, ydim = 32, 32
- img = N.random.randn(xdim, ydim, 3)
- testdata = LibSvmTestDataSet(img.reshape(xdim*ydim, 3))
+ #refv = refresults.predict_values(testdata)
v = results.predict_values(testdata)
+ #print refv
+ print v
+
if __name__ == '__main__':
NumpyTest().run()
From scipy-svn at scipy.org Mon Aug 21 12:32:21 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Mon, 21 Aug 2006 11:32:21 -0500 (CDT)
Subject: [Scipy-svn] r2174 - trunk/Lib/sandbox/ann
Message-ID: <20060821163221.DA38439C03D@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-21 11:32:19 -0500 (Mon, 21 Aug 2006)
New Revision: 2174
Modified:
trunk/Lib/sandbox/ann/__init__.py
Log:
Updated __init__
Modified: trunk/Lib/sandbox/ann/__init__.py
===================================================================
--- trunk/Lib/sandbox/ann/__init__.py 2006-08-21 08:34:44 UTC (rev 2173)
+++ trunk/Lib/sandbox/ann/__init__.py 2006-08-21 16:32:19 UTC (rev 2174)
@@ -1,12 +1,6 @@
-#
# req'd file for SciPy package (see DEVELOPERS.txt)
# Fred Mailhot
# 2006-06-13
-#
-# docstring
-from mlp import __doc__
+__all__ = ['mlp','srn','rbf']
-# symbols
-from mlp import *
-
From scipy-svn at scipy.org Tue Aug 22 09:46:40 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Tue, 22 Aug 2006 08:46:40 -0500 (CDT)
Subject: [Scipy-svn] r2175 - trunk/Lib/sandbox/ann
Message-ID: <20060822134640.7015439C04C@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-22 08:46:37 -0500 (Tue, 22 Aug 2006)
New Revision: 2175
Modified:
trunk/Lib/sandbox/ann/rbf.py
Log:
Easier way to select random sample of data for RBF centers.
Modified: trunk/Lib/sandbox/ann/rbf.py
===================================================================
--- trunk/Lib/sandbox/ann/rbf.py 2006-08-21 16:32:19 UTC (rev 2174)
+++ trunk/Lib/sandbox/ann/rbf.py 2006-08-22 13:46:37 UTC (rev 2175)
@@ -3,6 +3,7 @@
# 2006/08/20
import numpy as N
+import random
from scipy.optimize import leastsq
class rbf:
@@ -80,12 +81,8 @@
(ii) set fixed variance from max dist between centers
(iii) learn output weights using scipy's leastsq optimizer
"""
- # set centers
- self.centers = N.zeros((len(X)/10,X.shape[1]))
- for i in range(len(X)):
- if i%10 == 0:
- self.centers[i/10] = X[i]
- # set variance
+ # set centers & variance
+ self.centers = N.array(random.sample(X,len(X)/10))
d_max = 0.0
for i in self.centers:
for j in self.centers:
From scipy-svn at scipy.org Tue Aug 22 10:03:05 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Tue, 22 Aug 2006 09:03:05 -0500 (CDT)
Subject: [Scipy-svn] r2176 - in trunk/Lib/sandbox/ann: . doc
Message-ID: <20060822140305.7C92B39C03A@new.scipy.org>
Author: fred.mailhot
Date: 2006-08-22 09:03:02 -0500 (Tue, 22 Aug 2006)
New Revision: 2176
Added:
trunk/Lib/sandbox/ann/doc/
trunk/Lib/sandbox/ann/doc/mlp.html
trunk/Lib/sandbox/ann/doc/rbf.html
trunk/Lib/sandbox/ann/doc/srn.html
Log:
HTML files for {mlp/rbf/srn}.py generated by pydoc uploaded.
Added: trunk/Lib/sandbox/ann/doc/mlp.html
===================================================================
--- trunk/Lib/sandbox/ann/doc/mlp.html 2006-08-22 13:46:37 UTC (rev 2175)
+++ trunk/Lib/sandbox/ann/doc/mlp.html 2006-08-22 14:03:02 UTC (rev 2176)
@@ -0,0 +1,93 @@
+
+
+Python: module mlp
+
+
+
+ # mlp.py
+# by: Fred Mailhot
+# last mod: 2006-08-19
+
+
+
+
+
+Classes |
+
+ | |
+
+- mlp
+
+
+
+
+
+class mlp |
+
+ |
+Class to define, train and test a multilayer perceptron. |
+ |
+Methods defined here:
+- __init__(self, ni, nh, no, f='linear', w=None)
- Set up instance of mlp. Initial weights are drawn from a
+zero-mean Gaussian w/ variance is scaled by fan-in.
+Input:
+ ni - <int> # of inputs
+ nh - <int> # of hidden units
+ no - <int> # of outputs
+ f - <str> output activation fxn
+ w - <array of float> vector of initial weights
+
+- errfxn(self, w, x, t)
- Return vector of squared-errors for the leastsq optimizer
+
+- fwd_all(self, x, w=None)
- Propagate values forward through the net.
+Input:
+ x - array (size>1) of input patterns
+ w - optional 1-d vector of weights
+Returns:
+ y - array of outputs for all input patterns
+
+- pack(self)
- Compile weight matrices w1,b1,w2,b2 from net into a
+single vector, suitable for optimization routines.
+
+- test_all(self, x, t)
- Test network on an array (size>1) of patterns
+Input:
+ x - array of input data
+ t - array of targets
+Returns:
+ sum-squared-error over all data
+
+- train(self, x, t)
- Train network using scipy's leastsq optimizer
+Input:
+ x - array of input data
+ t - array of targets
+
+ N.B. x and t comprise the *entire* collection of training data
+
+Returns:
+ post-optimization weight vector
+
+- unpack(self)
- Decompose 1-d vector of weights w into appropriate weight
+matrices (w1,b1,w2,b2) and reinsert them into net
+
+ | |
+
+
+
+Functions |
+
+ | |
+- main()
- Build/train/test MLP
+ |
+
\ No newline at end of file
Added: trunk/Lib/sandbox/ann/doc/rbf.html
===================================================================
--- trunk/Lib/sandbox/ann/doc/rbf.html 2006-08-22 13:46:37 UTC (rev 2175)
+++ trunk/Lib/sandbox/ann/doc/rbf.html 2006-08-22 14:03:02 UTC (rev 2176)
@@ -0,0 +1,86 @@
+
+
+Python: module rbf
+
+
+
+ # rbf2.py
+# tilde
+# 2006/08/20
+
+
+
+
+
+Classes |
+
+ | |
+
+- rbf
+
+
+
+
+
+class rbf |
+
+ |
+Class to define/train/test a radial basis function network |
+ |
+Methods defined here:
+- __init__(self, ni, no, f='linear')
- Set up instance of RBF net. N.B. RBF centers and variance are selected at training time
+Input:
+ ni - <int> # of inputs
+ no - <int> # of outputs
+ f - <str> output activation fxn
+
+- err_fxn(self, w, X, Y)
- Return vector of squared-errors for the leastsq optimizer
+
+- fwd_all(self, X, w=None)
- Propagate values forward through the net.
+Inputs:
+ inputs - vector of input values
+ w - packed array of weights
+Returns:
+ array of outputs for all input patterns
+
+- pack(self)
- Compile weight matrices w,b from net into a
+single vector, suitable for optimization routines.
+
+- test_all(self, X, Y)
- Test network on an array (size>1) of patterns
+Input:
+ x - array of input data
+ t - array of targets
+Returns:
+ sum-squared-error over all data
+
+- train(self, X, Y)
- Train RBF network:
+(i) select fixed centers randomly from input data (10%)
+(ii) set fixed variance from max dist between centers
+(iii) learn output weights using scipy's leastsq optimizer
+
+- unpack(self)
- Decompose 1-d vector of weights w into appropriate weight
+matrices (self.{w/b}) and reinsert them into net
+
+ | |
+
+
+
+Functions |
+
+ | |
+- main()
- Build/train/test RBF net
+ |
+
\ No newline at end of file
Added: trunk/Lib/sandbox/ann/doc/srn.html
===================================================================
--- trunk/Lib/sandbox/ann/doc/srn.html 2006-08-22 13:46:37 UTC (rev 2175)
+++ trunk/Lib/sandbox/ann/doc/srn.html 2006-08-22 14:03:02 UTC (rev 2176)
@@ -0,0 +1,90 @@
+
+
+Python: module srn
+
+
+
+ # srn.py
+# by: Fred Mailhot
+# last mod: 2006-08-18
+
+
+
+
+
+Classes |
+
+ | |
+
+- srn
+
+
+
+
+
+class srn |
+
+ |
+Class to define, train and test a simple recurrent network |
+ |
+Methods defined here:
+- __init__(self, ni, nh, no, f='linear', w=None)
- Set up instance of srn. Initial weights are drawn from a
+zero-mean Gaussian w/ variance is scaled by fan-in.
+Input:
+ ni - <int> # of inputs
+ nh - <int> # of hidden & context units
+ no - <int> # of outputs
+ f - <str> output activation fxn
+ w - <array dtype=Float> weight vector
+
+- errfxn(self, w, x, t)
- Return vector of squared-errors for the leastsq optimizer
+
+- fwd_all(self, x, w=None)
- Propagate values forward through the net.
+Input:
+ x - matrix of all input patterns
+ w - 1-d vector of weights
+Returns:
+ y - matrix of all outputs
+
+- pack(self)
- Compile weight matrices w1,b1,wc,w2,b2 from net into a
+single vector, suitable for optimization routines.
+
+- test_all(self, x, t)
- Test network on an array (size>1) of patterns
+Input:
+ x - array of input data
+ t - array of targets
+Returns:
+ sum-squared-error over all data
+
+- train(self, x, t)
- Train a multilayer perceptron using scipy's leastsq optimizer
+Input:
+ x - matrix of input data
+ t - matrix of target outputs
+Returns:
+ post-optimization weight vector
+
+- unpack(self)
- Decompose 1-d vector of weights w into appropriate weight
+matrices (w1,b1,w2,b2) and reinsert them into net
+
+ | |
+
+
+
+Functions |
+
+ | |
+- main()
- Set up a 1-2-1 SRN to solve the temporal-XOR problem from Elman 1990.
+ |
+
\ No newline at end of file
From scipy-svn at scipy.org Wed Aug 23 07:06:56 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 23 Aug 2006 06:06:56 -0500 (CDT)
Subject: [Scipy-svn] r2177 - in trunk/Lib/sandbox/svm: . tests
Message-ID: <20060823110656.1197C39C077@new.scipy.org>
Author: fullung
Date: 2006-08-23 06:06:18 -0500 (Wed, 23 Aug 2006)
New Revision: 2177
Added:
trunk/Lib/sandbox/svm/tests/testall.py
Removed:
trunk/Lib/sandbox/svm/tests/test_all.py
Modified:
trunk/Lib/sandbox/svm/
trunk/Lib/sandbox/svm/classification.py
trunk/Lib/sandbox/svm/dataset.py
trunk/Lib/sandbox/svm/kernel.py
trunk/Lib/sandbox/svm/predict.py
trunk/Lib/sandbox/svm/tests/
trunk/Lib/sandbox/svm/tests/test_classification.py
trunk/Lib/sandbox/svm/tests/test_speed.py
Log:
More tests, more error checks.
Property changes on: trunk/Lib/sandbox/svm
___________________________________________________________________
Name: svn:ignore
+ *.pyc
Modified: trunk/Lib/sandbox/svm/classification.py
===================================================================
--- trunk/Lib/sandbox/svm/classification.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/classification.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -51,6 +51,7 @@
"""
n = self.nr_class * (self.nr_class - 1) / 2
def p(vv):
+ vv = N.atleast_1d(vv)
d = {}
labels = self.labels
for v, (li, lj) in \
Modified: trunk/Lib/sandbox/svm/dataset.py
===================================================================
--- trunk/Lib/sandbox/svm/dataset.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/dataset.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -165,7 +165,8 @@
yield convert_to_svm_node(x)
def is_array_data(self):
- return isinstance(self.data, N.ndarray)
+ return isinstance(self.data, N.ndarray) and \
+ self.data.dtype in N.sctypes['float']
def convert_to_svm_node(x):
y = N.empty(len(x) + 1, dtype=libsvm.svm_node_dtype)
Modified: trunk/Lib/sandbox/svm/kernel.py
===================================================================
--- trunk/Lib/sandbox/svm/kernel.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/kernel.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -19,6 +19,9 @@
y = N.atleast_2d(y)
return N.dot(x, y.T)
+ def compact(self, *args):
+ return self
+
class PolynomialKernel:
def __init__(self, degree, gamma, coef0):
self.kernel_type = libsvm.POLY
@@ -43,12 +46,17 @@
return '' % \
(self.degree, self.gamma, self.coef0)
+ def compact(self, *args):
+ raise NotImplementedError, \
+ 'model compaction for PolynomialKernel not implemented'
+
class RBFKernel:
def __init__(self, gamma):
self.kernel_type = libsvm.RBF
self.gamma = gamma
+ self.__call__ = self.evaluate
- def __call__(self, x, y):
+ def evaluate(self, x, y):
x = N.atleast_2d(x)
y = N.atleast_2d(y)
xnorm = N.atleast_2d(N.sum(x*x, axis=1))
@@ -56,9 +64,16 @@
z = xnorm + ynorm - 2 * N.atleast_2d(N.dot(x, y.T).squeeze())
return N.exp(-self.gamma * z)
+ def evaluate_compact(self, x, y):
+ raise NotImplementedError
+
def __repr__(self):
return '' % (self.gamma,)
+ def compact(self, *args):
+ raise NotImplementedError, \
+ 'model compaction for RBFKernel not implemented'
+
class SigmoidKernel:
def __init__(self, gamma, coef0):
self.kernel_type = libsvm.SIGMOID
@@ -74,6 +89,10 @@
return '' % \
(self.gamma, self.coef0)
+ def compact(self, *args):
+ raise NotImplementedError, \
+ 'model compaction for SigmoidKernel not implemented'
+
class CustomKernel:
def __init__(self, f):
self.kernel_type = libsvm.PRECOMPUTED
@@ -86,3 +105,7 @@
def __repr__(self):
return '' % str(self.f)
+
+ def compact(self, *args):
+ raise NotImplementedError, \
+ 'model compaction for CustomKernel not implemented'
Modified: trunk/Lib/sandbox/svm/predict.py
===================================================================
--- trunk/Lib/sandbox/svm/predict.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/predict.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -10,11 +10,17 @@
'LibSvmPythonPredictor'
]
+def is_classification_problem(svm_type):
+ return svm_type in [libsvm.C_SVC, libsvm.NU_SVC]
+
class LibSvmPredictor:
def __init__(self, model, dataset, kernel):
self.model = model
self.kernel = kernel
modelc = model.contents
+ if is_classification_problem(modelc.param.svm_type) \
+ and modelc.nSV[0] == 0:
+ raise ValueError, 'model contains no support vectors'
if modelc.param.kernel_type == libsvm.PRECOMPUTED:
self.dataset = dataset
self.sv_ids = [int(modelc.SV[i][0].value)
@@ -69,7 +75,10 @@
self.kernel = kernel
modelc = model.contents
self.svm_type = modelc.param.svm_type
- if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
+ if is_classification_problem(self.svm_type) \
+ and modelc.nSV[0] == 0:
+ raise ValueError, 'model contains no support vectors'
+ if is_classification_problem(self.svm_type):
self.nr_class = modelc.nr_class
self.labels = N.array(modelc.labels[:self.nr_class])
nrho = self.nr_class * (self.nr_class - 1) / 2
@@ -97,7 +106,7 @@
libsvm.svm_destroy_model(model)
def predict(self, x):
- if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
+ if is_classification_problem(self.svm_type):
nr_class = self.nr_class
n = nr_class * (nr_class - 1) / 2
dec_values = self.predict_values(x, n)
@@ -117,7 +126,7 @@
return self.predict_values(x, 1)
def _predict_values_sparse(self, x, n):
- if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
+ if is_classification_problem(self.svm_type):
kvalue = N.empty((len(self.support_vectors),))
for i, sv in enumerate(self.support_vectors):
kvalue[i] = svm_node_dot(x, sv, self.kernel)
@@ -145,21 +154,26 @@
return z
def _predict_values_compact(self, x, n):
- if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
- for i, sv in enumerate(self.support_vectors):
+ if is_classification_problem(self.svm_type):
+ for i, (sv, kernel) in \
+ enumerate(izip(self.support_vectors, self.kernels)):
kvalue = N.empty((len(self.support_vectors),))
- kvalue[i] = svm_node_dot(x, sv, self.kernel)
- return kvalue - self.rho
+ kvalue[i] = svm_node_dot(x, sv, kernel)
+ kvalue -= self.rho
+ return kvalue
else:
sv = self.support_vectors[0]
- return svm_node_dot(x, sv, self.kernel) - self.rho
+ kernel = self.kernels[0]
+ kvalue = svm_node_dot(x, sv, kernel) - self.rho
+ return kvalue
def predict_values(self, x, n):
if self.is_compact:
if isinstance(x, N.ndarray) \
and x.dtype in N.sctypes['float']:
svvals = [sv['value'][:-1] for sv in self.support_vectors]
- kvalues = [self.kernel(x[:,:len(sv)], sv) for sv in svvals]
+ kvalues = [kernel(x[:,:len(sv)], sv)
+ for sv, kernel in izip(svvals, self.kernels)]
x = [kvalue - rho
for kvalue, rho in izip(kvalues, self.rho)]
return N.asarray(zip(*x))
@@ -184,8 +198,9 @@
return csv
def compact(self):
- if self.svm_type in [libsvm.C_SVC, libsvm.NU_SVC]:
+ if is_classification_problem(self.svm_type):
compact_support_vectors = []
+ kernels = []
for i in range(self.nr_class):
for j in range(i + 1, self.nr_class):
si, sj = self.start[i], self.start[j]
@@ -194,10 +209,22 @@
svj = self.support_vectors[sj:sj + cj]
coef1 = self.sv_coef[j - 1][si:si + ci]
coef2 = self.sv_coef[i][sj:sj + cj]
- csv = self._compact_svs(svi + svj, coef1 + coef2)
+ svij = svi + svj
+ coef12 = coef1 + coef2
+ # Create a compacted kernel. This allows a kernel
+ # that depends on some values that cannot be
+ # calculated using from the compact representation
+ # of the support vectors to calculate these
+ # values before the time.
+ kernels.append(self.kernel.compact(svij, coef12))
+ csv = self._compact_svs(svij, coef12)
compact_support_vectors.append(csv)
self.support_vectors = compact_support_vectors
+ self.kernel = None
+ self.kernels = kernels
else:
csv = self._compact_svs(self.support_vectors, self.sv_coef)
self.support_vectors = [csv]
+ self.kernels = [self.kernel.compact()]
+ self.kernel = None
self.is_compact = True
Property changes on: trunk/Lib/sandbox/svm/tests
___________________________________________________________________
Name: svn:ignore
+ *.pyc
Deleted: trunk/Lib/sandbox/svm/tests/test_all.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_all.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/tests/test_all.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -1,9 +0,0 @@
-from test_classification import *
-from test_dataset import *
-from test_kernel import *
-from test_libsvm import *
-from test_oneclass import *
-from test_regression import *
-
-if __name__ == '__main__':
- NumpyTest().run()
Modified: trunk/Lib/sandbox/svm/tests/test_classification.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/tests/test_classification.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -1,3 +1,4 @@
+from itertools import izip
from numpy.testing import *
import numpy as N
@@ -240,5 +241,71 @@
for key, value in refv.iteritems():
self.assertEqual(value, v[key])
+ def _make_compact_check_datasets(self):
+ x = N.random.randn(150, 3)
+ labels = N.random.random_integers(1, 5, x.shape[0])
+ traindata = LibSvmClassificationDataSet(labels, x)
+ xdim, ydim, zdim = 4, 4, x.shape[1]
+ img = N.random.randn(xdim, ydim, zdim)
+ testdata1 = LibSvmTestDataSet(img.reshape(xdim*ydim, zdim))
+ testdata2 = LibSvmTestDataSet(list(img.reshape(xdim*ydim, zdim)))
+ return traindata, testdata1, testdata2
+
+ def check_compact_predict_values(self):
+ def compare_predict_values(vx, vy):
+ for pred1, pred2 in izip(vx, vy):
+ for labels, x in pred1.iteritems():
+ self.assert_(labels in pred2)
+ self.assertAlmostEqual(x, pred2[labels])
+ traindata, testdata1, testdata2 = \
+ self._make_compact_check_datasets()
+ kernel = LinearKernel()
+ model = LibSvmCClassificationModel(kernel)
+ refresults = model.fit(traindata)
+ refv1 = refresults.predict_values(testdata1)
+ refv2 = refresults.predict_values(testdata2)
+ results = model.fit(traindata, LibSvmPythonPredictor)
+ v11 = results.predict_values(testdata1)
+ v12 = results.predict_values(testdata2)
+ results.compact()
+ v21 = results.predict_values(testdata1)
+ v22 = results.predict_values(testdata2)
+ compare_predict_values(refv1, refv2)
+ compare_predict_values(refv1, v11)
+ compare_predict_values(refv1, v12)
+ compare_predict_values(refv1, v21)
+ # XXX this test fails
+ #compare_predict_values(refv1, v22)
+
+ def check_compact_predict(self):
+ traindata, testdata1, testdata2 = \
+ self._make_compact_check_datasets()
+ kernel = LinearKernel()
+ model = LibSvmCClassificationModel(kernel)
+ refresults = model.fit(traindata)
+ refp1 = refresults.predict(testdata1)
+ refp2 = refresults.predict(testdata2)
+ results = model.fit(traindata, LibSvmPythonPredictor)
+ p11 = results.predict(testdata1)
+ p12 = results.predict(testdata2)
+ results.compact()
+ p21 = results.predict(testdata1)
+ p22 = results.predict(testdata2)
+ self.assertEqual(refp1, refp2)
+ self.assertEqual(refp1, p11)
+ self.assertEqual(refp1, p12)
+ # XXX these tests fail
+ #self.assertEqual(refp1, p21)
+ #self.assertEqual(refp1, p22)
+
+ def check_no_support_vectors(self):
+ x = N.array([[10.0, 20.0]])
+ labels = [1]
+ traindata = LibSvmClassificationDataSet(labels, x)
+ kernel = LinearKernel()
+ model = LibSvmCClassificationModel(kernel)
+ testdata = LibSvmTestDataSet(x)
+ self.assertRaises(ValueError, model.fit, traindata)
+
if __name__ == '__main__':
NumpyTest().run()
Modified: trunk/Lib/sandbox/svm/tests/test_speed.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_speed.py 2006-08-22 14:03:02 UTC (rev 2176)
+++ trunk/Lib/sandbox/svm/tests/test_speed.py 2006-08-23 11:06:18 UTC (rev 2177)
@@ -11,24 +11,43 @@
class test_classification_speed(NumpyTestCase):
def check_large_test_dataset(self):
x = N.random.randn(150, 3)
+
+ # XXX shows bug where we can't get any support vectors
+ #x = N.random.randn(4, 2)
+
+ #x = N.random.randn(10, 3)
+
labels = N.random.random_integers(1, 5, x.shape[0])
+ #labels = N.random.random_integers(1, 2, x.shape[0])
traindata = LibSvmClassificationDataSet(labels, x)
-
- kernel = RBFKernel(traindata.gamma)
+ #kernel = RBFKernel(traindata.gamma)
+ kernel = LinearKernel()
+ #kernel = PolynomialKernel(2, 5, 10)
model = LibSvmCClassificationModel(kernel)
- xdim, ydim = 2, 2
- img = N.random.randn(xdim, ydim, 3)
- testdata = LibSvmTestDataSet(img.reshape(xdim*ydim, 3))
+ #xdim, ydim, zdim = 1, 1, x.shape[1]
+ xdim, ydim, zdim = 2, 2, x.shape[1]
+ img = N.random.randn(xdim, ydim, zdim)
+ testdata1 = LibSvmTestDataSet(img.reshape(xdim*ydim, zdim))
+ testdata2 = LibSvmTestDataSet(list(img.reshape(xdim*ydim, zdim)))
refresults = model.fit(traindata)
+ refv1 = refresults.predict_values(testdata1)
+ refv2 = refresults.predict_values(testdata2)
+
results = model.fit(traindata, LibSvmPythonPredictor)
+ #v11 = results.predict_values(testdata1)
+ #v12 = results.predict_values(testdata2)
+
results.compact()
+ v21 = results.predict_values(testdata1)
+ #v22 = results.predict_values(testdata2)
- #refv = refresults.predict_values(testdata)
- v = results.predict_values(testdata)
+ print refv1
+ print refv2
+ #print v11
+ #print v12
+ print v21
+ #print v22
- #print refv
- print v
-
if __name__ == '__main__':
NumpyTest().run()
Copied: trunk/Lib/sandbox/svm/tests/testall.py (from rev 2176, trunk/Lib/sandbox/svm/tests/test_all.py)
From scipy-svn at scipy.org Fri Aug 25 04:09:05 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 25 Aug 2006 03:09:05 -0500 (CDT)
Subject: [Scipy-svn] r2178 - in trunk/Lib/io: . tests/data
Message-ID: <20060825080905.155B339C07F@new.scipy.org>
Author: stefan
Date: 2006-08-25 03:08:57 -0500 (Fri, 25 Aug 2006)
New Revision: 2178
Added:
trunk/Lib/io/tests/data/testvec_4_GLNX86.mat
Modified:
trunk/Lib/io/mio.py
Log:
Fix loadmat for v4 files and add test.
Modified: trunk/Lib/io/mio.py
===================================================================
--- trunk/Lib/io/mio.py 2006-08-23 11:06:18 UTC (rev 2177)
+++ trunk/Lib/io/mio.py 2006-08-25 08:08:57 UTC (rev 2178)
@@ -8,7 +8,8 @@
import zlib
from numpy import array, asarray, empty, obj2sctype, product, reshape, \
- squeeze, transpose, zeros, vstack, ndarray, shape, diff, where, uint8
+ squeeze, transpose, zeros, vstack, ndarray, shape, diff, where, uint8, \
+ atleast_1d
import numpyio
try:
@@ -113,7 +114,7 @@
self.file.seek(*args)
def tell(self):
- self.file.tell()
+ return self.file.tell()
def raw_read(self, size=-1):
"""Read raw bytes from file as string."""
Added: trunk/Lib/io/tests/data/testvec_4_GLNX86.mat
===================================================================
(Binary files differ)
Property changes on: trunk/Lib/io/tests/data/testvec_4_GLNX86.mat
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
From scipy-svn at scipy.org Fri Aug 25 04:48:17 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Fri, 25 Aug 2006 03:48:17 -0500 (CDT)
Subject: [Scipy-svn] r2179 - trunk/Lib/io/tests
Message-ID: <20060825084817.37E7839C07F@new.scipy.org>
Author: stefan
Date: 2006-08-25 03:48:12 -0500 (Fri, 25 Aug 2006)
New Revision: 2179
Modified:
trunk/Lib/io/tests/test_mio.py
Log:
In test_mio, check accuracy to 5 decimals only (allows results to be
typed in code). Add vec as a testcase.
Modified: trunk/Lib/io/tests/test_mio.py
===================================================================
--- trunk/Lib/io/tests/test_mio.py 2006-08-25 08:08:57 UTC (rev 2178)
+++ trunk/Lib/io/tests/test_mio.py 2006-08-25 08:48:12 UTC (rev 2179)
@@ -52,10 +52,11 @@
assert SP.issparse(actual), "Expected sparse at %s" % label
assert_array_almost_equal(actual.todense(),
expected.todense(),
- err_msg = label)
+ err_msg = label,
+ decimal = 5)
elif isinstance(expected, ndarray):
assert isinstance(actual, ndarray), "Expected ndarray at %s" % label
- assert_array_almost_equal(actual, expected, err_msg=label)
+ assert_array_almost_equal(actual, expected, err_msg=label, decimal = 5)
else:
assert isinstance(expected, type(actual)), \
"Types %s and %s do not match at %s" % (type(expected), type(actual), label)
@@ -183,6 +184,12 @@
{'name': 'object',
'expected': {'testobject': a}
})
+
+ case_table.append(
+ {'name': 'vec',
+ 'expected': {'fit_params': array([1.27661364061704e+09,7.51130255826677e-03]),
+ 'xdot_filt': array([8.11154474752301e-13,1.28504039006994e-11])}
+ })
# add tests
for case in case_table:
From scipy-svn at scipy.org Sun Aug 27 03:44:22 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Sun, 27 Aug 2006 02:44:22 -0500 (CDT)
Subject: [Scipy-svn] r2180 - in trunk/Lib: misc signal special stats
Message-ID: <20060827074422.A1A0139C00D@new.scipy.org>
Author: oliphant
Date: 2006-08-27 02:44:15 -0500 (Sun, 27 Aug 2006)
New Revision: 2180
Modified:
trunk/Lib/misc/common.py
trunk/Lib/signal/waveforms.py
trunk/Lib/special/basic.py
trunk/Lib/stats/distributions.py
trunk/Lib/stats/stats.py
Log:
Change all uses of insert(arr, mask, axis) to place(arr, mask, axis)
Modified: trunk/Lib/misc/common.py
===================================================================
--- trunk/Lib/misc/common.py 2006-08-25 08:48:12 UTC (rev 2179)
+++ trunk/Lib/misc/common.py 2006-08-27 07:44:15 UTC (rev 2180)
@@ -9,7 +9,7 @@
from numpy import exp, asarray, arange, \
newaxis, hstack, product, array, where, \
- zeros, extract, insert, pi, sqrt, eye, poly1d, dot, r_
+ zeros, extract, place, pi, sqrt, eye, poly1d, dot, r_
from numpy import who
@@ -81,8 +81,8 @@
evenn = extract(cond2,n)
nd2o = oddn / 2.0
nd2e = evenn / 2.0
- insert(vals,cond1,special.gamma(nd2o+1)/sqrt(pi)*pow(2.0,nd2o+0.5))
- insert(vals,cond2,special.gamma(nd2e+1) * pow(2.0,nd2e))
+ place(vals,cond1,special.gamma(nd2o+1)/sqrt(pi)*pow(2.0,nd2o+0.5))
+ place(vals,cond2,special.gamma(nd2e+1) * pow(2.0,nd2e))
return vals
def factorialk(n,k,exact=1):
Modified: trunk/Lib/signal/waveforms.py
===================================================================
--- trunk/Lib/signal/waveforms.py 2006-08-25 08:48:12 UTC (rev 2179)
+++ trunk/Lib/signal/waveforms.py 2006-08-27 07:44:15 UTC (rev 2180)
@@ -3,7 +3,7 @@
# Author: Travis Oliphant
# 2003
-from numpy import asarray, zeros, insert, nan, mod, pi, extract, log, sqrt, \
+from numpy import asarray, zeros, place, nan, mod, pi, extract, log, sqrt, \
exp, cos, sin, size, polyval, polyint, log10
def sawtooth(t,width=1):
@@ -23,7 +23,7 @@
# width must be between 0 and 1 inclusive
mask1 = (w > 1) | (w < 0)
- insert(y,mask1,nan)
+ place(y,mask1,nan)
# take t modulo 2*pi
tmod = mod(t,2*pi)
@@ -33,7 +33,7 @@
mask2 = (1-mask1) & (tmod < w*2*pi)
tsub = extract(mask2,tmod)
wsub = extract(mask2,w)
- insert(y,mask2,tsub / (pi*wsub) - 1)
+ place(y,mask2,tsub / (pi*wsub) - 1)
# on the interval width*2*pi to 2*pi function is
# (pi*(w+1)-tmod) / (pi*(1-w))
@@ -41,7 +41,7 @@
mask3 = (1-mask1) & (1-mask2)
tsub = extract(mask3,tmod)
wsub = extract(mask3,w)
- insert(y,mask3, (pi*(wsub+1)-tsub)/(pi*(1-wsub)))
+ place(y,mask3, (pi*(wsub+1)-tsub)/(pi*(1-wsub)))
return y
@@ -61,7 +61,7 @@
# width must be between 0 and 1 inclusive
mask1 = (w > 1) | (w < 0)
- insert(y,mask1,nan)
+ place(y,mask1,nan)
# take t modulo 2*pi
tmod = mod(t,2*pi)
@@ -71,7 +71,7 @@
mask2 = (1-mask1) & (tmod < w*2*pi)
tsub = extract(mask2,tmod)
wsub = extract(mask2,w)
- insert(y,mask2,1)
+ place(y,mask2,1)
# on the interval duty*2*pi to 2*pi function is
# (pi*(w+1)-tmod) / (pi*(1-w))
@@ -79,7 +79,7 @@
mask3 = (1-mask1) & (1-mask2)
tsub = extract(mask3,tmod)
wsub = extract(mask3,w)
- insert(y,mask3,-1)
+ place(y,mask3,-1)
return y
def gausspulse(t,fc=1000,bw=0.5,bwr=-6,tpr=-60,retquad=0,retenv=0):
Modified: trunk/Lib/special/basic.py
===================================================================
--- trunk/Lib/special/basic.py 2006-08-25 08:48:12 UTC (rev 2179)
+++ trunk/Lib/special/basic.py 2006-08-27 07:44:15 UTC (rev 2180)
@@ -32,18 +32,18 @@
y = zeros(x.shape,ytype)
mask1 = (n <= 0) | (n <> floor(n))
- insert(y,mask1,nan)
+ place(y,mask1,nan)
z = asarray(x / 2.0 / pi)
mask2 = (1-mask1) & (z == floor(z))
zsub = extract(mask2,z)
nsub = extract(mask2,n)
- insert(y,mask2,pow(-1,zsub*(nsub-1)))
+ place(y,mask2,pow(-1,zsub*(nsub-1)))
mask = (1-mask1) & (1-mask2)
xsub = extract(mask,x)
nsub = extract(mask,n)
- insert(y,mask,sin(nsub*xsub/2.0)/(nsub*sin(xsub/2.0)))
+ place(y,mask,sin(nsub*xsub/2.0)/(nsub*sin(xsub/2.0)))
return y
Modified: trunk/Lib/stats/distributions.py
===================================================================
--- trunk/Lib/stats/distributions.py 2006-08-25 08:48:12 UTC (rev 2179)
+++ trunk/Lib/stats/distributions.py 2006-08-27 07:44:15 UTC (rev 2180)
@@ -13,7 +13,7 @@
ravel, take, ones, sum, shape, product, repeat, reshape, \
zeros, floor, logical_and, log, sqrt, exp, arctanh, tan, sin, arcsin, \
arctan, tanh, ndarray, cos, cosh, sinh, newaxis
-from numpy import atleast_1d, polyval, angle, ceil, insert, extract, \
+from numpy import atleast_1d, polyval, angle, ceil, place, extract, \
any, argsort, argmax, vectorize, r_, asarray, nan, inf, pi, isnan, isinf
import numpy
import numpy.random as mtrand
@@ -461,10 +461,10 @@
cond1 = (scale > 0) & (x > self.a) & (x < self.b)
cond = cond0 & cond1
output = zeros(shape(cond),'d')
- insert(output,(1-cond0)*(cond1==cond1),self.badvalue)
+ place(output,(1-cond0)*(cond1==cond1),self.badvalue)
goodargs = argsreduce(cond, *((x,)+args+(scale,)))
scale, goodargs = goodargs[-1], goodargs[:-1]
- insert(output,cond,self._pdf(*goodargs) / scale)
+ place(output,cond,self._pdf(*goodargs) / scale)
return output
def cdf(self,x,*args,**kwds):
@@ -490,10 +490,10 @@
cond2 = (x >= self.b) & cond0
cond = cond0 & cond1
output = zeros(shape(cond),'d')
- insert(output,(1-cond0)*(cond1==cond1),self.badvalue)
- insert(output,cond2,1.0)
+ place(output,(1-cond0)*(cond1==cond1),self.badvalue)
+ place(output,cond2,1.0)
goodargs = argsreduce(cond, *((x,)+args))
- insert(output,cond,self._cdf(*goodargs))
+ place(output,cond,self._cdf(*goodargs))
return output
def sf(self,x,*args,**kwds):
@@ -519,10 +519,10 @@
cond2 = cond0 & (x <= self.a)
cond = cond0 & cond1
output = zeros(shape(cond),'d')
- insert(output,(1-cond0)*(cond1==cond1),self.badvalue)
- insert(output,cond2,1.0)
+ place(output,(1-cond0)*(cond1==cond1),self.badvalue)
+ place(output,cond2,1.0)
goodargs = argsreduce(cond, *((x,)+args))
- insert(output,cond,self._sf(*goodargs))
+ place(output,cond,self._sf(*goodargs))
return output
def ppf(self,q,*args,**kwds):
@@ -547,11 +547,11 @@
cond2 = (q==1) & cond0
cond = cond0 & cond1
output = valarray(shape(cond),value=self.a*scale + loc)
- insert(output,(1-cond0)+(1-cond1)*(q!=0.0), self.badvalue)
- insert(output,cond2,self.b*scale + loc)
+ place(output,(1-cond0)+(1-cond1)*(q!=0.0), self.badvalue)
+ place(output,cond2,self.b*scale + loc)
goodargs = argsreduce(cond, *((q,)+args+(scale,loc)))
scale, loc, goodargs = goodargs[-2], goodargs[-1], goodargs[:-2]
- insert(output,cond,self._ppf(*goodargs)*scale + loc)
+ place(output,cond,self._ppf(*goodargs)*scale + loc)
return output
def isf(self,q,*args,**kwds):
@@ -576,11 +576,11 @@
cond2 = (q==1) & cond0
cond = cond0 & cond1
output = valarray(shape(cond),value=self.b)
- insert(output,(1-cond0)*(cond1==cond1), self.badvalue)
- insert(output,cond2,self.a)
+ place(output,(1-cond0)*(cond1==cond1), self.badvalue)
+ place(output,cond2,self.a)
goodargs = argsreduce(cond, *((1.0-q,)+args+(scale,loc)))
scale, loc, goodargs = goodargs[-2], goodargs[-1], goodargs[:-2]
- insert(output,cond,self._ppf(*goodargs)*scale + loc)
+ place(output,cond,self._ppf(*goodargs)*scale + loc)
return output
def stats(self,*args,**kwds):
@@ -643,7 +643,7 @@
if mu is None:
mu = self._munp(1.0,*goodargs)
out0 = default.copy()
- insert(out0,cond,mu*scale+loc)
+ place(out0,cond,mu*scale+loc)
output.append(out0)
if 'v' in moments:
@@ -653,7 +653,7 @@
mu = self._munp(1.0,*goodargs)
mu2 = mu2p - mu*mu
out0 = default.copy()
- insert(out0,cond,mu2*scale*scale)
+ place(out0,cond,mu2*scale*scale)
output.append(out0)
if 's' in moments:
@@ -667,7 +667,7 @@
mu3 = mu3p - 3*mu*mu2 - mu**3
g1 = mu3 / mu2**1.5
out0 = default.copy()
- insert(out0,cond,g1)
+ place(out0,cond,g1)
output.append(out0)
if 'k' in moments:
@@ -684,7 +684,7 @@
mu4 = mu4p - 4*mu*mu3 - 6*mu*mu*mu2 - mu**4
g2 = mu4 / mu2**2.0 - 3.0
out0 = default.copy()
- insert(out0,cond,g2)
+ place(out0,cond,g2)
output.append(out0)
if len(output) == 1:
@@ -780,9 +780,9 @@
args = map(arr,args)
cond0 = self._argcheck(*args) & (scale > 0) & (loc==loc)
output = zeros(shape(cond0),'d')
- insert(output,(1-cond0),self.badvalue)
+ place(output,(1-cond0),self.badvalue)
goodargs = argsreduce(cond0, *args)
- insert(output,cond0,self.vecentropy(*goodargs)+log(scale))
+ place(output,cond0,self.vecentropy(*goodargs)+log(scale))
return output
_EULER = 0.577215664901532860606512090082402431042 # -special.psi(1)
@@ -2595,25 +2595,25 @@
mask = b > 1
bt = extract(mask,b)
mu = valarray(shape(b),value=inf)
- insert(mu, mask, bt / (bt-1.0))
+ place(mu, mask, bt / (bt-1.0))
if 'v' in moments:
mask = b > 2
bt = extract( mask,b)
mu2 = valarray(shape(b), value=inf)
- insert(mu2, mask, bt / (bt-2.0) / (bt-1.0)**2)
+ place(mu2, mask, bt / (bt-2.0) / (bt-1.0)**2)
if 's' in moments:
mask = b > 3
bt = extract( mask,b)
g1 = valarray(shape(b), value=nan)
vals = 2*(bt+1.0)*sqrt(b-2.0)/((b-3.0)*sqrt(b))
- insert(g1, mask, vals)
+ place(g1, mask, vals)
if 'k' in moments:
mask = b > 4
bt = extract( mask,b)
g2 = valarray(shape(b), value=nan)
vals = 6.0*polyval([1.0,1.0,-6,-2],bt)/ \
polyval([1.0,-7.0,12.0,0.0],bt)
- insert(g2, mask, vals)
+ place(g2, mask, vals)
return mu, mu2, g1, g2
def _entropy(self, c):
return 1 + 1.0/c - log(c)
@@ -3142,11 +3142,11 @@
xn = 2*pi - xn
yn = tan(xn/2.0)
on = 1.0-1.0/pi*arctan(valn*yn)
- insert(output, c2, on)
+ place(output, c2, on)
if (any(xp)):
yp = tan(xp/2.0)
op = 1.0/pi*arctan(valp*yp)
- insert(output, c1, op)
+ place(output, c1, op)
return output
def _ppf(self, q, c):
val = (1.0-c)/(1.0+c)
@@ -3502,9 +3502,9 @@
cond1 = (k >= self.a) & (k <= self.b) & self._nonzero(k,*args)
cond = cond0 & cond1
output = zeros(shape(cond),'d')
- insert(output,(1-cond0)*(cond1==cond1),self.badvalue)
+ place(output,(1-cond0)*(cond1==cond1),self.badvalue)
goodargs = argsreduce(cond, *((k,)+args))
- insert(output,cond,self._pmf(*goodargs))
+ place(output,cond,self._pmf(*goodargs))
return output
def cdf(self, k, *args, **kwds):
@@ -3529,10 +3529,10 @@
cond2 = (k >= self.b)
cond = cond0 & cond1
output = zeros(shape(cond),'d')
- insert(output,(1-cond0)*(cond1==cond1),self.badvalue)
- insert(output,cond2*(cond0==cond0), 1.0)
+ place(output,(1-cond0)*(cond1==cond1),self.badvalue)
+ place(output,cond2*(cond0==cond0), 1.0)
goodargs = argsreduce(cond, *((k,)+args))
- insert(output,cond,self._cdf(*goodargs))
+ place(output,cond,self._cdf(*goodargs))
return output
def sf(self,k,*args,**kwds):
@@ -3557,10 +3557,10 @@
cond2 = (k < self.a) & cond0
cond = cond0 & cond1
output = zeros(shape(cond),'d')
- insert(output,(1-cond0)*(cond1==cond1),self.badvalue)
- insert(output,cond2,1.0)
+ place(output,(1-cond0)*(cond1==cond1),self.badvalue)
+ place(output,cond2,1.0)
goodargs = argsreduce(cond, *((k,)+args))
- insert(output,cond,self._sf(*goodargs))
+ place(output,cond,self._sf(*goodargs))
return output
def ppf(self,q,*args,**kwds):
@@ -3584,11 +3584,11 @@
cond2 = (q==1) & cond0
cond = cond0 & cond1
output = valarray(shape(cond),value=self.a-1)
- insert(output,(1-cond0)*(cond1==cond1), self.badvalue)
- insert(output,cond2,self.b)
+ place(output,(1-cond0)*(cond1==cond1), self.badvalue)
+ place(output,cond2,self.b)
goodargs = argsreduce(cond, *((q,)+args+(loc,)))
loc, goodargs = goodargs[-1], goodargs[:-1]
- insert(output,cond,self._ppf(*goodargs) + loc)
+ place(output,cond,self._ppf(*goodargs) + loc)
return output
def isf(self,q,*args,**kwds):
@@ -3613,11 +3613,11 @@
cond2 = (q==1) & cond0
cond = cond0 & cond1
output = valarray(shape(cond),value=self.b)
- insert(output,(1-cond0)*(cond1==cond1), self.badvalue)
- insert(output,cond2,self.a-1)
+ place(output,(1-cond0)*(cond1==cond1), self.badvalue)
+ place(output,cond2,self.a-1)
goodargs = argsreduce(cond, *((q,)+args+(loc,)))
loc, goodargs = goodargs[-1], goodargs[:-1]
- insert(output,cond,self._ppf(*goodargs) + loc)
+ place(output,cond,self._ppf(*goodargs) + loc)
return output
def stats(self, *args, **kwds):
@@ -3673,7 +3673,7 @@
if mu is None:
mu = self._munp(1.0,*goodargs)
out0 = default.copy()
- insert(out0,cond,mu+loc)
+ place(out0,cond,mu+loc)
output.append(out0)
if 'v' in moments:
@@ -3683,7 +3683,7 @@
mu = self._munp(1.0,*goodargs)
mu2 = mu2p - mu*mu
out0 = default.copy()
- insert(out0,cond,mu2)
+ place(out0,cond,mu2)
output.append(out0)
if 's' in moments:
@@ -3697,7 +3697,7 @@
mu3 = mu3p - 3*mu*mu2 - mu**3
g1 = mu3 / mu2**1.5
out0 = default.copy()
- insert(out0,cond,g1)
+ place(out0,cond,g1)
output.append(out0)
if 'k' in moments:
@@ -3714,7 +3714,7 @@
mu4 = mu4p - 4*mu*mu3 - 6*mu*mu*mu2 - mu**4
g2 = mu4 / mu2**2.0 - 3.0
out0 = default.copy()
- insert(out0,cond,g2)
+ place(out0,cond,g2)
output.append(out0)
if len(output) == 1:
@@ -3779,9 +3779,9 @@
args = map(arr,args)
cond0 = self._argcheck(*args) & (loc==loc)
output = zeros(shape(cond0),'d')
- insert(output,(1-cond0),self.badvalue)
+ place(output,(1-cond0),self.badvalue)
goodargs = argsreduce(cond0, *args)
- insert(output,cond0,self.vecentropy(*goodargs))
+ place(output,cond0,self.vecentropy(*goodargs))
return output
def __call__(self, *args, **kwds):
Modified: trunk/Lib/stats/stats.py
===================================================================
--- trunk/Lib/stats/stats.py 2006-08-25 08:48:12 UTC (rev 2179)
+++ trunk/Lib/stats/stats.py 2006-08-27 07:44:15 UTC (rev 2180)
@@ -692,7 +692,7 @@
m2 = np.extract(can_correct, m2)
m3 = np.extract(can_correct, m3)
nval = np.sqrt((n-1.0)*n)/(n-2.0)*m3/m2**1.5
- np.insert(vals, can_correct, nval)
+ np.place(vals, can_correct, nval)
return vals
def kurtosis(a, axis=0, fisher=True, bias=True):
@@ -738,7 +738,7 @@
m2 = np.extract(can_correct, m2)
m4 = np.extract(can_correct, m4)
nval = 1.0/(n-2)/(n-3)*((n*n-1.0)*m4/m2**2.0-3*(n-1)**2.0)
- np.insert(vals, can_correct, nval+3.0)
+ np.place(vals, can_correct, nval+3.0)
if fisher:
return vals - 3
else:
From scipy-svn at scipy.org Mon Aug 28 23:40:34 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Mon, 28 Aug 2006 22:40:34 -0500 (CDT)
Subject: [Scipy-svn] r2181 - trunk/Lib
Message-ID: <20060829034034.DB70739C033@new.scipy.org>
Author: oliphant
Date: 2006-08-28 22:40:28 -0500 (Mon, 28 Aug 2006)
New Revision: 2181
Modified:
trunk/Lib/version.py
Log:
Use NumPy scheme for development versions of scipy.
Modified: trunk/Lib/version.py
===================================================================
--- trunk/Lib/version.py 2006-08-27 07:44:15 UTC (rev 2180)
+++ trunk/Lib/version.py 2006-08-29 03:40:28 UTC (rev 2181)
@@ -1,13 +1,15 @@
-version = '0.5.0'
+version = '0.5.1'
+release=False
-import os
-svn_version_file = os.path.join(os.path.dirname(__file__),
- '__svn_version__.py')
+if not release:
+ import os
+ svn_version_file = os.path.join(os.path.dirname(__file__),
+ '__svn_version__.py')
-if os.path.isfile(svn_version_file):
- import imp
- svn = imp.load_module('scipy.__svn_version__',
- open(svn_version_file),
- svn_version_file,
- ('.py','U',1))
- version += '.'+svn.version
+ if os.path.isfile(svn_version_file):
+ import imp
+ svn = imp.load_module('scipy.__svn_version__',
+ open(svn_version_file),
+ svn_version_file,
+ ('.py','U',1))
+ version += '.dev'+svn.version
From scipy-svn at scipy.org Tue Aug 29 03:22:25 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Tue, 29 Aug 2006 02:22:25 -0500 (CDT)
Subject: [Scipy-svn] r2182 - in trunk/Lib: cluster integrate io linalg
optimize sandbox/arraysetops sandbox/models sandbox/plt
sandbox/stats sandbox/xplt signal special stats tests
Message-ID: <20060829072225.9EB1239C03C@new.scipy.org>
Author: oliphant
Date: 2006-08-29 02:22:11 -0500 (Tue, 29 Aug 2006)
New Revision: 2182
Modified:
trunk/Lib/cluster/vq.py
trunk/Lib/integrate/quadrature.py
trunk/Lib/io/array_import.py
trunk/Lib/linalg/basic.py
trunk/Lib/optimize/minpack.py
trunk/Lib/optimize/optimize.py
trunk/Lib/sandbox/arraysetops/arraysetops.py
trunk/Lib/sandbox/models/utils.py
trunk/Lib/sandbox/plt/plot_objects.py
trunk/Lib/sandbox/stats/anova.py
trunk/Lib/sandbox/xplt/pl3d.py
trunk/Lib/sandbox/xplt/plwf.py
trunk/Lib/signal/signaltools.py
trunk/Lib/signal/wavelets.py
trunk/Lib/special/orthogonal.py
trunk/Lib/stats/distributions.py
trunk/Lib/tests/test_basic.py
Log:
Fix usages of take with no axis argument.
Modified: trunk/Lib/cluster/vq.py
===================================================================
--- trunk/Lib/cluster/vq.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/cluster/vq.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -20,7 +20,7 @@
from numpy.random import randint
from scipy.stats import std, mean
from numpy import shape, zeros, subtract, sqrt, argmin, minimum, array, \
- newaxis, arange, compress, equal, take, common_type, single, double
+ newaxis, arange, compress, equal, common_type, single, double, take
def whiten(obs):
""" Normalize a group of observations on a per feature basis
Modified: trunk/Lib/integrate/quadrature.py
===================================================================
--- trunk/Lib/integrate/quadrature.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/integrate/quadrature.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -37,7 +37,7 @@
raise ValueError, "Gaussian quadrature is only available for " \
"finite limits."
y = (b-a)*(x+1)/2.0 + a
- return (b-a)/2.0*sum(w*func(y,*args)), None
+ return (b-a)/2.0*sum(w*func(y,*args),0), None
def vectorize1(func, args=(), vec_func=False):
if vec_func:
@@ -323,7 +323,7 @@
h = float(interval[1]-interval[0])/numtosum
lox = interval[0] + 0.5 * h;
points = lox + h * arange(0, numtosum)
- s = sum(function(points))
+ s = sum(function(points),0)
return s
def _romberg_diff(b, c, k):
Modified: trunk/Lib/io/array_import.py
===================================================================
--- trunk/Lib/io/array_import.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/io/array_import.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -197,11 +197,11 @@
if len(collist) == 1:
toconvlist = arlist[::-collist[-1]]
else:
- toconvlist = take(arlist,collist[:-1])
+ toconvlist = take(arlist,collist[:-1],0)
toconvlist = concatenate((toconvlist,
arlist[(collist[-2]-collist[-1])::(-collist[-1])]))
else:
- toconvlist = take(arlist, collist)
+ toconvlist = take(arlist, collist,0)
return numpyio.convert_objectarray(toconvlist, atype, missing)
Modified: trunk/Lib/linalg/basic.py
===================================================================
--- trunk/Lib/linalg/basic.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/linalg/basic.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -472,7 +472,7 @@
rows = mgrid[rN:0:-1]
indx = cols[:,newaxis]*ones((1,rN),dtype=int) + \
rows[newaxis,:]*ones((cN,1),dtype=int) - 1
- return take(vals, indx)
+ return take(vals, indx, 0)
def hankel(c,r=None):
@@ -503,7 +503,7 @@
rows = mgrid[0:rN]
indx = cols[:,newaxis]*ones((1,rN),dtype=int) + \
rows[newaxis,:]*ones((cN,1),dtype=int) - 1
- return take(vals, indx)
+ return take(vals, indx, 0)
def all_mat(*args):
return map(Matrix,args)
Modified: trunk/Lib/optimize/minpack.py
===================================================================
--- trunk/Lib/optimize/minpack.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/optimize/minpack.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -264,7 +264,7 @@
mesg = errors[info][0]
if full_output:
import scipy.linalg as sl
- perm = take(eye(n),retval[1]['ipvt']-1)
+ perm = take(eye(n),retval[1]['ipvt']-1,0)
r = triu(transpose(retval[1]['fjac'])[:n,:])
R = dot(r, perm)
try:
Modified: trunk/Lib/optimize/optimize.py
===================================================================
--- trunk/Lib/optimize/optimize.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/optimize/optimize.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -172,7 +172,8 @@
fsim[k+1] = f
ind = numpy.argsort(fsim)
- fsim = numpy.take(fsim,ind) # sort so sim[0,:] has the lowest function value
+ fsim = numpy.take(fsim,ind,0)
+ # sort so sim[0,:] has the lowest function value
sim = numpy.take(sim,ind,0)
iterations = 1
@@ -230,7 +231,7 @@
ind = numpy.argsort(fsim)
sim = numpy.take(sim,ind,0)
- fsim = numpy.take(fsim,ind)
+ fsim = numpy.take(fsim,ind,0)
if callback is not None:
callback(sim[0])
iterations += 1
Modified: trunk/Lib/sandbox/arraysetops/arraysetops.py
===================================================================
--- trunk/Lib/sandbox/arraysetops/arraysetops.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/sandbox/arraysetops/arraysetops.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -62,7 +62,7 @@
ar = numpy.array( ar1 ).ravel()
if retIndx:
perm = numpy.argsort( ar )
- aux = numpy.take( ar, perm )
+ aux = numpy.take( ar, perm 0)
flag = ediff1d( aux, 1 ) != 0
return numpy.compress( flag, perm ), numpy.compress( flag, aux )
else:
@@ -104,8 +104,8 @@
tt = numpy.concatenate( (numpy.zeros_like( ar1 ),
numpy.zeros_like( ar2 ) + 1) )
perm = numpy.argsort( ar )
- aux = numpy.take( ar, perm )
- aux2 = numpy.take( tt, perm )
+ aux = numpy.take( ar, perm, 0)
+ aux2 = numpy.take( tt, perm, 0 )
flag = ediff1d( aux, 1 ) == 0
ii = numpy.where( flag * aux2 )
@@ -115,7 +115,7 @@
indx = numpy.argsort( perm )[:len( ar1 )]
- return numpy.take( flag, indx )
+ return numpy.take( flag, indx, 0 )
##
# 03.11.2005, c
Modified: trunk/Lib/sandbox/models/utils.py
===================================================================
--- trunk/Lib/sandbox/models/utils.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/sandbox/models/utils.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -107,8 +107,8 @@
if not sorted:
asort = N.argsort(self.x)
- self.x = N.take(self.x, asort)
- self.y = N.take(self.y, asort)
+ self.x = N.take(self.x, asort, 0)
+ self.y = N.take(self.y, asort, 0)
self.n = self.x.shape[0]
def __call__(self, time):
Modified: trunk/Lib/sandbox/plt/plot_objects.py
===================================================================
--- trunk/Lib/sandbox/plt/plot_objects.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/sandbox/plt/plot_objects.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -928,7 +928,7 @@
else:
cmap = colormap
- pixels = take( cmap, scaled_mag)
+ pixels = take( cmap, scaled_mag, 0)
del scaled_mag
# need to transpose pixels in memory...
bitmap = pixels.astype(UnsignedInt8).tostring()
Modified: trunk/Lib/sandbox/stats/anova.py
===================================================================
--- trunk/Lib/sandbox/stats/anova.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/sandbox/stats/anova.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -74,7 +74,7 @@
Nwifactors = len(Wscols) - 1 # WAS len(Wcolumns)
#Nwlevels = take(array(Nlevels),Wscols) # no.lvls for each w/i subj fact
#Nbtwfactors = len(Bscols) - 1 # WASNfactors - Nwifactors + 1
- Nblevels = take(array(Nlevels),Bscols)
+ Nblevels = take(array(Nlevels),Bscols,0)
Nwsources = 2**Nwifactors - 1 # num within-subject factor-combos
#Nbsources = Nallsources - Nwsources
@@ -159,7 +159,7 @@
new = alluniqueslist[j].index(data[i][j])
idx.append(new)
DA[idx] = data[i][-1] # put this data point in proper place in DA
- btwidx = take(idx,array(Bscols))
+ btwidx = take(idx,array(Bscols),0)
subjslots[btwidx] = 1
# DONE CREATING DATA ARRAY, DA ... #dims = numfactors+1, dim 0=subjects
# dim -1=measured values, dummyval = values used to fill empty slots in DA
@@ -221,7 +221,7 @@
Lwithinsourcecol = map(Lsourceandbtws.index,Lwithinsourcecol)
# Now indxlist should hold a list of indices into the list of possible
# coefficients, one row per combo of coefficient. Next line PRESERVES dummyval
- dvarshape = array(take(mns.shape,Lwithinsourcecol[1:])) -1
+ dvarshape = array(take(mns.shape,Lwithinsourcecol[1:],0)) -1
idxarray = indices(dvarshape)
newshape = array([idxarray.shape[0],
multiply.reduce(idxarray.shape[1:])])
@@ -379,7 +379,7 @@
## Calc and save sums of squares for this source
SS = sum((effect**2 *sourceNarray) *
- multiply.reduce(take(Marray.shape,btwnonsourcedims)))
+ multiply.reduce(take(Marray.shape,btwnonsourcedims,0)))
## Save it so you don't have to calculate it again next time
SSlist.append(SS)
SSsources.append(source)
@@ -687,7 +687,7 @@
# Calc and save sums of squares for this source
SS = zeros((levels,levels),'f')
SS = sum((effect**2 *sourceDNarray) *
- multiply.reduce(take(DM[dindex].shape,btwnonsourcedims)),
+ multiply.reduce(take(DM[dindex].shape,btwnonsourcedims,0)),
range(len(sourceDMarray.shape)-1))
# Save it so you don't have to calculate it again next time
SSlist.append(SS)
@@ -739,7 +739,7 @@
idx[0] = -1 # compensate for pre-increment of 1st slot in incr()
# Get a list of the maximum values each factor can handle
- loopcap = take(array(Nlevels),sourcedims)-1
+ loopcap = take(array(Nlevels),sourcedims,0)-1
### WHILE STILL MORE GROUPS, CALCULATE GROUP MEAN FOR EACH D-VAR
while incr(idx,loopcap) != -1: # loop through source btw level-combos
Modified: trunk/Lib/sandbox/xplt/pl3d.py
===================================================================
--- trunk/Lib/sandbox/xplt/pl3d.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/sandbox/xplt/pl3d.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -469,13 +469,13 @@
# (reduces to above medians for quads)
# (2) compute midpoints of first three sides
n2 = (nxyz [0] + 1) / 2
- c0 = (take(xyz, frst) + take(xyz, frst + 1)) / 2.
+ c0 = (take(xyz, frst, 0) + take(xyz, frst + 1, 0)) / 2.
i = frst + n2 - 1
- c1 = (take(xyz, i) + take(xyz, i + 1)) / 2.
+ c1 = (take(xyz, i, 0) + take(xyz, i + 1, 0)) / 2.
i = n2 / 2
- c2 = (take(xyz, frst + i) + take(xyz, frst + (i + 1) % nxyz [0])) / 2.
+ c2 = (take(xyz, frst + i, 0) + take(xyz, frst + (i + 1) % nxyz [0], 0)) / 2.
i = minimum (i + n2, nxyz [0]) - 1
- c3 = (take(xyz, frst + i) + take(xyz, frst + (i + 1) % nxyz [0])) / 2.
+ c3 = (take(xyz, frst + i, 0) + take(xyz, frst + (i + 1) % nxyz [0], 0)) / 2.
m1 = c1 - c0
m2 = c3 - c2
@@ -847,7 +847,7 @@
array_set (vlist, list, arange (len (list), dtype = Int))
# then reset the nlist values to that pre-sorted order, so that
# sort(nlist) will be the required vertex sorting list
- nlist = take(vlist, nlist)
+ nlist = take(vlist, nlist, 0)
# the final hitch is to ensure that the vertices within each polygon
# remain in their initial order (sort scrambles equal values)
# since the vertices of a polygon can be cyclically permuted,
Modified: trunk/Lib/sandbox/xplt/plwf.py
===================================================================
--- trunk/Lib/sandbox/xplt/plwf.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/sandbox/xplt/plwf.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -243,9 +243,9 @@
ravel(add.outer (adders,zeros(nj-1, Int))) +
arange((ni-1)*(nj-1), dtype = Int),
array ( [[0, 1], [nj + 1, nj]])))
- xyz=array([take(ravel(xyz[0]),list),
- take(ravel(xyz[1]),list),
- take(ravel(xyz[2]),list)])
+ xyz=array([take(ravel(xyz[0]),list,0),
+ take(ravel(xyz[1]),list,0),
+ take(ravel(xyz[2]),list,0)])
nxyz= ones((ni-1)*(nj-1)) * 4;
The resulting array xyz is 3-by-(4*(nj-1)*(ni-1)).
xyz[0:3,4*i:4*(i+1)] are the clockwise coordinates of the
Modified: trunk/Lib/signal/signaltools.py
===================================================================
--- trunk/Lib/signal/signaltools.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/signal/signaltools.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -887,7 +887,7 @@
indx = argsort(abs(p))
else:
indx = argsort(p)
- return take(p,indx), indx
+ return take(p,indx,0), indx
def unique_roots(p,tol=1e-3,rtype='min'):
"""Determine the unique roots and their multiplicities in two lists
@@ -959,7 +959,7 @@
"""
extra = k
p, indx = cmplx_sort(p)
- r = take(r,indx)
+ r = take(r,indx,0)
pout, mult = unique_roots(p,tol=tol,rtype=rtype)
p = []
for k in range(len(pout)):
@@ -1130,7 +1130,7 @@
"""
extra = asarray(k)
p, indx = cmplx_sort(p)
- r = take(r,indx)
+ r = take(r,indx,0)
pout, mult = unique_roots(p,tol=tol,rtype=rtype)
p = []
for k in range(len(pout)):
@@ -1341,7 +1341,7 @@
coef,resids,rank,s = linalg.lstsq(A,newdata[sl])
newdata[sl] = newdata[sl] - dot(A,coef)
# Put data back in original shape.
- tdshape = take(dshape,newdims)
+ tdshape = take(dshape,newdims,0)
ret = reshape(newdata,tuple(tdshape))
vals = range(1,rnk)
olddims = vals[:axis] + [0] + vals[axis:]
Modified: trunk/Lib/signal/wavelets.py
===================================================================
--- trunk/Lib/signal/wavelets.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/signal/wavelets.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -111,10 +111,10 @@
indx1 = sb.clip(2*nn-kk,-1,N+1)
indx2 = sb.clip(2*nn-kk+1,-1,N+1)
m = sb.zeros((2,2,N,N),'d')
- m[0,0] = sb.take(thk,indx1)
- m[0,1] = sb.take(thk,indx2)
- m[1,0] = sb.take(tgk,indx1)
- m[1,1] = sb.take(tgk,indx2)
+ m[0,0] = sb.take(thk,indx1,0)
+ m[0,1] = sb.take(thk,indx2,0)
+ m[1,0] = sb.take(tgk,indx1,0)
+ m[1,1] = sb.take(tgk,indx2,0)
m *= s2
# construct the grid of points
Modified: trunk/Lib/special/orthogonal.py
===================================================================
--- trunk/Lib/special/orthogonal.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/special/orthogonal.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -61,6 +61,7 @@
from __future__ import nested_scopes
from numpy import *
+from numpy.oldnumeric import take
import _cephes as cephes
_gam = cephes.gamma
from scipy.linalg import eig
Modified: trunk/Lib/stats/distributions.py
===================================================================
--- trunk/Lib/stats/distributions.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/stats/distributions.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -3057,7 +3057,7 @@
c_bad = atleast_1d((b<=0) | (x != x))
indxiter = nonzero(c_xiter)
- xiter = take(x, indxiter)
+ xiter = take(x, indxiter, 0)
vals = ones(len(c_xsimple),float)
putmask(vals, c_bad, nan)
@@ -3066,7 +3066,7 @@
st = where(isnan(st),0.0,st)
putmask(vals, c_xnormal, norm.cdf(x, scale=st))
- biter = take(atleast_1d(b)*(x==x), indxiter)
+ biter = take(atleast_1d(b)*(x==x), indxiter, 0)
if len(xiter) > 0:
fac = special.i0(biter)
x2 = xiter
@@ -3191,7 +3191,7 @@
qk = 1.0*qk / sum(qk)
# If qk is zero anywhere, then unless pk is zero at those places
# too, the relative entropy is infinite.
- if any(take(pk,nonzero(qk==0.0))!=0.0):
+ if any(take(pk,nonzero(qk==0.0))!=0.0, 0):
return inf
vec = where (pk == 0, 0.0, pk*log(pk / qk))
return -sum(vec)
@@ -3359,8 +3359,8 @@
self.xk, self.pk = values
self.return_integers = 0
indx = argsort(ravel(self.xk))
- self.xk = take(ravel(self.xk),indx)
- self.pk = take(ravel(self.pk),indx)
+ self.xk = take(ravel(self.xk),indx, 0)
+ self.pk = take(ravel(self.pk),indx, 0)
self.a = self.xk[0]
self.b = self.xk[-1]
self.P = make_dict(self.xk, self.pk)
Modified: trunk/Lib/tests/test_basic.py
===================================================================
--- trunk/Lib/tests/test_basic.py 2006-08-29 03:40:28 UTC (rev 2181)
+++ trunk/Lib/tests/test_basic.py 2006-08-29 07:22:11 UTC (rev 2182)
@@ -273,7 +273,7 @@
b = [[3,6.0, 9.0],
[4,10.0,5.0],
[8,3.0,2.0]]
- assert_equal(ptp(b),[5.0,7.0,7.0])
+ assert_equal(ptp(b,axis=0),[5.0,7.0,7.0])
assert_equal(ptp(b,axis=1),[6.0,6.0,6.0])
From scipy-svn at scipy.org Tue Aug 29 06:31:32 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Tue, 29 Aug 2006 05:31:32 -0500 (CDT)
Subject: [Scipy-svn] r2183 - in trunk/Lib: cluster fftpack fftpack/tests
interpolate io io/tests linalg maxentropy misc ndimage
optimize sandbox/ann sandbox/arraysetops sandbox/delaunay
sandbox/ga sandbox/gplt sandbox/image sandbox/models
sandbox/montecarlo/tests sandbox/numexpr/tests sandbox/odr
sandbox/rkern sandbox/stats sandbox/svm sandbox/svm/tests
sandbox/xplt signal sparse/tests special special/tests stats
stats/tests stsci/convolve/lib stsci/image/lib tests weave
weave/tests
Message-ID: <20060829103132.0A5EF39C023@new.scipy.org>
Author: oliphant
Date: 2006-08-29 05:30:44 -0500 (Tue, 29 Aug 2006)
New Revision: 2183
Modified:
trunk/Lib/cluster/vq.py
trunk/Lib/fftpack/basic.py
trunk/Lib/fftpack/pseudo_diffs.py
trunk/Lib/fftpack/tests/test_pseudo_diffs.py
trunk/Lib/interpolate/fitpack.py
trunk/Lib/interpolate/fitpack2.py
trunk/Lib/interpolate/interpolate.py
trunk/Lib/io/mio.py
trunk/Lib/io/tests/test_array_import.py
trunk/Lib/linalg/basic.py
trunk/Lib/linalg/matfuncs.py
trunk/Lib/maxentropy/maxentropy.py
trunk/Lib/maxentropy/maxentutils.py
trunk/Lib/misc/common.py
trunk/Lib/ndimage/filters.py
trunk/Lib/ndimage/interpolation.py
trunk/Lib/ndimage/morphology.py
trunk/Lib/optimize/minpack.py
trunk/Lib/optimize/optimize.py
trunk/Lib/sandbox/ann/mlp.py
trunk/Lib/sandbox/ann/rbf.py
trunk/Lib/sandbox/ann/srn.py
trunk/Lib/sandbox/arraysetops/arraysetops.py
trunk/Lib/sandbox/delaunay/interpolate.py
trunk/Lib/sandbox/ga/ga_util.py
trunk/Lib/sandbox/ga/parallel_pop.py
trunk/Lib/sandbox/ga/selection.py
trunk/Lib/sandbox/gplt/new_plot.py
trunk/Lib/sandbox/image/color.py
trunk/Lib/sandbox/models/bsplines.py
trunk/Lib/sandbox/models/cox.py
trunk/Lib/sandbox/models/regression.py
trunk/Lib/sandbox/models/utils.py
trunk/Lib/sandbox/montecarlo/tests/test_dictsampler.py
trunk/Lib/sandbox/montecarlo/tests/test_intsampler.py
trunk/Lib/sandbox/numexpr/tests/test_numexpr.py
trunk/Lib/sandbox/odr/models.py
trunk/Lib/sandbox/rkern/diffev.py
trunk/Lib/sandbox/rkern/pink.py
trunk/Lib/sandbox/stats/anova.py
trunk/Lib/sandbox/stats/obsolete.py
trunk/Lib/sandbox/svm/classification.py
trunk/Lib/sandbox/svm/dataset.py
trunk/Lib/sandbox/svm/predict.py
trunk/Lib/sandbox/svm/tests/test_regression.py
trunk/Lib/sandbox/xplt/Mplot.py
trunk/Lib/sandbox/xplt/NarPlotter.py
trunk/Lib/sandbox/xplt/demo5.py
trunk/Lib/sandbox/xplt/gist3dhelp.py
trunk/Lib/sandbox/xplt/gistdemo3d.py
trunk/Lib/sandbox/xplt/mesh3d.py
trunk/Lib/sandbox/xplt/pl3d.py
trunk/Lib/sandbox/xplt/slice3.py
trunk/Lib/sandbox/xplt/sphereisos.py
trunk/Lib/signal/filter_design.py
trunk/Lib/signal/ltisys.py
trunk/Lib/signal/signaltools.py
trunk/Lib/signal/wavelets.py
trunk/Lib/sparse/tests/test_sparse.py
trunk/Lib/special/basic.py
trunk/Lib/special/orthogonal.py
trunk/Lib/special/tests/Test.py
trunk/Lib/special/tests/test_basic.py
trunk/Lib/stats/_support.py
trunk/Lib/stats/distributions.py
trunk/Lib/stats/kde.py
trunk/Lib/stats/morestats.py
trunk/Lib/stats/stats.py
trunk/Lib/stats/tests/test_stats.py
trunk/Lib/stsci/convolve/lib/Convolve.py
trunk/Lib/stsci/image/lib/combine.py
trunk/Lib/tests/test_basic.py
trunk/Lib/tests/test_basic1a.py
trunk/Lib/tests/test_common.py
trunk/Lib/weave/size_check.py
trunk/Lib/weave/tests/test_blitz_tools.py
Log:
Add axis arguments to functions that changed in NumPy 1.0b2
Modified: trunk/Lib/cluster/vq.py
===================================================================
--- trunk/Lib/cluster/vq.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/cluster/vq.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -152,7 +152,7 @@
for o in obs:
subtract(code_book,o,diff) # faster version of --> diff = code_book - o
dist = sqrt(sum(diff*diff,-1))
- code.append(argmin(dist))
+ code.append(argmin(dist,axis=-1))
#something weird here dst does not work reliably because it sometime
#returns an array of goofy length. Try except fixes it, but is ugly.
dst = minimum.reduce(dist,0)
Modified: trunk/Lib/fftpack/basic.py
===================================================================
--- trunk/Lib/fftpack/basic.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/fftpack/basic.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -273,7 +273,7 @@
Optional input:
shape
Defines the shape of the Fourier transform. If shape is not
- specified then shape=take(x.shape,axes).
+ specified then shape=take(x.shape,axes,axis=0).
If shape[i]>x.shape[i] then the i-th dimension is padded with
zeros. If shape[i] 0):
+ if not alltrue(t[k+1:n-k]-t[k:n-k-1] > 0,axis=0):
raise ValueError,\
'Interior knots t must satisfy Schoenberg-Whitney conditions'
data = dfitpack.fpcurfm1(x,y,k,t,w=w,xb=xb,xe=xe)
@@ -300,7 +300,7 @@
def get_residual(self):
""" Return weighted sum of squared residuals of the spline
- approximation: sum ((w[i]*(z[i]-s(x[i],y[i])))**2)
+ approximation: sum ((w[i]*(z[i]-s(x[i],y[i])))**2,axis=0)
"""
return self.fp
def get_knots(self):
@@ -340,7 +340,7 @@
kx,ky=3,3 - degrees of the bivariate spline.
s - positive smoothing factor defined for
estimation condition:
- sum((w[i]*(z[i]-s(x[i],y[i])))**2) <= s
+ sum((w[i]*(z[i]-s(x[i],y[i])))**2,axis=0) <= s
Default s=len(w) which should be a good value
if 1/w[i] is an estimate of the standard
deviation of z[i].
Modified: trunk/Lib/interpolate/interpolate.py
===================================================================
--- trunk/Lib/interpolate/interpolate.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/interpolate/interpolate.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -15,7 +15,7 @@
def reduce_sometrue(a):
all = a
while len(shape(all)) > 1:
- all = sometrue(all)
+ all = sometrue(all,axis=0)
return all
class interp2d:
@@ -163,7 +163,7 @@
# 4. Calculate the slope of regions that each x_new value falls in.
lo = x_new_indices - 1; hi = x_new_indices
- # !! take() should default to the last axis (IMHO) and remove
+ # !! take(,axis=0) should default to the last axis (IMHO) and remove
# !! the extra argument.
x_lo = take(self.x,lo,axis=self.interp_axis)
x_hi = take(self.x,hi,axis=self.interp_axis);
@@ -204,10 +204,10 @@
above_bounds = greater(x_new,self.x[-1])
# Note: sometrue has been redefined to handle length 0 arrays
# !! Could provide more information about which values are out of bounds
- if self.bounds_error and sometrue(below_bounds):
+ if self.bounds_error and sometrue(below_bounds,axis=0):
raise ValueError, " A value in x_new is below the"\
" interpolation range."
- if self.bounds_error and sometrue(above_bounds):
+ if self.bounds_error and sometrue(above_bounds,axis=0):
raise ValueError, " A value in x_new is above the"\
" interpolation range."
# !! Should we emit a warning if some values are out of bounds.
Modified: trunk/Lib/io/mio.py
===================================================================
--- trunk/Lib/io/mio.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/io/mio.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -174,7 +174,7 @@
if mtype is None:
mtype = data.dtype.char
howmany,mtype = getsize_type(mtype)
- count = product(data.shape)
+ count = product(data.shape,axis=0)
numpyio.fwrite(self.file,count,data,mtype,bs)
return
@@ -215,20 +215,20 @@
# allow -1 to specify unknown dimension size as in reshape
minus_ones = shape.count(-1)
if minus_ones == 0:
- count = product(shape)
+ count = product(shape,axis=0)
elif minus_ones == 1:
now = self.tell()
self.seek(0,2)
end = self.tell()
self.seek(now)
remaining_bytes = end - now
- know_dimensions_size = -product(count) * getsize_type(stype)[0]
+ know_dimensions_size = -product(count,axis=0) * getsize_type(stype)[0]
unknown_dimension_size, illegal = divmod(remaining_bytes,
know_dimensions_size)
if illegal:
raise ValueError("unknown dimension doesn't match filesize")
shape[shape.index(-1)] = unknown_dimension_size
- count = product(shape)
+ count = product(shape,axis=0)
else:
raise ValueError(
"illegal count; can only specify one unknown dimension")
@@ -302,7 +302,7 @@
sz,mtype = getsize_type(args[0])
else:
sz,mtype = getsize_type(fmt.dtype.char)
- count = product(fmt.shape)
+ count = product(fmt.shape,axis=0)
strlen = struct.pack(nfmt,count*sz)
self.write(strlen)
numpyio.fwrite(self.file,count,fmt,mtype,self.bs)
@@ -579,7 +579,7 @@
dims = result.shape
if len(dims) >= 2: # return array of strings
n_dims = dims[:-1]
- string_arr = reshape(result, (product(n_dims), dims[-1]))
+ string_arr = reshape(result, (product(n_dims,axis=0), dims[-1]))
result = empty(n_dims, dtype=object)
for i in range(0, n_dims[-1]):
result[...,i] = string_arr[i].tostring().decode(en)
@@ -595,7 +595,7 @@
result = squeeze(transpose(reshape(result,tupdims)))
elif dclass == mxCELL_CLASS:
- length = product(dims)
+ length = product(dims,axis=0)
result = empty(length, dtype=object)
for i in range(length):
result[i] = _get_element(fid)
@@ -604,7 +604,7 @@
result = result.item()
elif dclass == mxSTRUCT_CLASS:
- length = product(dims)
+ length = product(dims,axis=0)
result = zeros(length, object)
namelength = _get_element(fid)
# get field names
@@ -624,7 +624,7 @@
# object is like a structure with but with a class name
elif dclass == mxOBJECT_CLASS:
class_name = _get_element(fid).tostring()
- length = product(dims)
+ length = product(dims,axis=0)
result = zeros(length, object)
namelength = _get_element(fid)
# get field names
@@ -922,7 +922,7 @@
var = transpose(var)
if len(var.shape) > 2:
- var=var.reshape((product(var.shape[:-1]), var.shape[-1]))
+ var=var.reshape((product(var.shape[:-1],axis=0), var.shape[-1]))
imagf = var.dtype.char in ['F', 'D']
fid.fwrite([var.shape[1], var.shape[0], imagf, len(variable)+1],'int')
Modified: trunk/Lib/io/tests/test_array_import.py
===================================================================
--- trunk/Lib/io/tests/test_array_import.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/io/tests/test_array_import.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -31,7 +31,7 @@
print "\nDon't worry about a warning regarding the number of bytes read."
b = numpyio.fread(fid,1000000,N.Int16,N.Int)
fid.close()
- assert(N.product(a.astype(N.Int16) == b))
+ assert(N.product(a.astype(N.Int16) == b,axis=0))
os.remove(fname)
class test_read_array(ScipyTestCase):
Modified: trunk/Lib/linalg/basic.py
===================================================================
--- trunk/Lib/linalg/basic.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/linalg/basic.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -242,7 +242,7 @@
For vectors ord can be any real number including Inf or -Inf.
ord = Inf, computes the maximum of the magnitudes
ord = -Inf, computes minimum of the magnitudes
- ord is finite, computes sum(abs(x)**ord)**(1.0/ord)
+ ord is finite, computes sum(abs(x)**ord,axis=0)**(1.0/ord)
For matrices ord can only be one of the following values:
ord = 2 computes the largest singular value
@@ -251,7 +251,7 @@
ord = -1 computes the smallest column sum of absolute values
ord = Inf computes the largest row sum of absolute values
ord = -Inf computes the smallest row sum of absolute values
- ord = 'fro' computes the frobenius norm sqrt(sum(diag(X.H * X)))
+ ord = 'fro' computes the frobenius norm sqrt(sum(diag(X.H * X),axis=0))
For values ord < 0, the result is, strictly speaking, not a
mathematical 'norm', but it may still be useful for numerical purposes.
@@ -268,22 +268,22 @@
elif ord == -Inf:
return numpy.amin(abs(x))
elif ord == 1:
- return numpy.sum(abs(x)) # special case for speedup
+ return numpy.sum(abs(x),axis=0) # special case for speedup
elif ord == 2:
- return sqrt(numpy.sum(real((conjugate(x)*x)))) # special case for speedup
+ return sqrt(numpy.sum(real((conjugate(x)*x)),axis=0)) # special case for speedup
else:
- return numpy.sum(abs(x)**ord)**(1.0/ord)
+ return numpy.sum(abs(x)**ord,axis=0)**(1.0/ord)
elif nd == 2:
if ord == 2:
return numpy.amax(decomp.svd(x,compute_uv=0))
elif ord == -2:
return numpy.amin(decomp.svd(x,compute_uv=0))
elif ord == 1:
- return numpy.amax(numpy.sum(abs(x)))
+ return numpy.amax(numpy.sum(abs(x),axis=0))
elif ord == Inf:
return numpy.amax(numpy.sum(abs(x),axis=1))
elif ord == -1:
- return numpy.amin(numpy.sum(abs(x)))
+ return numpy.amin(numpy.sum(abs(x),axis=0))
elif ord == -Inf:
return numpy.amin(numpy.sum(abs(x),axis=1))
elif ord in ['fro','f']:
@@ -365,7 +365,7 @@
resids = asarray([], dtype=x.dtype)
if n 1000*tol:
Modified: trunk/Lib/maxentropy/maxentropy.py
===================================================================
--- trunk/Lib/maxentropy/maxentropy.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/maxentropy/maxentropy.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -86,7 +86,7 @@
self.verbose = False
self.maxgtol = 1e-5
- # Required tolerance of gradient on average (closeness to zero) for
+ # Required tolerance of gradient on average (closeness to zero,axis=0) for
# CG optimization:
self.avegtol = 1e-3
# Default tolerance for the other optimization algorithms:
@@ -1717,7 +1717,7 @@
self.external = None
self.clearcache()
- meandual = numpy.average(dualapprox)
+ meandual = numpy.average(dualapprox,axis=0)
self.external_duals[self.iters] = dualapprox
self.external_gradnorms[self.iters] = gradnorms
@@ -1727,7 +1727,7 @@
(len(self.externalFs), meandual)
print "** Mean mean square error of the (unregularized) feature" \
" expectation estimates from the external samples =" \
- " mean(|| \hat{\mu_e} - k ||) =", numpy.average(gradnorms)
+ " mean(|| \hat{\mu_e} - k ||,axis=0) =", numpy.average(gradnorms,axis=0)
# Track the parameter vector params with the lowest mean dual estimate
# so far:
if meandual < self.bestdual:
Modified: trunk/Lib/maxentropy/maxentutils.py
===================================================================
--- trunk/Lib/maxentropy/maxentutils.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/maxentropy/maxentutils.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -34,7 +34,7 @@
complex-numbered, such as the output of robustarraylog(). So we
expect:
- cmath.exp(logsumexpcomplex(robustarraylog(values))) ~= sum(values)
+ cmath.exp(logsumexpcomplex(robustarraylog(values))) ~= sum(values,axis=0)
except for a small rounding error in both real and imag components.
The output is complex. (To recover just the real component, use
Modified: trunk/Lib/misc/common.py
===================================================================
--- trunk/Lib/misc/common.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/misc/common.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -157,7 +157,7 @@
X = x**0.0
for k in range(1,Np):
X = hstack([X,x**k])
- w = product(arange(1,ndiv+1))*linalg.inv(X)[ndiv]
+ w = product(arange(1,ndiv+1),axis=0)*linalg.inv(X)[ndiv]
return w
def derivative(func,x0,dx=1.0,n=1,args=(),order=3):
@@ -200,7 +200,7 @@
ho = order >> 1
for k in range(order):
val += weights[k]*func(x0+(k-ho)*dx,*args)
- return val / product((dx,)*n)
+ return val / product((dx,)*n,axis=0)
def pade(an, m):
"""Given Taylor series coefficients in an, return a Pade approximation to
Modified: trunk/Lib/ndimage/filters.py
===================================================================
--- trunk/Lib/ndimage/filters.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/ndimage/filters.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -430,7 +430,7 @@
else:
footprint = numarray.asarray(footprint)
footprint = footprint.astype(bool)
- if numarray.alltrue(numarray.ravel(footprint)):
+ if numarray.alltrue(numarray.ravel(footprint),axis=0):
size = footprint.shape
footprint = None
separable = True
Modified: trunk/Lib/ndimage/interpolation.py
===================================================================
--- trunk/Lib/ndimage/interpolation.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/ndimage/interpolation.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -406,7 +406,7 @@
order, mode, cval, prefilter)
else:
coordinates = []
- size = numarray.product(input.shape)
+ size = numarray.product(input.shape,axis=0)
size /= input.shape[axes[0]]
size /= input.shape[axes[1]]
for ii in range(input.ndim):
Modified: trunk/Lib/ndimage/morphology.py
===================================================================
--- trunk/Lib/ndimage/morphology.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/ndimage/morphology.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -100,7 +100,7 @@
raise RuntimeError, 'structure rank must equal input rank'
if not structure.flags.contiguous:
structure = structure.copy()
- if numarray.product(structure.shape) < 1:
+ if numarray.product(structure.shape,axis=0) < 1:
raise RuntimeError, 'structure must not be empty'
if mask is not None:
mask = numarray.asarray(mask)
@@ -659,7 +659,7 @@
dt = numarray.where(input, -1, 0).astype(numarray.Int32)
rank = dt.ndim
if return_indices:
- sz = numarray.product(dt.shape)
+ sz = numarray.product(dt.shape,axis=0)
ft = numarray.arange(sz, dtype = numarray.Int32)
ft.shape = dt.shape
else:
Modified: trunk/Lib/optimize/minpack.py
===================================================================
--- trunk/Lib/optimize/minpack.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/optimize/minpack.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -145,7 +145,7 @@
(non-linear) equations in N unknowns given a starting estimate, x0,
using a modification of the Levenberg-Marquardt algorithm.
- x = arg min(sum(func(y)**2))
+ x = arg min(sum(func(y)**2,axis=0))
y
Inputs:
@@ -301,7 +301,7 @@
fvecp=fvecp.reshape((m,))
_minpack._chkder(m,n,x,fvec,fjac,ldfjac,xp,fvecp,2,err)
- good = (product(greater(err,0.5)))
+ good = (product(greater(err,0.5),axis=0))
return (good,err)
Modified: trunk/Lib/optimize/optimize.py
===================================================================
--- trunk/Lib/optimize/optimize.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/optimize/optimize.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -51,11 +51,11 @@
elif ord == -Inf:
return numpy.amin(abs(x))
else:
- return numpy.sum(abs(x)**ord)**(1.0/ord)
+ return numpy.sum(abs(x)**ord,axis=0)**(1.0/ord)
def rosen(x): # The Rosenbrock function
x = asarray(x)
- return numpy.sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)
+ return numpy.sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0,axis=0)
def rosen_der(x):
x = asarray(x)
@@ -1580,7 +1580,7 @@
grid = (grid,)
Jout = vecfunc(*grid)
Nshape = shape(Jout)
- indx = argmin(Jout.ravel())
+ indx = argmin(Jout.ravel(),axis=-1)
Nindx = zeros(N,int)
xmin = zeros(N,float)
for k in range(N-1,-1,-1):
Modified: trunk/Lib/sandbox/ann/mlp.py
===================================================================
--- trunk/Lib/sandbox/ann/mlp.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/ann/mlp.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -118,7 +118,7 @@
Returns:
sum-squared-error over all data
"""
- return N.sum(self.errfxn(self.wp,x,t))
+ return N.sum(self.errfxn(self.wp,x,t),axis=0)
def main():
""" Build/train/test MLP
Modified: trunk/Lib/sandbox/ann/rbf.py
===================================================================
--- trunk/Lib/sandbox/ann/rbf.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/ann/rbf.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -86,7 +86,7 @@
d_max = 0.0
for i in self.centers:
for j in self.centers:
- tmp = N.sum(N.sqrt((i-j)**2))
+ tmp = N.sum(N.sqrt((i-j)**2),axis=0)
if tmp > d_max:
d_max = tmp
self.variance = d_max/(2.0*len(X))
@@ -105,7 +105,7 @@
Returns:
sum-squared-error over all data
"""
- return N.sum(self.err_fxn(self.wp,X,Y))
+ return N.sum(self.err_fxn(self.wp,X,Y),axis=0)
def main():
""" Build/train/test RBF net
Modified: trunk/Lib/sandbox/ann/srn.py
===================================================================
--- trunk/Lib/sandbox/ann/srn.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/ann/srn.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -136,7 +136,7 @@
Returns:
sum-squared-error over all data
"""
- return N.sum(self.errfxn(self.wp,x,t))
+ return N.sum(self.errfxn(self.wp,x,t),axis=0)
def main():
Modified: trunk/Lib/sandbox/arraysetops/arraysetops.py
===================================================================
--- trunk/Lib/sandbox/arraysetops/arraysetops.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/arraysetops/arraysetops.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -62,19 +62,19 @@
ar = numpy.array( ar1 ).ravel()
if retIndx:
perm = numpy.argsort( ar )
- aux = numpy.take( ar, perm 0)
+ aux = numpy.take( ar, perm 0,axis=0)
flag = ediff1d( aux, 1 ) != 0
- return numpy.compress( flag, perm ), numpy.compress( flag, aux )
+ return numpy.compress( flag, perm ,axis=-1), numpy.compress( flag, aux ,axis=-1)
else:
aux = numpy.sort( ar )
- return numpy.compress( ediff1d( aux, 1 ) != 0, aux )
+ return numpy.compress( ediff1d( aux, 1 ) != 0, aux ,axis=-1)
##
# 01.11.2005, c
def intersect1d( ar1, ar2 ):
"""Intersection of 1D arrays with unique elements."""
aux = numpy.sort( numpy.concatenate( (ar1, ar2 ) ) )
- return numpy.compress( (aux[1:] - aux[:-1]) == 0, aux )
+ return numpy.compress( (aux[1:] - aux[:-1]) == 0, aux ,axis=-1)
##
# 01.11.2005, c
@@ -83,7 +83,7 @@
# Might be faster then unique1d( intersect1d( ar1, ar2 ) )?
aux = numpy.sort( numpy.concatenate( (unique1d( ar1 ),
unique1d( ar2 )) ) )
- return numpy.compress( (aux[1:] - aux[:-1]) == 0, aux )
+ return numpy.compress( (aux[1:] - aux[:-1]) == 0, aux ,axis=-1)
##
# 01.11.2005, c
@@ -92,7 +92,7 @@
aux = numpy.sort( numpy.concatenate( (ar1, ar2 ) ) )
flag = ediff1d( aux, toEnd = 1, toBegin = 1 ) == 0
flag2 = ediff1d( flag, 0 ) == 0
- return numpy.compress( flag2, aux )
+ return numpy.compress( flag2, aux ,axis=-1)
##
# 03.11.2005, c
@@ -128,7 +128,7 @@
def setdiff1d( ar1, ar2 ):
"""Set difference of 1D arrays with unique elements."""
aux = setmember1d( ar1, ar2 )
- return numpy.compress( aux == 0, ar1 )
+ return numpy.compress( aux == 0, ar1 ,axis=-1)
##
# 03.11.2005, c
@@ -138,7 +138,7 @@
ec = numpy.array( [1, 2, 5, 7] )
c = unique1d( a )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
# 03.11.2005, c
@@ -149,7 +149,7 @@
ec = numpy.array( [1, 2, 5] )
c = intersect1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
# 03.11.2005, c
@@ -160,7 +160,7 @@
ec = numpy.array( [1, 2, 5] )
c = intersect1d_nu( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
# 03.11.2005, c
@@ -171,21 +171,21 @@
ec = numpy.array( [3, 4, 7] )
c = setxor1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
a = numpy.array( [1, 2, 3] )
b = numpy.array( [6, 5, 4] )
ec = numpy.array( [1, 2, 3, 4, 5, 6] )
c = setxor1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
a = numpy.array( [1, 8, 2, 3] )
b = numpy.array( [6, 5, 4, 8] )
ec = numpy.array( [1, 2, 3, 4, 5, 6] )
c = setxor1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
@@ -197,17 +197,17 @@
ec = numpy.array( [True, False, True, True] )
c = setmember1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
a[0] = 8
ec = numpy.array( [False, False, True, True] )
c = setmember1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
a[0], a[3] = 4, 8
ec = numpy.array( [True, False, True, False] )
c = setmember1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
# 03.11.2005, c
@@ -218,7 +218,7 @@
ec = numpy.array( [1, 2, 3, 4, 5, 7] )
c = union1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
# 03.11.2005, c
@@ -229,7 +229,7 @@
ec = numpy.array( [6, 7] )
c = setdiff1d( a, b )
- assert numpy.alltrue( c == ec )
+ assert numpy.alltrue( c == ec ,axis=0)
##
# 03.11.2005, c
@@ -241,7 +241,7 @@
c1 = intersect1d_nu( a, b )
c2 = unique1d( intersect1d( a, b ) )
- assert numpy.alltrue( c1 == c2 )
+ assert numpy.alltrue( c1 == c2 ,axis=0)
a = numpy.array( [5, 7, 1, 2, 8] )
b = numpy.array( [9, 8, 2, 4, 3, 1, 5] )
@@ -250,7 +250,7 @@
aux1 = intersect1d( a, b )
aux2 = union1d( a, b )
c2 = setdiff1d( aux2, aux1 )
- assert numpy.alltrue( c1 == c2 )
+ assert numpy.alltrue( c1 == c2 ,axis=0)
##
# 02.11.2005, c
@@ -292,7 +292,7 @@
dt1s.append( dt1 )
dt2s.append( dt2 )
- assert numpy.alltrue( b == c )
+ assert numpy.alltrue( b == c ,axis=0)
print nItems
Modified: trunk/Lib/sandbox/delaunay/interpolate.py
===================================================================
--- trunk/Lib/sandbox/delaunay/interpolate.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/delaunay/interpolate.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -126,7 +126,7 @@
from its original Voronoi polygon, stolen[i]. We define the natural
neighbors coordinates
- phi[i] = stolen[i] / sum(stolen)
+ phi[i] = stolen[i] / sum(stolen,axis=0)
We then use these phi[i] to weight the corresponding function values from
the input data z to compute the interpolated value.
Modified: trunk/Lib/sandbox/ga/ga_util.py
===================================================================
--- trunk/Lib/sandbox/ga/ga_util.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/ga/ga_util.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -58,4 +58,4 @@
def remove_NaN(z):
from numpy import isnan, isinf, compress, logical_not
- return compress(logical_not( isnan(z)+isinf(z)),z)
+ return compress(logical_not( isnan(z)+isinf(z)),z,axis=-1)
Modified: trunk/Lib/sandbox/ga/parallel_pop.py
===================================================================
--- trunk/Lib/sandbox/ga/parallel_pop.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/ga/parallel_pop.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -520,7 +520,7 @@
time.sleep(self.wait)
- return sum(genome.array())
+ return sum(genome.array(),axis=0)
Modified: trunk/Lib/sandbox/ga/selection.py
===================================================================
--- trunk/Lib/sandbox/ga/selection.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/ga/selection.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -40,7 +40,7 @@
(f_max <= 0 and f_min <= 0)):
raise GAError, 'srs_selector requires all fitnesses values to be either strictly positive or strictly negative'
if f_max == f_min: f = ones(shape(f),typecode = Float32)
- self.dart_board = add.accumulate(f / sum(f))
+ self.dart_board = add.accumulate(f / sum(f,axis=0))
def select(self,pop,cnt = 1):
returns = []
for i in range(cnt):
@@ -63,7 +63,7 @@
if not ( (f_max >= 0. and f_min >= 0.) or
(f_max <= 0. and f_min <= 0.)):
raise GAError, 'srs_selector requires all fitnesses values to be either strictly positive or strictly negative - min %f, max %f' %(f_min,f_max)
- f_avg = sum(f)/sz
+ f_avg = sum(f,axis=0)/sz
if f_avg == 0.: e = ones(shape(f),typecode = Float32)
else:
if pop.min_or_max() == 'max': e = f/f_avg
@@ -75,7 +75,7 @@
choices = []
for i in xrange(sz): choices = choices + [pop[i]] * int(garauntee[i])
#now deal with the remainder
- dart_board = add.accumulate(chance / sum(chance))
+ dart_board = add.accumulate(chance / sum(chance,axis=0))
for i in range(len(choices),sz):
dart = rv.random()
idx = 0
Modified: trunk/Lib/sandbox/gplt/new_plot.py
===================================================================
--- trunk/Lib/sandbox/gplt/new_plot.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/gplt/new_plot.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -7,8 +7,8 @@
def squeeze(a):
s = shape(a)
- dims = len(s) - sum(equal(1,s))
- new_s = compress(not_equal(1,s),s)
+ dims = len(s) - sum(equal(1,s),axis=0)
+ new_s = compress(not_equal(1,s),s,axis=-1)
return reshape(a,new_s)
Modified: trunk/Lib/sandbox/image/color.py
===================================================================
--- trunk/Lib/sandbox/image/color.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/image/color.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -63,7 +63,7 @@
# Vos, Estevez, and Walraven (1990)
# with alteration in S-cone sensitivity from
# Stockman and Sharpe (2000)
-# scaled so that sum(LMS) has a peak of 1
+# scaled so that sum(LMS,axis=0) has a peak of 1
# just like LMS_from_XYZ
lms_from_rgbsb = [[0.14266235473644004, 0.49009667755566039,
Modified: trunk/Lib/sandbox/models/bsplines.py
===================================================================
--- trunk/Lib/sandbox/models/bsplines.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/models/bsplines.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -48,7 +48,7 @@
_shape = x.shape
if _shape == ():
x.shape = (1,)
- x.shape = (N.product(_shape),)
+ x.shape = (N.product(_shape,axis=0),)
if i < self.tau.shape[0] - 1:
## TODO: OWNDATA flags...
v = _bspline.evaluate(x, self.tau, self.m, d, i, i+1)
@@ -65,7 +65,7 @@
_shape = x.shape
if _shape == ():
x.shape = (1,)
- x.shape = (N.product(_shape),)
+ x.shape = (N.product(_shape,axis=0),)
if upper is None:
upper = self.tau.shape[0] - self.m
Modified: trunk/Lib/sandbox/models/cox.py
===================================================================
--- trunk/Lib/sandbox/models/cox.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/models/cox.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -101,7 +101,7 @@
else:
self.design[t] = d
self.risk[t] = N.compress([s.atrisk(t) for s in self.subjects],
- N.arange(self.design[t].shape[0]))
+ N.arange(self.design[t].shape[0]),axis=-1)
def __del__(self):
shutil.rmtree(self.cachedir, ignore_errors=True)
Modified: trunk/Lib/sandbox/models/regression.py
===================================================================
--- trunk/Lib/sandbox/models/regression.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/models/regression.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -138,7 +138,7 @@
"""
Return the R^2 value for each row of the response Y.
"""
- self.Ssq = N.std(self.Z)**2
+ self.Ssq = N.std(self.Z,axis=0)**2
ratio = self.scale / self.Ssq
if not adjusted: ratio *= ((Y.shape[0] - 1) / self.df_resid)
return 1 - ratio
Modified: trunk/Lib/sandbox/models/utils.py
===================================================================
--- trunk/Lib/sandbox/models/utils.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/models/utils.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -22,7 +22,7 @@
"""
_shape = a.shape
- a.shape = N.product(a.shape)
+ a.shape = N.product(a.shape,axis=0)
m = scipy.median(N.fabs(a - scipy.median(a))) / c
a.shape = _shape
return m
@@ -123,7 +123,7 @@
"""
x = N.array(values, copy=True)
x.sort()
- x.shape = N.product(x.shape)
+ x.shape = N.product(x.shape,axis=0)
n = x.shape[0]
y = (N.arange(n) + 1.) / n
return StepFunction(x, y)
Modified: trunk/Lib/sandbox/montecarlo/tests/test_dictsampler.py
===================================================================
--- trunk/Lib/sandbox/montecarlo/tests/test_dictsampler.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/montecarlo/tests/test_dictsampler.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -37,7 +37,7 @@
#import pdb
#pdb.set_trace()
s = sampler.sample(n)
- assert sum(s[i]=='b' for i in range(n))*1./n > 0.75
+ assert sum(s[i]=='b' for i in range(n),axis=0)*1./n > 0.75
#lam = 10.0
#n = 35
@@ -68,8 +68,8 @@
v = x.var()
assert x.max() == 4
assert x.min() == 0
- assert sum(x==3) == 0
- assert 0.08 < average(x==1) < 0.12
+ assert sum(x==3,axis=0) == 0
+ assert 0.08 < average(x==1,axis=0) < 0.12
# Use a normal approx for confidence intervals for the mean
z = 2.5758 # = norminv(0.995), for a 1% confidence interval
assert abs(m - truemean) < z * sqrt(truevar/numsamples)
Modified: trunk/Lib/sandbox/montecarlo/tests/test_intsampler.py
===================================================================
--- trunk/Lib/sandbox/montecarlo/tests/test_intsampler.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/montecarlo/tests/test_intsampler.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -62,8 +62,8 @@
v = x.var()
assert x.max() == 4
assert x.min() == 0
- assert sum(x==3) == 0
- assert 0.08 < average(x==1) < 0.12
+ assert sum(x==3,axis=0) == 0
+ assert 0.08 < average(x==1,axis=0) < 0.12
# Use a normal approx for confidence intervals for the mean
z = 2.5758 # = norminv(0.995), for a 1% confidence interval
assert abs(m - truemean) < z * sqrt(truevar/numsamples)
Modified: trunk/Lib/sandbox/numexpr/tests/test_numexpr.py
===================================================================
--- trunk/Lib/sandbox/numexpr/tests/test_numexpr.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/numexpr/tests/test_numexpr.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -49,8 +49,8 @@
('prod_ffn', 'r0', 't3', 2)])
# Check that full reductions work.
x = arange(10.0)
- assert_equal(evaluate("sum(x**2+2)"), sum(x**2+2))
- assert_equal(evaluate("prod(x**2+2)"), prod(x**2+2))
+ assert_equal(evaluate("sum(x**2+2,axis=0)"), sum(x**2+2,axis=0))
+ assert_equal(evaluate("prod(x**2+2,axis=0)"), prod(x**2+2,axis=0))
# Check that reductions along an axis work
y = arange(9.0).reshape(3,3)
assert_equal(evaluate("sum(y**2, axis=1)"), sum(y**2, axis=1))
@@ -61,16 +61,16 @@
assert_equal(evaluate("prod(y**2, axis=None)"), prod(y**2, axis=None))
# Check integers
x = x.astype(int)
- assert_equal(evaluate("sum(x**2+2)"), sum(x**2+2))
- assert_equal(evaluate("prod(x**2+2)"), prod(x**2+2))
+ assert_equal(evaluate("sum(x**2+2,axis=0)"), sum(x**2+2,axis=0))
+ assert_equal(evaluate("prod(x**2+2,axis=0)"), prod(x**2+2,axis=0))
# Check complex
x = x + 5j
- assert_equal(evaluate("sum(x**2+2)"), sum(x**2+2))
- assert_equal(evaluate("prod(x**2+2)"), prod(x**2+2))
+ assert_equal(evaluate("sum(x**2+2,axis=0)"), sum(x**2+2,axis=0))
+ assert_equal(evaluate("prod(x**2+2,axis=0)"), prod(x**2+2,axis=0))
# Check boolean (should cast to integer)
x = (arange(10) % 2).astype(bool)
- assert_equal(evaluate("prod(x)"), prod(x))
- assert_equal(evaluate("sum(x)"), sum(x))
+ assert_equal(evaluate("prod(x,axis=0)"), prod(x,axis=0))
+ assert_equal(evaluate("sum(x,axis=0)"), sum(x,axis=0))
def check_axis(self):
y = arange(9.0).reshape(3,3)
@@ -216,9 +216,9 @@
def equal(a, b, exact):
if exact:
- return (shape(a) == shape(b)) and alltrue(ravel(a) == ravel(b))
+ return (shape(a) == shape(b)) and alltrue(ravel(a) == ravel(b),axis=0)
else:
- return (shape(a) == shape(b)) and (allclose(ravel(a), ravel(b)) or alltrue(ravel(a) == ravel(b))) # XXX report a bug?
+ return (shape(a) == shape(b)) and (allclose(ravel(a), ravel(b)) or alltrue(ravel(a) == ravel(b),axis=0)) # XXX report a bug?
class Skip(Exception): pass
Modified: trunk/Lib/sandbox/odr/models.py
===================================================================
--- trunk/Lib/sandbox/odr/models.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/odr/models.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -9,7 +9,7 @@
a, b = B[0], B[1:]
b.shape = (b.shape[0], 1)
- return a + sum(x*b)
+ return a + sum(x*b,axis=0)
def _lin_fjb(B, x, concatenate=sb.concatenate, Float=sb.Float,
ones=sb.ones, ravel=sb.ravel):
@@ -20,7 +20,7 @@
def _lin_fjd(B, x, repeat=sb.repeat):
b = B[1:]
- b = repeat(b, (x.shape[-1],)*b.shape[-1])
+ b = repeat(b, (x.shape[-1],)*b.shape[-1],axis=0)
b.shape = x.shape
return b
@@ -40,7 +40,7 @@
a, b = B[0], B[1:]
b.shape = (b.shape[0], 1)
- return a + sum(b * power(x, powers))
+ return a + sum(b * power(x, powers),axis=0)
def _poly_fjacb(B, x, powers, power=sb.power,
concatenate=sb.concatenate, Float=sb.Float, ones=sb.ones):
@@ -54,7 +54,7 @@
b = b * powers
- return sum(b * power(x, powers-1))
+ return sum(b * power(x, powers-1),axis=0)
def _exp_fcn(B, x, exp=sb.exp):
return B[0] + exp(B[1] * x)
Modified: trunk/Lib/sandbox/rkern/diffev.py
===================================================================
--- trunk/Lib/sandbox/rkern/diffev.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/rkern/diffev.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -45,7 +45,7 @@
# S[i] = y_i
# else:
# Sa[i] = y_i
-# if alltrue(shift):
+# if alltrue(shift,axis=0):
# Find graph minima of f(x) using the Ng best points in S.
# Do local search from each minimum.
# Replace worst Ng points in S with best Ng points in Sa.
Modified: trunk/Lib/sandbox/rkern/pink.py
===================================================================
--- trunk/Lib/sandbox/rkern/pink.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/rkern/pink.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -9,7 +9,7 @@
m = 1
for i in range(k):
p = int(ceil(float(n) / m))
- pink += repeat(rvs(size=p), m)[:n]
+ pink += repeat(rvs(size=p), m,axis=0)[:n]
m <<= 1
return pink/k
Modified: trunk/Lib/sandbox/stats/anova.py
===================================================================
--- trunk/Lib/sandbox/stats/anova.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/stats/anova.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -72,7 +72,7 @@
Wscols = [0] + Wcolumns # w/i subj columns INCL col 0
Bscols = makelist(Bbetweens+1,Nfactors+1) #list of btw-subj cols,INCL col 0
Nwifactors = len(Wscols) - 1 # WAS len(Wcolumns)
- #Nwlevels = take(array(Nlevels),Wscols) # no.lvls for each w/i subj fact
+ #Nwlevels = take(array(Nlevels),Wscols,axis=0) # no.lvls for each w/i subj fact
#Nbtwfactors = len(Bscols) - 1 # WASNfactors - Nwifactors + 1
Nblevels = take(array(Nlevels),Bscols,0)
@@ -203,7 +203,7 @@
# dim-numbers change as you collapse). THIS WORKS BECAUSE WE'RE
# COLLAPSING ACROSS W/I SUBJECT AXES, WHICH WILL ALL HAVE THE
# SAME SUBJ IN THE SAME ARRAY LOCATIONS (i.e., dummyvals will still exist
- # but should remain the same value through the mean() function
+ # but should remain the same value through the mean(,axis=0) function
for i in range(len(Lwithinnonsource)-1,-1,-1):
dwsc = mean(dwsc,Lwithinnonsource[i])
mns = dwsc
@@ -287,7 +287,7 @@
idx[0] = -1
loopcap = array(tsubjslots.shape[0:-1]) -1
while incr(idx,loopcap) != -1:
- DNarray[idx] = float(sum(tsubjslots[idx]))
+ DNarray[idx] = float(sum(tsubjslots[idx],axis=0))
thismean = (add.reduce(tsubjslots[idx] * # 1=subj dim
transpose(D[dcount]),1) /
DNarray[idx])
@@ -354,9 +354,9 @@
## Calculate harmonic means for each level in source
sourceNarray = apply_over_axes(hmean, Narray,btwnonsourcedims)
- ## Calc grand average (ga), used for ALL effects
+ ## Calc grand average (ga,axis=0), used for ALL effects
ga = sum((sourceMarray*sourceNarray)/
- sum(sourceNarray))
+ sum(sourceNarray),axis=0),axis=0))
ga = reshape(ga,ones(len(Marray.shape)))
## If GRAND interaction, use harmonic mean of ALL cell Ns
@@ -379,7 +379,7 @@
## Calc and save sums of squares for this source
SS = sum((effect**2 *sourceNarray) *
- multiply.reduce(take(Marray.shape,btwnonsourcedims,0)))
+ multiply.reduce(take(Marray.shape,btwnonsourcedims,0)),axis=0)
## Save it so you don't have to calculate it again next time
SSlist.append(SS)
SSsources.append(source)
@@ -628,9 +628,9 @@
RSinter = zeros((levels,levels),PyObject)
for i in range(levels):
for j in range(i,levels):
- RSw[i,j] = RSw[j,i] = sum(tworkd[i]*tworkd[j])
+ RSw[i,j] = RSw[j,i] = sum(tworkd[i]*tworkd[j],axis=0)
cross = all_cellmeans[i] * all_cellmeans[j]
- multfirst = sum(cross*all_cellns[i])
+ multfirst = sum(cross*all_cellns[i],axis=0)
RSinter[i,j] = RSinter[j,i] = asarray(multfirst)
SSm[i,j] = SSm[j,i] = (mean(all_cellmeans[i],None) *
mean(all_cellmeans[j],None) *
@@ -654,7 +654,7 @@
# Calculate harmonic means for each level in source
sourceDNarray = apply_over_axes(hmean, DN[dindex],btwnonsourcedims)
- # Calc grand average (ga), used for ALL effects
+ # Calc grand average (ga,axis=0), used for ALL effects
variableNs = apply_over_axes(sum, sourceDNarray,
range(len(sourceDMarray.shape)-1))
ga = apply_over_axes(sum, (sourceDMarray*sourceDNarray) / \
@@ -745,7 +745,7 @@
while incr(idx,loopcap) != -1: # loop through source btw level-combos
mask = tsubjslots[idx]
thisgroup = tworkd*mask[newaxis,:]
- groupmns = mean(compress(mask,thisgroup),1)
+ groupmns = mean(compress(mask,thisgroup,axis=-1),1)
### THEN SUBTRACT THEM FROM APPROPRIATE SUBJECTS
errors = errors - multiply.outer(groupmns,mask)
Modified: trunk/Lib/sandbox/stats/obsolete.py
===================================================================
--- trunk/Lib/sandbox/stats/obsolete.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/stats/obsolete.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -30,7 +30,7 @@
def summult(array1, array2, axis=0):
"""
Multiplies elements in array1 and array2, element by element, and
-returns the sum (along 'axis') of all resulting multiplications.
+returns the sum (along 'axis',axis=0) of all resulting multiplications.
Axis can equal None (ravel array first), or an integer (the
axis over which to operate),
"""
Modified: trunk/Lib/sandbox/svm/classification.py
===================================================================
--- trunk/Lib/sandbox/svm/classification.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/svm/classification.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -55,7 +55,7 @@
d = {}
labels = self.labels
for v, (li, lj) in \
- izip(vv, chain(*[izip(repeat(x), labels[i+1:])
+ izip(vv, chain(*[izip(repeat(x,axis=0), labels[i+1:])
for i, x in enumerate(labels[:-1])])):
d[li, lj] = v
d[lj, li] = -v
Modified: trunk/Lib/sandbox/svm/dataset.py
===================================================================
--- trunk/Lib/sandbox/svm/dataset.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/svm/dataset.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -179,7 +179,7 @@
else:
y['index'][:-1] = N.arange(1,len(x) + 1)
y['value'][:-1] = x
- assert N.alltrue(y[:-1]['index'] >= 1), \
+ assert N.alltrue(y[:-1]['index'] >= 1,axis=0), \
'indexes must be positive'
assert len(x) == len(N.unique(y[:-1]['index'])), \
'indexes must be unique'
Modified: trunk/Lib/sandbox/svm/predict.py
===================================================================
--- trunk/Lib/sandbox/svm/predict.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/svm/predict.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -114,7 +114,7 @@
vote = N.zeros((nr_class, dec_values.shape[0]), N.uint32)
classidx = range(nr_class)
for pos, (i, j) in \
- enumerate(chain(*[izip(repeat(idx), classidx[k+1:])
+ enumerate(chain(*[izip(repeat(idx,axis=0), classidx[k+1:])
for k, idx in
enumerate(classidx[:-1])])):
ji = N.array((j, i))
Modified: trunk/Lib/sandbox/svm/tests/test_regression.py
===================================================================
--- trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/svm/tests/test_regression.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -80,7 +80,7 @@
# use differences instead of assertAlmostEqual due to
# compiler-dependent variations in these values
diff = N.absolute(predictions - expected_y)
- self.assert_(N.alltrue(diff < 1e-3))
+ self.assert_(N.alltrue(diff < 1e-3,axis=0))
def check_cross_validate(self):
y = N.random.randn(100)
Modified: trunk/Lib/sandbox/xplt/Mplot.py
===================================================================
--- trunk/Lib/sandbox/xplt/Mplot.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/Mplot.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -1218,18 +1218,18 @@
img1 = DATA[imgsl1]
getdx1 = getdx.__copy__()
getdx1[slice1[0]] = 0
- dx1 = compress(getdx1,dx)
- xb1 = compress(getdx1,xb)
- xe1 = compress(getdx1,xe)
+ dx1 = compress(getdx1,dx,axis=-1)
+ xb1 = compress(getdx1,xb,axis=-1)
+ xe1 = compress(getdx1,xe,axis=-1)
imgsl2 = [slice(None,None),slice(None,None),slice(None,None)]
imgsl2[slice2[0]] = slice2[1]
img2 = DATA[imgsl2]
getdx2 = getdx.__copy__()
getdx2[slice2[0]] = 0
- dx2 = compress(getdx2,dx)
- xb2 = compress(getdx2,xb)
- xe2 = compress(getdx2,xe)
+ dx2 = compress(getdx2,dx,axis=-1)
+ xb2 = compress(getdx2,xb,axis=-1)
+ xe2 = compress(getdx2,xe,axis=-1)
if (slice1[0] == slice2[0]):
Modified: trunk/Lib/sandbox/xplt/NarPlotter.py
===================================================================
--- trunk/Lib/sandbox/xplt/NarPlotter.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/NarPlotter.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -1768,11 +1768,11 @@
val = s.val
elif s.plane is not None :
if len(s.val) == len (s.nv) :
- val = to_corners (s.val, s.nv, sum (s.nv))
+ val = to_corners (s.val, s.nv, sum (s.nv,axis=0))
else :
val = s.val
else :
- val = ones (sum (s.nv), Float) * s.iso
+ val = ones (sum (s.nv,axis=0), Float) * s.iso
else :
nv = concatenate ( (nv, s.nv))
x = concatenate ( (x, s.xyzv [:, 0]))
@@ -1784,13 +1784,13 @@
elif s.plane is not None :
if len(s.val) == len (s.nv) :
val = concatenate ( (val,
- to_corners (s.val, s.nv, sum (s.nv))))
+ to_corners (s.val, s.nv, sum (s.nv,axis=0))))
else :
val = concatenate ( (val, s.val))
else :
- val = concatenate ( (val, ones (sum (s.nv), Float) * s.iso))
+ val = concatenate ( (val, ones (sum (s.nv,axis=0), Float) * s.iso))
nc = len (nv)
- nv = concatenate ( (cumsum (nv), arange (len (x))))
+ nv = concatenate ( (cumsum (nv,axis=0), arange (len (x))))
## if isosurfaces_present :
## self.set_palette (self.split_palette)
self.set_color_card (graf._color_card)
Modified: trunk/Lib/sandbox/xplt/demo5.py
===================================================================
--- trunk/Lib/sandbox/xplt/demo5.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/demo5.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -215,7 +215,7 @@
n_zones = f.NumZones
# Put vertices in right order for Gist
n_z = transpose (
- take (transpose (n_z), array ( [0, 4, 3, 7, 1, 5, 2, 6])))
+ take (transpose (n_z), array ( [0, 4, 3, 7, 1, 5, 2, 6]),axis=0))
m3 = mesh3 (x, y, z, funcs = [c], verts = n_z ) # [0:10])
[nv, xyzv, cv] = slice3 (m3, 1, None, None, 1, value = .9 * max (c) )
pyz = plane3 ( array ([1, 0, 0], Float ), zeros (3, Float))
@@ -358,7 +358,7 @@
npyr = ZLsc [i]
# Now reorder the points (bill has the apex last instead of first)
nz_pyr = transpose (
- take (transpose (nz_pyr), array ( [4, 0, 1, 2, 3])))
+ take (transpose (nz_pyr), array ( [4, 0, 1, 2, 3]),axis=0))
istart = istart + ZLss [i] * ZLsc [i]
elif ZLss[i] == 6 : # PRISM
nz_prism = reshape (ZLsn [istart: istart + ZLss [i] * ZLsc [i]],
@@ -367,7 +367,7 @@
# now reorder the points (bill goes around a square face
# instead of traversing the opposite sides in the same direction.
nz_prism = transpose (
- take (transpose (nz_prism), array ( [0, 1, 3, 2, 4, 5])))
+ take (transpose (nz_prism), array ( [0, 1, 3, 2, 4, 5]),axis=0))
istart = istart + ZLss [i] * ZLsc [i]
elif ZLss[i] == 8 : # HEXAHEDRON
nz_hex = reshape (ZLsn [istart: istart + ZLss [i] * ZLsc [i]],
@@ -375,7 +375,7 @@
# now reorder the points (bill goes around a square face
# instead of traversing the opposite sides in the same direction.
nz_hex = transpose (
- take (transpose (nz_hex), array ( [0, 1, 3, 2, 4, 5, 7, 6])))
+ take (transpose (nz_hex), array ( [0, 1, 3, 2, 4, 5, 7, 6]),axis=0))
nhex = ZLsc [i]
istart = istart + ZLss [i] * ZLsc [i]
else :
Modified: trunk/Lib/sandbox/xplt/gist3dhelp.py
===================================================================
--- trunk/Lib/sandbox/xplt/gist3dhelp.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/gist3dhelp.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -217,7 +217,7 @@
or get3_light(xyz)
return 3D lighting for polygons with vertices XYZ. If NXYZ is
- specified, XYZ should be sum(nxyz)-by-3, with NXYZ being the
+ specified, XYZ should be sum(nxyz,axis=0)-by-3, with NXYZ being the
list of numbers of vertices for each polygon (as for the plfp
function). If NXYZ is not specified, XYZ should be a quadrilateral
mesh, ni-by-nj-by-3 (as for the plf function). In the first case,
@@ -235,7 +235,7 @@
or get3_normal(xyz)
return 3D normals for polygons with vertices XYZ. If NXYZ is
- specified, XYZ should be sum(nxyz)-by-3, with NXYZ being the
+ specified, XYZ should be sum(nxyz,axis=0)-by-3, with NXYZ being the
list of numbers of vertices for each polygon (as for the plfp
function). If NXYZ is not specified, XYZ should be a quadrilateral
mesh, ni-by-nj-by-3 (as for the plf function). In the first case,
@@ -257,7 +257,7 @@
or get3_centroid(xyz)
return 3D centroids for polygons with vertices XYZ. If NXYZ is
- specified, XYZ should be sum(nxyz)-by-3, with NXYZ being the
+ specified, XYZ should be sum(nxyz,axis=0)-by-3, with NXYZ being the
list of numbers of vertices for each polygon (as for the plfp
function). If NXYZ is not specified, XYZ should be a quadrilateral
mesh, ni-by-nj-by-3 (as for the plf function). In the first case,
@@ -332,7 +332,7 @@
"sort3d" :
"""
sort3d(z, npolys)
- given Z and NPOLYS, with len(Z)==sum(npolys), return
+ given Z and NPOLYS, with len(Z)==sum(npolys,axis=0), return
a 2-element list [LIST, VLIST] such that Z[VLIST] and NPOLYS[LIST] are
sorted from smallest average Z to largest average Z, where
the averages are taken over the clusters of length NPOLYS.
@@ -458,9 +458,9 @@
ravel(add.outer (adders,zeros(nj-1, Int))) +
arange((ni-1)*(nj-1), dtype = Int),
array ( [[0, 1], [nj + 1, nj]])))
- xyz=array([take(ravel(xyz[0]),list),
- take(ravel(xyz[1]),list),
- take(ravel(xyz[2]),list)])
+ xyz=array([take(ravel(xyz[0]),list,axis=0),
+ take(ravel(xyz[1]),list,axis=0),
+ take(ravel(xyz[2]),list,axis=0)])
nxyz= ones((ni-1)*(nj-1)) * 4;
The resulting array xyz is 3-by-(4*(nj-1)*(ni-1)).
xyz[0:3,4*i:4*(i+1)] are the clockwise coordinates of the
@@ -523,7 +523,7 @@
the list [NVERTS, XYZVERTS, color]. Note that it is impossible to
pass arguments as addresses, as yorick does in this routine.
NVERTS is the number of vertices in each polygon of the slice, and
- XYZVERTS is the 3-by-sum(NVERTS) list of polygon vertices. If the
+ XYZVERTS is the 3-by-sum(NVERTS,axis=0) list of polygon vertices. If the
FCOLOR argument is present, the values of that coloring function on
the polygons are returned as the value of the slice3 function
(numberof(color_values) == numberof(NVERTS) == number of polygons).
@@ -573,7 +573,7 @@
slice3mesh returns a triple [nverts, xyzverts, color]
nverts is no_cells long and the ith entry tells how many
vertices the ith cell has.
- xyzverts is sum (nverts) by 3 and gives the vertex
+ xyzverts is sum (nverts,axis=0) by 3 and gives the vertex
coordinates of the cells in order.
color, if present, is len (nverts) long and contains
a color value for each cell in the mesh.
@@ -781,7 +781,7 @@
Perform simple 3D rendering of an object created by slice3
(possibly followed by slice2). NVERTS and XYZVERTS are polygon
- lists as returned by slice3, so XYZVERTS is sum(NVERTS)-by-3,
+ lists as returned by slice3, so XYZVERTS is sum(NVERTS,axis=0)-by-3,
where NVERTS is a list of the number of vertices in each polygon.
If present, the VALUES should have the same length as NVERTS;
they are used to color the polygon. If VALUES is not specified,
@@ -797,7 +797,7 @@
cmin = None, cmax = None)
Add the polygon list specified by NVERTS (number of vertices in
- each polygon) and XYZVERTS (3-by-sum(NVERTS) vertex coordinates)
+ each polygon) and XYZVERTS (3-by-sum(NVERTS,axis=0) vertex coordinates)
to the currently displayed b-tree. If VALUES is specified, it
must have the same dimension as NVERTS, and represents the color
of each polygon. If VALUES is not specified, the polygons
Modified: trunk/Lib/sandbox/xplt/gistdemo3d.py
===================================================================
--- trunk/Lib/sandbox/xplt/gistdemo3d.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/gistdemo3d.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -255,7 +255,7 @@
# n_zones = f.NumZones
# # Put vertices in right order for Gist
# n_z = transpose (
-# take (transpose (n_z), array ( [0, 4, 3, 7, 1, 5, 2, 6])))
+# take (transpose (n_z), array ( [0, 4, 3, 7, 1, 5, 2, 6]),axis=0))
# m3 = mesh3 (x, y, z, funcs = [c], verts = n_z ) # [0:10])
# [nv, xyzv, cv] = slice3 (m3, 1, None, None, 1, value = .9 * max (c) )
# pyz = plane3 ( array ([1, 0, 0], Float ), zeros (3, Float))
@@ -400,7 +400,7 @@
# npyr = ZLsc [i]
# # Now reorder the points (bill has the apex last instead of first)
# nz_pyr = transpose (
-# take (transpose (nz_pyr), array ( [4, 0, 1, 2, 3])))
+# take (transpose (nz_pyr), array ( [4, 0, 1, 2, 3]),axis=0))
# istart = istart + ZLss [i] * ZLsc [i]
# elif ZLss[i] == 6 : # PRISM
# nz_prism = reshape (ZLsn [istart: istart + ZLss [i] * ZLsc [i]],
@@ -409,7 +409,7 @@
# # now reorder the points (bill goes around a square face
# # instead of traversing the opposite sides in the same direction.
# nz_prism = transpose (
-# take (transpose (nz_prism), array ( [0, 1, 3, 2, 4, 5])))
+# take (transpose (nz_prism), array ( [0, 1, 3, 2, 4, 5]),axis=0))
# istart = istart + ZLss [i] * ZLsc [i]
# elif ZLss[i] == 8 : # HEXAHEDRON
# nz_hex = reshape (ZLsn [istart: istart + ZLss [i] * ZLsc [i]],
@@ -417,7 +417,7 @@
# # now reorder the points (bill goes around a square face
# # instead of traversing the opposite sides in the same direction.
# nz_hex = transpose (
-# take (transpose (nz_hex), array ( [0, 1, 3, 2, 4, 5, 7, 6])))
+# take (transpose (nz_hex), array ( [0, 1, 3, 2, 4, 5, 7, 6]),axis=0))
# nhex = ZLsc [i]
# istart = istart + ZLss [i] * ZLsc [i]
# else :
Modified: trunk/Lib/sandbox/xplt/mesh3d.py
===================================================================
--- trunk/Lib/sandbox/xplt/mesh3d.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/mesh3d.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -212,10 +212,10 @@
n_z = self.cell_dict[k][1]
if n_z.shape [1] == 8 :
verts.append (
- take (n_z, array ( [0, 1, 3, 2, 4, 5, 7, 6])))
+ take (n_z, array ( [0, 1, 3, 2, 4, 5, 7, 6]),axis=0))
elif n_z.shape [1] == 6 :
verts.append (
- take (n_z, array ( [3, 0, 4, 1, 5, 2])))
+ take (n_z, array ( [3, 0, 4, 1, 5, 2]),axis=0))
else :
verts.append (n_z)
if len (verts) == 1 :
@@ -317,7 +317,7 @@
where :
nv is a one-dimensional integer array whose ith entry is the
number of vertices of the ith face.
- xyzv is a two-dimensional array dimensioned sum (nv) by 3.
+ xyzv is a two-dimensional array dimensioned sum (nv,axis=0) by 3.
The first nv [0] triples are the vertices of face [0],
the next nv [1] triples are the vertices of face [1], etc.
val (if present) is an array the same length as nv whose
Modified: trunk/Lib/sandbox/xplt/pl3d.py
===================================================================
--- trunk/Lib/sandbox/xplt/pl3d.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/pl3d.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -219,7 +219,7 @@
theta = kw ["theta"]
y = array ( [0., z [2], -z [1]])
x = dot (transpose (gr3), array ( [1., 0., 0.]))
- phi = arctan2 (sum (y * x), x [0])
+ phi = arctan2 (sum (y * x,axis=0), x [0])
else :
phi = kw ["phi"]
theta = kw ["theta"]
@@ -370,7 +370,7 @@
or get3_light(xyz)
return 3D lighting for polygons with vertices XYZ. If NXYZ is
- specified, XYZ should be sum(nxyz)-by-3, with NXYZ being the
+ specified, XYZ should be sum(nxyz,axis=0)-by-3, with NXYZ being the
list of numbers of vertices for each polygon (as for the plfp
function). If NXYZ is not specified, XYZ should be a quadrilateral
mesh, ni-by-nj-by-3 (as for the plf function). In the first case,
@@ -404,7 +404,7 @@
else :
view = array ( [0., 0., zc], Float) - get3_centroid (xyz, nxyz [0])
m1 = \
- sqrt ( sum (view * view))
+ sqrt ( sum (view * view,axis=0))
if m1 == 0. : m1 = 1.
view = view / m1
@@ -412,11 +412,11 @@
normal [2, ...] * view [2]
light = ambient + diffuse * abs (nv)
if specular != 0. :
- sv = transpose (transpose (sdir) / sqrt (sum (transpose (sdir*sdir))))
+ sv = transpose (transpose (sdir) / sqrt (sum (transpose (sdir*sdir),axis=0)))
sv = dot (sv, view)
if len (shape (sdir)) == 1 :
sn = sum(array([sdir[0]*normal[0],sdir[1]*normal[1],
- sdir[2]*normal[2]]))
+ sdir[2]*normal[2]]),axis=0)
####### I left out the specular_hook stuff.
m1 = maximum (sn * nv -0.5 * sv + 0.5, 1.e-30)
m1 = m1 ** spower
@@ -426,7 +426,7 @@
nsrc = len (shape (sdir))
for i in range (nsrc) :
sn = sum(array([sdir[i,0]*normal[0],sdir[i,1]*normal[1],
- sdir[i,2]*normal[2]]))
+ sdir[i,2]*normal[2]]),axis=0)
m1 = maximum (sn * nv -0.5 * sv [i] + 0.5, 1.e-30) ** spower [i]
light = light + specular * m1
return light
@@ -438,7 +438,7 @@
or get3_normal(xyz)
return 3D normals for polygons with vertices XYZ. If NXYZ is
- specified, XYZ should be sum(nxyz)-by-3, with NXYZ being the
+ specified, XYZ should be sum(nxyz,axis=0)-by-3, with NXYZ being the
list of numbers of vertices for each polygon (as for the plfp
function). If NXYZ is not specified, XYZ should be a quadrilateral
mesh, ni-by-nj-by-3 (as for the plf function). In the first case,
@@ -463,7 +463,7 @@
else :
# with polygon list, more elaborate calculation required
# (1) frst subscripts the first vertex of each polygon
- frst = cumsum (nxyz [0]) - nxyz [0]
+ frst = cumsum (nxyz [0],axis=0) - nxyz [0]
# form normal by getting two approximate diameters
# (reduces to above medians for quads)
@@ -508,7 +508,7 @@
or get3_centroid(xyz)
return 3D centroids for polygons with vertices XYZ. If NXYZ is
- specified, XYZ should be sum(nxyz)-by-3, with NXYZ being the
+ specified, XYZ should be sum(nxyz,axis=0)-by-3, with NXYZ being the
list of numbers of vertices for each polygon (as for the plfp
function). If NXYZ is not specified, XYZ should be a quadrilateral
mesh, ni-by-nj-by-3 (as for the plf function). In the first case,
@@ -526,9 +526,9 @@
centroid = zcen_ (zcen_ (xyz, 1), 0)
else :
# with polygon list, more elaborate calculation required
- last = cumsum (nxyz [0])
+ last = cumsum (nxyz [0],axis=0)
list = histogram (1 + last) [0:-1]
- list = cumsum (list)
+ list = cumsum (list,axis=0)
k = len (nxyz [0])
l = shape (xyz) [0]
centroid = zeros ( (k, 3))
@@ -807,7 +807,7 @@
"""
sort3d(z, npolys)
- given Z and NPOLYS, with len(Z)==sum(npolys), return
+ given Z and NPOLYS, with len(Z)==sum(npolys,axis=0), return
a 2-element list [LIST, VLIST] such that Z[VLIST] and NPOLYS[LIST] are
sorted from smallest average Z to largest average Z, where
the averages are taken over the clusters of length NPOLYS.
@@ -834,8 +834,8 @@
# get a list the same length as x, y, or z which is 1 for each
# vertex of poly 1, 2 for each vertex of poly2, etc.
# the goal is to make nlist with histogram(nlist)==npolys
- nlist = histogram(cumsum (npolys)) [0:-1]
- nlist = cumsum (nlist)
+ nlist = histogram(cumsum (npolys,axis=0)) [0:-1]
+ nlist = cumsum (nlist,axis=0)
# now sum the vertex values and divide by the number of vertices
z = histogram (nlist, z) / npolys
@@ -1079,7 +1079,7 @@
# label positions: first find shortest axis
xy = sqrt (x1 * x1 + y1 * y1)
xysum = add.reduce (xy)
- i = argmin (xy) # mnx (xy)
+ i = argmin (xy,axis=-1) # mnx (xy)
jk = [ [1, 2], [2, 0], [0, 1]] [i]
j = jk [0]
k = jk [1]
Modified: trunk/Lib/sandbox/xplt/slice3.py
===================================================================
--- trunk/Lib/sandbox/xplt/slice3.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/slice3.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -72,8 +72,8 @@
# the normal doesn't really need to be normalized, but this
# has the desirable side effect of blowing up if normal==0
newnorm = zeros (4, Float)
- newnorm [0:3] = normal / sqrt (sum (normal*normal))
- newnorm [3] = sum (multiply (normal, point))
+ newnorm [0:3] = normal / sqrt (sum (normal*normal,axis=0))
+ newnorm [3] = sum (multiply (normal, point),axis=0)
return newnorm
_Mesh3Error = "Mesh3Error"
@@ -255,7 +255,7 @@
the list [NVERTS, XYZVERTS, color]. Note that it is impossible to
pass arguments as addresses, as yorick does in this routine.
NVERTS is the number of vertices in each polygon of the slice, and
- XYZVERTS is the 3-by-sum(NVERTS) list of polygon vertices. If the
+ XYZVERTS is the 3-by-sum(NVERTS,axis=0) list of polygon vertices. If the
FCOLOR argument is present, the values of that coloring function on
the polygons are returned as the value of the slice3 function
(numberof(color_values) == numberof(NVERTS) == number of polygons).
@@ -442,8 +442,8 @@
critical_cells = bitwise_and (add.reduce \
(reshape (ravel (transpose (less (fs [0], slice3_precision))), \
(8, dim1))), 7)
- if (sum (critical_cells) != 0) :
- clist = take (fs [1], nonzero (critical_cells))
+ if (sum (critical_cells,axis=0) != 0) :
+ clist = take (fs [1], nonzero (critical_cells),axis=0)
ntotal8 = ntotal8 + len (clist)
else :
clist = None
@@ -457,8 +457,8 @@
(6, dim1)))
critical_cells = logical_and (greater (critical_cells, 0),
less (critical_cells, 6))
- if (sum (critical_cells) != 0) :
- clist = take (fs [1], nonzero (critical_cells))
+ if (sum (critical_cells,axis=0) != 0) :
+ clist = take (fs [1], nonzero (critical_cells),axis=0)
ntotal6 = ntotal6 + len (clist)
else :
clist = None
@@ -472,8 +472,8 @@
(5, dim1)))
critical_cells = logical_and (greater (critical_cells, 0),
less (critical_cells, 5))
- if (sum (critical_cells) != 0) :
- clist = take (fs [1], nonzero (critical_cells))
+ if (sum (critical_cells,axis=0) != 0) :
+ clist = take (fs [1], nonzero (critical_cells),axis=0)
ntotal5 = ntotal5 + len (clist)
else :
clist = None
@@ -485,8 +485,8 @@
critical_cells = bitwise_and (add.reduce \
(reshape (ravel (transpose (less (fs [0], slice3_precision))), \
(4, dim1))), 3)
- if (sum (critical_cells) != 0) :
- clist = take (fs [1], nonzero (critical_cells))
+ if (sum (critical_cells,axis=0) != 0) :
+ clist = take (fs [1], nonzero (critical_cells),axis=0)
ntotal4 = ntotal4 + len (clist)
else :
clist = None
@@ -501,7 +501,7 @@
clist1 = ravel (zcen_ (zcen_ (zcen_
(array (less (fs, slice3_precision), Float), 0), 1), 2))
clist1 = logical_and (less (clist1, .9), greater (clist1, .1))
- if sum (clist1) > 0 :
+ if sum (clist1,axis=0) > 0 :
clist = nonzero (clist1)
ntotal = ntotal + len (clist)
else :
@@ -516,30 +516,30 @@
# values at the vertices of these cells
if (irregular) :
# extract the portions of the data indexed by clist
- fs = take (fs [0], clist)
+ fs = take (fs [0], clist,axis=0)
if got_xyz :
- _xyz3 = take (_xyz3, clist)
+ _xyz3 = take (_xyz3, clist,axis=0)
if col :
- col = take (col, clist)
+ col = take (col, clist,axis=0)
else :
# extract the to_corners portions of the data indexed by clist
indices = to_corners3 (clist, dims [1], dims [2])
no_cells = shape (indices) [0]
indices = ravel (indices)
- fs = reshape (take (ravel (fs), indices),\
+ fs = reshape (take (ravel (fs), indices,axis=0),\
(no_cells, 2, 2, 2))
if got_xyz :
new_xyz3 = zeros ( (no_cells, 3, 2, 2, 2), Float )
new_xyz3 [:, 0, ...] = reshape (take (ravel (_xyz3 [0, ...]),\
- indices), (no_cells, 2, 2, 2))
+ indices,axis=0), (no_cells, 2, 2, 2))
new_xyz3 [:, 1, ...] = reshape (take (ravel (_xyz3 [1, ...]),\
- indices), (no_cells, 2, 2, 2))
+ indices,axis=0), (no_cells, 2, 2, 2))
new_xyz3 [:, 2, ...] = reshape (take (ravel (_xyz3 [2, ...]),\
- indices), (no_cells, 2, 2, 2))
+ indices,axis=0), (no_cells, 2, 2, 2))
_xyz3 = new_xyz3
del new_xyz3
if col != None :
- col = reshape (take (ravel (col), indices), (no_cells, 2, 2, 2))
+ col = reshape (take (ravel (col), indices,axis=0), (no_cells, 2, 2, 2))
# NB: col represents node colors, and is only used
# if those are requested.
# here, the iterator converts to absolute cell indices without
@@ -616,27 +616,27 @@
# construct edge endpoint indices in fs, xyz arrays
# the numbers are the endpoint indices corresponding to
# the order of the _no_edges [i] edges in the mask array
- lower = take (_lower_vert [i], edges) + _no_verts [i] * cells
- upper = take (_upper_vert [i], edges) + _no_verts [i] * cells
- fsl = take (ravel (fs), lower)
- fsu = take (ravel (fs), upper)
+ lower = take (_lower_vert [i], edges,axis=0) + _no_verts [i] * cells
+ upper = take (_upper_vert [i], edges,axis=0) + _no_verts [i] * cells
+ fsl = take (ravel (fs), lower,axis=0)
+ fsu = take (ravel (fs), upper,axis=0)
# following denominator guaranteed non-zero
denom = fsu - fsl
fsu = fsu / denom
fsl = fsl / denom
new_xyz = zeros ( (len (lower), 3), Float )
- new_xyz [:, 0] = reshape ( (take (ravel (xyz [:, 0]), lower) * fsu - \
- take (ravel (xyz [:, 0]), upper) * fsl), (len (lower),))
- new_xyz [:, 1] = reshape ( (take (ravel (xyz [:, 1]), lower) * fsu - \
- take (ravel (xyz [:, 1]), upper) * fsl), (len (lower),))
- new_xyz [:, 2] = reshape ( (take (ravel (xyz [:, 2]), lower) * fsu - \
- take (ravel (xyz [:, 2]), upper) * fsl), (len (lower),))
+ new_xyz [:, 0] = reshape ( (take (ravel (xyz [:, 0]), lower,axis=0) * fsu - \
+ take (ravel (xyz [:, 0]), upper,axis=0) * fsl), (len (lower),))
+ new_xyz [:, 1] = reshape ( (take (ravel (xyz [:, 1]), lower,axis=0) * fsu - \
+ take (ravel (xyz [:, 1]), upper,axis=0) * fsl), (len (lower),))
+ new_xyz [:, 2] = reshape ( (take (ravel (xyz [:, 2]), lower,axis=0) * fsu - \
+ take (ravel (xyz [:, 2]), upper,axis=0) * fsl), (len (lower),))
xyz = new_xyz
del new_xyz
if col != None :
# Extract subset of the data the same way
- col = take (ravel (col), lower) * fsu - \
- take (ravel (col), upper) * fsl
+ col = take (ravel (col), lower,axis=0) * fsu - \
+ take (ravel (col), upper,axis=0) * fsl
# The xyz array is now the output xyzverts array,
# but for the order of the points within each cell.
@@ -645,10 +645,10 @@
# above and below the slicing plane
p2 = left_shift (ones (_no_verts [i], Int) , array (
[0, 1, 2, 3, 4, 5, 6, 7], Int) [0: _no_verts [i]])
- pattern = transpose (sum (transpose (multiply (below, p2))))
+ pattern = transpose (sum (transpose (multiply (below, p2)),axis=0))
# broadcast the cell's pattern onto each of its sliced edges
- pattern = take (pattern, list / _no_edges [i])
+ pattern = take (pattern, list / _no_edges [i],axis=0)
# Let ne represent the number of edges of this type of cell,
# and nv the number of vertices.
# To each pattern, there corresponds a permutation of the
@@ -662,17 +662,17 @@
# Let these permutations be stored in a ne-by-2**nv - 2 array
# _poly_permutations (see next comment for explanation of 4 * ne):
pattern = take (ravel (transpose (_poly_permutations [i])),
- _no_edges [i] * (pattern - 1) + edges) + 4 * _no_edges [i] * cells
+ _no_edges [i] * (pattern - 1) + edges,axis=0) + 4 * _no_edges [i] * cells
order = argsort (pattern)
xyz1 = zeros ( (len (order), 3), Float )
- xyz1 [:,0] = take (ravel (xyz [:,0]), order)
- xyz1 [:,1] = take (ravel (xyz [:,1]), order)
- xyz1 [:,2] = take (ravel (xyz [:,2]), order)
+ xyz1 [:,0] = take (ravel (xyz [:,0]), order,axis=0)
+ xyz1 [:,1] = take (ravel (xyz [:,1]), order,axis=0)
+ xyz1 [:,2] = take (ravel (xyz [:,2]), order,axis=0)
xyz = xyz1
if col != None :
- col = take (col, order)
- edges = take (edges, order)
- pattern = take (pattern, order)
+ col = take (col, order,axis=0)
+ edges = take (edges, order,axis=0)
+ pattern = take (pattern, order,axis=0)
# cells(order) is same as cells by construction */
# There remains only the question of splitting the points in
@@ -697,7 +697,7 @@
list [1:] = nz + 1
newpat = zeros (len (pattern) + 1, Int)
newpat [0] = 1
- newpat [1:] = cumsum (not_equal (pattern, 0)) + 1
+ newpat [1:] = cumsum (not_equal (pattern, 0),axis=0) + 1
pattern = newpat
nverts = histogram (pattern) [1:]
xyzverts = xyz
@@ -709,7 +709,7 @@
# if some polys have been split, need to split clist as well
if len (list) > len (clist) :
- clist = take (clist, take (cells, list))
+ clist = take (clist, take (cells, list, axis=0),axis=0)
if col == None :
if nointerp == None :
if type (fcolor) == FunctionType :
@@ -780,7 +780,7 @@
slice3mesh returns a triple [nverts, xyzverts, color]
nverts is no_cells long and the ith entry tells how many
vertices the ith cell has.
- xyzverts is sum (nverts) by 3 and gives the vertex
+ xyzverts is sum (nverts,axis=0) by 3 and gives the vertex
coordinates of the cells in order.
color, if present, is len (nverts) long and contains
a color value for each cell in the mesh.
@@ -889,18 +889,18 @@
elif shape (color) == (ncx, ncy) and smooth == 0 :
col = ravel (color)
# Lower left, upper left, upper right, lower right
- col = 0.25 * (take (col, ravel (add.outer ( ncxx, ncyy))) +
- take (col, ravel (add.outer ( ncxx, ncyy + 1))) +
- take (col, ravel (add.outer ( ncxx + ncy, ncyy + 1))) +
- take (col, ravel (add.outer ( ncxx + ncy, ncyy))))
+ col = 0.25 * (take (col, ravel (add.outer ( ncxx, ncyy)),axis=0) +
+ take (col, ravel (add.outer ( ncxx, ncyy + 1)),axis=0) +
+ take (col, ravel (add.outer ( ncxx + ncy, ncyy + 1)),axis=0) +
+ take (col, ravel (add.outer ( ncxx + ncy, ncyy)),axis=0))
elif shape (color) == (ncx, ncy) and smooth != 0 :
# Node-centered colors are wanted (smooth plots)
col = ravel (color)
col = ravel (transpose (array ( [
- take (col, ravel (add.outer ( ncxx, ncyy))),
- take (col, ravel (add.outer ( ncxx, ncyy + 1))),
- take (col, ravel (add.outer ( ncxx + ncy, ncyy + 1))),
- take (col, ravel (add.outer ( ncxx + ncy, ncyy)))])))
+ take (col, ravel (add.outer ( ncxx, ncyy)),axis=0),
+ take (col, ravel (add.outer ( ncxx, ncyy + 1)),axis=0),
+ take (col, ravel (add.outer ( ncxx + ncy, ncyy + 1)),axis=0),
+ take (col, ravel (add.outer ( ncxx + ncy, ncyy)),axis=0)])))
else :
raise _Slice3MeshError, \
"color must be cell-centered or vertex centered."
@@ -920,22 +920,22 @@
else :
newx = ravel (x)
xyzverts [:, 0] = ravel (transpose (array ( [
- take (newx, ravel (add.outer ( ncxx, ncyy))),
- take (newx, ravel (add.outer ( ncxx, ncyy + 1))),
- take (newx, ravel (add.outer ( ncxx + ncy, ncyy + 1))),
- take (newx, ravel (add.outer ( ncxx + ncy, ncyy)))])))
+ take (newx, ravel (add.outer ( ncxx, ncyy)),axis=0),
+ take (newx, ravel (add.outer ( ncxx, ncyy + 1)),axis=0),
+ take (newx, ravel (add.outer ( ncxx + ncy, ncyy + 1)),axis=0),
+ take (newx, ravel (add.outer ( ncxx + ncy, ncyy)),axis=0)])))
newy = ravel (y)
xyzverts [:, 1] = ravel (transpose (array ( [
- take (newy, ravel (add.outer ( ncxx, ncyy))),
- take (newy, ravel (add.outer ( ncxx, ncyy + 1))),
- take (newy, ravel (add.outer ( ncxx + ncy, ncyy + 1))),
- take (newy, ravel (add.outer ( ncxx + ncy, ncyy)))])))
+ take (newy, ravel (add.outer ( ncxx, ncyy)),axis=0),
+ take (newy, ravel (add.outer ( ncxx, ncyy + 1)),axis=0),
+ take (newy, ravel (add.outer ( ncxx + ncy, ncyy + 1)),axis=0),
+ take (newy, ravel (add.outer ( ncxx + ncy, ncyy)),axis=0)])))
newz = ravel (z)
xyzverts [:, 2] = ravel (transpose (array ( [
- take (newz, ravel (add.outer ( ncxx, ncyy))),
- take (newz, ravel (add.outer ( ncxx, ncyy + 1))),
- take (newz, ravel (add.outer ( ncxx + ncy, ncyy + 1))),
- take (newz, ravel (add.outer ( ncxx + ncy, ncyy)))])))
+ take (newz, ravel (add.outer ( ncxx, ncyy)),axis=0),
+ take (newz, ravel (add.outer ( ncxx, ncyy + 1)),axis=0),
+ take (newz, ravel (add.outer ( ncxx + ncy, ncyy + 1)),axis=0),
+ take (newz, ravel (add.outer ( ncxx + ncy, ncyy)),axis=0)])))
return [nverts, xyzverts, col]
@@ -1041,7 +1041,7 @@
offsets = array ( [njnk, nj, 1], Int)
if clist != None :
# add offset for this chunk to clist and return
- return sum (offsets * ( chunk [0] - 1)) + clist
+ return sum (offsets * ( chunk [0] - 1),axis=0) + clist
# increment to next chunk
xi = chunk [1, 0]
@@ -1229,7 +1229,7 @@
indices = to_corners3 (chunk, dims [0] + 1, dims [1] + 1)
no_cells = shape (indices) [0]
indices = ravel (indices)
- retval = reshape (take (ravel (fi [i]), indices), (no_cells, 2, 2, 2))
+ retval = reshape (take (ravel (fi [i]), indices,axis=0), (no_cells, 2, 2, 2))
return [retval, chunk]
@@ -1282,13 +1282,13 @@
tc = shape (verts) [1]
# ZCM 2/4/97 the array of cell numbers must be relative
if tc == 8 : # hex cells
- return [ reshape (take (fi [i], indices), (no_cells, 2, 2, 2)),
+ return [ reshape (take (fi [i], indices,axis=0), (no_cells, 2, 2, 2)),
arange (0, no_cells, dtype = Int), oldstart]
elif tc == 6 : # pyramids
- return [ reshape (take (fi [i], indices), (no_cells, 3, 2)),
+ return [ reshape (take (fi [i], indices,axis=0), (no_cells, 3, 2)),
arange (0, no_cells, dtype = Int), oldstart]
else : # tetrahedron or pyramid
- return [ reshape (take (fi [i], indices), (no_cells, tc)),
+ return [ reshape (take (fi [i], indices,axis=0), (no_cells, tc)),
arange (0, no_cells, dtype = Int), oldstart]
_Getc3Error = "Getc3Error"
@@ -1362,7 +1362,7 @@
c [0, 2] - 1:1 + c [1, 2]]
else :
[k, l. m] = dims
- return reshape (take (ravel (fi [i - 1]), chunk),
+ return reshape (take (ravel (fi [i - 1]), chunk,axis=0),
(len (chunk), k, l, m))
else :
# it is vertex-centered, so we take averages to get cell quantity
@@ -1379,13 +1379,13 @@
indices = to_corners3 (chunk, dims [1] + 1, dims [2] + 1)
no_cells = shape (indices) [0]
indices = ravel (indices)
- corners = take (ravel (fi [i - 1]), indices)
+ corners = take (ravel (fi [i - 1]), indices,axis=0)
if l == None :
- return 0.125 * sum (transpose (reshape (corners, (no_cells, 8))))
+ return 0.125 * sum (transpose (reshape (corners, (no_cells, 8))),axis=0)
else :
# interpolate corner values to get edge values
- corners = (take (corners, l) * fsu -
- take (corners, u) * fsl) / (fsu -fsl)
+ corners = (take (corners, l,axis=0) * fsu -
+ take (corners, u,axis=0) * fsl) / (fsu -fsl)
# average edge values (vertex values of polys) on each poly
return histogram (cells, corners) / histogram (cells)
@@ -1420,7 +1420,7 @@
if type (chunk) == ListType :
return fi [i - 1] [chunk [0] [0]:chunk [0] [1]]
elif type (chunk) == ArrayType and len (shape (chunk)) == 1 :
- return take (fi [i - 1], chunk)
+ return take (fi [i - 1], chunk,axis=0)
else :
raise _Getc3Error, "chunk argument is incomprehensible."
@@ -1434,7 +1434,7 @@
if type (chunk) == ListType :
indices = verts [chunk [0] [0]:chunk [0] [1]]
elif type (chunk) == ArrayType and len (shape (chunk)) == 1 :
- indices = take (verts, chunk)
+ indices = take (verts, chunk,axis=0)
else :
raise _Getc3Error, "chunk argument is incomprehensible."
else :
@@ -1459,21 +1459,21 @@
ch = chunk
if j > 0 :
ch = chunk - totals [j - 1]
- indices = take (verts, ch)
+ indices = take (verts, ch,axis=0)
else :
raise _Getc3Error, "chunk argument is incomprehensible."
shp = shape (indices)
no_cells = shp [0]
indices = ravel (indices)
- corners = take (fi [i - 1], indices)
+ corners = take (fi [i - 1], indices,axis=0)
if l == None :
return (1. / shp [1]) * transpose ((sum (transpose (reshape (corners,
- (no_cells, shp [1]))) [0:shp [1]])))
+ (no_cells, shp [1]))) [0:shp [1]],axis=0)))
else :
# interpolate corner values to get edge values
- corners = (take (corners, l) * fsu -
- take (corners, u) * fsl) / (fsu -fsl)
+ corners = (take (corners, l,axis=0) * fsu -
+ take (corners, u,axis=0) * fsl) / (fsu -fsl)
# average edge values (vertex values of polys) on each poly
return histogram (cells, corners) / histogram (cells)
@@ -1913,7 +1913,7 @@
Perform simple 3D rendering of an object created by slice3
(possibly followed by slice2). NVERTS and XYZVERTS are polygon
- lists as returned by slice3, so XYZVERTS is sum(NVERTS)-by-3,
+ lists as returned by slice3, so XYZVERTS is sum(NVERTS,axis=0)-by-3,
where NVERTS is a list of the number of vertices in each polygon.
If present, the VALUES should have the same length as NVERTS;
they are used to color the polygon. If VALUES is not specified,
@@ -1953,10 +1953,10 @@
# xyzverts [:, 2] = z
values = get3_light (xyztmp, nverts)
[list, vlist] = sort3d (z, nverts)
- nverts = take (nverts, list)
- values = take (values, list)
- x = take (x, vlist)
- y = take (y, vlist)
+ nverts = take (nverts, list,axis=0)
+ values = take (values, list,axis=0)
+ x = take (x, vlist,axis=0)
+ y = take (y, vlist,axis=0)
_square = get_square_ ( )
[_xfactor, _yfactor] = get_factors_ ()
xmax = max (x)
@@ -1990,7 +1990,7 @@
nverts = array (nverts, Int)
xyzverts = array (xyzverts, Float )
- if shape (xyzverts) [0] != sum (nverts) or sum (less (nverts, 3)) or \
+ if shape (xyzverts) [0] != sum (nverts,axis=0) or sum (less (nverts, 3),axis=0) or \
nverts.dtype != Int :
raise _Pl3surfError, "illegal or inconsistent polygon list"
if values != None and len (values) != len (nverts) :
@@ -2023,7 +2023,7 @@
cmin = None, cmax = None)
Add the polygon list specified by NVERTS (number of vertices in
- each polygon) and XYZVERTS (3-by-sum(NVERTS) vertex coordinates)
+ each polygon) and XYZVERTS (3-by-sum(NVERTS,axis=0) vertex coordinates)
to the currently displayed b-tree. If VALUES is specified, it
must have the same dimension as NVERTS, and represents the color
of each polygon. If VALUES is not specified, the polygons
@@ -2096,22 +2096,22 @@
if plane != None :
plane = plane.astype (Float)
- if shape (xyzverts) [0] != sum (nverts) or sum (less (nverts, 3)) > 0 or \
+ if shape (xyzverts) [0] != sum (nverts,axis=0) or sum (less (nverts, 3),axis=0) > 0 or \
type (nverts [0]) != IntType :
- print "Dim1 of xyzverts ", shape (xyzverts) [0], " sum (nverts) ",\
- sum (nverts), " sum (less (nverts, 3)) ", sum (less (nverts, 3)), \
+ print "Dim1 of xyzverts ", shape (xyzverts) [0], " sum (nverts,axis=0) ",\
+ sum (nverts,axis=0), " sum (less (nverts, 3),axis=0) ", sum (less (nverts, 3),axis=0), \
" type (nverts [0]) ", `type (nverts [0])`
raise _Pl3treeError, "illegal or inconsistent polygon list."
if type (values) == ArrayType and len (values) != len (nverts) and \
- len (values) != sum (nverts) :
+ len (values) != sum (nverts,axis=0) :
raise _Pl3treeError, "illegal or inconsistent polygon color values"
- if type (values) == ArrayType and len (values) == sum (nverts) :
+ if type (values) == ArrayType and len (values) == sum (nverts,axis=0) :
# We have vertex-centered values, which for Gist must be
# averaged over each cell
- list = zeros (sum (nverts), Int)
- array_set (list, cumsum (nverts) [0:-1], ones (len (nverts), Int))
+ list = zeros (sum (nverts,axis=0), Int)
+ array_set (list, cumsum (nverts,axis=0) [0:-1], ones (len (nverts), Int))
tpc = values.dtype
- values = (histogram (cumsum (list), values) / nverts).astype (tpc)
+ values = (histogram (cumsum (list,axis=0), values) / nverts).astype (tpc)
if plane != None :
if (len (shape (plane)) != 1 or shape (plane) [0] != 4) :
raise _Pl3treeError, "illegal plane format, try plane3 function"
@@ -2694,11 +2694,11 @@
# sort the single polygon list
if not_plane :
[_list, _vlist] = sort3d (_z, _nverts)
- _nverts = take (_nverts, _list)
+ _nverts = take (_nverts, _list,axis=0)
if _values != "bg" :
- _values = take (_values, _list)
- _x = take (_x, _vlist)
- _y = take (_y, _vlist)
+ _values = take (_values, _list,axis=0)
+ _x = take (_x, _vlist,axis=0)
+ _y = take (_y, _vlist,axis=0)
_square = get_square_ ( )
[_xfactor, _yfactor] = get_factors_ ()
@@ -2950,7 +2950,7 @@
for leaf in list :
print indent + "leaf length= " + `len (leaf)`
print indent + "npolys= " + `len (leaf [0])` + \
- ", nverts= " + `sum (leaf [0])` + ", max= " + `max (leaf [0])`
+ ", nverts= " + `sum (leaf [0],axis=0)` + ", max= " + `max (leaf [0])`
print indent + "nverts= " + `shape (leaf [1]) [0]` + \
", nvals= " + `len (leaf [2])`
@@ -3059,11 +3059,11 @@
indices = ravel (indices)
retval = zeros ( (no_cells, 3, 2, 2, 2), Float )
m30 = ravel (m3 [1] [0, ...])
- retval [:, 0, ...] = reshape (take (m30, indices), (no_cells, 2, 2, 2))
+ retval [:, 0, ...] = reshape (take (m30, indices,axis=0), (no_cells, 2, 2, 2))
m31 = ravel (m3 [1] [1, ...])
- retval [:, 1, ...] = reshape (take (m31, indices), (no_cells, 2, 2, 2))
+ retval [:, 1, ...] = reshape (take (m31, indices,axis=0), (no_cells, 2, 2, 2))
m32 = ravel (m3 [1] [2, ...])
- retval [:, 2, ...] = reshape (take (m32, indices), (no_cells, 2, 2, 2))
+ retval [:, 2, ...] = reshape (take (m32, indices,axis=0), (no_cells, 2, 2, 2))
return retval
_xyz3Error = "xyz3Error"
@@ -3104,45 +3104,45 @@
else :
start = 0
verts = m3 [1] [0] [i]
- ns = take (verts, chunk - start)
+ ns = take (verts, chunk - start,axis=0)
shp = shape (verts)
else :
- ns = take (m3 [1] [0], chunk)
+ ns = take (m3 [1] [0], chunk,axis=0)
shp = shape (m3 [1] [0])
else :
raise _xyz3Error, "chunk parameter has the wrong type."
if shp [1] == 8 : # hex
retval = zeros ( (no_cells, 3, 2, 2, 2), Float)
retval [:, 0] = \
- reshape (take (xyz [0], ravel (ns)), (no_cells, 2, 2, 2))
+ reshape (take (xyz [0], ravel (ns),axis=0), (no_cells, 2, 2, 2))
retval [:, 1] = \
- reshape (take (xyz [1], ravel (ns)), (no_cells, 2, 2, 2))
+ reshape (take (xyz [1], ravel (ns),axis=0), (no_cells, 2, 2, 2))
retval [:, 2] = \
- reshape (take (xyz [2], ravel (ns)), (no_cells, 2, 2, 2))
+ reshape (take (xyz [2], ravel (ns),axis=0), (no_cells, 2, 2, 2))
elif shp [1] == 6 : # prism
retval = zeros ( (no_cells, 3, 3, 2), Float)
retval [:, 0] = \
- reshape (take (xyz [0], ravel (ns)), (no_cells, 3, 2))
+ reshape (take (xyz [0], ravel (ns),axis=0), (no_cells, 3, 2))
retval [:, 1] = \
- reshape (take (xyz [1], ravel (ns)), (no_cells, 3, 2))
+ reshape (take (xyz [1], ravel (ns),axis=0), (no_cells, 3, 2))
retval [:, 2] = \
- reshape (take (xyz [2], ravel (ns)), (no_cells, 3, 2))
+ reshape (take (xyz [2], ravel (ns),axis=0), (no_cells, 3, 2))
elif shp [1] == 5 : # pyramid
retval = zeros ( (no_cells, 3, 5), Float)
retval [:, 0] = \
- reshape (take (xyz [0], ravel (ns)), (no_cells, 5))
+ reshape (take (xyz [0], ravel (ns),axis=0), (no_cells, 5))
retval [:, 1] = \
- reshape (take (xyz [1], ravel (ns)), (no_cells, 5))
+ reshape (take (xyz [1], ravel (ns),axis=0), (no_cells, 5))
retval [:, 2] = \
- reshape (take (xyz [2], ravel (ns)), (no_cells, 5))
+ reshape (take (xyz [2], ravel (ns),axis=0), (no_cells, 5))
elif shp [1] == 4 : # tet
retval = zeros ( (no_cells, 3, 4), Float)
retval [:, 0] = \
- reshape (take (xyz [0], ravel (ns)), (no_cells, 4))
+ reshape (take (xyz [0], ravel (ns),axis=0), (no_cells, 4))
retval [:, 1] = \
- reshape (take (xyz [1], ravel (ns)), (no_cells, 4))
+ reshape (take (xyz [1], ravel (ns),axis=0), (no_cells, 4))
retval [:, 2] = \
- reshape (take (xyz [2], ravel (ns)), (no_cells, 4))
+ reshape (take (xyz [2], ravel (ns),axis=0), (no_cells, 4))
else :
raise _xyz3Error, "Funny number of cell faces: " + `shp [1]`
return retval
@@ -3211,11 +3211,11 @@
multiply.outer ( ones (n1, Float ), zz [i [2]: i[2] + n2]))
else :
# -- nonconsecutive values
- xyz [:, 0] = reshape (take (xx, ravel (add.outer (xchunk, ijk0))),
+ xyz [:, 0] = reshape (take (xx, ravel (add.outer (xchunk, ijk0)),axis=0),
(len (chunk), 2, 2, 2))
- xyz [:, 1] = reshape (take (yy, ravel (add.outer (ychunk, ijk1))),
+ xyz [:, 1] = reshape (take (yy, ravel (add.outer (ychunk, ijk1)),axis=0),
(len (chunk), 2, 2, 2))
- xyz [:, 2] = reshape (take (zz, ravel (add.outer (zchunk, ijk2))),
+ xyz [:, 2] = reshape (take (zz, ravel (add.outer (zchunk, ijk2)),axis=0),
(len (chunk), 2, 2, 2))
return xyz
Modified: trunk/Lib/sandbox/xplt/sphereisos.py
===================================================================
--- trunk/Lib/sandbox/xplt/sphereisos.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sandbox/xplt/sphereisos.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -29,7 +29,7 @@
n_zones = f.NumZones
# Put vertices in right order for Gist
## n_z = transpose (
-## take (transpose (n_z), array ( [0, 1, 3, 2, 4, 5, 7, 6])))
+## take (transpose (n_z), array ( [0, 1, 3, 2, 4, 5, 7, 6]),axis=0))
m1 = Mesh3d (x = x, y = y, z = z, c = c, avs = 1, hex = [n_zones, n_z])
Modified: trunk/Lib/signal/filter_design.py
===================================================================
--- trunk/Lib/signal/filter_design.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/signal/filter_design.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -22,7 +22,7 @@
if len(ep) == 0:
ep = atleast_1d(-1000)+0j
- ez = c_[numpy.compress(ep.imag >=0, ep), numpy.compress((abs(tz) < 1e5) & (tz.imag >=0),tz)]
+ ez = c_[numpy.compress(ep.imag >=0, ep,axis=-1), numpy.compress((abs(tz) < 1e5) & (tz.imag >=0),tz,axis=-1)]
integ = abs(ez) < 1e-10
hfreq = numpy.around(numpy.log10(numpy.max(3*abs(ez.real + integ)+1.5*ez.imag))+0.5)
@@ -967,7 +967,7 @@
mu = 1.0/N * numpy.log((1.0+numpy.sqrt(1+eps*eps)) / eps)
theta = pi/2.0 * (2*n-1.0)/N
p = -numpy.sinh(mu)*numpy.sin(theta) + 1j*numpy.cosh(mu)*numpy.cos(theta)
- k = numpy.prod(-p).real
+ k = numpy.prod(-p,axis=0).real
if N % 2 == 0:
k = k / sqrt((1+eps*eps))
return z, p, k
@@ -992,7 +992,7 @@
p = exp(1j*(pi*numpy.arange(1,2*N,2)/(2.0*N) + pi/2.0))
p = sinh(mu) * p.real + 1j*cosh(mu)*p.imag
p = 1.0 / p
- k = (numpy.prod(-p)/numpy.prod(-z)).real
+ k = (numpy.prod(-p,axis=0)/numpy.prod(-z,axis=0)).real
return z, p, k
@@ -1059,7 +1059,7 @@
jj = len(j)
[s,c,d,phi] = special.ellipj(j*capk/N,m*numpy.ones(jj))
- snew = numpy.compress(abs(s) > EPSILON, s)
+ snew = numpy.compress(abs(s) > EPSILON, s,axis=-1)
z = 1.0 / (sqrt(m)*snew)
z = 1j*z
z = numpy.concatenate((z,conjugate(z)))
@@ -1072,12 +1072,12 @@
p = -(c*d*sv*cv + 1j*s*dv) / (1-(d*sv)**2.0)
if N % 2:
- newp = numpy.compress(abs(p.imag) > EPSILON*numpy.sqrt(numpy.sum(p*numpy.conjugate(p)).real), p)
+ newp = numpy.compress(abs(p.imag) > EPSILON*numpy.sqrt(numpy.sum(p*numpy.conjugate(p),axis=0).real), p,axis=-1)
p = numpy.concatenate((p,conjugate(newp)))
else:
p = numpy.concatenate((p,conjugate(p)))
- k = (numpy.prod(-p) / numpy.prod(-z)).real
+ k = (numpy.prod(-p,axis=0) / numpy.prod(-z,axis=0)).real
if N % 2 == 0:
k = k / numpy.sqrt((1+eps*eps))
@@ -1539,4 +1539,4 @@
alpha = N//2
m = numpy.arange(0,N)
h = win*special.sinc(cutoff*(m-alpha))
- return h / sum(h)
+ return h / sum(h,axis=0)
Modified: trunk/Lib/signal/ltisys.py
===================================================================
--- trunk/Lib/signal/ltisys.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/signal/ltisys.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -141,9 +141,9 @@
den = poly(A)
- if (product(B.shape) == 0) and (product(C.shape) == 0):
+ if (product(B.shape,axis=0) == 0) and (product(C.shape,axis=0) == 0):
num = numpy.ravel(D)
- if (product(D.shape) == 0) and (product(A.shape) == 0):
+ if (product(D.shape,axis=0) == 0) and (product(A.shape,axis=0) == 0):
den = []
end
return num, den
Modified: trunk/Lib/signal/signaltools.py
===================================================================
--- trunk/Lib/signal/signaltools.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/signal/signaltools.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -68,7 +68,7 @@
kernel = asarray(in2)
if rank(volume) == rank(kernel) == 0:
return volume*kernel
- if (product(kernel.shape) > product(volume.shape)):
+ if (product(kernel.shape,axis=0) > product(volume.shape,axis=0)):
temp = kernel
kernel = volume
volume = temp
@@ -105,7 +105,7 @@
if mode == "full":
return ret
elif mode == "same":
- if product(s1) > product(s2):
+ if product(s1,axis=0) > product(s2,axis=0):
osize = s1
else:
osize = s2
@@ -144,7 +144,7 @@
kernel = asarray(in2)
if rank(volume) == rank(kernel) == 0:
return volume*kernel
- if (product(kernel.shape) > product(volume.shape)):
+ if (product(kernel.shape,axis=0) > product(volume.shape,axis=0)):
temp = kernel
kernel = volume
volume = temp
@@ -225,7 +225,7 @@
domain = ones(kernel_size)
- numels = product(kernel_size)
+ numels = product(kernel_size,axis=0)
order = int(numels/2)
return sigtools._order_filterND(volume,domain,order)
@@ -258,14 +258,14 @@
mysize = asarray(mysize);
# Estimate the local mean
- lMean = correlate(im,ones(mysize),1) / product(mysize)
+ lMean = correlate(im,ones(mysize),1) / product(mysize,axis=0)
# Estimate the local variance
- lVar = correlate(im**2,ones(mysize),1) / product(mysize) - lMean**2
+ lVar = correlate(im**2,ones(mysize),1) / product(mysize,axis=0) - lMean**2
# Estimate the noise power if needed.
if noise==None:
- noise = mean(ravel(lVar))
+ noise = mean(ravel(lVar),axis=0)
res = (im - lMean)
res *= (1-noise / lVar)
@@ -527,10 +527,10 @@
y = r_[y,zeros(N-L)]
for m in range(M):
- zi[m] = sum(b[m+1:]*x[:M-m])
+ zi[m] = sum(b[m+1:]*x[:M-m],axis=0)
for m in range(N):
- zi[m] -= sum(a[m+1:]*y[:N-m])
+ zi[m] -= sum(a[m+1:]*y[:N-m],axis=0)
return zi
@@ -808,7 +808,7 @@
k = m[newaxis,:]
AF = twoF*special.sinc(twoF*(n-k))
[lam,vec] = linalg.eig(AF)
- ind = argmax(abs(lam))
+ ind = argmax(abs(lam),axis=-1)
w = abs(vec[:,ind])
w = w / max(w)
@@ -1328,7 +1328,7 @@
rnk = len(dshape)
if axis < 0: axis = axis + rnk
newdims = r_[axis,0:axis,axis+1:rnk]
- newdata = reshape(transpose(data,tuple(newdims)),(N,prod(dshape)/N))
+ newdata = reshape(transpose(data,tuple(newdims)),(N,prod(dshape,axis=0)/N))
newdata = newdata.copy() # make sure we have a copy
if newdata.dtype.char not in 'dfDF':
newdata = newdata.astype(dtype)
Modified: trunk/Lib/signal/wavelets.py
===================================================================
--- trunk/Lib/signal/wavelets.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/signal/wavelets.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -130,7 +130,7 @@
# evaluation points x < 1 -- i.e. position is 0.xxxx
v = sb.real(v[:,ind])
# need scaling function to integrate to 1 so find
- # eigenvector normalized to sum(v)=1
+ # eigenvector normalized to sum(v,axis=0)=1
sm = sb.sum(v)
if sm < 0: # need scaling function to integrate to 1
v = -v
Modified: trunk/Lib/sparse/tests/test_sparse.py
===================================================================
--- trunk/Lib/sparse/tests/test_sparse.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/sparse/tests/test_sparse.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -39,7 +39,7 @@
assert_equal(self.datsp[2,1],2)
def check_sum(self):
- """Does the matrix's sum() method work?
+ """Does the matrix's sum(,axis=0) method work?
"""
assert_array_equal(self.dat.sum(), self.datsp.sum())
assert_array_equal(self.dat.sum(axis=None), self.datsp.sum(axis=None))
@@ -47,7 +47,7 @@
assert_array_equal(self.dat.sum(axis=1), self.datsp.sum(axis=1))
def check_mean(self):
- """Does the matrix's mean() method work?
+ """Does the matrix's mean(,axis=0) method work?
"""
assert_array_equal(self.dat.mean(), self.datsp.mean())
assert_array_equal(self.dat.mean(axis=None), self.datsp.mean(axis=None))
Modified: trunk/Lib/special/basic.py
===================================================================
--- trunk/Lib/special/basic.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/special/basic.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -412,7 +412,7 @@
n, x = asarray(n), asarray(x)
cond = (n==0)
fac2 = (-1.0)**(n+1) * gamma(n+1.0) * zeta(n+1,x)
- if sometrue(cond):
+ if sometrue(cond,axis=0):
return where(cond, psi(x), fac2)
return fac2
Modified: trunk/Lib/special/orthogonal.py
===================================================================
--- trunk/Lib/special/orthogonal.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/special/orthogonal.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -105,8 +105,8 @@
[x,v] = eig((diag(an)+diag(sqrt_bn,1)+diag(sqrt_bn,-1)))
answer = []
sortind = argsort(real(x))
- answer.append(take(x,sortind))
- answer.append(take(mu*v[0]**2,sortind))
+ answer.append(take(x,sortind,axis=0))
+ answer.append(take(mu*v[0]**2,sortind,axis=0))
return answer
# Jacobi Polynomials 1 P^(alpha,beta)_n(x)
Modified: trunk/Lib/special/tests/Test.py
===================================================================
--- trunk/Lib/special/tests/Test.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/special/tests/Test.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -89,7 +89,7 @@
for t in range(len(self.out_vars.keys())):
dev=abs(self.result[t]-self.out_vars[self.out_vars.keys()[t]])
ref=abs(self.result[t]+self.out_vars[self.out_vars.keys()[t]])/2
- mx_dev_idx=Numeric.argmax(dev)
+ mx_dev_idx=Numeric.argmax(dev,axis=-1)
if dev[mx_dev_idx] > 0.:
if ref[mx_dev_idx] > 0.:
self.max_rel_dev.append(dev[mx_dev_idx]/ref[mx_dev_idx])
Modified: trunk/Lib/special/tests/test_basic.py
===================================================================
--- trunk/Lib/special/tests/test_basic.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/special/tests/test_basic.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -2083,7 +2083,7 @@
def check_take(self):
a = array([0,1,2,3,4,5,6,7,8])
- tka = take(a,(0,4,5,8))
+ tka = take(a,(0,4,5,8),axis=0)
assert_array_equal(tka,array([0,4,5,8]))
class test_tandg(ScipyTestCase):
Modified: trunk/Lib/stats/_support.py
===================================================================
--- trunk/Lib/stats/_support.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stats/_support.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -50,7 +50,7 @@
else: # IT MUST BE A 2+D ARRAY
if inarray.typecode() != 'O': # not an Object array
for item in inarray[1:]:
- if not N.sum(N.alltrue(N.equal(uniques,item),1)):
+ if not N.sum(N.alltrue(N.equal(uniques,item),1),axis=0):
try:
uniques = N.concatenate( [uniques,item[N.newaxis,:]] )
except TypeError: # the item to add isn't a list
@@ -61,7 +61,7 @@
for item in inarray[1:]:
newflag = 1
for unq in uniques: # NOTE: cmp --> 0=same, -1=<, 1=>
- test = N.sum(abs(N.array(map(cmp,item,unq))))
+ test = N.sum(abs(N.array(map(cmp,item,unq))),axis=0)
if test == 0: # if item identical to any 1 row in uniques
newflag = 0 # then not a novel item to add
break
@@ -172,7 +172,7 @@
N of the mean are desired, set either or both parameters to 1.
Returns: unique 'conditions' specified by the contents of columns specified
- by keepcols, abutted with the mean(s) of column(s) specified by
+ by keepcols, abutted with the mean(s,axis=0) of column(s) specified by
collapsecols
"""
if cfcn is None:
Modified: trunk/Lib/stats/distributions.py
===================================================================
--- trunk/Lib/stats/distributions.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stats/distributions.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -211,7 +211,7 @@
def valarray(shape,value=nan,typecode=None):
"""Return an array of all value.
"""
- out = reshape(repeat([value],product(shape)),shape)
+ out = reshape(repeat([value],product(shape,axis=0),axis=0),shape)
if typecode is not None:
out = out.astype(typecode)
if not isinstance(out, ndarray):
@@ -261,7 +261,7 @@
- inverse survival function (inverse of sf)
generic.stats(,loc=0,scale=1,moments='mv')
- - mean('m'), variance('v'), skew('s'), and/or kurtosis('k')
+ - mean('m',axis=0), variance('v'), skew('s'), and/or kurtosis('k')
generic.entropy(,loc=0,scale=1)
- (differential) entropy of the RV.
@@ -428,7 +428,7 @@
if size is None:
size = 1
else:
- self._size = product(size)
+ self._size = product(size,axis=0)
if numpy.isscalar(size):
self._size = size
size = (size,)
@@ -720,10 +720,10 @@
return self._munp(n,*args)
def _nnlf(self, x, *args):
- return -sum(log(self._pdf(x, *args)))
+ return -sum(log(self._pdf(x, *args)),axis=0)
def nnlf(self, theta, x):
- # - sum (log pdf(x, theta))
+ # - sum (log pdf(x, theta),axis=0)
# where theta are the parameters (including loc and scale)
#
try:
@@ -1599,7 +1599,7 @@
return vals
def _munp(self, n, c):
k = arange(0,n+1)
- val = (-1.0/c)**n * sum(scipy.comb(n,k)*(-1)**k / (1.0-c*k))
+ val = (-1.0/c)**n * sum(scipy.comb(n,k)*(-1)**k / (1.0-c*k),axis=0)
return where(c*n < 1, val, inf)
def _entropy(self, c):
if (c > 0):
@@ -1657,7 +1657,7 @@
return 1.0/c*(1-(-log(q))**c)
def _munp(self, n, c):
k = arange(0,n+1)
- vals = 1.0/c**n * sum(scipy.comb(n,k) * (-1)**k * special.gamma(c*k + 1))
+ vals = 1.0/c**n * sum(scipy.comb(n,k) * (-1)**k * special.gamma(c*k + 1),axis=0)
return where(c*n > -1, vals, inf)
genextreme = genextreme_gen(name='genextreme',
longname="A generalized extreme value",
@@ -3173,28 +3173,28 @@
"""S = entropy(pk,qk=None)
calculate the entropy of a distribution given the p_k values
- S = -sum(pk * log(pk))
+ S = -sum(pk * log(pk),axis=0)
If qk is not None, then compute a relative entropy
- S = -sum(pk * log(pk / qk))
+ S = -sum(pk * log(pk / qk),axis=0)
Routine will normalize pk and qk if they don't sum to 1
"""
pk = arr(pk)
- pk = 1.0* pk / sum(pk)
+ pk = 1.0* pk / sum(pk,axis=0)
if qk is None:
vec = where(pk == 0, 0.0, pk*log(pk))
else:
qk = arr(qk)
if len(qk) != len(pk):
raise ValueError, "qk and pk must have same length."
- qk = 1.0*qk / sum(qk)
+ qk = 1.0*qk / sum(qk,axis=0)
# If qk is zero anywhere, then unless pk is zero at those places
# too, the relative entropy is infinite.
- if any(take(pk,nonzero(qk==0.0))!=0.0, 0):
+ if any(take(pk,nonzero(qk==0.0),axis=0)!=0.0, 0):
return inf
vec = where (pk == 0, 0.0, pk*log(pk / qk))
- return -sum(vec)
+ return -sum(vec,axis=0)
## Handlers for generic case where xk and pk are given
@@ -3208,11 +3208,11 @@
return 0.0
def _drv_cdf(self, xk, *args):
- indx = argmax((self.xk>xk))-1
+ indx = argmax((self.xk>xk),axis=-1)-1
return self.F[self.xk[indx]]
def _drv_ppf(self, q, *args):
- indx = argmax((self.qvals>=q))
+ indx = argmax((self.qvals>=q),axis=-1)
return self.Finv[self.qvals[indx]]
def _drv_nonzero(self, k, *args):
@@ -3320,7 +3320,7 @@
- inverse survival function (inverse of sf)
generic.stats(,loc=0,moments='mv')
- - mean('m'), variance('v'), skew('s'), and/or kurtosis('k')
+ - mean('m',axis=0), variance('v'), skew('s'), and/or kurtosis('k')
generic.entropy(,loc=0)
- entropy of the RV
@@ -3364,7 +3364,7 @@
self.a = self.xk[0]
self.b = self.xk[-1]
self.P = make_dict(self.xk, self.pk)
- self.qvals = numpy.cumsum(self.pk)
+ self.qvals = numpy.cumsum(self.pk,axis=0)
self.F = make_dict(self.xk, self.qvals)
self.Finv = reverse_dict(self.F)
self._ppf = new.instancemethod(sgf(_drv_ppf,otypes='d'),
@@ -3437,7 +3437,7 @@
def _cdfsingle(self, k, *args):
m = arange(int(self.a),k+1)
- return sum(self._pmf(m,*args))
+ return sum(self._pmf(m,*args),axis=0)
def _cdf(self, x, *args):
k = floor(x)
@@ -3469,7 +3469,7 @@
if size is None:
size = 1
else:
- self._size = product(size)
+ self._size = product(size,axis=0)
if numpy.isscalar(size):
self._size = size
size = (size,)
@@ -3818,7 +3818,7 @@
k = r_[0:n+1]
vals = self._pmf(k,n,pr)
lvals = where(vals==0,0.0,log(vals))
- return -sum(vals*lvals)
+ return -sum(vals*lvals,axis=0)
binom = binom_gen(name='binom',shapes="n,pr",extradoc="""
Binomial distribution
@@ -3969,7 +3969,7 @@
k = r_[N-(M-n):min(n,N)+1]
vals = self.pmf(k,M,n,N)
lvals = where(vals==0.0,0.0,log(vals))
- return -sum(vals*lvals)
+ return -sum(vals*lvals,axis=0)
hypergeom = hypergeom_gen(name='hypergeom',longname="A hypergeometric",
shapes="M,n,N", extradoc="""
Modified: trunk/Lib/stats/kde.py
===================================================================
--- trunk/Lib/stats/kde.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stats/kde.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -108,15 +108,15 @@
for i in range(self.n):
diff = self.dataset[:,i,newaxis] - points
tdiff = dot(self.inv_cov, diff)
- energy = sum(diff*tdiff)/2.0
+ energy = sum(diff*tdiff,axis=0)/2.0
result += exp(-energy)
else:
# loop over points
for i in range(m):
diff = self.dataset - points[:,i,newaxis]
tdiff = dot(self.inv_cov, diff)
- energy = sum(diff*tdiff)/2.0
- result[i] = sum(exp(-energy))
+ energy = sum(diff*tdiff,axis=0)/2.0
+ result[i] = sum(exp(-energy),axis=0)
det_cov = linalg.det(2*pi*self.covariance)
result /= sqrt(det_cov)*self.n
@@ -159,8 +159,8 @@
diff = self.dataset - mean
tdiff = dot(linalg.inv(sum_cov), diff)
- energies = sum(diff*tdiff)/2.0
- result = sum(exp(-energies))/sqrt(linalg.det(2*pi*sum_cov))/self.n
+ energies = sum(diff*tdiff,axis=0)/2.0
+ result = sum(exp(-energies),axis=0)/sqrt(linalg.det(2*pi*sum_cov))/self.n
return result
@@ -256,8 +256,8 @@
diff = large.dataset - mean
tdiff = dot(linalg.inv(sum_cov), diff)
- energies = sum(diff*tdiff)/2.0
- result += sum(exp(-energies))
+ energies = sum(diff*tdiff,axis=0)/2.0
+ result += sum(exp(-energies),axis=0)
result /= sqrt(linalg.det(2*pi*sum_cov))*large.n*small.n
Modified: trunk/Lib/stats/morestats.py
===================================================================
--- trunk/Lib/stats/morestats.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stats/morestats.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -39,7 +39,7 @@
### Bayesian confidence intervals for mean, variance, std
##########################################################
-## Assumes all is known is that mean, and std (variance) exist
+## Assumes all is known is that mean, and std (variance,axis=0) exist
## and are the same for all the data. Uses Jeffrey's prior
##
## Returns alpha confidence interval for the mean, variance,
@@ -142,7 +142,7 @@
data = ravel(data)
N = len(data)
for k in range(1,n+1):
- S[k] = sum(data**k)
+ S[k] = sum(data**k,axis=0)
if n==1:
return S[1]*1.0/N
elif n==2:
@@ -309,8 +309,8 @@
N = len(data)
y = boxcox(data,lmb)
my = stats.mean(y)
- f = (lmb-1)*sum(log(data))
- f -= N/2.0*log(sum((y-my)**2.0/N))
+ f = (lmb-1)*sum(log(data),axis=0)
+ f -= N/2.0*log(sum((y-my)**2.0/N,axis=0))
return f
def _boxcox_conf_interval(x, lmax, alpha):
@@ -497,8 +497,8 @@
a,b = ab
tmp = (xj-a)/b
tmp2 = exp(tmp)
- val = [sum(1.0/(1+tmp2))-0.5*N,
- sum(tmp*(1.0-tmp2)/(1+tmp2))+N]
+ val = [sum(1.0/(1+tmp2),axis=0)-0.5*N,
+ sum(tmp*(1.0-tmp2)/(1+tmp2),axis=0)+N]
return array(val)
sol0=array([xbar,stats.std(x)])
sol = optimize.fsolve(rootfunc,sol0,args=(x,N),xtol=1e-5)
@@ -510,17 +510,17 @@
def fixedsolve(th,xj,N):
val = stats.sum(xj)*1.0/N
tmp = exp(-xj/th)
- term = sum(xj*tmp)
- term /= sum(tmp)
+ term = sum(xj*tmp,axis=0)
+ term /= sum(tmp,axis=0)
return val - term
s = optimize.fixed_point(fixedsolve, 1.0, args=(x,N),xtol=1e-5)
- xbar = -s*log(sum(exp(-x/s))*1.0/N)
+ xbar = -s*log(sum(exp(-x/s),axis=0)*1.0/N)
w = (y-xbar)/s
z = distributions.gumbel_l.cdf(w)
sig = array([25,10,5,2.5,1])
critical = around(_Avals_gumbel / (1.0 + 0.2/sqrt(N)),3)
i = arange(1,N+1)
- S = sum((2*i-1.0)/N*(log(z)+log(1-z[::-1])))
+ S = sum((2*i-1.0)/N*(log(z)+log(1-z[::-1])),axis=0)
A2 = -N-S
return A2, critical, sig
@@ -575,7 +575,7 @@
xy = r_[x,y] # combine
rank = stats.rankdata(xy)
symrank = amin(array((rank,N-rank+1)),0)
- AB = sum(symrank[:n])
+ AB = sum(symrank[:n],axis=0)
uxy = unique(xy)
repeats = (len(uxy) != len(xy))
exact = ((m<55) and (n<55) and not repeats)
@@ -584,19 +584,19 @@
if exact:
astart, a1, ifault = statlib.gscale(n,m)
ind = AB-astart
- total = sum(a1)
+ total = sum(a1,axis=0)
if ind < len(a1)/2.0:
cind = int(ceil(ind))
if (ind == cind):
- pval = 2.0*sum(a1[:cind+1])/total
+ pval = 2.0*sum(a1[:cind+1],axis=0)/total
else:
- pval = 2.0*sum(a1[:cind])/total
+ pval = 2.0*sum(a1[:cind],axis=0)/total
else:
find = int(floor(ind))
if (ind == floor(ind)):
- pval = 2.0*sum(a1[find:])/total
+ pval = 2.0*sum(a1[find:],axis=0)/total
else:
- pval = 2.0*sum(a1[find+1:])/total
+ pval = 2.0*sum(a1[find+1:],axis=0)/total
return AB, min(1.0,pval)
# otherwise compute normal approximation
@@ -607,8 +607,8 @@
mnAB = n*(N+2.0)/4.0
varAB = m*n*(N+2)*(N-2.0)/48/(N-1.0)
if repeats: # adjust variance estimates
- # compute sum(tj * rj**2)
- fac = sum(symrank**2)
+ # compute sum(tj * rj**2,axis=0)
+ fac = sum(symrank**2,axis=0)
if N % 2: # N odd
varAB = m*n*(16*N*fac-(N+1)**4)/(16.0 * N**2 * (N-1))
else: # N even
@@ -648,10 +648,10 @@
for j in range(k):
Ni[j] = len(args[j])
ssq[j] = stats.var(args[j])
- Ntot = sum(Ni)
- spsq = sum((Ni-1)*ssq)/(1.0*(Ntot-k))
- numer = (Ntot*1.0-k)*log(spsq) - sum((Ni-1.0)*log(ssq))
- denom = 1.0 + (1.0/(3*(k-1)))*((sum(1.0/(Ni-1.0)))-1.0/(Ntot-k))
+ Ntot = sum(Ni,axis=0)
+ spsq = sum((Ni-1)*ssq,axis=0)/(1.0*(Ntot-k))
+ numer = (Ntot*1.0-k)*log(spsq) - sum((Ni-1.0)*log(ssq),axis=0)
+ denom = 1.0 + (1.0/(3*(k-1)))*((sum(1.0/(Ni-1.0),axis=0))-1.0/(Ntot-k))
T = numer / denom
pval = distributions.chi2.sf(T,k-1) # 1 - cdf
return T, pval
@@ -707,7 +707,7 @@
for j in range(k):
Ni[j] = len(args[j])
Yci[j] = func(args[j])
- Ntot = sum(Ni)
+ Ntot = sum(Ni,axis=0)
# compute Zij's
Zij = [None]*k
@@ -721,12 +721,12 @@
Zbar += Zbari[i]*Ni[i]
Zbar /= Ntot
- numer = (Ntot-k)*sum(Ni*(Zbari-Zbar)**2)
+ numer = (Ntot-k)*sum(Ni*(Zbari-Zbar)**2,axis=0)
# compute denom_variance
dvar = 0.0
for i in range(k):
- dvar += sum((Zij[i]-Zbari[i])**2)
+ dvar += sum((Zij[i]-Zbari[i])**2,axis=0)
denom = (k-1.0)*dvar
@@ -767,11 +767,11 @@
rerr = 1+1e-7
if (x < p*n):
i = arange(x+1,n+1)
- y = sum(distributions.binom.pmf(i,n,p) <= d*rerr)
+ y = sum(distributions.binom.pmf(i,n,p) <= d*rerr,axis=0)
pval = distributions.binom.cdf(x,n,p) + distributions.binom.sf(n-y,n,p)
else:
i = arange(0,x)
- y = sum(distributions.binom.pmf(i,n,p) <= d*rerr)
+ y = sum(distributions.binom.pmf(i,n,p) <= d*rerr,axis=0)
pval = distributions.binom.cdf(y-1,n,p) + distributions.binom.sf(x-1,n,p)
return min(1.0,pval)
@@ -828,7 +828,7 @@
Ni = asarray([len(args[j]) for j in range(k)])
Yci = asarray([func(args[j]) for j in range(k)])
- Ntot = sum(Ni)
+ Ntot = sum(Ni,axis=0)
# compute Zij's
Zij = [abs(asarray(args[i])-Yci[i]) for i in range(k)]
allZij = []
@@ -844,7 +844,7 @@
anbar = stats.mean(a)
varsq = stats.var(a)
- Xsq = sum(Ni*(asarray(Aibar)-anbar)**2.0)/varsq
+ Xsq = sum(Ni*(asarray(Aibar)-anbar)**2.0,axis=0)/varsq
pval = distributions.chi2.sf(Xsq,k-1) # 1 - cdf
return Xsq, pval
@@ -869,7 +869,7 @@
raise ValueError, "Not enough observations."
ranks = stats.rankdata(xy)
Ri = ranks[:n]
- M = sum((Ri - (N+1.0)/2)**2)
+ M = sum((Ri - (N+1.0)/2)**2,axis=0)
# Approx stat.
mnM = n*(N*N-1.0)/12
varM = m*n*(N+1.0)*(N+2)*(N-2)/180
@@ -903,16 +903,16 @@
Mi = array([stats.mean(args[i]) for i in range(k)])
Vi = array([stats.var(args[i]) for i in range(k)])
Wi = Ni / Vi
- swi = sum(Wi)
- N = sum(Ni)
- my = sum(Mi*Ni)*1.0/N
- tmp = sum((1-Wi/swi)**2 / (Ni-1.0))/(k*k-1.0)
+ swi = sum(Wi,axis=0)
+ N = sum(Ni,axis=0)
+ my = sum(Mi*Ni,axis=0)*1.0/N
+ tmp = sum((1-Wi/swi)**2 / (Ni-1.0),axis=0)/(k*k-1.0)
if evar:
- F = ((sum(Ni*(Mi-my)**2) / (k-1.0)) / (sum((Ni-1.0)*Vi) / (N-k)))
+ F = ((sum(Ni*(Mi-my)**2,axis=0) / (k-1.0)) / (sum((Ni-1.0)*Vi,axis=0) / (N-k)))
pval = distributions.f.sf(F,k-1,N-k) # 1-cdf
else:
- m = sum(Wi*Mi)*1.0/swi
- F = sum(Wi*(Mi-m)**2) / ((k-1.0)*(1+2*(k-2)*tmp))
+ m = sum(Wi*Mi,axis=0)*1.0/swi
+ F = sum(Wi*(Mi-m)**2,axis=0) / ((k-1.0)*(1+2*(k-2)*tmp))
pval = distributions.f.sf(F,k-1.0,1.0/(3*tmp))
return F, pval
@@ -932,13 +932,13 @@
if len(x) <> len(y):
raise ValueError, 'Unequal N in wilcoxon. Aborting.'
d = x-y
- d = compress(not_equal(d,0),d) # Keep all non-zero differences
+ d = compress(not_equal(d,0),d,axis=-1) # Keep all non-zero differences
count = len(d)
if (count < 10):
print "Warning: sample size too small for normal approximation."
r = stats.rankdata(abs(d))
- r_plus = sum((d > 0)*r)
- r_minus = sum((d < 0)*r)
+ r_plus = sum((d > 0)*r,axis=0)
+ r_minus = sum((d < 0)*r,axis=0)
T = min(r_plus, r_minus)
mn = count*(count+1.0)*0.25
se = math.sqrt(count*(count+1)*(2*count+1.0)/24)
Modified: trunk/Lib/stats/stats.py
===================================================================
--- trunk/Lib/stats/stats.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stats/stats.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -284,7 +284,7 @@
def _nanmedian(arr1d): # This only works on 1d arrays
cond = 1-isnan(arr1d)
- x = sort(compress(cond,arr1d))
+ x = sort(compress(cond,arr1d,axis=-1))
return median(x)
def nanmedian(x, axis=0):
@@ -340,7 +340,7 @@
return size / np.sum(1.0/a, axis)
def mean(a, axis=0):
- # fixme: This seems to be redundant with numpy.mean() or even
+ # fixme: This seems to be redundant with numpy.mean(,axis=0) or even
# the ndarray.mean() method.
"""Returns the arithmetic mean of m along the given dimension.
@@ -945,7 +945,7 @@
Returns: percentile-position of score (0-100) relative to a
"""
h, lrl, binsize, extras = histogram(a,histbins,defaultlimits)
- cumhist = cumsum(h*1)
+ cumhist = cumsum(h*1,axis=0)
i = int((score - lrl)/float(binsize))
pct = (cumhist[i-1]+((score-(lrl+binsize*i))/float(binsize))*h[i])/float(len(a)) * 100
return pct
@@ -1031,7 +1031,7 @@
Returns: array of cumfreq bin values, lowerreallimit, binsize, extrapoints
"""
h,l,b,e = histogram(a,numbins,defaultreallimits)
- cumhist = cumsum(h*1)
+ cumhist = cumsum(h*1,axis=0)
return cumhist,l,b,e
@@ -1267,7 +1267,7 @@
upper tails.
"""
newa = trimboth(sort(a),proportiontocut)
- return mean(newa)
+ return mean(newa,axis=0)
@@ -1734,7 +1734,7 @@
f_obs = asarray(f_obs)
k = len(f_obs)
if f_exp is None:
- f_exp = array([sum(f_obs)/float(k)] * len(f_obs),Float)
+ f_exp = array([sum(f_obs,axis=0)/float(k)] * len(f_obs),Float)
f_exp = f_exp.astype(Float)
chisq = add.reduce((f_obs-f_exp)**2 / f_exp)
return chisq, chisqprob(chisq, k-1)
@@ -1797,7 +1797,7 @@
ranked = rankdata(concatenate((x,y)))
rankx = ranked[0:n1] # get the x-ranks
#ranky = ranked[n1:] # the rest are y-ranks
- u1 = n1*n2 + (n1*(n1+1))/2.0 - sum(rankx) # calc U for x
+ u1 = n1*n2 + (n1*(n1+1))/2.0 - sum(rankx,axis=0) # calc U for x
u2 = n1*n2 - u1 # remainder is U for y
bigu = max(u1,u2)
smallu = min(u1,u2)
@@ -1848,7 +1848,7 @@
ranked = rankdata(alldata)
x = ranked[:n1]
y = ranked[n1:]
- s = sum(x)
+ s = sum(x,axis=0)
expected = n1*(n1+n2+1) / 2.0
z = (s - expected) / math.sqrt(n1*n2*(n1+n2+1)/12.0)
prob = 2*(1.0 -zprob(abs(z)))
@@ -1878,10 +1878,10 @@
del ranked[0:n[i]]
rsums = []
for i in range(len(args)):
- rsums.append(sum(args[i])**2)
+ rsums.append(sum(args[i],axis=0)**2)
rsums[i] = rsums[i] / float(n[i])
- ssbn = sum(rsums)
- totaln = sum(n)
+ ssbn = sum(rsums,axis=0)
+ totaln = sum(n,axis=0)
h = 12.0 / (totaln*(totaln+1)) * ssbn - 3*(totaln+1)
df = len(args) - 1
if T == 0:
@@ -1909,7 +1909,7 @@
data = data.astype(Float)
for i in range(len(data)):
data[i] = rankdata(data[i])
- ssbn = sum(sum(args,1)**2)
+ ssbn = sum(sum(args,1)**2,axis=0)
chisq = 12.0 / (k*n*(k+1)) * ssbn - 3*n*(k+1)
return chisq, chisqprob(chisq,k-1)
@@ -1998,7 +1998,7 @@
if len(p) == 2: # ttest_ind
c = array([1,-1])
df = n-2
- fact = sum(1.0/sum(x,0)) # i.e., 1/n1 + 1/n2 + 1/n3 ...
+ fact = sum(1.0/sum(x,0),axis=0) # i.e., 1/n1 + 1/n2 + 1/n3 ...
t = dot(c,b) / sqrt(s_sq*fact)
probs = betai(0.5*df,0.5,float(df)/(df+t*t))
return t, probs
Modified: trunk/Lib/stats/tests/test_stats.py
===================================================================
--- trunk/Lib/stats/tests/test_stats.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stats/tests/test_stats.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -725,7 +725,7 @@
def check_signaltonoise(self):
"""
this is not in R, so used
- mean(testcase)/(sqrt(var(testcase)*3/4)) """
+ mean(testcase,axis=0)/(sqrt(var(testcase)*3/4)) """
#y = scipy.stats.signaltonoise(self.shoes[0])
#assert_approx_equal(y,4.5709967)
y = scipy.stats.signaltonoise(self.testcase)
@@ -753,7 +753,7 @@
def check_z(self):
"""
not in R, so used
- (10-mean(testcase))/sqrt(var(testcase)*3/4)
+ (10-mean(testcase,axis=0))/sqrt(var(testcase)*3/4)
"""
y = scipy.stats.z(self.testcase,scipy.stats.mean(self.testcase))
assert_almost_equal(y,0.0)
@@ -761,7 +761,7 @@
def check_zs(self):
"""
not in R, so tested by using
- (testcase[i]-mean(testcase))/sqrt(var(testcase)*3/4)
+ (testcase[i]-mean(testcase,axis=0))/sqrt(var(testcase)*3/4)
"""
y = scipy.stats.zs(self.testcase)
desired = ([-1.3416407864999, -0.44721359549996 , 0.44721359549996 , 1.3416407864999])
@@ -783,7 +783,7 @@
testmathworks = [1.165 , 0.6268, 0.0751, 0.3516, -0.6965]
def check_moment(self):
"""
- mean((testcase-mean(testcase))**power))"""
+ mean((testcase-mean(testcase))**power,axis=0),axis=0))**power))"""
y = scipy.stats.moment(self.testcase,1)
assert_approx_equal(y,0.0,10)
y = scipy.stats.moment(self.testcase,2)
@@ -802,7 +802,7 @@
def check_skewness(self):
"""
- sum((testmathworks-mean(testmathworks))**3)/((sqrt(var(testmathworks)*4/5))**3)/5
+ sum((testmathworks-mean(testmathworks,axis=0))**3,axis=0)/((sqrt(var(testmathworks)*4/5))**3)/5
"""
y = scipy.stats.skew(self.testmathworks)
assert_approx_equal(y,-0.29322304336607,10)
@@ -812,8 +812,8 @@
assert_approx_equal(y,0.0,10)
def check_kurtosis(self):
"""
- sum((testcase-mean(testcase))**4)/((sqrt(var(testcase)*3/4))**4)/4
- sum((test2-mean(testmathworks))**4)/((sqrt(var(testmathworks)*4/5))**4)/5
+ sum((testcase-mean(testcase,axis=0))**4,axis=0)/((sqrt(var(testcase)*3/4))**4)/4
+ sum((test2-mean(testmathworks,axis=0))**4,axis=0)/((sqrt(var(testmathworks)*4/5))**4)/5
Set flags for axis = 0 and
fisher=0 (Pearson's defn of kurtosis for compatiability with Matlab)
"""
Modified: trunk/Lib/stsci/convolve/lib/Convolve.py
===================================================================
--- trunk/Lib/stsci/convolve/lib/Convolve.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stsci/convolve/lib/Convolve.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -374,7 +374,7 @@
def _fbroadcast(f, N, shape, args, params=()):
"""_fbroadcast(f, N, args, shape, params=()) calls 'f' for each of the
'N'-dimensional inner subnumarray of 'args'. Each subarray has
- .shape == 'shape'[-N:]. There are a total of product(shape[:-N])
+ .shape == 'shape'[-N:]. There are a total of product(shape[:-N],axis=0)
calls to 'f'.
"""
if len(shape) == N:
Modified: trunk/Lib/stsci/image/lib/combine.py
===================================================================
--- trunk/Lib/stsci/image/lib/combine.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/stsci/image/lib/combine.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -71,7 +71,7 @@
return _combine_f("median", arrays, output, outtype, nlow, nhigh, badmasks)
def average( arrays, output=None, outtype=None, nlow=0, nhigh=0, badmasks=None):
- """average() nominally computes the average pixel value for a stack of
+ """average(,axis=0) nominally computes the average pixel value for a stack of
identically shaped images.
arrays specifies a sequence of inputs arrays, which are nominally a
@@ -97,7 +97,7 @@
>>> a = num.arange(4)
>>> a = a.reshape((2,2))
>>> arrays = [a*16, a*4, a*2, a*8]
- >>> average(arrays)
+ >>> average(arrays,axis=0)
array([[ 0, 7],
[15, 22]])
>>> average(arrays, nhigh=1)
Modified: trunk/Lib/tests/test_basic.py
===================================================================
--- trunk/Lib/tests/test_basic.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/tests/test_basic.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -269,7 +269,7 @@
class test_ptp(unittest.TestCase):
def check_basic(self):
a = [3,4,5,10,-3,-5,6.0]
- assert_equal(ptp(a),15.0)
+ assert_equal(ptp(a,axis=0),15.0)
b = [[3,6.0, 9.0],
[4,10.0,5.0],
[8,3.0,2.0]]
@@ -284,8 +284,8 @@
for ctype in ['1','b','s','i','l','f','d','F','D']:
a = array(ba,ctype)
a2 = array(ba2,ctype)
- assert_array_equal(cumsum(a), array([1,3,13,24,30,35,39],ctype))
- assert_array_equal(cumsum(a2),
+ assert_array_equal(cumsum(a,axis=0), array([1,3,13,24,30,35,39],ctype))
+ assert_array_equal(cumsum(a2,axis=0),
array([[1,2,3,4],[6,8,10,13],
[16,11,14,18]],ctype))
assert_array_equal(cumsum(a2,axis=1),
@@ -305,8 +305,8 @@
self.failUnlessRaises(ArithmeticError, prod, a2, 1)
self.failUnlessRaises(ArithmeticError, prod, a)
else:
- assert_equal(prod(a),26400)
- assert_array_equal(prod(a2), array([50,36,84,180],ctype))
+ assert_equal(prod(a,axis=0),26400)
+ assert_array_equal(prod(a2,axis=0), array([50,36,84,180],ctype))
assert_array_equal(prod(a2,axis=1),
array([24, 1890, 600],ctype))
@@ -322,10 +322,10 @@
self.failUnlessRaises(ArithmeticError, cumprod, a2, 1)
self.failUnlessRaises(ArithmeticError, cumprod, a)
else:
- assert_array_equal(cumprod(a),
+ assert_array_equal(cumprod(a,axis=0),
array([1, 2, 20, 220,
1320, 6600, 26400],ctype))
- assert_array_equal(cumprod(a2),
+ assert_array_equal(cumprod(a2,axis=0),
array([[ 1, 2, 3, 4],
[ 5, 12, 21, 36],
[50, 36, 84, 180]],ctype))
Modified: trunk/Lib/tests/test_basic1a.py
===================================================================
--- trunk/Lib/tests/test_basic1a.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/tests/test_basic1a.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -27,7 +27,7 @@
class test_factorial(unittest.TestCase):
def check_basic(self):
for k in range(0,13):
- assert_equal(factorial(k),product(grid[1:k+1]))
+ assert_equal(factorial(k),product(grid[1:k+1],axis=0))
self.failUnlessRaises(ValueError, factorial, -10)
def check_exact(self):
@@ -41,7 +41,7 @@
def check_basic(self):
for N in range(0,11):
for k in range(0,N+1):
- ans = product(grid[N-k+1:N+1]) / product(grid[1:k+1])
+ ans = product(grid[N-k+1:N+1],axis=0) / product(grid[1:k+1],axis=0)
assert_almost_equal(comb(N,k),ans,9)
self.failUnlessRaises(ValueError, comb, -10,1)
self.failUnlessRaises(ValueError, comb, 10,-1)
Modified: trunk/Lib/tests/test_common.py
===================================================================
--- trunk/Lib/tests/test_common.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/tests/test_common.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -49,7 +49,7 @@
class test_factorial(unittest.TestCase):
def check_basic(self):
for k in range(0,13):
- assert_equal(factorial(k),product(mgrid[1:k+1]))
+ assert_equal(factorial(k),product(mgrid[1:k+1],axis=0))
assert_equal(factorial(-10),0)
def check_exact(self):
@@ -63,7 +63,7 @@
def check_basic(self):
for N in range(0,11):
for k in range(0,N+1):
- ans = product(mgrid[N-k+1:N+1]) / product(mgrid[1:k+1])
+ ans = product(mgrid[N-k+1:N+1],axis=0) / product(mgrid[1:k+1],axis=0)
assert_almost_equal(comb(N,k),ans,9)
assert_equal(comb(-10,1),0)
assert_equal(comb(10,-1),0)
Modified: trunk/Lib/weave/size_check.py
===================================================================
--- trunk/Lib/weave/size_check.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/weave/size_check.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -127,7 +127,7 @@
return 0
if len(self.shape) == len(other.shape) == 0:
return 0
- return not alltrue(equal(self.shape,other.shape))
+ return not alltrue(equal(self.shape,other.shape),axis=0)
def __add__(self,other): return self.binary_op(other)
def __radd__(self,other): return self.binary_op(other)
Modified: trunk/Lib/weave/tests/test_blitz_tools.py
===================================================================
--- trunk/Lib/weave/tests/test_blitz_tools.py 2006-08-29 07:22:11 UTC (rev 2182)
+++ trunk/Lib/weave/tests/test_blitz_tools.py 2006-08-29 10:30:44 UTC (rev 2183)
@@ -90,7 +90,7 @@
print diff[:4,-4:]
print diff[-4:,:4]
print diff[-4:,-4:]
- print sum(abs(diff.ravel()))
+ print sum(abs(diff.ravel()),axis=0)
raise AssertionError
return standard,compiled
From scipy-svn at scipy.org Tue Aug 29 06:46:15 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Tue, 29 Aug 2006 05:46:15 -0500 (CDT)
Subject: [Scipy-svn] r2184 - trunk/Lib/sandbox/svm
Message-ID: <20060829104615.B6E0C39C023@new.scipy.org>
Author: fullung
Date: 2006-08-29 05:45:55 -0500 (Tue, 29 Aug 2006)
New Revision: 2184
Modified:
trunk/Lib/sandbox/svm/classification.py
trunk/Lib/sandbox/svm/predict.py
Log:
Undo axis changes to itertools.repeat calls.
Modified: trunk/Lib/sandbox/svm/classification.py
===================================================================
--- trunk/Lib/sandbox/svm/classification.py 2006-08-29 10:30:44 UTC (rev 2183)
+++ trunk/Lib/sandbox/svm/classification.py 2006-08-29 10:45:55 UTC (rev 2184)
@@ -55,7 +55,7 @@
d = {}
labels = self.labels
for v, (li, lj) in \
- izip(vv, chain(*[izip(repeat(x,axis=0), labels[i+1:])
+ izip(vv, chain(*[izip(repeat(x), labels[i+1:])
for i, x in enumerate(labels[:-1])])):
d[li, lj] = v
d[lj, li] = -v
Modified: trunk/Lib/sandbox/svm/predict.py
===================================================================
--- trunk/Lib/sandbox/svm/predict.py 2006-08-29 10:30:44 UTC (rev 2183)
+++ trunk/Lib/sandbox/svm/predict.py 2006-08-29 10:45:55 UTC (rev 2184)
@@ -114,7 +114,7 @@
vote = N.zeros((nr_class, dec_values.shape[0]), N.uint32)
classidx = range(nr_class)
for pos, (i, j) in \
- enumerate(chain(*[izip(repeat(idx,axis=0), classidx[k+1:])
+ enumerate(chain(*[izip(repeat(idx), classidx[k+1:])
for k, idx in
enumerate(classidx[:-1])])):
ji = N.array((j, i))
From scipy-svn at scipy.org Wed Aug 30 11:19:01 2006
From: scipy-svn at scipy.org (scipy-svn at scipy.org)
Date: Wed, 30 Aug 2006 10:19:01 -0500 (CDT)
Subject: [Scipy-svn] r2185 - trunk/Lib/interpolate
Message-ID: <20060830151901.BAA3939C12D@new.scipy.org>
Author: stefan
Date: 2006-08-30 10:18:55 -0500 (Wed, 30 Aug 2006)
New Revision: 2185
Modified:
trunk/Lib/interpolate/fitpack.py
Log:
Pass 32-bit integers to Fortran C-wrappers.
Modified: trunk/Lib/interpolate/fitpack.py
===================================================================
--- trunk/Lib/interpolate/fitpack.py 2006-08-29 10:45:55 UTC (rev 2184)
+++ trunk/Lib/interpolate/fitpack.py 2006-08-30 15:18:55 UTC (rev 2185)
@@ -33,7 +33,7 @@
__version__ = "$Revision$"[10:-1]
import _fitpack
from numpy import atleast_1d, array, ones, zeros, sqrt, ravel, transpose, \
- dot, sin, cos, pi, arange, empty
+ dot, sin, cos, pi, arange, empty, intc
myasarray = atleast_1d
# Try to replace _fitpack interface with
@@ -101,7 +101,7 @@
An error occured""",TypeError]}
_parcur_cache = {'t': array([],float), 'wrk': array([],float),
- 'iwrk':array([],int), 'u': array([],float),'ub':0,'ue':1}
+ 'iwrk':array([],intc), 'u': array([],float),'ub':0,'ue':1}
def splprep(x,w=None,u=None,ub=None,ue=None,k=3,task=0,s=None,t=None,
full_output=0,nest=None,per=0,quiet=1):
@@ -169,7 +169,7 @@
"""
if task<=0:
_parcur_cache = {'t': array([],float), 'wrk': array([],float),
- 'iwrk':array([],int),'u': array([],float),
+ 'iwrk':array([],intc),'u': array([],float),
'ub':0,'ue':1}
x=myasarray(x)
idim,m=x.shape
@@ -245,7 +245,7 @@
return tcku
_curfit_cache = {'t': array([],float), 'wrk': array([],float),
- 'iwrk':array([],int)}
+ 'iwrk':array([],intc)}
def splrep(x,y,w=None,xb=None,xe=None,k=3,task=0,s=1e-3,t=None,
full_output=0,per=0,quiet=1):
"""Find the B-spline representation of 1-D curve.
@@ -353,7 +353,7 @@
_curfit_cache['t'] = t
if task <= 0:
_curfit_cache['wrk'] = empty((m*(k+1)+nest*(7+3*k),),float)
- _curfit_cache['iwrk'] = empty((nest,),int)
+ _curfit_cache['iwrk'] = empty((nest,),intc)
try:
t=_curfit_cache['t']
wrk=_curfit_cache['wrk']
@@ -532,7 +532,7 @@
# full_output=0,nest=None,per=0,quiet=1):
_surfit_cache = {'tx': array([],float),'ty': array([],float),
- 'wrk': array([],float), 'iwrk':array([],int)}
+ 'wrk': array([],float), 'iwrk':array([],intc)}
def bisplrep(x,y,z,w=None,xb=None,xe=None,yb=None,ye=None,kx=3,ky=3,task=0,
s=None,eps=1e-16,tx=None,ty=None,full_output=0,
nxest=None,nyest=None,quiet=1):