From c53cf4ff4e93ed6402211fb366f8c940180f305f Mon Sep 17 00:00:00 2001 From: jiangzhonglian Date: Wed, 8 Mar 2017 01:09:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E5=AE=8C=EF=BC=9A=E5=9B=9E?= =?UTF-8?q?=E5=BD=92=E6=A0=91=20VS=20=E6=A8=A1=E5=9E=8B=E6=A0=91=20VS=20?= =?UTF-8?q?=E7=BA=BF=E6=80=A7=E5=9B=9E=E5=BD=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/python/09.RegTrees/regTrees.py | 224 ++++++++++++++++++++-------- src/python/regression.py | 16 +- testData/RT_bikeSpeedVsIq_test.txt | 200 +++++++++++++++++++++++++ testData/RT_bikeSpeedVsIq_train.txt | 200 +++++++++++++++++++++++++ testData/RT_data3.txt | 200 +++++++++++++++++++++++++ testData/RT_data3test.txt | 200 +++++++++++++++++++++++++ testData/RT_data4.txt | 200 +++++++++++++++++++++++++ testData/Regression_data.txt | 200 +++++++++++++++++++++++++ 8 files changed, 1371 insertions(+), 69 deletions(-) create mode 100755 testData/RT_bikeSpeedVsIq_test.txt create mode 100755 testData/RT_bikeSpeedVsIq_train.txt create mode 100755 testData/RT_data3.txt create mode 100755 testData/RT_data3test.txt create mode 100755 testData/RT_data4.txt create mode 100755 testData/Regression_data.txt diff --git a/src/python/09.RegTrees/regTrees.py b/src/python/09.RegTrees/regTrees.py index bfe43a74..11a8be85 100644 --- a/src/python/09.RegTrees/regTrees.py +++ b/src/python/09.RegTrees/regTrees.py @@ -38,9 +38,12 @@ def binSplitDataSet(dataSet, feature, value): """binSplitDataSet(将数据集,按照feature列的value进行 二元切分) Args: - fileName 文件名 + dataMat 数据集 + feature 特征列 + value 特征列要比较的值 Returns: - dataMat 每一行的数据集array类型 + mat0 小于的数据集在左边 + mat1 大于的数据集在右边 Raises: """ # # 测试案例 @@ -50,8 +53,8 @@ def binSplitDataSet(dataSet, feature, value): # dataSet[:, feature] 取去每一行中,第1列的值(从0开始算) # nonzero(dataSet[:, feature] > value) 返回结果为true行的index下标 - mat0 = dataSet[nonzero(dataSet[:, feature] > value)[0], :] - mat1 = dataSet[nonzero(dataSet[:, feature] <= value)[0], :] + mat0 = dataSet[nonzero(dataSet[:, feature] <= value)[0], :] + mat1 = dataSet[nonzero(dataSet[:, feature] > value)[0], :] return mat0, mat1 @@ -92,7 +95,6 @@ def chooseBestSplit(dataSet, leafType=regLeaf, errType=regErr, ops=(1, 4)): return None, leafType(dataSet) # 计算行列值 m, n = shape(dataSet) - print m, n # 无分类误差的总方差和 # the choice of the best feature is driven by Reduction in RSS error from mean S = errType(dataSet) @@ -134,89 +136,136 @@ def createTree(dataSet, leafType=regLeaf, errType=regErr, ops=(1, 4)): retTree = {} retTree['spInd'] = feat retTree['spVal'] = val + # 大于在右边,小于在左边 lSet, rSet = binSplitDataSet(dataSet, feat, val) - retTree['right'] = createTree(lSet, leafType, errType, ops) - retTree['left'] = createTree(rSet, leafType, errType, ops) + # 递归的进行调用 + retTree['left'] = createTree(lSet, leafType, errType, ops) + retTree['right'] = createTree(rSet, leafType, errType, ops) return retTree -def linearSolve(dataSet): #helper function used in two places - m,n = shape(dataSet) - X = mat(ones((m,n))); Y = mat(ones((m,1)))#create a copy of data with 1 in 0th postion - X[:,1:n] = dataSet[:,0:n-1]; Y = dataSet[:,-1]#and strip out Y - xTx = X.T*X - if linalg.det(xTx) == 0.0: - raise NameError('This matrix is singular, cannot do inverse,\n\ - try increasing the second value of ops') - ws = xTx.I * (X.T * Y) - return ws,X,Y - -def modelLeaf(dataSet):#create linear model and return coeficients - ws,X,Y = linearSolve(dataSet) - return ws - -def modelErr(dataSet): - ws,X,Y = linearSolve(dataSet) - yHat = X * ws - return sum(power(Y - yHat,2)) - - - +# 判断节点是否是一个字典 def isTree(obj): - return (type(obj).__name__=='dict') + return (type(obj).__name__ == 'dict') + +# 计算左右枝丫的均值 def getMean(tree): - if isTree(tree['right']): tree['right'] = getMean(tree['right']) - if isTree(tree['left']): tree['left'] = getMean(tree['left']) + if isTree(tree['right']): + tree['right'] = getMean(tree['right']) + if isTree(tree['left']): + tree['left'] = getMean(tree['left']) return (tree['left']+tree['right'])/2.0 - + + +# 检查是否适合合并分枝 def prune(tree, testData): - if shape(testData)[0] == 0: return getMean(tree) #if we have no test data collapse the tree - if (isTree(tree['right']) or isTree(tree['left'])):#if the branches are not trees try to prune them + # 判断是否测试数据集没有数据 + if shape(testData)[0] == 0: + return getMean(tree) + # 对测试进行分支,看属于哪只分支,然后返回tree结果的均值 + if (isTree(tree['right']) or isTree(tree['left'])): lSet, rSet = binSplitDataSet(testData, tree['spInd'], tree['spVal']) - if isTree(tree['left']): tree['left'] = prune(tree['left'], lSet) - if isTree(tree['right']): tree['right'] = prune(tree['right'], rSet) - #if they are now both leafs, see if we can merge them + if isTree(tree['left']): + tree['left'] = prune(tree['left'], lSet) + if isTree(tree['right']): + tree['right'] = prune(tree['right'], rSet) + + # 如果左右两边无子分支,那么计算一下总方差 和 该结果集的本身不分枝的总方差比较 + # 1.如果测试数据集足够大,将tree进行分支到最后 + # 2.如果测试数据集不够大,那么就无法进行合并 + # 注意返回的结果: 是合并后对原来为字典tree进行赋值,相当于进行了合并 if not isTree(tree['left']) and not isTree(tree['right']): lSet, rSet = binSplitDataSet(testData, tree['spInd'], tree['spVal']) - errorNoMerge = sum(power(lSet[:,-1] - tree['left'],2)) +\ - sum(power(rSet[:,-1] - tree['right'],2)) - treeMean = (tree['left']+tree['right'])/2.0 - errorMerge = sum(power(testData[:,-1] - treeMean,2)) - if errorMerge < errorNoMerge: + # power(x, y)表示x的y次方 + errorNoMerge = sum(power(lSet[:, -1] - tree['left'], 2)) + sum(power(rSet[:, -1] - tree['right'], 2)) + treeMean = (tree['left'] + tree['right'])/2.0 + errorMerge = sum(power(testData[:, -1] - treeMean, 2)) + # 如果 合并的总方差 < 不合并的总方差,那么就进行合并 + if errorMerge < errorNoMerge: print "merging" return treeMean - else: return tree - else: return tree - + else: + return tree + else: + return tree + + +# 得到模型的ws系数:f(x) = x0 + x1*featrue1+ x3*featrue2 ... +# create linear model and return coeficients +def modelLeaf(dataSet): + ws, X, Y = linearSolve(dataSet) + return ws + + +# 计算线性模型的误差值 +def modelErr(dataSet): + ws, X, Y = linearSolve(dataSet) + yHat = X * ws + # print corrcoef(yHat, Y, rowvar=0) + return sum(power(Y - yHat, 2)) + + + # helper function used in two places +def linearSolve(dataSet): + m, n = shape(dataSet) + # 产生一个关于1的矩阵 + X = mat(ones((m, n))) + Y = mat(ones((m, 1))) + # X的0列为1,常数项,用于计算平衡误差 + X[:, 1: n] = dataSet[:, 0: n-1] + Y = dataSet[:, -1] + + # 转置矩阵*矩阵 + xTx = X.T * X + # 如果矩阵的逆不存在,会造成程序异常 + if linalg.det(xTx) == 0.0: + raise NameError('This matrix is singular, cannot do inverse,\ntry increasing the second value of ops') + # 最小二乘法求最优解 + ws = xTx.I * (X.T * Y) + return ws, X, Y + + +# 回归树测试案例 def regTreeEval(model, inDat): return float(model) + +# 模型树测试案例 def modelTreeEval(model, inDat): n = shape(inDat)[1] - X = mat(ones((1,n+1))) - X[:,1:n+1]=inDat - return float(X*model) + X = mat(ones((1, n+1))) + X[:, 1: n+1] = inDat + # print X, model + return float(X * model) + +# 计算预测的结果 def treeForeCast(tree, inData, modelEval=regTreeEval): - if not isTree(tree): return modelEval(tree, inData) - if inData[tree['spInd']] > tree['spVal']: - if isTree(tree['left']): return treeForeCast(tree['left'], inData, modelEval) - else: return modelEval(tree['left'], inData) + if not isTree(tree): + return modelEval(tree, inData) + if inData[tree['spInd']] <= tree['spVal']: + if isTree(tree['left']): + return treeForeCast(tree['left'], inData, modelEval) + else: + return modelEval(tree['left'], inData) else: - if isTree(tree['right']): return treeForeCast(tree['right'], inData, modelEval) - else: return modelEval(tree['right'], inData) - + if isTree(tree['right']): + return treeForeCast(tree['right'], inData, modelEval) + else: + return modelEval(tree['right'], inData) + + +# 预测结果 def createForeCast(tree, testData, modelEval=regTreeEval): - m=len(testData) - yHat = mat(zeros((m,1))) + m = len(testData) + yHat = mat(zeros((m, 1))) for i in range(m): - yHat[i,0] = treeForeCast(tree, mat(testData[i]), modelEval) + yHat[i, 0] = treeForeCast(tree, mat(testData[i]), modelEval) return yHat + if __name__ == "__main__": - - # # 测试数据集 # testMat = mat(eye(4)) # print testMat @@ -224,9 +273,52 @@ if __name__ == "__main__": # mat0, mat1 = binSplitDataSet(testMat, 1, 0.5) # print mat0, '\n-----------\n', mat1 - # 获取数据集 + # 回归树 # myDat = loadDataSet('testData/RT_data1.txt') - myDat = loadDataSet('testData/RT_data2.txt') - myMat = mat(myDat) - myTree = createTree(myMat) - print myTree + # myDat = loadDataSet('testData/RT_data2.txt') + # myMat = mat(myDat) + # myTree = createTree(myMat) + + # 1. 预剪枝就是,提起设置最大误差数和最少元素数 + # myDat = loadDataSet('testData/RT_data3.txt') + # myMat = mat(myDat) + # myTree = createTree(myMat, ops=(0, 1)) + # print myTree + + # 2.后剪枝 + # myDatTest = loadDataSet('testData/RT_data3test.txt') + # myMat2Test = mat(myDatTest) + # myFinalTree = prune(myTree, myMat2Test) + # print '\n\n\n-------------------' + # print myFinalTree + + # -------- + # 模型树求解 + # myDat = loadDataSet('testData/RT_data4.txt') + # myMat = mat(myDat) + # myTree = createTree(myMat, modelLeaf, modelErr) + # print myTree + + # 回归树 VS 模型树 VS 线性回归 + trainMat = mat(loadDataSet('testData/RT_bikeSpeedVsIq_train.txt')) + testMat = mat(loadDataSet('testData/RT_bikeSpeedVsIq_test.txt')) + # 回归树 + myTree1 = createTree(trainMat, ops=(1, 20)) + print myTree1 + yHat1 = createForeCast(myTree1, testMat[:, 0]) + print "回归树:", corrcoef(yHat1, testMat[:, 1],rowvar=0)[0, 1] + + # 模型树 + myTree2 = createTree(trainMat, modelLeaf, modelErr, ops=(1, 20)) + yHat2 = createForeCast(myTree2, testMat[:, 0], modelTreeEval) + print myTree2 + print "模型树:", corrcoef(yHat2, testMat[:, 1],rowvar=0)[0, 1] + + # 线性回归 + ws, X, Y = linearSolve(trainMat) + print ws + m = len(testMat[:, 0]) + yHat3 = mat(zeros((m, 1))) + for i in range(shape(testMat)[0]): + yHat3[i] = testMat[i, 0]*ws[1, 0] + ws[0, 0] + print "线性回归:", corrcoef(yHat3, testMat[:, 1],rowvar=0)[0, 1] diff --git a/src/python/regression.py b/src/python/regression.py index de328368..ab997872 100644 --- a/src/python/regression.py +++ b/src/python/regression.py @@ -11,6 +11,7 @@ import os from numpy import * import matplotlib.pylab as plt + def loadDataSet(fileName): #general function to parse tab -delimited floats numFeat = len(open(fileName).readline().split('\t')) - 1 #get number of fields dataMat = []; labelMat = [] @@ -24,6 +25,7 @@ def loadDataSet(fileName): #general function to parse tab -delimited floats labelMat.append(float(curLine[-1])) return dataMat,labelMat + def standRegres(xArr,yArr): # >>> A.T # transpose, 转置 xMat = mat(xArr); yMat = mat(yArr).T @@ -37,6 +39,7 @@ def standRegres(xArr,yArr): ws = xTx.I * (xMat.T*yMat) # 最小二乘法求最优解 return ws + def plotBestFit(xArr, yArr, ws): xMat = mat(xArr) @@ -60,6 +63,7 @@ def plotBestFit(xArr, yArr, ws): plt.xlabel('X'); plt.ylabel('Y') plt.show() + def main1(): # w0*x0+w1*x1+w2*x2=f(x) project_dir = os.path.dirname(os.path.dirname(os.getcwd())) @@ -91,6 +95,7 @@ def lwlr(testPoint, xArr, yArr,k=1.0): ws = xTx.I * (xMat.T * (weights * yMat)) return testPoint * ws + def lwlrTest(testArr,xArr,yArr,k=1.0): #loops over all the data points and applies lwlr to each one m = shape(testArr)[0] # m*1的矩阵 @@ -101,6 +106,7 @@ def lwlrTest(testArr,xArr,yArr,k=1.0): #loops over all the data points and appl yHat[i] = lwlr(testArr[i],xArr,yArr,k) return yHat + def lwlrTestPlot(xArr, yArr, yHat): xMat = mat(xArr) @@ -123,11 +129,13 @@ def lwlrTestPlot(xArr, yArr, yHat): plt.xlabel('X'); plt.ylabel('Y') plt.show() + def main2(): # w0*x0+w1*x1+w2*x2=f(x) - project_dir = os.path.dirname(os.path.dirname(os.getcwd())) + # project_dir = os.path.dirname(os.path.dirname(os.getcwd())) # 1.收集并准备数据 - xArr, yArr = loadDataSet("%s/resources/ex0.txt" % project_dir) + # xArr, yArr = loadDataSet("%s/resources/ex0.txt" % project_dir) + xArr, yArr = loadDataSet("testData/Regression_data.txt") # print xArr, '---\n', yArr # 2.训练模型, f(x)=a1*x1+b2*x2+..+nn*xn中 (a1,b2, .., nn).T的矩阵值 yHat = lwlrTest(xArr, xArr, yArr, 0.003) @@ -136,12 +144,14 @@ def main2(): # 数据可视化 lwlrTestPlot(xArr, yArr, yHat) -if __name__=="__main__": + +if __name__ == "__main__": # 线性回归 # main1() # 局部加权线性回归 main2() + def rssError(yArr,yHatArr): #yArr and yHatArr both need to be arrays return ((yArr-yHatArr)**2).sum() diff --git a/testData/RT_bikeSpeedVsIq_test.txt b/testData/RT_bikeSpeedVsIq_test.txt new file mode 100755 index 00000000..9fbf3e1f --- /dev/null +++ b/testData/RT_bikeSpeedVsIq_test.txt @@ -0,0 +1,200 @@ +12.000000 121.010516 +19.000000 157.337044 +12.000000 116.031825 +15.000000 132.124872 +2.000000 52.719612 +6.000000 39.058368 +3.000000 50.757763 +20.000000 166.740333 +11.000000 115.808227 +21.000000 165.582995 +3.000000 41.956087 +3.000000 34.432370 +13.000000 116.954676 +1.000000 32.112553 +7.000000 50.380243 +7.000000 94.107791 +23.000000 188.943179 +18.000000 152.637773 +9.000000 104.122082 +18.000000 127.805226 +0.000000 83.083232 +15.000000 148.180104 +3.000000 38.480247 +8.000000 77.597839 +7.000000 75.625803 +11.000000 124.620208 +13.000000 125.186698 +5.000000 51.165922 +3.000000 31.179113 +15.000000 132.505727 +19.000000 137.978043 +9.000000 106.481123 +20.000000 172.149955 +11.000000 104.116556 +4.000000 22.457996 +20.000000 175.735047 +18.000000 165.350412 +22.000000 177.461724 +16.000000 138.672986 +17.000000 156.791788 +19.000000 150.327544 +19.000000 156.992196 +23.000000 163.624262 +8.000000 92.537227 +3.000000 32.341399 +16.000000 144.445614 +11.000000 119.985586 +16.000000 145.149335 +12.000000 113.284662 +5.000000 47.742716 +11.000000 115.852585 +3.000000 31.579325 +1.000000 43.758671 +1.000000 61.049125 +13.000000 132.751826 +23.000000 163.233087 +12.000000 115.134296 +8.000000 91.370839 +8.000000 86.137955 +14.000000 120.857934 +3.000000 33.777477 +10.000000 110.831763 +10.000000 104.174775 +20.000000 155.920696 +4.000000 30.619132 +0.000000 71.880474 +7.000000 86.399516 +7.000000 72.632906 +5.000000 58.632985 +18.000000 143.584511 +23.000000 187.059504 +6.000000 65.067119 +6.000000 69.110280 +19.000000 142.388056 +15.000000 137.174489 +21.000000 159.719092 +9.000000 102.179638 +20.000000 176.416294 +21.000000 146.516385 +18.000000 147.808343 +23.000000 154.790810 +16.000000 137.385285 +18.000000 166.885975 +15.000000 136.989000 +20.000000 144.668679 +14.000000 137.060671 +19.000000 140.468283 +11.000000 98.344084 +16.000000 132.497910 +1.000000 59.143101 +20.000000 152.299381 +13.000000 134.487271 +0.000000 77.805718 +3.000000 28.543764 +10.000000 97.751817 +4.000000 41.223659 +11.000000 110.017015 +12.000000 119.391386 +20.000000 158.872126 +2.000000 38.776222 +19.000000 150.496148 +15.000000 131.505967 +22.000000 179.856157 +13.000000 143.090102 +14.000000 142.611861 +13.000000 120.757410 +4.000000 27.929324 +16.000000 151.530849 +15.000000 148.149702 +5.000000 44.188084 +16.000000 141.135406 +12.000000 119.817665 +8.000000 80.991524 +3.000000 29.308640 +6.000000 48.203468 +8.000000 92.179834 +22.000000 162.720371 +10.000000 91.971158 +2.000000 33.481943 +8.000000 88.528612 +1.000000 54.042173 +8.000000 92.002928 +5.000000 45.614646 +3.000000 34.319635 +14.000000 129.140558 +17.000000 146.807901 +17.000000 157.694058 +4.000000 37.080929 +20.000000 169.942381 +10.000000 114.675638 +5.000000 34.913029 +14.000000 137.889747 +0.000000 79.043129 +16.000000 139.084390 +6.000000 53.340135 +13.000000 142.772612 +0.000000 73.103173 +3.000000 37.717487 +15.000000 134.116395 +18.000000 138.748257 +23.000000 180.779121 +10.000000 93.721894 +23.000000 166.958335 +6.000000 74.473589 +6.000000 73.006291 +3.000000 34.178656 +1.000000 33.395482 +22.000000 149.933384 +18.000000 154.858982 +6.000000 66.121084 +1.000000 60.816800 +5.000000 55.681020 +6.000000 61.251558 +15.000000 125.452206 +16.000000 134.310255 +19.000000 167.999681 +5.000000 40.074830 +22.000000 162.658997 +12.000000 109.473909 +4.000000 44.743405 +11.000000 122.419496 +14.000000 139.852014 +21.000000 160.045407 +15.000000 131.999358 +15.000000 135.577799 +20.000000 173.494629 +8.000000 82.497177 +12.000000 123.122032 +10.000000 97.592026 +16.000000 141.345706 +8.000000 79.588881 +3.000000 54.308878 +4.000000 36.112937 +19.000000 165.005336 +23.000000 172.198031 +15.000000 127.699625 +1.000000 47.305217 +13.000000 115.489379 +8.000000 103.956569 +4.000000 53.669477 +0.000000 76.220652 +12.000000 114.153306 +6.000000 74.608728 +3.000000 41.339299 +5.000000 21.944048 +22.000000 181.455655 +20.000000 171.691444 +10.000000 104.299002 +21.000000 168.307123 +20.000000 169.556523 +23.000000 175.960552 +1.000000 42.554778 +14.000000 137.286185 +16.000000 136.126561 +12.000000 119.269042 +6.000000 63.426977 +4.000000 27.728212 +4.000000 32.687588 +23.000000 151.153204 +15.000000 129.767331 diff --git a/testData/RT_bikeSpeedVsIq_train.txt b/testData/RT_bikeSpeedVsIq_train.txt new file mode 100755 index 00000000..638d5c70 --- /dev/null +++ b/testData/RT_bikeSpeedVsIq_train.txt @@ -0,0 +1,200 @@ +3.000000 46.852122 +23.000000 178.676107 +0.000000 86.154024 +6.000000 68.707614 +15.000000 139.737693 +17.000000 141.988903 +12.000000 94.477135 +8.000000 86.083788 +9.000000 97.265824 +7.000000 80.400027 +8.000000 83.414554 +1.000000 52.525471 +16.000000 127.060008 +9.000000 101.639269 +14.000000 146.412680 +15.000000 144.157101 +17.000000 152.699910 +19.000000 136.669023 +21.000000 166.971736 +21.000000 165.467251 +3.000000 38.455193 +6.000000 75.557721 +4.000000 22.171763 +5.000000 50.321915 +0.000000 74.412428 +5.000000 42.052392 +1.000000 42.489057 +14.000000 139.185416 +21.000000 140.713725 +5.000000 63.222944 +5.000000 56.294626 +9.000000 91.674826 +22.000000 173.497655 +17.000000 152.692482 +9.000000 113.920633 +1.000000 51.552411 +9.000000 100.075315 +16.000000 137.803868 +18.000000 135.925777 +3.000000 45.550762 +16.000000 149.933224 +2.000000 27.914173 +6.000000 62.103546 +20.000000 173.942381 +12.000000 119.200505 +6.000000 70.730214 +16.000000 156.260832 +15.000000 132.467643 +19.000000 161.164086 +17.000000 138.031844 +23.000000 169.747881 +11.000000 116.761920 +4.000000 34.305905 +6.000000 68.841160 +10.000000 119.535227 +20.000000 158.104763 +18.000000 138.390511 +5.000000 59.375794 +7.000000 80.802300 +11.000000 108.611485 +10.000000 91.169028 +15.000000 154.104819 +5.000000 51.100287 +3.000000 32.334330 +15.000000 150.551655 +10.000000 111.023073 +0.000000 87.489950 +2.000000 46.726299 +7.000000 92.540440 +15.000000 135.715438 +19.000000 152.960552 +19.000000 162.789223 +21.000000 167.176240 +22.000000 164.323358 +12.000000 104.823071 +1.000000 35.554328 +11.000000 114.784640 +1.000000 36.819570 +12.000000 130.266826 +12.000000 126.053312 +18.000000 153.378289 +7.000000 70.089159 +15.000000 139.528624 +19.000000 157.137999 +23.000000 183.595248 +7.000000 73.431043 +11.000000 128.176167 +22.000000 183.181247 +13.000000 112.685801 +18.000000 161.634783 +6.000000 63.169478 +7.000000 63.393975 +19.000000 165.779578 +14.000000 143.973398 +22.000000 185.131852 +3.000000 45.275591 +6.000000 62.018003 +0.000000 83.193398 +7.000000 76.847802 +19.000000 147.087386 +7.000000 62.812086 +1.000000 49.910068 +11.000000 102.169335 +11.000000 105.108121 +6.000000 63.429817 +12.000000 121.301542 +17.000000 163.253962 +13.000000 119.588698 +0.000000 87.333807 +20.000000 144.484066 +21.000000 168.792482 +23.000000 159.751246 +20.000000 162.843592 +14.000000 145.664069 +19.000000 146.838515 +12.000000 132.049377 +18.000000 155.756119 +22.000000 155.686345 +7.000000 73.913958 +1.000000 66.761881 +7.000000 65.855450 +6.000000 56.271026 +19.000000 155.308523 +12.000000 124.372873 +17.000000 136.025960 +14.000000 132.996861 +21.000000 172.639791 +17.000000 135.672594 +8.000000 90.323742 +5.000000 62.462698 +16.000000 159.048794 +14.000000 139.991227 +3.000000 37.026678 +9.000000 100.839901 +9.000000 93.097395 +15.000000 123.645221 +15.000000 147.327185 +1.000000 40.055830 +0.000000 88.192829 +17.000000 139.174517 +22.000000 169.354493 +17.000000 136.354272 +9.000000 90.692829 +7.000000 63.987997 +14.000000 128.972231 +10.000000 108.433394 +2.000000 49.321034 +19.000000 171.615671 +9.000000 97.894855 +0.000000 68.962453 +9.000000 72.063371 +22.000000 157.000070 +12.000000 114.461754 +6.000000 58.239465 +9.000000 104.601048 +8.000000 90.772359 +22.000000 164.428791 +5.000000 34.804083 +5.000000 37.089459 +22.000000 177.987605 +10.000000 89.439608 +6.000000 70.711362 +23.000000 181.731482 +20.000000 151.538932 +7.000000 66.067228 +6.000000 61.565125 +20.000000 184.441687 +9.000000 91.569158 +9.000000 98.833425 +17.000000 144.352866 +9.000000 94.498314 +15.000000 121.922732 +18.000000 166.408274 +10.000000 89.571299 +8.000000 75.373772 +22.000000 161.001478 +8.000000 90.594227 +5.000000 57.180933 +20.000000 161.643007 +8.000000 87.197370 +8.000000 95.584308 +15.000000 126.207221 +7.000000 84.528209 +18.000000 161.056986 +10.000000 86.762615 +1.000000 33.325906 +9.000000 105.095502 +2.000000 22.440421 +9.000000 93.449284 +14.000000 106.249595 +21.000000 163.254385 +22.000000 161.746628 +20.000000 152.973085 +17.000000 122.918987 +7.000000 58.536412 +1.000000 45.013277 +13.000000 137.294148 +10.000000 88.123737 +2.000000 45.847376 +20.000000 163.385797 diff --git a/testData/RT_data3.txt b/testData/RT_data3.txt new file mode 100755 index 00000000..daf5acd5 --- /dev/null +++ b/testData/RT_data3.txt @@ -0,0 +1,200 @@ +0.228628 -2.266273 +0.965969 112.386764 +0.342761 -31.584855 +0.901444 87.300625 +0.585413 125.295113 +0.334900 18.976650 +0.769043 64.041941 +0.297107 -1.798377 +0.901421 100.133819 +0.176523 0.946348 +0.710234 108.553919 +0.981980 86.399637 +0.085873 -10.137104 +0.537834 90.995536 +0.806158 62.877698 +0.708890 135.416767 +0.787755 118.642009 +0.463241 17.171057 +0.300318 -18.051318 +0.815215 118.319942 +0.139880 7.336784 +0.068373 -15.160836 +0.457563 -34.044555 +0.665652 105.547997 +0.084661 -24.132226 +0.954711 100.935789 +0.953902 130.926480 +0.487381 27.729263 +0.759504 81.106762 +0.454312 -20.360067 +0.295993 -14.988279 +0.156067 7.557349 +0.428582 15.224266 +0.847219 76.240984 +0.499171 11.924204 +0.203993 -22.379119 +0.548539 83.114502 +0.790312 110.159730 +0.937766 119.949824 +0.218321 1.410768 +0.223200 15.501642 +0.896683 107.001620 +0.582311 82.589328 +0.698920 92.470636 +0.823848 59.342323 +0.385021 24.816941 +0.061219 6.695567 +0.841547 115.669032 +0.763328 115.199195 +0.934853 115.753994 +0.222271 -9.255852 +0.217214 -3.958752 +0.706961 106.180427 +0.888426 94.896354 +0.549814 137.267576 +0.107960 -1.293195 +0.085111 37.820659 +0.388789 21.578007 +0.467383 -9.712925 +0.623909 87.181863 +0.373501 -8.228297 +0.513332 101.075609 +0.350725 -40.086564 +0.716211 103.345308 +0.731636 73.912028 +0.273863 -9.457556 +0.211633 -8.332207 +0.944221 100.120253 +0.053764 -13.731698 +0.126833 22.891675 +0.952833 100.649591 +0.391609 3.001104 +0.560301 82.903945 +0.124723 -1.402796 +0.465680 -23.777531 +0.699873 115.586605 +0.164134 -27.405211 +0.455761 9.841938 +0.508542 96.403373 +0.138619 -29.087463 +0.335182 2.768225 +0.908629 118.513475 +0.546601 96.319043 +0.378965 13.583555 +0.968621 98.648346 +0.637999 91.656617 +0.350065 -1.319852 +0.632691 93.645293 +0.936524 65.548418 +0.310956 -49.939516 +0.437652 19.745224 +0.166765 -14.740059 +0.571214 114.872056 +0.952377 73.520802 +0.665329 121.980607 +0.258070 -20.425137 +0.912161 85.005351 +0.777582 100.838446 +0.642707 82.500766 +0.885676 108.045948 +0.080061 2.229873 +0.039914 11.220099 +0.958512 135.837013 +0.377383 5.241196 +0.661073 115.687524 +0.454375 3.043912 +0.412516 -26.419289 +0.854970 89.209930 +0.698472 120.521925 +0.465561 30.051931 +0.328890 39.783113 +0.309133 8.814725 +0.418943 44.161493 +0.553797 120.857321 +0.799873 91.368473 +0.811363 112.981216 +0.785574 107.024467 +0.949198 105.752508 +0.666452 120.014736 +0.652462 112.715799 +0.290749 -14.391613 +0.508548 93.292829 +0.680486 110.367074 +0.356790 -19.526539 +0.199903 -3.372472 +0.264926 5.280579 +0.166431 -6.512506 +0.370042 -32.124495 +0.628061 117.628346 +0.228473 19.425158 +0.044737 3.855393 +0.193282 18.208423 +0.519150 116.176162 +0.351478 -0.461116 +0.872199 111.552716 +0.115150 13.795828 +0.324274 -13.189243 +0.446196 -5.108172 +0.613004 168.180746 +0.533511 129.766743 +0.740859 93.773929 +0.667851 92.449664 +0.900699 109.188248 +0.599142 130.378529 +0.232802 1.222318 +0.838587 134.089674 +0.284794 35.623746 +0.130626 -39.524461 +0.642373 140.613941 +0.786865 100.598825 +0.403228 -1.729244 +0.883615 95.348184 +0.910975 106.814667 +0.819722 70.054508 +0.798198 76.853728 +0.606417 93.521396 +0.108801 -16.106164 +0.318309 -27.605424 +0.856421 107.166848 +0.842940 95.893131 +0.618868 76.917665 +0.531944 124.795495 +0.028546 -8.377094 +0.915263 96.717610 +0.925782 92.074619 +0.624827 105.970743 +0.331364 -1.290825 +0.341700 -23.547711 +0.342155 -16.930416 +0.729397 110.902830 +0.640515 82.713621 +0.228751 -30.812912 +0.948822 69.318649 +0.706390 105.062147 +0.079632 29.420068 +0.451087 -28.724685 +0.833026 76.723835 +0.589806 98.674874 +0.426711 -21.594268 +0.872883 95.887712 +0.866451 94.402102 +0.960398 123.559747 +0.483803 5.224234 +0.811602 99.841379 +0.757527 63.549854 +0.569327 108.435392 +0.841625 60.552308 +0.264639 2.557923 +0.202161 -1.983889 +0.055862 -3.131497 +0.543843 98.362010 +0.689099 112.378209 +0.956951 82.016541 +0.382037 -29.007783 +0.131833 22.478291 +0.156273 0.225886 +0.000256 9.668106 +0.892999 82.436686 +0.206207 -12.619036 +0.487537 5.149336 diff --git a/testData/RT_data3test.txt b/testData/RT_data3test.txt new file mode 100755 index 00000000..80880d1f --- /dev/null +++ b/testData/RT_data3test.txt @@ -0,0 +1,200 @@ +0.421862 10.830241 +0.105349 -2.241611 +0.155196 21.872976 +0.161152 2.015418 +0.382632 -38.778979 +0.017710 20.109113 +0.129656 15.266887 +0.613926 111.900063 +0.409277 1.874731 +0.807556 111.223754 +0.593722 133.835486 +0.953239 110.465070 +0.257402 15.332899 +0.645385 93.983054 +0.563460 93.645277 +0.408338 -30.719878 +0.874394 91.873505 +0.263805 -0.192752 +0.411198 10.751118 +0.449884 9.211901 +0.646315 113.533660 +0.673718 125.135638 +0.805148 113.300462 +0.759327 72.668572 +0.519172 82.131698 +0.741031 106.777146 +0.030937 9.859127 +0.268848 -34.137955 +0.474901 -11.201301 +0.588266 120.501998 +0.893936 142.826476 +0.870990 105.751746 +0.430763 39.146258 +0.057665 15.371897 +0.100076 9.131761 +0.980716 116.145896 +0.235289 -13.691224 +0.228098 16.089151 +0.622248 99.345551 +0.401467 -1.694383 +0.960334 110.795415 +0.031214 -5.330042 +0.504228 96.003525 +0.779660 75.921582 +0.504496 101.341462 +0.850974 96.293064 +0.701119 102.333839 +0.191551 5.072326 +0.667116 92.310019 +0.555584 80.367129 +0.680006 132.965442 +0.393899 38.605283 +0.048940 -9.861871 +0.963282 115.407485 +0.655496 104.269918 +0.576463 141.127267 +0.675708 96.227996 +0.853457 114.252288 +0.003933 -12.182861 +0.549512 97.927224 +0.218967 -4.712462 +0.659972 120.950439 +0.008256 8.026816 +0.099500 -14.318434 +0.352215 -3.747546 +0.874926 89.247356 +0.635084 99.496059 +0.039641 14.147109 +0.665111 103.298719 +0.156583 -2.540703 +0.648843 119.333019 +0.893237 95.209585 +0.128807 5.558479 +0.137438 5.567685 +0.630538 98.462792 +0.296084 -41.799438 +0.632099 84.895098 +0.987681 106.726447 +0.744909 111.279705 +0.862030 104.581156 +0.080649 -7.679985 +0.831277 59.053356 +0.198716 26.878801 +0.860932 90.632930 +0.883250 92.759595 +0.818003 110.272219 +0.949216 115.200237 +0.460078 -35.957981 +0.561077 93.545761 +0.863767 114.125786 +0.476891 -29.774060 +0.537826 81.587922 +0.686224 110.911198 +0.982327 119.114523 +0.944453 92.033481 +0.078227 30.216873 +0.782937 92.588646 +0.465886 2.222139 +0.885024 90.247890 +0.186077 7.144415 +0.915828 84.010074 +0.796649 115.572156 +0.127821 28.933688 +0.433429 6.782575 +0.946796 108.574116 +0.386915 -17.404601 +0.561192 92.142700 +0.182490 10.764616 +0.878792 95.289476 +0.381342 -6.177464 +0.358474 -11.731754 +0.270647 13.793201 +0.488904 -17.641832 +0.106773 5.684757 +0.270112 4.335675 +0.754985 75.860433 +0.585174 111.640154 +0.458821 12.029692 +0.218017 -26.234872 +0.583887 99.413850 +0.923626 107.802298 +0.833620 104.179678 +0.870691 93.132591 +0.249896 -8.618404 +0.748230 109.160652 +0.019365 34.048884 +0.837588 101.239275 +0.529251 115.514729 +0.742898 67.038771 +0.522034 64.160799 +0.498982 3.983061 +0.479439 24.355908 +0.314834 -14.256200 +0.753251 85.017092 +0.479362 -17.480446 +0.950593 99.072784 +0.718623 58.080256 +0.218720 -19.605593 +0.664113 94.437159 +0.942900 131.725134 +0.314226 18.904871 +0.284509 11.779346 +0.004962 -14.624176 +0.224087 -50.547649 +0.974331 112.822725 +0.894610 112.863995 +0.167350 0.073380 +0.753644 105.024456 +0.632241 108.625812 +0.314189 -6.090797 +0.965527 87.418343 +0.820919 94.610538 +0.144107 -4.748387 +0.072556 -5.682008 +0.002447 29.685714 +0.851007 79.632376 +0.458024 -12.326026 +0.627503 139.458881 +0.422259 -29.827405 +0.714659 63.480271 +0.672320 93.608554 +0.498592 37.112975 +0.698906 96.282845 +0.861441 99.699230 +0.112425 -12.419909 +0.164784 5.244704 +0.481531 -18.070497 +0.375482 1.779411 +0.089325 -14.216755 +0.036609 -6.264372 +0.945004 54.723563 +0.136608 14.970936 +0.292285 -41.723711 +0.029195 -0.660279 +0.998307 100.124230 +0.303928 -5.492264 +0.957863 117.824392 +0.815089 113.377704 +0.466399 -10.249874 +0.876693 115.617275 +0.536121 102.997087 +0.373984 -37.359936 +0.565162 74.967476 +0.085412 -21.449563 +0.686411 64.859620 +0.908752 107.983366 +0.982829 98.005424 +0.052766 -42.139502 +0.777552 91.899340 +0.374316 -3.522501 +0.060231 10.008227 +0.526225 87.317722 +0.583872 67.104433 +0.238276 10.615159 +0.678747 60.624273 +0.067649 15.947398 +0.530182 105.030933 +0.869389 104.969996 +0.698410 75.460417 +0.549430 82.558068 diff --git a/testData/RT_data4.txt b/testData/RT_data4.txt new file mode 100755 index 00000000..b9a4a34d --- /dev/null +++ b/testData/RT_data4.txt @@ -0,0 +1,200 @@ +0.070670 3.470829 +0.534076 6.377132 +0.747221 8.949407 +0.668970 8.034081 +0.586082 6.997721 +0.764962 9.318110 +0.658125 7.880333 +0.346734 4.213359 +0.313967 3.762496 +0.601418 7.188805 +0.404396 4.893403 +0.154345 3.683175 +0.984061 11.712928 +0.597514 7.146694 +0.005144 3.333150 +0.142295 3.743681 +0.280007 3.737376 +0.542008 6.494275 +0.466781 5.532255 +0.706970 8.476718 +0.191038 3.673921 +0.756591 9.176722 +0.912879 10.850358 +0.524701 6.067444 +0.306090 3.681148 +0.429009 5.032168 +0.695091 8.209058 +0.984495 11.909595 +0.702748 8.298454 +0.551771 6.715210 +0.272894 3.983313 +0.014611 3.559081 +0.699852 8.417306 +0.309710 3.739053 +0.444877 5.219649 +0.717509 8.483072 +0.576550 6.894860 +0.284200 3.792626 +0.675922 8.067282 +0.304401 3.671373 +0.233675 3.795962 +0.453779 5.477533 +0.900938 10.701447 +0.502418 6.046703 +0.781843 9.254690 +0.226271 3.546938 +0.619535 7.703312 +0.519998 6.202835 +0.399447 4.934647 +0.785298 9.497564 +0.010767 3.565835 +0.696399 8.307487 +0.524366 6.266060 +0.396583 4.611390 +0.059988 3.484805 +0.946702 11.263118 +0.417559 4.895128 +0.609194 7.239316 +0.730687 8.858371 +0.586694 7.061601 +0.829567 9.937968 +0.964229 11.521595 +0.276813 3.756406 +0.987041 11.947913 +0.876107 10.440538 +0.747582 8.942278 +0.117348 3.567821 +0.188617 3.976420 +0.416655 4.928907 +0.192995 3.978365 +0.244888 3.777018 +0.806349 9.685831 +0.417555 4.990148 +0.233805 3.740022 +0.357325 4.325355 +0.190201 3.638493 +0.705127 8.432886 +0.336599 3.868493 +0.473786 5.871813 +0.384794 4.830712 +0.502217 6.117244 +0.788220 9.454959 +0.478773 5.681631 +0.064296 3.642040 +0.332143 3.886628 +0.618869 7.312725 +0.854981 10.306697 +0.570000 6.764615 +0.512739 6.166836 +0.112285 3.545863 +0.723700 8.526944 +0.192256 3.661033 +0.181268 3.678579 +0.196731 3.916622 +0.510342 6.026652 +0.263713 3.723018 +0.141105 3.529595 +0.150262 3.552314 +0.824724 9.973690 +0.588088 6.893128 +0.411291 4.856380 +0.763717 9.199101 +0.212118 3.740024 +0.264587 3.742917 +0.973524 11.683243 +0.250670 3.679117 +0.823460 9.743861 +0.253752 3.781488 +0.838332 10.172180 +0.501156 6.113263 +0.097275 3.472367 +0.667199 7.948868 +0.487320 6.022060 +0.654640 7.809457 +0.906907 10.775188 +0.821941 9.936140 +0.859396 10.428255 +0.078696 3.490510 +0.938092 11.252471 +0.998868 11.863062 +0.025501 3.515624 +0.451806 5.441171 +0.883872 10.498912 +0.583567 6.912334 +0.823688 10.003723 +0.891032 10.818109 +0.879259 10.639263 +0.163007 3.662715 +0.344263 4.169705 +0.796083 9.422591 +0.903683 10.978834 +0.050129 3.575105 +0.605553 7.306014 +0.628951 7.556742 +0.877052 10.444055 +0.829402 9.856432 +0.121422 3.638276 +0.721517 8.663569 +0.066532 3.673471 +0.996587 11.782002 +0.653384 7.804568 +0.739494 8.817809 +0.640341 7.636812 +0.337828 3.971613 +0.220512 3.713645 +0.368815 4.381696 +0.782509 9.349428 +0.645825 7.790882 +0.277391 3.834258 +0.092569 3.643274 +0.284320 3.609353 +0.344465 4.023259 +0.182523 3.749195 +0.385001 4.426970 +0.747609 8.966676 +0.188907 3.711018 +0.806244 9.610438 +0.014211 3.517818 +0.574813 7.040672 +0.714500 8.525624 +0.538982 6.393940 +0.384638 4.649362 +0.915586 10.936577 +0.883513 10.441493 +0.804148 9.742851 +0.466011 5.833439 +0.800574 9.638874 +0.654980 8.028558 +0.348564 4.064616 +0.978595 11.720218 +0.915906 10.833902 +0.285477 3.818961 +0.988631 11.684010 +0.531069 6.305005 +0.181658 3.806995 +0.039657 3.356861 +0.893344 10.776799 +0.355214 4.263666 +0.783508 9.475445 +0.039768 3.429691 +0.546308 6.472749 +0.786882 9.398951 +0.168282 3.564189 +0.374900 4.399040 +0.737767 8.888536 +0.059849 3.431537 +0.861891 10.246888 +0.597578 7.112627 +0.126050 3.611641 +0.074795 3.609222 +0.634401 7.627416 +0.831633 9.926548 +0.019095 3.470285 +0.396533 4.773104 +0.794973 9.492009 +0.889088 10.420003 +0.003174 3.587139 +0.176767 3.554071 +0.943730 11.227731 +0.758564 8.885337 diff --git a/testData/Regression_data.txt b/testData/Regression_data.txt new file mode 100755 index 00000000..ad0df51b --- /dev/null +++ b/testData/Regression_data.txt @@ -0,0 +1,200 @@ +1.000000 0.067732 3.176513 +1.000000 0.427810 3.816464 +1.000000 0.995731 4.550095 +1.000000 0.738336 4.256571 +1.000000 0.981083 4.560815 +1.000000 0.526171 3.929515 +1.000000 0.378887 3.526170 +1.000000 0.033859 3.156393 +1.000000 0.132791 3.110301 +1.000000 0.138306 3.149813 +1.000000 0.247809 3.476346 +1.000000 0.648270 4.119688 +1.000000 0.731209 4.282233 +1.000000 0.236833 3.486582 +1.000000 0.969788 4.655492 +1.000000 0.607492 3.965162 +1.000000 0.358622 3.514900 +1.000000 0.147846 3.125947 +1.000000 0.637820 4.094115 +1.000000 0.230372 3.476039 +1.000000 0.070237 3.210610 +1.000000 0.067154 3.190612 +1.000000 0.925577 4.631504 +1.000000 0.717733 4.295890 +1.000000 0.015371 3.085028 +1.000000 0.335070 3.448080 +1.000000 0.040486 3.167440 +1.000000 0.212575 3.364266 +1.000000 0.617218 3.993482 +1.000000 0.541196 3.891471 +1.000000 0.045353 3.143259 +1.000000 0.126762 3.114204 +1.000000 0.556486 3.851484 +1.000000 0.901144 4.621899 +1.000000 0.958476 4.580768 +1.000000 0.274561 3.620992 +1.000000 0.394396 3.580501 +1.000000 0.872480 4.618706 +1.000000 0.409932 3.676867 +1.000000 0.908969 4.641845 +1.000000 0.166819 3.175939 +1.000000 0.665016 4.264980 +1.000000 0.263727 3.558448 +1.000000 0.231214 3.436632 +1.000000 0.552928 3.831052 +1.000000 0.047744 3.182853 +1.000000 0.365746 3.498906 +1.000000 0.495002 3.946833 +1.000000 0.493466 3.900583 +1.000000 0.792101 4.238522 +1.000000 0.769660 4.233080 +1.000000 0.251821 3.521557 +1.000000 0.181951 3.203344 +1.000000 0.808177 4.278105 +1.000000 0.334116 3.555705 +1.000000 0.338630 3.502661 +1.000000 0.452584 3.859776 +1.000000 0.694770 4.275956 +1.000000 0.590902 3.916191 +1.000000 0.307928 3.587961 +1.000000 0.148364 3.183004 +1.000000 0.702180 4.225236 +1.000000 0.721544 4.231083 +1.000000 0.666886 4.240544 +1.000000 0.124931 3.222372 +1.000000 0.618286 4.021445 +1.000000 0.381086 3.567479 +1.000000 0.385643 3.562580 +1.000000 0.777175 4.262059 +1.000000 0.116089 3.208813 +1.000000 0.115487 3.169825 +1.000000 0.663510 4.193949 +1.000000 0.254884 3.491678 +1.000000 0.993888 4.533306 +1.000000 0.295434 3.550108 +1.000000 0.952523 4.636427 +1.000000 0.307047 3.557078 +1.000000 0.277261 3.552874 +1.000000 0.279101 3.494159 +1.000000 0.175724 3.206828 +1.000000 0.156383 3.195266 +1.000000 0.733165 4.221292 +1.000000 0.848142 4.413372 +1.000000 0.771184 4.184347 +1.000000 0.429492 3.742878 +1.000000 0.162176 3.201878 +1.000000 0.917064 4.648964 +1.000000 0.315044 3.510117 +1.000000 0.201473 3.274434 +1.000000 0.297038 3.579622 +1.000000 0.336647 3.489244 +1.000000 0.666109 4.237386 +1.000000 0.583888 3.913749 +1.000000 0.085031 3.228990 +1.000000 0.687006 4.286286 +1.000000 0.949655 4.628614 +1.000000 0.189912 3.239536 +1.000000 0.844027 4.457997 +1.000000 0.333288 3.513384 +1.000000 0.427035 3.729674 +1.000000 0.466369 3.834274 +1.000000 0.550659 3.811155 +1.000000 0.278213 3.598316 +1.000000 0.918769 4.692514 +1.000000 0.886555 4.604859 +1.000000 0.569488 3.864912 +1.000000 0.066379 3.184236 +1.000000 0.335751 3.500796 +1.000000 0.426863 3.743365 +1.000000 0.395746 3.622905 +1.000000 0.694221 4.310796 +1.000000 0.272760 3.583357 +1.000000 0.503495 3.901852 +1.000000 0.067119 3.233521 +1.000000 0.038326 3.105266 +1.000000 0.599122 3.865544 +1.000000 0.947054 4.628625 +1.000000 0.671279 4.231213 +1.000000 0.434811 3.791149 +1.000000 0.509381 3.968271 +1.000000 0.749442 4.253910 +1.000000 0.058014 3.194710 +1.000000 0.482978 3.996503 +1.000000 0.466776 3.904358 +1.000000 0.357767 3.503976 +1.000000 0.949123 4.557545 +1.000000 0.417320 3.699876 +1.000000 0.920461 4.613614 +1.000000 0.156433 3.140401 +1.000000 0.656662 4.206717 +1.000000 0.616418 3.969524 +1.000000 0.853428 4.476096 +1.000000 0.133295 3.136528 +1.000000 0.693007 4.279071 +1.000000 0.178449 3.200603 +1.000000 0.199526 3.299012 +1.000000 0.073224 3.209873 +1.000000 0.286515 3.632942 +1.000000 0.182026 3.248361 +1.000000 0.621523 3.995783 +1.000000 0.344584 3.563262 +1.000000 0.398556 3.649712 +1.000000 0.480369 3.951845 +1.000000 0.153350 3.145031 +1.000000 0.171846 3.181577 +1.000000 0.867082 4.637087 +1.000000 0.223855 3.404964 +1.000000 0.528301 3.873188 +1.000000 0.890192 4.633648 +1.000000 0.106352 3.154768 +1.000000 0.917886 4.623637 +1.000000 0.014855 3.078132 +1.000000 0.567682 3.913596 +1.000000 0.068854 3.221817 +1.000000 0.603535 3.938071 +1.000000 0.532050 3.880822 +1.000000 0.651362 4.176436 +1.000000 0.901225 4.648161 +1.000000 0.204337 3.332312 +1.000000 0.696081 4.240614 +1.000000 0.963924 4.532224 +1.000000 0.981390 4.557105 +1.000000 0.987911 4.610072 +1.000000 0.990947 4.636569 +1.000000 0.736021 4.229813 +1.000000 0.253574 3.500860 +1.000000 0.674722 4.245514 +1.000000 0.939368 4.605182 +1.000000 0.235419 3.454340 +1.000000 0.110521 3.180775 +1.000000 0.218023 3.380820 +1.000000 0.869778 4.565020 +1.000000 0.196830 3.279973 +1.000000 0.958178 4.554241 +1.000000 0.972673 4.633520 +1.000000 0.745797 4.281037 +1.000000 0.445674 3.844426 +1.000000 0.470557 3.891601 +1.000000 0.549236 3.849728 +1.000000 0.335691 3.492215 +1.000000 0.884739 4.592374 +1.000000 0.918916 4.632025 +1.000000 0.441815 3.756750 +1.000000 0.116598 3.133555 +1.000000 0.359274 3.567919 +1.000000 0.814811 4.363382 +1.000000 0.387125 3.560165 +1.000000 0.982243 4.564305 +1.000000 0.780880 4.215055 +1.000000 0.652565 4.174999 +1.000000 0.870030 4.586640 +1.000000 0.604755 3.960008 +1.000000 0.255212 3.529963 +1.000000 0.730546 4.213412 +1.000000 0.493829 3.908685 +1.000000 0.257017 3.585821 +1.000000 0.833735 4.374394 +1.000000 0.070095 3.213817 +1.000000 0.527070 3.952681 +1.000000 0.116163 3.129283