diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..4b16f59 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ae945fa --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +.idea/ +venv/ diff --git a/AnomalyDetection/AnomalyDetection.py b/AnomalyDetection/AnomalyDetection.py new file mode 100644 index 0000000..d481dc2 --- /dev/null +++ b/AnomalyDetection/AnomalyDetection.py @@ -0,0 +1,107 @@ +#-*- coding: utf-8 -*- +# Author: Bob +# Date: 2016.12.22 +from __future__ import print_function +import numpy as np +from matplotlib import pyplot as plt +from scipy import io as spio + +'''异常检测主运行程序''' +def anomalyDetection_example(): + '''加载并显示数据''' + data = spio.loadmat('data1.mat') + X = data['X'] + plt = display_2d_data(X, 'bx') + plt.title("origin data") + plt.show() + '''多元高斯分布函数,并可视化拟合的边界''' + mu,sigma2 = estimateGaussian(X) # 参数估计(求均值和方差) + #print (mu,sigma2) + p = multivariateGaussian(X,mu,sigma2) # 多元高斯分布函数 + #print (p) + visualizeFit(X,mu,sigma2) # 显示图像 + + '''选择异常点(在交叉验证CV上训练得到最好的epsilon)''' + Xval = data['Xval'] + yval = data['yval'] # y=1代表异常 + pval = multivariateGaussian(Xval, mu, sigma2) # 计算CV上的概率密度值 + epsilon,F1 = selectThreshold(yval,pval) # 选择最优的epsilon临界值 + print(u'在CV上得到的最好的epsilon是:%e'%epsilon) + print(u'对应的F1Score值为:%f'%F1) + outliers = np.where(p1): + Sigma2 = np.diag(Sigma2) + '''多元高斯分布函数''' + X = X-mu + argu = (2*np.pi)**(-k/2)*np.linalg.det(Sigma2)**(-0.5) + p = argu*np.exp(-0.5*np.sum(np.dot(X,np.linalg.inv(Sigma2))*X,axis=1)) # axis表示每行 + return p + +# 可视化边界 +def visualizeFit(X,mu,sigma2): + x = np.arange(0, 36, 0.5) # 0-36,步长0.5 + y = np.arange(0, 36, 0.5) + X1,X2 = np.meshgrid(x,y) # 要画等高线,所以meshgird + Z = multivariateGaussian(np.hstack((X1.reshape(-1,1),X2.reshape(-1,1))), mu, sigma2) # 计算对应的高斯分布函数 + Z = Z.reshape(X1.shape) # 调整形状 + plt.plot(X[:,0],X[:,1],'bx') + + if np.sum(np.isinf(Z).astype(float)) == 0: # 如果计算的为无穷,就不用画了 + #plt.contourf(X1,X2,Z,10.**np.arange(-20, 0, 3),linewidth=.5) + CS = plt.contour(X1,X2,Z,10.**np.arange(-20, 0, 3),color='black',linewidth=.5) # 画等高线,Z的值在10.**np.arange(-20, 0, 3) + #plt.clabel(CS) + + plt.show() + +# 选择最优的epsilon,即:使F1Score最大 +def selectThreshold(yval,pval): + '''初始化所需变量''' + bestEpsilon = 0. + bestF1 = 0. + F1 = 0. + step = (np.max(pval)-np.min(pval))/1000 + '''计算''' + for epsilon in np.arange(np.min(pval),np.max(pval),step): + cvPrecision = pval bestF1: # 修改最优的F1 Score + bestF1 = F1 + bestEpsilon = epsilon + return bestEpsilon,bestF1 + + + +if __name__ == '__main__': + anomalyDetection_example() + \ No newline at end of file diff --git a/AnomalyDetection/data1.mat b/AnomalyDetection/data1.mat new file mode 100644 index 0000000..1f08123 Binary files /dev/null and b/AnomalyDetection/data1.mat differ diff --git a/AnomalyDetection/data2.mat b/AnomalyDetection/data2.mat new file mode 100644 index 0000000..fe48db3 Binary files /dev/null and b/AnomalyDetection/data2.mat differ diff --git a/K-Means/K-Menas.py b/K-Means/K-Menas.py index 0042fae..5f6493d 100644 --- a/K-Means/K-Menas.py +++ b/K-Means/K-Menas.py @@ -1,4 +1,5 @@ #-*- coding: utf-8 -*- +from __future__ import print_function import numpy as np from matplotlib import pyplot as plt from matplotlib import colors @@ -11,7 +12,7 @@ def KMeans(): '''二维数据聚类过程演示''' - print u'聚类过程展示...\n' + print(u'聚类过程展示...\n') data = spio.loadmat("data.mat") X = data['X'] K = 3 # 总类数 @@ -21,7 +22,7 @@ def KMeans(): ''' 图片压缩 ''' - print u'K-Means压缩图片\n' + print(u'K-Means压缩图片\n') img_data = misc.imread("bird.png") # 读取图片像素数据 img_data = img_data/255.0 # 像素值映射到0-1 img_size = img_data.shape @@ -31,13 +32,13 @@ def KMeans(): max_iters = 5 initial_centroids = kMeansInitCentroids(X,K) centroids,idx = runKMeans(X, initial_centroids, max_iters, False) - print u'\nK-Means运行结束\n' - print u'\n压缩图片...\n' + print(u'\nK-Means运行结束\n') + print(u'\n压缩图片...\n') idx = findClosestCentroids(X, centroids) X_recovered = centroids[idx,:] X_recovered = X_recovered.reshape(img_size[0],img_size[1],3) - print u'绘制图片...\n' + print(u'绘制图片...\n') plt.subplot(1,2,1) plt.imshow(img_data) plt.title(u"原先图片",fontproperties=font) @@ -45,7 +46,7 @@ def KMeans(): plt.imshow(X_recovered) plt.title(u"压缩图像",fontproperties=font) plt.show() - print u'运行结束!' + print(u'运行结束!') # 找到每条数据距离哪个类中心最近 @@ -86,7 +87,7 @@ def runKMeans(X,initial_centroids,max_iters,plot_process): idx = np.zeros((m,1)) # 每条数据属于哪个类 for i in range(max_iters): # 迭代次数 - print u'迭代计算次数:%d'%(i+1) + print(u'迭代计算次数:%d'%(i+1)) idx = findClosestCentroids(X, centroids) if plot_process: # 如果绘制图像 plt = plotProcessKMeans(X,centroids,previous_centroids) # 画聚类中心的移动过程 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..351fe7e --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 lawlite + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/LinearRegression/LinearRegression.py b/LinearRegression/LinearRegression.py index 3c1ae46..c84e966 100644 --- a/LinearRegression/LinearRegression.py +++ b/LinearRegression/LinearRegression.py @@ -1,4 +1,5 @@ #-*- coding: utf-8 -*- +from __future__ import print_function import numpy as np from matplotlib import pyplot as plt from matplotlib.font_manager import FontProperties @@ -6,7 +7,7 @@ def linearRegression(alpha=0.01,num_iters=400): - print u"加载数据...\n" + print(u"加载数据...\n") data = loadtxtAndcsv_data("data.txt",",",np.float64) #读取数据 X = data[:,0:-1] # X对应0到倒数第2列 @@ -19,7 +20,7 @@ def linearRegression(alpha=0.01,num_iters=400): X = np.hstack((np.ones((m,1)),X)) # 在X前加一列1 - print u"\n执行梯度下降算法....\n" + print(u"\n执行梯度下降算法....\n") theta = np.zeros((col,1)) y = y.reshape(-1,1) #将行向量转化为列 @@ -73,7 +74,7 @@ def gradientDescent(X,y,theta,alpha,num_iters): temp[:,i] = theta - ((alpha/m)*(np.dot(np.transpose(X),h-y))) #梯度的计算 theta = temp[:,i] J_history[i] = computerCost(X,y,theta) #调用计算代价函数 - print '.', + print('.', end=' ') return theta,J_history # 计算代价函数 @@ -96,8 +97,8 @@ def plotJ(J_history,num_iters): # 测试linearRegression函数 def testLinearRegression(): mu,sigma,theta = linearRegression(0.01,400) - print u"\n计算的theta值为:\n",theta - print u"\n预测结果为:%f"%predict(mu, sigma, theta) + #print u"\n计算的theta值为:\n",theta + #print u"\n预测结果为:%f"%predict(mu, sigma, theta) # 测试学习效果(预测) def predict(mu,sigma,theta): diff --git a/LinearRegression/LinearRegression_scikit-learn.py b/LinearRegression/LinearRegression_scikit-learn.py index 172a7af..8036d58 100644 --- a/LinearRegression/LinearRegression_scikit-learn.py +++ b/LinearRegression/LinearRegression_scikit-learn.py @@ -1,10 +1,11 @@ #-*- coding: utf-8 -*- +from __future__ import print_function import numpy as np from sklearn import linear_model from sklearn.preprocessing import StandardScaler #引入归一化的包 def linearRegression(): - print u"加载数据...\n" + print(u"加载数据...\n") data = loadtxtAndcsv_data("data.txt",",",np.float64) #读取数据 X = np.array(data[:,0:-1],dtype=np.float64) # X对应0到倒数第2列 y = np.array(data[:,-1],dtype=np.float64) # y对应最后一列 @@ -21,9 +22,9 @@ def linearRegression(): #预测结果 result = model.predict(x_test) - print model.coef_ # Coefficient of the features 决策函数中的特征系数 - print model.intercept_ # 又名bias偏置,若设置为False,则为0 - print result # 预测结果 + print(model.coef_) # Coefficient of the features 决策函数中的特征系数 + print(model.intercept_) # 又名bias偏置,若设置为False,则为0 + print(result) # 预测结果 # 加载txt和csv文件 diff --git a/LogisticRegression/LogisticRegression.py b/LogisticRegression/LogisticRegression.py index b203b33..83a7ac9 100644 --- a/LogisticRegression/LogisticRegression.py +++ b/LogisticRegression/LogisticRegression.py @@ -1,4 +1,5 @@ #-*- coding: utf-8 -*- +from __future__ import print_function import numpy as np import matplotlib.pyplot as plt from scipy import optimize @@ -19,7 +20,7 @@ def LogisticRegression(): J = costFunction(initial_theta,X,y,initial_lambda) #计算一下给定初始化的theta和lambda求出的代价J - print J #输出一下计算的值,应该为0.693147 + print(J) #输出一下计算的值,应该为0.693147 #result = optimize.fmin(costFunction, initial_theta, args=(X,y,initial_lambda)) #直接使用最小化的方法,效果不好 '''调用scipy中的优化算法fmin_bfgs(拟牛顿法Broyden-Fletcher-Goldfarb-Shanno) - costFunction是自己实现的一个求代价的函数, @@ -29,7 +30,7 @@ def LogisticRegression(): ''' result = optimize.fmin_bfgs(costFunction, initial_theta, fprime=gradient, args=(X,y,initial_lambda)) p = predict(X, result) #预测 - print u'在训练集上的准确度为%f%%'%np.mean(np.float64(p==y)*100) # 与真实值比较,p==y返回True,转化为float + print(u'在训练集上的准确度为%f%%'%np.mean(np.float64(p==y)*100)) # 与真实值比较,p==y返回True,转化为float X = data[:,0:-1] y = data[:,-1] diff --git a/LogisticRegression/LogisticRegression_OneVsAll.py b/LogisticRegression/LogisticRegression_OneVsAll.py index 9a2e950..7a9173a 100644 --- a/LogisticRegression/LogisticRegression_OneVsAll.py +++ b/LogisticRegression/LogisticRegression_OneVsAll.py @@ -1,4 +1,5 @@ #-*- coding: utf-8 -*- +from __future__ import print_function import numpy as np import matplotlib.pyplot as plt import scipy.io as spio @@ -27,7 +28,7 @@ def logisticRegression_OneVsAll(): #res = np.hstack((p,y.reshape(-1,1))) #np.savetxt("predict.csv", res, delimiter=',') - print u"预测准确度为:%f%%"%np.mean(np.float64(p == y.reshape(-1,1))*100) + print(u"预测准确度为:%f%%"%np.mean(np.float64(p == y.reshape(-1,1))*100)) # 加载mat文件 def loadmat_data(fileName): diff --git a/LogisticRegression/LogisticRegression_OneVsAll_scikit-learn.py b/LogisticRegression/LogisticRegression_OneVsAll_scikit-learn.py index 5d9374b..b304c08 100644 --- a/LogisticRegression/LogisticRegression_OneVsAll_scikit-learn.py +++ b/LogisticRegression/LogisticRegression_OneVsAll_scikit-learn.py @@ -1,4 +1,5 @@ #-*- coding: utf-8 -*- +from __future__ import print_function from scipy import io as spio import numpy as np from sklearn import svm @@ -17,7 +18,7 @@ def logisticRegression_oneVsAll(): predict = model.predict(X) #预测 - print u"预测准确度为:%f%%"%np.mean(np.float64(predict == y)*100) + print(u"预测准确度为:%f%%"%np.mean(np.float64(predict == y)*100)) # 加载mat文件 def loadmat_data(fileName): diff --git a/LogisticRegression/LogisticRegression_scikit-learn.py b/LogisticRegression/LogisticRegression_scikit-learn.py index 469c941..37905cf 100644 --- a/LogisticRegression/LogisticRegression_scikit-learn.py +++ b/LogisticRegression/LogisticRegression_scikit-learn.py @@ -1,43 +1,45 @@ +# -*- coding: utf-8 -*- + from sklearn.linear_model import LogisticRegression from sklearn.preprocessing import StandardScaler -from sklearn.cross_validation import train_test_split +# from sklearn.cross_validation import train_test_split # 0.18版本之后废弃 +from sklearn.model_selection import train_test_split import numpy as np def logisticRegression(): - data = loadtxtAndcsv_data("data1.txt", ",", np.float64) + data = loadtxtAndcsv_data("data1.txt", ",", np.float64) X = data[:,0:-1] y = data[:,-1] - - # ΪѵͲԼ + + # 划分为训练集和测试集 x_train,x_test,y_train,y_test = train_test_split(X,y,test_size=0.2) - - # һ + + # 归一化 scaler = StandardScaler() - scaler.fit(x_train) + # scaler.fit(x_train) x_train = scaler.fit_transform(x_train) x_test = scaler.fit_transform(x_test) - - #߼ع + + # 逻辑回归 model = LogisticRegression() model.fit(x_train,y_train) - - # Ԥ + + # 预测 predict = model.predict(x_test) right = sum(predict == y_test) - - predict = np.hstack((predict.reshape(-1,1),y_test.reshape(-1,1))) # Ԥֵʵֵһ飬ù۲ - print predict - print ('Լ׼ȷʣ%f%%'%(right*100.0/predict.shape[0])) #ڲԼϵ׼ȷ -# txtcsvļ + predict = np.hstack((predict.reshape(-1,1),y_test.reshape(-1,1))) # 将预测值和真实值放在一块,好观察 + print(predict) + print('测试集准确率:%f%%'%(right*100.0/predict.shape[0])) # 计算在测试集上的准确度 + +# 加载txt和csv文件 def loadtxtAndcsv_data(fileName,split,dataType): return np.loadtxt(fileName,delimiter=split,dtype=dataType) -# npyļ +# 加载npy文件 def loadnpy_data(fileName): return np.load(fileName) - if __name__ == "__main__": - logisticRegression() \ No newline at end of file + logisticRegression() diff --git a/NeuralNetwok/NeuralNetwork.py b/NeuralNetwok/NeuralNetwork.py index 7434c31..7929ad7 100644 --- a/NeuralNetwok/NeuralNetwork.py +++ b/NeuralNetwok/NeuralNetwork.py @@ -43,9 +43,9 @@ def neuralNetwork(input_layer_size,hidden_layer_size,out_put_layer): initial_nn_params = np.vstack((initial_Theta1.reshape(-1,1),initial_Theta2.reshape(-1,1))) #展开theta #np.savetxt("testTheta.csv",initial_nn_params,delimiter=",") start = time.time() - result = optimize.fmin_cg(nnCostFunction, initial_nn_params, fprime=nnGradient, args=(input_layer_size,hidden_layer_size,out_put_layer,X,y,Lambda)) - print u'执行时间:',time.time()-start - print result + result = optimize.fmin_cg(nnCostFunction, initial_nn_params, fprime=nnGradient, args=(input_layer_size,hidden_layer_size,out_put_layer,X,y,Lambda), maxiter=100) + print (u'执行时间:',time.time()-start) + print (result) '''可视化 Theta1''' length = result.shape[0] Theta1 = result[0:hidden_layer_size*(input_layer_size+1)].reshape(hidden_layer_size,input_layer_size+1) @@ -54,7 +54,7 @@ def neuralNetwork(input_layer_size,hidden_layer_size,out_put_layer): display_data(Theta2[:,1:length]) '''预测''' p = predict(Theta1,Theta2,X) - print u"预测准确度为:%f%%"%np.mean(np.float64(p == y.reshape(-1,1))*100) + print (u"预测准确度为:%f%%"%np.mean(np.float64(p == y.reshape(-1,1))*100)) res = np.hstack((p,y.reshape(-1,1))) np.savetxt("predict.csv", res, delimiter=',') @@ -81,8 +81,12 @@ def display_data(imgData): display_array = -np.ones((pad+rows_count*(height+pad),pad+cols_count*(width+pad))) for i in range(rows_count): for j in range(cols_count): + if sum >= m: #超过了行数,退出当前循环 + break; display_array[pad+i*(height+pad):pad+i*(height+pad)+height,pad+j*(width+pad):pad+j*(width+pad)+width] = imgData[sum,:].reshape(height,width,order="F") # order=F指定以列优先,在matlab中是这样的,python中需要指定,默认以行 sum += 1 + if sum >= m: #超过了行数,退出当前循环 + break; plt.imshow(display_array,cmap='gray') #显示灰度图像 plt.axis('off') @@ -120,14 +124,16 @@ def nnCostFunction(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,L h = sigmoid(z3) '''代价''' J = -(np.dot(np.transpose(class_y.reshape(-1,1)),np.log(h.reshape(-1,1)))+np.dot(np.transpose(1-class_y.reshape(-1,1)),np.log(1-h.reshape(-1,1)))-Lambda*term/2)/m - + #temp1 = (h.reshape(-1,1)-class_y.reshape(-1,1)) + #temp2 = (temp1**2).sum() + #J = 1/(2*m)*temp2 return np.ravel(J) # 梯度 def nnGradient(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,Lambda): length = nn_params.shape[0] - Theta1 = nn_params[0:hidden_layer_size*(input_layer_size+1)].reshape(hidden_layer_size,input_layer_size+1) - Theta2 = nn_params[hidden_layer_size*(input_layer_size+1):length].reshape(num_labels,hidden_layer_size+1) + Theta1 = nn_params[0:hidden_layer_size*(input_layer_size+1)].reshape(hidden_layer_size,input_layer_size+1).copy() # 这里使用copy函数,否则下面修改Theta的值,nn_params也会一起修改 + Theta2 = nn_params[hidden_layer_size*(input_layer_size+1):length].reshape(num_labels,hidden_layer_size+1).copy() m = X.shape[0] class_y = np.zeros((m,num_labels)) # 数据的y对应0-9,需要映射为0/1的关系 # 映射y @@ -142,9 +148,8 @@ def nnGradient(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,Lambd Theta1_grad = np.zeros((Theta1.shape)) #第一层到第二层的权重 Theta2_grad = np.zeros((Theta2.shape)) #第二层到第三层的权重 - - Theta1[:,0] = 0; - Theta2[:,0] = 0; + + '''正向传播,每次需要补上一列1的偏置bias''' a1 = np.hstack((np.ones((m,1)),X)) z2 = np.dot(a1,np.transpose(Theta1)) @@ -153,15 +158,19 @@ def nnGradient(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,Lambd z3 = np.dot(a2,np.transpose(Theta2)) h = sigmoid(z3) + '''反向传播,delta为误差,''' delta3 = np.zeros((m,num_labels)) delta2 = np.zeros((m,hidden_layer_size)) for i in range(m): - delta3[i,:] = h[i,:]-class_y[i,:] + #delta3[i,:] = (h[i,:]-class_y[i,:])*sigmoidGradient(z3[i,:]) # 均方误差的误差率 + delta3[i,:] = h[i,:]-class_y[i,:] # 交叉熵误差率 Theta2_grad = Theta2_grad+np.dot(np.transpose(delta3[i,:].reshape(1,-1)),a2[i,:].reshape(1,-1)) delta2[i,:] = np.dot(delta3[i,:].reshape(1,-1),Theta2_x)*sigmoidGradient(z2[i,:]) Theta1_grad = Theta1_grad+np.dot(np.transpose(delta2[i,:].reshape(1,-1)),a1[i,:].reshape(1,-1)) + Theta1[:,0] = 0 + Theta2[:,0] = 0 '''梯度''' grad = (np.vstack((Theta1_grad.reshape(-1,1),Theta2_grad.reshape(-1,1)))+Lambda*np.vstack((Theta1.reshape(-1,1),Theta2.reshape(-1,1))))/m return np.ravel(grad) @@ -196,7 +205,7 @@ def checkGradient(Lambda = 0): initial_Theta1 = debugInitializeWeights(input_layer_size,hidden_layer_size); initial_Theta2 = debugInitializeWeights(hidden_layer_size,num_labels) X = debugInitializeWeights(input_layer_size-1,m) - y = 1+np.transpose(np.mod(np.arange(1,m+1), num_labels))# 初始化y + y = np.transpose(np.mod(np.arange(1,m+1), num_labels))# 初始化y y = y.reshape(-1,1) nn_params = np.vstack((initial_Theta1.reshape(-1,1),initial_Theta2.reshape(-1,1))) #展开theta @@ -219,7 +228,8 @@ def checkGradient(Lambda = 0): step[i]=0 # 显示两列比较 res = np.hstack((num_grad.reshape(-1,1),grad.reshape(-1,1))) - print res + print("检查梯度的结果,第一列为数值法计算得到的,第二列为BP得到的:") + print (res) # 初始化调试的theta权重 def debugInitializeWeights(fan_in,fan_out): @@ -252,5 +262,5 @@ def predict(Theta1,Theta2,X): return p if __name__ == "__main__": - #checkGradient() + checkGradient() neuralNetwork(400, 25, 10) \ No newline at end of file diff --git a/NeuralNetwok/predict.csv b/NeuralNetwok/predict.csv index 4d1087c..4368d95 100644 --- a/NeuralNetwok/predict.csv +++ b/NeuralNetwok/predict.csv @@ -24,7 +24,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -6.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -69,7 +68,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -8.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -87,7 +85,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -2.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -96,10 +93,8 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -110,7 +105,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -129,9 +123,7 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -4.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -140,7 +132,7 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -8.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -178,7 +170,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -205,7 +196,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -242,7 +232,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -263,7 +252,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -6.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -273,7 +261,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -8.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -314,7 +301,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -3.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -327,7 +313,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -6.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -339,7 +324,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -347,15 +331,12 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -7.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -390,7 +371,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -6.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -406,7 +386,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -459,7 +438,6 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -5.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -486,7 +464,29 @@ 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 -8.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 +0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 0.000000000000000000e+00,0.000000000000000000e+00 @@ -503,7 +503,7 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -6.000000000000000000e+00,1.000000000000000000e+00 +9.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -513,13 +513,17 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -4.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +3.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -529,9 +533,7 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -7.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -547,10 +549,8 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -567,7 +567,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -8.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -601,7 +600,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -3.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -611,7 +609,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -657,7 +654,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -7.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -673,7 +669,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -8.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -686,7 +681,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -722,12 +716,10 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -743,7 +735,15 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -7.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -813,20 +813,17 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -836,13 +833,11 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -906,7 +901,6 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -8.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -946,11 +940,17 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -5.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +1.000000000000000000e+00,1.000000000000000000e+00 +9.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 @@ -998,21 +998,16 @@ 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 1.000000000000000000e+00,1.000000000000000000e+00 -9.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -7.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -7.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1023,7 +1018,12 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 7.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1043,7 +1043,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -1.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1055,7 +1054,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1079,23 +1077,30 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 -9.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 -3.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +7.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1109,27 +1114,21 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -1.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1151,7 +1150,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1161,13 +1159,9 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -3.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1187,7 +1181,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1205,17 +1198,14 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -5.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1229,7 +1219,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1239,8 +1228,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 -3.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1258,18 +1245,15 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -3.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1309,7 +1293,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1323,7 +1306,24 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1366,12 +1366,10 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1381,7 +1379,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1391,13 +1388,11 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1406,11 +1401,16 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +6.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +4.000000000000000000e+00,2.000000000000000000e+00 4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1419,9 +1419,9 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -7.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +8.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1451,7 +1451,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -6.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1459,7 +1458,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1474,7 +1472,6 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -7.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 @@ -1482,22 +1479,25 @@ 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -5.000000000000000000e+00,2.000000000000000000e+00 -4.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -5.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 -0.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 0.000000000000000000e+00,2.000000000000000000e+00 2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 +2.000000000000000000e+00,2.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1517,16 +1517,11 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1540,42 +1535,34 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 +7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 +2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1586,21 +1573,15 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -6.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -0.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -0.000000000000000000e+00,3.000000000000000000e+00 -0.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1608,17 +1589,9 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1626,15 +1599,11 @@ 3.000000000000000000e+00,3.000000000000000000e+00 2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1643,7 +1612,10 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +4.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1656,7 +1628,6 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1675,49 +1646,35 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -1.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1728,9 +1685,7 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1738,11 +1693,12 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +5.000000000000000000e+00,3.000000000000000000e+00 7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1754,15 +1710,10 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1773,8 +1724,6 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1785,21 +1734,16 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1808,20 +1752,19 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 +7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 +5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1831,9 +1774,9 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 +6.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1871,10 +1814,7 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 -4.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1885,7 +1825,6 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1896,14 +1835,12 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1914,16 +1851,12 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -9.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1934,17 +1867,12 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1953,31 +1881,23 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -1.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -2.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -8.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -7.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 @@ -1997,24 +1917,108 @@ 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 3.000000000000000000e+00,3.000000000000000000e+00 -5.000000000000000000e+00,3.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -1.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 -4.000000000000000000e+00,4.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +9.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +1.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +7.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +3.000000000000000000e+00,3.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -6.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2045,7 +2049,6 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -6.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2068,7 +2071,6 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2076,11 +2078,9 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2102,11 +2102,11 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 -3.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -6.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2145,17 +2145,14 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2164,7 +2161,10 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2185,26 +2185,39 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -6.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 2.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 +7.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2215,7 +2228,6 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2236,14 +2248,10 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -6.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2261,15 +2269,12 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -2.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2279,12 +2284,9 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2359,17 +2361,14 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -6.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -1.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2382,7 +2381,6 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2412,7 +2410,6 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2450,9 +2447,7 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -5.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2477,12 +2472,10 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 @@ -2496,10 +2489,17 @@ 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 -1.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +4.000000000000000000e+00,4.000000000000000000e+00 +9.000000000000000000e+00,4.000000000000000000e+00 4.000000000000000000e+00,4.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -2.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2507,7 +2507,6 @@ 3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2516,17 +2515,11 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2537,7 +2530,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2546,15 +2538,11 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -9.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -9.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2566,40 +2554,39 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 +2.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -2.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2608,8 +2595,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2617,34 +2602,25 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2657,14 +2633,11 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2678,7 +2651,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2691,18 +2663,13 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2716,12 +2683,8 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2735,24 +2698,16 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2762,7 +2717,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2779,25 +2733,18 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 -1.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -1.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -1.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2816,7 +2763,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2831,7 +2777,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2855,7 +2800,6 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -9.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2867,14 +2811,12 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -9.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2883,30 +2825,23 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -9.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -0.000000000000000000e+00,5.000000000000000000e+00 -6.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2917,16 +2852,11 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -1.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2941,22 +2871,16 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -4.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -9.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2966,13 +2890,11 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 @@ -2982,22 +2904,102 @@ 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -8.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -3.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 5.000000000000000000e+00,5.000000000000000000e+00 -1.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +5.000000000000000000e+00,5.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3022,7 +3024,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -1.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3040,10 +3041,8 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 0.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3054,11 +3053,9 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3068,7 +3065,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3076,16 +3072,14 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -8.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 +1.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3094,20 +3088,17 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3129,7 +3120,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3145,7 +3135,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3154,11 +3143,9 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -0.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -0.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3166,13 +3153,10 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3188,7 +3172,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -8.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3202,7 +3185,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3234,8 +3216,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3247,7 +3227,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3261,7 +3240,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3274,7 +3252,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3291,7 +3268,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3300,13 +3276,11 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3326,54 +3300,80 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -8.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -0.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -0.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +1.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3393,18 +3393,14 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3418,14 +3414,12 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3434,18 +3428,15 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -8.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3455,7 +3446,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3464,7 +3454,6 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -8.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3480,12 +3469,23 @@ 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -5.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 -2.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 +6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 6.000000000000000000e+00,6.000000000000000000e+00 @@ -3513,13 +3513,11 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3530,15 +3528,11 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -1.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -4.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3546,10 +3540,8 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -0.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -2.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3560,7 +3552,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3568,7 +3559,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -1.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3593,7 +3583,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -2.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3601,7 +3590,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -4.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3609,15 +3597,27 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -5.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3627,12 +3627,11 @@ 7.000000000000000000e+00,7.000000000000000000e+00 4.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 +4.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -0.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3658,15 +3657,12 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -4.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3681,14 +3677,11 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -5.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3706,7 +3699,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -1.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3723,18 +3715,30 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -0.000000000000000000e+00,7.000000000000000000e+00 -2.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -2.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -1.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +4.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3760,7 +3764,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -0.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3770,7 +3773,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3785,8 +3787,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -3.000000000000000000e+00,7.000000000000000000e+00 -2.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3821,14 +3821,12 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -1.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -5.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3836,7 +3834,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3851,7 +3848,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3875,13 +3871,17 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -1.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -4.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3906,15 +3906,12 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -5.000000000000000000e+00,7.000000000000000000e+00 -8.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3928,7 +3925,6 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -2.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3938,14 +3934,12 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -0.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3953,13 +3947,11 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -3970,7 +3962,15 @@ 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 -9.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 +7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 7.000000000000000000e+00,7.000000000000000000e+00 @@ -4010,7 +4010,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4028,18 +4027,98 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -4.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +5.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +2.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 +8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -6.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4049,13 +4128,11 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -6.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -7.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4098,17 +4175,13 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -4.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -7.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4123,7 +4196,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -6.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4138,7 +4210,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4151,7 +4222,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4166,7 +4236,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4175,32 +4244,26 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -6.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4213,68 +4276,49 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -0.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4284,27 +4328,20 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4320,10 +4357,8 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4336,22 +4371,17 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4360,16 +4390,12 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4377,23 +4403,17 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -4.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4406,7 +4426,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4418,43 +4437,30 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 -7.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 -2.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4465,7 +4471,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4475,8 +4480,6 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -3.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 @@ -4488,32 +4491,24 @@ 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -9.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 -5.000000000000000000e+00,8.000000000000000000e+00 8.000000000000000000e+00,8.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4524,22 +4519,18 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -3.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4566,11 +4557,7 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 -1.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -2.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4579,16 +4566,29 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -2.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 0.000000000000000000e+00,9.000000000000000000e+00 @@ -4596,7 +4596,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4610,7 +4609,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4623,9 +4621,7 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4634,27 +4630,53 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -3.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 3.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 +8.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 -8.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4665,12 +4687,10 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4687,10 +4707,8 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4703,7 +4721,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4715,7 +4732,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4734,7 +4750,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4753,7 +4768,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4770,45 +4784,35 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -6.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -3.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4817,8 +4821,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4826,13 +4828,10 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -1.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 3.000000000000000000e+00,9.000000000000000000e+00 -2.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4841,18 +4840,19 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 1.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4866,8 +4866,6 @@ 8.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 -5.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4876,20 +4874,17 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4900,7 +4895,8 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4912,41 +4908,39 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 4.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4958,11 +4952,8 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 -7.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4976,8 +4967,17 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -2.000000000000000000e+00,9.000000000000000000e+00 -2.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 @@ -4995,6 +4995,6 @@ 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -4.000000000000000000e+00,9.000000000000000000e+00 9.000000000000000000e+00,9.000000000000000000e+00 -0.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 +9.000000000000000000e+00,9.000000000000000000e+00 diff --git a/PCA/PCA.py b/PCA/PCA.py index 35aa82d..2301ade 100644 --- a/PCA/PCA.py +++ b/PCA/PCA.py @@ -4,37 +4,76 @@ import numpy as np from matplotlib import pyplot as plt from scipy import io as spio +from sklearn.decomposition import pca ''' -主成分分析运行方法 +主成分分析_2维数据降维1维演示函数 ''' -def PCA(): +def PCA_2D(): data_2d = spio.loadmat("data.mat") X = data_2d['X'] m = X.shape[0] - plt = plot_data_2d(X) # 显示二维的数据 + plt = plot_data_2d(X,'bo') # 显示二维的数据 plt.show() X_copy = X.copy() X_norm,mu,sigma = featureNormalize(X_copy) # 归一化数据 - plot_data_2d(X_norm) # 显示归一化后的数据 + #plot_data_2d(X_norm) # 显示归一化后的数据 + #plt.show() - Sigma = np.dot(np.transpose(X_norm),X_norm)/m - U,S,V = np.linalg.svd(Sigma) + Sigma = np.dot(np.transpose(X_norm),X_norm)/m # 求Sigma + U,S,V = np.linalg.svd(Sigma) # 求Sigma的奇异值分解 - plt = plot_data_2d(X_norm) - plt.plot(mu.reshape(-1,1),mu.reshape(-1,1)+S[0]*(U[:,0].reshape(-1,1)),'k-') + plt = plot_data_2d(X,'bo') # 显示原本数据 + drawline(plt, mu, mu+S[0]*(U[:,0]), 'r-') # 线,为投影的方向 + + plt.axis('square') plt.show() - K = 1 - Z = projectData(X_norm,U,K) - print Z[0] - + K = 1 # 定义降维多少维(本来是2维的,这里降维1维) + '''投影之后数据(降维之后)''' + Z = projectData(X_norm,U,K) # 投影 + '''恢复数据''' + X_rec = recoverData(Z,U,K) # 恢复 + '''作图-----原数据与恢复的数据''' + plt = plot_data_2d(X_norm,'bo') + plot_data_2d(X_rec,'ro') + for i in range(X_norm.shape[0]): + drawline(plt, X_norm[i,:], X_rec[i,:], '--k') + plt.axis('square') + plt.show() +'''主成分分析_PCA图像数据降维''' +def PCA_faceImage(): + print (u'加载图像数据.....') + data_image = spio.loadmat('data_faces.mat') + X = data_image['X'] + display_imageData(X[0:100,:]) + m = X.shape[0] # 数据条数 + + print (u'运行PCA....') + X_norm,mu,sigma = featureNormalize(X) # 归一化 + + Sigma = np.dot(np.transpose(X_norm),X_norm)/m # 求Sigma + U,S,V = np.linalg.svd(Sigma) # 奇异值分解 + display_imageData(np.transpose(U[:,0:36])) # 显示U的数据 + + print (u'对face数据降维.....') + K = 100 # 降维100维(原先是32*32=1024维的) + Z = projectData(X_norm, U, K) + print (u'投影之后Z向量的大小:%d %d' %Z.shape) + + print (u'显示降维之后的数据......') + X_rec = recoverData(Z, U, K) # 恢复数据 + display_imageData(X_rec[0:100,:]) + + + + # 可视化二维数据 -def plot_data_2d(X): - plt.plot(X[:,0],X[:,1],'bo') +def plot_data_2d(X,marker): + plt.plot(X[:,0],X[:,1],marker) return plt # 归一化数据 @@ -44,7 +83,7 @@ def featureNormalize(X): mu = np.zeros((1,n)); sigma = np.zeros((1,n)) - mu = np.mean(X,axis=0) + mu = np.mean(X,axis=0) # axis=0表示列 sigma = np.std(X,axis=0) for i in range(n): X[:,i] = (X[:,i]-mu[i])/sigma[i] @@ -55,10 +94,49 @@ def featureNormalize(X): def projectData(X_norm,U,K): Z = np.zeros((X_norm.shape[0],K)) - U_reduce = U[:,0:K] - Z = np.dot(X_norm,U_reduce) + U_reduce = U[:,0:K] # 取前K个 + Z = np.dot(X_norm,U_reduce) return Z +# 画一条线 +def drawline(plt,p1,p2,line_type): + plt.plot(np.array([p1[0],p2[0]]),np.array([p1[1],p2[1]]),line_type) + + + +# 恢复数据 +def recoverData(Z,U,K): + X_rec = np.zeros((Z.shape[0],U.shape[0])) + U_recude = U[:,0:K] + X_rec = np.dot(Z,np.transpose(U_recude)) # 还原数据(近似) + return X_rec + +# 显示图片 +def display_imageData(imgData): + sum = 0 + ''' + 显示100个数(若是一个一个绘制将会非常慢,可以将要画的图片整理好,放到一个矩阵中,显示这个矩阵即可) + - 初始化一个二维数组 + - 将每行的数据调整成图像的矩阵,放进二维数组 + - 显示即可 + ''' + m,n = imgData.shape + width = np.int32(np.round(np.sqrt(n))) + height = np.int32(n/width); + rows_count = np.int32(np.floor(np.sqrt(m))) + cols_count = np.int32(np.ceil(m/rows_count)) + pad = 1 + display_array = -np.ones((pad+rows_count*(height+pad),pad+cols_count*(width+pad))) + for i in range(rows_count): + for j in range(cols_count): + max_val = np.max(np.abs(imgData[sum,:])) + display_array[pad+i*(height+pad):pad+i*(height+pad)+height,pad+j*(width+pad):pad+j*(width+pad)+width] = imgData[sum,:].reshape(height,width,order="F")/max_val # order=F指定以列优先,在matlab中是这样的,python中需要指定,默认以行 + sum += 1 + + plt.imshow(display_array,cmap='gray') #显示灰度图像 + plt.axis('off') + plt.show() if __name__ == "__main__": - PCA() \ No newline at end of file + PCA_2D() + PCA_faceImage() \ No newline at end of file diff --git a/PCA/PCA_scikit-learn.py b/PCA/PCA_scikit-learn.py new file mode 100644 index 0000000..93bb4cc --- /dev/null +++ b/PCA/PCA_scikit-learn.py @@ -0,0 +1,103 @@ +#-*- coding: utf-8 -*- +# Author:bob +# Date:2016.12.22 +import numpy as np +from matplotlib import pyplot as plt +from scipy import io as spio +from sklearn.decomposition import pca +from sklearn.preprocessing import StandardScaler + +'''二维降为一维主运行函数''' +def PCA_2d_example(): + '''加载数据并作图''' + data = spio.loadmat('data.mat') + X = data['X'] + plt = plot_data_2d(X,'bo') + plt.axis('square') + plt.title('original data') + plt.show() + '''归一化数据并作图''' + scaler = StandardScaler() + scaler.fit(X) + x_train = scaler.transform(X) + + plot_data_2d(x_train, 'bo') + plt.axis('square') + plt.title('scaler data') + plt.show() + + '''拟合数据''' + K=1 # 要降的维度 + model = pca.PCA(n_components=K).fit(x_train) # 拟合数据,n_components定义要降的维度 + Z = model.transform(x_train) # transform就会执行降维操作 + + '''数据恢复并作图''' + Ureduce = model.components_ # 得到降维用的Ureduce + x_rec = np.dot(Z,Ureduce) # 数据恢复 + + plot_data_2d(x_rec,'bo') + plt.plot() + plt.axis('square') + plt.title('recover data') + plt.show() + +def PCA_face_example(): + '''加载数据并显示''' + image_data = spio.loadmat('data_faces.mat') + X = image_data['X'] + display_imageData(X[0:100,:]) # 显示100个最初图像 + + '''归一化数据''' + scaler = StandardScaler() + scaler.fit(X) + x_train = scaler.transform(X) + + '''拟合模型''' + K=100 + model = pca.PCA(n_components=K).fit(x_train) + Z = model.transform(x_train) + Ureduce = model.components_ + + display_imageData(Ureduce[0:36,:]) # 可视化部分U数据 + x_rec = np.dot(Z,Ureduce) + + display_imageData(x_rec[0:100,:]) # 显示恢复的数据 + + + + +# 可视化二维数据 +def plot_data_2d(X,marker): + plt.plot(X[:,0],X[:,1],marker) + return plt + +# 显示图片 +def display_imageData(imgData): + sum = 0 + ''' + 显示100个数(若是一个一个绘制将会非常慢,可以将要画的图片整理好,放到一个矩阵中,显示这个矩阵即可) + - 初始化一个二维数组 + - 将每行的数据调整成图像的矩阵,放进二维数组 + - 显示即可 + ''' + m,n = imgData.shape + width = np.int32(np.round(np.sqrt(n))) + height = np.int32(n/width); + rows_count = np.int32(np.floor(np.sqrt(m))) + cols_count = np.int32(np.ceil(m/rows_count)) + pad = 1 + display_array = -np.ones((pad+rows_count*(height+pad),pad+cols_count*(width+pad))) + for i in range(rows_count): + for j in range(cols_count): + max_val = np.max(np.abs(imgData[sum,:])) + display_array[pad+i*(height+pad):pad+i*(height+pad)+height,pad+j*(width+pad):pad+j*(width+pad)+width] = imgData[sum,:].reshape(height,width,order="F")/max_val # order=F指定以列优先,在matlab中是这样的,python中需要指定,默认以行 + sum += 1 + + plt.imshow(display_array,cmap='gray') #显示灰度图像 + plt.axis('off') + plt.show() + + +if __name__ == '__main__': + #PCA_2d_example() + PCA_face_example() \ No newline at end of file diff --git a/SVM/SVM_scikit-learn.py b/SVM/SVM_scikit-learn.py index 3cdbb6a..5b81c7c 100644 --- a/SVM/SVM_scikit-learn.py +++ b/SVM/SVM_scikit-learn.py @@ -1,71 +1,69 @@ +#-*- coding: utf-8 -*- import numpy as np from scipy import io as spio from matplotlib import pyplot as plt from sklearn import svm + def SVM(): - '''data1Է''' + '''data1——线性分类''' data1 = spio.loadmat('data1.mat') X = data1['X'] y = data1['y'] y = np.ravel(y) - plot_data(X,y) - - model = svm.SVC(C=1.0,kernel='linear').fit(X,y) # ָ˺ΪԺ˺ - plot_decisionBoundary(X, y, model) # ߽߱ - '''data2Է''' + plot_data(X, y) + + model = svm.SVC(C=1.0, kernel='linear').fit(X, y) # 指定核函数为线性核函数 + plot_decisionBoundary(X, y, model) # 画决策边界 + '''data2——非线性分类''' data2 = spio.loadmat('data2.mat') X = data2['X'] y = data2['y'] y = np.ravel(y) - plt = plot_data(X,y) + plt = plot_data(X, y) plt.show() - - model = svm.SVC(gamma=100).fit(X,y) # gammaΪ˺ϵֵԽϵԽ - plot_decisionBoundary(X, y, model,class_='notLinear') # ߽߱ - - - -# ͼ -def plot_data(X,y): - plt.figure(figsize=(10,8)) - pos = np.where(y==1) # ҵy=1λ - neg = np.where(y==0) # ҵy=0λ - p1, = plt.plot(np.ravel(X[pos,0]),np.ravel(X[pos,1]),'ro',markersize=8) - p2, = plt.plot(np.ravel(X[neg,0]),np.ravel(X[neg,1]),'g^',markersize=8) + + model = svm.SVC(gamma=100).fit(X, y) # gamma为核函数的系数,值越大拟合的越好 + plot_decisionBoundary(X, y, model, class_='notLinear') # 画决策边界 + + +# 作图 +def plot_data(X, y): + plt.figure(figsize=(10, 8)) + pos = np.where(y == 1) # 找到y=1的位置 + neg = np.where(y == 0) # 找到y=0的位置 + p1, = plt.plot(np.ravel(X[pos, 0]), np.ravel(X[pos, 1]), 'ro', markersize=8) + p2, = plt.plot(np.ravel(X[neg, 0]), np.ravel(X[neg, 1]), 'g^', markersize=8) plt.xlabel("X1") plt.ylabel("X2") - plt.legend([p1,p2],["y==1","y==0"]) + plt.legend([p1, p2], ["y==1", "y==0"]) return plt - -# ߽߱ -def plot_decisionBoundary(X,y,model,class_='linear'): + + +# 画决策边界 +def plot_decisionBoundary(X, y, model, class_='linear'): plt = plot_data(X, y) - - # Ա߽ - if class_=='linear': + + # 线性边界 + if class_ == 'linear': w = model.coef_ b = model.intercept_ - xp = np.linspace(np.min(X[:,0]),np.max(X[:,1]),100) - yp = -(w[0,0]*xp+b)/w[0,1] - plt.plot(xp,yp,'b-',linewidth=2.0) + xp = np.linspace(np.min(X[:, 0]), np.max(X[:, 0]), 100) + yp = -(w[0, 0] * xp + b) / w[0, 1] + plt.plot(xp, yp, 'b-', linewidth=2.0) plt.show() - else: # Ա߽ - x_1 = np.transpose(np.linspace(np.min(X[:,0]),np.max(X[:,0]),100).reshape(1,-1)) - x_2 = np.transpose(np.linspace(np.min(X[:,1]),np.max(X[:,1]),100).reshape(1,-1)) - X1,X2 = np.meshgrid(x_1,x_2) + else: # 非线性边界 + x_1 = np.transpose(np.linspace(np.min(X[:, 0]), np.max(X[:, 0]), 100).reshape(1, -1)) + x_2 = np.transpose(np.linspace(np.min(X[:, 1]), np.max(X[:, 1]), 100).reshape(1, -1)) + X1, X2 = np.meshgrid(x_1, x_2) vals = np.zeros(X1.shape) for i in range(X1.shape[1]): - this_X = np.hstack((X1[:,i].reshape(-1,1),X2[:,i].reshape(-1,1))) - vals[:,i] = model.predict(this_X) - - plt.contour(X1,X2,vals,[0,1],color='blue') + this_X = np.hstack((X1[:, i].reshape(-1, 1), X2[:, i].reshape(-1, 1))) + vals[:, i] = model.predict(this_X) + + plt.contour(X1, X2, vals, [0, 1], color='blue') plt.show() - if __name__ == "__main__": - SVM() - - - \ No newline at end of file + SVM() \ No newline at end of file diff --git a/formula/AnomalyDetection.wmf b/formula/AnomalyDetection.wmf new file mode 100644 index 0000000..856c56a Binary files /dev/null and b/formula/AnomalyDetection.wmf differ diff --git a/formula/PCA.wmf b/formula/PCA.wmf new file mode 100644 index 0000000..8953525 Binary files /dev/null and b/formula/PCA.wmf differ diff --git a/images/AnomalyDetection_01.png b/images/AnomalyDetection_01.png new file mode 100644 index 0000000..7ffe9e7 Binary files /dev/null and b/images/AnomalyDetection_01.png differ diff --git a/images/AnomalyDetection_02.png b/images/AnomalyDetection_02.png new file mode 100644 index 0000000..cec38d0 Binary files /dev/null and b/images/AnomalyDetection_02.png differ diff --git a/images/AnomalyDetection_03.png b/images/AnomalyDetection_03.png new file mode 100644 index 0000000..58c1ab0 Binary files /dev/null and b/images/AnomalyDetection_03.png differ diff --git a/images/AnomalyDetection_04.png b/images/AnomalyDetection_04.png new file mode 100644 index 0000000..4aeb012 Binary files /dev/null and b/images/AnomalyDetection_04.png differ diff --git a/images/AnomalyDetection_05.png b/images/AnomalyDetection_05.png new file mode 100644 index 0000000..cac9acf Binary files /dev/null and b/images/AnomalyDetection_05.png differ diff --git a/images/AnomalyDetection_06.png b/images/AnomalyDetection_06.png new file mode 100644 index 0000000..bd72927 Binary files /dev/null and b/images/AnomalyDetection_06.png differ diff --git a/images/AnomalyDetection_07.png b/images/AnomalyDetection_07.png new file mode 100644 index 0000000..21f3b9a Binary files /dev/null and b/images/AnomalyDetection_07.png differ diff --git a/images/AnomalyDetection_08.png b/images/AnomalyDetection_08.png new file mode 100644 index 0000000..d8a5fcc Binary files /dev/null and b/images/AnomalyDetection_08.png differ diff --git a/images/AnomalyDetection_09.png b/images/AnomalyDetection_09.png new file mode 100644 index 0000000..6a4198e Binary files /dev/null and b/images/AnomalyDetection_09.png differ diff --git a/images/AnomalyDetection_10.png b/images/AnomalyDetection_10.png new file mode 100644 index 0000000..273def7 Binary files /dev/null and b/images/AnomalyDetection_10.png differ diff --git a/images/NeuralNetwork_05.png b/images/NeuralNetwork_05.png index 72c4df3..241d2a0 100644 Binary files a/images/NeuralNetwork_05.png and b/images/NeuralNetwork_05.png differ diff --git a/images/PCA_01.png b/images/PCA_01.png new file mode 100644 index 0000000..06eedba Binary files /dev/null and b/images/PCA_01.png differ diff --git a/images/PCA_02.png b/images/PCA_02.png new file mode 100644 index 0000000..09bcaeb Binary files /dev/null and b/images/PCA_02.png differ diff --git a/images/PCA_03.png b/images/PCA_03.png new file mode 100644 index 0000000..3722120 Binary files /dev/null and b/images/PCA_03.png differ diff --git a/images/PCA_04.png b/images/PCA_04.png new file mode 100644 index 0000000..c4f6f14 Binary files /dev/null and b/images/PCA_04.png differ diff --git a/images/PCA_05.png b/images/PCA_05.png new file mode 100644 index 0000000..15578f7 Binary files /dev/null and b/images/PCA_05.png differ diff --git a/images/PCA_06.png b/images/PCA_06.png new file mode 100644 index 0000000..027f011 Binary files /dev/null and b/images/PCA_06.png differ diff --git a/images/PCA_07.png b/images/PCA_07.png new file mode 100644 index 0000000..29fbc61 Binary files /dev/null and b/images/PCA_07.png differ diff --git a/images/PCA_08.png b/images/PCA_08.png new file mode 100644 index 0000000..01fbffb Binary files /dev/null and b/images/PCA_08.png differ diff --git a/readme.md b/readme.md index 5bbe594..9624fc3 100644 --- a/readme.md +++ b/readme.md @@ -1,6 +1,75 @@ 机器学习算法Python实现 ========= +[![MIT license](https://img.shields.io/dub/l/vibe-d.svg)](https://github.com/lawlite19/MachineLearning_Python/blob/master/LICENSE) + +## 目录 +* [机器学习算法Python实现](#机器学习算法python实现) + * [一、线性回归](#一线性回归) + * [1、代价函数](#1代价函数) + * [2、梯度下降算法](#2梯度下降算法) + * [3、均值归一化](#3均值归一化) + * [4、最终运行结果](#4最终运行结果) + * [5、使用scikit-learn库中的线性模型实现](#5使用scikit-learn库中的线性模型实现) + * [二、逻辑回归](#二逻辑回归) + * [1、代价函数](#1代价函数) + * [2、梯度](#2梯度) + * [3、正则化](#3正则化) + * [4、S型函数(即)](#4s型函数即) + * [5、映射为多项式](#5映射为多项式) + * [6、使用的优化方法](#6使用scipy的优化方法) + * [7、运行结果](#7运行结果) + * [8、使用scikit-learn库中的逻辑回归模型实现](#8使用scikit-learn库中的逻辑回归模型实现) + * [逻辑回归_手写数字识别_OneVsAll](#逻辑回归_手写数字识别_onevsall) + * [1、随机显示100个数字](#1随机显示100个数字) + * [2、OneVsAll](#2onevsall) + * [3、手写数字识别](#3手写数字识别) + * [4、预测](#4预测) + * [5、运行结果](#5运行结果) + * [6、使用scikit-learn库中的逻辑回归模型实现](#6使用scikit-learn库中的逻辑回归模型实现) + * [三、BP神经网络](#三bp神经网络) + * [1、神经网络model](#1神经网络model) + * [2、代价函数](#2代价函数) + * [3、正则化](#3正则化) + * [4、反向传播BP](#4反向传播bp) + * [5、BP可以求梯度的原因](#5bp可以求梯度的原因) + * [6、梯度检查](#6梯度检查) + * [7、权重的随机初始化](#7权重的随机初始化) + * [8、预测](#8预测) + * [9、输出结果](#9输出结果) + * [四、SVM支持向量机](#四svm支持向量机) + * [1、代价函数](#1代价函数) + * [2、Large Margin](#2large-margin) + * [3、SVM Kernel(核函数)](#3svm-kernel核函数) + * [4、使用中的模型代码](#4使用scikit-learn中的svm模型代码) + * [5、运行结果](#5运行结果) + * [五、K-Means聚类算法](#五k-means聚类算法) + * [1、聚类过程](#1聚类过程) + * [2、目标函数](#2目标函数) + * [3、聚类中心的选择](#3聚类中心的选择) + * [4、聚类个数K的选择](#4聚类个数k的选择) + * [5、应用——图片压缩](#5应用图片压缩) + * [6、使用scikit-learn库中的线性模型实现聚类](#6使用scikit-learn库中的线性模型实现聚类) + * [7、运行结果](#7运行结果) + * [六、PCA主成分分析(降维)](#六pca主成分分析降维) + * [1、用处](#1用处) + * [2、2D-->1D,nD-->kD](#22d--1dnd--kd) + * [3、主成分分析PCA与线性回归的区别](#3主成分分析pca与线性回归的区别) + * [4、PCA降维过程](#4pca降维过程) + * [5、数据恢复](#5数据恢复) + * [6、主成分个数的选择(即要降的维度)](#6主成分个数的选择即要降的维度) + * [7、使用建议](#7使用建议) + * [8、运行结果](#8运行结果) + * [9、使用scikit-learn库中的PCA实现降维](#9使用scikit-learn库中的pca实现降维) + * [七、异常检测 Anomaly Detection](#七异常检测-anomaly-detection) + * [1、高斯分布(正态分布)](#1高斯分布正态分布gaussian-distribution) + * [2、异常检测算法](#2异常检测算法) + * [3、评价的好坏,以及的选取](#3评价px的好坏以及ε的选取) + * [4、选择使用什么样的feature(单元高斯分布)](#4选择使用什么样的feature单元高斯分布) + * [5、多元高斯分布](#5多元高斯分布) + * [6、单元和多元高斯分布特点](#6单元和多元高斯分布特点) + * [7、程序运行结果](#7程序运行结果) + ## 一、[线性回归](/LinearRegression) - [全部代码](/LinearRegression/LinearRegression.py) @@ -35,7 +104,7 @@ def computerCost(X,y,theta): - 假设函数`f(x)` - 泰勒展开:`f(x+△x)=f(x)+f'(x)*△x+o(△x)` - 令:`△x=-α*f'(x)` ,即负梯度方向乘以一个很小的步长`α` - - 将`△x`代入泰勒展开式中:`f(x+x)=f(x)-α*[f'(x)]²+o(△x)` + - 将`△x`代入泰勒展开式中:`f(x+△x)=f(x)-α*[f'(x)]²+o(△x)` - 可以看出,`α`是取得很小的正数,`[f'(x)]²`也是正数,所以可以得出:`f(x+△x)<=f(x)` - 所以沿着**负梯度**放下,函数在减小,多维情况一样。 - 实现代码 @@ -243,7 +312,6 @@ import numpy as np ``` # 归一化 scaler = StandardScaler() - scaler.fit(x_train) x_train = scaler.fit_transform(x_train) x_test = scaler.fit_transform(x_test) ``` @@ -477,7 +545,7 @@ def nnCostFunction(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,L - ![{\delta ^{(3)}} = {({\theta ^{(3)}})^T}{\delta ^{(4)}}.*{g^}({a^{(3)}})](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%5Cdelta%20%5E%7B%283%29%7D%7D%20%3D%20%7B%28%7B%5Ctheta%20%5E%7B%283%29%7D%7D%29%5ET%7D%7B%5Cdelta%20%5E%7B%284%29%7D%7D.%2A%7Bg%5E%7D%28%7Ba%5E%7B%283%29%7D%7D%29) - ![{\delta ^{(2)}} = {({\theta ^{(2)}})^T}{\delta ^{(3)}}.*{g^}({a^{(2)}})](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%5Cdelta%20%5E%7B%282%29%7D%7D%20%3D%20%7B%28%7B%5Ctheta%20%5E%7B%282%29%7D%7D%29%5ET%7D%7B%5Cdelta%20%5E%7B%283%29%7D%7D.%2A%7Bg%5E%7D%28%7Ba%5E%7B%282%29%7D%7D%29) - 没有![{\delta ^{(1)}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%5Cdelta%20%5E%7B%281%29%7D%7D),因为对于输入没有误差 -- 因为S型函数![{\text{g(z)}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%5Ctext%7Bg%28z%29%7D%7D)的倒数为:![{g^}(z){\text{ = g(z)(1 - g(z))}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bg%5E%7D%28z%29%7B%5Ctext%7B%20%3D%20g%28z%29%281%20-%20g%28z%29%29%7D%7D),所以上面的![{g^}({a^{(3)}})](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bg%5E%7D%28%7Ba%5E%7B%283%29%7D%7D%29)和![{g^}({a^{(2)}})](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bg%5E%7D%28%7Ba%5E%7B%282%29%7D%7D%29)可以在前向传播中计算出来 +- 因为S型函数![{\text{g(z)}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7B%5Ctext%7Bg%28z%29%7D%7D)的导数为:![{g^}(z){\text{ = g(z)(1 - g(z))}}](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bg%5E%7D%28z%29%7B%5Ctext%7B%20%3D%20g%28z%29%281%20-%20g%28z%29%29%7D%7D),所以上面的![{g^}({a^{(3)}})](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bg%5E%7D%28%7Ba%5E%7B%283%29%7D%7D%29)和![{g^}({a^{(2)}})](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%7Bg%5E%7D%28%7Ba%5E%7B%282%29%7D%7D%29)可以在前向传播中计算出来 - 反向传播计算梯度的过程为: - ![\Delta _{ij}^{(l)} = 0](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%5CDelta%20_%7Bij%7D%5E%7B%28l%29%7D%20%3D%200)(![\Delta ](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%5CDelta%20)是大写的![\delta ](http://chart.apis.google.com/chart?cht=tx&chs=1x0&chf=bg,s,FFFFFF00&chco=000000&chl=%5Cdelta%20)) @@ -495,8 +563,8 @@ def nnCostFunction(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,L # 梯度 def nnGradient(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,Lambda): length = nn_params.shape[0] - Theta1 = nn_params[0:hidden_layer_size*(input_layer_size+1)].reshape(hidden_layer_size,input_layer_size+1) - Theta2 = nn_params[hidden_layer_size*(input_layer_size+1):length].reshape(num_labels,hidden_layer_size+1) + Theta1 = nn_params[0:hidden_layer_size*(input_layer_size+1)].reshape(hidden_layer_size,input_layer_size+1).copy() # 这里使用copy函数,否则下面修改Theta的值,nn_params也会一起修改 + Theta2 = nn_params[hidden_layer_size*(input_layer_size+1):length].reshape(num_labels,hidden_layer_size+1).copy() m = X.shape[0] class_y = np.zeros((m,num_labels)) # 数据的y对应0-9,需要映射为0/1的关系 # 映射y @@ -511,9 +579,8 @@ def nnGradient(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,Lambd Theta1_grad = np.zeros((Theta1.shape)) #第一层到第二层的权重 Theta2_grad = np.zeros((Theta2.shape)) #第二层到第三层的权重 - - Theta1[:,0] = 0; - Theta2[:,0] = 0; + + '''正向传播,每次需要补上一列1的偏置bias''' a1 = np.hstack((np.ones((m,1)),X)) z2 = np.dot(a1,np.transpose(Theta1)) @@ -522,15 +589,19 @@ def nnGradient(nn_params,input_layer_size,hidden_layer_size,num_labels,X,y,Lambd z3 = np.dot(a2,np.transpose(Theta2)) h = sigmoid(z3) + '''反向传播,delta为误差,''' delta3 = np.zeros((m,num_labels)) delta2 = np.zeros((m,hidden_layer_size)) for i in range(m): - delta3[i,:] = h[i,:]-class_y[i,:] + #delta3[i,:] = (h[i,:]-class_y[i,:])*sigmoidGradient(z3[i,:]) # 均方误差的误差率 + delta3[i,:] = h[i,:]-class_y[i,:] # 交叉熵误差率 Theta2_grad = Theta2_grad+np.dot(np.transpose(delta3[i,:].reshape(1,-1)),a2[i,:].reshape(1,-1)) delta2[i,:] = np.dot(delta3[i,:].reshape(1,-1),Theta2_x)*sigmoidGradient(z2[i,:]) Theta1_grad = Theta1_grad+np.dot(np.transpose(delta2[i,:].reshape(1,-1)),a1[i,:].reshape(1,-1)) + Theta1[:,0] = 0 + Theta2[:,0] = 0 '''梯度''' grad = (np.vstack((Theta1_grad.reshape(-1,1),Theta2_grad.reshape(-1,1)))+Lambda*np.vstack((Theta1.reshape(-1,1),Theta2.reshape(-1,1))))/m return np.ravel(grad) @@ -870,7 +941,295 @@ def runKMeans(X,initial_centroids,max_iters,plot_process): ---------------------- -六、PCA主成分分析(降维) +## 六、PCA主成分分析(降维) +- [全部代码](/PCA/PCA.py) + +### 1、用处 +- 数据压缩(Data Compression),使程序运行更快 +- 可视化数据,例如`3D-->2D`等 +- ...... + +### 2、2D-->1D,nD-->kD +- 如下图所示,所有数据点可以投影到一条直线,是**投影距离的平方和**(投影误差)最小 +![enter description here][41] +- 注意数据需要`归一化`处理 +- 思路是找`1`个`向量u`,所有数据投影到上面使投影距离最小 +- 那么`nD-->kD`就是找`k`个向量![$${u^{(1)}},{u^{(2)}} \ldots {u^{(k)}}$$](http://latex.codecogs.com/gif.latex?%24%24%7Bu%5E%7B%281%29%7D%7D%2C%7Bu%5E%7B%282%29%7D%7D%20%5Cldots%20%7Bu%5E%7B%28k%29%7D%7D%24%24),所有数据投影到上面使投影误差最小 + - eg:3D-->2D,2个向量![$${u^{(1)}},{u^{(2)}}$$](http://latex.codecogs.com/gif.latex?%24%24%7Bu%5E%7B%281%29%7D%7D%2C%7Bu%5E%7B%282%29%7D%7D%24%24)就代表一个平面了,所有点投影到这个平面的投影误差最小即可 + +### 3、主成分分析PCA与线性回归的区别 +- 线性回归是找`x`与`y`的关系,然后用于预测`y` +- `PCA`是找一个投影面,最小化data到这个投影面的投影误差 + +### 4、PCA降维过程 +- 数据预处理(均值归一化) + - 公式:![$${\rm{x}}_j^{(i)} = {{{\rm{x}}_j^{(i)} - {u_j}} \over {{s_j}}}$$](http://latex.codecogs.com/gif.latex?%24%24%7B%5Crm%7Bx%7D%7D_j%5E%7B%28i%29%7D%20%3D%20%7B%7B%7B%5Crm%7Bx%7D%7D_j%5E%7B%28i%29%7D%20-%20%7Bu_j%7D%7D%20%5Cover%20%7B%7Bs_j%7D%7D%7D%24%24) + - 就是减去对应feature的均值,然后除以对应特征的标准差(也可以是最大值-最小值) + - 实现代码: + ``` + # 归一化数据 + def featureNormalize(X): + '''(每一个数据-当前列的均值)/当前列的标准差''' + n = X.shape[1] + mu = np.zeros((1,n)); + sigma = np.zeros((1,n)) + + mu = np.mean(X,axis=0) + sigma = np.std(X,axis=0) + for i in range(n): + X[:,i] = (X[:,i]-mu[i])/sigma[i] + return X,mu,sigma + ``` +- 计算`协方差矩阵Σ`(Covariance Matrix):![$$\Sigma = {1 \over m}\sum\limits_{i = 1}^n {{x^{(i)}}{{({x^{(i)}})}^T}} $$](http://latex.codecogs.com/gif.latex?%24%24%5CSigma%20%3D%20%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5En%20%7B%7Bx%5E%7B%28i%29%7D%7D%7B%7B%28%7Bx%5E%7B%28i%29%7D%7D%29%7D%5ET%7D%7D%20%24%24) + - 注意这里的`Σ`和求和符号不同 + - 协方差矩阵`对称正定`(不理解正定的看看线代) + - 大小为`nxn`,`n`为`feature`的维度 + - 实现代码: + ``` + Sigma = np.dot(np.transpose(X_norm),X_norm)/m # 求Sigma + ``` +- 计算`Σ`的特征值和特征向量 + - 可以是用`svd`奇异值分解函数:`U,S,V = svd(Σ)` + - 返回的是与`Σ`同样大小的对角阵`S`(由`Σ`的特征值组成)[**注意**:`matlab`中函数返回的是对角阵,在`python`中返回的是一个向量,节省空间] + - 还有两个**酉矩阵**U和V,且![$$\Sigma = US{V^T}$$](http://latex.codecogs.com/gif.latex?%24%24%5CSigma%20%3D%20US%7BV%5ET%7D%24%24) + - ![enter description here][42] + - **注意**:`svd`函数求出的`S`是按特征值降序排列的,若不是使用`svd`,需要按**特征值**大小重新排列`U` +- 降维 + - 选取`U`中的前`K`列(假设要降为`K`维) + - ![enter description here][43] + - `Z`就是对应降维之后的数据 + - 实现代码: + ``` + # 映射数据 + def projectData(X_norm,U,K): + Z = np.zeros((X_norm.shape[0],K)) + + U_reduce = U[:,0:K] # 取前K个 + Z = np.dot(X_norm,U_reduce) + return Z + ``` +- 过程总结: + - `Sigma = X'*X/m` + - `U,S,V = svd(Sigma)` + - `Ureduce = U[:,0:k]` + - `Z = Ureduce'*x` + +### 5、数据恢复 + - 因为:![$${Z^{(i)}} = U_{reduce}^T*{X^{(i)}}$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7BZ%5E%7B%28i%29%7D%7D%20%3D%20U_%7Breduce%7D%5ET*%7BX%5E%7B%28i%29%7D%7D%24%24) + - 所以:![$${X_{approx}} = {(U_{reduce}^T)^{ - 1}}Z$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7BX_%7Bapprox%7D%7D%20%3D%20%7B%28U_%7Breduce%7D%5ET%29%5E%7B%20-%201%7D%7DZ%24%24) (注意这里是X的近似值) + - 又因为`Ureduce`为正定矩阵,【正定矩阵满足:![$$A{A^T} = {A^T}A = E$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24A%7BA%5ET%7D%20%3D%20%7BA%5ET%7DA%20%3D%20E%24%24),所以:![$${A^{ - 1}} = {A^T}$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7BA%5E%7B%20-%201%7D%7D%20%3D%20%7BA%5ET%7D%24%24)】,所以这里: + - ![$${X_{approx}} = {(U_{reduce}^{ - 1})^{ - 1}}Z = {U_{reduce}}Z$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7BX_%7Bapprox%7D%7D%20%3D%20%7B%28U_%7Breduce%7D%5E%7B%20-%201%7D%29%5E%7B%20-%201%7D%7DZ%20%3D%20%7BU_%7Breduce%7D%7DZ%24%24) + - 实现代码: +``` + # 恢复数据 + def recoverData(Z,U,K): + X_rec = np.zeros((Z.shape[0],U.shape[0])) + U_recude = U[:,0:K] + X_rec = np.dot(Z,np.transpose(U_recude)) # 还原数据(近似) + return X_rec +``` + +### 6、主成分个数的选择(即要降的维度) +- 如何选择 + - **投影误差**(project error):![$${1 \over m}\sum\limits_{i = 1}^m {||{x^{(i)}} - x_{approx}^{(i)}|{|^2}} $$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7C%7C%7Bx%5E%7B%28i%29%7D%7D%20-%20x_%7Bapprox%7D%5E%7B%28i%29%7D%7C%7B%7C%5E2%7D%7D%20%24%24) + - **总变差**(total variation):![$${1 \over m}\sum\limits_{i = 1}^m {||{x^{(i)}}|{|^2}} $$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7C%7C%7Bx%5E%7B%28i%29%7D%7D%7C%7B%7C%5E2%7D%7D%20%24%24) + - 若**误差率**(error ratio):![$${{{1 \over m}\sum\limits_{i = 1}^m {||{x^{(i)}} - x_{approx}^{(i)}|{|^2}} } \over {{1 \over m}\sum\limits_{i = 1}^m {||{x^{(i)}}|{|^2}} }} \le 0.01$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24%7B%7B%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7C%7C%7Bx%5E%7B%28i%29%7D%7D%20-%20x_%7Bapprox%7D%5E%7B%28i%29%7D%7C%7B%7C%5E2%7D%7D%20%7D%20%5Cover%20%7B%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7C%7C%7Bx%5E%7B%28i%29%7D%7D%7C%7B%7C%5E2%7D%7D%20%7D%7D%20%5Cle%200.01%24%24),则称`99%`保留差异性 + - 误差率一般取`1%,5%,10%`等 +- 如何实现 + - 若是一个个试的话代价太大 + - 之前`U,S,V = svd(Sigma)`,我们得到了`S`,这里误差率error ratio: + ![$$error{\kern 1pt} \;ratio = 1 - {{\sum\limits_{i = 1}^k {{S_{ii}}} } \over {\sum\limits_{i = 1}^n {{S_{ii}}} }} \le threshold$$](http://latex.codecogs.com/gif.latex?%5Cfn_cm%20%24%24error%7B%5Ckern%201pt%7D%20%5C%3Bratio%20%3D%201%20-%20%7B%7B%5Csum%5Climits_%7Bi%20%3D%201%7D%5Ek%20%7B%7BS_%7Bii%7D%7D%7D%20%7D%20%5Cover%20%7B%5Csum%5Climits_%7Bi%20%3D%201%7D%5En%20%7B%7BS_%7Bii%7D%7D%7D%20%7D%7D%20%5Cle%20threshold%24%24) + - 可以一点点增加`K`尝试。 + +### 7、使用建议 +- 不要使用PCA去解决过拟合问题`Overfitting`,还是使用正则化的方法(如果保留了很高的差异性还是可以的) +- 只有在原数据上有好的结果,但是运行很慢,才考虑使用PCA + +### 8、运行结果 +- 2维数据降为1维 + - 要投影的方向 +![enter description here][44] + - 2D降为1D及对应关系 +![enter description here][45] +- 人脸数据降维 + - 原始数据 + ![enter description here][46] + - 可视化部分`U`矩阵信息 + ![enter description here][47] + - 恢复数据 + ![enter description here][48] + +### 9、[使用scikit-learn库中的PCA实现降维](/PCA/PCA.py_scikit-learn.py) +- 导入需要的包: +``` +#-*- coding: utf-8 -*- +# Author:bob +# Date:2016.12.22 +import numpy as np +from matplotlib import pyplot as plt +from scipy import io as spio +from sklearn.decomposition import pca +from sklearn.preprocessing import StandardScaler +``` +- 归一化数据 +``` + '''归一化数据并作图''' + scaler = StandardScaler() + scaler.fit(X) + x_train = scaler.transform(X) +``` +- 使用PCA模型拟合数据,并降维 + - `n_components`对应要将的维度 +``` + '''拟合数据''' + K=1 # 要降的维度 + model = pca.PCA(n_components=K).fit(x_train) # 拟合数据,n_components定义要降的维度 + Z = model.transform(x_train) # transform就会执行降维操作 +``` + +- 数据恢复 + - `model.components_`会得到降维使用的`U`矩阵 +``` + '''数据恢复并作图''' + Ureduce = model.components_ # 得到降维用的Ureduce + x_rec = np.dot(Z,Ureduce) # 数据恢复 +``` + + + +--------------------------------------------------------------- + + +## 七、异常检测 Anomaly Detection +- [全部代码](/AnomalyDetection/AnomalyDetection.py) + +### 1、高斯分布(正态分布)`Gaussian distribution` +- 分布函数:![$$p(x) = {1 \over {\sqrt {2\pi } \sigma }}{e^{ - {{{{(x - u)}^2}} \over {2{\sigma ^2}}}}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24p%28x%29%20%3D%20%7B1%20%5Cover%20%7B%5Csqrt%20%7B2%5Cpi%20%7D%20%5Csigma%20%7D%7D%7Be%5E%7B%20-%20%7B%7B%7B%7B%28x%20-%20u%29%7D%5E2%7D%7D%20%5Cover%20%7B2%7B%5Csigma%20%5E2%7D%7D%7D%7D%7D%24%24) + - 其中,`u`为数据的**均值**,`σ`为数据的**标准差** + - `σ`越**小**,对应的图像越**尖** +- 参数估计(`parameter estimation`) + - ![$$u = {1 \over m}\sum\limits_{i = 1}^m {{x^{(i)}}} $$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24u%20%3D%20%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7Bx%5E%7B%28i%29%7D%7D%7D%20%24%24) + - ![$${\sigma ^2} = {1 \over m}\sum\limits_{i = 1}^m {{{({x^{(i)}} - u)}^2}} $$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%7B%5Csigma%20%5E2%7D%20%3D%20%7B1%20%5Cover%20m%7D%5Csum%5Climits_%7Bi%20%3D%201%7D%5Em%20%7B%7B%7B%28%7Bx%5E%7B%28i%29%7D%7D%20-%20u%29%7D%5E2%7D%7D%20%24%24) + +### 2、异常检测算法 +- 例子 + - 训练集:![$$\{ {x^{(1)}},{x^{(2)}}, \cdots {x^{(m)}}\} $$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%5C%7B%20%7Bx%5E%7B%281%29%7D%7D%2C%7Bx%5E%7B%282%29%7D%7D%2C%20%5Ccdots%20%7Bx%5E%7B%28m%29%7D%7D%5C%7D%20%24%24),其中![$$x \in {R^n}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24x%20%5Cin%20%7BR%5En%7D%24%24) + - 假设![$${x_1},{x_2} \cdots {x_n}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%7Bx_1%7D%2C%7Bx_2%7D%20%5Ccdots%20%7Bx_n%7D%24%24)相互独立,建立model模型:![$$p(x) = p({x_1};{u_1},\sigma _1^2)p({x_2};{u_2},\sigma _2^2) \cdots p({x_n};{u_n},\sigma _n^2) = \prod\limits_{j = 1}^n {p({x_j};{u_j},\sigma _j^2)} $$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24p%28x%29%20%3D%20p%28%7Bx_1%7D%3B%7Bu_1%7D%2C%5Csigma%20_1%5E2%29p%28%7Bx_2%7D%3B%7Bu_2%7D%2C%5Csigma%20_2%5E2%29%20%5Ccdots%20p%28%7Bx_n%7D%3B%7Bu_n%7D%2C%5Csigma%20_n%5E2%29%20%3D%20%5Cprod%5Climits_%7Bj%20%3D%201%7D%5En%20%7Bp%28%7Bx_j%7D%3B%7Bu_j%7D%2C%5Csigma%20_j%5E2%29%7D%20%24%24) +- 过程 + - 选择具有代表异常的`feature`:xi + - 参数估计:![$${u_1},{u_2}, \cdots ,{u_n};\sigma _1^2,\sigma _2^2 \cdots ,\sigma _n^2$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%7Bu_1%7D%2C%7Bu_2%7D%2C%20%5Ccdots%20%2C%7Bu_n%7D%3B%5Csigma%20_1%5E2%2C%5Csigma%20_2%5E2%20%5Ccdots%20%2C%5Csigma%20_n%5E2%24%24) + - 计算`p(x)`,若是`P(x)<ε`则认为异常,其中`ε`为我们要求的概率的临界值`threshold` +- 这里只是**单元高斯分布**,假设了`feature`之间是独立的,下面会讲到**多元高斯分布**,会自动捕捉到`feature`之间的关系 +- **参数估计**实现代码 +``` +# 参数估计函数(就是求均值和方差) +def estimateGaussian(X): + m,n = X.shape + mu = np.zeros((n,1)) + sigma2 = np.zeros((n,1)) + + mu = np.mean(X, axis=0) # axis=0表示列,每列的均值 + sigma2 = np.var(X,axis=0) # 求每列的方差 + return mu,sigma2 +``` + +### 3、评价`p(x)`的好坏,以及`ε`的选取 +- 对**偏斜数据**的错误度量 + - 因为数据可能是非常**偏斜**的(就是`y=1`的个数非常少,(`y=1`表示异常)),所以可以使用`Precision/Recall`,计算`F1Score`(在**CV交叉验证集**上) + - 例如:预测癌症,假设模型可以得到`99%`能够预测正确,`1%`的错误率,但是实际癌症的概率很小,只有`0.5%`,那么我们始终预测没有癌症y=0反而可以得到更小的错误率。使用`error rate`来评估就不科学了。 + - 如下图记录: + ![enter description here][49] + - ![$$\Pr ecision = {{TP} \over {TP + FP}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%5CPr%20ecision%20%3D%20%7B%7BTP%7D%20%5Cover%20%7BTP%20+%20FP%7D%7D%24%24) ,即:**正确预测正样本/所有预测正样本** + - ![$${\mathop{\rm Re}\nolimits} {\rm{call}} = {{TP} \over {TP + FN}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%7B%5Cmathop%7B%5Crm%20Re%7D%5Cnolimits%7D%20%7B%5Crm%7Bcall%7D%7D%20%3D%20%7B%7BTP%7D%20%5Cover%20%7BTP%20+%20FN%7D%7D%24%24) ,即:**正确预测正样本/真实值为正样本** + - 总是让`y=1`(较少的类),计算`Precision`和`Recall` + - ![$${F_1}Score = 2{{PR} \over {P + R}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%7BF_1%7DScore%20%3D%202%7B%7BPR%7D%20%5Cover%20%7BP%20+%20R%7D%7D%24%24) + - 还是以癌症预测为例,假设预测都是no-cancer,TN=199,FN=1,TP=0,FP=0,所以:Precision=0/0,Recall=0/1=0,尽管accuracy=199/200=99.5%,但是不可信。 + +- `ε`的选取 + - 尝试多个`ε`值,使`F1Score`的值高 +- 实现代码 +``` +# 选择最优的epsilon,即:使F1Score最大 +def selectThreshold(yval,pval): + '''初始化所需变量''' + bestEpsilon = 0. + bestF1 = 0. + F1 = 0. + step = (np.max(pval)-np.min(pval))/1000 + '''计算''' + for epsilon in np.arange(np.min(pval),np.max(pval),step): + cvPrecision = pval bestF1: # 修改最优的F1 Score + bestF1 = F1 + bestEpsilon = epsilon + return bestEpsilon,bestF1 +``` + +### 4、选择使用什么样的feature(单元高斯分布) +- 如果一些数据不是满足高斯分布的,可以变化一下数据,例如`log(x+C),x^(1/2)`等 +- 如果`p(x)`的值无论异常与否都很大,可以尝试组合多个`feature`,(因为feature之间可能是有关系的) + +### 5、多元高斯分布 +- 单元高斯分布存在的问题 + - 如下图,红色的点为异常点,其他的都是正常点(比如CPU和memory的变化) + ![enter description here][50] + - x1对应的高斯分布如下: + ![enter description here][51] + - x2对应的高斯分布如下: + ![enter description here][52] + - 可以看出对应的p(x1)和p(x2)的值变化并不大,就不会认为异常 + - 因为我们认为feature之间是相互独立的,所以如上图是以**正圆**的方式扩展 +- 多元高斯分布 + - ![$$x \in {R^n}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24x%20%5Cin%20%7BR%5En%7D%24%24),并不是建立`p(x1),p(x2)...p(xn)`,而是统一建立`p(x)` + - 其中参数:![$$\mu \in {R^n},\Sigma \in {R^{n \times {\rm{n}}}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%5Cmu%20%5Cin%20%7BR%5En%7D%2C%5CSigma%20%5Cin%20%7BR%5E%7Bn%20%5Ctimes%20%7B%5Crm%7Bn%7D%7D%7D%7D%24%24),`Σ`为**协方差矩阵** + - ![$$p(x) = {1 \over {{{(2\pi )}^{{n \over 2}}}|\Sigma {|^{{1 \over 2}}}}}{e^{ - {1 \over 2}{{(x - u)}^T}{\Sigma ^{ - 1}}(x - u)}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24p%28x%29%20%3D%20%7B1%20%5Cover%20%7B%7B%7B%282%5Cpi%20%29%7D%5E%7B%7Bn%20%5Cover%202%7D%7D%7D%7C%5CSigma%20%7B%7C%5E%7B%7B1%20%5Cover%202%7D%7D%7D%7D%7D%7Be%5E%7B%20-%20%7B1%20%5Cover%202%7D%7B%7B%28x%20-%20u%29%7D%5ET%7D%7B%5CSigma%20%5E%7B%20-%201%7D%7D%28x%20-%20u%29%7D%7D%24%24) + - 同样,`|Σ|`越小,`p(x)`越尖 + - 例如: + ![enter description here][53], + 表示x1,x2**正相关**,即x1越大,x2也就越大,如下图,也就可以将红色的异常点检查出了 + ![enter description here][54] + 若: + ![enter description here][55], + 表示x1,x2**负相关** +- 实现代码: +``` +# 多元高斯分布函数 +def multivariateGaussian(X,mu,Sigma2): + k = len(mu) + if (Sigma2.shape[0]>1): + Sigma2 = np.diag(Sigma2) + '''多元高斯分布函数''' + X = X-mu + argu = (2*np.pi)**(-k/2)*np.linalg.det(Sigma2)**(-0.5) + p = argu*np.exp(-0.5*np.sum(np.dot(X,np.linalg.inv(Sigma2))*X,axis=1)) # axis表示每行 + return p +``` +### 6、单元和多元高斯分布特点 +- 单元高斯分布 + - 人为可以捕捉到`feature`之间的关系时可以使用 + - 计算量小 +- 多元高斯分布 + - 自动捕捉到相关的feature + - 计算量大,因为:![$$\Sigma \in {R^{n \times {\rm{n}}}}$$](http://latex.codecogs.com/png.latex?%5Cfn_cm%20%24%24%5CSigma%20%5Cin%20%7BR%5E%7Bn%20%5Ctimes%20%7B%5Crm%7Bn%7D%7D%7D%7D%24%24) + - `m>n`或`Σ`可逆时可以使用。(若不可逆,可能有冗余的x,因为线性相关,不可逆,或者就是m