changeset 1:dc43033a2c20

* Added .dat files containing parameters and filter coefficients * In cortical_model: added get_specific_loudness() function and dependencies. * In cortical_model & in utils: fixed bugs created from changing variable and function names before last submit * In cortical_model: changed plot_excitation_tf (now named plot_excitation_response) to allow an input signal to be optionally given to be analysed. TODO: * In cortical_model: comment * In cortical_model: add partial loudness function
author Carl Bussey <c.bussey@se10.qmul.ac.uk>
date Sun, 02 Feb 2014 22:35:48 +0000
parents 5609fd93e935
children 3b3c1c4ad283
files A.dat alpha.dat cortical_model.py erb.dat outMidFir.dat tq.dat utils.py
diffstat 7 files changed, 263 insertions(+), 30 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/A.dat	Sun Feb 02 22:35:48 2014 +0000
@@ -0,0 +1,1 @@
+4.7209,4.7204,4.7169,4.7084,4.6964,4.6814,4.6658,4.6565,4.6494,4.6421,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387,4.6387
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/alpha.dat	Sun Feb 02 22:35:48 2014 +0000
@@ -0,0 +1,1 @@
+0.2,0.19999,0.19992,0.19975,0.19952,0.19921,0.19886,0.19863,0.19843,0.19818,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803,0.19803
--- a/cortical_model.py	Sat Jan 25 20:00:38 2014 +0000
+++ b/cortical_model.py	Sun Feb 02 22:35:48 2014 +0000
@@ -11,6 +11,7 @@
     * utils.py and/or utils.pyc
     * erb.dat
     * outMidFir.dat
+    * tq.dat
     
 External dependencies:
     * scipy
@@ -21,21 +22,108 @@
 
 import utils
 import scipy.signal as sp
+import scipy.fftpack as fft
 import numpy as np
 from copy import deepcopy
 import matplotlib.pyplot as plt
 
-def get_partial_loudness():
+def get_specific_loudness(exc_i, inc_loud_region = False):
     """
-    A function to calculate the partial loudness of an excitation pattern at given ERB.
+    A function to calculate the specific loudness of the excitation patterns at each ERB.
     
     TO DO
     """
+    lenSig = np.shape(exc_i)[-1] #length signal
+    tq_dB, A, alpha = utils.load_sl_parameters() #load tq, A and alpha parameters
+    tq_dB = np.transpose(np.tile(tq_dB, (lenSig,1)))
+    tq = 10**(tq_dB / 10)
+    A = np.transpose(np.tile(A, (lenSig,1)))
+    alpha = np.transpose(np.tile(alpha, (lenSig,1)))
+    tq500_dB = 3.73 #threshold of quiet at 500Hz reference
+    G = 10**((tq500_dB - tq_dB)/10) #gain parameter
+    specific_loudness = exc_low = exc_mid = exc_high = np.zeros(np.shape(exc_i))
     
+    less_than_tq = get_less_than_tq(exc_i, tq) #boolean array of elements less than or equal to the threshold of quiet
+    greater_than_tq = ~less_than_tq #boolean array of elements greater than the threshold of quiet
+    greater_than_tl = get_greater_than_tl(exc_i) #boolean array of elements greater than the loud threshold
+    gttq_lttl = greater_than_tq[~greater_than_tl] #boolean array of elements greater than the threshold of quiet but less than the threshold of loud
     
-    return
+    exc_low = exc_i[less_than_tq]
+    specific_loudness[less_than_tq] = get_specific_loudness_low(exc_low, G[less_than_tq], tq[less_than_tq], A[less_than_tq], alpha[less_than_tq])
+    
+    if(inc_loud_region):
+        exc_mid = exc_i[gttq_lttl]
+        exc_high = exc_i[greater_than_tl]
+        specific_loudness[gttq_lttl] = get_specific_loudness_mid(exc_mid, G[gttq_lttl], A[gttq_lttl], alpha[gttq_lttl])
+        specific_loudness[greater_than_tl] = get_specific_loudness_high(exc_high)
+    else:
+        exc_mid = exc_i[greater_than_tq]
+        specific_loudness[greater_than_tq] = get_specific_loudness_mid(exc_mid, G[greater_than_tq], A[greater_than_tq], alpha[greater_than_tq])
+    
+    return specific_loudness
 
-def get_excitation_i(input, fs, SPL, rectify=False):
+def get_specific_loudness_low(exc_low, G, tq, A, alpha):
+    
+    C = 0.047 #constant parameter
+    specific_loudness_low = C * ((2*exc_low)/(exc_low+tq))**1.5 * ((G * exc_low + A)**alpha - A**alpha)
+
+    return specific_loudness_low
+
+def get_specific_loudness_mid(exc_mid, G, A, alpha):
+    
+    C = 0.047 #constant parameter
+    specific_loudness_mid = C * ((G * exc_mid + A)**alpha - A**alpha)
+    
+    return specific_loudness_mid
+
+def get_specific_loudness_high(exc_high):
+    """
+    
+    """
+
+    C = 0.047 #constant parameter
+    specific_loudness_high = C * (exc_high / (1.04 * 10**6))**0.5
+    
+    return specific_loudness_high
+
+def get_greater_than_tl(exc_i):
+    """
+    A function to return if each element of the excitation intensity is greater than the threshold of loud.
+        
+    Parameters:
+        * exc_i (type: array-like matrix of floats) - the input excitation intensity
+        
+    Returns:
+    * le_tq (type: array-like matrix of booleans) - a boolean array with dimensions equal to the input
+    specifying if the excitation intensity is greater than the threshold of loud
+    """
+    
+    lenSig = np.shape(exc_i)[-1]
+    g_tl = exc_i[:,:]>np.transpose(np.tile(10**10,(lenSig,39)))
+                 
+    return g_tl
+
+def get_less_than_tq(exc_i, tq):
+    """
+    A function to return if each element of the excitation intensity is less than the threshold of quiet.
+    
+    Parameters:
+        * exc_i (type: array-like matrix of floats) - the input excitation intensity
+        * tq (type: array-like matrix of floats) - the threshold of quiet for each ERB.
+            
+    Returns:
+        * le_tq (type: array-like matrix of booleans) - a boolean array with dimensions equal to the input
+            specifying if the excitation intensity is less than the threshold of quiet
+    """
+    
+    if (np.shape(exc_i)!=np.shape(tq)):
+        np.transpose(np.tile(exc_i,(np.shape(exc_i)[-1],1)))
+    
+    le_tq = exc_i<=tq
+
+    return le_tq
+
+def get_excitation_i(input, fs, SPL, rectify=False, verbose = False):
     """
     A function to calculate the excitation intensity of the input signal.
     
@@ -57,7 +145,7 @@
     input = np.array(input)
     inputOMFir = outMidFir(input)
     inputPa = v_Pascal(inputOMFir, SPL)
-    gtfs = gamma_tone_filter(inputPa, fs)
+    gtfs = gamma_tone_filter(inputPa, fs, verbose = verbose)
     if (rectify):
         gtfs = half_rectification(gtfs)
     gtfs = pa_i(gtfs)
@@ -65,7 +153,7 @@
 
     return gtfs
 
-def plot_excitation_tf(fs = 44100, outMidFilt = True, xscale = 'log', yscale = 'log'):
+def plot_excitation_response(input = 0, fs = 44100, outMidFilt = True, xscale = 'log', yscale = 'log'):
     """
     A function that plots the transfer function of the outer middle ear and each gammatone filter.
     
@@ -80,9 +168,10 @@
             signal at each gammatone filter (and optionally, including the outer middle ear response). The response at the
             nth gammatone filter can be accessed by y[n].
     """
-        
-    input = np.zeros(np.ceil(fs))
-    input[0] = 1
+    
+    if ((np.shape(input)==())):
+        input = np.zeros(np.ceil(fs))
+        input[0] = 1
     if(outMidFilt): input = outMidFir(input)
     y = gamma_tone_filter(input, fs)
     
@@ -91,7 +180,7 @@
 
     plt.show()
 
-    return y
+    return fft.fft(y)
 
 def get_modulation_i(input, fs):
     """
@@ -109,7 +198,6 @@
         be accessed with y[n].
     """
     
-    
     input = np.array(input)
     b = fir_antialias(fs)
     input_lp = sp.lfilter(b,(1),input_fr)
@@ -138,7 +226,7 @@
 
     return y
 
-def gamma_tone_filter(input, fs):
+def gamma_tone_filter(input, fs, verbose = False):
     """
     A function to filter to decompose the input signal into 39 different gammatones filtered signals modelling the ERBs.
     
@@ -153,7 +241,7 @@
     
     input = np.array(input)
     fc, bw = utils.load_erb_data()
-    y = decomposition(input,fs,fc,bw)
+    y = decomposition(input,fs,fc,bw, verbose = verbose)
     
     return y
 
@@ -172,7 +260,7 @@
     """
     
     input = np.array(input)
-    y = np.sign(input)*(0.00002*10**(np.log10(np.abs(input))+dBFS/20))
+    y = np.sign(input)*(0.00002*10**(np.log10(np.abs(input))+SPL/20))
     
     return y
 
@@ -209,7 +297,7 @@
     input = np.array(input)
     y = input / 1*(10**12)
     
-    return
+    return y
 
 def downsample(input, factor=100):
     """
@@ -299,7 +387,6 @@
         signal of the nth filter can be accessed using y[n].
     """
     
-    
     input = np.array(input)
     nFreqs = len(fc)
     shape = (nFreqs,) + np.shape(input)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/erb.dat	Sun Feb 02 22:35:48 2014 +0000
@@ -0,0 +1,39 @@
+20,26.828
+48.327,29.881
+79.877,33.281
+115.02,37.069
+154.16,41.287
+197.75,45.985
+246.3,51.217
+300.38,57.045
+360.61,63.536
+427.69,70.766
+502.41,78.819
+585.63,87.787
+678.32,97.777
+781.56,108.9
+896.54,121.29
+1024.6,135.1
+1167.3,150.47
+1326.1,167.59
+1503.1,186.66
+1700.2,207.9
+1919.7,231.56
+2164.2,257.91
+2436.5,287.26
+2739.8,319.94
+3077.6,356.35
+3453.8,396.9
+3872.9,442.06
+4339.6,492.36
+4859.5,548.39
+5438.5,610.79
+6083.4,680.29
+6801.7,757.7
+7601.7,843.92
+8492.8,939.95
+9485.2,1046.9
+10591,1166
+11822,1298.7
+13193,1446.5
+14720,1611.1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/outMidFir.dat	Sun Feb 02 22:35:48 2014 +0000
@@ -0,0 +1,1 @@
+-5e-08,-4e-08,-5e-08,-3e-08,-2e-08,-1e-08,-0,-1e-08,-0,-3e-08,-1e-08,-3e-08,-2e-08,-3e-08,-2e-08,-3e-08,-4e-08,-3e-08,-5e-08,-3e-08,-5e-08,-3e-08,-3e-08,-1e-08,-2e-08,-1e-08,-0,-1e-08,0,-0,2e-08,0,2e-08,-1e-08,-1e-08,-4e-08,-5e-08,-5e-08,-6e-08,-2e-08,-0,3e-08,2e-08,3e-08,-2e-08,-2e-08,-1e-08,1e-08,3e-08,4e-08,4e-08,0,0,-3e-08,-3e-08,-4e-08,-3e-08,-3e-08,-3e-08,-2e-08,-3e-08,-1e-08,-2e-08,-0,-2e-08,-1e-08,-2e-08,-1e-08,-1e-08,-1e-08,0,-0,1e-08,-1e-08,0,-2e-08,-1e-08,-3e-08,-1e-08,-2e-08,-2e-08,-2e-08,-4e-08,-3e-08,-5e-08,-4e-08,-5e-08,-3e-08,-3e-08,-1e-08,-1e-08,-2e-08,-2e-08,-4e-08,-3e-08,-4e-08,-2e-08,-3e-08,-2e-08,-3e-08,-3e-08,-3e-08,-4e-08,-3e-08,-3e-08,-2e-08,-4e-08,-2e-08,-4e-08,-3e-08,-4e-08,-4e-08,-5e-08,-6e-08,-6e-08,-7e-08,-5e-08,-6e-08,-4e-08,-4e-08,-2e-08,-3e-08,-3e-08,-3e-08,-4e-08,-4e-08,-5e-08,-4e-08,-6e-08,-5e-08,-7e-08,-7e-08,-8e-08,-7e-08,-7e-08,-6e-08,-4e-08,-5e-08,-2e-08,-4e-08,-3e-08,-5e-08,-4e-08,-5e-08,-4e-08,-4e-08,-5e-08,-4e-08,-6e-08,-3e-08,-5e-08,-2e-08,-3e-08,-2e-08,-4e-08,-4e-08,-3e-08,-4e-08,-2e-08,-4e-08,-3e-08,-6e-08,-5e-08,-8e-08,-6e-08,-6e-08,-5e-08,-4e-08,-4e-08,-2e-08,-5e-08,-4e-08,-6e-08,-5e-08,-6e-08,-5e-08,-5e-08,-6e-08,-6e-08,-9e-08,-8e-08,-1.1e-07,-8e-08,-1e-07,-8e-08,-9e-08,-8e-08,-8e-08,-8e-08,-8e-08,-9e-08,-7e-08,-9e-08,-6e-08,-8e-08,-6e-08,-6e-08,-4e-08,-3e-08,-3e-08,-2e-08,-6e-08,-8e-08,-1.2e-07,-9e-08,-1e-07,-5e-08,-5e-08,-6e-08,-8e-08,-1.2e-07,-1.3e-07,-1.4e-07,-9e-08,-1e-07,-6e-08,-6e-08,-5e-08,-7e-08,-8e-08,-9e-08,-1e-07,-9e-08,-1.1e-07,-9e-08,-1.2e-07,-1.1e-07,-1.4e-07,-1.3e-07,-1.5e-07,-1.4e-07,-1.3e-07,-1.4e-07,-1.1e-07,-1.3e-07,-1e-07,-1.2e-07,-1e-07,-1.2e-07,-1e-07,-1e-07,-9e-08,-8e-08,-1e-07,-1e-07,-1.4e-07,-1.2e-07,-1.5e-07,-1.2e-07,-1.2e-07,-7e-08,-6e-08,-6e-08,-6e-08,-1e-07,-9e-08,-1e-07,-6e-08,-6e-08,-1e-08,-3e-08,-5e-08,-7e-08,-8e-08,-9e-08,-1.1e-07,-8e-08,-1.2e-07,-9e-08,-1.2e-07,-9e-08,-1.1e-07,-9e-08,-9e-08,-1e-07,-8e-08,-1e-07,-8e-08,-1e-07,-7e-08,-9e-08,-7e-08,-9e-08,-9e-08,-1e-07,-1.3e-07,-1.2e-07,-1.5e-07,-1.2e-07,-1.5e-07,-1.2e-07,-1.5e-07,-1.3e-07,-1.5e-07,-1.5e-07,-1.5e-07,-1.6e-07,-1.3e-07,-1.4e-07,-1e-07,-1.3e-07,-1e-07,-1.4e-07,-1.4e-07,-1.5e-07,-1.4e-07,-1.3e-07,-1.3e-07,-1.1e-07,-1.4e-07,-1.1e-07,-1.4e-07,-1.1e-07,-1.2e-07,-9e-08,-1.1e-07,-1.1e-07,-1e-07,-1.1e-07,-8e-08,-1e-07,-7e-08,-1.1e-07,-9e-08,-1.3e-07,-1.1e-07,-1.1e-07,-1e-07,-7e-08,-7e-08,-3e-08,-5e-08,-2e-08,-6e-08,-4e-08,-7e-08,-5e-08,-7e-08,-8e-08,-9e-08,-1.2e-07,-1.2e-07,-1.6e-07,-1.3e-07,-1.5e-07,-1.1e-07,-1.1e-07,-8e-08,-8e-08,-8e-08,-7e-08,-1e-07,-8e-08,-1.2e-07,-1e-07,-1.4e-07,-1.1e-07,-1.4e-07,-1.2e-07,-1.1e-07,-1.1e-07,-8e-08,-8e-08,-5e-08,-9e-08,-5e-08,-8e-08,-4e-08,-5e-08,-4e-08,-6e-08,-9e-08,-1e-07,-1.4e-07,-1e-07,-1.1e-07,-5e-08,-6e-08,-1e-08,-2e-08,-1e-08,-1e-08,-3e-08,-1e-08,-4e-08,0,-3e-08,-0,-6e-08,-4e-08,-9e-08,-1e-07,-1e-07,-1.1e-07,-9e-08,-1.2e-07,-8e-08,-1.3e-07,-1e-07,-1.5e-07,-1.2e-07,-1.4e-07,-1.4e-07,-1.2e-07,-1.2e-07,-9e-08,-9e-08,1e-08,-0,6e-08,4e-08,1e-08,-1.1e-07,-1.5e-07,-1.4e-07,-1.4e-07,-1e-08,1e-08,2e-08,-7e-08,-9e-08,-1.8e-07,-1.3e-07,-6e-08,0,7e-08,1e-07,1.4e-07,7e-08,1e-07,4e-08,6e-08,3e-08,6e-08,5e-08,5e-08,5e-08,1e-08,5e-08,-0,5e-08,1e-08,5e-08,3e-08,6e-08,6e-08,6e-08,8e-08,5e-08,1e-07,7e-08,1.3e-07,9e-08,1.3e-07,9e-08,8e-08,6e-08,4e-08,6e-08,5e-08,1.3e-07,1e-07,1.6e-07,1e-07,1.1e-07,6e-08,1.1e-07,1.5e-07,1.8e-07,2.6e-07,2.3e-07,2.6e-07,2e-07,2.5e-07,1.8e-07,2.2e-07,2e-07,2e-07,1.9e-07,1.8e-07,2.2e-07,1.8e-07,2.5e-07,2.1e-07,2.7e-07,2.3e-07,2.7e-07,2.6e-07,2.9e-07,3.2e-07,3.2e-07,3.7e-07,3.3e-07,3.8e-07,3.1e-07,3.4e-07,2.8e-07,3.2e-07,3e-07,3.2e-07,3.3e-07,3.1e-07,3.3e-07,2.8e-07,3.2e-07,2.7e-07,3.3e-07,3e-07,3.6e-07,3.6e-07,3.6e-07,3.7e-07,3.2e-07,3.4e-07,2.9e-07,3.4e-07,2.9e-07,3.6e-07,3.2e-07,3.5e-07,3.4e-07,3.5e-07,3.8e-07,3.6e-07,4.3e-07,3.8e-07,4.4e-07,4e-07,4.6e-07,4.2e-07,4.6e-07,4.4e-07,4.2e-07,4.3e-07,3.8e-07,4.3e-07,3.9e-07,4.9e-07,4.8e-07,5.8e-07,5.9e-07,6.6e-07,6.7e-07,6.7e-07,6.9e-07,6.4e-07,6.9e-07,6.1e-07,6.6e-07,5.8e-07,6e-07,5.4e-07,5.5e-07,5.5e-07,5.6e-07,6.3e-07,6.3e-07,7.4e-07,7.1e-07,7.9e-07,7.2e-07,7.5e-07,7e-07,6.9e-07,6.6e-07,6.2e-07,6.3e-07,5.5e-07,6.1e-07,5.6e-07,6.4e-07,6.1e-07,6.9e-07,6.6e-07,6.7e-07,6.8e-07,6.8e-07,7.5e-07,7.3e-07,8e-07,7e-07,7.3e-07,6.3e-07,6.6e-07,6.7e-07,7.4e-07,8.2e-07,8.6e-07,9.7e-07,9.3e-07,1.02e-06,9.4e-07,1.01e-06,9.7e-07,1.04e-06,1.05e-06,1.09e-06,1.11e-06,1.06e-06,1.11e-06,1.01e-06,1.06e-06,1e-06,1.06e-06,9.8e-07,1.03e-06,9.9e-07,9.6e-07,9.7e-07,9e-07,9.5e-07,8.6e-07,9e-07,8.5e-07,9.6e-07,9.4e-07,1.12e-06,1.31e-06,1.42e-06,1.5e-06,1.49e-06,1.32e-06,8.5e-07,7.2e-07,5.7e-07,6.9e-07,9.4e-07,1.16e-06,1.01e-06,8.1e-07,6e-07,3.1e-07,4.5e-07,6.3e-07,9.1e-07,1.02e-06,1.26e-06,1.23e-06,1.18e-06,1.1e-06,9.9e-07,9.4e-07,8.5e-07,9.2e-07,8.4e-07,9.3e-07,8.3e-07,8.9e-07,8.5e-07,8.7e-07,8.9e-07,8.9e-07,9.5e-07,9e-07,1.01e-06,9.3e-07,1.02e-06,9.6e-07,1.03e-06,9.9e-07,1.03e-06,1.06e-06,1.05e-06,1.12e-06,1.05e-06,1.13e-06,1.06e-06,1.16e-06,1.09e-06,1.18e-06,1.19e-06,1.22e-06,1.23e-06,1.17e-06,1.18e-06,1.08e-06,1.2e-06,1.14e-06,1.28e-06,1.27e-06,1.34e-06,1.29e-06,1.3e-06,1.32e-06,1.26e-06,1.32e-06,1.24e-06,1.3e-06,1.19e-06,1.28e-06,1.21e-06,1.27e-06,1.26e-06,1.27e-06,1.31e-06,1.27e-06,1.36e-06,1.31e-06,1.45e-06,1.4e-06,1.53e-06,1.51e-06,1.59e-06,1.59e-06,1.59e-06,1.61e-06,1.52e-06,1.58e-06,1.48e-06,1.58e-06,1.49e-06,1.57e-06,1.49e-06,1.51e-06,1.47e-06,1.44e-06,1.5e-06,1.46e-06,1.59e-06,1.52e-06,1.62e-06,1.49e-06,1.51e-06,1.37e-06,1.37e-06,1.33e-06,1.28e-06,1.3e-06,1.18e-06,1.21e-06,1.08e-06,1.19e-06,1.12e-06,1.24e-06,1.23e-06,1.3e-06,1.32e-06,1.34e-06,1.46e-06,1.44e-06,1.6e-06,1.52e-06,1.6e-06,1.45e-06,1.47e-06,1.38e-06,1.4e-06,1.42e-06,1.4e-06,1.47e-06,1.37e-06,1.47e-06,1.34e-06,1.44e-06,1.36e-06,1.47e-06,1.46e-06,1.52e-06,1.57e-06,1.53e-06,1.6e-06,1.48e-06,1.53e-06,1.35e-06,1.4e-06,1.24e-06,1.29e-06,1.26e-06,1.28e-06,1.31e-06,1.28e-06,1.39e-06,1.36e-06,1.57e-06,1.56e-06,1.79e-06,1.79e-06,1.88e-06,1.85e-06,1.85e-06,1.84e-06,1.71e-06,1.76e-06,1.54e-06,1.5e-06,1.27e-06,1.32e-06,1.19e-06,1.31e-06,1.37e-06,1.4e-06,1.47e-06,1.41e-06,1.46e-06,1.28e-06,1.35e-06,1.11e-06,1.07e-06,8.8e-07,8.7e-07,8e-07,7.8e-07,8.6e-07,8e-07,9.4e-07,8.1e-07,9.1e-07,8.6e-07,1.01e-06,9e-07,1.07e-06,1.15e-06,1.09e-06,1.21e-06,1.25e-06,1.42e-06,1.44e-06,1.75e-06,1.7e-06,1.91e-06,1.95e-06,2.25e-06,2.62e-06,2.68e-06,2.66e-06,2.42e-06,1.81e-06,5.2e-07,-9e-08,-7e-07,-9.4e-07,-1e-07,1.8e-06,2.87e-06,3.23e-06,3.19e-06,1.69e-06,9e-07,1.47e-06,2.59e-06,3.74e-06,5.15e-06,4.85e-06,3.59e-06,2.62e-06,1.6e-06,6.9e-07,3.6e-07,8.3e-07,9e-07,1.38e-06,1.76e-06,2.08e-06,2.13e-06,2.3e-06,2.45e-06,2.57e-06,2.77e-06,2.68e-06,2.93e-06,2.82e-06,2.94e-06,2.97e-06,3.14e-06,3.03e-06,3.04e-06,3.03e-06,2.78e-06,2.77e-06,2.59e-06,2.71e-06,2.54e-06,2.61e-06,2.36e-06,2.28e-06,2.02e-06,1.83e-06,1.82e-06,1.77e-06,2.01e-06,2.06e-06,2.4e-06,2.34e-06,2.48e-06,2.27e-06,2.18e-06,2.02e-06,1.92e-06,1.9e-06,1.79e-06,1.92e-06,1.75e-06,1.94e-06,1.88e-06,2.11e-06,2.14e-06,2.36e-06,2.45e-06,2.5e-06,2.62e-06,2.51e-06,2.6e-06,2.37e-06,2.4e-06,2.11e-06,2.11e-06,1.91e-06,1.89e-06,1.88e-06,1.9e-06,2.07e-06,2.07e-06,2.35e-06,2.29e-06,2.52e-06,2.39e-06,2.5e-06,2.38e-06,2.39e-06,2.33e-06,2.19e-06,2.19e-06,1.95e-06,2.01e-06,1.77e-06,1.92e-06,1.77e-06,1.93e-06,1.91e-06,2e-06,2.04e-06,2.01e-06,2.12e-06,1.98e-06,2.18e-06,2.01e-06,2.18e-06,2.02e-06,2.09e-06,1.92e-06,1.89e-06,1.86e-06,1.71e-06,1.79e-06,1.63e-06,1.77e-06,1.58e-06,1.79e-06,1.71e-06,1.88e-06,1.88e-06,1.91e-06,1.92e-06,1.79e-06,1.86e-06,1.63e-06,1.79e-06,1.58e-06,1.74e-06,1.61e-06,1.74e-06,1.74e-06,1.79e-06,1.89e-06,1.85e-06,2.07e-06,1.97e-06,2.25e-06,2.14e-06,2.33e-06,2.17e-06,2.2e-06,2.06e-06,1.95e-06,1.97e-06,1.85e-06,2.04e-06,1.93e-06,2.2e-06,2.09e-06,2.32e-06,2.25e-06,2.41e-06,2.46e-06,2.48e-06,2.59e-06,2.43e-06,2.52e-06,2.28e-06,2.46e-06,2.24e-06,2.37e-06,2.22e-06,2.17e-06,1.98e-06,1.85e-06,1.93e-06,1.83e-06,2.15e-06,2.06e-06,2.26e-06,2.02e-06,2.1e-06,1.91e-06,1.97e-06,2e-06,1.96e-06,2.06e-06,1.87e-06,2.02e-06,1.76e-06,1.92e-06,1.73e-06,1.88e-06,1.8e-06,1.88e-06,1.94e-06,1.92e-06,2.11e-06,2e-06,2.28e-06,2.15e-06,2.4e-06,2.29e-06,2.53e-06,2.54e-06,2.68e-06,2.82e-06,2.79e-06,2.97e-06,2.85e-06,3.2e-06,3.2e-06,3.58e-06,3.55e-06,3.77e-06,3.59e-06,3.36e-06,3.23e-06,3e-06,3.07e-06,3.09e-06,3.76e-06,3.8e-06,4.09e-06,3.85e-06,3.58e-06,3.23e-06,3.37e-06,3.65e-06,3.83e-06,4.33e-06,4.06e-06,3.96e-06,3.47e-06,3.42e-06,2.94e-06,2.93e-06,2.86e-06,2.79e-06,2.84e-06,2.74e-06,2.93e-06,2.71e-06,2.96e-06,2.74e-06,3e-06,2.89e-06,3.06e-06,3.15e-06,3.25e-06,3.45e-06,3.43e-06,3.72e-06,3.5e-06,3.75e-06,3.47e-06,3.57e-06,3.34e-06,3.37e-06,3.29e-06,3.23e-06,3.32e-06,3.13e-06,3.35e-06,3.14e-06,3.45e-06,3.35e-06,3.71e-06,3.76e-06,4.06e-06,4.21e-06,4.19e-06,4.3e-06,4e-06,4.06e-06,3.7e-06,3.89e-06,3.63e-06,3.83e-06,3.71e-06,3.76e-06,3.81e-06,3.79e-06,3.98e-06,3.83e-06,4.12e-06,3.85e-06,4.04e-06,3.77e-06,3.89e-06,3.69e-06,3.68e-06,3.66e-06,3.5e-06,3.63e-06,3.41e-06,3.67e-06,3.46e-06,3.82e-06,3.74e-06,4.08e-06,4.16e-06,4.36e-06,4.53e-06,4.47e-06,4.71e-06,4.5e-06,4.84e-06,4.68e-06,5.04e-06,4.89e-06,5.07e-06,4.96e-06,4.91e-06,4.95e-06,4.81e-06,5.08e-06,4.95e-06,5.34e-06,5.16e-06,5.51e-06,5.37e-06,5.57e-06,5.61e-06,5.68e-06,5.79e-06,5.61e-06,5.74e-06,5.3e-06,5.45e-06,5.08e-06,5.24e-06,5.01e-06,5.16e-06,5.1e-06,5.11e-06,5.38e-06,5.37e-06,5.78e-06,5.64e-06,5.92e-06,5.45e-06,5.42e-06,4.92e-06,4.73e-06,4.46e-06,4.21e-06,4.17e-06,3.85e-06,4.02e-06,3.72e-06,4.1e-06,3.98e-06,4.39e-06,4.41e-06,4.68e-06,4.77e-06,4.73e-06,4.85e-06,4.52e-06,4.65e-06,4.17e-06,4.3e-06,3.9e-06,4.1e-06,3.99e-06,4.2e-06,4.37e-06,4.41e-06,4.68e-06,4.49e-06,4.85e-06,4.6e-06,4.95e-06,4.75e-06,5e-06,4.81e-06,4.9e-06,5.03e-06,5.02e-06,5.39e-06,5.29e-06,5.62e-06,5.2e-06,5.41e-06,5.08e-06,5.32e-06,5.37e-06,5.56e-06,5.64e-06,5.49e-06,5.62e-06,5.22e-06,5.55e-06,5.29e-06,5.64e-06,5.41e-06,5.56e-06,5.29e-06,5.07e-06,4.83e-06,4.32e-06,4.26e-06,3.71e-06,3.84e-06,3.38e-06,3.63e-06,3.35e-06,3.56e-06,3.54e-06,3.59e-06,3.72e-06,3.52e-06,3.73e-06,3.34e-06,3.61e-06,3.15e-06,3.32e-06,3.02e-06,3.2e-06,3.25e-06,3.52e-06,4.02e-06,4.19e-06,4.88e-06,4.81e-06,5.26e-06,5e-06,5.3e-06,4.96e-06,5.15e-06,5.29e-06,5.3e-06,5.43e-06,5.12e-06,5.16e-06,4.63e-06,5.13e-06,5.03e-06,5.68e-06,5.94e-06,6.31e-06,6.32e-06,6.29e-06,6.4e-06,5.92e-06,6.1e-06,5.6e-06,5.73e-06,5.2e-06,5.33e-06,4.9e-06,4.76e-06,4.56e-06,4.21e-06,4.2e-06,3.72e-06,3.89e-06,3.37e-06,3.6e-06,3.11e-06,3.31e-06,3.09e-06,3.11e-06,3.06e-06,2.83e-06,2.89e-06,2.41e-06,2.7e-06,2.29e-06,2.69e-06,2.41e-06,2.67e-06,2.46e-06,2.54e-06,2.72e-06,2.82e-06,3.53e-06,3.76e-06,4.7e-06,4.75e-06,5.45e-06,5.3e-06,5.59e-06,5.53e-06,5.71e-06,5.91e-06,5.81e-06,6.19e-06,5.85e-06,6.26e-06,5.98e-06,6.57e-06,6.51e-06,7e-06,7.09e-06,7.24e-06,7.46e-06,7.31e-06,7.65e-06,7.21e-06,7.46e-06,6.76e-06,6.74e-06,6.02e-06,5.85e-06,5.5e-06,5.26e-06,5.21e-06,4.86e-06,5.15e-06,4.72e-06,5.24e-06,4.94e-06,5.31e-06,4.92e-06,4.9e-06,4.48e-06,4.02e-06,3.8e-06,3.11e-06,3.06e-06,2.2e-06,2.15e-06,1.28e-06,1.3e-06,8.2e-07,1.01e-06,1.22e-06,1.47e-06,2.04e-06,2.09e-06,2.77e-06,2.57e-06,3.21e-06,2.86e-06,3.14e-06,2.7e-06,2.49e-06,2.1e-06,1.71e-06,1.77e-06,1.33e-06,1.77e-06,1.4e-06,1.97e-06,1.79e-06,2.47e-06,2.63e-06,3.09e-06,3.34e-06,3.16e-06,3.25e-06,2.58e-06,2.69e-06,2e-06,2.38e-06,1.95e-06,2.26e-06,2.12e-06,2.26e-06,2.33e-06,2.2e-06,2.65e-06,2.39e-06,2.99e-06,2.63e-06,3.07e-06,2.48e-06,2.48e-06,1.89e-06,1.45e-06,1.17e-06,6.7e-07,7.6e-07,1.8e-07,5.4e-07,-2.1e-07,-8e-08,-8.3e-07,-9.3e-07,-1.35e-06,-1.53e-06,-1.54e-06,-1.79e-06,-1.38e-06,-1.84e-06,-1.19e-06,-1.42e-06,-8e-07,-1.07e-06,-7.5e-07,-1.17e-06,-1.8e-06,-2.07e-06,-2.66e-06,-2.4e-06,-2.63e-06,-1.73e-06,-1.96e-06,-1.06e-06,-8.7e-07,-1e-07,5.5e-07,1.22e-06,1.77e-06,1.45e-06,1.7e-06,6.9e-07,5.3e-07,-7e-07,-1.01e-06,-2.11e-06,-2.56e-06,-3.12e-06,-3.43e-06,-3.01e-06,-2.97e-06,-1.97e-06,-1.94e-06,-1.11e-06,-1.75e-06,-1.67e-06,-2.54e-06,-3.17e-06,-4.04e-06,-5.06e-06,-5.8e-06,-7.17e-06,-7.37e-06,-8.32e-06,-7.82e-06,-8.13e-06,-7.46e-06,-7.58e-06,-7.43e-06,-7.62e-06,-8.11e-06,-8.04e-06,-8.77e-06,-8.52e-06,-9.26e-06,-8.91e-06,-9.61e-06,-9.18e-06,-9.35e-06,-8.97e-06,-8.3e-06,-7.97e-06,-7.24e-06,-7.34e-06,-6.46e-06,-6.85e-06,-5.88e-06,-5.82e-06,-5.05e-06,-4.99e-06,-4.6e-06,-4.23e-06,-4.2e-06,-3.3e-06,-3.33e-06,-2.49e-06,-3.09e-06,-2.85e-06,-4e-06,-4.4e-06,-5.36e-06,-6.1e-06,-6.57e-06,-7.4e-06,-7.38e-06,-8.21e-06,-7.71e-06,-8.41e-06,-8.08e-06,-9.08e-06,-9.7e-06,-1.114e-05,-1.264e-05,-1.413e-05,-1.626e-05,-1.737e-05,-1.944e-05,-2.023e-05,-2.183e-05,-2.165e-05,-2.202e-05,-2.11e-05,-2.018e-05,-1.932e-05,-1.853e-05,-1.887e-05,-1.888e-05,-2.046e-05,-2.087e-05,-2.264e-05,-2.319e-05,-2.455e-05,-2.514e-05,-2.591e-05,-2.624e-05,-2.571e-05,-2.558e-05,-2.393e-05,-2.318e-05,-2.117e-05,-2.05e-05,-1.882e-05,-1.851e-05,-1.785e-05,-1.773e-05,-1.818e-05,-1.819e-05,-1.891e-05,-1.858e-05,-1.939e-05,-1.85e-05,-1.884e-05,-1.808e-05,-1.811e-05,-1.755e-05,-1.726e-05,-1.729e-05,-1.686e-05,-1.759e-05,-1.722e-05,-1.826e-05,-1.799e-05,-1.898e-05,-1.881e-05,-1.963e-05,-1.99e-05,-2.02e-05,-2.098e-05,-2.101e-05,-2.201e-05,-2.184e-05,-2.306e-05,-2.261e-05,-2.324e-05,-2.241e-05,-2.189e-05,-2.079e-05,-1.978e-05,-1.935e-05,-1.845e-05,-1.924e-05,-1.879e-05,-1.964e-05,-1.921e-05,-2.027e-05,-2.032e-05,-2.137e-05,-2.229e-05,-2.287e-05,-2.351e-05,-2.256e-05,-2.232e-05,-2.05e-05,-2.022e-05,-1.858e-05,-1.854e-05,-1.769e-05,-1.749e-05,-1.728e-05,-1.721e-05,-1.802e-05,-1.794e-05,-1.927e-05,-1.868e-05,-1.907e-05,-1.769e-05,-1.721e-05,-1.543e-05,-1.418e-05,-1.255e-05,-1.019e-05,-8.91e-06,-6.95e-06,-6.98e-06,-6.56e-06,-8.76e-06,-9.85e-06,-1.223e-05,-1.362e-05,-1.533e-05,-1.718e-05,-1.885e-05,-2.165e-05,-2.325e-05,-2.597e-05,-2.609e-05,-2.701e-05,-2.612e-05,-2.625e-05,-2.569e-05,-2.599e-05,-2.659e-05,-2.665e-05,-2.817e-05,-2.868e-05,-3.148e-05,-3.356e-05,-3.751e-05,-3.955e-05,-4.224e-05,-4.339e-05,-4.422e-05,-4.535e-05,-4.579e-05,-4.716e-05,-4.662e-05,-4.725e-05,-4.569e-05,-4.58e-05,-4.505e-05,-4.615e-05,-4.721e-05,-4.876e-05,-5.029e-05,-5.039e-05,-5.164e-05,-5.093e-05,-5.163e-05,-5.067e-05,-5.106e-05,-4.894e-05,-4.701e-05,-4.417e-05,-4.114e-05,-3.902e-05,-3.694e-05,-3.712e-05,-3.61e-05,-3.746e-05,-3.708e-05,-3.828e-05,-3.845e-05,-3.975e-05,-4.043e-05,-4.121e-05,-4.28e-05,-4.302e-05,-4.509e-05,-4.568e-05,-4.817e-05,-4.884e-05,-5.106e-05,-5.161e-05,-5.288e-05,-5.381e-05,-5.463e-05,-5.678e-05,-5.803e-05,-6.091e-05,-6.195e-05,-6.542e-05,-6.703e-05,-7e-05,-7.198e-05,-7.467e-05,-7.606e-05,-7.6e-05,-7.595e-05,-7.324e-05,-7.186e-05,-6.849e-05,-6.742e-05,-6.539e-05,-6.616e-05,-6.658e-05,-6.866e-05,-7.172e-05,-7.467e-05,-7.896e-05,-8.183e-05,-8.631e-05,-8.777e-05,-9.02e-05,-8.881e-05,-8.666e-05,-8.173e-05,-7.609e-05,-7.02e-05,-6.52e-05,-6.353e-05,-6.174e-05,-6.447e-05,-6.679e-05,-7.163e-05,-7.54e-05,-8.169e-05,-8.659e-05,-9.094e-05,-9.461e-05,-9.573e-05,-9.656e-05,-9.45e-05,-9.439e-05,-9.257e-05,-9.434e-05,-9.524e-05,-9.82e-05,-0.00010132,-0.00010541,-0.0001099,-0.00011345,-0.00011802,-0.0001186,-0.00011984,-0.00011706,-0.00011509,-0.00011157,-0.00011015,-0.00010772,-0.00010532,-0.00010325,-9.852e-05,-9.525e-05,-9.121e-05,-9.083e-05,-8.853e-05,-8.929e-05,-8.767e-05,-8.519e-05,-8.121e-05,-7.801e-05,-7.687e-05,-7.645e-05,-8.01e-05,-8.176e-05,-8.6e-05,-8.689e-05,-8.847e-05,-8.795e-05,-8.835e-05,-8.64e-05,-8.243e-05,-7.852e-05,-7.225e-05,-6.919e-05,-6.647e-05,-6.948e-05,-7.264e-05,-8.042e-05,-8.679e-05,-9.31e-05,-9.909e-05,-0.00010404,-0.00010752,-0.00010671,-0.00010528,-9.608e-05,-8.716e-05,-7.692e-05,-7.172e-05,-6.988e-05,-7.519e-05,-8.459e-05,-9.541e-05,-0.00010881,-0.00012034,-0.00013501,-0.00014732,-0.00016092,-0.0001683,-0.00017369,-0.00017158,-0.00016404,-0.00015454,-0.00014493,-0.00013814,-0.00013254,-0.00013396,-0.00013448,-0.00014134,-0.00014879,-0.00015888,-0.00016821,-0.00017794,-0.00018357,-0.00018327,-0.0001828,-0.00017772,-0.0001742,-0.00016833,-0.00016654,-0.00016167,-0.00015926,-0.00015682,-0.00015575,-0.00015679,-0.00015744,-0.0001592,-0.00015638,-0.0001538,-0.00014371,-0.00013699,-0.00013023,-0.00012654,-0.00012456,-0.00012636,-0.00012795,-0.00012495,-0.00012317,-0.00011594,-0.00010951,-9.946e-05,-9.302e-05,-8.387e-05,-7.971e-05,-7.839e-05,-7.827e-05,-8.242e-05,-8.977e-05,-0.00010168,-0.00011253,-0.00013247,-0.00015049,-0.00017061,-0.00018515,-0.00019449,-0.00019585,-0.00019141,-0.00018372,-0.00017408,-0.00017222,-0.00017051,-0.00017857,-0.00019175,-0.00021448,-0.00023855,-0.00027069,-0.00030503,-0.00033266,-0.00035464,-0.00036659,-0.00036958,-0.00035795,-0.00034428,-0.0003187,-0.00029366,-0.00026999,-0.0002517,-0.00024264,-0.00024889,-0.0002686,-0.00028993,-0.00031714,-0.00033656,-0.00035292,-0.00036001,-0.00036806,-0.00037171,-0.00037438,-0.00036846,-0.00034662,-0.00031822,-0.00028262,-0.00024914,-0.00022229,-0.00021841,-0.00021626,-0.00022255,-0.00023506,-0.00024801,-0.00026335,-0.00028903,-0.0003235,-0.00035241,-0.00038384,-0.00040279,-0.00041791,-0.00042685,-0.00043895,-0.00044571,-0.00045214,-0.00045453,-0.00044122,-0.00042514,-0.00041244,-0.00041347,-0.00041856,-0.00043658,-0.00044409,-0.00044944,-0.000452,-0.00045103,-0.00046027,-0.00048115,-0.00049334,-0.00047146,-0.00043071,-0.00035467,-0.00026197,-0.00017728,-0.00012711,-9.637e-05,-8.539e-05,-9.217e-05,-9.275e-05,-9.964e-05,-0.00012207,-0.00016707,-0.00021986,-0.00028841,-0.00033116,-0.00035327,-0.00036446,-0.00035817,-0.00035132,-0.00035658,-0.0003634,-0.00035221,-0.00035192,-0.00035409,-0.00039022,-0.00046917,-0.00057864,-0.00068912,-0.00080252,-0.000902,-0.00095185,-0.0009959,-0.0010496,-0.0010819,-0.0010538,-0.00098998,-0.00084375,-0.00063348,-0.00042787,-0.00025672,-0.00014342,-9.259e-05,-7.918e-05,-6.358e-05,-7.878e-05,-0.00011361,-0.00020813,-0.0003906,-0.00064128,-0.00088764,-0.001106,-0.0012692,-0.0013002,-0.0012396,-0.0011181,-0.00092056,-0.00066932,-0.00045685,-0.0002388,-0.00011429,-0.00020336,-0.00040758,-0.00071659,-0.0011824,-0.0016773,-0.0020685,-0.002452,-0.0027891,-0.0030079,-0.0030574,-0.0028902,-0.002473,-0.0018693,-0.0011738,-0.00047242,2.996e-05,0.00029439,0.00041224,0.00037767,0.00014181,-6.1e-05,-0.00033943,-0.00090024,-0.0014637,-0.001969,-0.0024946,-0.0027053,-0.0024504,-0.0020413,-0.0013779,-0.000585,-0.0001798,-0.00023711,-0.00059329,-0.0015668,-0.0031685,-0.0046126,-0.0056787,-0.0065659,-0.0070236,-0.0071153,-0.0074194,-0.0078432,-0.0089579,-0.010573,-0.010965,-0.011251,-0.012254,-0.011489,-0.010265,-0.01109,-0.010859,-0.0095528,-0.0093862,-0.0077882,-0.0051202,-0.0035668,-0.0016915,1.28e-05,0.0045563,0.014225,0.019849,0.022623,0.026865,0.012992,-0.025901,-0.065355,-0.11009,-0.17221,-0.18046,-0.088145,0.019766,0.15068,0.39569,0.55474,0.39569,0.15068,0.019766,-0.088145,-0.18046,-0.17221,-0.11009,-0.065355,-0.025901,0.012992,0.026865,0.022623,0.019849,0.014225,0.0045563,1.28e-05,-0.0016915,-0.0035668,-0.0051202,-0.0077882,-0.0093862,-0.0095528,-0.010859,-0.01109,-0.010265,-0.011489,-0.012254,-0.011251,-0.010965,-0.010573,-0.0089579,-0.0078432,-0.0074194,-0.0071153,-0.0070236,-0.0065659,-0.0056787,-0.0046126,-0.0031685,-0.0015668,-0.00059329,-0.00023711,-0.0001798,-0.000585,-0.0013779,-0.0020413,-0.0024504,-0.0027053,-0.0024946,-0.001969,-0.0014637,-0.00090024,-0.00033943,-6.1e-05,0.00014181,0.00037767,0.00041224,0.00029439,2.996e-05,-0.00047242,-0.0011738,-0.0018693,-0.002473,-0.0028902,-0.0030574,-0.0030079,-0.0027891,-0.002452,-0.0020685,-0.0016773,-0.0011824,-0.00071659,-0.00040758,-0.00020336,-0.00011429,-0.0002388,-0.00045685,-0.00066932,-0.00092056,-0.0011181,-0.0012396,-0.0013002,-0.0012692,-0.001106,-0.00088764,-0.00064128,-0.0003906,-0.00020813,-0.00011361,-7.878e-05,-6.358e-05,-7.918e-05,-9.259e-05,-0.00014342,-0.00025672,-0.00042787,-0.00063348,-0.00084375,-0.00098998,-0.0010538,-0.0010819,-0.0010496,-0.0009959,-0.00095185,-0.000902,-0.00080252,-0.00068912,-0.00057864,-0.00046917,-0.00039022,-0.00035409,-0.00035192,-0.00035221,-0.0003634,-0.00035658,-0.00035132,-0.00035817,-0.00036446,-0.00035327,-0.00033116,-0.00028841,-0.00021986,-0.00016707,-0.00012207,-9.964e-05,-9.275e-05,-9.217e-05,-8.539e-05,-9.637e-05,-0.00012711,-0.00017728,-0.00026197,-0.00035467,-0.00043071,-0.00047146,-0.00049334,-0.00048115,-0.00046027,-0.00045103,-0.000452,-0.00044944,-0.00044409,-0.00043658,-0.00041856,-0.00041347,-0.00041244,-0.00042514,-0.00044122,-0.00045453,-0.00045214,-0.00044571,-0.00043895,-0.00042685,-0.00041791,-0.00040279,-0.00038384,-0.00035241,-0.0003235,-0.00028903,-0.00026335,-0.00024801,-0.00023506,-0.00022255,-0.00021626,-0.00021841,-0.00022229,-0.00024914,-0.00028262,-0.00031822,-0.00034662,-0.00036846,-0.00037438,-0.00037171,-0.00036806,-0.00036001,-0.00035292,-0.00033656,-0.00031714,-0.00028993,-0.0002686,-0.00024889,-0.00024264,-0.0002517,-0.00026999,-0.00029366,-0.0003187,-0.00034428,-0.00035795,-0.00036958,-0.00036659,-0.00035464,-0.00033266,-0.00030503,-0.00027069,-0.00023855,-0.00021448,-0.00019175,-0.00017857,-0.00017051,-0.00017222,-0.00017408,-0.00018372,-0.00019141,-0.00019585,-0.00019449,-0.00018515,-0.00017061,-0.00015049,-0.00013247,-0.00011253,-0.00010168,-8.977e-05,-8.242e-05,-7.827e-05,-7.839e-05,-7.971e-05,-8.387e-05,-9.302e-05,-9.946e-05,-0.00010951,-0.00011594,-0.00012317,-0.00012495,-0.00012795,-0.00012636,-0.00012456,-0.00012654,-0.00013023,-0.00013699,-0.00014371,-0.0001538,-0.00015638,-0.0001592,-0.00015744,-0.00015679,-0.00015575,-0.00015682,-0.00015926,-0.00016167,-0.00016654,-0.00016833,-0.0001742,-0.00017772,-0.0001828,-0.00018327,-0.00018357,-0.00017794,-0.00016821,-0.00015888,-0.00014879,-0.00014134,-0.00013448,-0.00013396,-0.00013254,-0.00013814,-0.00014493,-0.00015454,-0.00016404,-0.00017158,-0.00017369,-0.0001683,-0.00016092,-0.00014732,-0.00013501,-0.00012034,-0.00010881,-9.541e-05,-8.459e-05,-7.519e-05,-6.988e-05,-7.172e-05,-7.692e-05,-8.716e-05,-9.608e-05,-0.00010528,-0.00010671,-0.00010752,-0.00010404,-9.909e-05,-9.31e-05,-8.679e-05,-8.042e-05,-7.264e-05,-6.948e-05,-6.647e-05,-6.919e-05,-7.225e-05,-7.852e-05,-8.243e-05,-8.64e-05,-8.835e-05,-8.795e-05,-8.847e-05,-8.689e-05,-8.6e-05,-8.176e-05,-8.01e-05,-7.645e-05,-7.687e-05,-7.801e-05,-8.121e-05,-8.519e-05,-8.767e-05,-8.929e-05,-8.853e-05,-9.083e-05,-9.121e-05,-9.525e-05,-9.852e-05,-0.00010325,-0.00010532,-0.00010772,-0.00011015,-0.00011157,-0.00011509,-0.00011706,-0.00011984,-0.0001186,-0.00011802,-0.00011345,-0.0001099,-0.00010541,-0.00010132,-9.82e-05,-9.524e-05,-9.434e-05,-9.257e-05,-9.439e-05,-9.45e-05,-9.656e-05,-9.573e-05,-9.461e-05,-9.094e-05,-8.659e-05,-8.169e-05,-7.54e-05,-7.163e-05,-6.679e-05,-6.447e-05,-6.174e-05,-6.353e-05,-6.52e-05,-7.02e-05,-7.609e-05,-8.173e-05,-8.666e-05,-8.881e-05,-9.02e-05,-8.777e-05,-8.631e-05,-8.183e-05,-7.896e-05,-7.467e-05,-7.172e-05,-6.866e-05,-6.658e-05,-6.616e-05,-6.539e-05,-6.742e-05,-6.849e-05,-7.186e-05,-7.324e-05,-7.595e-05,-7.6e-05,-7.606e-05,-7.467e-05,-7.198e-05,-7e-05,-6.703e-05,-6.542e-05,-6.195e-05,-6.091e-05,-5.803e-05,-5.678e-05,-5.463e-05,-5.381e-05,-5.288e-05,-5.161e-05,-5.106e-05,-4.884e-05,-4.817e-05,-4.568e-05,-4.509e-05,-4.302e-05,-4.28e-05,-4.121e-05,-4.043e-05,-3.975e-05,-3.845e-05,-3.828e-05,-3.708e-05,-3.746e-05,-3.61e-05,-3.712e-05,-3.694e-05,-3.902e-05,-4.114e-05,-4.417e-05,-4.701e-05,-4.894e-05,-5.106e-05,-5.067e-05,-5.163e-05,-5.093e-05,-5.164e-05,-5.039e-05,-5.029e-05,-4.876e-05,-4.721e-05,-4.615e-05,-4.505e-05,-4.58e-05,-4.569e-05,-4.725e-05,-4.662e-05,-4.716e-05,-4.579e-05,-4.535e-05,-4.422e-05,-4.339e-05,-4.224e-05,-3.955e-05,-3.751e-05,-3.356e-05,-3.148e-05,-2.868e-05,-2.817e-05,-2.665e-05,-2.659e-05,-2.599e-05,-2.569e-05,-2.625e-05,-2.612e-05,-2.701e-05,-2.609e-05,-2.597e-05,-2.325e-05,-2.165e-05,-1.885e-05,-1.718e-05,-1.533e-05,-1.362e-05,-1.223e-05,-9.85e-06,-8.76e-06,-6.56e-06,-6.98e-06,-6.95e-06,-8.91e-06,-1.019e-05,-1.255e-05,-1.418e-05,-1.543e-05,-1.721e-05,-1.769e-05,-1.907e-05,-1.868e-05,-1.927e-05,-1.794e-05,-1.802e-05,-1.721e-05,-1.728e-05,-1.749e-05,-1.769e-05,-1.854e-05,-1.858e-05,-2.022e-05,-2.05e-05,-2.232e-05,-2.256e-05,-2.351e-05,-2.287e-05,-2.229e-05,-2.137e-05,-2.032e-05,-2.027e-05,-1.921e-05,-1.964e-05,-1.879e-05,-1.924e-05,-1.845e-05,-1.935e-05,-1.978e-05,-2.079e-05,-2.189e-05,-2.241e-05,-2.324e-05,-2.261e-05,-2.306e-05,-2.184e-05,-2.201e-05,-2.101e-05,-2.098e-05,-2.02e-05,-1.99e-05,-1.963e-05,-1.881e-05,-1.898e-05,-1.799e-05,-1.826e-05,-1.722e-05,-1.759e-05,-1.686e-05,-1.729e-05,-1.726e-05,-1.755e-05,-1.811e-05,-1.808e-05,-1.884e-05,-1.85e-05,-1.939e-05,-1.858e-05,-1.891e-05,-1.819e-05,-1.818e-05,-1.773e-05,-1.785e-05,-1.851e-05,-1.882e-05,-2.05e-05,-2.117e-05,-2.318e-05,-2.393e-05,-2.558e-05,-2.571e-05,-2.624e-05,-2.591e-05,-2.514e-05,-2.455e-05,-2.319e-05,-2.264e-05,-2.087e-05,-2.046e-05,-1.888e-05,-1.887e-05,-1.853e-05,-1.932e-05,-2.018e-05,-2.11e-05,-2.202e-05,-2.165e-05,-2.183e-05,-2.023e-05,-1.944e-05,-1.737e-05,-1.626e-05,-1.413e-05,-1.264e-05,-1.114e-05,-9.7e-06,-9.08e-06,-8.08e-06,-8.41e-06,-7.71e-06,-8.21e-06,-7.38e-06,-7.4e-06,-6.57e-06,-6.1e-06,-5.36e-06,-4.4e-06,-4e-06,-2.85e-06,-3.09e-06,-2.49e-06,-3.33e-06,-3.3e-06,-4.2e-06,-4.23e-06,-4.6e-06,-4.99e-06,-5.05e-06,-5.82e-06,-5.88e-06,-6.85e-06,-6.46e-06,-7.34e-06,-7.24e-06,-7.97e-06,-8.3e-06,-8.97e-06,-9.35e-06,-9.18e-06,-9.61e-06,-8.91e-06,-9.26e-06,-8.52e-06,-8.77e-06,-8.04e-06,-8.11e-06,-7.62e-06,-7.43e-06,-7.58e-06,-7.46e-06,-8.13e-06,-7.82e-06,-8.32e-06,-7.37e-06,-7.17e-06,-5.8e-06,-5.06e-06,-4.04e-06,-3.17e-06,-2.54e-06,-1.67e-06,-1.75e-06,-1.11e-06,-1.94e-06,-1.97e-06,-2.97e-06,-3.01e-06,-3.43e-06,-3.12e-06,-2.56e-06,-2.11e-06,-1.01e-06,-7e-07,5.3e-07,6.9e-07,1.7e-06,1.45e-06,1.77e-06,1.22e-06,5.5e-07,-1e-07,-8.7e-07,-1.06e-06,-1.96e-06,-1.73e-06,-2.63e-06,-2.4e-06,-2.66e-06,-2.07e-06,-1.8e-06,-1.17e-06,-7.5e-07,-1.07e-06,-8e-07,-1.42e-06,-1.19e-06,-1.84e-06,-1.38e-06,-1.79e-06,-1.54e-06,-1.53e-06,-1.35e-06,-9.3e-07,-8.3e-07,-8e-08,-2.1e-07,5.4e-07,1.8e-07,7.6e-07,6.7e-07,1.17e-06,1.45e-06,1.89e-06,2.48e-06,2.48e-06,3.07e-06,2.63e-06,2.99e-06,2.39e-06,2.65e-06,2.2e-06,2.33e-06,2.26e-06,2.12e-06,2.26e-06,1.95e-06,2.38e-06,2e-06,2.69e-06,2.58e-06,3.25e-06,3.16e-06,3.34e-06,3.09e-06,2.63e-06,2.47e-06,1.79e-06,1.97e-06,1.4e-06,1.77e-06,1.33e-06,1.77e-06,1.71e-06,2.1e-06,2.49e-06,2.7e-06,3.14e-06,2.86e-06,3.21e-06,2.57e-06,2.77e-06,2.09e-06,2.04e-06,1.47e-06,1.22e-06,1.01e-06,8.2e-07,1.3e-06,1.28e-06,2.15e-06,2.2e-06,3.06e-06,3.11e-06,3.8e-06,4.02e-06,4.48e-06,4.9e-06,4.92e-06,5.31e-06,4.94e-06,5.24e-06,4.72e-06,5.15e-06,4.86e-06,5.21e-06,5.26e-06,5.5e-06,5.85e-06,6.02e-06,6.74e-06,6.76e-06,7.46e-06,7.21e-06,7.65e-06,7.31e-06,7.46e-06,7.24e-06,7.09e-06,7e-06,6.51e-06,6.57e-06,5.98e-06,6.26e-06,5.85e-06,6.19e-06,5.81e-06,5.91e-06,5.71e-06,5.53e-06,5.59e-06,5.3e-06,5.45e-06,4.75e-06,4.7e-06,3.76e-06,3.53e-06,2.82e-06,2.72e-06,2.54e-06,2.46e-06,2.67e-06,2.41e-06,2.69e-06,2.29e-06,2.7e-06,2.41e-06,2.89e-06,2.83e-06,3.06e-06,3.11e-06,3.09e-06,3.31e-06,3.11e-06,3.6e-06,3.37e-06,3.89e-06,3.72e-06,4.2e-06,4.21e-06,4.56e-06,4.76e-06,4.9e-06,5.33e-06,5.2e-06,5.73e-06,5.6e-06,6.1e-06,5.92e-06,6.4e-06,6.29e-06,6.32e-06,6.31e-06,5.94e-06,5.68e-06,5.03e-06,5.13e-06,4.63e-06,5.16e-06,5.12e-06,5.43e-06,5.3e-06,5.29e-06,5.15e-06,4.96e-06,5.3e-06,5e-06,5.26e-06,4.81e-06,4.88e-06,4.19e-06,4.02e-06,3.52e-06,3.25e-06,3.2e-06,3.02e-06,3.32e-06,3.15e-06,3.61e-06,3.34e-06,3.73e-06,3.52e-06,3.72e-06,3.59e-06,3.54e-06,3.56e-06,3.35e-06,3.63e-06,3.38e-06,3.84e-06,3.71e-06,4.26e-06,4.32e-06,4.83e-06,5.07e-06,5.29e-06,5.56e-06,5.41e-06,5.64e-06,5.29e-06,5.55e-06,5.22e-06,5.62e-06,5.49e-06,5.64e-06,5.56e-06,5.37e-06,5.32e-06,5.08e-06,5.41e-06,5.2e-06,5.62e-06,5.29e-06,5.39e-06,5.02e-06,5.03e-06,4.9e-06,4.81e-06,5e-06,4.75e-06,4.95e-06,4.6e-06,4.85e-06,4.49e-06,4.68e-06,4.41e-06,4.37e-06,4.2e-06,3.99e-06,4.1e-06,3.9e-06,4.3e-06,4.17e-06,4.65e-06,4.52e-06,4.85e-06,4.73e-06,4.77e-06,4.68e-06,4.41e-06,4.39e-06,3.98e-06,4.1e-06,3.72e-06,4.02e-06,3.85e-06,4.17e-06,4.21e-06,4.46e-06,4.73e-06,4.92e-06,5.42e-06,5.45e-06,5.92e-06,5.64e-06,5.78e-06,5.37e-06,5.38e-06,5.11e-06,5.1e-06,5.16e-06,5.01e-06,5.24e-06,5.08e-06,5.45e-06,5.3e-06,5.74e-06,5.61e-06,5.79e-06,5.68e-06,5.61e-06,5.57e-06,5.37e-06,5.51e-06,5.16e-06,5.34e-06,4.95e-06,5.08e-06,4.81e-06,4.95e-06,4.91e-06,4.96e-06,5.07e-06,4.89e-06,5.04e-06,4.68e-06,4.84e-06,4.5e-06,4.71e-06,4.47e-06,4.53e-06,4.36e-06,4.16e-06,4.08e-06,3.74e-06,3.82e-06,3.46e-06,3.67e-06,3.41e-06,3.63e-06,3.5e-06,3.66e-06,3.68e-06,3.69e-06,3.89e-06,3.77e-06,4.04e-06,3.85e-06,4.12e-06,3.83e-06,3.98e-06,3.79e-06,3.81e-06,3.76e-06,3.71e-06,3.83e-06,3.63e-06,3.89e-06,3.7e-06,4.06e-06,4e-06,4.3e-06,4.19e-06,4.21e-06,4.06e-06,3.76e-06,3.71e-06,3.35e-06,3.45e-06,3.14e-06,3.35e-06,3.13e-06,3.32e-06,3.23e-06,3.29e-06,3.37e-06,3.34e-06,3.57e-06,3.47e-06,3.75e-06,3.5e-06,3.72e-06,3.43e-06,3.45e-06,3.25e-06,3.15e-06,3.06e-06,2.89e-06,3e-06,2.74e-06,2.96e-06,2.71e-06,2.93e-06,2.74e-06,2.84e-06,2.79e-06,2.86e-06,2.93e-06,2.94e-06,3.42e-06,3.47e-06,3.96e-06,4.06e-06,4.33e-06,3.83e-06,3.65e-06,3.37e-06,3.23e-06,3.58e-06,3.85e-06,4.09e-06,3.8e-06,3.76e-06,3.09e-06,3.07e-06,3e-06,3.23e-06,3.36e-06,3.59e-06,3.77e-06,3.55e-06,3.58e-06,3.2e-06,3.2e-06,2.85e-06,2.97e-06,2.79e-06,2.82e-06,2.68e-06,2.54e-06,2.53e-06,2.29e-06,2.4e-06,2.15e-06,2.28e-06,2e-06,2.11e-06,1.92e-06,1.94e-06,1.88e-06,1.8e-06,1.88e-06,1.73e-06,1.92e-06,1.76e-06,2.02e-06,1.87e-06,2.06e-06,1.96e-06,2e-06,1.97e-06,1.91e-06,2.1e-06,2.02e-06,2.26e-06,2.06e-06,2.15e-06,1.83e-06,1.93e-06,1.85e-06,1.98e-06,2.17e-06,2.22e-06,2.37e-06,2.24e-06,2.46e-06,2.28e-06,2.52e-06,2.43e-06,2.59e-06,2.48e-06,2.46e-06,2.41e-06,2.25e-06,2.32e-06,2.09e-06,2.2e-06,1.93e-06,2.04e-06,1.85e-06,1.97e-06,1.95e-06,2.06e-06,2.2e-06,2.17e-06,2.33e-06,2.14e-06,2.25e-06,1.97e-06,2.07e-06,1.85e-06,1.89e-06,1.79e-06,1.74e-06,1.74e-06,1.61e-06,1.74e-06,1.58e-06,1.79e-06,1.63e-06,1.86e-06,1.79e-06,1.92e-06,1.91e-06,1.88e-06,1.88e-06,1.71e-06,1.79e-06,1.58e-06,1.77e-06,1.63e-06,1.79e-06,1.71e-06,1.86e-06,1.89e-06,1.92e-06,2.09e-06,2.02e-06,2.18e-06,2.01e-06,2.18e-06,1.98e-06,2.12e-06,2.01e-06,2.04e-06,2e-06,1.91e-06,1.93e-06,1.77e-06,1.92e-06,1.77e-06,2.01e-06,1.95e-06,2.19e-06,2.19e-06,2.33e-06,2.39e-06,2.38e-06,2.5e-06,2.39e-06,2.52e-06,2.29e-06,2.35e-06,2.07e-06,2.07e-06,1.9e-06,1.88e-06,1.89e-06,1.91e-06,2.11e-06,2.11e-06,2.4e-06,2.37e-06,2.6e-06,2.51e-06,2.62e-06,2.5e-06,2.45e-06,2.36e-06,2.14e-06,2.11e-06,1.88e-06,1.94e-06,1.75e-06,1.92e-06,1.79e-06,1.9e-06,1.92e-06,2.02e-06,2.18e-06,2.27e-06,2.48e-06,2.34e-06,2.4e-06,2.06e-06,2.01e-06,1.77e-06,1.82e-06,1.83e-06,2.02e-06,2.28e-06,2.36e-06,2.61e-06,2.54e-06,2.71e-06,2.59e-06,2.77e-06,2.78e-06,3.03e-06,3.04e-06,3.03e-06,3.14e-06,2.97e-06,2.94e-06,2.82e-06,2.93e-06,2.68e-06,2.77e-06,2.57e-06,2.45e-06,2.3e-06,2.13e-06,2.08e-06,1.76e-06,1.38e-06,9e-07,8.3e-07,3.6e-07,6.9e-07,1.6e-06,2.62e-06,3.59e-06,4.85e-06,5.15e-06,3.74e-06,2.59e-06,1.47e-06,9e-07,1.69e-06,3.19e-06,3.23e-06,2.87e-06,1.8e-06,-1e-07,-9.4e-07,-7e-07,-9e-08,5.2e-07,1.81e-06,2.42e-06,2.66e-06,2.68e-06,2.62e-06,2.25e-06,1.95e-06,1.91e-06,1.7e-06,1.75e-06,1.44e-06,1.42e-06,1.25e-06,1.21e-06,1.09e-06,1.15e-06,1.07e-06,9e-07,1.01e-06,8.6e-07,9.1e-07,8.1e-07,9.4e-07,8e-07,8.6e-07,7.8e-07,8e-07,8.7e-07,8.8e-07,1.07e-06,1.11e-06,1.35e-06,1.28e-06,1.46e-06,1.41e-06,1.47e-06,1.4e-06,1.37e-06,1.31e-06,1.19e-06,1.32e-06,1.27e-06,1.5e-06,1.54e-06,1.76e-06,1.71e-06,1.84e-06,1.85e-06,1.85e-06,1.88e-06,1.79e-06,1.79e-06,1.56e-06,1.57e-06,1.36e-06,1.39e-06,1.28e-06,1.31e-06,1.28e-06,1.26e-06,1.29e-06,1.24e-06,1.4e-06,1.35e-06,1.53e-06,1.48e-06,1.6e-06,1.53e-06,1.57e-06,1.52e-06,1.46e-06,1.47e-06,1.36e-06,1.44e-06,1.34e-06,1.47e-06,1.37e-06,1.47e-06,1.4e-06,1.42e-06,1.4e-06,1.38e-06,1.47e-06,1.45e-06,1.6e-06,1.52e-06,1.6e-06,1.44e-06,1.46e-06,1.34e-06,1.32e-06,1.3e-06,1.23e-06,1.24e-06,1.12e-06,1.19e-06,1.08e-06,1.21e-06,1.18e-06,1.3e-06,1.28e-06,1.33e-06,1.37e-06,1.37e-06,1.51e-06,1.49e-06,1.62e-06,1.52e-06,1.59e-06,1.46e-06,1.5e-06,1.44e-06,1.47e-06,1.51e-06,1.49e-06,1.57e-06,1.49e-06,1.58e-06,1.48e-06,1.58e-06,1.52e-06,1.61e-06,1.59e-06,1.59e-06,1.59e-06,1.51e-06,1.53e-06,1.4e-06,1.45e-06,1.31e-06,1.36e-06,1.27e-06,1.31e-06,1.27e-06,1.26e-06,1.27e-06,1.21e-06,1.28e-06,1.19e-06,1.3e-06,1.24e-06,1.32e-06,1.26e-06,1.32e-06,1.3e-06,1.29e-06,1.34e-06,1.27e-06,1.28e-06,1.14e-06,1.2e-06,1.08e-06,1.18e-06,1.17e-06,1.23e-06,1.22e-06,1.19e-06,1.18e-06,1.09e-06,1.16e-06,1.06e-06,1.13e-06,1.05e-06,1.12e-06,1.05e-06,1.06e-06,1.03e-06,9.9e-07,1.03e-06,9.6e-07,1.02e-06,9.3e-07,1.01e-06,9e-07,9.5e-07,8.9e-07,8.9e-07,8.7e-07,8.5e-07,8.9e-07,8.3e-07,9.3e-07,8.4e-07,9.2e-07,8.5e-07,9.4e-07,9.9e-07,1.1e-06,1.18e-06,1.23e-06,1.26e-06,1.02e-06,9.1e-07,6.3e-07,4.5e-07,3.1e-07,6e-07,8.1e-07,1.01e-06,1.16e-06,9.4e-07,6.9e-07,5.7e-07,7.2e-07,8.5e-07,1.32e-06,1.49e-06,1.5e-06,1.42e-06,1.31e-06,1.12e-06,9.4e-07,9.6e-07,8.5e-07,9e-07,8.6e-07,9.5e-07,9e-07,9.7e-07,9.6e-07,9.9e-07,1.03e-06,9.8e-07,1.06e-06,1e-06,1.06e-06,1.01e-06,1.11e-06,1.06e-06,1.11e-06,1.09e-06,1.05e-06,1.04e-06,9.7e-07,1.01e-06,9.4e-07,1.02e-06,9.3e-07,9.7e-07,8.6e-07,8.2e-07,7.4e-07,6.7e-07,6.6e-07,6.3e-07,7.3e-07,7e-07,8e-07,7.3e-07,7.5e-07,6.8e-07,6.8e-07,6.7e-07,6.6e-07,6.9e-07,6.1e-07,6.4e-07,5.6e-07,6.1e-07,5.5e-07,6.3e-07,6.2e-07,6.6e-07,6.9e-07,7e-07,7.5e-07,7.2e-07,7.9e-07,7.1e-07,7.4e-07,6.3e-07,6.3e-07,5.6e-07,5.5e-07,5.5e-07,5.4e-07,6e-07,5.8e-07,6.6e-07,6.1e-07,6.9e-07,6.4e-07,6.9e-07,6.7e-07,6.7e-07,6.6e-07,5.9e-07,5.8e-07,4.8e-07,4.9e-07,3.9e-07,4.3e-07,3.8e-07,4.3e-07,4.2e-07,4.4e-07,4.6e-07,4.2e-07,4.6e-07,4e-07,4.4e-07,3.8e-07,4.3e-07,3.6e-07,3.8e-07,3.5e-07,3.4e-07,3.5e-07,3.2e-07,3.6e-07,2.9e-07,3.4e-07,2.9e-07,3.4e-07,3.2e-07,3.7e-07,3.6e-07,3.6e-07,3.6e-07,3e-07,3.3e-07,2.7e-07,3.2e-07,2.8e-07,3.3e-07,3.1e-07,3.3e-07,3.2e-07,3e-07,3.2e-07,2.8e-07,3.4e-07,3.1e-07,3.8e-07,3.3e-07,3.7e-07,3.2e-07,3.2e-07,2.9e-07,2.6e-07,2.7e-07,2.3e-07,2.7e-07,2.1e-07,2.5e-07,1.8e-07,2.2e-07,1.8e-07,1.9e-07,2e-07,2e-07,2.2e-07,1.8e-07,2.5e-07,2e-07,2.6e-07,2.3e-07,2.6e-07,1.8e-07,1.5e-07,1.1e-07,6e-08,1.1e-07,1e-07,1.6e-07,1e-07,1.3e-07,5e-08,6e-08,4e-08,6e-08,8e-08,9e-08,1.3e-07,9e-08,1.3e-07,7e-08,1e-07,5e-08,8e-08,6e-08,6e-08,6e-08,3e-08,5e-08,1e-08,5e-08,-0,5e-08,1e-08,5e-08,5e-08,5e-08,6e-08,3e-08,6e-08,4e-08,1e-07,7e-08,1.4e-07,1e-07,7e-08,0,-6e-08,-1.3e-07,-1.8e-07,-9e-08,-7e-08,2e-08,1e-08,-1e-08,-1.4e-07,-1.4e-07,-1.5e-07,-1.1e-07,1e-08,4e-08,6e-08,-0,1e-08,-9e-08,-9e-08,-1.2e-07,-1.2e-07,-1.4e-07,-1.4e-07,-1.2e-07,-1.5e-07,-1e-07,-1.3e-07,-8e-08,-1.2e-07,-9e-08,-1.1e-07,-1e-07,-1e-07,-9e-08,-4e-08,-6e-08,-0,-3e-08,0,-4e-08,-1e-08,-3e-08,-1e-08,-1e-08,-2e-08,-1e-08,-6e-08,-5e-08,-1.1e-07,-1e-07,-1.4e-07,-1e-07,-9e-08,-6e-08,-4e-08,-5e-08,-4e-08,-8e-08,-5e-08,-9e-08,-5e-08,-8e-08,-8e-08,-1.1e-07,-1.1e-07,-1.2e-07,-1.4e-07,-1.1e-07,-1.4e-07,-1e-07,-1.2e-07,-8e-08,-1e-07,-7e-08,-8e-08,-8e-08,-8e-08,-1.1e-07,-1.1e-07,-1.5e-07,-1.3e-07,-1.6e-07,-1.2e-07,-1.2e-07,-9e-08,-8e-08,-7e-08,-5e-08,-7e-08,-4e-08,-6e-08,-2e-08,-5e-08,-3e-08,-7e-08,-7e-08,-1e-07,-1.1e-07,-1.1e-07,-1.3e-07,-9e-08,-1.1e-07,-7e-08,-1e-07,-8e-08,-1.1e-07,-1e-07,-1.1e-07,-1.1e-07,-9e-08,-1.2e-07,-1.1e-07,-1.4e-07,-1.1e-07,-1.4e-07,-1.1e-07,-1.3e-07,-1.3e-07,-1.4e-07,-1.5e-07,-1.4e-07,-1.4e-07,-1e-07,-1.3e-07,-1e-07,-1.4e-07,-1.3e-07,-1.6e-07,-1.5e-07,-1.5e-07,-1.5e-07,-1.3e-07,-1.5e-07,-1.2e-07,-1.5e-07,-1.2e-07,-1.5e-07,-1.2e-07,-1.3e-07,-1e-07,-9e-08,-9e-08,-7e-08,-9e-08,-7e-08,-1e-07,-8e-08,-1e-07,-8e-08,-1e-07,-9e-08,-9e-08,-1.1e-07,-9e-08,-1.2e-07,-9e-08,-1.2e-07,-8e-08,-1.1e-07,-9e-08,-8e-08,-7e-08,-5e-08,-3e-08,-1e-08,-6e-08,-6e-08,-1e-07,-9e-08,-1e-07,-6e-08,-6e-08,-6e-08,-7e-08,-1.2e-07,-1.2e-07,-1.5e-07,-1.2e-07,-1.4e-07,-1e-07,-1e-07,-8e-08,-9e-08,-1e-07,-1e-07,-1.2e-07,-1e-07,-1.2e-07,-1e-07,-1.3e-07,-1.1e-07,-1.4e-07,-1.3e-07,-1.4e-07,-1.5e-07,-1.3e-07,-1.4e-07,-1.1e-07,-1.2e-07,-9e-08,-1.1e-07,-9e-08,-1e-07,-9e-08,-8e-08,-7e-08,-5e-08,-6e-08,-6e-08,-1e-07,-9e-08,-1.4e-07,-1.3e-07,-1.2e-07,-8e-08,-6e-08,-5e-08,-5e-08,-1e-07,-9e-08,-1.2e-07,-8e-08,-6e-08,-2e-08,-3e-08,-3e-08,-4e-08,-6e-08,-6e-08,-8e-08,-6e-08,-9e-08,-7e-08,-9e-08,-8e-08,-8e-08,-8e-08,-8e-08,-9e-08,-8e-08,-1e-07,-8e-08,-1.1e-07,-8e-08,-9e-08,-6e-08,-6e-08,-5e-08,-5e-08,-6e-08,-5e-08,-6e-08,-4e-08,-5e-08,-2e-08,-4e-08,-4e-08,-5e-08,-6e-08,-6e-08,-8e-08,-5e-08,-6e-08,-3e-08,-4e-08,-2e-08,-4e-08,-3e-08,-4e-08,-4e-08,-2e-08,-3e-08,-2e-08,-5e-08,-3e-08,-6e-08,-4e-08,-5e-08,-4e-08,-4e-08,-5e-08,-4e-08,-5e-08,-3e-08,-4e-08,-2e-08,-5e-08,-4e-08,-6e-08,-7e-08,-7e-08,-8e-08,-7e-08,-7e-08,-5e-08,-6e-08,-4e-08,-5e-08,-4e-08,-4e-08,-3e-08,-3e-08,-3e-08,-2e-08,-4e-08,-4e-08,-6e-08,-5e-08,-7e-08,-6e-08,-6e-08,-5e-08,-4e-08,-4e-08,-3e-08,-4e-08,-2e-08,-4e-08,-2e-08,-3e-08,-3e-08,-4e-08,-3e-08,-3e-08,-3e-08,-2e-08,-3e-08,-2e-08,-4e-08,-3e-08,-4e-08,-2e-08,-2e-08,-1e-08,-1e-08,-3e-08,-3e-08,-5e-08,-4e-08,-5e-08,-3e-08,-4e-08,-2e-08,-2e-08,-2e-08,-1e-08,-3e-08,-1e-08,-2e-08,0,-1e-08,1e-08,-0,0,-1e-08,-1e-08,-1e-08,-2e-08,-1e-08,-2e-08,-0,-2e-08,-1e-08,-3e-08,-2e-08,-3e-08,-3e-08,-3e-08,-4e-08,-3e-08,-3e-08,0,0,4e-08,4e-08,3e-08,1e-08,-1e-08,-2e-08,-2e-08,3e-08,2e-08,3e-08,-0,-2e-08,-6e-08,-5e-08,-5e-08,-4e-08,-1e-08,-1e-08,2e-08,0,2e-08,-0,0,-1e-08,-0,-1e-08,-2e-08,-1e-08,-3e-08,-3e-08,-5e-08,-3e-08,-5e-08,-3e-08,-4e-08,-3e-08,-2e-08,-3e-08,-2e-08,-3e-08,-1e-08,-3e-08,-0,-1e-08,-0,-1e-08,-2e-08,-3e-08,-5e-08,-4e-08,-5e-08
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tq.dat	Sun Feb 02 22:35:48 2014 +0000
@@ -0,0 +1,1 @@
+37.038,26.436,17.727,12.824,9.8853,7.7397,6.1369,5.3208,4.712,4.0702,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73,3.73
--- a/utils.py	Sat Jan 25 20:00:38 2014 +0000
+++ b/utils.py	Sun Feb 02 22:35:48 2014 +0000
@@ -4,6 +4,7 @@
 Packaged dependencies:
     * erb.dat
     * outMidFir.dat
+    * tq.dat
     
 External dependencies:
     * scipy
@@ -32,7 +33,7 @@
     Dependencies:
         * erb.dat (place in the same folder as utils.pyc)
 	"""
-	# read our data from a text file
+	# read data from a text file
 	data=np.loadtxt("erb.dat",delimiter=",")
 
 	# load centre frequencies from the first column into fc
@@ -57,21 +58,100 @@
         * outMidFir.dat (place in the same folder as utils.pyc)
     """
 
-    b=np.loadtxt("outMidFir.dat", delimiter=",")
+    b=np.array(np.loadtxt("outMidFir.dat", delimiter=","))
 
     return b
 
+def load_sl_parameters():
+    """
+    Loads the loudness parameters for each ERB fc into a tuple. A shortcut for load_tq_data(), load_A_data() and load_alpha_data().
+        
+    Parameters:
+        NONE
+        
+    Returns:
+        * tq (type: numpy array of floats) - a vector of length 39 containing the threshold excitation
+        intensity in quietat each ERB centre frequency
+        * A (type: numpy array of floats) - a vector of length 39 containing the parameter A for each ERB fc
+        * alpha (type: numpy array of floats) - a vector of length 39 containing the parameter alpha for each ERB fc
+        
+    Dependencies:
+        * tq.dat (place in the same folder as utils.pyc)
+        * A.dat (place in the same folder as utils.pyc)
+        * alpha.dat (place in the same folder as utils.pyc)
+    """
+    tq = load_tq_data()
+    A = load_A_data()
+    alpha = load_alpha_data()
+
+    return tq, A, alpha
+
+def load_tq_data():
+    """
+    Loads and returns the excitation threshold of quiet for each ERB fc.
+    
+    Parameters:
+        NONE
+    
+    Returns:
+        * tq (type: numpy array of floats) - a vector of length 39 containing the threshold excitation
+        intensity in quietat each ERB centre frequency
+    
+    Dependencies:
+        * tq.dat (place in the same folder as utils.pyc)
+    """
+
+    tq = np.array(np.loadtxt("tq.dat",delimiter=","))
+
+    return tq
+
+def load_A_data():
+    """
+    Loads and returns the excitation A parameters for each ERB fc.
+        
+    Parameters:
+        NONE
+        
+    Returns:
+        * A (type: numpy array of floats) - a vector of length 39 containing the parameter A for each ERB fc
+        
+    Dependencies:
+        * A.dat (place in the same folder as utils.pyc)
+    """
+    
+    A = np.array(np.loadtxt("A.dat",delimiter=","))
+    
+    return A
+
+def load_alpha_data():
+    """
+    Loads and returns the excitation alpha parameters for each ERB fc.
+        
+    Parameters:
+        NONE
+        
+    Returns:
+        * alpha (type: numpy array of floats) - a vector of length 39 containing the parameter alpha for each ERB fc
+        
+    Dependencies:
+        * alpha.dat (place in the same folder as utils.pyc)
+    """
+    
+    alpha = np.array(np.loadtxt("alpha.dat",delimiter=","))
+    
+    return alpha
+
 def exp_sequence(start, stop, n, base=2):
     """
     Creates a linear sequence with n points starting from start and ending at stop. For each
-    element in the sequence, e, the output sequence is 2^e, generating an exponential sequence
+    element in the sequence, i, the output sequence is 2**i, generating an exponential sequence
     with base 2.
     
     Parameters:
         * start (type: numerical int) - determines the first element of the sequence, i.e.,
-            base^start. (Required)
+            base**start. (Required)
         * stop (type: numerical int) - determines the last element of the sequence, i.e.,
-            base^stop. (Required)
+            base**stop. (Required)
         * n (type = numerical int) - determines the number of elements in the sequence. (Required)
         * base (type: numerical) - determines the exponential base. (Optional; Default = 2)
     
@@ -97,7 +177,7 @@
     """
 
     fs,data = wave.read(file)
-    data = np.array(int16_to_nfloat(data))
+    data = np.array(int_to_nfloat(data))
 
     return fs,data
 
@@ -105,7 +185,7 @@
     """
     Unnormalises the audio data to a specified integer precision and converts to an int, then 
     writes the audio data to a wav file. (E.g., if 16-bit precision, then highest amplitude
-    is equal to 2^16).
+    is equal to 2**16).
         
     Parameters:
         * file (type: string) - the name of the wav file to write to. (Required)
@@ -154,8 +234,9 @@
     """
 
     if(xscale.lower() == "log"): plt.gca().set_xscale('log')
-    if(xscale.lower() == "log"): plt.gca().set_yscale('log')
-
+    if(yscale.lower() == "log"): plt.gca().set_yscale('log')
+    
+    x = np.array(x)
     fftx = np.absolute(fft.fft(x))
     plt.plot(range(np.shape(x)[0]),fftx)
     if(show):
@@ -165,7 +246,29 @@
 
     return
 
-def int_to_nfloat(input, type=np.float32):
+def plot_waveform(x, show = True):
+    """
+    Plots the waveform of signal x. If the figure is not shown, the current plot is held to allow other plots to
+    be added to the same figure.
+        
+    Parameters:
+        * x (type: array-like matrix of floats) - the signal to be plotted. (Required)
+        * show (type: boolean) - specifies whether the figure should be shown. If False, the current plot will be held so
+        other plots can be added to the figure. (Optional; Default = True)
+        
+    Returns:
+        NONE
+    """
+    
+    x = np.array(x)
+    plt.plot(x)
+    
+    if(show): plt.show()
+    else: plt.hold(True)
+
+    return
+
+def int_to_nfloat(input, outputtype=np.float32):
     """
     Convert integer with to floating point with a range from -1 to 1.
         
@@ -180,9 +283,9 @@
     
     input = np.array(input)
     assert input.dtype.kind == 'i', "'input' must be an array-like matrix of integers."
-    type = np.dtype(type);
+    outputtype = np.dtype(outputtype)
     inputdtype = np.dtype(type(input[0]))
-    input = input.astype(type)
+    input = input.astype(outputtype)
     
     input[input > 0] = input[input > 0] / np.iinfo(inputdtype).max
     input[input < 0] = input[input < 0] / -np.iinfo(inputdtype).min
@@ -208,8 +311,8 @@
     input = np.array(input)
     assert input.dtype.kind == 'f', "'input' must be an array of floats!"
     
-    input[input > 0] = input[ input > 0 ] * np.iinfo(np.int16).max
-    input[input < 0] = input[ input < 0 ] * -np.iinfo(np.int16).min
+    input[input > 0] = input[ input > 0 ] * np.iinfo(type).max
+    input[input < 0] = input[ input < 0 ] * -np.iinfo(type).min
     
     y = input.astype(type)