Skip to content

Instantly share code, notes, and snippets.

@matejaputic
Last active September 12, 2016 19:34
Show Gist options
  • Save matejaputic/c736c4e12fe37f1276ed37497cfe21d3 to your computer and use it in GitHub Desktop.
Save matejaputic/c736c4e12fe37f1276ed37497cfe21d3 to your computer and use it in GitHub Desktop.
sine opf client
# ----------------------------------------------------------------------
# Numenta Platform for Intelligent Computing (NuPIC)
# Copyright (C) 2013, Numenta, Inc. Unless you have an agreement
# with Numenta, Inc., for a separate license for this software code, the
# following terms and conditions apply:
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero Public License version 3 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Affero Public License for more details.
#
# You should have received a copy of the GNU Affero Public License
# along with this program. If not, see http://www.gnu.org/licenses.
#
# http://numenta.org/licenses/
# ----------------------------------------------------------------------
MODEL_PARAMS = {
# Type of model that the rest of these parameters apply to.
'model': "CLA",
# Version that specifies the format of the config.
'version': 1,
'predictAheadTime': None,
# Model parameter dictionary.
'modelParams': {
# The type of inference that this model will perform
'inferenceType': 'TemporalMultiStep',
'sensorParams': {
# Sensor diagnostic output verbosity control;
# if > 0: sensor region will print out on screen what it's sensing
# at each step 0: silent; >=1: some info; >=2: more info;
# >=3: even more info (see compute() in py/regions/RecordSensor.py)
'verbosity' : 0,
# CPU usage encoder.
'encoders': {
'Sine': {
'fieldname': u'Sine',
'n': 200,
'name': u'Sine',
'type': 'ScalarEncoder',
'minval': -1.0,
'maxval': 1.0,
'w': 21
}
},
# A dictionary specifying the period for automatically-generated
# resets from a RecordSensor;
#
# None = disable automatically-generated resets (also disabled if
# all of the specified values evaluate to 0).
# Valid keys is the desired combination of the following:
# days, hours, minutes, seconds, milliseconds, microseconds, weeks
#
# Example for 1.5 days: sensorAutoReset = dict(days=1,hours=12),
'sensorAutoReset' : None,
},
'spEnable': True,
'spParams': {
# SP diagnostic output verbosity control;
# 0: silent; >=1: some info; >=2: more info;
'spVerbosity' : 0,
'globalInhibition': 1,
# Number of cell columns in the cortical region (same number for
# SP and TP)
# (see also tpNCellsPerCol)
'columnCount': 2048,
'inputWidth': 0,
# SP inhibition control (absolute value);
# Maximum number of active columns in the SP region's output (when
# there are more, the weaker ones are suppressed)
'numActiveColumnsPerInhArea': 40,
'seed': 1956,
# potentialPct
# What percent of the columns's receptive field is available
# for potential synapses. At initialization time, we will
# choose potentialPct * (2*potentialRadius+1)^2
'potentialPct': 0.5,
# The default connected threshold. Any synapse whose
# permanence value is above the connected threshold is
# a "connected synapse", meaning it can contribute to the
# cell's firing. Typical value is 0.10. Cells whose activity
# level before inhibition falls below minDutyCycleBeforeInh
# will have their own internal synPermConnectedCell
# threshold set below this default value.
# (This concept applies to both SP and TP and so 'cells'
# is correct here as opposed to 'columns')
'synPermConnected': 0.1,
'synPermActiveInc': 0.1,
'synPermInactiveDec': 0.01,
},
# Controls whether TP is enabled or disabled;
# TP is necessary for making temporal predictions, such as predicting
# the next inputs. Without TP, the model is only capable of
# reconstructing missing sensor inputs (via SP).
'tpEnable' : True,
'tpParams': {
# TP diagnostic output verbosity control;
# 0: silent; [1..6]: increasing levels of verbosity
# (see verbosity in nupic/trunk/py/nupic/research/TP.py and TP10X*.py)
'verbosity': 0,
# Number of cell columns in the cortical region (same number for
# SP and TP)
# (see also tpNCellsPerCol)
'columnCount': 2048,
# The number of cells (i.e., states), allocated per column.
'cellsPerColumn': 32,
'inputWidth': 2048,
'seed': 1960,
# Temporal Pooler implementation selector (see _getTPClass in
# CLARegion.py).
'temporalImp': 'cpp',
# New Synapse formation count
# NOTE: If None, use spNumActivePerInhArea
#
# TODO: need better explanation
'newSynapseCount': 20,
# Maximum number of synapses per segment
# > 0 for fixed-size CLA
# -1 for non-fixed-size CLA
#
# TODO: for Ron: once the appropriate value is placed in TP
# constructor, see if we should eliminate this parameter from
# description.py.
'maxSynapsesPerSegment': 32,
# Maximum number of segments per cell
# > 0 for fixed-size CLA
# -1 for non-fixed-size CLA
#
# TODO: for Ron: once the appropriate value is placed in TP
# constructor, see if we should eliminate this parameter from
# description.py.
'maxSegmentsPerCell': 128,
# Initial Permanence
# TODO: need better explanation
'initialPerm': 0.21,
# Permanence Increment
'permanenceInc': 0.1,
# Permanence Decrement
# If set to None, will automatically default to tpPermanenceInc
# value.
'permanenceDec' : 0.1,
'globalDecay': 0.0,
'maxAge': 0,
# Minimum number of active synapses for a segment to be considered
# during search for the best-matching segments.
# None=use default
# Replaces: tpMinThreshold
'minThreshold': 12,
# Segment activation threshold.
# A segment is active if it has >= tpSegmentActivationThreshold
# connected synapses that are active due to infActiveState
# None=use default
# Replaces: tpActivationThreshold
'activationThreshold': 16,
'outputType': 'normal',
# "Pay Attention Mode" length. This tells the TP how many new
# elements to append to the end of a learned sequence at a time.
# Smaller values are better for datasets with short sequences,
# higher values are better for datasets with long sequences.
'pamLength': 1,
},
'clParams': {
# Classifier implementation selection.
'implementation': 'cpp',
'regionName' : 'CLAClassifierRegion',
# Classifier diagnostic output verbosity control;
# 0: silent; [1..6]: increasing levels of verbosity
'clVerbosity' : 0,
# This controls how fast the classifier learns/forgets. Higher values
# make it adapt faster and forget older patterns faster.
'alpha': 0.0001,
# This is set after the call to updateConfigFromSubConfig and is
# computed from the aggregationInfo and predictAheadTime.
'steps': '5',
},
'trainSPNetOnlyIfRequested': False,
},
}
# ----------------------------------------------------------------------
# Numenta Platform for Intelligent Computing (NuPIC)
# Copyright (C) 2013, Numenta, Inc. Unless you have an agreement
# with Numenta, Inc., for a separate license for this software code, the
# following terms and conditions apply:
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero Public License version 3 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Affero Public License for more details.
#
# You should have received a copy of the GNU Affero Public License
# along with this program. If not, see http://www.gnu.org/licenses.
#
# http://numenta.org/licenses/
# ----------------------------------------------------------------------
"""
Provides two classes with the same signature for writing data out of NuPIC
models.
(This is a component of the One Hot Gym Prediction Tutorial.)
"""
import csv
from collections import deque
from abc import ABCMeta, abstractmethod
# Try to import matplotlib, but we don't have to.
try:
import matplotlib
matplotlib.use('TKAgg')
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
from matplotlib.dates import date2num
except ImportError:
pass
WINDOW = 100
class NuPICOutput(object):
__metaclass__ = ABCMeta
def __init__(self, names, showAnomalyScore=False):
self.names = names
self.showAnomalyScore = showAnomalyScore
@abstractmethod
def write(self, timestamps, actualValues, predictedValues,
predictionStep=1):
pass
@abstractmethod
def close(self):
pass
class NuPICFileOutput(NuPICOutput):
def __init__(self, *args, **kwargs):
super(NuPICFileOutput, self).__init__(*args, **kwargs)
self.outputFiles = []
self.outputWriters = []
self.lineCounts = []
headerRow = ['timestamp', 'kw_energy_consumption', 'prediction']
for name in self.names:
self.lineCounts.append(0)
outputFileName = "%s_out.csv" % name
print "Preparing to output %s data to %s" % (name, outputFileName)
outputFile = open(outputFileName, "w")
self.outputFiles.append(outputFile)
outputWriter = csv.writer(outputFile)
self.outputWriters.append(outputWriter)
outputWriter.writerow(headerRow)
def write(self, timestamps, actualValues, predictedValues,
predictionStep=1):
assert len(timestamps) == len(actualValues) == len(predictedValues)
for index in range(len(self.names)):
timestamp = timestamps[index]
actual = actualValues[index]
prediction = predictedValues[index]
writer = self.outputWriters[index]
if timestamp is not None:
outputRow = [timestamp, actual, prediction]
writer.writerow(outputRow)
self.lineCounts[index] += 1
def close(self):
for index, name in enumerate(self.names):
self.outputFiles[index].close()
print "Done. Wrote %i data lines to %s." % (self.lineCounts[index], name)
class NuPICPlotOutput(NuPICOutput):
def __init__(self, *args, **kwargs):
super(NuPICPlotOutput, self).__init__(*args, **kwargs)
# Turn matplotlib interactive mode on.
plt.ion()
self.dates = []
self.convertedDates = []
self.actualValues = []
self.predictedValues = []
self.actualLines = []
self.predictedLines = []
self.linesInitialized = False
self.graphs = []
plotCount = len(self.names)
plotHeight = max(plotCount * 3, 6)
fig = plt.figure(figsize=(14, plotHeight))
gs = gridspec.GridSpec(plotCount, 1)
for index in range(len(self.names)):
self.graphs.append(fig.add_subplot(gs[index, 0]))
plt.title(self.names[index])
plt.ylabel('KW Energy Consumption')
plt.xlabel('Date')
plt.tight_layout()
def initializeLines(self, timestamps):
for index in range(len(self.names)):
print "initializing %s" % self.names[index]
# graph = self.graphs[index]
self.dates.append(deque([timestamps[index]] * WINDOW, maxlen=WINDOW))
self.convertedDates.append(deque(
[date2num(date) for date in self.dates[index]], maxlen=WINDOW
))
self.actualValues.append(deque([0.0] * WINDOW, maxlen=WINDOW))
self.predictedValues.append(deque([0.0] * WINDOW, maxlen=WINDOW))
actualPlot, = self.graphs[index].plot(
self.dates[index], self.actualValues[index]
)
self.actualLines.append(actualPlot)
predictedPlot, = self.graphs[index].plot(
self.dates[index], self.predictedValues[index]
)
self.predictedLines.append(predictedPlot)
self.linesInitialized = True
def write(self, timestamps, actualValues, predictedValues,
predictionStep=1):
assert len(timestamps) == len(actualValues) == len(predictedValues)
# We need the first timestamp to initialize the lines at the right X value,
# so do that check first.
if not self.linesInitialized:
self.initializeLines(timestamps)
for index in range(len(self.names)):
self.dates[index].append(timestamps[index])
self.convertedDates[index].append(date2num(timestamps[index]))
self.actualValues[index].append(actualValues[index])
self.predictedValues[index].append(predictedValues[index])
# Update data
self.actualLines[index].set_xdata(self.convertedDates[index])
self.actualLines[index].set_ydata(self.actualValues[index])
self.predictedLines[index].set_xdata(self.convertedDates[index])
self.predictedLines[index].set_ydata(self.predictedValues[index])
self.graphs[index].relim()
self.graphs[index].autoscale_view(True, True, True)
plt.draw()
plt.legend(('actual','predicted'), loc=3)
def close(self):
plt.ioff()
plt.show()
NuPICOutput.register(NuPICFileOutput)
NuPICOutput.register(NuPICPlotOutput)
Sine angle
0.000 0.000
0.114 0.114
0.226 0.228
0.336 0.343
0.441 0.457
0.541 0.571
0.633 0.685
0.717 0.800
0.792 0.914
0.856 1.028
0.910 1.142
0.951 1.257
0.980 1.371
0.996 1.485
1.000 1.599
0.990 1.714
0.967 1.828
0.932 1.942
0.884 2.056
0.825 2.171
0.756 2.285
0.676 2.399
0.588 2.513
0.492 2.628
0.389 2.742
0.282 2.856
0.171 2.970
0.057 3.084
-0.057 3.199
-0.171 3.313
-0.282 3.427
-0.389 3.541
-0.492 3.656
-0.588 3.770
-0.676 3.884
-0.756 3.998
-0.825 4.113
-0.884 4.227
-0.932 4.341
-0.967 4.455
-0.990 4.570
-1.000 4.684
-0.996 4.798
-0.980 4.912
-0.951 5.027
-0.910 5.141
-0.856 5.255
-0.792 5.369
-0.717 5.484
-0.633 5.598
-0.541 5.712
-0.441 5.826
-0.336 5.940
-0.226 6.055
-0.114 6.169
0.000 6.283
0.114 6.397
0.226 6.512
0.336 6.626
0.441 6.740
0.541 6.854
0.633 6.969
0.717 7.083
0.792 7.197
0.856 7.311
0.910 7.426
0.951 7.540
0.980 7.654
0.996 7.768
1.000 7.883
0.990 7.997
0.967 8.111
0.932 8.225
0.884 8.340
0.825 8.454
0.756 8.568
0.676 8.682
0.588 8.796
0.492 8.911
0.389 9.025
0.282 9.139
0.171 9.253
0.057 9.368
-0.057 9.482
-0.171 9.596
-0.282 9.710
-0.389 9.825
-0.492 9.939
-0.588 10.053
-0.676 10.167
-0.756 10.282
-0.825 10.396
-0.884 10.510
-0.932 10.624
-0.967 10.739
-0.990 10.853
-1.000 10.967
-0.996 11.081
-0.980 11.195
-0.951 11.310
-0.910 11.424
-0.856 11.538
-0.792 11.652
-0.717 11.767
-0.633 11.881
-0.541 11.995
-0.441 12.109
-0.336 12.224
-0.226 12.338
-0.114 12.452
0.000 12.566
0.114 12.681
0.226 12.795
0.336 12.909
0.441 13.023
0.541 13.138
0.633 13.252
0.717 13.366
0.792 13.480
0.856 13.595
0.910 13.709
0.951 13.823
0.980 13.937
0.996 14.051
1.000 14.166
0.990 14.280
0.967 14.394
0.932 14.508
0.884 14.623
0.825 14.737
0.756 14.851
0.676 14.965
0.588 15.080
0.492 15.194
0.389 15.308
0.282 15.422
0.171 15.537
0.057 15.651
-0.057 15.765
-0.171 15.879
-0.282 15.994
-0.389 16.108
-0.492 16.222
-0.588 16.336
-0.676 16.451
-0.756 16.565
-0.825 16.679
-0.884 16.793
-0.932 16.907
-0.967 17.022
-0.990 17.136
-1.000 17.250
-0.996 17.364
-0.980 17.479
-0.951 17.593
-0.910 17.707
-0.856 17.821
-0.792 17.936
-0.717 18.050
-0.633 18.164
-0.541 18.278
-0.441 18.393
-0.336 18.507
-0.226 18.621
-0.114 18.735
0.000 18.850
0.114 18.964
0.226 19.078
0.336 19.192
0.441 19.307
0.541 19.421
0.633 19.535
0.717 19.649
0.792 19.763
0.856 19.878
0.910 19.992
0.951 20.106
0.980 20.220
0.996 20.335
1.000 20.449
0.990 20.563
0.967 20.677
0.932 20.792
0.884 20.906
0.825 21.020
0.756 21.134
0.676 21.249
0.588 21.363
0.492 21.477
0.389 21.591
0.282 21.706
0.171 21.820
0.057 21.934
-0.057 22.048
-0.171 22.163
-0.282 22.277
-0.389 22.391
-0.492 22.505
-0.588 22.619
-0.676 22.734
-0.756 22.848
-0.825 22.962
-0.884 23.076
-0.932 23.191
-0.967 23.305
-0.990 23.419
-1.000 23.533
-0.996 23.648
-0.980 23.762
-0.951 23.876
-0.910 23.990
-0.856 24.105
-0.792 24.219
-0.717 24.333
-0.633 24.447
-0.541 24.562
-0.441 24.676
-0.336 24.790
-0.226 24.904
-0.114 25.019
0.000 25.133
0.114 25.247
0.226 25.361
0.336 25.475
0.441 25.590
0.541 25.704
0.633 25.818
0.717 25.932
0.792 26.047
0.856 26.161
0.910 26.275
0.951 26.389
0.980 26.504
0.996 26.618
1.000 26.732
0.990 26.846
0.967 26.961
0.932 27.075
0.884 27.189
0.825 27.303
0.756 27.418
0.676 27.532
0.588 27.646
0.492 27.760
0.389 27.874
0.282 27.989
0.171 28.103
0.057 28.217
-0.057 28.331
-0.171 28.446
-0.282 28.560
-0.389 28.674
-0.492 28.788
-0.588 28.903
-0.676 29.017
-0.756 29.131
-0.825 29.245
-0.884 29.360
-0.932 29.474
-0.967 29.588
-0.990 29.702
-1.000 29.817
-0.996 29.931
-0.980 30.045
-0.951 30.159
-0.910 30.274
-0.856 30.388
-0.792 30.502
-0.717 30.616
-0.633 30.730
-0.541 30.845
-0.441 30.959
-0.336 31.073
-0.226 31.187
-0.114 31.302
0.000 31.416
0.114 31.530
0.226 31.644
0.336 31.759
0.441 31.873
0.541 31.987
0.633 32.101
0.717 32.216
0.792 32.330
0.856 32.444
0.910 32.558
0.951 32.673
0.980 32.787
0.996 32.901
1.000 33.015
0.990 33.130
0.967 33.244
0.932 33.358
0.884 33.472
0.825 33.586
0.756 33.701
0.676 33.815
0.588 33.929
0.492 34.043
0.389 34.158
0.282 34.272
0.171 34.386
0.057 34.500
-0.057 34.615
-0.171 34.729
-0.282 34.843
-0.389 34.957
-0.492 35.072
-0.588 35.186
-0.676 35.300
-0.756 35.414
-0.825 35.529
-0.884 35.643
-0.932 35.757
-0.967 35.871
-0.990 35.986
-1.000 36.100
-0.996 36.214
-0.980 36.328
-0.951 36.442
-0.910 36.557
-0.856 36.671
-0.792 36.785
-0.717 36.899
-0.633 37.014
-0.541 37.128
-0.441 37.242
-0.336 37.356
-0.226 37.471
-0.114 37.585
0.000 37.699
0.114 37.813
0.226 37.928
0.336 38.042
0.441 38.156
0.541 38.270
0.633 38.385
0.717 38.499
0.792 38.613
0.856 38.727
0.910 38.842
0.951 38.956
0.980 39.070
0.996 39.184
1.000 39.298
0.990 39.413
0.967 39.527
0.932 39.641
0.884 39.755
0.825 39.870
0.756 39.984
0.676 40.098
0.588 40.212
0.492 40.327
0.389 40.441
0.282 40.555
0.171 40.669
0.057 40.784
-0.057 40.898
-0.171 41.012
-0.282 41.126
-0.389 41.241
-0.492 41.355
-0.588 41.469
-0.676 41.583
-0.756 41.698
-0.825 41.812
-0.884 41.926
-0.932 42.040
-0.967 42.154
-0.990 42.269
-1.000 42.383
-0.996 42.497
-0.980 42.611
-0.951 42.726
-0.910 42.840
-0.856 42.954
-0.792 43.068
-0.717 43.183
-0.633 43.297
-0.541 43.411
-0.441 43.525
-0.336 43.640
-0.226 43.754
-0.114 43.868
0.000 43.982
0.114 44.097
0.226 44.211
0.336 44.325
0.441 44.439
0.541 44.553
0.633 44.668
0.717 44.782
0.792 44.896
0.856 45.010
0.910 45.125
0.951 45.239
0.980 45.353
0.996 45.467
1.000 45.582
0.990 45.696
0.967 45.810
0.932 45.924
0.884 46.039
0.825 46.153
0.756 46.267
0.676 46.381
0.588 46.496
0.492 46.610
0.389 46.724
0.282 46.838
0.171 46.953
0.057 47.067
-0.057 47.181
-0.171 47.295
-0.282 47.409
-0.389 47.524
-0.492 47.638
-0.588 47.752
-0.676 47.866
-0.756 47.981
-0.825 48.095
-0.884 48.209
-0.932 48.323
-0.967 48.438
-0.990 48.552
-1.000 48.666
-0.996 48.780
-0.980 48.895
-0.951 49.009
-0.910 49.123
-0.856 49.237
-0.792 49.352
-0.717 49.466
-0.633 49.580
-0.541 49.694
-0.441 49.809
-0.336 49.923
-0.226 50.037
-0.114 50.151
0.000 50.265
0.114 50.380
0.226 50.494
0.336 50.608
0.441 50.722
0.541 50.837
0.633 50.951
0.717 51.065
0.792 51.179
0.856 51.294
0.910 51.408
0.951 51.522
0.980 51.636
0.996 51.751
1.000 51.865
0.990 51.979
0.967 52.093
0.932 52.208
0.884 52.322
0.825 52.436
0.756 52.550
0.676 52.665
0.588 52.779
0.492 52.893
0.389 53.007
0.282 53.121
0.171 53.236
0.057 53.350
-0.057 53.464
-0.171 53.578
-0.282 53.693
-0.389 53.807
-0.492 53.921
-0.588 54.035
-0.676 54.150
-0.756 54.264
-0.825 54.378
-0.884 54.492
-0.932 54.607
-0.967 54.721
-0.990 54.835
-1.000 54.949
-0.996 55.064
-0.980 55.178
-0.951 55.292
-0.910 55.406
-0.856 55.521
-0.792 55.635
-0.717 55.749
-0.633 55.863
-0.541 55.977
-0.441 56.092
-0.336 56.206
-0.226 56.320
-0.114 56.434
0.000 56.549
0.114 56.663
0.226 56.777
0.336 56.891
0.441 57.006
0.541 57.120
0.633 57.234
0.717 57.348
0.792 57.463
0.856 57.577
0.910 57.691
0.951 57.805
0.980 57.920
0.996 58.034
1.000 58.148
0.990 58.262
0.967 58.377
0.932 58.491
0.884 58.605
0.825 58.719
0.756 58.833
0.676 58.948
0.588 59.062
0.492 59.176
0.389 59.290
0.282 59.405
0.171 59.519
0.057 59.633
-0.057 59.747
-0.171 59.862
-0.282 59.976
-0.389 60.090
-0.492 60.204
-0.588 60.319
-0.676 60.433
-0.756 60.547
-0.825 60.661
-0.884 60.776
-0.932 60.890
-0.967 61.004
-0.990 61.118
-1.000 61.232
-0.996 61.347
-0.980 61.461
-0.951 61.575
-0.910 61.689
-0.856 61.804
-0.792 61.918
-0.717 62.032
-0.633 62.146
-0.541 62.261
-0.441 62.375
-0.336 62.489
-0.226 62.603
-0.114 62.718
0.000 62.832
0.114 62.946
0.226 63.060
0.336 63.175
0.441 63.289
0.541 63.403
0.633 63.517
0.717 63.632
0.792 63.746
0.856 63.860
0.910 63.974
0.951 64.088
0.980 64.203
0.996 64.317
1.000 64.431
0.990 64.545
0.967 64.660
0.932 64.774
0.884 64.888
0.825 65.002
0.756 65.117
0.676 65.231
0.588 65.345
0.492 65.459
0.389 65.574
0.282 65.688
0.171 65.802
0.057 65.916
-0.057 66.031
-0.171 66.145
-0.282 66.259
-0.389 66.373
-0.492 66.488
-0.588 66.602
-0.676 66.716
-0.756 66.830
-0.825 66.944
-0.884 67.059
-0.932 67.173
-0.967 67.287
-0.990 67.401
-1.000 67.516
-0.996 67.630
-0.980 67.744
-0.951 67.858
-0.910 67.973
-0.856 68.087
-0.792 68.201
-0.717 68.315
-0.633 68.430
-0.541 68.544
-0.441 68.658
-0.336 68.772
-0.226 68.887
-0.114 69.001
0.000 69.115
0.114 69.229
0.226 69.344
0.336 69.458
0.441 69.572
0.541 69.686
0.633 69.800
0.717 69.915
0.792 70.029
0.856 70.143
0.910 70.257
0.951 70.372
0.980 70.486
0.996 70.600
1.000 70.714
0.990 70.829
0.967 70.943
0.932 71.057
0.884 71.171
0.825 71.286
0.756 71.400
0.676 71.514
0.588 71.628
0.492 71.743
0.389 71.857
0.282 71.971
0.171 72.085
0.057 72.200
-0.057 72.314
-0.171 72.428
-0.282 72.542
-0.389 72.656
-0.492 72.771
-0.588 72.885
-0.676 72.999
-0.756 73.113
-0.825 73.228
-0.884 73.342
-0.932 73.456
-0.967 73.570
-0.990 73.685
-1.000 73.799
-0.996 73.913
-0.980 74.027
-0.951 74.142
-0.910 74.256
-0.856 74.370
-0.792 74.484
-0.717 74.599
-0.633 74.713
-0.541 74.827
-0.441 74.941
-0.336 75.056
-0.226 75.170
-0.114 75.284
0.000 75.398
0.114 75.512
0.226 75.627
0.336 75.741
0.441 75.855
0.541 75.969
0.633 76.084
0.717 76.198
0.792 76.312
0.856 76.426
0.910 76.541
0.951 76.655
0.980 76.769
0.996 76.883
1.000 76.998
0.990 77.112
0.967 77.226
0.932 77.340
0.884 77.455
0.825 77.569
0.756 77.683
0.676 77.797
0.588 77.911
0.492 78.026
0.389 78.140
0.282 78.254
0.171 78.368
0.057 78.483
-0.057 78.597
-0.171 78.711
-0.282 78.825
-0.389 78.940
-0.492 79.054
-0.588 79.168
-0.676 79.282
-0.756 79.397
-0.825 79.511
-0.884 79.625
-0.932 79.739
-0.967 79.854
-0.990 79.968
-1.000 80.082
-0.996 80.196
-0.980 80.311
-0.951 80.425
-0.910 80.539
-0.856 80.653
-0.792 80.767
-0.717 80.882
-0.633 80.996
-0.541 81.110
-0.441 81.224
-0.336 81.339
-0.226 81.453
-0.114 81.567
0.000 81.681
0.114 81.796
0.226 81.910
0.336 82.024
0.441 82.138
0.541 82.253
0.633 82.367
0.717 82.481
0.792 82.595
0.856 82.710
0.910 82.824
0.951 82.938
0.980 83.052
0.996 83.167
1.000 83.281
0.990 83.395
0.967 83.509
0.932 83.623
0.884 83.738
0.825 83.852
0.756 83.966
0.676 84.080
0.588 84.195
0.492 84.309
0.389 84.423
0.282 84.537
0.171 84.652
0.057 84.766
-0.057 84.880
-0.171 84.994
-0.282 85.109
-0.389 85.223
-0.492 85.337
-0.588 85.451
-0.676 85.566
-0.756 85.680
-0.825 85.794
-0.884 85.908
-0.932 86.023
-0.967 86.137
-0.990 86.251
-1.000 86.365
-0.996 86.479
-0.980 86.594
-0.951 86.708
-0.910 86.822
-0.856 86.936
-0.792 87.051
-0.717 87.165
-0.633 87.279
-0.541 87.393
-0.441 87.508
-0.336 87.622
-0.226 87.736
-0.114 87.850
0.000 87.965
0.114 88.079
0.226 88.193
0.336 88.307
0.441 88.422
0.541 88.536
0.633 88.650
0.717 88.764
0.792 88.879
0.856 88.993
0.910 89.107
0.951 89.221
0.980 89.335
0.996 89.450
1.000 89.564
0.990 89.678
0.967 89.792
0.932 89.907
0.884 90.021
0.825 90.135
0.756 90.249
0.676 90.364
0.588 90.478
0.492 90.592
0.389 90.706
0.282 90.821
0.171 90.935
0.057 91.049
-0.057 91.163
-0.171 91.278
-0.282 91.392
-0.389 91.506
-0.492 91.620
-0.588 91.735
-0.676 91.849
-0.756 91.963
-0.825 92.077
-0.884 92.191
-0.932 92.306
-0.967 92.420
-0.990 92.534
-1.000 92.648
-0.996 92.763
-0.980 92.877
-0.951 92.991
-0.910 93.105
-0.856 93.220
-0.792 93.334
-0.717 93.448
-0.633 93.562
-0.541 93.677
-0.441 93.791
-0.336 93.905
-0.226 94.019
-0.114 94.134
0.000 94.248
0.114 94.362
0.226 94.476
0.336 94.590
0.441 94.705
0.541 94.819
0.633 94.933
0.717 95.047
0.792 95.162
0.856 95.276
0.910 95.390
0.951 95.504
0.980 95.619
0.996 95.733
1.000 95.847
0.990 95.961
0.967 96.076
0.932 96.190
0.884 96.304
0.825 96.418
0.756 96.533
0.676 96.647
0.588 96.761
0.492 96.875
0.389 96.990
0.282 97.104
0.171 97.218
0.057 97.332
-0.057 97.446
-0.171 97.561
-0.282 97.675
-0.389 97.789
-0.492 97.903
-0.588 98.018
-0.676 98.132
-0.756 98.246
-0.825 98.360
-0.884 98.475
-0.932 98.589
-0.967 98.703
-0.990 98.817
-1.000 98.932
-0.996 99.046
-0.980 99.160
-0.951 99.274
-0.910 99.389
-0.856 99.503
-0.792 99.617
-0.717 99.731
-0.633 99.846
-0.541 99.960
-0.441 100.074
-0.336 100.188
-0.226 100.302
-0.114 100.417
0.000 100.531
0.114 100.645
0.226 100.759
0.336 100.874
0.441 100.988
0.541 101.102
0.633 101.216
0.717 101.331
0.792 101.445
0.856 101.559
0.910 101.673
0.951 101.788
0.980 101.902
0.996 102.016
1.000 102.130
0.990 102.245
0.967 102.359
0.932 102.473
0.884 102.587
0.825 102.702
0.756 102.816
0.676 102.930
0.588 103.044
0.492 103.158
0.389 103.273
0.282 103.387
0.171 103.501
0.057 103.615
-0.057 103.730
-0.171 103.844
-0.282 103.958
-0.389 104.072
-0.492 104.187
-0.588 104.301
-0.676 104.415
-0.756 104.529
-0.825 104.644
-0.884 104.758
-0.932 104.872
-0.967 104.986
-0.990 105.101
-1.000 105.215
-0.996 105.329
-0.980 105.443
-0.951 105.558
-0.910 105.672
-0.856 105.786
-0.792 105.900
-0.717 106.014
-0.633 106.129
-0.541 106.243
-0.441 106.357
-0.336 106.471
-0.226 106.586
-0.114 106.700
0.000 106.814
0.114 106.928
0.226 107.043
0.336 107.157
0.441 107.271
0.541 107.385
0.633 107.500
0.717 107.614
0.792 107.728
0.856 107.842
0.910 107.957
0.951 108.071
0.980 108.185
0.996 108.299
1.000 108.414
0.990 108.528
0.967 108.642
0.932 108.756
0.884 108.870
0.825 108.985
0.756 109.099
0.676 109.213
0.588 109.327
0.492 109.442
0.389 109.556
0.282 109.670
0.171 109.784
0.057 109.899
-0.057 110.013
-0.171 110.127
-0.282 110.241
-0.389 110.356
-0.492 110.470
-0.588 110.584
-0.676 110.698
-0.756 110.813
-0.825 110.927
-0.884 111.041
-0.932 111.155
-0.967 111.269
-0.990 111.384
-1.000 111.498
-0.996 111.612
-0.980 111.726
-0.951 111.841
-0.910 111.955
-0.856 112.069
-0.792 112.183
-0.717 112.298
-0.633 112.412
-0.541 112.526
-0.441 112.640
-0.336 112.755
-0.226 112.869
-0.114 112.983
0.000 113.097
0.114 113.212
0.226 113.326
0.336 113.440
0.441 113.554
0.541 113.669
0.633 113.783
0.717 113.897
0.792 114.011
0.856 114.125
0.910 114.240
0.951 114.354
0.980 114.468
0.996 114.582
1.000 114.697
0.990 114.811
0.967 114.925
0.932 115.039
0.884 115.154
0.825 115.268
0.756 115.382
0.676 115.496
0.588 115.611
0.492 115.725
0.389 115.839
0.282 115.953
0.171 116.068
0.057 116.182
-0.057 116.296
-0.171 116.410
-0.282 116.525
-0.389 116.639
-0.492 116.753
-0.588 116.867
-0.676 116.981
-0.756 117.096
-0.825 117.210
-0.884 117.324
-0.932 117.438
-0.967 117.553
-0.990 117.667
-1.000 117.781
-0.996 117.895
-0.980 118.010
-0.951 118.124
-0.910 118.238
-0.856 118.352
-0.792 118.467
-0.717 118.581
-0.633 118.695
-0.541 118.809
-0.441 118.924
-0.336 119.038
-0.226 119.152
-0.114 119.266
0.000 119.381
0.114 119.495
0.226 119.609
0.336 119.723
0.441 119.837
0.541 119.952
0.633 120.066
0.717 120.180
0.792 120.294
0.856 120.409
0.910 120.523
0.951 120.637
0.980 120.751
0.996 120.866
1.000 120.980
0.990 121.094
0.967 121.208
0.932 121.323
0.884 121.437
0.825 121.551
0.756 121.665
0.676 121.780
0.588 121.894
0.492 122.008
0.389 122.122
0.282 122.237
0.171 122.351
0.057 122.465
-0.057 122.579
-0.171 122.693
-0.282 122.808
-0.389 122.922
-0.492 123.036
-0.588 123.150
-0.676 123.265
-0.756 123.379
-0.825 123.493
-0.884 123.607
-0.932 123.722
-0.967 123.836
-0.990 123.950
-1.000 124.064
-0.996 124.179
-0.980 124.293
-0.951 124.407
-0.910 124.521
-0.856 124.636
-0.792 124.750
-0.717 124.864
-0.633 124.978
-0.541 125.093
-0.441 125.207
-0.336 125.321
-0.226 125.435
-0.114 125.549
0.000 125.664
0.114 125.778
0.226 125.892
0.336 126.006
0.441 126.121
0.541 126.235
0.633 126.349
0.717 126.463
0.792 126.578
0.856 126.692
0.910 126.806
0.951 126.920
0.980 127.035
0.996 127.149
1.000 127.263
0.990 127.377
0.967 127.492
0.932 127.606
0.884 127.720
0.825 127.834
0.756 127.949
0.676 128.063
0.588 128.177
0.492 128.291
0.389 128.405
0.282 128.520
0.171 128.634
0.057 128.748
-0.057 128.862
-0.171 128.977
-0.282 129.091
-0.389 129.205
-0.492 129.319
-0.588 129.434
-0.676 129.548
-0.756 129.662
-0.825 129.776
-0.884 129.891
-0.932 130.005
-0.967 130.119
-0.990 130.233
-1.000 130.348
-0.996 130.462
-0.980 130.576
-0.951 130.690
-0.910 130.804
-0.856 130.919
-0.792 131.033
-0.717 131.147
-0.633 131.261
-0.541 131.376
-0.441 131.490
-0.336 131.604
-0.226 131.718
-0.114 131.833
0.000 131.947
0.114 132.061
0.226 132.175
0.336 132.290
0.441 132.404
0.541 132.518
0.633 132.632
0.717 132.747
0.792 132.861
0.856 132.975
0.910 133.089
0.951 133.204
0.980 133.318
0.996 133.432
1.000 133.546
0.990 133.660
0.967 133.775
0.932 133.889
0.884 134.003
0.825 134.117
0.756 134.232
0.676 134.346
0.588 134.460
0.492 134.574
0.389 134.689
0.282 134.803
0.171 134.917
0.057 135.031
-0.057 135.146
-0.171 135.260
-0.282 135.374
-0.389 135.488
-0.492 135.603
-0.588 135.717
-0.676 135.831
-0.756 135.945
-0.825 136.060
-0.884 136.174
-0.932 136.288
-0.967 136.402
-0.990 136.516
-1.000 136.631
-0.996 136.745
-0.980 136.859
-0.951 136.973
-0.910 137.088
-0.856 137.202
-0.792 137.316
-0.717 137.430
-0.633 137.545
-0.541 137.659
-0.441 137.773
-0.336 137.887
-0.226 138.002
-0.114 138.116
0.000 138.230
0.114 138.344
0.226 138.459
0.336 138.573
0.441 138.687
0.541 138.801
0.633 138.916
0.717 139.030
0.792 139.144
0.856 139.258
0.910 139.372
0.951 139.487
0.980 139.601
0.996 139.715
1.000 139.829
0.990 139.944
0.967 140.058
0.932 140.172
0.884 140.286
0.825 140.401
0.756 140.515
0.676 140.629
0.588 140.743
0.492 140.858
0.389 140.972
0.282 141.086
0.171 141.200
0.057 141.315
-0.057 141.429
-0.171 141.543
-0.282 141.657
-0.389 141.772
-0.492 141.886
-0.588 142.000
-0.676 142.114
-0.756 142.228
-0.825 142.343
-0.884 142.457
-0.932 142.571
-0.967 142.685
-0.990 142.800
-1.000 142.914
-0.996 143.028
-0.980 143.142
-0.951 143.257
-0.910 143.371
-0.856 143.485
-0.792 143.599
-0.717 143.714
-0.633 143.828
-0.541 143.942
-0.441 144.056
-0.336 144.171
-0.226 144.285
-0.114 144.399
0.000 144.513
0.114 144.628
0.226 144.742
0.336 144.856
0.441 144.970
0.541 145.084
0.633 145.199
0.717 145.313
0.792 145.427
0.856 145.541
0.910 145.656
0.951 145.770
0.980 145.884
0.996 145.998
1.000 146.113
0.990 146.227
0.967 146.341
0.932 146.455
0.884 146.570
0.825 146.684
0.756 146.798
0.676 146.912
0.588 147.027
0.492 147.141
0.389 147.255
0.282 147.369
0.171 147.483
0.057 147.598
-0.057 147.712
-0.171 147.826
-0.282 147.940
-0.389 148.055
-0.492 148.169
-0.588 148.283
-0.676 148.397
-0.756 148.512
-0.825 148.626
-0.884 148.740
-0.932 148.854
-0.967 148.969
-0.990 149.083
-1.000 149.197
-0.996 149.311
-0.980 149.426
-0.951 149.540
-0.910 149.654
-0.856 149.768
-0.792 149.883
-0.717 149.997
-0.633 150.111
-0.541 150.225
-0.441 150.339
-0.336 150.454
-0.226 150.568
-0.114 150.682
0.000 150.796
0.114 150.911
0.226 151.025
0.336 151.139
0.441 151.253
0.541 151.368
0.633 151.482
0.717 151.596
0.792 151.710
0.856 151.825
0.910 151.939
0.951 152.053
0.980 152.167
0.996 152.282
1.000 152.396
0.990 152.510
0.967 152.624
0.932 152.739
0.884 152.853
0.825 152.967
0.756 153.081
0.676 153.195
0.588 153.310
0.492 153.424
0.389 153.538
0.282 153.652
0.171 153.767
0.057 153.881
-0.057 153.995
-0.171 154.109
-0.282 154.224
-0.389 154.338
-0.492 154.452
-0.588 154.566
-0.676 154.681
-0.756 154.795
-0.825 154.909
-0.884 155.023
-0.932 155.138
-0.967 155.252
-0.990 155.366
-1.000 155.480
-0.996 155.595
-0.980 155.709
-0.951 155.823
-0.910 155.937
-0.856 156.051
-0.792 156.166
-0.717 156.280
-0.633 156.394
-0.541 156.508
-0.441 156.623
-0.336 156.737
-0.226 156.851
-0.114 156.965
0.000 157.080
0.114 157.194
0.226 157.308
0.336 157.422
0.441 157.537
0.541 157.651
0.633 157.765
0.717 157.879
0.792 157.994
0.856 158.108
0.910 158.222
0.951 158.336
0.980 158.451
0.996 158.565
1.000 158.679
0.990 158.793
0.967 158.907
0.932 159.022
0.884 159.136
0.825 159.250
0.756 159.364
0.676 159.479
0.588 159.593
0.492 159.707
0.389 159.821
0.282 159.936
0.171 160.050
0.057 160.164
-0.057 160.278
-0.171 160.393
-0.282 160.507
-0.389 160.621
-0.492 160.735
-0.588 160.850
-0.676 160.964
-0.756 161.078
-0.825 161.192
-0.884 161.307
-0.932 161.421
-0.967 161.535
-0.990 161.649
-1.000 161.763
-0.996 161.878
-0.980 161.992
-0.951 162.106
-0.910 162.220
-0.856 162.335
-0.792 162.449
-0.717 162.563
-0.633 162.677
-0.541 162.792
-0.441 162.906
-0.336 163.020
-0.226 163.134
-0.114 163.249
0.000 163.363
0.114 163.477
0.226 163.591
0.336 163.706
0.441 163.820
0.541 163.934
0.633 164.048
0.717 164.162
0.792 164.277
0.856 164.391
0.910 164.505
0.951 164.619
0.980 164.734
0.996 164.848
1.000 164.962
0.990 165.076
0.967 165.191
0.932 165.305
0.884 165.419
0.825 165.533
0.756 165.648
0.676 165.762
0.588 165.876
0.492 165.990
0.389 166.105
0.282 166.219
0.171 166.333
0.057 166.447
-0.057 166.562
-0.171 166.676
-0.282 166.790
-0.389 166.904
-0.492 167.018
-0.588 167.133
-0.676 167.247
-0.756 167.361
-0.825 167.475
-0.884 167.590
-0.932 167.704
-0.967 167.818
-0.990 167.932
-1.000 168.047
-0.996 168.161
-0.980 168.275
-0.951 168.389
-0.910 168.504
-0.856 168.618
-0.792 168.732
-0.717 168.846
-0.633 168.961
-0.541 169.075
-0.441 169.189
-0.336 169.303
-0.226 169.418
-0.114 169.532
0.000 169.646
0.114 169.760
0.226 169.874
0.336 169.989
0.441 170.103
0.541 170.217
0.633 170.331
0.717 170.446
0.792 170.560
0.856 170.674
0.910 170.788
0.951 170.903
0.980 171.017
0.996 171.131
1.000 171.245
0.990 171.360
0.967 171.474
0.932 171.588
0.884 171.702
0.825 171.817
0.756 171.931
0.676 172.045
0.588 172.159
0.492 172.274
0.389 172.388
0.282 172.502
0.171 172.616
0.057 172.730
-0.057 172.845
-0.171 172.959
-0.282 173.073
-0.389 173.187
-0.492 173.302
-0.588 173.416
-0.676 173.530
-0.756 173.644
-0.825 173.759
-0.884 173.873
-0.932 173.987
-0.967 174.101
-0.990 174.216
-1.000 174.330
-0.996 174.444
-0.980 174.558
-0.951 174.673
-0.910 174.787
-0.856 174.901
-0.792 175.015
-0.717 175.130
-0.633 175.244
-0.541 175.358
-0.441 175.472
-0.336 175.586
-0.226 175.701
-0.114 175.815
0.000 175.929
0.114 176.043
0.226 176.158
0.336 176.272
0.441 176.386
0.541 176.500
0.633 176.615
0.717 176.729
0.792 176.843
0.856 176.957
0.910 177.072
0.951 177.186
0.980 177.300
0.996 177.414
1.000 177.529
0.990 177.643
0.967 177.757
0.932 177.871
0.884 177.986
0.825 178.100
0.756 178.214
0.676 178.328
0.588 178.442
0.492 178.557
0.389 178.671
0.282 178.785
0.171 178.899
0.057 179.014
-0.057 179.128
-0.171 179.242
-0.282 179.356
-0.389 179.471
-0.492 179.585
-0.588 179.699
-0.676 179.813
-0.756 179.928
-0.825 180.042
-0.884 180.156
-0.932 180.270
-0.967 180.385
-0.990 180.499
-1.000 180.613
-0.996 180.727
-0.980 180.841
-0.951 180.956
-0.910 181.070
-0.856 181.184
-0.792 181.298
-0.717 181.413
-0.633 181.527
-0.541 181.641
-0.441 181.755
-0.336 181.870
-0.226 181.984
-0.114 182.098
0.000 182.212
0.114 182.327
0.226 182.441
0.336 182.555
0.441 182.669
0.541 182.784
0.633 182.898
0.717 183.012
0.792 183.126
0.856 183.241
0.910 183.355
0.951 183.469
0.980 183.583
0.996 183.697
1.000 183.812
0.990 183.926
0.967 184.040
0.932 184.154
0.884 184.269
0.825 184.383
0.756 184.497
0.676 184.611
0.588 184.726
0.492 184.840
0.389 184.954
0.282 185.068
0.171 185.183
0.057 185.297
-0.057 185.411
-0.171 185.525
-0.282 185.640
-0.389 185.754
-0.492 185.868
-0.588 185.982
-0.676 186.097
-0.756 186.211
-0.825 186.325
-0.884 186.439
-0.932 186.553
-0.967 186.668
-0.990 186.782
-1.000 186.896
-0.996 187.010
-0.980 187.125
-0.951 187.239
-0.910 187.353
-0.856 187.467
-0.792 187.582
-0.717 187.696
-0.633 187.810
-0.541 187.924
-0.441 188.039
-0.336 188.153
-0.226 188.267
-0.114 188.381
0.000 188.496
0.114 188.610
0.226 188.724
0.336 188.838
0.441 188.953
0.541 189.067
0.633 189.181
0.717 189.295
0.792 189.409
0.856 189.524
0.910 189.638
0.951 189.752
0.980 189.866
0.996 189.981
1.000 190.095
0.990 190.209
0.967 190.323
0.932 190.438
0.884 190.552
0.825 190.666
0.756 190.780
0.676 190.895
0.588 191.009
0.492 191.123
0.389 191.237
0.282 191.352
0.171 191.466
0.057 191.580
-0.057 191.694
-0.171 191.809
-0.282 191.923
-0.389 192.037
-0.492 192.151
-0.588 192.265
-0.676 192.380
-0.756 192.494
-0.825 192.608
-0.884 192.722
-0.932 192.837
-0.967 192.951
-0.990 193.065
-1.000 193.179
-0.996 193.294
-0.980 193.408
-0.951 193.522
-0.910 193.636
-0.856 193.751
-0.792 193.865
-0.717 193.979
-0.633 194.093
-0.541 194.208
-0.441 194.322
-0.336 194.436
-0.226 194.550
-0.114 194.665
0.000 194.779
0.114 194.893
0.226 195.007
0.336 195.121
0.441 195.236
0.541 195.350
0.633 195.464
0.717 195.578
0.792 195.693
0.856 195.807
0.910 195.921
0.951 196.035
0.980 196.150
0.996 196.264
1.000 196.378
0.990 196.492
0.967 196.607
0.932 196.721
0.884 196.835
0.825 196.949
0.756 197.064
0.676 197.178
0.588 197.292
0.492 197.406
0.389 197.520
0.282 197.635
0.171 197.749
0.057 197.863
-0.057 197.977
-0.171 198.092
-0.282 198.206
-0.389 198.320
-0.492 198.434
-0.588 198.549
-0.676 198.663
-0.756 198.777
-0.825 198.891
-0.884 199.006
-0.932 199.120
-0.967 199.234
-0.990 199.348
-1.000 199.463
-0.996 199.577
-0.980 199.691
-0.951 199.805
-0.910 199.920
-0.856 200.034
-0.792 200.148
-0.717 200.262
-0.633 200.376
-0.541 200.491
-0.441 200.605
-0.336 200.719
-0.226 200.833
-0.114 200.948
0.000 201.062
0.114 201.176
0.226 201.290
0.336 201.405
0.441 201.519
0.541 201.633
0.633 201.747
0.717 201.862
0.792 201.976
0.856 202.090
0.910 202.204
0.951 202.319
0.980 202.433
0.996 202.547
1.000 202.661
0.990 202.776
0.967 202.890
0.932 203.004
0.884 203.118
0.825 203.232
0.756 203.347
0.676 203.461
0.588 203.575
0.492 203.689
0.389 203.804
0.282 203.918
0.171 204.032
0.057 204.146
-0.057 204.261
-0.171 204.375
-0.282 204.489
-0.389 204.603
-0.492 204.718
-0.588 204.832
-0.676 204.946
-0.756 205.060
-0.825 205.175
-0.884 205.289
-0.932 205.403
-0.967 205.517
-0.990 205.632
-1.000 205.746
-0.996 205.860
-0.980 205.974
-0.951 206.088
-0.910 206.203
-0.856 206.317
-0.792 206.431
-0.717 206.545
-0.633 206.660
-0.541 206.774
-0.441 206.888
-0.336 207.002
-0.226 207.117
-0.114 207.231
0.000 207.345
0.114 207.459
0.226 207.574
0.336 207.688
0.441 207.802
0.541 207.916
0.633 208.031
0.717 208.145
0.792 208.259
0.856 208.373
0.910 208.488
0.951 208.602
0.980 208.716
0.996 208.830
1.000 208.944
0.990 209.059
0.967 209.173
0.932 209.287
0.884 209.401
0.825 209.516
0.756 209.630
0.676 209.744
0.588 209.858
0.492 209.973
0.389 210.087
0.282 210.201
0.171 210.315
0.057 210.430
-0.057 210.544
-0.171 210.658
-0.282 210.772
-0.389 210.887
-0.492 211.001
-0.588 211.115
-0.676 211.229
-0.756 211.344
-0.825 211.458
-0.884 211.572
-0.932 211.686
-0.967 211.800
-0.990 211.915
-1.000 212.029
-0.996 212.143
-0.980 212.257
-0.951 212.372
-0.910 212.486
-0.856 212.600
-0.792 212.714
-0.717 212.829
-0.633 212.943
-0.541 213.057
-0.441 213.171
-0.336 213.286
-0.226 213.400
-0.114 213.514
0.000 213.628
0.114 213.743
0.226 213.857
0.336 213.971
0.441 214.085
0.541 214.199
0.633 214.314
0.717 214.428
0.792 214.542
0.856 214.656
0.910 214.771
0.951 214.885
0.980 214.999
0.996 215.113
1.000 215.228
0.990 215.342
0.967 215.456
0.932 215.570
0.884 215.685
0.825 215.799
0.756 215.913
0.676 216.027
0.588 216.142
0.492 216.256
0.389 216.370
0.282 216.484
0.171 216.599
0.057 216.713
-0.057 216.827
-0.171 216.941
-0.282 217.055
-0.389 217.170
-0.492 217.284
-0.588 217.398
-0.676 217.512
-0.756 217.627
-0.825 217.741
-0.884 217.855
-0.932 217.969
-0.967 218.084
-0.990 218.198
-1.000 218.312
-0.996 218.426
-0.980 218.541
-0.951 218.655
-0.910 218.769
-0.856 218.883
-0.792 218.998
-0.717 219.112
-0.633 219.226
-0.541 219.340
-0.441 219.455
-0.336 219.569
-0.226 219.683
-0.114 219.797
0.000 219.911
0.114 220.026
0.226 220.140
0.336 220.254
0.441 220.368
0.541 220.483
0.633 220.597
0.717 220.711
0.792 220.825
0.856 220.940
0.910 221.054
0.951 221.168
0.980 221.282
0.996 221.397
1.000 221.511
0.990 221.625
0.967 221.739
0.932 221.854
0.884 221.968
0.825 222.082
0.756 222.196
0.676 222.311
0.588 222.425
0.492 222.539
0.389 222.653
0.282 222.767
0.171 222.882
0.057 222.996
-0.057 223.110
-0.171 223.224
-0.282 223.339
-0.389 223.453
-0.492 223.567
-0.588 223.681
-0.676 223.796
-0.756 223.910
-0.825 224.024
-0.884 224.138
-0.932 224.253
-0.967 224.367
-0.990 224.481
-1.000 224.595
-0.996 224.710
-0.980 224.824
-0.951 224.938
-0.910 225.052
-0.856 225.167
-0.792 225.281
-0.717 225.395
-0.633 225.509
-0.541 225.623
-0.441 225.738
-0.336 225.852
-0.226 225.966
-0.114 226.080
0.000 226.195
0.114 226.309
0.226 226.423
0.336 226.537
0.441 226.652
0.541 226.766
0.633 226.880
0.717 226.994
0.792 227.109
0.856 227.223
0.910 227.337
0.951 227.451
0.980 227.566
0.996 227.680
1.000 227.794
0.990 227.908
0.967 228.023
0.932 228.137
0.884 228.251
0.825 228.365
0.756 228.479
0.676 228.594
0.588 228.708
0.492 228.822
0.389 228.936
0.282 229.051
0.171 229.165
0.057 229.279
-0.057 229.393
-0.171 229.508
-0.282 229.622
-0.389 229.736
-0.492 229.850
-0.588 229.965
-0.676 230.079
-0.756 230.193
-0.825 230.307
-0.884 230.422
-0.932 230.536
-0.967 230.650
-0.990 230.764
-1.000 230.879
-0.996 230.993
-0.980 231.107
-0.951 231.221
-0.910 231.335
-0.856 231.450
-0.792 231.564
-0.717 231.678
-0.633 231.792
-0.541 231.907
-0.441 232.021
-0.336 232.135
-0.226 232.249
-0.114 232.364
0.000 232.478
0.114 232.592
0.226 232.706
0.336 232.821
0.441 232.935
0.541 233.049
0.633 233.163
0.717 233.278
0.792 233.392
0.856 233.506
0.910 233.620
0.951 233.734
0.980 233.849
0.996 233.963
1.000 234.077
0.990 234.191
0.967 234.306
0.932 234.420
0.884 234.534
0.825 234.648
0.756 234.763
0.676 234.877
0.588 234.991
0.492 235.105
0.389 235.220
0.282 235.334
0.171 235.448
0.057 235.562
-0.057 235.677
-0.171 235.791
-0.282 235.905
-0.389 236.019
-0.492 236.134
-0.588 236.248
-0.676 236.362
-0.756 236.476
-0.825 236.590
-0.884 236.705
-0.932 236.819
-0.967 236.933
-0.990 237.047
-1.000 237.162
-0.996 237.276
-0.980 237.390
-0.951 237.504
-0.910 237.619
-0.856 237.733
-0.792 237.847
-0.717 237.961
-0.633 238.076
-0.541 238.190
-0.441 238.304
-0.336 238.418
-0.226 238.533
-0.114 238.647
0.000 238.761
0.114 238.875
0.226 238.990
0.336 239.104
0.441 239.218
0.541 239.332
0.633 239.446
0.717 239.561
0.792 239.675
0.856 239.789
0.910 239.903
0.951 240.018
0.980 240.132
0.996 240.246
1.000 240.360
0.990 240.475
0.967 240.589
0.932 240.703
0.884 240.817
0.825 240.932
0.756 241.046
0.676 241.160
0.588 241.274
0.492 241.389
0.389 241.503
0.282 241.617
0.171 241.731
0.057 241.846
-0.057 241.960
-0.171 242.074
-0.282 242.188
-0.389 242.302
-0.492 242.417
-0.588 242.531
-0.676 242.645
-0.756 242.759
-0.825 242.874
-0.884 242.988
-0.932 243.102
-0.967 243.216
-0.990 243.331
-1.000 243.445
-0.996 243.559
-0.980 243.673
-0.951 243.788
-0.910 243.902
-0.856 244.016
-0.792 244.130
-0.717 244.245
-0.633 244.359
-0.541 244.473
-0.441 244.587
-0.336 244.702
-0.226 244.816
-0.114 244.930
0.000 245.044
0.114 245.158
0.226 245.273
0.336 245.387
0.441 245.501
0.541 245.615
0.633 245.730
0.717 245.844
0.792 245.958
0.856 246.072
0.910 246.187
0.951 246.301
0.980 246.415
0.996 246.529
1.000 246.644
0.990 246.758
0.967 246.872
0.932 246.986
0.884 247.101
0.825 247.215
0.756 247.329
0.676 247.443
0.588 247.558
0.492 247.672
0.389 247.786
0.282 247.900
0.171 248.014
0.057 248.129
-0.057 248.243
-0.171 248.357
-0.282 248.471
-0.389 248.586
-0.492 248.700
-0.588 248.814
-0.676 248.928
-0.756 249.043
-0.825 249.157
-0.884 249.271
-0.932 249.385
-0.967 249.500
-0.990 249.614
-1.000 249.728
-0.996 249.842
-0.980 249.957
-0.951 250.071
-0.910 250.185
-0.856 250.299
-0.792 250.413
-0.717 250.528
-0.633 250.642
-0.541 250.756
-0.441 250.870
-0.336 250.985
-0.226 251.099
-0.114 251.213
0.000 251.327
0.114 251.442
0.226 251.556
0.336 251.670
0.441 251.784
0.541 251.899
0.633 252.013
0.717 252.127
0.792 252.241
0.856 252.356
0.910 252.470
0.951 252.584
0.980 252.698
0.996 252.813
1.000 252.927
0.990 253.041
0.967 253.155
0.932 253.269
0.884 253.384
0.825 253.498
0.756 253.612
0.676 253.726
0.588 253.841
0.492 253.955
0.389 254.069
0.282 254.183
0.171 254.298
0.057 254.412
-0.057 254.526
-0.171 254.640
-0.282 254.755
-0.389 254.869
-0.492 254.983
-0.588 255.097
-0.676 255.212
-0.756 255.326
-0.825 255.440
-0.884 255.554
-0.932 255.669
-0.967 255.783
-0.990 255.897
-1.000 256.011
-0.996 256.125
-0.980 256.240
-0.951 256.354
-0.910 256.468
-0.856 256.582
-0.792 256.697
-0.717 256.811
-0.633 256.925
-0.541 257.039
-0.441 257.154
-0.336 257.268
-0.226 257.382
-0.114 257.496
0.000 257.611
0.114 257.725
0.226 257.839
0.336 257.953
0.441 258.068
0.541 258.182
0.633 258.296
0.717 258.410
0.792 258.525
0.856 258.639
0.910 258.753
0.951 258.867
0.980 258.981
0.996 259.096
1.000 259.210
0.990 259.324
0.967 259.438
0.932 259.553
0.884 259.667
0.825 259.781
0.756 259.895
0.676 260.010
0.588 260.124
0.492 260.238
0.389 260.352
0.282 260.467
0.171 260.581
0.057 260.695
-0.057 260.809
-0.171 260.924
-0.282 261.038
-0.389 261.152
-0.492 261.266
-0.588 261.381
-0.676 261.495
-0.756 261.609
-0.825 261.723
-0.884 261.837
-0.932 261.952
-0.967 262.066
-0.990 262.180
-1.000 262.294
-0.996 262.409
-0.980 262.523
-0.951 262.637
-0.910 262.751
-0.856 262.866
-0.792 262.980
-0.717 263.094
-0.633 263.208
-0.541 263.323
-0.441 263.437
-0.336 263.551
-0.226 263.665
-0.114 263.780
0.000 263.894
0.114 264.008
0.226 264.122
0.336 264.237
0.441 264.351
0.541 264.465
0.633 264.579
0.717 264.693
0.792 264.808
0.856 264.922
0.910 265.036
0.951 265.150
0.980 265.265
0.996 265.379
1.000 265.493
0.990 265.607
0.967 265.722
0.932 265.836
0.884 265.950
0.825 266.064
0.756 266.179
0.676 266.293
0.588 266.407
0.492 266.521
0.389 266.636
0.282 266.750
0.171 266.864
0.057 266.978
-0.057 267.092
-0.171 267.207
-0.282 267.321
-0.389 267.435
-0.492 267.549
-0.588 267.664
-0.676 267.778
-0.756 267.892
-0.825 268.006
-0.884 268.121
-0.932 268.235
-0.967 268.349
-0.990 268.463
-1.000 268.578
-0.996 268.692
-0.980 268.806
-0.951 268.920
-0.910 269.035
-0.856 269.149
-0.792 269.263
-0.717 269.377
-0.633 269.492
-0.541 269.606
-0.441 269.720
-0.336 269.834
-0.226 269.948
-0.114 270.063
0.000 270.177
0.114 270.291
0.226 270.405
0.336 270.520
0.441 270.634
0.541 270.748
0.633 270.862
0.717 270.977
0.792 271.091
0.856 271.205
0.910 271.319
0.951 271.434
0.980 271.548
0.996 271.662
1.000 271.776
0.990 271.891
0.967 272.005
0.932 272.119
0.884 272.233
0.825 272.348
0.756 272.462
0.676 272.576
0.588 272.690
0.492 272.804
0.389 272.919
0.282 273.033
0.171 273.147
0.057 273.261
-0.057 273.376
-0.171 273.490
-0.282 273.604
-0.389 273.718
-0.492 273.833
-0.588 273.947
-0.676 274.061
-0.756 274.175
-0.825 274.290
-0.884 274.404
-0.932 274.518
-0.967 274.632
-0.990 274.747
-1.000 274.861
-0.996 274.975
-0.980 275.089
-0.951 275.204
-0.910 275.318
-0.856 275.432
-0.792 275.546
-0.717 275.660
-0.633 275.775
-0.541 275.889
-0.441 276.003
-0.336 276.117
-0.226 276.232
-0.114 276.346
0.000 276.460
0.114 276.574
0.226 276.689
0.336 276.803
0.441 276.917
0.541 277.031
0.633 277.146
0.717 277.260
0.792 277.374
0.856 277.488
0.910 277.603
0.951 277.717
0.980 277.831
0.996 277.945
1.000 278.060
0.990 278.174
0.967 278.288
0.932 278.402
0.884 278.516
0.825 278.631
0.756 278.745
0.676 278.859
0.588 278.973
0.492 279.088
0.389 279.202
0.282 279.316
0.171 279.430
0.057 279.545
-0.057 279.659
-0.171 279.773
-0.282 279.887
-0.389 280.002
-0.492 280.116
-0.588 280.230
-0.676 280.344
-0.756 280.459
-0.825 280.573
-0.884 280.687
-0.932 280.801
-0.967 280.916
-0.990 281.030
-1.000 281.144
-0.996 281.258
-0.980 281.372
-0.951 281.487
-0.910 281.601
-0.856 281.715
-0.792 281.829
-0.717 281.944
-0.633 282.058
-0.541 282.172
-0.441 282.286
-0.336 282.401
-0.226 282.515
-0.114 282.629
0.000 282.743
0.114 282.858
0.226 282.972
0.336 283.086
0.441 283.200
0.541 283.315
0.633 283.429
0.717 283.543
0.792 283.657
0.856 283.771
0.910 283.886
0.951 284.000
0.980 284.114
0.996 284.228
1.000 284.343
0.990 284.457
0.967 284.571
0.932 284.685
0.884 284.800
0.825 284.914
0.756 285.028
0.676 285.142
0.588 285.257
0.492 285.371
0.389 285.485
0.282 285.599
0.171 285.714
0.057 285.828
-0.057 285.942
-0.171 286.056
-0.282 286.171
-0.389 286.285
-0.492 286.399
-0.588 286.513
-0.676 286.627
-0.756 286.742
-0.825 286.856
-0.884 286.970
-0.932 287.084
-0.967 287.199
-0.990 287.313
-1.000 287.427
-0.996 287.541
-0.980 287.656
-0.951 287.770
-0.910 287.884
-0.856 287.998
-0.792 288.113
-0.717 288.227
-0.633 288.341
-0.541 288.455
-0.441 288.570
-0.336 288.684
-0.226 288.798
-0.114 288.912
0.000 289.027
0.114 289.141
0.226 289.255
0.336 289.369
0.441 289.483
0.541 289.598
0.633 289.712
0.717 289.826
0.792 289.940
0.856 290.055
0.910 290.169
0.951 290.283
0.980 290.397
0.996 290.512
1.000 290.626
0.990 290.740
0.967 290.854
0.932 290.969
0.884 291.083
0.825 291.197
0.756 291.311
0.676 291.426
0.588 291.540
0.492 291.654
0.389 291.768
0.282 291.883
0.171 291.997
0.057 292.111
-0.057 292.225
-0.171 292.339
-0.282 292.454
-0.389 292.568
-0.492 292.682
-0.588 292.796
-0.676 292.911
-0.756 293.025
-0.825 293.139
-0.884 293.253
-0.932 293.368
-0.967 293.482
-0.990 293.596
-1.000 293.710
-0.996 293.825
-0.980 293.939
-0.951 294.053
-0.910 294.167
-0.856 294.282
-0.792 294.396
-0.717 294.510
-0.633 294.624
-0.541 294.739
-0.441 294.853
-0.336 294.967
-0.226 295.081
-0.114 295.195
0.000 295.310
0.114 295.424
0.226 295.538
0.336 295.652
0.441 295.767
0.541 295.881
0.633 295.995
0.717 296.109
0.792 296.224
0.856 296.338
0.910 296.452
0.951 296.566
0.980 296.681
0.996 296.795
1.000 296.909
0.990 297.023
0.967 297.138
0.932 297.252
0.884 297.366
0.825 297.480
0.756 297.595
0.676 297.709
0.588 297.823
0.492 297.937
0.389 298.051
0.282 298.166
0.171 298.280
0.057 298.394
-0.057 298.508
-0.171 298.623
-0.282 298.737
-0.389 298.851
-0.492 298.965
-0.588 299.080
-0.676 299.194
-0.756 299.308
-0.825 299.422
-0.884 299.537
-0.932 299.651
-0.967 299.765
-0.990 299.879
-1.000 299.994
-0.996 300.108
-0.980 300.222
-0.951 300.336
-0.910 300.450
-0.856 300.565
-0.792 300.679
-0.717 300.793
-0.633 300.907
-0.541 301.022
-0.441 301.136
-0.336 301.250
-0.226 301.364
-0.114 301.479
0.000 301.593
0.114 301.707
0.226 301.821
0.336 301.936
0.441 302.050
0.541 302.164
0.633 302.278
0.717 302.393
0.792 302.507
0.856 302.621
0.910 302.735
0.951 302.850
0.980 302.964
0.996 303.078
1.000 303.192
0.990 303.306
0.967 303.421
0.932 303.535
0.884 303.649
0.825 303.763
0.756 303.878
0.676 303.992
0.588 304.106
0.492 304.220
0.389 304.335
0.282 304.449
0.171 304.563
0.057 304.677
-0.057 304.792
-0.171 304.906
-0.282 305.020
-0.389 305.134
-0.492 305.249
-0.588 305.363
-0.676 305.477
-0.756 305.591
-0.825 305.706
-0.884 305.820
-0.932 305.934
-0.967 306.048
-0.990 306.162
-1.000 306.277
-0.996 306.391
-0.980 306.505
-0.951 306.619
-0.910 306.734
-0.856 306.848
-0.792 306.962
-0.717 307.076
-0.633 307.191
-0.541 307.305
-0.441 307.419
-0.336 307.533
-0.226 307.648
-0.114 307.762
0.000 307.876
0.114 307.990
0.226 308.105
0.336 308.219
0.441 308.333
0.541 308.447
0.633 308.562
0.717 308.676
0.792 308.790
0.856 308.904
0.910 309.018
0.951 309.133
0.980 309.247
0.996 309.361
1.000 309.475
0.990 309.590
0.967 309.704
0.932 309.818
0.884 309.932
0.825 310.047
0.756 310.161
0.676 310.275
0.588 310.389
0.492 310.504
0.389 310.618
0.282 310.732
0.171 310.846
0.057 310.961
-0.057 311.075
-0.171 311.189
-0.282 311.303
-0.389 311.418
-0.492 311.532
-0.588 311.646
-0.676 311.760
-0.756 311.874
-0.825 311.989
-0.884 312.103
-0.932 312.217
-0.967 312.331
-0.990 312.446
-1.000 312.560
-0.996 312.674
-0.980 312.788
-0.951 312.903
-0.910 313.017
-0.856 313.131
-0.792 313.245
-0.717 313.360
-0.633 313.474
-0.541 313.588
-0.441 313.702
-0.336 313.817
-0.226 313.931
-0.114 314.045
0.000 314.159
0.114 314.274
0.226 314.388
0.336 314.502
0.441 314.616
0.541 314.730
0.633 314.845
0.717 314.959
0.792 315.073
0.856 315.187
0.910 315.302
0.951 315.416
0.980 315.530
0.996 315.644
1.000 315.759
0.990 315.873
0.967 315.987
0.932 316.101
0.884 316.216
0.825 316.330
0.756 316.444
0.676 316.558
0.588 316.673
0.492 316.787
0.389 316.901
0.282 317.015
0.171 317.129
0.057 317.244
-0.057 317.358
-0.171 317.472
-0.282 317.586
-0.389 317.701
-0.492 317.815
-0.588 317.929
-0.676 318.043
-0.756 318.158
-0.825 318.272
-0.884 318.386
-0.932 318.500
-0.967 318.615
-0.990 318.729
-1.000 318.843
-0.996 318.957
-0.980 319.072
-0.951 319.186
-0.910 319.300
-0.856 319.414
-0.792 319.529
-0.717 319.643
-0.633 319.757
-0.541 319.871
-0.441 319.985
-0.336 320.100
-0.226 320.214
-0.114 320.328
0.000 320.442
0.114 320.557
0.226 320.671
0.336 320.785
0.441 320.899
0.541 321.014
0.633 321.128
0.717 321.242
0.792 321.356
0.856 321.471
0.910 321.585
0.951 321.699
0.980 321.813
0.996 321.928
1.000 322.042
0.990 322.156
0.967 322.270
0.932 322.385
0.884 322.499
0.825 322.613
0.756 322.727
0.676 322.841
0.588 322.956
0.492 323.070
0.389 323.184
0.282 323.298
0.171 323.413
0.057 323.527
-0.057 323.641
-0.171 323.755
-0.282 323.870
-0.389 323.984
-0.492 324.098
-0.588 324.212
-0.676 324.327
-0.756 324.441
-0.825 324.555
-0.884 324.669
-0.932 324.784
-0.967 324.898
-0.990 325.012
-1.000 325.126
-0.996 325.241
-0.980 325.355
-0.951 325.469
-0.910 325.583
-0.856 325.697
-0.792 325.812
-0.717 325.926
-0.633 326.040
-0.541 326.154
-0.441 326.269
-0.336 326.383
-0.226 326.497
-0.114 326.611
0.000 326.726
0.114 326.840
0.226 326.954
0.336 327.068
0.441 327.183
0.541 327.297
0.633 327.411
0.717 327.525
0.792 327.640
0.856 327.754
0.910 327.868
0.951 327.982
0.980 328.097
0.996 328.211
1.000 328.325
0.990 328.439
0.967 328.553
0.932 328.668
0.884 328.782
0.825 328.896
0.756 329.010
0.676 329.125
0.588 329.239
0.492 329.353
0.389 329.467
0.282 329.582
0.171 329.696
0.057 329.810
-0.057 329.924
-0.171 330.039
-0.282 330.153
-0.389 330.267
-0.492 330.381
-0.588 330.496
-0.676 330.610
-0.756 330.724
-0.825 330.838
-0.884 330.953
-0.932 331.067
-0.967 331.181
-0.990 331.295
-1.000 331.409
-0.996 331.524
-0.980 331.638
-0.951 331.752
-0.910 331.866
-0.856 331.981
-0.792 332.095
-0.717 332.209
-0.633 332.323
-0.541 332.438
-0.441 332.552
-0.336 332.666
-0.226 332.780
-0.114 332.895
0.000 333.009
0.114 333.123
0.226 333.237
0.336 333.352
0.441 333.466
0.541 333.580
0.633 333.694
0.717 333.808
0.792 333.923
0.856 334.037
0.910 334.151
0.951 334.265
0.980 334.380
0.996 334.494
1.000 334.608
0.990 334.722
0.967 334.837
0.932 334.951
0.884 335.065
0.825 335.179
0.756 335.294
0.676 335.408
0.588 335.522
0.492 335.636
0.389 335.751
0.282 335.865
0.171 335.979
0.057 336.093
-0.057 336.208
-0.171 336.322
-0.282 336.436
-0.389 336.550
-0.492 336.664
-0.588 336.779
-0.676 336.893
-0.756 337.007
-0.825 337.121
-0.884 337.236
-0.932 337.350
-0.967 337.464
-0.990 337.578
-1.000 337.693
-0.996 337.807
-0.980 337.921
-0.951 338.035
-0.910 338.150
-0.856 338.264
-0.792 338.378
-0.717 338.492
-0.633 338.607
-0.541 338.721
-0.441 338.835
-0.336 338.949
-0.226 339.064
-0.114 339.178
0.000 339.292
0.114 339.406
0.226 339.520
0.336 339.635
0.441 339.749
0.541 339.863
0.633 339.977
0.717 340.092
0.792 340.206
0.856 340.320
0.910 340.434
0.951 340.549
0.980 340.663
0.996 340.777
1.000 340.891
0.990 341.006
0.967 341.120
0.932 341.234
0.884 341.348
0.825 341.463
0.756 341.577
0.676 341.691
0.588 341.805
0.492 341.920
0.389 342.034
0.282 342.148
0.171 342.262
0.057 342.376
-0.057 342.491
-0.171 342.605
-0.282 342.719
-0.389 342.833
-0.492 342.948
-0.588 343.062
-0.676 343.176
-0.756 343.290
-0.825 343.405
-0.884 343.519
-0.932 343.633
-0.967 343.747
-0.990 343.862
-1.000 343.976
-0.996 344.090
-0.980 344.204
-0.951 344.319
-0.910 344.433
#!/usr/bin/env python
# ----------------------------------------------------------------------
# Numenta Platform for Intelligent Computing (NuPIC)
# Copyright (C) 2013, Numenta, Inc. Unless you have an agreement
# with Numenta, Inc., for a separate license for this software code, the
# following terms and conditions apply:
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero Public License version 3 as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the GNU Affero Public License for more details.
#
# You should have received a copy of the GNU Affero Public License
# along with this program. If not, see http://www.gnu.org/licenses.
#
# http://numenta.org/licenses/
# ----------------------------------------------------------------------
"""A simple client to create a CLA model for hotgym."""
import csv
import datetime
import logging
from pkg_resources import resource_filename
from nupic.frameworks.opf.metrics import MetricSpec
from nupic.frameworks.opf.modelfactory import ModelFactory
from nupic.frameworks.opf.predictionmetricsmanager import MetricsManager
import model_params
import nupic_output
import ipdb
_LOGGER = logging.getLogger(__name__)
_INPUT_FILE_PATH = resource_filename(
"nupic.datafiles", "extra/sine/sine.csv"
)
_METRIC_SPECS = (
MetricSpec(field='Sine', metric='multiStep',
inferenceElement='multiStepBestPredictions',
params={'errorMetric': 'aae', 'window': 200, 'steps': 1}),
MetricSpec(field='Sine', metric='trivial',
inferenceElement='prediction',
params={'errorMetric': 'aae', 'window': 200, 'steps': 1}),
)
_NUM_RECORDS = 200
def createModel():
return ModelFactory.create(model_params.MODEL_PARAMS)
def runHotgym():
model = createModel()
model.enableInference({'predictedField': 'Sine'})
metricsManager = MetricsManager(_METRIC_SPECS, model.getFieldInfo(),
model.getInferenceType())
output = nupic_output.NuPICFileOutput(["rec-center-hourly"])
# ipdb.set_trace()
with open('sine.csv', 'rU') as fin:
myreader = csv.DictReader(fin)
for i, modelInput in enumerate(myreader):
for k, v in modelInput.iteritems():
modelInput[k] = float(v)
result = model.run(modelInput)
result.metrics = metricsManager.update(result)
isLast = i == _NUM_RECORDS
# ipdb.set_trace()
prediction = result.inferences["multiStepBestPredictions"][5]
output.write([modelInput["Sine"]], [
modelInput["angle"]], [prediction])
# if i % 100 == 0 or isLast:
# _LOGGER.info("After %i records, 1-step altMAPE=%f", i,
# result.metrics["multiStepBestPredictions:multiStep:"
# "errorMetric='altMAPE':steps=1:window=1000:"
# "field=consumption"])
if isLast:
break
output.close()
if __name__ == "__main__":
logging.basicConfig(level=logging.INFO)
runHotgym()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment