diff --git a/MANIFEST.mf b/MANIFEST.mf new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/MANIFEST.mf @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/README.md b/README.md index 92f1eae..c03d5ea 100644 --- a/README.md +++ b/README.md @@ -1 +1,26 @@ # ClusteringAlgorithms-DataMining Project2 + +Step to run Project Components + +Part-1: Running Clustering Algorithms + +1. Extract project2.jar from Project.zip to any location on your system. +2. create data folder in same directory as project2.jar and add data files you want to run(ex cho.txt, iyer.txt) +3. Give the following commands to run specific clustering algorithm + 1. KMeans + java -cp project2.jar com.ub.cse601.project2.run.RunKMeans + 2. Hierarchical Clustering + java -cp project2.jar com.ub.cse601.project2.run.RunHierarchialClustering + 3. DBScan + java -cp project2.jar com.ub.cse601.project2.run.RunDBScan + + +Part-2: Running KMeans Map Reduce + +1. Follow steps 1 and 2 from part1. +2. create two new folders input and centroids inside data folder created in above step. +3. Give the following commands to run KMeans MR + java -cp project2.jar com.ub.cse601.project2.run.RunKMeansMR +4. Once MR Jobs are successful, Centroids folder contains inital centroid file used for MR(centroids_0.txt) as well as all intermediate centroid files + used in each iteration of MR job(centroid_1.txt, centroid_2.txt, ....). The last centroid file generated is the final converged centroid file. +5. Finally, output folder contains final output generated from MR jobs, which contains final centroids and their respective cluster data points assigned to. \ No newline at end of file diff --git a/data/centroids/centroids_0.txt b/data/centroids/centroids_0.txt new file mode 100644 index 0000000..711adad --- /dev/null +++ b/data/centroids/centroids_0.txt @@ -0,0 +1,10 @@ +1.0 0.93 2.16 2.27 0.9 1.04 0.83 0.67 0.72 0.44 0.47 0.47 +1.0 0.92 0.97 0.9 0.83 1.9 3.75 4.97 4.33 2.32 2.21 1.88 +1.0 0.96 1.49 1.48 3.59 4.14 3.03 3.57 2.06 2.2 2.28 1.86 +1.0 1.26 1.3 1.49 1.13 4.49 3.94 2.82 1.55 1.81 1.55 1.47 +1.0 1.11 0.88 1.79 1.47 1.87 3.0 4.03 2.31 1.01 0.68 0.7 +1.0 0.92 0.8 0.74 0.67 0.59 0.55 0.43 0.48 0.76 0.85 0.68 +1.0 1.01 4.73 10.62 3.0 3.62 1.61 1.06 0.86 1.67 1.53 0.8 +1.0 0.51 0.73 0.96 0.84 0.77 0.7 0.27 0.43 0.63 0.32 0.4 +1.0 1.31 0.92 1.17 1.03 0.88 0.56 0.49 0.62 0.81 1.04 1.1 +1.0 2.02 0.98 1.08 1.05 0.46 0.5 0.8 1.5 1.91 1.9 1.86 \ No newline at end of file diff --git a/data/centroids/centroids_1.txt b/data/centroids/centroids_1.txt new file mode 100644 index 0000000..2afca75 --- /dev/null +++ b/data/centroids/centroids_1.txt @@ -0,0 +1,10 @@ +1.0 1.2 2.16 2.44 1.55 1.39 1.18 1.07 0.82 0.69 0.71 0.68 +1.0 0.96 1.16 1.23 1.29 2.83 4.77 6.13 4.98 4.15 3.81 3.25 +1.0 1.32 2.4 3.8 3.94 5.47 4.67 4.5 2.67 1.79 1.88 1.99 +1.0 1.07 1.23 1.62 1.72 5.68 6.95 3.68 2.13 1.65 1.44 1.45 +1.0 0.93 1.19 1.39 1.48 2.12 2.33 2.72 2.26 1.39 1.31 1.13 +1.0 0.91 0.81 0.8 0.81 0.61 0.51 0.47 0.48 0.75 0.74 0.78 +1.0 1.86 4.17 8.35 4.94 3.39 2.75 2.65 1.58 1.55 1.47 1.24 +1.0 0.86 0.91 0.94 0.88 0.76 0.58 0.42 0.35 0.45 0.39 0.42 +1.0 1.06 1.05 1.04 1.05 0.86 0.71 0.66 0.7 0.93 1.0 1.09 +1.0 1.05 1.01 1.01 1.11 1.12 1.21 1.38 1.68 2.2 2.72 3.46 \ No newline at end of file diff --git a/data/centroids/centroids_10.txt b/data/centroids/centroids_10.txt new file mode 100644 index 0000000..a68f1d3 --- /dev/null +++ b/data/centroids/centroids_10.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.92 0.83 0.83 0.85 0.63 0.52 0.46 0.49 0.79 0.8 0.87 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.29 1.25 1.08 1.01 0.84 0.76 0.62 0.6 0.57 0.54 +1.0 0.95 0.97 1.02 1.11 1.43 1.5 1.8 2.03 1.97 2.04 2.08 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_11.txt b/data/centroids/centroids_11.txt new file mode 100644 index 0000000..85033ae --- /dev/null +++ b/data/centroids/centroids_11.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.92 0.83 0.84 0.85 0.63 0.52 0.46 0.48 0.79 0.79 0.87 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.06 1.31 1.26 1.1 1.02 0.86 0.78 0.64 0.61 0.58 0.55 +1.0 0.95 0.97 1.02 1.11 1.43 1.5 1.8 2.03 1.97 2.04 2.08 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_12.txt b/data/centroids/centroids_12.txt new file mode 100644 index 0000000..0b7406f --- /dev/null +++ b/data/centroids/centroids_12.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.92 0.83 0.84 0.85 0.63 0.52 0.46 0.48 0.78 0.79 0.86 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.06 1.31 1.27 1.12 1.06 0.88 0.81 0.67 0.62 0.59 0.56 +1.0 0.95 0.98 1.01 1.09 1.42 1.5 1.8 2.04 1.98 2.05 2.09 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_13.txt b/data/centroids/centroids_13.txt new file mode 100644 index 0000000..3037ba5 --- /dev/null +++ b/data/centroids/centroids_13.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.93 0.84 0.84 0.85 0.63 0.52 0.46 0.48 0.78 0.78 0.86 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.31 1.28 1.14 1.09 0.92 0.85 0.69 0.62 0.59 0.56 +1.0 0.95 0.98 1.01 1.08 1.41 1.49 1.79 2.04 2.0 2.07 2.11 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_14.txt b/data/centroids/centroids_14.txt new file mode 100644 index 0000000..3c59b1c --- /dev/null +++ b/data/centroids/centroids_14.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.93 0.84 0.85 0.85 0.64 0.52 0.46 0.48 0.78 0.78 0.85 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.32 1.29 1.16 1.12 0.94 0.88 0.7 0.62 0.59 0.55 +1.0 0.95 0.98 1.01 1.08 1.41 1.49 1.79 2.04 2.0 2.07 2.11 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_15.txt b/data/centroids/centroids_15.txt new file mode 100644 index 0000000..8b766ab --- /dev/null +++ b/data/centroids/centroids_15.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.93 0.85 0.85 0.85 0.64 0.52 0.46 0.48 0.77 0.78 0.85 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.33 1.29 1.17 1.16 0.98 0.92 0.74 0.63 0.6 0.55 +1.0 0.96 0.98 1.01 1.08 1.39 1.49 1.79 2.05 2.01 2.09 2.13 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_16.txt b/data/centroids/centroids_16.txt new file mode 100644 index 0000000..d664cf4 --- /dev/null +++ b/data/centroids/centroids_16.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.93 0.85 0.86 0.86 0.65 0.52 0.46 0.48 0.77 0.77 0.84 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.34 1.35 1.18 1.18 1.01 0.95 0.75 0.63 0.6 0.55 +1.0 0.96 0.98 1.01 1.08 1.39 1.49 1.79 2.05 2.01 2.09 2.13 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_17.txt b/data/centroids/centroids_17.txt new file mode 100644 index 0000000..c8a5362 --- /dev/null +++ b/data/centroids/centroids_17.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.85 0.86 0.86 0.65 0.53 0.47 0.48 0.77 0.77 0.84 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.03 1.35 1.36 1.23 1.23 1.05 0.98 0.79 0.64 0.61 0.56 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_18.txt b/data/centroids/centroids_18.txt new file mode 100644 index 0000000..8c30d23 --- /dev/null +++ b/data/centroids/centroids_18.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.86 0.86 0.86 0.65 0.53 0.47 0.49 0.76 0.77 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.03 1.36 1.39 1.26 1.27 1.08 1.01 0.81 0.65 0.62 0.56 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_19.txt b/data/centroids/centroids_19.txt new file mode 100644 index 0000000..21b7825 --- /dev/null +++ b/data/centroids/centroids_19.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.87 0.87 0.86 0.65 0.53 0.47 0.49 0.76 0.77 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.02 1.36 1.41 1.29 1.3 1.11 1.03 0.82 0.66 0.62 0.57 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_2.txt b/data/centroids/centroids_2.txt new file mode 100644 index 0000000..12e3ce1 --- /dev/null +++ b/data/centroids/centroids_2.txt @@ -0,0 +1,10 @@ +1.0 1.3 2.23 2.89 2.14 1.51 1.38 1.35 1.06 0.83 0.84 0.8 +1.0 0.99 1.07 1.25 1.4 3.36 5.85 7.66 6.14 5.26 4.77 4.0 +1.0 1.38 3.08 5.86 5.42 9.37 7.38 6.68 3.39 1.71 1.96 2.45 +1.0 1.11 1.33 1.59 2.03 8.19 15.39 7.46 3.36 1.95 1.38 1.3 +1.0 0.94 1.09 1.23 1.41 2.65 2.48 2.61 2.25 1.61 1.51 1.38 +1.0 0.9 0.78 0.79 0.81 0.6 0.48 0.44 0.47 0.77 0.76 0.82 +1.0 1.97 4.33 7.61 4.59 3.3 2.83 2.7 1.66 1.64 1.55 1.33 +1.0 0.94 1.02 0.98 0.88 0.74 0.59 0.47 0.39 0.48 0.44 0.45 +1.0 1.04 1.04 1.01 0.98 0.82 0.71 0.68 0.75 1.02 1.08 1.16 +1.0 1.05 1.09 1.1 1.16 1.17 1.27 1.43 1.65 2.39 3.08 4.0 \ No newline at end of file diff --git a/data/centroids/centroids_20.txt b/data/centroids/centroids_20.txt new file mode 100644 index 0000000..b5c0807 --- /dev/null +++ b/data/centroids/centroids_20.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.87 0.86 0.86 0.66 0.53 0.48 0.49 0.76 0.76 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.03 1.37 1.44 1.3 1.31 1.12 1.03 0.82 0.66 0.61 0.57 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_21.txt b/data/centroids/centroids_21.txt new file mode 100644 index 0000000..fa8b07d --- /dev/null +++ b/data/centroids/centroids_21.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.87 0.87 0.86 0.66 0.54 0.48 0.49 0.76 0.77 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.37 1.44 1.32 1.32 1.13 1.05 0.82 0.65 0.6 0.55 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_22.txt b/data/centroids/centroids_22.txt new file mode 100644 index 0000000..cd9fe02 --- /dev/null +++ b/data/centroids/centroids_22.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.88 0.87 0.86 0.66 0.54 0.48 0.49 0.76 0.76 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.37 1.46 1.36 1.35 1.16 1.08 0.83 0.65 0.6 0.55 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_23.txt b/data/centroids/centroids_23.txt new file mode 100644 index 0000000..a629ad7 --- /dev/null +++ b/data/centroids/centroids_23.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.88 0.87 0.86 0.66 0.54 0.48 0.49 0.76 0.76 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.06 1.37 1.46 1.38 1.35 1.16 1.1 0.84 0.65 0.6 0.54 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_24.txt b/data/centroids/centroids_24.txt new file mode 100644 index 0000000..48e1d82 --- /dev/null +++ b/data/centroids/centroids_24.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.88 0.88 0.86 0.67 0.54 0.48 0.49 0.76 0.76 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.06 1.36 1.46 1.4 1.36 1.17 1.12 0.85 0.65 0.59 0.54 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_25.txt b/data/centroids/centroids_25.txt new file mode 100644 index 0000000..48e1d82 --- /dev/null +++ b/data/centroids/centroids_25.txt @@ -0,0 +1,10 @@ +1.0 1.47 2.79 3.85 2.78 1.76 1.75 1.66 1.41 1.11 1.22 1.26 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.94 0.88 0.88 0.86 0.67 0.54 0.48 0.49 0.76 0.76 0.83 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.06 1.36 1.46 1.4 1.36 1.17 1.12 0.85 0.65 0.59 0.54 +1.0 0.96 0.98 1.02 1.06 1.38 1.48 1.79 2.05 2.02 2.1 2.14 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/centroids/centroids_3.txt b/data/centroids/centroids_3.txt new file mode 100644 index 0000000..4961174 --- /dev/null +++ b/data/centroids/centroids_3.txt @@ -0,0 +1,10 @@ +1.0 1.36 2.39 3.33 2.38 1.64 1.53 1.46 1.19 0.94 0.98 0.95 +1.0 1.04 1.05 1.37 1.81 4.34 6.86 9.68 7.57 7.08 6.16 5.07 +1.0 1.65 3.02 5.08 11.48 12.58 10.44 10.53 3.42 1.15 0.86 0.86 +1.0 1.58 2.95 5.64 3.81 23.83 41.47 19.51 11.3 5.8 4.35 4.91 +1.0 0.94 1.12 1.26 1.39 2.76 2.92 3.01 2.42 1.76 1.67 1.53 +1.0 0.88 0.75 0.78 0.81 0.59 0.47 0.42 0.45 0.77 0.76 0.83 +1.0 1.81 3.9 6.9 4.59 3.47 2.94 2.77 1.67 1.59 1.51 1.38 +1.0 0.99 1.14 1.05 0.94 0.79 0.65 0.54 0.46 0.52 0.48 0.48 +1.0 1.03 0.97 0.99 0.99 0.83 0.74 0.76 0.84 1.12 1.2 1.27 +1.0 1.06 1.11 1.11 1.15 1.16 1.3 1.44 1.67 2.44 3.23 4.28 \ No newline at end of file diff --git a/data/centroids/centroids_4.txt b/data/centroids/centroids_4.txt new file mode 100644 index 0000000..2ca6983 --- /dev/null +++ b/data/centroids/centroids_4.txt @@ -0,0 +1,10 @@ +1.0 1.39 2.49 3.59 2.58 1.71 1.62 1.5 1.2 0.98 1.01 0.98 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.65 3.02 5.08 11.48 12.58 10.44 10.53 3.42 1.15 0.86 0.86 +1.0 1.92 3.97 7.83 5.02 33.51 53.5 21.06 12.2 5.02 4.3 5.38 +1.0 0.94 1.1 1.25 1.42 2.86 3.09 3.21 2.48 1.82 1.72 1.55 +1.0 0.88 0.76 0.8 0.81 0.59 0.47 0.42 0.44 0.77 0.76 0.83 +1.0 1.81 3.9 6.9 4.59 3.47 2.94 2.77 1.67 1.59 1.51 1.38 +1.0 1.03 1.17 1.08 0.99 0.84 0.69 0.59 0.49 0.54 0.5 0.5 +1.0 1.0 0.98 0.99 0.97 0.88 0.85 0.91 1.08 1.26 1.37 1.46 +1.0 1.07 1.15 1.15 1.17 1.17 1.27 1.44 1.66 2.47 3.32 4.49 \ No newline at end of file diff --git a/data/centroids/centroids_5.txt b/data/centroids/centroids_5.txt new file mode 100644 index 0000000..9a9c150 --- /dev/null +++ b/data/centroids/centroids_5.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.52 3.56 2.71 1.72 1.6 1.51 1.25 1.07 1.09 1.11 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.95 1.11 1.28 1.44 2.99 3.23 3.33 2.51 1.83 1.74 1.57 +1.0 0.9 0.77 0.81 0.82 0.61 0.48 0.43 0.45 0.77 0.76 0.83 +1.0 1.81 3.9 6.9 4.59 3.47 2.94 2.77 1.67 1.59 1.51 1.38 +1.0 1.04 1.21 1.13 1.01 0.87 0.71 0.62 0.51 0.55 0.52 0.52 +1.0 0.98 0.99 0.98 1.0 1.01 1.03 1.14 1.33 1.47 1.6 1.64 +1.0 1.08 1.19 1.19 1.15 1.19 1.3 1.46 1.72 2.56 3.54 4.94 \ No newline at end of file diff --git a/data/centroids/centroids_6.txt b/data/centroids/centroids_6.txt new file mode 100644 index 0000000..3d295a0 --- /dev/null +++ b/data/centroids/centroids_6.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.59 3.72 2.75 1.73 1.71 1.64 1.39 1.15 1.25 1.31 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.96 1.12 1.29 1.46 3.08 3.35 3.42 2.5 1.86 1.76 1.59 +1.0 0.9 0.79 0.81 0.83 0.61 0.5 0.45 0.47 0.78 0.79 0.86 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.04 1.25 1.18 1.03 0.92 0.75 0.65 0.54 0.58 0.55 0.54 +1.0 0.99 0.96 0.99 1.07 1.18 1.2 1.41 1.65 1.65 1.78 1.83 +1.0 1.1 1.23 1.16 1.11 1.13 1.26 1.43 1.66 2.65 3.7 5.25 \ No newline at end of file diff --git a/data/centroids/centroids_7.txt b/data/centroids/centroids_7.txt new file mode 100644 index 0000000..a025ea4 --- /dev/null +++ b/data/centroids/centroids_7.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.15 1.34 1.48 3.27 3.55 3.54 2.48 1.82 1.71 1.55 +1.0 0.91 0.81 0.82 0.84 0.62 0.5 0.46 0.48 0.79 0.8 0.87 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.04 1.27 1.21 1.04 0.96 0.79 0.67 0.56 0.58 0.56 0.55 +1.0 0.97 0.97 1.02 1.13 1.3 1.35 1.63 1.88 1.79 1.89 1.91 +1.0 1.11 1.21 1.14 1.09 1.1 1.25 1.41 1.62 2.64 3.76 5.38 \ No newline at end of file diff --git a/data/centroids/centroids_8.txt b/data/centroids/centroids_8.txt new file mode 100644 index 0000000..3033b7f --- /dev/null +++ b/data/centroids/centroids_8.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.98 1.16 1.37 1.52 3.39 3.68 3.63 2.47 1.78 1.7 1.53 +1.0 0.92 0.82 0.83 0.84 0.63 0.51 0.46 0.49 0.8 0.8 0.88 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.04 1.29 1.24 1.07 0.98 0.81 0.71 0.58 0.59 0.55 0.54 +1.0 0.95 0.98 1.02 1.12 1.38 1.45 1.75 2.0 1.89 1.96 1.95 +1.0 1.12 1.24 1.16 1.09 1.11 1.28 1.43 1.63 2.63 3.81 5.5 \ No newline at end of file diff --git a/data/centroids/centroids_9.txt b/data/centroids/centroids_9.txt new file mode 100644 index 0000000..97e0711 --- /dev/null +++ b/data/centroids/centroids_9.txt @@ -0,0 +1,10 @@ +1.0 1.42 2.65 3.82 2.73 1.75 1.73 1.64 1.37 1.08 1.19 1.23 +1.0 1.01 1.1 1.49 1.94 4.6 8.28 10.84 8.57 8.05 6.75 5.62 +1.0 1.42 4.28 8.49 7.67 20.4 15.25 13.54 6.5 2.22 3.37 4.6 +1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +1.0 0.97 1.17 1.38 1.55 3.46 3.77 3.72 2.47 1.77 1.71 1.52 +1.0 0.92 0.82 0.83 0.85 0.63 0.51 0.46 0.49 0.79 0.81 0.88 +1.0 1.86 4.0 7.05 4.74 3.58 2.92 2.77 1.66 1.58 1.5 1.35 +1.0 1.05 1.29 1.23 1.08 1.0 0.83 0.74 0.6 0.59 0.55 0.53 +1.0 0.95 0.97 1.02 1.11 1.43 1.5 1.8 2.02 1.96 2.03 2.07 +1.0 1.14 1.3 1.21 1.12 1.08 1.23 1.34 1.57 2.62 3.96 5.86 \ No newline at end of file diff --git a/data/cho.txt b/data/cho.txt new file mode 100644 index 0000000..9eb7001 --- /dev/null +++ b/data/cho.txt @@ -0,0 +1,386 @@ +1 1 -0.69 -0.96 -1.16 -0.66 -0.55 0.12 -1.07 -1.22 0.82 1.4 0.71 0.68 0.11 -0.04 0.19 0.82 +2 1 -0.21 0.19 0.86 0.04 -0.35 -0.39 -0.51 -0.2 0.0 0.77 0.41 0.14 -0.45 -1.23 -0.325 0.0 +3 1 -0.3 -0.56 -0.29 -0.5 -0.27 -0.29 -0.56 -1.04 0.32 0.9 0.45 0.17 0.164 -0.12 -0.16 0.67 +4 1 0.07 0.26 -0.47 -0.68 -0.63 -0.39 0.07 0.79 0.58 0.31 -0.14 -0.29 -0.103 -0.2 -0.06 0.36 +5 1 -1.04 0.13 0.51 -0.44 -0.88 -0.32 0.21 0.95 1.07 0.38 0.01 -0.13 -0.78 -0.13 0.092 0.0 +6 1 -1.17 0.09 -0.52 -1.04 -1.16 -0.83 0.17 0.93 0.89 0.52 -0.24 -0.46 -0.215 0.2 0.91 0.68 +7 1 -0.16 0.35 -0.13 -0.26 -0.4 -0.47 0.1 0.74 0.45 0.04 -0.3 -0.3 -0.118 -0.59 0.14 0.2 +8 1 -0.89 0.77 -0.25 -0.71 -0.33 0.05 -0.15 -0.42 0.68 -0.06 0.17 -0.15 0.07 -0.046 -0.23 0.58 +9 1 -0.18 0.14 -0.04 -0.76 -0.68 -0.53 -0.37 0.19 0.81 0.56 0.03 -0.26 -0.13 -0.41 0.09 0.45 +10 1 -0.42 -0.57 0.08 -0.44 -0.36 -0.18 -0.15 0.56 0.63 0.48 -0.67 -0.45 0.096 -0.02 -0.05 0.6 +11 1 -0.15 0.32 0.23 -0.76 -1.16 -0.9 -0.23 0.28 0.45 0.99 0.2 -0.28 -0.53 0.014 0.0 0.54 +12 1 -1.18 -1.02 -1.74 -1.69 -0.82 -0.19 -0.31 0.72 0.76 1.43 0.44 0.0 0.266 0.22 0.47 1.16 +13 1 -0.29 -0.86 -1.21 -0.86 -0.54 -0.51 -0.92 -0.34 0.78 1.35 0.46 0.23 0.061 -0.51 0.16 1.05 +14 1 0.43 -0.38 -1.12 -0.92 -1.15 -1.19 -0.49 0.62 0.84 0.67 1.01 0.95 0.325 0.38 -0.21 -0.08 +15 1 1.03 -0.4 -1.25 -0.8 -0.42 -0.94 -1.11 -0.49 -0.19 1.05 0.78 0.27 0.204 0.36 0.28 1.1 +16 1 -0.39 -0.59 -0.54 -1.08 -0.63 0.12 -0.05 -0.8 -0.01 0.49 0.41 -0.06 0.099 0.12 0.5 1.09 +17 1 -0.05 -0.65 -0.71 -0.28 -0.25 -0.37 0.0 0.06 0.17 0.5 0.0 0.083 -0.19 0.34 0.09 0.27 +18 1 0.75 -0.54 -0.97 -0.61 -0.45 -0.08 -0.06 -0.09 -0.52 1.04 0.63 0.32 0.134 0.21 -0.03 -0.01 +19 1 0.78 0.45 0.26 -0.22 -0.38 -0.32 -0.55 -0.24 0.63 0.9 -0.01 -0.24 -1.5 -0.4 -0.52 0.24 +20 1 0.05 -0.61 -0.48 -0.86 -0.37 -0.2 -0.02 -0.45 0.01 0.29 0.24 0.04 0.173 0.14 0.7 0.75 +21 1 0.32 0.32 0.11 -0.52 -1.32 -0.85 -0.36 -0.36 0.11 0.68 0.32 0.09 0.02 0.188 0.25 0.31 +22 1 -0.17 -0.51 -0.7 -0.47 -0.07 -0.19 -0.12 -0.17 0.2 0.45 -0.07 0.0 0.159 0.3 0.24 0.66 +23 1 -0.02 0.5 -0.25 -0.85 -0.93 -0.62 -1.02 -0.98 0.28 1.0 0.75 0.38 0.05 0.371 0.01 0.76 +24 1 0.28 0.45 -1.18 -0.85 -0.33 0.03 -0.09 -0.27 0.24 0.5 0.31 0.35 -0.23 -0.01 0.192 0.0 +25 1 -0.26 0.24 0.61 0.34 0.57 -0.09 -0.13 -0.34 -0.46 0.19 0.026 -0.42 -0.17 -0.29 -0.05 -0.14 +26 1 1.48 1.43 0.98 0.49 -0.13 -0.55 -0.63 -0.21 -0.07 -0.41 -0.76 -1.03 -0.387 -0.63 -0.42 0.44 +27 1 -0.93 -0.93 -0.6 -0.62 -0.4 -0.32 -0.63 -0.65 0.07 1.07 0.37 0.07 0.178 0.18 0.72 1.08 +28 1 0.27 0.71 1.37 1.19 0.79 -0.15 -0.77 -1.15 -0.97 -0.05 -0.53 -0.66 -0.151 -0.18 -0.24 0.25 +29 1 0.38 0.022 0.027 -0.092 0.156 -0.477 0.194 -0.1 -0.141 -0.131 0.114 0.194 -0.036 -0.017 -0.134 0.0 +30 1 -0.652 -2.62 -2.18 -1.57 -1.31 -0.45 0.27 1.2 1.55 0.79 0.24 0.8 0.45 0.553 0.59 1.26 +31 1 0.54 -0.73 -1.33 -1.02 -0.6 0.0 -0.58 -1.05 0.01 1.34 1.0 0.39 0.21 0.027 -0.22 0.71 +32 1 -0.45 -0.1 1.04 0.44 0.07 0.27 0.17 -0.33 -0.37 0.41 0.17 0.04 -0.078 -0.24 -0.67 -0.76 +33 1 -0.091 -1.03 -1.19 -0.75 -0.2 -0.67 -0.41 -0.13 0.48 0.87 0.54 0.41 0.163 0.26 0.24 0.54 +34 1 -0.23 -0.8 -1.19 -0.47 -0.05 -0.2 -0.26 -0.49 0.39 0.5 0.45 0.19 0.196 0.16 0.6 0.62 +35 1 0.36 -0.67 -1.36 -0.72 -0.47 -0.3 -0.83 -0.46 0.21 0.57 0.5 0.26 0.244 0.35 1.03 0.64 +36 1 1.13 0.62 -0.07 -1.29 -1.89 -2.56 -1.01 0.69 1.03 1.12 0.44 -0.1 -0.93 -0.457 0.21 0.9 +37 1 -0.31 -0.12 -0.15 -0.53 -0.15 -0.44 -0.85 -0.33 0.55 0.67 0.56 0.17 -0.2 -0.14 0.341 0.0 +38 1 0.93 -0.28 -0.2 0.11 -0.33 -0.78 -0.85 0.17 0.92 0.73 0.48 0.33 -0.54 -0.39 -0.89 -0.63 +39 1 -0.46 -1.19 -2.23 -1.76 -0.72 0.23 -0.63 -0.95 0.39 2.07 1.43 0.87 0.58 0.16 0.267 0.0 +40 1 -0.72 -0.22 -1.09 -0.95 -0.34 -0.13 0.03 -0.26 -0.01 1.12 0.6 0.04 0.07 0.238 0.01 0.57 +41 1 -0.6 -0.14 -0.2 -0.64 -0.59 0.02 0.07 -0.4 0.31 0.74 0.19 0.01 -0.23 0.108 0.15 0.29 +42 1 -0.85 -1.42 -1.6 -0.79 -0.09 0.12 0.58 1.07 1.37 0.37 -0.08 -0.09 0.07 0.46 0.441 0.0 +43 1 0.11 0.33 -0.36 -1.02 -0.38 -0.4 0.11 0.77 1.45 0.14 -0.36 -1.29 -0.55 -0.17 0.23 0.49 +44 1 -0.26 0.33 -0.38 -0.13 0.0 -0.47 -0.39 0.19 0.51 0.29 -0.24 -0.58 -0.02 0.01 0.16 -0.16 +45 1 -0.11 -0.53 -1.13 -0.65 -0.35 -0.87 0.27 0.53 1.33 0.13 -0.19 -0.25 0.2 0.06 0.27 0.67 +46 1 -0.26 -0.75 -0.76 -0.44 -0.45 -0.2 -0.53 -0.72 -0.04 1.1 0.78 0.14 0.01 0.013 0.14 0.52 +47 1 -0.57 -0.95 -1.83 -1.13 -0.36 0.08 -0.72 -0.99 0.5 1.65 0.93 0.44 0.23 -0.21 -0.23 0.94 +48 1 -0.63 -0.88 0.06 -0.12 -0.36 0.02 -0.12 -0.08 0.05 0.85 0.41 0.2 0.028 -0.07 -0.35 0.24 +49 1 0.81 -0.25 -0.86 -0.77 -0.57 -0.85 -0.74 -0.3 0.03 0.54 0.53 0.26 0.12 0.21 0.08 1.03 +50 1 0.21 -0.34 -0.78 -0.49 -0.12 0.14 -0.63 -0.57 0.66 1.13 0.06 0.07 -0.36 -0.276 -0.71 0.0 +51 1 1.08 0.09 -0.51 -0.87 -1.25 -0.87 -0.6 -0.32 0.17 0.53 0.37 0.56 0.0 -0.15 0.26 0.74 +52 1 -0.04 -1.24 -1.53 -0.7 -0.38 -0.28 -0.43 -0.17 0.45 0.64 0.59 0.31 0.19 0.383 0.69 0.82 +53 1 0.39 0.34 -0.45 -0.38 -0.55 -0.45 -1.22 0.02 0.89 0.89 0.31 0.22 -1.05 -0.55 -0.1 0.6 +54 1 -0.27 -0.76 -1.4 -1.22 -0.69 -0.23 -0.28 -0.21 0.44 1.14 0.75 0.21 -0.1 0.243 0.44 0.83 +55 1 0.05 0.49 -0.35 -1.06 -0.36 -0.55 -0.46 0.46 0.68 0.71 0.5 -0.27 -0.45 -0.35 0.068 0.0 +56 1 -0.24 0.07 -1.37 -1.88 -0.53 -0.49 0.48 0.5 1.53 0.35 0.28 0.13 -0.28 0.16 0.184 0.0 +57 1 1.22 0.43 -0.96 -1.32 -1.03 -1.01 -0.83 -0.05 0.31 0.86 0.74 0.54 0.01 0.22 0.329 0.0 +58 1 1.0 0.25 -0.37 -0.35 -0.64 -0.17 -1.08 -0.68 -0.07 0.47 0.25 -0.2 0.15 0.079 0.29 0.42 +59 1 -0.02 0.3 -0.04 -0.02 -0.71 -0.76 -0.1 1.08 0.41 0.29 -0.48 -1.0 -0.41 -0.033 0.43 0.54 +60 1 -0.48 -0.86 -0.85 -0.96 -0.84 -0.75 0.25 0.02 -0.27 0.6 0.22 0.054 0.35 0.72 0.59 0.95 +61 1 0.95 0.15 -0.54 -0.25 -1.09 -0.87 -0.63 -0.59 -0.29 0.75 0.35 0.37 0.182 0.24 0.18 0.55 +62 1 0.28 -0.1 0.38 -0.21 -0.14 -0.44 -0.29 -0.11 0.0 0.32 0.19 -0.23 -0.1 0.051 -0.52 0.4 +63 1 0.59 -0.01 -0.03 -0.27 -0.43 -0.52 -0.82 -0.38 0.11 0.49 0.72 0.21 -0.088 -0.17 0.04 0.25 +64 1 0.14 0.02 0.26 -0.03 -0.32 -0.33 -0.57 -0.27 -0.62 0.62 0.39 -0.038 0.31 0.25 -0.14 -0.31 +65 1 -1.16 -0.57 0.34 -0.35 -0.55 -0.31 -1.04 -1.14 0.08 1.45 1.02 0.58 0.26 -0.2 0.134 0.0 +66 1 0.16 -0.96 -1.36 -1.41 -0.76 -0.53 -0.18 0.57 1.02 0.22 0.17 -0.21 0.07 0.419 1.16 0.87 +67 1 0.21 0.48 -0.18 -0.27 -0.38 -0.11 0.0 0.21 0.27 -0.41 -0.05 0.06 0.06 0.145 0.21 0.16 +68 2 -0.378 0.86 1.14 -0.11 -0.32 -0.26 -0.84 -1.11 -0.24 1.23 0.54 0.02 0.048 -0.66 -0.47 -0.41 +69 2 -0.21 0.72 1.89 0.63 -0.87 -0.75 -0.49 -1.2 -0.95 1.14 0.56 -0.06 -0.03 -0.512 -0.85 -0.49 +70 2 -1.04 -0.28 1.22 1.05 0.56 0.05 -0.48 -0.74 -0.88 0.86 0.81 0.41 -0.05 -0.297 -0.78 -0.99 +71 2 -0.575 0.21 0.57 0.53 0.14 0.16 -0.34 -0.66 -1.49 1.05 0.62 0.132 0.25 -0.23 -0.56 -0.59 +72 2 -0.417 0.83 1.67 1.49 0.19 -0.22 -0.62 -1.49 -1.81 1.05 0.83 0.27 -0.06 -0.482 -1.08 -1.17 +73 2 -0.093 0.85 1.47 0.54 0.03 -0.15 -0.28 -0.5 -1.57 0.52 0.86 0.049 -0.1 -0.39 -0.05 -1.05 +74 2 -0.33 0.16 1.32 0.43 -0.1 -0.2 -0.59 -0.32 -0.63 0.91 -0.13 -0.12 -0.1 -0.366 -0.6 -0.47 +75 2 -0.52 0.23 1.45 0.84 0.0 -0.4 -0.77 -1.1 -1.47 1.27 0.96 0.427 0.05 -0.32 -0.86 -0.56 +76 2 -0.55 0.15 1.1 0.75 0.02 -0.56 -0.52 -0.68 -0.53 0.83 0.52 0.34 0.0010 -0.26 -0.5 -0.45 +77 2 -0.68 0.02 1.16 0.6 -0.32 -0.03 -0.85 -0.85 -0.32 1.22 1.26 0.52 -0.14 -0.12 -1.12 -0.62 +78 2 -1.31 -0.3 1.0 0.38 -0.13 -0.01 -0.7 -0.81 -0.81 1.1 0.69 0.33 0.27 -0.21 -0.676 0.0 +79 2 -1.3 -0.1 0.74 0.28 -0.23 -0.28 -0.47 -0.12 0.17 0.96 0.72 0.34 -0.23 -0.1 -0.55 -0.36 +80 2 -1.08 -0.16 1.3 0.99 0.43 0.05 -0.34 -0.72 -1.24 0.92 0.8 0.348 0.06 -0.24 -0.66 -0.83 +81 2 -0.52 0.28 0.99 0.69 0.02 -0.13 -0.42 -0.76 -0.57 0.66 0.76 0.33 -0.047 -0.43 -0.57 -0.7 +82 2 -1.22 -0.11 0.29 0.04 -0.11 -0.31 -0.17 -0.43 -0.15 0.44 0.76 0.27 0.43 0.21 0.322 0.0 +83 2 -0.38 -0.11 1.21 1.04 0.46 0.41 -0.29 -0.75 -0.5 0.16 0.08 -0.03 0.26 -0.08 -0.88 -0.72 +84 2 -1.22 -0.64 1.08 0.84 0.09 -0.04 -0.19 -0.55 -0.5 0.99 0.43 0.43 0.095 0.0 -1.14 0.09 +85 2 -1.11 -0.29 0.93 0.46 0.42 0.14 -0.57 -0.74 -0.55 0.99 0.89 0.12 0.099 -0.26 -0.66 -0.08 +86 2 -0.3 -0.43 0.38 0.48 0.25 -0.13 -0.2 -0.24 -0.41 0.45 0.46 0.25 0.0 -0.18 -0.41 -0.28 +87 2 -0.29 -0.06 0.65 -0.14 -0.38 -0.06 -0.55 -0.87 -0.48 1.01 0.92 0.67 0.17 -0.48 -0.55 -0.01 +88 2 -0.45 0.3 1.12 0.77 -0.15 -0.34 -0.4 -0.8 -0.39 0.71 0.74 0.07 -0.091 -0.26 -0.53 -0.72 +89 2 -0.47 0.54 0.91 0.35 0.2 0.15 0.04 -0.07 0.11 0.51 0.12 -0.27 -0.33 -0.31 -0.91 -0.62 +90 2 -0.06 0.91 -0.37 -1.16 -1.01 -0.31 -0.41 -0.95 -1.41 1.67 1.03 0.772 0.76 0.52 -0.19 -0.06 +91 2 -0.31 0.73 2.04 1.22 0.34 -0.27 -0.7 -1.7 -0.54 1.04 0.7 0.79 -0.38 -1.11 -0.64 -0.88 +92 2 -0.24 0.41 1.19 0.45 -0.22 -0.27 -0.53 -0.54 -0.27 0.66 0.57 -0.01 -0.33 -0.283 -0.26 -0.53 +93 2 -0.65 0.01 1.52 0.48 -0.34 -0.71 -0.58 -0.94 -0.6 0.97 0.88 0.61 -0.087 -0.36 -0.71 -0.33 +94 2 -0.52 0.75 1.63 0.29 -0.06 -0.36 -0.5 -0.9 -0.65 1.06 0.59 0.16 0.022 -0.54 -0.88 -0.94 +95 2 -0.5 0.11 1.16 0.72 0.3 -0.45 -0.68 -0.98 -1.04 1.0 0.88 0.366 -0.06 -0.14 -0.77 -0.39 +96 2 -0.51 0.06 0.49 0.18 0.01 -0.29 0.02 -0.25 -0.43 0.23 0.15 -0.23 0.107 0.14 -0.09 0.05 +97 2 -0.2 0.14 0.73 0.3 -0.28 -0.12 -0.27 -0.22 -0.25 0.24 0.07 0.0 -0.1 -0.06 -0.17 -0.08 +98 2 -0.64 0.08 1.27 0.57 -0.34 -0.48 -0.64 -0.97 -0.61 1.13 0.66 0.23 0.0020 -0.32 -0.5 -0.33 +99 2 -0.483 0.88 1.6 0.75 0.04 -0.47 -1.15 -1.6 -1.66 0.92 0.95 0.68 0.2 -0.444 -0.74 -0.7 +100 2 -0.64 -0.42 0.58 0.66 0.52 -0.02 -0.42 -0.68 -0.44 0.29 0.51 0.163 0.23 -0.12 -0.22 -0.32 +101 2 -0.6 0.09 1.29 0.72 -0.23 0.09 -0.2 -0.57 -0.32 0.07 0.43 0.23 -0.087 -0.28 -0.27 -0.31 +102 2 -0.74 0.32 1.62 0.88 0.46 -0.15 -0.44 -1.19 -0.9 0.85 0.77 0.24 0.112 -0.44 -1.0 -0.87 +103 2 -0.4 0.29 1.47 0.79 -0.09 -0.48 -0.73 -0.79 -0.41 0.63 0.38 -0.24 0.1 -0.409 -0.56 -0.89 +104 2 -0.55 0.04 1.49 1.14 0.17 -0.31 -0.95 -1.48 -0.74 1.14 0.81 0.57 0.14 -0.392 -1.11 -0.54 +105 2 -0.22 -0.27 0.49 0.4 0.03 -0.29 -0.42 -0.57 -0.23 0.75 0.41 0.33 -0.15 -0.37 -0.52 -0.27 +106 2 -0.27 0.12 1.2 0.84 0.33 -0.19 -0.68 -0.99 -0.64 0.8 0.557 0.3 0.05 -0.29 -0.42 -0.56 +107 2 -0.49 0.51 1.41 1.23 0.28 -0.35 -1.16 -1.38 -1.16 1.03 1.25 1.06 -0.38 -0.65 -0.24 -0.44 +108 2 0.63 0.87 2.0 1.05 -0.77 -0.46 -1.82 -1.86 -0.1 0.92 -0.01 0.17 -0.75 -0.82 -0.476 0.0 +109 2 -0.02 0.76 1.43 0.5 -0.2 -0.43 -0.35 -0.73 -0.51 0.89 -0.2 0.07 -0.079 -0.6 -1.06 -0.36 +110 2 -0.72 -0.26 0.59 0.33 0.01 0.02 0.0 -0.11 -0.28 0.55 0.25 0.18 0.051 -0.01 0.08 -0.49 +111 2 -0.62 -0.43 1.38 0.79 0.19 -0.28 -0.62 -0.93 -0.83 1.12 1.09 0.32 0.04 -0.309 -1.16 -0.57 +112 2 0.42 0.2 -0.17 -0.57 -0.35 -0.5 -0.17 -0.17 0.26 0.52 0.27 -0.22 0.07 0.144 0.04 -0.07 +113 2 -0.98 0.07 1.44 1.14 0.47 -0.41 -0.83 -1.05 -0.56 0.76 1.02 0.5 0.0060 -0.57 -0.94 -0.71 +114 2 0.23 0.11 1.08 0.36 -0.07 -0.33 -0.39 -0.19 -0.57 0.83 0.28 -0.32 -0.118 -0.25 -0.7 -0.6 +115 2 -0.16 -0.54 1.09 0.51 -0.12 -0.41 -0.36 -0.52 -0.23 0.24 0.47 0.34 -0.16 -0.14 0.0 -0.52 +116 2 -0.05 -0.18 1.34 0.81 0.56 -0.19 -0.12 -1.06 -0.74 0.62 0.69 -0.07 0.15 -0.306 -0.89 -1.05 +117 2 -0.41 0.11 0.71 0.72 -0.03 -0.21 -0.38 -0.29 -0.62 0.73 0.56 0.2 -0.061 -0.1 -0.52 -0.62 +118 2 -0.36 0.41 1.48 0.92 0.48 0.14 -0.13 -0.43 -0.68 0.72 0.53 0.25 -0.36 -0.315 -1.34 -1.52 +119 2 0.11 0.18 1.02 0.61 0.16 0.13 -0.21 -0.22 -0.71 0.53 0.12 -0.06 -0.028 -0.01 -0.79 -0.83 +120 2 -0.6 0.19 0.84 0.21 -0.39 -1.04 -1.43 -1.64 -0.26 1.31 1.23 0.55 0.39 -0.2 -0.617 0.0 +121 2 -0.43 -0.06 0.72 0.35 -0.02 -0.59 -0.48 -0.98 -0.54 1.16 1.06 0.45 0.44 -0.293 -0.92 -0.36 +122 2 -0.54 0.49 1.87 0.86 -0.02 -0.27 -1.5 -1.54 -1.09 0.91 0.9 0.3 -0.12 -0.48 -0.789 0.0 +123 2 -0.525 0.83 1.54 0.39 -0.27 0.09 -0.51 -1.06 -1.5 1.35 0.6 0.04 0.271 -0.32 -0.93 -1.02 +124 2 -0.67 0.4 1.44 0.24 -1.26 0.03 -0.24 -0.77 -0.73 1.62 0.7 -0.01 0.0060 -0.28 -0.85 -0.5 +125 2 -1.55 -1.15 0.86 0.88 0.9 0.66 -0.09 -0.46 -1.09 0.21 0.77 0.43 0.328 0.27 0.36 -0.57 +126 2 -0.336 -0.99 1.71 0.42 -1.64 -0.71 -0.87 -1.24 -1.55 2.16 1.75 0.85 0.76 -0.2 -0.99 -0.52 +127 2 -1.45 0.43 0.04 -0.76 -1.66 -0.88 -1.7 -1.39 -0.32 1.25 1.11 0.516 0.71 0.92 1.07 1.51 +128 2 -0.95 -0.38 0.67 0.45 0.66 0.39 0.23 -0.46 -0.5 0.28 0.17 0.36 0.114 0.05 -0.28 -0.54 +129 2 1.22 0.09 -1.93 -1.16 -0.3 -0.47 -0.76 -1.09 0.1 1.12 1.0 0.42 0.13 0.0 0.28 0.64 +130 2 0.4 0.56 0.88 -0.01 -1.05 -0.7 -1.17 -0.25 0.33 -2.19 0.42 0.26 0.38 0.29 0.81 1.05 +131 2 0.51 0.35 0.84 -0.14 -0.22 -0.07 -0.14 -0.61 -0.59 0.63 0.5 0.36 -1.2 -0.304 -0.01 -0.11 +132 2 0.05 0.05 0.86 0.46 -0.6 -0.62 -0.92 -0.86 -0.35 0.65 0.19 0.16 0.12 -0.089 0.22 0.27 +133 2 0.09 0.03 0.39 -0.2 -0.63 -1.09 -0.97 -0.53 0.11 0.34 0.52 -0.08 0.11 0.12 0.25 0.59 +134 2 0.38 -0.72 -0.85 -0.53 -0.71 -0.61 -0.62 -0.2 0.35 0.79 0.59 0.41 0.2 0.29 0.3 0.49 +135 2 -0.22 0.69 1.86 1.05 -0.04 -0.28 -0.86 -1.25 -0.58 0.39 0.53 0.15 -0.34 -0.548 -0.84 -0.69 +136 2 -0.23 -0.05 0.86 0.19 0.57 -0.3 -0.08 -0.42 -0.48 0.53 0.54 0.024 -0.21 -0.32 -0.49 -0.44 +137 2 -1.31 -0.27 0.4 0.78 0.67 0.41 0.07 0.0 -0.11 0.35 0.26 0.407 0.08 -0.22 -0.3 -0.21 +138 2 -0.39 -0.16 0.47 0.11 0.11 -0.16 -0.46 -0.51 -0.34 0.24 0.36 0.18 0.059 0.02 0.26 -0.03 +139 2 -1.3 -0.2 1.65 0.78 -0.78 -0.2 -0.65 -1.52 -0.86 1.55 1.74 0.73 0.06 -0.11 -0.86 -0.58 +140 2 -1.5 -0.87 0.8 0.66 0.51 0.03 -0.12 -0.85 -0.72 0.89 1.09 0.353 0.21 0.11 -0.33 -0.21 +141 2 0.24 0.37 0.65 0.51 -0.03 -0.46 -0.55 -1.04 -0.56 0.44 0.47 0.3 0.04 -0.233 -0.2 -0.15 +142 2 -1.07 -0.45 1.03 0.48 -0.11 -0.27 -1.29 -0.44 -0.1 0.79 0.92 0.24 -0.22 -0.19 -0.503 0.0 +143 2 -0.06 -0.11 1.07 0.34 -0.19 0.02 -0.31 -0.16 -0.28 0.57 0.16 -0.01 -0.017 -0.13 -0.62 -0.35 +144 2 0.33 0.38 1.06 0.08 -0.63 -0.18 -0.01 -0.46 -0.16 0.56 0.47 0.08 -0.9 -0.204 -0.36 -0.11 +145 2 -0.47 -0.57 0.44 0.28 -0.12 -0.22 -0.09 -0.48 0.04 0.59 0.35 0.44 -0.0060 0.07 -0.22 -0.11 +146 2 0.05 -0.48 -0.35 -0.35 -0.32 -0.14 -0.09 -0.17 -0.01 0.39 0.44 -0.24 0.174 0.16 0.18 0.26 +147 2 -0.5 -0.28 -0.1 0.47 0.27 0.03 -0.26 -0.31 0.06 0.62 0.51 0.38 -0.172 -0.49 -0.86 0.02 +148 2 -0.88 -1.15 1.09 0.4 0.44 0.45 -0.2 -0.72 -0.71 0.87 0.86 0.46 0.103 -0.21 -0.74 -0.25 +149 2 -0.543 0.68 0.73 -0.46 -0.66 -0.16 -1.03 -1.25 -0.69 1.48 0.62 0.07 0.06 -0.311 -0.69 -0.16 +150 2 0.23 -0.15 0.85 0.16 0.26 -0.34 -0.4 -0.47 -0.68 0.7 0.68 -0.04 -0.29 -0.5 -0.8 -0.11 +151 2 -0.432 0.82 1.94 0.88 -0.81 -0.3 -0.95 -1.77 -1.2 1.37 0.91 0.33 -0.06 -0.433 -1.35 -0.49 +152 2 -0.03 -0.37 1.27 0.42 -0.26 -0.67 -1.01 -0.55 -0.13 0.82 0.7 0.22 0.01 -0.45 -0.42 -0.26 +153 2 -0.09 -0.45 1.26 0.31 -0.3 -0.11 -0.51 -0.82 -0.62 1.16 0.74 0.47 -0.07 -0.42 -0.82 -0.3 +154 2 -0.27 0.6 1.1 -0.22 -0.07 -0.34 -0.75 -1.33 -0.64 1.1 0.52 -0.12 0.0070 -0.43 -0.42 0.09 +155 2 -0.34 -0.25 1.1 0.77 0.24 -0.5 -0.34 -0.38 -0.7 0.53 0.34 0.15 0.03 -0.265 -0.49 -0.55 +156 2 0.15 0.02 1.26 0.9 -0.02 -0.41 -0.59 -0.86 -0.7 0.58 0.23 0.23 -0.2 -0.06 -0.43 -0.83 +157 2 -0.09 -0.42 1.24 0.46 -0.34 -0.48 -0.5 -1.03 -0.62 1.55 1.3 0.48 -0.3 -0.59 -1.68 -0.3 +158 2 -0.39 0.25 1.31 0.34 -0.39 -0.29 -0.39 -0.67 -0.51 1.35 1.12 0.89 -0.86 -0.48 -1.07 -0.58 +159 2 0.05 0.19 1.15 0.69 0.13 0.23 0.04 -0.65 -1.25 0.83 0.59 -0.36 -0.22 -0.357 -0.61 -0.75 +160 2 -0.89 -0.2 1.26 0.42 -0.16 0.01 -0.54 -1.16 -0.68 0.78 0.94 0.51 0.09 -0.2 -0.684 0.0 +161 2 0.18 -0.05 0.71 0.74 -0.47 -0.23 -0.87 -1.38 -0.34 0.95 0.8 0.08 0.17 -0.28 -0.37 -0.38 +162 2 -0.19 -0.75 0.87 0.59 0.26 -0.36 -0.45 -0.55 -0.34 0.55 0.63 0.4 -0.12 -0.24 -0.54 -0.34 +163 2 0.12 0.55 1.55 0.6 -0.84 -0.43 -0.79 -0.39 -0.53 0.54 0.61 0.2 -0.42 -0.43 -0.233 0.0 +164 2 -0.81 0.09 0.92 0.27 -0.16 -0.05 -0.61 -0.73 -0.53 1.17 0.58 -0.01 0.27 -0.306 -0.58 -0.24 +165 2 -1.73 -0.35 1.66 1.19 0.28 -0.31 -0.61 -1.65 -1.35 1.4 0.96 0.66 0.18 -0.46 -0.844 0.0 +166 2 -0.59 0.75 1.64 1.32 0.3 -0.16 -0.67 -1.28 -1.39 0.95 0.9 0.47 -0.08 -0.507 -0.96 -1.08 +167 2 -0.14 0.22 1.36 0.63 0.3 0.32 -0.52 -0.99 -0.97 0.67 0.63 0.29 0.02 -0.37 -1.17 -0.76 +168 2 -0.54 0.08 0.89 0.74 0.3 0.3 0.22 0.05 -0.22 0.11 0.26 0.23 -0.05 -0.059 -0.83 -0.39 +169 2 0.19 0.91 1.96 1.01 -0.65 -0.05 -0.49 -0.87 -0.21 0.2 1.0 0.62 0.05 -0.93 -0.95 -0.68 +170 2 0.16 -0.64 0.9 0.84 0.49 0.21 -0.6 -0.511 -0.87 0.58 0.43 0.03 0.07 -1.03 -0.5 0.0 +171 2 -0.1 0.14 1.05 0.5 0.14 0.34 0.13 -0.62 -0.72 0.72 0.48 0.18 -0.82 -0.26 -0.35 -0.45 +172 2 -0.65 0.22 1.21 0.2 -0.28 -0.33 -0.58 -0.78 -0.21 0.82 0.9 0.21 -0.28 -0.376 -0.45 -0.73 +173 2 0.3 -0.84 0.58 -0.14 -0.58 -0.26 -0.7 -0.95 -0.12 1.17 0.55 0.73 -0.03 -0.14 -0.33 0.25 +174 2 -0.01 -0.33 0.99 0.47 0.09 -0.05 -0.23 -0.85 -0.29 0.43 0.4 0.46 0.13 -0.6 -0.25 -0.23 +175 2 -0.76 0.0 1.24 0.79 0.2 -0.49 -0.67 -0.94 -1.0 1.06 1.02 0.55 -0.11 -0.302 -1.13 -0.54 +176 2 -1.17 -0.73 0.1 0.27 -0.03 -0.28 -0.17 0.13 0.22 1.1 0.46 0.25 0.03 0.082 -0.33 -0.32 +177 2 -0.46 -0.67 0.75 0.68 0.26 -0.26 -0.3 -0.32 -0.2 0.98 1.03 0.74 -0.32 -0.69 -1.16 -0.08 +178 2 -0.87 0.84 0.03 -0.32 -0.44 -0.16 -0.54 -0.65 -0.32 1.13 0.64 -0.12 0.36 -0.087 -0.07 0.04 +179 2 -0.11 0.26 1.63 1.44 0.25 -0.06 -0.78 -0.83 -1.63 0.94 0.795 0.13 0.4 -0.11 -0.7 -0.9 +180 2 -0.2 0.09 -0.49 -0.16 -0.18 -0.03 -0.51 -0.65 -0.31 1.11 0.79 0.78 -0.03 -0.34 -0.4 -0.14 +181 2 -0.63 -1.59 -1.08 -0.49 -0.5 -0.18 0.21 -0.17 0.07 1.36 1.04 0.89 0.21 -0.06 -0.054 0.0 +182 2 -0.27 0.43 1.29 0.78 -0.64 -0.37 -0.81 -1.18 -0.72 0.74 0.57 0.47 0.02 -0.336 -0.36 -0.37 +183 2 -0.9 -0.09 0.36 0.2 0.1 -0.39 -0.59 -0.09 -0.3 0.41 0.53 -0.04 -0.07 0.097 0.04 0.06 +184 2 0.29 -0.38 0.37 0.37 -0.33 -0.19 -1.15 -0.51 -0.25 0.55 0.64 0.21 0.29 -0.12 0.079 0.0 +185 2 -0.32 -0.19 0.93 0.66 -0.27 0.03 -0.25 -0.24 -0.01 0.31 0.14 0.08 -0.24 -0.21 -0.7 -0.18 +186 2 0.3 0.05 0.87 0.23 0.28 0.4 -0.25 -0.4 -0.53 0.2 0.36 0.08 -0.07 -0.8 -0.5 -0.31 +187 2 0.44 0.3 0.06 -0.02 -1.26 -0.6 -0.21 -0.5 0.21 0.73 0.5 0.4 -0.26 0.24 -0.11 -0.28 +188 2 0.71 -0.64 -0.91 -0.6 -0.17 -0.14 -0.2 -0.22 -0.14 0.69 0.92 0.33 0.02 0.116 -0.09 0.3 +189 2 1.13 0.69 -0.29 -0.48 -0.04 -0.37 -0.62 -0.28 -0.23 0.24 0.12 -0.05 -0.38 0.01 0.07 0.29 +190 2 -0.31 -1.27 -0.99 -0.36 -0.4 -0.21 0.11 0.04 0.22 0.87 0.5 0.56 0.04 0.133 0.05 0.43 +191 2 0.6 0.3 -0.54 -0.77 -0.51 -0.3 -0.42 -0.14 -0.03 0.5 0.24 -0.31 0.26 0.214 0.18 0.83 +192 2 -0.11 0.54 1.42 0.78 -0.64 -0.67 -0.84 -0.891 -0.17 0.73 0.61 0.22 -0.35 -0.91 -0.17 -0.94 +193 2 -0.32 -0.21 1.11 0.84 -0.14 -0.09 -0.37 -0.59 -0.4 0.44 0.25 0.04 0.08 -0.304 -0.39 -0.36 +194 2 -0.42 0.16 0.87 0.47 0.22 0.07 -0.24 -0.74 -0.45 0.24 0.18 -0.06 -0.05 -0.295 -0.24 -0.27 +195 2 -0.96 -0.27 1.89 1.61 0.82 0.44 -0.19 -1.0 -1.54 0.88 -0.21 0.5 0.34 -0.267 -1.22 -0.89 +196 2 -0.14 0.21 0.84 0.19 -0.26 -0.1 -0.03 -0.09 0.0 0.25 0.29 0.55 -0.42 -0.204 -0.25 -0.56 +197 2 0.06 -0.17 0.96 0.78 -0.03 -0.72 -0.83 -0.4 -0.22 0.83 0.83 0.75 -0.24 -0.37 -1.03 -0.22 +198 2 -0.49 0.24 0.79 0.24 -0.06 -0.09 -0.28 -0.33 -0.34 0.37 0.31 -0.09 -0.044 -0.4 0.01 -0.05 +199 2 -0.17 -0.03 -1.27 -0.78 -0.5 -0.53 -0.33 -0.86 -1.17 1.97 1.46 1.34 0.14 -0.41 -0.7 0.33 +200 2 -0.35 0.14 0.87 0.33 -0.2 -0.44 -0.49 -0.44 -0.36 0.67 0.34 -0.1 0.06 -0.252 -0.21 -0.24 +201 2 0.35 0.13 0.8 0.31 -0.31 -0.31 -0.46 -0.51 -0.2 0.36 0.39 -0.08 -0.29 -0.098 0.01 -0.22 +202 2 -0.39 0.42 0.81 0.21 0.02 -0.15 -0.36 -0.38 -0.3 0.48 0.52 -0.06 -0.39 -0.185 -0.14 -0.55 +203 3 -0.86 -1.26 0.17 0.56 1.23 0.66 0.31 -0.34 -0.28 -0.14 0.56 0.76 0.43 0.231 -0.01 -0.33 +204 3 -0.89 -0.31 0.69 0.87 1.17 0.79 -0.29 -0.58 -1.0 0.2 0.69 0.61 0.344 0.06 -0.51 -0.74 +205 3 -0.97 -0.66 0.08 0.43 0.86 0.91 -0.23 -0.48 -0.39 0.27 0.6 0.64 0.38 -0.106 -0.39 -0.47 +206 3 -0.87 -0.14 0.4 0.68 -0.2 0.18 -0.32 -1.03 -0.22 0.34 0.64 0.6 0.43 -0.43 -0.153 0.0 +207 3 -0.84 -0.48 0.45 0.83 0.97 0.75 0.39 -0.03 -0.94 -0.48 0.06 0.74 0.68 0.16 -0.35 -0.44 +208 3 -0.44 -0.25 0.85 0.63 0.68 0.71 0.19 -0.34 -0.58 -0.14 0.14 0.4 0.107 -0.23 -0.34 -0.78 +209 3 -0.36 0.18 0.86 0.88 0.53 0.72 0.21 -0.5 -0.55 -0.11 -0.01 0.46 0.28 -0.39 -0.58 -1.15 +210 3 -1.28 -1.24 0.06 0.33 1.0 0.65 0.46 0.0 -0.35 -0.01 0.21 0.56 0.48 0.5 0.09 -0.1 +211 3 -1.28 -0.55 -1.61 -0.15 0.44 0.5 0.27 0.53 0.35 -0.31 0.16 0.74 0.32 0.245 0.7 0.12 +212 3 -0.17 -0.12 0.23 0.57 0.61 0.8 0.36 -0.38 -0.77 -0.54 -0.06 0.56 0.4 0.0 -0.123 0.0 +213 3 -1.27 0.04 1.01 0.35 0.23 -0.03 -0.01 0.03 -0.18 0.32 0.58 -0.11 -0.102 -0.21 -0.24 -0.51 +214 3 -0.53 -0.82 0.63 1.24 0.96 0.89 0.2 -0.38 -0.92 -0.52 -0.29 0.38 0.25 -0.03 -0.163 0.0 +215 3 -0.36 -0.47 1.46 1.21 0.43 0.13 -0.67 -1.12 -1.37 0.7 0.99 0.76 0.07 -0.351 -0.68 -0.7 +216 3 -2.01 -1.25 0.37 0.82 1.09 -0.37 -0.22 -0.35 -0.91 0.48 1.02 0.219 0.83 0.58 0.51 -0.21 +217 3 -0.82 -1.21 0.32 0.46 0.96 -0.53 0.09 -0.28 -0.78 0.3 0.261 0.15 0.43 0.85 0.3 -0.14 +218 3 -0.22 -0.28 0.9 0.53 0.24 0.29 0.15 -0.16 -0.02 -1.42 0.54 0.35 0.14 -0.075 -0.32 -0.17 +219 3 -0.14 -0.39 0.17 0.54 0.33 -0.69 -0.99 -1.46 -0.3 0.26 0.89 0.5 0.166 0.03 0.33 0.42 +220 3 -0.19 -1.04 -0.36 0.12 1.06 1.1 0.9 0.22 0.02 -0.5 -0.15 0.37 0.22 -0.52 0.04 -1.31 +221 3 -0.19 -0.77 -0.17 -0.19 0.13 -0.36 -0.55 -0.07 -0.01 0.27 0.49 0.85 0.66 -0.24 0.03 0.09 +222 3 -0.36 -0.93 -0.97 -0.06 0.61 0.21 0.59 0.45 0.18 -0.48 0.13 0.46 0.26 0.3 0.022 0.0 +223 3 -0.46 -0.09 0.67 0.45 0.6 -0.14 -0.33 -0.05 -0.48 0.47 0.48 0.24 -0.119 -0.43 -0.85 -0.44 +224 3 -1.04 -0.02 0.76 0.59 0.31 0.04 -0.35 -0.12 -0.48 0.5 0.55 0.45 -0.07 -0.169 -0.6 -0.6 +225 3 0.11 -0.18 0.94 0.73 0.3 0.02 -0.51 -0.54 -0.49 0.44 0.47 0.06 0.07 -0.35 -0.77 -0.32 +226 3 -0.4 -0.04 0.32 0.42 0.09 0.0 0.09 0.0 -0.1 -0.26 0.04 0.35 -0.01 -0.016 0.06 -0.16 +227 3 -1.2 -0.37 -0.25 -0.26 0.36 0.73 0.27 0.27 0.34 -0.21 0.13 0.4 0.09 0.076 -0.05 -0.15 +228 3 0.23 0.59 1.9 1.32 -0.19 -0.34 -0.87 -1.31 -0.13 -1.53 1.23 1.0 0.29 -0.249 -0.6 -0.05 +229 3 -1.3 -1.02 0.2 0.52 0.87 0.81 0.49 0.44 0.21 -0.07 -0.49 0.34 0.22 0.106 -0.57 -0.04 +230 3 -0.8 -0.74 0.42 0.72 -0.13 0.04 0.01 -0.14 -0.5 0.63 0.4 0.4 0.132 0.23 -0.2 -0.53 +231 3 -1.04 0.29 1.45 0.67 -0.06 -0.5 -0.49 -0.83 -0.41 0.7 0.59 0.85 0.09 -0.315 -1.01 -0.61 +232 3 -0.05 -0.69 0.61 0.79 0.52 0.05 0.09 -0.11 -0.12 0.2 0.4 0.12 0.046 -0.3 -0.48 -0.82 +233 3 -0.02 -0.31 0.29 0.42 0.2 -0.19 -0.21 -0.37 -0.3 0.36 0.44 0.16 -0.031 0.02 -0.19 -0.47 +234 3 -1.05 0.22 0.82 0.7 0.76 0.16 -0.07 -0.49 -1.0 0.17 0.5 0.54 0.172 0.04 -0.06 -0.4 +235 3 -0.93 -0.41 0.68 0.8 0.68 0.07 0.12 -0.13 -0.6 0.16 0.45 0.373 0.34 -0.19 -0.13 -0.6 +236 3 -0.76 -1.43 -0.2 1.12 1.56 1.27 -0.22 -0.79 -0.67 -0.02 0.37 0.21 0.11 0.09 0.0 0.11 +237 3 -0.55 -0.42 -0.08 0.24 0.27 0.19 0.07 -0.35 -0.05 0.22 0.22 0.36 0.135 0.07 0.03 0.12 +238 3 0.44 -0.23 -0.5 -0.47 -0.96 -0.73 -0.33 -0.62 0.18 0.71 0.8 0.5 0.22 0.199 -0.11 0.42 +239 3 0.01 -0.67 -0.36 -0.1 0.4 0.08 0.51 0.2 0.19 -0.26 0.11 0.18 0.03 0.024 -0.22 0.33 +240 3 -0.37 -0.25 0.28 0.98 0.39 0.08 0.01 -0.05 -0.71 0.13 0.21 0.08 0.042 -0.36 -0.21 -0.34 +241 3 0.1 0.15 -0.06 -0.21 0.3 -0.37 0.01 -0.04 0.03 0.19 0.15 0.09 0.019 -0.64 -0.07 0.12 +242 3 -0.99 -0.25 0.43 0.5 0.26 0.05 -0.34 -0.16 -0.39 0.13 0.59 0.81 0.171 -0.11 0.07 -0.14 +243 3 -1.12 -0.91 -0.78 0.25 1.36 0.78 0.35 -0.05 -0.44 -0.37 0.0 0.34 0.14 0.357 0.34 0.56 +244 3 -0.97 -0.72 0.11 0.36 0.22 0.07 -0.28 -0.61 -0.27 0.51 0.69 0.33 -0.01 0.016 0.03 0.03 +245 3 0.42 -0.79 1.26 0.59 0.08 -0.52 -0.21 -0.84 -0.59 -0.21 0.62 0.37 -0.04 -0.23 -0.309 0.0 +246 3 0.33 0.25 1.37 0.88 0.03 -0.06 -0.39 -0.68 -0.85 0.35 0.3 -0.06 -0.37 -0.9 -0.33 0.0 +247 3 0.46 -0.05 1.86 0.36 -1.03 -0.93 -0.6 -1.25 -0.6 0.74 0.89 0.62 0.26 -0.48 -0.35 -0.19 +248 3 -0.44 -0.13 0.04 0.49 1.1 0.52 0.54 -0.29 -0.45 -0.85 -0.45 0.5 0.49 -0.093 -0.18 -0.23 +249 3 -0.1 -0.72 0.03 0.28 0.54 0.85 0.43 -0.57 -0.44 0.12 0.36 0.45 0.54 0.56 -0.1 -1.44 +250 3 -0.38 -0.19 -0.02 0.5 0.81 0.37 -0.59 -0.12 -0.21 -0.9 -0.05 0.83 0.6 -0.44 0.29 -0.15 +251 3 -0.82 -0.54 -0.68 0.81 1.29 0.95 -0.09 -0.72 -0.54 -0.21 0.25 0.17 -0.28 0.083 0.0 0.52 +252 3 0.0 0.44 0.94 0.53 0.13 -0.47 -1.03 -0.61 -0.39 0.21 0.43 0.04 0.01 -0.19 -0.119 0.0 +253 3 0.31 0.09 1.0 0.57 0.15 -0.66 -0.35 -1.09 -0.34 -0.41 0.36 0.41 0.1 -0.308 0.02 0.1 +254 3 -0.98 -1.09 -0.05 0.57 0.47 0.47 -0.16 -0.11 -0.22 0.2 0.32 0.35 0.49 -0.11 0.138 0.0 +255 3 -0.07 0.06 0.07 0.71 0.61 0.71 0.36 0.05 -0.26 -0.75 -0.14 -0.06 0.38 -0.061 -0.31 -0.38 +256 3 -0.64 -0.95 -1.17 0.47 0.32 0.81 0.0 0.24 0.36 -0.3 0.27 0.47 0.52 0.36 0.187 0.0 +257 3 -0.43 -0.84 -1.22 0.05 0.63 0.57 0.54 0.29 0.21 -0.11 0.16 0.62 0.14 0.25 0.157 0.0 +258 3 -0.48 -0.42 0.34 0.65 1.0 0.33 0.05 0.02 -0.54 -0.52 -0.07 0.02 0.08 -0.09 0.081 0.0 +259 3 -0.35 -0.36 0.09 0.39 0.86 0.58 0.23 0.25 -0.2 -0.21 0.13 0.31 -0.16 -0.188 -0.82 -0.61 +260 3 -0.53 -0.25 -0.99 0.33 0.63 0.44 -0.05 0.34 -0.36 -0.1 0.11 0.33 0.55 0.103 0.11 -0.16 +261 3 1.37 0.72 -0.26 0.79 0.99 0.48 0.13 0.23 -0.19 -0.95 0.13 0.48 -0.85 -0.33 -0.37 -0.95 +262 3 0.36 -0.01 0.3 0.59 0.84 0.26 -0.35 0.36 0.15 -1.16 -0.06 0.13 -0.66 -0.68 0.01 -0.26 +263 3 0.63 -0.09 -0.51 0.12 0.66 0.32 -0.16 0.29 -0.08 -0.45 -0.01 0.17 0.24 0.029 0.34 -0.04 +264 3 -0.95 -0.12 0.53 0.06 0.19 -0.32 0.18 0.05 -0.41 0.39 0.7 0.02 -0.01 -0.32 -0.05 0.0 +265 3 0.06 -0.04 0.87 0.39 0.2 -0.1 -0.17 -0.5 -0.52 0.21 0.16 -0.098 -0.24 -0.74 -0.19 0.1 +266 3 -0.44 -0.2 0.58 0.33 0.63 0.48 0.17 0.01 -0.28 -0.05 0.17 0.23 -0.33 -0.154 -0.25 -0.56 +267 3 -0.16 0.25 0.22 0.25 0.04 -0.25 0.02 0.07 -0.01 0.31 0.17 0.08 -0.29 -0.11 -0.39 -0.26 +268 3 -0.48 0.18 -0.14 -0.17 0.07 0.24 0.51 0.26 0.04 -0.3 -0.27 0.04 0.1 0.033 0.39 -0.06 +269 3 0.4 -0.28 0.53 0.72 -0.16 -0.12 -0.94 -0.01 0.06 0.74 1.1 1.18 -0.28 -1.63 -0.74 -0.57 +270 3 -0.24 0.14 0.25 0.35 0.54 0.27 -0.14 0.08 -0.34 -0.6 -0.23 0.21 0.48 -0.35 0.085 0.0 +271 3 -0.13 -0.21 0.71 0.86 0.4 0.02 0.07 -0.13 -0.52 -0.19 -0.23 0.36 0.12 -0.316 -0.46 -0.57 +272 3 0.85 0.97 1.31 0.28 0.24 -0.3 -0.8 -0.58 -0.61 0.24 0.35 -0.14 -0.11 -0.84 -0.51 -0.54 +273 3 -0.21 0.68 1.66 1.03 -0.07 -0.21 -0.51 -0.94 -0.62 0.75 0.56 -0.01 -0.15 -0.84 -0.71 -1.09 +274 3 -0.47 0.26 0.7 0.55 0.29 -0.09 0.22 0.07 0.07 0.31 0.39 0.02 -0.3 -0.11 -0.47 -0.55 +275 3 -0.11 -0.72 -0.11 0.51 0.44 -0.24 -0.36 -1.12 -0.57 0.26 0.62 -0.52 0.08 -0.12 0.42 0.36 +276 3 -0.6 -0.46 -0.04 1.14 1.58 0.77 -0.21 -0.58 -0.23 -0.71 -0.27 0.08 -0.6 -0.32 0.23 0.43 +277 3 -0.86 0.21 0.75 0.19 0.04 -0.59 -0.59 -1.18 -0.16 0.68 0.91 0.23 0.14 -0.06 -0.2 -0.5 +278 4 -0.79 -1.04 -0.49 -0.12 0.61 0.77 0.34 0.12 0.12 -0.35 0.15 0.22 0.37 0.29 0.17 0.14 +279 4 -1.01 -0.48 -0.41 -0.44 0.63 0.54 0.56 0.32 -0.01 -0.21 -0.01 0.17 0.41 0.24 -0.34 0.14 +280 4 -1.14 -0.7 -0.88 -0.73 -0.14 0.51 0.94 0.79 1.09 0.15 -0.23 -0.4 0.16 0.327 0.21 0.12 +281 4 -0.67 -0.7 0.19 0.35 0.55 0.28 0.07 -0.06 -0.3 -0.09 0.12 0.26 0.206 0.36 0.08 -0.19 +282 4 -0.15 -0.6 -0.37 -0.15 0.59 0.46 0.02 0.21 0.04 -0.4 -0.48 -0.06 0.21 0.44 0.34 0.26 +283 4 -0.98 -1.49 -0.83 -0.56 -0.38 0.09 1.23 1.23 1.25 0.01 -0.57 0.01 -0.25 0.45 0.66 0.25 +284 4 -0.84 -0.88 -1.13 -0.37 0.47 0.78 1.21 1.38 0.78 -0.57 -0.57 0.02 0.52 0.41 -0.27 0.35 +285 4 -0.37 -0.56 -0.12 0.16 0.38 0.5 0.28 0.38 -0.17 -0.11 -0.27 0.131 0.51 0.39 -0.1 -0.31 +286 4 -0.33 -0.79 -0.57 0.13 0.37 0.54 0.37 -0.13 -0.02 -0.43 0.01 0.53 0.54 0.232 0.28 0.25 +287 4 -0.41 0.11 0.38 0.49 0.62 0.93 0.58 0.28 -0.4 -0.55 0.05 0.03 -0.04 -0.036 -0.64 -0.95 +288 4 -0.83 -0.66 0.08 0.6 0.84 1.02 0.4 0.06 -0.33 -0.33 -0.01 0.15 0.167 0.16 -0.29 -0.52 +289 4 -0.48 0.06 -0.01 0.31 0.37 0.27 0.35 0.31 -0.19 -0.27 -0.23 0.15 0.024 0.18 -0.24 -0.41 +290 4 -0.89 0.07 0.42 -0.12 -0.31 -0.26 0.27 0.16 -0.1 -0.13 -0.06 0.14 0.147 0.51 0.46 0.12 +291 4 -0.79 -0.28 -0.53 -0.22 -0.04 0.24 0.62 0.36 0.19 -0.69 -0.5 0.06 0.221 0.62 0.87 0.36 +292 4 -0.2 -0.31 -1.25 0.05 0.63 0.73 0.31 0.44 0.05 -0.33 -0.27 0.08 0.26 -0.029 0.16 -0.13 +293 4 -0.16 1.09 0.2 -0.22 -0.61 -0.39 0.15 0.29 0.13 -0.11 -0.32 -0.08 -0.12 0.23 0.149 0.0 +294 4 0.51 0.35 0.02 -0.43 -0.37 0.01 0.33 0.57 0.49 -0.38 -0.38 -0.22 -0.178 -0.2 -0.36 0.21 +295 4 -0.92 -0.47 -0.04 -0.09 0.06 0.77 0.8 0.12 -0.09 -0.04 -0.11 -0.07 -0.06 0.114 0.24 -0.11 +296 4 -0.74 -0.74 -0.75 -0.23 0.04 0.08 0.04 -0.16 -0.2 0.01 0.15 0.32 0.503 0.72 0.96 0.67 +297 4 -0.25 0.11 -0.45 -0.94 0.2 0.75 0.57 0.02 -0.06 0.06 -0.32 -0.5 0.18 0.33 0.64 0.16 +298 4 -0.03 0.52 -0.33 0.13 0.57 0.62 0.04 0.12 -0.1 -0.45 -0.21 -0.09 0.045 0.07 0.09 -0.42 +299 4 0.38 0.022 0.027 -0.092 0.156 -0.477 0.194 -0.1 -0.141 -0.131 0.114 0.194 -0.036 -0.017 -0.134 0.0 +300 4 -0.96 -0.85 0.06 0.65 0.61 0.36 0.13 -0.32 -0.16 -0.37 0.09 0.37 0.228 0.52 0.32 -0.14 +301 4 -0.29 0.12 -0.1 0.11 0.21 0.38 0.36 0.85 -0.04 0.16 -0.36 -0.12 -0.0060 0.29 -0.54 -0.6 +302 4 0.96 0.63 0.31 0.17 0.45 0.69 0.32 0.02 -0.42 -1.49 -0.78 -0.1 0.17 -0.257 -0.01 -0.25 +303 4 0.24 -1.03 -0.57 0.0 -0.06 0.86 0.82 0.1 0.17 -0.8 -0.26 -0.01 0.58 0.143 0.14 -0.11 +304 4 -1.41 -1.11 -1.04 0.28 1.26 1.34 0.72 0.36 0.28 -0.9 -0.22 0.32 0.49 0.24 0.173 0.0 +305 4 -1.47 -0.29 -0.44 -0.08 0.85 1.26 0.13 -0.15 -0.45 -0.49 -0.1 0.53 1.14 0.71 0.219 0.0 +306 4 -0.74 -0.03 -0.58 0.21 1.01 1.1 0.8 0.42 -0.26 -0.67 -0.58 -0.18 0.58 0.34 0.16 -0.79 +307 4 -0.74 -0.86 -0.49 0.78 1.11 1.12 0.68 0.04 -0.52 -0.68 -0.07 0.3 0.502 0.63 0.14 -0.29 +308 4 -2.44 -1.26 -0.27 0.39 0.89 0.89 0.45 -0.09 -0.41 -0.01 0.61 0.71 0.86 0.29 0.324 0.0 +309 4 -0.8 -1.32 -0.53 0.48 0.79 0.8 0.36 0.29 -0.01 -0.82 0.1 0.55 0.72 0.35 0.185 0.0 +310 4 -0.65 -0.69 -0.68 -0.05 0.75 0.88 0.79 0.17 -0.44 -0.29 -0.32 0.22 0.386 0.55 0.47 -0.15 +311 4 0.88 0.93 0.24 0.01 0.07 0.64 0.49 -0.24 -0.38 -0.76 -0.93 -0.45 -0.04 0.16 0.152 0.0 +312 4 -0.18 0.73 0.27 0.02 -0.15 0.59 0.75 -0.53 -0.09 -0.95 -0.82 -0.35 0.56 0.52 0.38 -0.32 +313 4 -1.94 -1.77 -0.93 -0.51 0.51 0.82 0.94 0.81 0.6 -0.1 -0.39 -0.32 0.6 0.384 0.87 0.7 +314 4 -0.97 -0.52 -0.62 0.12 0.18 0.22 0.54 0.17 -0.04 -0.24 0.17 0.45 0.64 0.133 0.61 0.01 +315 4 -0.42 -0.48 -0.87 0.22 0.35 0.86 0.46 0.34 0.01 -0.06 -0.2 0.25 0.3 0.39 0.158 0.0 +316 4 -1.37 -1.15 -0.77 0.02 0.64 0.3 0.34 0.08 -0.1 0.06 0.37 0.25 0.68 0.145 0.73 -0.14 +317 4 -0.7 -0.36 -0.56 -0.3 0.76 0.2 0.68 0.4 -0.01 -0.44 -0.11 0.17 0.32 0.031 0.2 -0.09 +318 4 -0.45 -0.24 -0.22 -0.15 0.25 0.07 0.52 0.33 -0.01 -0.55 -0.4 0.06 0.16 0.149 0.48 0.36 +319 4 -1.04 -0.76 -1.53 -0.33 0.47 0.59 0.92 1.13 0.84 -0.55 -0.55 0.17 -0.12 0.17 0.03 0.01 +320 4 -1.01 -0.47 -1.01 -0.28 0.31 0.89 1.24 1.54 0.89 -0.21 -0.69 0.61 -0.95 0.1 -0.14 0.18 +321 4 -0.64 -0.47 -0.95 0.18 0.6 0.46 0.6 0.64 0.46 -0.6 -0.33 0.26 0.13 0.039 0.19 -0.12 +322 4 -0.74 -0.29 -0.68 0.0 0.74 0.6 0.7 1.02 0.43 -0.57 -0.36 0.32 -0.15 -0.05 0.083 0.0 +323 4 -0.29 0.05 0.25 0.28 0.3 0.73 0.26 -0.02 -0.32 -0.83 -0.58 0.15 0.48 -0.088 0.33 -0.53 +324 4 -0.97 0.46 0.01 -0.4 -0.45 0.39 0.56 0.16 0.26 -0.26 -0.31 -0.23 0.24 0.057 0.35 0.27 +325 4 -0.56 0.16 -0.16 0.01 0.2 0.59 0.33 -0.13 -0.08 -0.59 -0.33 0.05 0.59 -0.046 0.56 -0.04 +326 4 -0.9 -1.97 0.03 0.76 0.87 0.53 0.54 0.12 0.15 -0.35 -0.29 0.21 0.24 0.37 0.106 0.0 +327 4 -0.6 -0.55 0.01 0.61 0.77 0.6 0.42 0.12 0.05 -0.26 -0.13 0.05 0.16 -0.02 -0.1 -0.37 +328 4 -0.62 -0.37 0.21 0.68 0.52 0.12 0.03 -0.41 -0.03 -0.27 -0.09 0.18 0.21 0.221 0.16 -0.09 +329 4 -0.17 0.24 -0.03 0.36 0.61 0.41 0.13 0.22 -0.23 -0.56 -0.24 -0.03 0.36 -0.0090 -0.09 -0.59 +330 4 -0.29 -0.6 -0.09 0.29 0.65 0.7 0.17 -0.01 -0.28 -0.45 -0.3 -0.14 0.27 -0.134 0.49 -0.48 +331 4 -0.15 -0.76 -0.27 0.46 0.44 0.55 -0.2 -0.08 -0.27 -0.62 -0.1 0.24 0.43 0.41 0.63 0.07 +332 5 -0.05 -0.15 -0.58 -0.58 0.18 -0.67 0.29 0.2 0.02 0.27 0.083 -0.41 -0.05 0.17 0.14 -0.11 +333 5 -1.08 -1.04 -0.83 -0.86 -0.67 0.0 1.07 1.53 1.23 -0.08 -0.58 -0.45 -0.38 0.44 0.61 0.9 +334 5 -1.86 -0.52 -0.98 -0.95 -0.26 0.69 1.13 0.92 0.86 -0.41 -0.51 -0.27 0.6 0.496 0.92 0.8 +335 5 -1.35 -0.57 -0.95 -0.7 0.14 0.57 1.06 1.24 0.84 -0.35 -0.64 -0.11 0.18 0.63 0.426 0.0 +336 5 -0.5 -0.89 -1.33 -0.75 -0.32 0.19 0.84 1.22 1.03 -0.23 -0.38 0.15 0.15 0.66 0.379 0.0 +337 5 -0.89 -0.67 -0.64 -0.8 -0.32 0.09 0.62 0.83 0.85 0.09 0.0 -0.32 -0.06 -0.12 0.45 0.45 +338 5 -0.93 -1.29 -1.01 -0.99 -0.15 0.44 1.04 0.9 0.56 0.02 -0.23 -0.36 0.075 0.45 0.52 0.67 +339 5 -1.13 -0.803 -2.2 -0.39 -0.35 0.85 1.03 1.12 0.72 -0.24 -1.2 0.45 0.45 0.59 0.2 0.71 +340 5 -0.09 0.06 -1.06 -0.17 -0.28 0.44 0.9 0.8 0.73 -0.44 -1.25 -0.09 -0.1 0.235 0.24 0.52 +341 5 -0.71 -0.49 -0.67 -0.53 0.35 0.38 0.63 0.79 0.36 -0.11 -0.23 -0.33 -0.07 -0.048 0.34 0.31 +342 5 -0.59 -0.08 -0.35 -0.29 0.61 0.19 0.49 0.43 0.17 -0.35 -0.33 -0.07 0.014 -0.12 0.11 -0.08 +343 5 -1.89 -0.92 -1.05 -1.11 0.66 0.34 0.28 1.21 1.19 -0.62 -0.15 0.33 0.34 0.409 0.71 0.4 +344 5 -1.12 -0.94 -0.97 -0.31 0.13 0.35 0.56 0.56 0.74 -0.51 -0.36 0.05 0.238 0.52 0.58 0.44 +345 5 -1.59 -1.29 -1.54 -0.75 -0.24 0.5 1.08 1.22 0.89 -0.24 -0.36 0.32 0.33 0.556 0.94 0.86 +346 5 -1.28 -1.02 -0.76 -0.65 0.02 0.5 0.89 0.8 0.59 -0.54 -0.38 -0.03 0.68 0.425 0.88 0.41 +347 5 0.12 0.27 -0.64 -0.99 -0.95 -0.57 0.01 0.81 0.74 0.4 -0.14 -0.57 -0.165 0.27 0.0 0.5 +348 5 -1.82 -1.35 -0.65 -0.67 -0.4 0.34 0.57 0.47 0.51 0.12 -0.25 0.08 0.406 0.8 1.27 0.63 +349 5 -0.92 -1.31 -0.96 -0.42 0.19 0.36 0.63 0.55 0.72 -0.31 -0.58 0.21 0.23 0.29 0.73 0.3 +350 5 -1.5 -1.69 -1.12 -1.02 -0.44 0.75 1.03 0.93 1.55 0.07 -0.54 0.46 0.68 0.7 0.826 0.0 +351 5 -0.3 0.07 -0.76 -0.68 -0.59 -0.27 0.52 0.88 0.8 0.18 -0.53 -0.82 -0.39 -0.01 0.51 0.56 +352 5 -0.52 -0.23 -0.63 -0.48 -0.11 0.17 0.3 0.75 0.63 -0.17 -0.13 -0.38 0.23 0.179 0.4 0.07 +353 5 -0.45 -0.34 -0.76 -0.33 0.17 0.53 0.72 0.76 0.43 -0.42 -0.17 -0.15 0.079 0.12 0.54 -0.01 +354 5 0.37 0.35 -0.45 -0.76 -0.28 -0.26 0.03 0.41 0.47 0.05 -0.53 -0.47 -0.149 0.05 0.46 0.21 +355 5 0.52 -0.47 -1.07 -0.41 -0.04 0.14 0.39 0.74 0.72 0.21 -0.13 -0.15 -0.34 -0.13 -0.041 0.0 +356 5 0.77 -0.95 -0.8 -0.14 0.53 0.48 0.56 0.77 0.48 -0.44 -0.38 -0.55 -1.09 -0.349 0.4 0.7 +357 5 -0.27 -0.47 -1.52 -0.83 -1.05 -0.27 0.84 1.02 1.28 0.15 -0.27 -0.75 -0.47 0.51 0.93 0.91 +358 5 -0.54 -0.47 -0.4 -0.28 -0.18 -0.01 0.43 0.64 0.29 0.12 -0.45 -0.07 -0.39 0.03 0.21 0.47 +359 5 0.72 -0.15 -1.0 -1.23 -1.07 -0.32 -0.05 0.34 0.67 0.19 0.09 -0.01 0.13 0.46 0.25 0.66 +360 5 0.19 -0.31 -0.8 -0.7 0.05 0.06 0.17 0.86 0.35 0.07 -0.47 -0.49 0.033 0.29 0.23 0.21 +361 5 -0.63 -0.38 -0.32 0.12 0.74 0.6 0.1 -0.19 -0.51 -0.49 -0.26 0.04 0.336 0.65 0.71 0.65 +362 5 0.01 0.43 -0.56 -0.47 -1.11 -1.04 -0.1 1.35 1.42 0.3 -0.39 -0.89 -1.09 -0.066 0.52 1.01 +363 5 -0.4 -0.99 -1.06 -0.75 -0.61 -0.76 0.71 1.49 1.36 0.26 -0.13 -0.36 -0.134 -0.11 0.21 0.71 +364 5 -0.63 -0.66 -0.24 -0.82 -0.84 -0.89 0.57 0.64 0.54 0.28 -0.01 -0.26 0.11 0.242 0.71 0.81 +365 5 -0.83 -0.33 -0.25 -0.7 -0.57 -0.09 0.27 0.47 0.58 -0.12 -0.11 0.01 -0.08 0.215 0.55 0.38 +366 5 -0.48 0.34 -0.17 -0.69 -0.96 -0.41 0.38 0.72 0.64 0.3 0.13 -0.72 -0.17 -0.06 0.19 0.33 +367 5 -1.06 -1.11 -1.17 -0.99 -0.85 -0.18 0.74 0.71 1.06 0.47 0.5 0.28 0.16 0.68 0.407 0.0 +368 5 -0.81 -1.04 -0.51 -0.74 -1.22 -0.2 0.89 1.04 0.87 0.17 -0.32 -0.43 0.23 0.367 0.88 0.73 +369 5 -0.08 0.1 -0.64 -0.94 -0.23 -0.02 0.24 0.52 0.68 -0.02 0.0 0.03 0.08 0.09 0.204 0.0 +370 5 1.95 0.93 0.04 -0.44 -0.12 0.21 0.32 0.58 -0.02 -0.98 -0.56 -0.78 -0.7 -0.38 0.92 0.53 +371 5 -0.22 -0.47 -0.67 -0.2 -0.32 0.07 0.49 0.69 0.74 0.11 -0.11 -0.08 -0.98 0.256 -0.01 0.31 +372 5 -0.98 -0.65 -1.31 -0.67 0.16 0.18 0.46 1.03 0.5 -0.37 -0.46 -0.1 0.35 0.55 0.9 0.75 +373 5 -1.13 -0.95 -2.36 -0.41 0.09 0.58 0.9 1.35 0.78 -0.53 -0.31 0.32 0.45 0.48 0.58 0.37 +374 5 0.05 -0.18 -0.13 -0.42 -0.72 0.36 0.94 1.09 0.78 -1.5 -0.26 -0.09 -0.03 0.28 0.013 0.0 +375 5 0.73 -1.67 -0.56 -0.06 0.02 0.37 1.06 1.21 0.39 -0.42 -2.11 -0.83 -0.19 0.7 0.79 0.69 +376 5 -0.21 -0.63 -1.0 -0.55 -0.14 0.66 0.83 0.92 0.7 -0.49 -0.8 -0.51 0.15 0.377 0.54 0.02 +377 5 0.53 -0.22 -1.78 -0.48 -0.26 0.0 1.03 0.97 0.55 -0.12 -0.98 -0.14 0.05 0.8 0.209 0.0 +378 5 -1.55 -1.41 -1.02 -1.05 -0.42 0.48 1.04 1.18 0.62 -0.44 -0.35 0.14 0.42 0.619 1.57 1.05 +379 5 0.11 0.03 -0.24 -0.45 -0.37 -0.04 0.64 1.17 1.15 -0.32 -0.6 -1.06 -0.4 -0.08 0.204 0.0 +380 5 -0.79 -1.29 -0.63 -0.91 -0.1 0.22 1.13 1.2 0.74 -0.15 -0.56 -0.32 -0.11 0.42 0.65 0.74 +381 5 -1.99 -1.73 -1.12 -1.18 -1.02 0.4 1.36 1.98 1.15 0.06 -0.64 -0.78 0.22 1.02 0.88 0.77 +382 5 -0.64 -0.76 -0.55 -0.68 -0.66 -0.09 0.26 0.41 0.51 0.18 0.09 -0.23 0.04 0.274 0.98 0.52 +383 5 -0.01 -0.82 -0.65 -0.43 -0.28 -0.48 0.23 0.58 0.31 0.15 -0.24 -0.52 0.021 0.37 0.57 0.65 +384 5 -3.12 -4.12 -3.54 -1.54 -0.37 1.48 2.45 2.77 1.81 -0.26 -0.73 0.34 0.71 1.48 2.06 2.36 +385 5 -0.79 -0.56 -0.79 -0.23 -0.53 -0.14 0.61 0.95 0.96 0.38 -0.11 -0.31 -0.41 0.49 0.08 0.15 +386 5 -1.16 -1.39 -0.96 -0.91 -0.71 -0.1 0.54 0.61 0.63 0.25 0.37 -0.33 0.1 0.493 1.27 0.87 diff --git a/data/input/iyer.txt b/data/input/iyer.txt new file mode 100644 index 0000000..faa72d0 --- /dev/null +++ b/data/input/iyer.txt @@ -0,0 +1,517 @@ +1 -1 1.0 0.72 0.1 0.57 1.08 0.66 0.39 0.49 0.28 0.5 0.66 0.52 +2 1 1.0 1.58 1.05 1.15 1.22 0.54 0.73 0.82 0.82 0.9 0.73 0.75 +3 1 1.0 1.1 0.97 1.0 0.9 0.67 0.81 0.88 0.77 0.71 0.57 0.46 +4 1 1.0 0.97 1.0 0.85 0.84 0.72 0.66 0.68 0.47 0.61 0.59 0.65 +5 1 1.0 1.21 1.29 1.08 0.89 0.88 0.66 0.85 0.67 0.58 0.82 0.6 +6 1 1.0 1.45 1.44 1.12 1.1 1.15 0.79 0.77 0.78 0.71 0.67 0.36 +7 1 1.0 1.15 1.1 1.0 1.08 0.79 0.98 1.03 0.59 0.57 0.46 0.39 +8 1 1.0 1.32 1.35 1.13 1.0 0.91 1.22 1.05 0.58 0.57 0.53 0.43 +9 1 1.0 1.01 1.38 1.21 0.79 0.85 0.78 0.73 0.64 0.58 0.43 0.47 +10 1 1.0 0.85 1.03 1.0 0.81 0.82 0.73 0.51 0.24 0.54 0.43 0.51 +11 1 1.0 1.12 0.92 1.01 0.86 0.86 0.7 0.62 0.36 0.37 0.35 0.38 +12 1 1.0 1.23 1.21 0.95 0.81 0.91 0.87 0.75 0.4 0.54 0.52 0.52 +13 1 1.0 0.96 1.19 1.08 0.78 0.61 0.53 0.54 0.34 0.61 0.51 0.46 +14 1 1.0 0.73 0.85 0.74 0.62 0.57 0.47 0.43 0.42 0.53 0.38 0.3 +15 1 1.0 0.66 0.49 0.59 0.98 0.85 0.43 0.25 0.23 0.62 0.67 0.55 +16 1 1.0 0.98 0.82 0.88 0.82 0.88 0.48 0.34 0.5 0.93 0.61 0.75 +17 1 1.0 1.01 0.81 0.78 0.64 0.89 0.46 0.26 0.51 0.71 0.6 0.53 +18 1 1.0 1.08 1.17 1.03 1.04 1.05 0.77 0.44 0.64 0.74 0.88 0.67 +19 1 1.0 0.86 0.47 0.52 0.77 0.48 0.42 0.32 0.2 0.32 0.49 0.41 +20 1 1.0 0.81 0.49 0.75 0.82 0.6 0.45 0.35 0.29 0.46 0.49 0.54 +21 1 1.0 0.72 0.53 0.66 0.86 0.57 0.64 0.38 0.42 0.47 0.54 0.61 +22 1 1.0 0.84 0.69 0.69 0.69 0.7 0.53 0.38 0.31 0.64 0.39 0.39 +23 1 1.0 0.91 0.86 0.73 1.14 0.67 0.65 0.44 0.42 0.75 0.48 0.54 +24 1 1.0 0.92 0.81 0.81 1.01 0.7 0.57 0.45 0.5 0.76 0.56 0.62 +25 1 1.0 0.98 0.64 0.75 1.16 0.75 0.55 0.28 0.39 0.74 0.63 0.57 +26 1 1.0 1.33 0.8 1.13 1.3 1.01 0.9 0.53 0.53 0.89 0.88 0.75 +27 1 1.0 1.0 0.74 0.95 0.95 0.89 0.73 0.56 0.39 0.8 0.72 0.56 +28 1 1.0 1.15 0.94 0.86 1.18 1.07 0.65 0.58 0.52 0.77 0.74 0.83 +29 1 1.0 0.76 0.97 0.79 0.58 0.49 0.6 0.37 0.42 0.99 0.68 0.54 +30 1 1.0 0.87 0.98 0.84 0.88 0.58 0.5 0.47 0.41 1.21 0.57 0.65 +31 1 1.0 0.92 0.8 0.74 0.67 0.59 0.55 0.43 0.48 0.76 0.85 0.68 +32 1 1.0 0.78 0.82 0.81 0.68 0.51 0.46 0.45 0.37 0.92 0.73 0.76 +33 1 1.0 0.86 0.67 0.79 0.74 0.62 0.51 0.52 0.52 0.89 0.7 0.77 +34 1 1.0 0.98 0.73 1.08 0.94 0.72 0.64 0.57 0.57 0.93 0.77 0.78 +35 1 1.0 1.04 1.01 0.81 0.95 0.63 0.69 0.62 0.49 0.99 0.98 0.83 +36 1 1.0 0.95 0.95 1.0 0.96 0.68 0.61 0.53 0.47 0.46 0.83 0.43 +37 1 1.0 1.25 0.98 0.77 0.98 0.56 0.57 0.51 0.4 0.56 0.62 0.74 +38 1 1.0 0.89 0.8 0.68 0.87 0.66 0.59 0.55 0.5 0.6 0.63 0.7 +39 1 1.0 1.32 0.99 0.78 0.98 0.6 0.6 0.65 0.47 0.53 0.51 0.56 +40 1 1.0 1.03 0.83 0.68 1.07 0.85 0.65 0.8 0.65 0.62 0.63 0.66 +41 1 1.0 0.61 0.69 0.55 0.6 0.49 0.35 0.35 0.24 0.35 0.5 0.57 +42 1 1.0 0.95 1.33 1.32 0.79 0.54 0.57 0.35 0.36 0.5 0.45 0.48 +43 1 1.0 0.68 1.06 0.99 0.58 0.42 0.22 0.2 0.28 0.5 0.51 0.53 +44 1 1.0 0.94 0.95 0.86 0.66 0.6 0.48 0.45 0.48 0.54 0.54 0.68 +45 1 1.0 0.82 0.85 0.82 0.75 0.55 0.57 0.37 0.5 0.71 0.53 0.65 +46 1 1.0 0.81 0.88 0.69 0.78 0.58 0.5 0.4 0.53 0.72 0.43 0.65 +47 1 1.0 1.08 1.28 1.16 0.99 0.68 0.63 0.38 0.4 0.74 0.55 0.53 +48 1 1.0 0.85 1.1 1.02 0.84 0.68 0.79 0.31 0.36 0.76 0.52 0.58 +49 1 1.0 0.46 0.82 0.72 0.5 0.42 0.37 0.28 0.2 0.47 0.4 0.54 +50 1 1.0 0.81 1.22 1.08 0.8 0.68 0.71 0.52 0.44 0.71 0.67 0.79 +51 1 1.0 0.51 0.73 0.96 0.84 0.77 0.7 0.27 0.43 0.63 0.32 0.4 +52 1 1.0 0.82 0.95 1.02 0.74 0.85 0.74 0.54 0.65 0.71 0.43 0.55 +53 1 1.0 1.23 1.03 0.99 1.03 0.87 0.63 0.55 0.42 0.58 0.5 0.71 +54 1 1.0 0.8 0.66 0.72 0.74 0.68 0.51 0.3 0.36 0.43 0.31 0.34 +55 1 1.0 0.92 0.76 0.7 0.93 0.86 0.62 0.5 0.65 0.56 0.57 0.53 +56 1 1.0 0.73 1.31 0.85 0.89 0.6 0.57 0.41 0.41 0.57 0.43 0.4 +57 1 1.0 0.94 0.99 0.78 1.07 0.6 0.57 0.34 0.36 0.52 0.43 0.38 +58 1 1.0 1.03 0.91 0.78 0.77 0.68 0.52 0.46 0.5 0.65 0.64 0.6 +59 1 1.0 1.01 0.93 0.85 0.79 0.67 0.45 0.47 0.44 0.41 0.38 0.43 +60 1 1.0 0.86 0.85 0.94 0.67 0.78 0.64 0.45 0.53 0.48 0.46 0.4 +61 1 1.0 0.83 0.65 0.69 0.51 0.63 0.59 0.41 0.32 0.51 0.36 0.4 +62 1 1.0 0.7 0.76 0.85 0.61 0.72 0.73 0.44 0.47 0.62 0.57 0.52 +63 1 1.0 1.11 1.05 0.71 0.83 0.72 0.69 0.68 0.6 0.72 0.66 0.57 +64 1 1.0 0.96 1.2 1.04 0.76 0.89 0.79 0.83 0.63 0.8 0.73 0.57 +65 1 1.0 1.0 1.06 1.02 0.94 1.04 0.46 0.56 0.84 0.79 0.57 0.62 +66 1 1.0 1.02 1.06 0.75 0.99 0.65 0.46 0.31 0.26 0.34 0.24 0.27 +67 1 1.0 0.93 1.2 0.81 0.97 0.78 0.69 0.63 0.41 0.41 0.32 0.33 +68 1 1.0 1.03 0.61 0.76 1.03 0.72 0.61 0.49 0.35 0.37 0.29 0.28 +69 1 1.0 1.04 0.87 0.94 0.96 0.8 0.66 0.58 0.43 0.54 0.44 0.51 +70 1 1.0 0.93 0.67 0.69 0.62 0.75 0.54 0.42 0.37 0.52 0.29 0.25 +71 1 1.0 0.98 0.88 0.67 0.74 0.64 0.43 0.32 0.22 0.24 0.25 0.46 +72 1 1.0 0.88 0.77 0.69 0.8 0.56 0.4 0.36 0.22 0.2 0.24 0.46 +73 1 1.0 1.0 0.96 1.21 1.1 0.95 0.68 0.43 0.46 0.49 0.55 0.58 +74 1 1.0 1.01 1.03 1.07 1.06 0.85 0.65 0.45 0.43 0.34 0.43 0.5 +75 1 1.0 0.97 1.22 1.12 0.84 0.94 0.74 0.56 0.51 0.46 0.56 0.46 +76 1 1.0 1.31 1.45 1.5 1.38 0.93 0.76 0.62 0.59 0.61 0.49 0.56 +77 1 1.0 1.18 0.73 0.83 0.79 0.61 0.39 0.24 0.17 0.38 0.35 0.38 +78 1 1.0 0.93 0.77 0.84 0.74 0.66 0.5 0.35 0.31 0.52 0.43 0.44 +79 1 1.0 0.91 0.92 0.81 0.73 0.51 0.36 0.3 0.23 0.37 0.32 0.36 +80 1 1.0 1.08 0.84 0.95 0.94 0.82 0.59 0.54 0.24 0.49 0.48 0.63 +81 1 1.0 0.88 0.86 0.67 0.72 0.83 0.54 0.5 0.34 0.45 0.5 0.47 +82 1 1.0 1.06 1.0 1.02 1.07 1.16 0.68 0.49 0.4 0.55 0.82 0.91 +83 1 1.0 1.32 1.27 0.87 1.04 1.05 0.81 0.52 0.43 0.69 0.7 0.69 +84 1 1.0 1.11 1.03 0.76 0.8 0.6 0.52 0.45 0.32 0.33 0.51 0.61 +85 1 1.0 0.74 0.95 0.89 0.73 0.36 0.2 0.22 0.19 0.23 0.16 0.19 +86 1 1.0 0.81 0.93 0.75 1.18 0.54 0.31 0.34 0.23 0.31 0.36 0.36 +87 1 1.0 1.05 0.96 0.98 0.87 0.54 0.31 0.31 0.41 0.48 0.36 0.36 +88 1 1.0 1.08 1.47 1.46 1.02 0.58 0.49 0.49 0.63 0.67 0.57 0.62 +89 1 1.0 1.3 1.27 1.07 1.05 0.64 0.42 0.48 0.61 0.7 0.58 0.57 +90 1 1.0 1.05 1.27 0.86 1.04 0.61 0.49 0.55 0.52 0.58 0.61 0.56 +91 1 1.0 1.16 1.2 0.93 0.86 0.49 0.45 0.53 0.45 0.56 0.64 0.64 +92 1 1.0 1.05 1.13 1.01 0.77 0.43 0.33 0.51 0.49 0.6 0.5 0.69 +93 1 1.0 0.85 1.07 1.05 0.83 0.59 0.39 0.61 0.67 0.55 0.69 0.69 +94 1 1.0 1.09 0.92 1.12 1.16 0.53 0.48 0.7 0.59 0.54 0.42 0.41 +95 1 1.0 1.2 1.21 0.81 0.81 0.69 0.51 0.47 0.56 0.43 0.72 0.75 +96 1 1.0 1.12 1.04 1.02 0.79 0.77 0.51 0.49 0.69 0.61 0.85 0.99 +97 1 1.0 0.95 0.78 1.01 0.85 0.88 0.54 0.43 0.57 0.57 0.69 0.74 +98 1 1.0 0.7 1.56 1.24 0.79 0.74 0.49 0.52 0.42 0.64 0.67 0.65 +99 1 1.0 0.72 0.84 0.76 0.79 0.87 0.5 0.54 0.45 0.7 0.56 0.78 +100 1 1.0 0.97 0.83 1.09 1.01 1.1 0.69 0.61 0.69 0.49 0.66 0.75 +101 1 1.0 1.12 1.64 1.18 0.76 0.8 0.62 0.58 0.47 0.6 0.55 0.49 +102 2 1.0 2.02 0.98 1.08 1.05 0.46 0.5 0.8 1.5 1.91 1.9 1.86 +103 2 1.0 1.25 0.81 0.63 1.05 0.45 0.51 0.67 1.41 1.82 1.4 1.59 +104 2 1.0 1.17 0.62 0.77 0.89 0.58 0.61 0.67 1.03 1.58 1.34 1.56 +105 2 1.0 0.98 0.57 0.87 0.72 0.45 0.48 0.76 0.69 1.11 1.07 1.21 +106 2 1.0 0.86 0.77 0.97 0.83 0.51 0.7 0.82 0.86 1.22 1.62 1.68 +107 2 1.0 0.76 0.71 0.79 0.56 0.5 0.49 0.63 1.13 0.95 1.21 1.28 +108 2 1.0 1.01 0.65 1.1 0.93 0.44 0.35 0.37 0.79 1.07 1.01 0.87 +109 2 1.0 1.01 0.85 0.98 0.84 0.25 0.25 0.27 0.51 0.86 0.89 1.18 +110 2 1.0 0.97 0.77 0.92 0.91 0.52 0.4 0.39 0.94 1.02 1.3 1.47 +111 2 1.0 0.9 0.59 0.44 0.64 0.33 0.23 0.33 0.58 0.94 0.71 0.72 +112 2 1.0 0.81 0.63 0.77 0.96 0.45 0.41 0.48 0.65 0.69 0.82 1.01 +113 2 1.0 0.97 0.54 0.75 0.85 0.47 0.48 0.5 0.6 0.77 0.83 0.83 +114 2 1.0 0.7 0.52 0.7 1.01 0.46 0.39 0.59 0.59 0.73 0.74 0.69 +115 2 1.0 0.78 0.63 0.7 0.87 0.49 0.54 0.75 0.82 0.8 0.86 0.96 +116 2 1.0 1.06 0.61 0.85 0.87 0.56 0.65 0.74 0.76 1.1 0.9 0.85 +117 2 1.0 1.09 0.92 0.77 1.01 0.72 0.88 0.73 0.8 1.13 1.11 0.98 +118 2 1.0 0.94 0.62 0.67 0.7 0.72 0.93 0.84 0.92 1.21 1.06 1.21 +119 2 1.0 0.89 0.72 0.57 0.99 0.7 0.62 0.47 0.62 1.01 1.0 1.2 +120 2 1.0 0.95 0.77 0.6 1.04 0.84 0.81 0.62 0.74 1.08 1.2 1.23 +121 2 1.0 0.92 0.61 0.56 0.81 0.73 0.67 0.67 0.58 0.82 1.18 1.12 +122 2 1.0 0.97 0.68 0.83 0.84 0.96 0.6 0.58 0.7 0.78 0.92 1.07 +123 2 1.0 0.98 0.62 0.76 0.93 0.71 0.6 0.5 0.87 0.86 1.13 1.1 +124 2 1.0 0.82 0.3 0.57 0.78 0.68 0.52 0.34 0.43 0.83 0.86 1.06 +125 2 1.0 0.79 0.36 0.5 0.49 0.68 0.45 0.38 0.36 0.74 0.9 0.71 +126 2 1.0 0.64 0.39 0.38 0.75 0.75 0.59 0.46 0.42 1.08 1.31 1.35 +127 2 1.0 0.94 0.54 0.66 0.59 0.68 0.8 0.78 0.6 0.89 1.16 1.13 +128 2 1.0 0.9 0.88 0.65 1.31 1.04 0.92 0.76 0.67 0.98 1.1 1.07 +129 2 1.0 0.85 0.76 0.9 0.69 0.23 0.35 0.34 0.28 0.55 0.46 0.51 +130 2 1.0 1.02 0.94 0.88 0.98 0.39 0.45 0.41 0.36 0.59 0.54 0.57 +131 2 1.0 0.96 0.73 0.66 0.95 0.34 0.24 0.18 0.36 0.64 0.56 0.56 +132 2 1.0 1.17 1.03 0.99 0.78 0.3 0.16 0.16 0.19 0.68 0.66 0.64 +133 2 1.0 0.94 1.15 0.9 0.97 0.67 0.52 0.49 0.5 0.85 0.94 1.01 +134 2 1.0 0.86 0.99 0.97 0.71 0.62 0.49 0.47 0.46 0.71 0.71 0.87 +135 2 1.0 1.1 0.82 0.88 0.83 0.53 0.44 0.33 0.47 0.86 0.71 0.73 +136 2 1.0 1.07 0.8 0.77 1.0 0.55 0.49 0.39 0.41 0.77 0.67 0.77 +137 2 1.0 1.05 0.78 0.71 0.85 0.65 0.46 0.43 0.44 0.74 0.84 0.81 +138 2 1.0 0.85 1.0 0.9 0.77 0.6 0.37 0.3 0.52 0.96 0.73 0.72 +139 2 1.0 1.09 0.89 0.91 0.62 0.49 0.33 0.32 0.45 0.82 0.64 0.67 +140 2 1.0 1.26 0.89 0.98 0.94 0.58 0.48 0.49 0.57 0.83 0.64 0.7 +141 2 1.0 1.07 0.76 0.81 0.87 0.49 0.47 0.48 0.57 0.78 0.66 0.62 +142 2 1.0 1.27 0.98 1.25 0.89 0.34 0.21 0.22 0.3 0.57 0.48 0.51 +143 2 1.0 0.9 0.84 1.03 0.66 0.6 0.4 0.41 0.45 0.63 0.62 0.67 +144 2 1.0 1.01 0.88 0.98 0.7 0.42 0.29 0.26 0.32 0.52 0.52 0.74 +145 2 1.0 1.0 1.18 1.32 1.14 0.88 0.3 0.3 0.42 0.61 0.58 0.77 +146 2 1.0 1.05 0.98 0.99 1.17 0.86 0.45 0.36 0.38 0.62 0.68 0.91 +147 2 1.0 1.05 1.14 0.91 1.06 0.64 0.46 0.38 0.38 0.68 0.56 0.6 +148 2 1.0 1.02 1.26 1.22 1.13 0.75 0.56 0.49 0.49 0.8 0.85 0.71 +149 2 1.0 0.79 0.73 0.73 0.88 0.72 0.33 0.39 0.33 0.66 0.64 0.68 +150 2 1.0 1.27 1.16 1.24 0.9 0.91 0.72 0.64 0.69 0.68 0.81 1.22 +151 2 1.0 0.97 1.02 1.17 0.77 0.94 0.53 0.47 0.58 0.95 0.91 0.8 +152 2 1.0 0.98 0.81 0.9 0.88 0.68 0.38 0.41 0.58 0.57 0.85 0.98 +153 2 1.0 1.31 0.92 1.17 1.03 0.88 0.56 0.49 0.62 0.81 1.04 1.1 +154 2 1.0 0.91 0.61 0.75 0.72 0.82 0.42 0.38 0.39 0.59 0.87 0.81 +155 2 1.0 0.69 0.64 0.54 0.73 0.5 0.46 0.24 0.26 0.84 0.69 0.63 +156 2 1.0 1.06 0.84 0.93 0.9 0.69 0.44 0.4 0.37 1.08 0.65 0.76 +157 2 1.0 1.04 0.92 0.83 0.9 0.74 0.53 0.4 0.47 0.98 0.81 0.9 +158 2 1.0 0.77 0.56 0.67 0.72 0.64 0.46 0.4 0.34 0.73 0.64 0.64 +159 2 1.0 0.97 0.67 0.78 0.79 0.59 0.43 0.32 0.37 0.76 0.64 0.52 +160 2 1.0 0.92 0.9 0.79 0.9 0.56 0.4 0.36 0.47 0.7 0.72 0.6 +161 2 1.0 0.93 0.61 0.76 0.94 0.42 0.26 0.2 0.31 0.7 0.74 0.76 +162 2 1.0 0.9 0.68 0.94 0.87 0.68 0.5 0.36 0.41 0.78 0.69 0.81 +163 2 1.0 0.98 0.58 0.99 1.08 0.59 0.45 0.26 0.44 0.76 0.88 0.86 +164 2 1.0 1.15 0.83 0.87 1.0 0.88 0.67 0.46 0.38 1.0 0.96 0.96 +165 2 1.0 0.98 0.85 0.6 0.87 0.56 0.46 0.33 0.26 0.66 0.62 0.87 +166 2 1.0 1.29 0.89 0.71 0.9 0.58 0.47 0.39 0.26 0.65 0.82 0.83 +167 2 1.0 0.82 0.87 0.93 0.93 0.69 0.58 0.36 0.29 0.67 0.71 0.94 +168 2 1.0 1.01 0.85 1.12 0.9 0.76 0.54 0.45 0.32 0.78 0.65 0.8 +169 2 1.0 0.94 0.8 0.78 0.71 0.6 0.44 0.37 0.33 0.62 0.6 0.57 +170 2 1.0 0.79 0.68 0.75 0.82 0.43 0.35 0.4 0.31 0.7 0.59 0.72 +171 2 1.0 0.76 0.69 0.9 0.87 0.52 0.51 0.49 0.35 0.81 0.76 0.84 +172 2 1.0 0.85 0.71 0.7 0.91 0.47 0.66 0.42 0.34 0.77 0.78 0.83 +173 2 1.0 1.08 0.88 0.81 1.03 0.64 0.54 0.44 0.39 0.73 0.74 0.97 +174 2 1.0 1.17 0.75 0.69 0.83 0.68 0.53 0.63 0.49 0.63 0.66 0.96 +175 2 1.0 1.09 0.73 0.78 1.01 0.59 0.56 0.63 0.6 0.84 0.78 0.86 +176 2 1.0 1.36 0.99 0.75 1.19 0.53 0.57 0.58 0.46 0.99 0.83 0.93 +177 2 1.0 0.93 0.62 0.67 0.68 0.58 0.39 0.42 0.46 0.89 0.92 0.96 +178 2 1.0 0.94 0.59 0.77 0.7 0.54 0.39 0.4 0.46 0.59 0.7 0.94 +179 2 1.0 0.72 0.59 0.62 0.79 0.51 0.43 0.38 0.4 0.61 0.59 0.71 +180 2 1.0 0.81 0.53 0.69 0.94 0.69 0.37 0.44 0.41 0.95 0.88 0.83 +181 2 1.0 0.71 0.86 0.51 0.8 0.49 0.32 0.34 0.29 0.95 0.74 0.65 +182 2 1.0 0.63 0.74 0.7 1.04 0.58 0.44 0.47 0.49 0.96 0.96 0.81 +183 2 1.0 0.5 0.71 0.64 0.49 0.55 0.46 0.43 0.37 0.87 0.94 0.98 +184 2 1.0 0.69 0.71 0.78 0.71 0.57 0.46 0.65 0.44 0.74 0.87 0.99 +185 2 1.0 0.69 0.71 0.63 0.77 0.75 0.58 0.58 0.42 0.87 0.96 1.23 +186 2 1.0 1.04 0.84 0.95 0.78 0.58 0.68 0.61 0.61 1.15 1.22 1.4 +187 2 1.0 0.81 0.81 1.11 1.01 0.5 0.6 0.55 0.55 1.1 1.0 1.11 +188 2 1.0 0.9 0.88 0.87 1.14 0.62 0.68 0.71 0.66 1.08 1.35 1.4 +189 2 1.0 1.0 0.93 0.86 0.87 0.65 0.56 0.75 0.7 1.15 1.01 1.22 +190 2 1.0 1.25 1.1 1.02 0.97 0.54 0.59 0.83 0.73 1.08 1.24 1.32 +191 2 1.0 0.93 0.93 0.93 0.63 0.42 0.69 0.72 0.55 1.06 1.04 1.08 +192 2 1.0 0.6 0.79 0.58 0.49 0.36 0.32 0.28 0.34 0.63 0.81 1.03 +193 2 1.0 0.67 0.82 0.82 0.56 0.43 0.47 0.39 0.47 0.85 0.71 0.74 +194 2 1.0 0.58 0.75 0.72 0.49 0.51 0.71 0.33 0.42 0.78 0.7 0.89 +195 2 1.0 0.74 0.85 0.92 0.78 0.36 0.36 0.28 0.28 0.88 0.99 0.91 +196 2 1.0 0.9 0.91 0.95 0.86 0.62 0.52 0.43 0.38 0.94 1.23 1.13 +197 2 1.0 0.89 1.04 1.07 1.01 0.68 0.56 0.42 0.38 0.79 0.83 0.97 +198 2 1.0 0.87 1.23 1.14 0.89 0.69 0.63 0.58 0.49 0.88 0.97 1.25 +199 2 1.0 0.75 0.98 0.91 0.7 0.43 0.4 0.4 0.44 0.75 0.77 0.78 +200 2 1.0 0.98 1.32 1.11 1.07 0.57 0.44 0.51 0.44 0.82 0.76 1.03 +201 2 1.0 0.64 1.49 1.05 0.96 0.68 0.66 0.59 0.79 0.85 1.16 1.3 +202 2 1.0 1.18 0.58 0.65 0.84 0.49 0.31 0.21 0.17 0.73 1.19 1.41 +203 2 1.0 0.93 0.56 0.72 0.86 0.63 0.34 0.2 0.27 0.7 1.33 1.5 +204 2 1.0 1.08 0.82 0.91 1.17 0.66 0.49 0.42 0.51 0.93 1.23 1.61 +205 2 1.0 0.76 1.07 1.01 0.75 0.6 0.38 0.31 0.28 0.87 1.04 1.37 +206 2 1.0 1.01 0.79 0.92 0.81 0.54 0.42 0.37 0.32 0.8 1.23 1.07 +207 2 1.0 0.87 0.72 0.82 0.96 0.56 0.46 0.55 0.38 0.96 0.96 1.17 +208 2 1.0 1.14 0.77 0.92 1.1 0.61 0.54 0.66 0.5 1.01 1.05 1.16 +209 2 1.0 0.88 0.82 0.86 0.83 0.56 0.39 0.56 0.49 0.83 0.97 1.25 +210 2 1.0 0.99 0.62 0.67 0.68 0.61 0.4 0.28 0.27 0.89 0.93 1.15 +211 2 1.0 0.77 0.58 0.63 0.68 0.58 0.37 0.32 0.37 0.55 0.65 0.72 +212 2 1.0 0.47 0.26 0.39 0.58 0.17 0.16 0.14 0.19 0.59 0.74 0.9 +213 2 1.0 0.83 0.45 0.49 0.77 0.52 0.4 0.31 0.37 0.63 0.71 0.88 +214 2 1.0 0.93 0.5 0.7 0.9 0.55 0.47 0.44 0.42 0.76 0.78 1.03 +215 2 1.0 0.68 0.61 0.77 0.86 0.62 0.49 0.42 0.54 0.9 0.88 0.93 +216 2 1.0 0.67 0.54 0.53 0.78 0.51 0.46 0.4 0.42 0.84 0.71 0.78 +217 2 1.0 0.58 0.34 0.51 0.54 0.41 0.23 0.24 0.24 0.57 0.5 0.59 +218 2 1.0 0.9 0.71 1.02 1.06 0.77 0.48 0.47 0.53 1.29 0.87 0.94 +219 2 1.0 1.64 1.02 1.54 1.19 1.13 0.71 0.69 0.62 1.51 1.24 1.76 +220 2 1.0 1.05 0.71 0.8 0.68 0.7 0.59 0.53 0.59 1.01 0.99 0.96 +221 2 1.0 1.07 1.72 1.21 0.77 0.87 0.91 0.6 0.94 1.08 0.99 1.06 +222 2 1.0 0.89 1.0 1.21 0.77 1.21 0.49 0.44 0.63 1.04 0.82 1.29 +223 2 1.0 0.63 0.89 0.94 0.57 0.83 0.53 0.29 0.46 0.76 0.6 0.74 +224 2 1.0 1.17 0.76 0.89 1.03 0.75 0.76 0.6 0.55 0.97 0.84 1.23 +225 2 1.0 1.25 1.09 1.05 1.32 0.88 0.73 0.7 0.63 1.05 1.31 1.58 +226 2 1.0 0.79 0.55 0.74 0.96 0.56 0.57 0.36 0.52 0.74 0.83 0.87 +227 2 1.0 1.15 1.41 0.92 1.09 0.74 0.5 0.48 0.77 0.89 0.85 1.0 +228 2 1.0 1.04 1.02 0.99 1.09 0.63 0.44 0.63 0.77 0.94 0.96 0.97 +229 2 1.0 1.09 1.09 0.98 1.47 0.75 0.51 0.55 0.35 0.71 1.0 1.15 +230 2 1.0 0.85 0.84 0.68 1.1 0.41 0.39 0.58 0.39 0.8 0.82 0.85 +231 2 1.0 0.93 0.77 0.78 0.71 0.71 0.66 0.46 0.62 0.55 0.89 1.22 +232 2 1.0 0.65 0.97 1.11 0.79 0.62 0.37 0.41 0.66 1.0 1.0 1.1 +233 2 1.0 0.58 0.88 0.77 0.39 0.41 0.26 0.3 0.29 0.7 0.84 1.03 +234 2 1.0 1.01 0.96 0.96 1.19 0.55 0.22 0.1 0.18 0.79 0.97 1.07 +235 2 1.0 1.04 0.87 0.85 0.79 0.35 0.19 0.2 0.28 0.73 0.72 0.79 +236 2 1.0 1.11 1.02 1.05 0.96 0.53 0.29 0.38 0.47 0.88 0.79 1.02 +237 2 1.0 1.33 1.01 1.06 1.17 0.7 0.32 0.37 0.37 0.79 1.06 1.17 +238 2 1.0 0.95 1.24 0.95 1.17 0.44 0.3 0.39 0.51 0.71 0.75 0.86 +239 2 1.0 0.99 1.02 1.05 1.14 0.59 0.34 0.37 0.46 0.69 0.57 0.84 +240 2 1.0 0.96 1.4 1.15 0.85 0.5 0.36 0.58 0.52 1.26 1.28 1.28 +241 2 1.0 1.0 1.26 0.81 0.9 0.57 0.52 0.51 0.52 0.9 0.7 0.84 +242 2 1.0 0.66 0.67 1.03 0.84 0.49 0.74 0.45 0.48 0.79 0.74 0.59 +243 2 1.0 0.81 0.6 0.86 0.67 0.43 0.64 0.5 0.48 0.7 0.75 0.81 +244 2 1.0 1.04 0.85 1.23 0.96 0.46 0.62 0.66 0.47 1.08 0.91 0.91 +245 2 1.0 0.78 1.34 1.42 0.81 0.7 0.55 0.5 0.48 0.86 0.88 1.07 +246 2 1.0 0.77 1.25 1.2 0.8 0.72 0.6 0.45 0.36 0.6 0.66 0.85 +247 -1 1.0 0.31 0.3 0.51 0.47 0.26 0.18 0.21 0.17 0.38 0.35 0.37 +248 -1 1.0 0.42 0.3 0.51 0.66 0.4 0.28 0.26 0.24 0.4 0.39 0.49 +249 -1 1.0 1.16 0.72 0.72 0.83 1.01 0.91 0.65 0.6 0.58 0.84 0.8 +250 -1 1.0 0.8 0.52 0.64 0.67 1.0 0.79 0.47 0.63 1.0 0.78 0.73 +251 -1 1.0 1.23 0.75 0.91 1.11 1.14 0.95 0.57 0.87 0.93 0.85 0.92 +252 -1 1.0 0.66 0.69 0.87 0.63 1.04 0.74 0.57 0.7 0.81 1.11 0.95 +253 -1 1.0 0.92 1.15 1.15 0.82 1.2 0.78 0.46 0.87 0.83 1.15 1.08 +254 -1 1.0 0.99 1.23 0.81 1.19 1.1 1.0 0.7 1.21 0.84 1.18 1.28 +255 -1 1.0 0.81 0.55 0.63 0.72 0.78 0.59 0.39 0.73 0.93 0.84 0.82 +256 -1 1.0 0.74 0.96 0.81 0.67 0.69 0.94 0.58 0.62 0.87 1.34 1.4 +257 -1 1.0 0.88 1.27 1.05 0.94 0.9 0.87 0.52 0.67 1.12 1.55 2.2 +258 -1 1.0 0.99 0.98 1.21 1.03 0.91 0.83 0.65 0.48 0.76 1.73 1.27 +259 -1 1.0 0.93 1.03 0.96 1.08 0.92 0.74 0.75 0.63 2.09 1.01 0.94 +260 -1 1.0 0.91 0.72 1.02 0.31 1.11 0.84 0.62 0.66 1.01 0.71 0.77 +261 -1 1.0 1.04 1.03 0.74 0.44 0.64 0.99 0.94 0.61 1.22 0.98 1.12 +262 -1 1.0 0.91 0.84 0.49 0.53 0.91 1.19 0.8 0.73 1.06 0.78 0.71 +263 3 1.0 2.94 4.08 2.74 2.48 2.68 2.61 2.15 2.32 1.34 1.35 1.23 +264 3 1.0 3.35 6.95 4.82 3.76 3.7 3.14 2.91 2.02 2.16 1.98 1.6 +265 3 1.0 0.6 1.3 1.78 1.14 1.19 0.94 0.87 0.56 1.1 0.94 1.05 +266 3 1.0 0.86 1.63 1.43 0.73 0.86 1.06 0.69 0.53 0.7 0.67 0.67 +267 3 1.0 0.9 1.67 1.38 0.71 1.22 0.85 0.42 0.5 0.74 0.88 0.73 +268 3 1.0 0.83 1.31 1.64 0.66 1.24 0.8 0.36 0.45 0.51 0.64 0.61 +269 3 1.0 0.71 0.98 0.93 0.57 0.69 0.75 0.39 0.3 0.41 0.34 0.3 +270 3 1.0 0.5 1.63 1.8 0.61 0.96 0.61 0.44 0.26 0.53 0.6 0.57 +271 3 1.0 0.96 1.51 1.16 0.93 0.93 0.84 0.79 0.54 0.33 0.25 0.21 +272 3 1.0 1.27 1.72 1.26 1.05 1.03 1.09 1.09 0.94 0.53 0.52 0.43 +273 3 1.0 1.04 1.63 1.1 0.94 0.86 0.85 0.91 0.85 0.61 0.56 0.46 +274 3 1.0 1.15 1.62 1.29 0.78 0.99 1.09 0.85 0.63 0.57 0.44 0.41 +275 3 1.0 1.04 1.91 1.42 1.04 1.08 0.96 0.82 0.76 0.63 0.59 0.56 +276 3 1.0 1.44 1.82 1.43 1.18 1.16 1.31 1.28 0.82 1.19 0.59 0.57 +277 3 1.0 1.3 1.78 1.35 1.07 1.25 1.37 1.5 0.79 0.51 0.5 0.43 +278 3 1.0 0.98 1.47 0.92 0.81 0.72 0.58 0.75 0.84 0.31 0.51 0.37 +279 3 1.0 1.18 1.61 1.03 1.04 0.88 0.98 0.65 0.73 0.45 0.51 0.42 +280 3 1.0 0.9 0.8 1.04 1.05 0.78 0.46 0.29 0.17 0.19 0.22 0.23 +281 3 1.0 0.91 1.14 1.2 0.97 1.1 0.82 0.59 0.44 0.65 0.5 0.42 +282 3 1.0 1.12 1.15 0.99 0.81 0.71 0.57 0.48 0.28 0.28 0.3 0.37 +283 3 1.0 0.98 1.17 0.98 0.75 0.81 0.77 0.54 0.37 0.31 0.26 0.25 +284 3 1.0 1.03 1.01 0.96 1.03 0.95 0.75 0.62 0.49 0.42 0.38 0.41 +285 3 1.0 1.31 1.06 1.23 1.22 0.84 0.93 0.8 0.58 0.48 0.54 0.61 +286 3 1.0 1.71 1.84 2.18 1.7 1.14 0.85 0.68 0.59 0.53 0.46 0.44 +287 3 1.0 0.89 0.89 1.44 1.05 1.49 0.76 0.34 0.23 0.26 0.25 0.3 +288 3 1.0 1.15 1.61 1.8 2.11 1.3 0.83 0.33 0.2 0.24 0.24 0.24 +289 3 1.0 1.11 1.56 1.48 1.98 1.32 0.82 0.39 0.27 0.25 0.25 0.27 +290 3 1.0 0.94 1.04 1.48 1.66 1.24 0.8 0.52 0.33 0.42 0.44 0.53 +291 3 1.0 0.85 1.04 1.86 3.03 1.56 0.7 0.43 0.13 0.16 0.13 0.12 +292 3 1.0 0.93 2.16 2.27 0.9 1.04 0.83 0.67 0.72 0.44 0.47 0.47 +293 3 1.0 1.23 2.58 3.15 1.37 1.5 1.44 1.38 0.67 0.7 0.64 0.59 +294 3 1.0 1.27 2.42 1.51 1.04 0.63 0.73 1.17 0.62 0.58 0.55 0.39 +295 3 1.0 1.14 1.94 1.42 1.01 1.04 0.83 0.75 0.41 0.23 0.2 0.17 +296 3 1.0 1.29 1.3 1.6 1.52 1.38 1.35 1.6 0.82 0.59 0.47 0.37 +297 -1 1.0 1.04 0.65 0.92 1.16 0.84 0.56 0.82 2.27 1.8 1.14 0.96 +298 -1 1.0 0.81 1.07 0.32 0.93 0.99 0.78 1.19 1.15 0.82 0.7 0.17 +299 -1 1.0 1.34 1.01 0.64 1.76 1.64 1.71 1.81 1.53 0.95 0.84 0.7 +300 -1 1.0 0.97 0.66 1.02 2.07 2.11 1.61 1.65 0.73 0.65 0.55 0.58 +301 4 1.0 1.11 1.11 0.63 1.22 0.77 0.61 0.51 0.53 1.54 2.44 3.18 +302 4 1.0 1.17 0.93 0.92 1.0 0.66 0.67 0.52 0.58 1.49 2.79 4.44 +303 4 1.0 1.11 0.77 0.93 0.85 0.81 0.56 0.57 0.72 1.4 1.57 2.2 +304 4 1.0 1.02 0.67 0.56 0.84 0.5 0.41 0.46 0.58 1.18 1.49 1.4 +305 4 1.0 1.07 0.94 0.72 0.91 0.62 0.44 0.55 0.58 0.85 1.15 1.37 +306 4 1.0 0.88 0.83 0.77 0.87 0.62 0.44 0.45 0.46 1.04 0.91 1.51 +307 4 1.0 1.14 0.64 0.82 1.19 0.68 0.75 0.68 0.87 1.26 1.51 1.8 +308 4 1.0 1.13 0.93 1.1 1.46 0.63 0.76 0.77 0.65 1.91 2.61 3.02 +309 4 1.0 1.01 0.87 1.09 1.09 0.67 0.5 0.86 0.67 1.48 2.18 2.56 +310 4 1.0 0.86 0.94 1.02 1.03 0.7 0.58 0.81 0.59 1.33 1.48 1.38 +311 4 1.0 1.37 1.25 1.28 1.66 0.65 0.78 0.68 1.69 2.47 3.63 5.03 +312 4 1.0 1.29 1.25 0.83 1.07 0.6 0.63 0.87 1.14 1.63 2.27 2.41 +313 4 1.0 1.43 0.76 0.95 1.04 0.82 1.42 0.61 1.23 1.59 2.61 2.6 +314 4 1.0 0.96 0.65 0.91 1.01 0.99 0.84 0.66 1.05 1.76 1.57 1.98 +315 4 1.0 1.51 1.07 1.3 0.6 0.24 0.18 0.27 0.61 1.17 1.07 0.97 +316 4 1.0 0.93 0.92 0.67 0.77 0.3 0.38 0.27 0.43 0.83 0.83 0.9 +317 4 1.0 0.76 1.14 0.88 0.82 0.38 0.33 0.49 0.54 1.0 1.22 1.28 +318 4 1.0 0.85 0.77 0.76 0.63 0.31 0.42 0.62 0.73 1.11 0.99 1.17 +319 4 1.0 1.41 1.35 1.41 1.12 0.8 0.49 0.4 0.62 0.87 1.53 2.46 +320 4 1.0 1.21 0.86 0.89 1.04 0.65 0.66 0.7 1.2 2.53 2.95 2.48 +321 4 1.0 1.21 0.8 0.96 1.1 0.74 0.57 0.72 1.08 2.77 3.34 1.41 +322 4 1.0 1.15 0.5 0.68 0.79 0.64 0.71 0.63 1.45 1.72 2.78 2.36 +323 4 1.0 0.92 0.78 0.72 0.57 0.4 0.39 0.75 1.53 2.38 2.96 3.46 +324 4 1.0 1.54 1.57 1.11 1.14 0.71 1.08 0.99 1.19 2.33 4.85 7.36 +325 4 1.0 1.33 1.65 1.21 1.39 0.66 0.78 0.87 0.86 2.45 4.78 8.83 +326 4 1.0 1.21 1.59 1.44 1.06 0.83 0.97 0.71 0.73 1.98 2.94 6.49 +327 4 1.0 1.3 2.21 1.81 1.34 0.96 0.97 0.62 0.84 2.64 4.49 8.08 +328 4 1.0 1.11 1.18 1.07 1.0 0.77 0.8 0.65 0.92 3.09 5.73 8.84 +329 4 1.0 1.24 1.45 1.39 1.22 0.91 1.22 0.94 1.04 2.55 4.22 6.98 +330 4 1.0 0.9 0.68 0.85 1.24 0.64 0.57 0.75 1.06 2.34 2.93 3.44 +331 4 1.0 1.08 0.81 1.07 1.01 0.77 0.77 1.08 1.19 1.37 2.77 4.5 +332 4 1.0 1.06 0.99 1.05 1.26 1.05 1.0 1.01 1.41 3.14 4.23 5.23 +333 4 1.0 1.41 1.46 0.97 1.63 0.97 0.98 0.92 1.55 2.98 4.4 5.84 +334 4 1.0 1.3 1.46 1.23 0.83 0.99 0.96 0.93 1.36 3.25 5.15 9.73 +335 4 1.0 0.82 1.01 0.98 0.87 0.93 0.96 1.08 1.67 3.42 5.71 6.62 +336 4 1.0 1.06 0.77 0.94 0.79 0.75 0.66 0.55 0.44 1.47 2.03 4.32 +337 4 1.0 0.84 0.69 0.93 1.09 0.9 0.9 1.01 0.73 1.29 2.19 3.8 +338 4 1.0 1.35 0.99 1.01 1.28 1.49 1.34 0.86 1.27 3.22 4.46 6.14 +339 4 1.0 1.42 1.59 1.17 1.35 1.72 1.26 1.03 1.02 2.1 4.5 7.48 +340 4 1.0 1.06 0.95 1.02 1.01 0.82 0.84 0.85 0.71 1.62 2.25 4.32 +341 4 1.0 1.37 1.02 1.41 1.15 1.15 1.07 1.06 0.87 1.92 3.09 4.62 +342 4 1.0 1.2 1.2 1.25 1.09 0.84 1.23 1.29 1.19 1.65 2.35 5.16 +343 4 1.0 1.14 2.09 1.91 1.12 1.27 1.35 0.91 0.87 1.65 2.55 4.63 +344 5 1.0 1.11 3.53 3.46 4.59 1.71 0.78 0.55 0.54 0.87 1.0 0.85 +345 5 1.0 2.58 3.06 3.71 3.67 2.43 1.16 0.87 0.62 0.85 1.08 1.05 +346 5 1.0 2.41 4.84 5.49 1.01 0.69 0.49 0.52 0.46 0.82 0.77 0.9 +347 5 1.0 0.73 3.08 3.55 1.02 1.26 1.19 0.95 1.17 0.76 0.93 0.78 +348 5 1.0 2.67 8.14 12.69 1.5 1.58 1.72 1.23 0.77 1.14 0.99 0.89 +349 5 1.0 1.47 4.14 5.4 1.0 2.56 1.04 0.67 0.97 0.59 1.12 1.16 +350 5 1.0 1.01 4.73 10.62 3.0 3.62 1.61 1.06 0.86 1.67 1.53 0.8 +351 -1 1.0 1.5 1.51 2.48 1.68 5.97 2.33 2.12 1.91 1.3 0.97 0.94 +352 -1 1.0 0.59 1.01 2.22 1.71 3.33 1.65 0.78 0.44 0.9 0.67 0.73 +353 -1 1.0 0.69 0.77 0.93 2.45 3.86 3.1 2.1 0.55 0.68 0.64 0.81 +354 -1 1.0 1.05 0.63 1.92 1.32 3.5 3.11 2.14 0.99 1.13 1.13 0.95 +355 -1 1.0 0.75 0.53 1.37 2.74 2.81 1.66 1.96 1.18 1.03 0.91 0.85 +356 6 1.0 1.29 1.05 0.73 0.72 5.63 3.5 1.94 0.94 1.33 1.69 1.88 +357 6 1.0 0.95 0.91 1.01 1.07 6.95 2.54 1.47 1.46 1.39 1.13 1.26 +358 6 1.0 0.69 0.83 0.48 1.35 3.17 3.24 2.86 1.56 1.16 1.15 0.92 +359 6 1.0 1.05 1.41 0.94 1.01 2.96 3.27 2.91 1.82 0.94 0.71 0.64 +360 6 1.0 1.19 1.76 1.72 1.53 4.79 6.12 3.42 2.25 1.58 0.88 0.82 +361 6 1.0 0.95 1.47 1.91 1.21 2.59 7.23 4.63 1.79 1.29 1.22 0.85 +362 6 1.0 1.17 1.47 1.31 1.17 3.12 8.91 7.43 1.21 0.97 0.78 0.73 +363 6 1.0 2.67 2.41 3.75 6.18 38.8 86.92 25.58 14.81 6.73 2.72 2.42 +364 6 1.0 0.83 1.67 2.7 1.55 5.06 3.1 2.36 1.72 1.6 1.41 1.77 +365 6 1.0 1.07 1.46 1.64 1.51 5.17 3.02 2.18 1.55 0.82 0.89 0.85 +366 6 1.0 1.19 0.82 1.4 2.33 3.4 2.66 2.23 1.38 0.96 1.12 1.15 +367 6 1.0 0.71 0.87 0.79 1.71 4.34 3.1 2.81 1.19 1.11 1.11 1.16 +368 6 1.0 0.61 1.25 1.13 3.09 4.11 5.69 6.03 2.7 1.6 1.49 1.14 +369 6 1.0 0.9 0.73 1.35 1.65 7.93 5.7 4.59 1.92 1.59 1.13 1.03 +370 6 1.0 0.81 0.5 1.29 2.04 4.52 3.38 3.51 1.38 0.87 0.69 0.71 +371 6 1.0 1.11 0.88 1.79 1.47 1.87 3.0 4.03 2.31 1.01 0.68 0.7 +372 6 1.0 1.06 1.56 1.05 1.55 2.18 2.84 2.98 1.77 1.28 0.9 0.6 +373 6 1.0 0.81 0.94 1.07 0.82 4.51 3.6 2.62 1.97 1.09 1.69 1.68 +374 6 1.0 0.84 0.92 0.96 0.89 3.44 3.24 2.44 1.51 1.59 1.44 1.75 +375 6 1.0 0.71 0.9 1.06 0.84 4.89 6.63 5.37 1.09 0.95 1.55 2.21 +376 6 1.0 0.77 0.78 0.79 0.78 2.71 2.03 1.92 1.73 0.86 0.91 0.7 +377 6 1.0 0.6 1.08 0.74 0.76 2.23 2.84 3.12 1.41 0.68 1.26 0.85 +378 6 1.0 0.57 0.71 0.98 1.0 3.16 6.78 7.18 2.38 0.81 0.94 0.87 +379 6 1.0 1.11 0.68 0.97 1.02 3.35 7.25 8.18 3.13 1.96 2.28 1.58 +380 6 1.0 1.19 1.27 1.23 0.99 2.19 2.07 2.75 3.39 1.57 1.46 1.29 +381 6 1.0 1.1 1.36 1.53 0.77 2.48 2.31 2.12 2.28 1.44 1.07 1.1 +382 6 1.0 0.73 1.81 1.41 1.1 3.02 2.87 2.47 2.2 1.1 1.06 0.95 +383 6 1.0 0.69 0.87 1.18 0.66 2.04 1.94 2.29 1.48 0.9 1.28 1.34 +384 6 1.0 1.12 1.37 1.33 0.93 3.55 3.13 2.27 2.28 1.56 2.34 2.14 +385 6 1.0 1.05 1.22 1.2 0.81 2.3 2.59 2.61 1.92 1.81 1.51 1.84 +386 6 1.0 0.98 1.25 1.2 0.78 2.56 2.83 3.57 3.47 1.88 1.71 1.33 +387 6 1.0 1.09 1.13 1.49 1.6 3.28 4.3 4.01 2.47 2.36 1.99 1.76 +388 6 1.0 1.26 1.3 1.49 1.13 4.49 3.94 2.82 1.55 1.81 1.55 1.47 +389 6 1.0 1.2 1.25 1.11 1.64 4.33 4.53 2.9 2.13 2.0 1.69 1.64 +390 -1 1.0 0.6 2.3 2.18 0.71 1.33 0.97 1.48 2.03 1.04 1.54 1.5 +391 -1 1.0 0.82 1.05 1.76 0.82 1.64 1.2 0.75 1.16 1.24 1.88 1.99 +392 -1 1.0 0.7 1.97 3.37 2.22 2.9 2.14 1.76 2.14 1.58 2.79 3.62 +393 -1 1.0 0.76 2.11 2.01 1.3 1.92 1.75 1.96 2.73 2.49 2.83 3.13 +394 7 1.0 1.17 1.22 0.73 0.85 1.11 1.42 1.9 1.66 1.63 2.45 4.04 +395 7 1.0 0.86 0.69 0.62 1.02 0.97 1.11 1.13 1.24 1.8 1.95 2.69 +396 7 1.0 1.07 0.65 0.97 1.18 1.37 1.39 1.92 3.04 3.44 4.53 6.13 +397 7 1.0 1.07 1.0 1.11 0.93 1.28 1.52 1.45 1.5 1.82 2.66 3.84 +398 7 1.0 0.71 0.85 0.89 1.15 0.97 1.07 1.75 1.69 2.53 3.89 5.84 +399 7 1.0 1.16 1.49 1.4 1.41 1.4 1.86 2.26 3.27 4.06 4.43 4.7 +400 7 1.0 1.24 0.92 1.0 1.39 1.49 1.12 1.56 1.97 3.24 2.68 3.19 +401 7 1.0 0.99 0.71 0.77 0.98 1.26 1.02 1.32 1.95 3.3 2.95 3.26 +402 7 1.0 1.11 0.72 0.86 1.08 1.1 1.12 1.55 1.39 2.07 2.24 2.71 +403 7 1.0 0.95 0.8 0.95 0.88 1.1 1.24 1.68 1.7 2.36 2.56 2.44 +404 7 1.0 0.97 0.66 0.71 1.08 1.07 1.25 1.7 1.7 2.04 2.09 2.56 +405 7 1.0 0.87 0.56 0.7 1.38 1.55 1.78 1.94 2.95 2.68 2.58 2.67 +406 7 1.0 0.93 0.69 1.1 1.32 1.08 1.3 1.96 2.36 2.11 2.71 2.88 +407 7 1.0 0.91 0.66 0.78 0.83 1.24 1.82 1.31 1.55 2.52 2.13 2.08 +408 -1 1.0 1.14 2.92 2.75 1.11 1.31 2.18 2.69 3.37 1.87 3.57 4.01 +409 -1 1.0 0.32 0.68 0.77 1.38 2.09 1.79 2.39 2.29 1.49 1.7 1.5 +410 -1 1.0 0.81 0.55 0.73 1.17 1.7 1.72 2.5 2.4 1.09 1.42 1.03 +411 8 1.0 0.91 0.64 0.81 0.83 1.18 2.11 3.33 3.68 2.71 2.4 2.27 +412 8 1.0 0.44 0.75 0.8 0.72 1.51 3.27 5.54 4.37 2.42 3.97 3.26 +413 8 1.0 0.44 0.49 0.61 0.98 1.05 1.39 2.18 2.42 1.91 2.33 1.65 +414 8 1.0 1.19 0.92 0.68 1.15 0.97 1.95 2.81 2.99 2.35 2.25 2.07 +415 8 1.0 0.74 0.62 0.86 1.12 1.08 1.65 2.98 2.99 2.26 2.21 1.8 +416 8 1.0 0.79 1.02 1.09 0.66 0.88 1.31 2.61 4.2 2.29 1.76 1.39 +417 8 1.0 0.44 0.52 0.53 0.34 0.62 0.58 0.7 1.08 0.89 0.79 0.78 +418 8 1.0 0.88 1.05 1.09 0.72 1.07 0.88 0.99 1.54 1.9 1.83 1.71 +419 8 1.0 0.7 1.2 1.15 0.68 1.03 1.22 1.98 2.16 2.14 2.01 2.4 +420 8 1.0 1.0 1.94 1.62 1.08 1.61 1.72 1.56 1.62 1.89 1.95 2.35 +421 8 1.0 0.74 1.1 0.43 0.77 0.85 0.75 1.06 1.96 1.64 1.54 1.37 +422 8 1.0 1.23 1.02 1.31 1.32 1.61 1.58 1.36 1.48 1.65 2.33 3.1 +423 8 1.0 0.98 0.53 0.76 0.98 1.88 1.37 1.23 1.27 2.17 2.92 2.2 +424 8 1.0 0.9 0.57 0.68 0.84 1.48 1.65 1.94 2.58 2.23 1.87 1.52 +425 8 1.0 1.05 0.86 0.65 0.99 3.08 4.27 7.53 4.93 3.75 3.02 2.48 +426 8 1.0 0.61 0.48 0.65 0.67 1.29 1.3 2.36 2.09 1.14 1.51 1.74 +427 8 1.0 1.12 1.32 1.11 0.75 2.01 3.27 3.95 3.86 3.0 2.75 2.39 +428 8 1.0 1.02 1.05 1.02 1.12 2.2 3.42 3.81 3.53 2.89 3.3 3.37 +429 8 1.0 0.7 1.01 1.14 1.26 2.21 2.87 2.98 2.32 1.71 1.52 1.25 +430 8 1.0 0.81 1.13 1.18 1.11 2.23 2.24 2.37 2.35 1.95 1.63 1.66 +431 8 1.0 0.83 1.05 0.99 1.04 1.64 1.92 1.75 1.98 1.68 1.31 1.32 +432 8 1.0 0.89 0.81 0.87 1.47 1.96 2.08 2.45 2.45 1.78 1.6 1.54 +433 8 1.0 0.9 0.88 0.94 1.59 2.42 2.8 3.01 2.47 2.2 2.19 1.55 +434 8 1.0 0.67 0.9 0.99 0.99 2.4 2.72 3.89 3.16 1.73 1.59 1.24 +435 8 1.0 0.9 1.08 1.28 2.58 5.03 6.26 9.22 8.54 2.74 2.47 2.88 +436 8 1.0 1.13 1.01 0.99 1.98 2.94 3.51 3.97 3.54 2.93 2.4 2.19 +437 8 1.0 0.83 0.7 0.73 0.74 2.27 2.55 2.8 2.85 2.01 1.52 1.4 +438 8 1.0 1.27 0.63 0.88 0.84 2.71 3.75 4.97 4.91 2.77 2.51 2.29 +439 8 1.0 0.78 0.66 0.77 1.06 1.74 3.75 5.36 4.63 2.13 2.44 1.93 +440 8 1.0 0.92 0.97 0.9 0.83 1.9 3.75 4.97 4.33 2.32 2.21 1.88 +441 8 1.0 1.14 0.96 0.98 1.49 3.18 5.41 9.55 8.05 4.48 3.02 2.1 +442 8 1.0 0.88 0.91 1.27 1.4 4.48 17.43 16.41 9.5 7.37 4.45 3.97 +443 8 1.0 0.8 0.58 0.44 0.57 0.9 0.94 1.5 1.39 1.27 1.82 1.75 +444 8 1.0 1.34 0.99 0.8 1.26 1.12 1.56 2.06 2.44 2.49 2.63 2.31 +445 8 1.0 0.92 0.93 0.74 0.74 1.17 1.63 2.56 3.2 3.57 3.77 4.18 +446 8 1.0 1.32 1.06 0.81 1.72 3.62 4.13 4.96 5.56 6.84 6.18 5.31 +447 8 1.0 0.56 0.76 0.62 0.91 1.91 2.16 3.74 2.6 4.84 4.79 4.52 +448 8 1.0 0.7 0.81 0.89 1.57 1.94 1.82 2.46 2.36 2.74 2.62 2.23 +449 8 1.0 0.92 0.98 1.03 1.38 1.82 1.96 2.06 2.17 3.19 3.36 3.42 +450 8 1.0 1.15 0.93 1.17 1.78 2.18 1.96 2.01 3.03 3.35 2.53 2.59 +451 8 1.0 0.93 0.61 0.79 0.91 1.06 1.38 1.78 1.89 1.75 1.49 1.45 +452 8 1.0 0.73 0.7 0.73 1.04 1.31 1.24 1.61 1.87 1.69 1.78 2.01 +453 8 1.0 0.95 0.71 0.97 1.21 2.09 1.98 2.33 2.08 1.78 2.1 2.37 +454 8 1.0 0.95 0.81 0.97 1.4 1.31 1.36 2.0 1.97 2.09 2.09 2.22 +455 8 1.0 0.89 0.78 1.02 1.0 1.59 1.75 2.33 2.43 2.26 2.38 2.45 +456 8 1.0 0.76 0.76 0.89 1.1 1.77 2.36 3.43 3.0 4.49 3.69 3.21 +457 8 1.0 1.21 1.16 1.32 1.46 2.4 3.43 4.29 3.97 4.93 3.55 2.96 +458 8 1.0 1.16 2.28 2.27 1.09 2.81 3.16 3.66 4.36 2.8 3.12 2.54 +459 8 1.0 0.96 1.27 0.97 1.19 1.46 1.76 1.94 2.4 2.31 1.81 1.53 +460 8 1.0 0.85 1.12 1.1 0.75 1.12 1.55 1.65 2.29 1.61 1.48 1.49 +461 8 1.0 0.74 1.24 1.15 0.72 1.5 1.65 1.63 2.23 1.88 1.65 1.65 +462 8 1.0 0.73 0.95 0.93 0.89 1.39 1.69 1.87 1.89 2.02 2.04 1.87 +463 8 1.0 0.72 1.03 0.65 0.63 1.16 1.74 1.88 1.99 2.03 2.21 2.35 +464 8 1.0 0.56 1.07 0.57 0.8 1.45 2.68 2.7 2.86 3.32 2.95 2.61 +465 8 1.0 0.76 1.23 1.07 0.46 2.04 3.32 3.73 3.8 3.54 4.91 4.13 +466 8 1.0 1.08 1.06 0.94 1.01 1.32 1.39 2.37 2.44 1.9 1.66 1.45 +467 8 1.0 0.78 0.88 0.75 0.68 1.67 1.98 2.7 3.39 1.98 2.24 1.82 +468 8 1.0 0.95 1.2 1.32 1.14 2.29 2.21 2.8 2.25 3.11 2.44 2.54 +469 8 1.0 1.03 1.12 1.0 1.05 2.11 3.21 3.58 3.7 3.19 3.36 3.04 +470 8 1.0 1.07 0.76 1.02 0.9 3.57 4.44 6.8 7.0 7.33 5.95 5.13 +471 8 1.0 0.9 1.15 1.53 1.22 5.33 7.75 11.72 10.86 11.06 11.67 11.02 +472 8 1.0 0.99 1.32 1.65 0.75 5.76 8.51 10.02 9.28 12.34 9.12 8.81 +473 8 1.0 1.14 1.25 1.24 1.65 7.22 17.97 21.16 11.2 15.21 13.75 6.39 +474 9 1.0 0.75 1.19 1.23 0.77 0.84 1.06 1.45 1.8 1.03 1.2 1.06 +475 9 1.0 1.16 1.34 1.55 1.08 1.91 1.98 2.37 2.76 2.0 1.7 1.15 +476 9 1.0 1.26 2.57 1.52 0.98 1.18 1.7 2.56 3.24 1.38 1.43 1.07 +477 9 1.0 1.07 1.85 1.55 1.07 1.42 1.6 2.29 2.54 1.14 1.16 0.95 +478 9 1.0 0.85 1.22 1.16 0.96 1.16 1.38 1.92 1.78 0.9 0.9 0.71 +479 9 1.0 1.03 1.22 1.2 1.0 1.68 1.66 1.87 2.38 1.16 0.81 1.05 +480 9 1.0 0.98 1.35 1.78 1.19 1.35 1.36 1.72 2.57 1.34 1.16 1.1 +481 9 1.0 1.19 1.61 1.62 2.04 2.04 2.15 3.43 4.16 2.62 2.37 1.81 +482 9 1.0 1.21 2.85 2.15 2.04 2.95 3.0 4.49 4.91 2.17 1.9 1.36 +483 9 1.0 0.96 1.17 0.87 2.62 2.28 2.2 1.24 2.03 1.22 1.02 0.88 +484 9 1.0 0.96 1.49 1.48 3.59 4.14 3.03 3.57 2.06 2.2 2.28 1.86 +485 9 1.0 1.08 0.92 1.53 1.91 3.25 2.36 1.77 1.72 2.16 1.77 1.84 +486 9 1.0 0.39 1.4 1.74 2.07 3.15 3.8 4.34 2.97 2.09 1.71 1.44 +487 9 1.0 0.92 1.02 1.64 2.36 3.02 2.37 3.05 1.75 1.69 1.52 1.61 +488 9 1.0 0.94 0.94 1.66 2.7 4.38 3.06 2.75 2.14 1.48 1.73 1.34 +489 9 1.0 1.05 0.76 1.53 3.22 4.43 3.6 2.63 2.22 1.8 1.39 1.19 +490 9 1.0 1.06 1.23 2.36 2.41 3.27 3.75 2.4 1.65 1.61 2.09 1.85 +491 9 1.0 1.18 5.53 11.9 3.86 28.22 20.07 16.54 9.58 3.3 5.88 8.33 +492 9 1.0 0.76 1.42 3.61 5.75 3.23 2.61 7.69 7.13 5.1 4.12 4.96 +493 10 1.0 1.4 1.68 2.09 3.18 1.42 1.38 1.64 1.74 2.33 2.19 2.67 +494 10 1.0 0.78 0.66 4.69 5.25 1.16 1.78 2.3 1.65 1.78 1.45 1.59 +495 10 1.0 1.05 0.85 1.2 2.05 2.33 1.94 2.66 1.66 0.71 0.65 0.67 +496 10 1.0 1.01 0.78 1.17 1.87 1.6 1.32 1.85 1.54 0.96 0.66 0.68 +497 10 1.0 1.03 1.89 1.46 1.08 1.03 1.02 1.95 1.8 0.65 0.76 0.61 +498 10 1.0 1.5 2.36 3.63 3.3 1.34 2.28 1.82 1.76 1.02 0.99 1.04 +499 10 1.0 0.68 1.04 1.17 0.84 1.15 0.87 0.76 0.59 0.61 0.63 0.83 +500 10 1.0 0.9 1.19 2.59 1.06 1.24 1.76 1.51 0.82 0.87 0.92 0.72 +501 10 1.0 0.92 1.06 6.6 5.84 5.39 2.09 1.47 1.16 0.91 0.83 0.82 +502 10 1.0 0.72 0.64 3.46 1.87 1.53 1.57 1.3 0.81 0.61 0.72 0.76 +503 10 1.0 0.81 1.14 4.47 5.65 4.28 2.59 2.26 1.02 1.11 1.17 1.12 +504 10 1.0 2.27 2.64 6.39 8.01 3.34 1.88 1.85 1.16 1.1 0.98 0.87 +505 10 1.0 1.14 2.14 2.61 2.54 1.73 2.2 2.07 1.18 0.94 0.94 0.92 +506 10 1.0 1.15 3.36 4.32 3.21 4.62 3.89 2.42 1.4 1.07 0.99 1.2 +507 10 1.0 1.07 1.78 2.74 2.78 3.09 3.84 3.54 1.8 1.08 1.04 0.83 +508 10 1.0 1.37 2.05 3.88 3.43 3.45 4.04 4.04 2.2 1.45 0.84 0.92 +509 10 1.0 1.65 3.02 5.08 11.48 12.58 10.44 10.53 3.42 1.15 0.86 0.86 +510 10 1.0 0.97 1.63 3.65 5.11 0.92 1.84 2.66 2.14 1.24 1.23 1.05 +511 10 1.0 1.85 2.08 3.98 3.39 1.29 2.27 2.73 2.16 1.2 0.97 0.9 +512 10 1.0 1.33 2.86 3.07 1.85 1.95 1.88 1.75 1.44 1.16 1.35 1.48 +513 10 1.0 1.3 2.78 5.2 2.95 2.31 3.08 2.77 1.87 1.77 1.66 1.72 +514 10 1.0 2.41 3.57 7.18 4.86 3.1 3.58 3.93 2.28 2.19 2.16 2.23 +515 10 1.0 2.09 3.37 5.52 4.89 3.05 3.27 4.29 2.72 2.15 2.05 2.25 +516 10 1.0 1.52 4.39 7.03 5.45 2.93 3.91 4.44 2.4 1.97 2.21 1.79 +517 10 1.0 2.25 4.67 7.94 5.94 3.76 4.46 4.6 2.43 1.86 1.57 1.26 diff --git a/src/com/ub/cse601/project2/clustering/DBScan.java b/src/com/ub/cse601/project2/clustering/DBScan.java index 94feef0..e64c8f7 100644 --- a/src/com/ub/cse601/project2/clustering/DBScan.java +++ b/src/com/ub/cse601/project2/clustering/DBScan.java @@ -1,5 +1,7 @@ package com.ub.cse601.project2.clustering; +import org.apache.commons.math3.linear.RealMatrix; + import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -22,6 +24,7 @@ public class DBScan { private int minPoints; private double epsilon; private int visited; + private boolean normalizePCA; public DBScan(String fileName) { @@ -29,10 +32,12 @@ public DBScan(String fileName) { } - public DBScan(String fileName, Integer minPoints, double epsilon) { + public DBScan(String fileName, Integer minPoints, double epsilon, boolean normalizePCA) { + this.minPoints = minPoints; this.fileName = fileName; this.epsilon = epsilon; + this.normalizePCA = normalizePCA; } @@ -100,7 +105,10 @@ public double[][] runDBScan() throws Exception { } } } + printClusters(); System.out.println("Runnning Cluster Validation for DBScan, Jaccard Coeffcient: " + calaculateJaccardCoefficient()); + System.out.println("Running PCA Analysis and generating scatter plot..."); + createScatterPlot("DBScan"); return dataMatrix; } @@ -108,7 +116,7 @@ public List regionQuery(int index) { int count = 0; List episilonIndex = new ArrayList(); for (int j = 0; j < distanceMatrix.length; j++) { - if (distanceMatrix[index][j] <= epsilon && distanceMatrix[index][clusterIndex] != Double.NEGATIVE_INFINITY) { + if (distanceMatrix[index][j] <= epsilon && dataMatrix[index][clusterIndex] != Double.NEGATIVE_INFINITY) { episilonIndex.add(j); } } @@ -137,10 +145,12 @@ public void expandCluster(int index, List episilonIndex, int clusterNum } public void printClusters() { - Map> clusterMap = Arrays.stream(dataMatrix).filter(x -> x[clusterIndex] != Double.NEGATIVE_INFINITY).collect(Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList()))); + Map> clusterMap = new TreeMap>(Arrays.stream(dataMatrix).filter(x -> x[clusterIndex] != Double.NEGATIVE_INFINITY). + collect(Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList())))); clusterMap.forEach((x, y) -> { System.out.println("Cluster " + Double.valueOf(x).intValue() + " size: " + y.size()); }); + System.out.println("Total clusters formed: " + clusterMap.size()); } private double calaculateJaccardCoefficient() { @@ -165,5 +175,21 @@ private double calaculateJaccardCoefficient() { return (double) countAgree / (countAgree + countDisagree); } + private void createScatterPlot(String title) { + + PCAAnalysis pca = new PCAAnalysis(); + RealMatrix featureMatrix = pca.prepareFeatureMatrix(dataMatrix, clusterIndex, clusterIndex - 2, normalizePCA); + RealMatrix covMatrix = pca.covarianceMatrix(featureMatrix); + RealMatrix principalComponents = pca.performEigenDecomposition(covMatrix, featureMatrix); + double[] scaleX = pca.findXScale(principalComponents); + double[] scaleY = pca.findYScale(principalComponents); + for (int i = 0; i < principalComponents.getRowDimension(); i++) { + dataMatrix[i][1] = principalComponents.getEntry(i, 0); + dataMatrix[i][2] = principalComponents.getEntry(i, 1); + } + PCAScatterPlot.launchClass(dataMatrix, title, scaleX, scaleY, clusterIndex); + + } + } diff --git a/src/com/ub/cse601/project2/clustering/HierarchialClustering.java b/src/com/ub/cse601/project2/clustering/HierarchialClustering.java index d418adb..4bf1c2c 100644 --- a/src/com/ub/cse601/project2/clustering/HierarchialClustering.java +++ b/src/com/ub/cse601/project2/clustering/HierarchialClustering.java @@ -1,13 +1,15 @@ package com.ub.cse601.project2.clustering; +import org.apache.avro.generic.GenericData; +import org.apache.commons.math3.linear.RealMatrix; + import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.FileAttributeView; -import java.util.Arrays; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; @@ -17,7 +19,8 @@ /** * Created by VenkataRamesh on 10/29/2016. */ -public class HierarchialClustering { +public class +HierarchialClustering { private String fileName; private double[][] dataMatrix; @@ -26,17 +29,17 @@ public class HierarchialClustering { private int attributeCount; private int noOfClusters; private int clusterIndex; - private int maxIterations; + private boolean normalizePCA; public HierarchialClustering(String fileName) { this.fileName = fileName; } - public HierarchialClustering(Integer noOfClusters, String fileName, Integer maxIterations) { + public HierarchialClustering(Integer noOfClusters, String fileName, boolean normalizePCA) { this.noOfClusters = noOfClusters; this.fileName = fileName; - this.maxIterations = maxIterations; + this.normalizePCA = normalizePCA; } public double[][] readGeneDataSet(String path) throws Exception { @@ -82,7 +85,7 @@ public double[][] distanceMatrix() { distanceMatrix[i][j] = eucDistance; distanceMatrix[j][i] = eucDistance; } - distanceMatrix[i][colCount - 1] = i + 1; + //distanceMatrix[i][colCount - 2] = i + 1; } this.distanceMatrix = distanceMatrix; return distanceMatrix; @@ -91,9 +94,10 @@ public double[][] distanceMatrix() { public void runHierarchialMinClustering() { int clusterCount = dataMatrix.length; - int count = 1; - while (clusterCount > noOfClusters && count <= maxIterations) { - System.out.println("Running Hierarchial Clustering iteration: " + count++); + Map>> hieararchialMap = new TreeMap>>(); + AtomicInteger count = new AtomicInteger(1); + while (clusterCount > noOfClusters) { + System.out.println("Running Hierarchial Clustering iteration: " + count); int obj1Idx = 0; int obj2Idx = 0; double minDistance = Double.MAX_VALUE; @@ -101,33 +105,42 @@ public void runHierarchialMinClustering() { for (int j = i + 1; j < distanceMatrix.length; j++) { if (distanceMatrix[i][j] < minDistance && dataMatrix[i][clusterIndex] != dataMatrix[j][clusterIndex]) { minDistance = distanceMatrix[i][j]; + //get index of 2 min clusters obj1Idx = i; obj2Idx = j; } } } + + //get actual cluster id for data points/clusters double grpi = dataMatrix[obj1Idx][clusterIndex]; double grpj = dataMatrix[obj2Idx][clusterIndex]; + int[] grpiIndices = IntStream.range(0, dataMatrix.length) .filter(i -> dataMatrix[i][clusterIndex] == grpi) .toArray(); int[] grpjIndices = IntStream.range(0, dataMatrix.length) .filter(i -> dataMatrix[i][clusterIndex] == grpj) .toArray(); - if (grpiIndices.length <= grpjIndices.length) { - for (int index : grpiIndices) { - dataMatrix[index][clusterIndex] = dataMatrix[obj2Idx][clusterIndex]; - } - } else { - for (int index : grpjIndices) { - dataMatrix[index][clusterIndex] = dataMatrix[obj1Idx][clusterIndex]; - } - } + + Arrays.stream(grpiIndices).forEach(x -> { + dataMatrix[x][clusterIndex] = count.get(); + }); + + Arrays.stream(grpjIndices).forEach(x -> { + dataMatrix[x][clusterIndex] = count.get(); + }); clusterCount = calculateClusterCount(dataMatrix); + count.getAndIncrement(); } - System.out.println("Hierarchial Clustering converged after " + String.valueOf(count - 1) + " iterations"); + System.out.println("Hierarchial Clustering converged after " + String.valueOf(count.get() - 1) + " iterations"); printClusters(); + System.out.println("Jaccard Coefficient: " + calaculateJaccardCoefficient()); + System.out.println("Running PCA Analysis and generating scatter plot..."); + createScatterPlot("Hierarchial Agglomerative"); + + } @@ -136,11 +149,66 @@ public int calculateClusterCount(double[][] dataMatrix) { return clusterMap.size(); } + private double calaculateJaccardCoefficient() { + int countAgree = 0; + int countDisagree = 0; + for (int i = 0; i < dataMatrix.length - 1; i++) { + for (int j = i; j < dataMatrix.length; j++) { + if (dataMatrix[i][clusterIndex] == dataMatrix[j][clusterIndex] && + dataMatrix[i][clusterIndex - 1] == dataMatrix[j][clusterIndex - 1] && + dataMatrix[i][clusterIndex - 1] != -1) { + countAgree++; + } else if (dataMatrix[i][clusterIndex] == dataMatrix[j][clusterIndex] && + dataMatrix[i][clusterIndex - 1] != dataMatrix[j][clusterIndex - 1] || + (dataMatrix[i][clusterIndex] != dataMatrix[j][clusterIndex] && + dataMatrix[i][clusterIndex - 1] == dataMatrix[j][clusterIndex - 1]) && + dataMatrix[i][clusterIndex - 1] != -1) { + countDisagree++; + } + + } + } + return (double) countAgree / (countAgree + countDisagree); + } + public void printClusters() { - Map> clusterMap = Arrays.stream(dataMatrix).collect(Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList()))); - clusterMap.forEach((x, y) -> { - System.out.println("Cluster " + Double.valueOf(x).intValue() + " size: " + y.size()); + AtomicInteger count = new AtomicInteger(1); + Map> clusterMap = new TreeMap>(Arrays.stream(dataMatrix). + collect(Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList())))); + Set keys = clusterMap.keySet(); + keys.forEach(x -> { + int[] indices = IntStream.range(0, dataMatrix.length) + .filter(i -> dataMatrix[i][clusterIndex] == x) + .toArray(); + Arrays.stream(indices).forEach(y -> { + dataMatrix[y][clusterIndex] = count.get(); + }); + count.getAndIncrement(); + }); + + Map> orderedClusterMap = new TreeMap>(Arrays.stream(dataMatrix). + collect(Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList())))); + orderedClusterMap.forEach((x, y) -> { + System.out.println("Cluster " + x.intValue() + " size: " + y.size()); }); + System.out.println("Total clusters formed: " + orderedClusterMap.size()); + } + + + private void createScatterPlot(String title) { + + PCAAnalysis pca = new PCAAnalysis(); + RealMatrix featureMatrix = pca.prepareFeatureMatrix(dataMatrix, clusterIndex, clusterIndex - 2, normalizePCA); + RealMatrix covMatrix = pca.covarianceMatrix(featureMatrix); + RealMatrix principalComponents = pca.performEigenDecomposition(covMatrix, featureMatrix); + double[] scaleX = pca.findXScale(principalComponents); + double[] scaleY = pca.findYScale(principalComponents); + for (int i = 0; i < principalComponents.getRowDimension(); i++) { + dataMatrix[i][1] = principalComponents.getEntry(i, 0); + dataMatrix[i][2] = principalComponents.getEntry(i, 1); + } + PCAScatterPlot.launchClass(dataMatrix, title, scaleX, scaleY, clusterIndex); + } } diff --git a/src/com/ub/cse601/project2/clustering/KMeans.java b/src/com/ub/cse601/project2/clustering/KMeans.java index 369b79e..39e1ae6 100644 --- a/src/com/ub/cse601/project2/clustering/KMeans.java +++ b/src/com/ub/cse601/project2/clustering/KMeans.java @@ -1,5 +1,8 @@ package com.ub.cse601.project2.clustering; +import javafx.application.Application; +import org.apache.commons.math3.linear.RealMatrix; + import java.io.FileNotFoundException; import java.io.IOException; import java.math.BigDecimal; @@ -20,17 +23,21 @@ public class KMeans { private Integer maxIterations; private Integer initialCentroids; private String fileName; - private double[][] dataMatrix; + public double[][] dataMatrix; private Map> clusters; private int objectCount; private int attributeCount; private int clusterIndex; + private List geneIds; + private boolean normalizePCA; - public KMeans(Integer initialCentroids, String fileName, Integer maxIterations) { + public KMeans(Integer initialCentroids, String fileName, Integer maxIterations, List geneIds, boolean normalizePCA) { this.initialCentroids = initialCentroids; this.fileName = fileName; this.maxIterations = maxIterations; + this.geneIds = geneIds; + this.normalizePCA = normalizePCA; } @@ -38,7 +45,7 @@ public KMeans(String fileName) { this.fileName = fileName; } - public double[][] readGeneDataSet(String path) throws IOException, FileNotFoundException { + public double[][] readGeneDataSet(String path) throws IOException { Path filePath = null; try { filePath = Paths.get(path, fileName); @@ -60,7 +67,6 @@ public double[][] readGeneDataSet(String path) throws IOException, FileNotFoundE } - } catch (Exception ex) { } @@ -87,20 +93,32 @@ public double[][] calculateDistanceMatrix() { } public double[][] initKMeans() { - double[][] kMeans = new double[initialCentroids][]; - int k = 0; - Random rand = new Random(); - List clusterIndices = new ArrayList(); - while (k < initialCentroids) { - int centroidIndex = rand.nextInt(dataMatrix.length); - if (clusterIndices.contains(centroidIndex)) continue; - else { - clusterIndices.add(centroidIndex); - kMeans[k] = Arrays.copyOfRange(dataMatrix[centroidIndex], 1, attributeCount + 1); - Arrays.stream(kMeans[k]).forEach(x -> { + + double[][] kMeans = null; + if (geneIds.size() > 0) { + kMeans = new double[geneIds.size()][]; + for (int i = 0; i < geneIds.size(); i++) { + kMeans[i] = Arrays.copyOfRange(dataMatrix[geneIds.get(i) - 1], 1, attributeCount + 1); + Arrays.stream(kMeans[i]).forEach(x -> { x = new BigDecimal(x).setScale(2, RoundingMode.HALF_UP).doubleValue(); }); - k++; + } + } else { + kMeans = new double[initialCentroids][]; + int k = 0; + Random rand = new Random(); + List clusterIndices = new ArrayList(); + while (k < initialCentroids) { + int centroidIndex = rand.nextInt(dataMatrix.length); + if (clusterIndices.contains(centroidIndex)) continue; + else { + clusterIndices.add(centroidIndex); + kMeans[k] = Arrays.copyOfRange(dataMatrix[centroidIndex], 1, attributeCount + 1); + Arrays.stream(kMeans[k]).forEach(x -> { + x = new BigDecimal(x).setScale(2, RoundingMode.HALF_UP).doubleValue(); + }); + k++; + } } } return kMeans; @@ -150,6 +168,8 @@ public void runKMeans(double[][] kMeans) { printClusters(kMeans); System.out.println("Performing Cluster validation..."); System.out.println("Jaccard Coefficient: " + calaculateJaccardCoefficient()); + System.out.println("Running PCA analysis..."); + createScatterPlot("KMeans"); } private boolean checkConvergence(double[][] oldKMeans, double[][] newKMeans) { @@ -163,6 +183,7 @@ private void printClusters(double[][] kMeans) { Arrays.stream(dataMatrix).filter(x -> x[clusterIndex] == clsIndx).collect(Collectors.toList()); System.out.println("Cluster " + new Double(clsIndx).intValue() + " size: " + clusterObjects.size()); } + System.out.println("Total clusters formed: "+kMeans.length); } private double calaculateJaccardCoefficient() { @@ -188,4 +209,21 @@ private double calaculateJaccardCoefficient() { } + private void createScatterPlot(String title) { + + PCAAnalysis pca = new PCAAnalysis(); + RealMatrix featureMatrix = pca.prepareFeatureMatrix(dataMatrix, clusterIndex, clusterIndex - 2, normalizePCA); + RealMatrix covMatrix = pca.covarianceMatrix(featureMatrix); + RealMatrix principalComponents = pca.performEigenDecomposition(covMatrix, featureMatrix); + double[] scaleX = pca.findXScale(principalComponents); + double[] scaleY = pca.findYScale(principalComponents); + for (int i = 0; i < principalComponents.getRowDimension(); i++) { + dataMatrix[i][1] = principalComponents.getEntry(i, 0); + dataMatrix[i][2] = principalComponents.getEntry(i, 1); + } + PCAScatterPlot.launchClass(dataMatrix, title, scaleX, scaleY, clusterIndex); + + } + + } diff --git a/src/com/ub/cse601/project2/clustering/PCAAnalysis.java b/src/com/ub/cse601/project2/clustering/PCAAnalysis.java new file mode 100644 index 0000000..3a98a19 --- /dev/null +++ b/src/com/ub/cse601/project2/clustering/PCAAnalysis.java @@ -0,0 +1,65 @@ +package com.ub.cse601.project2.clustering; + +import com.sun.org.apache.regexp.internal.RE; +import com.sun.org.apache.xml.internal.security.utils.SignerOutputStream; +import org.apache.commons.math3.distribution.NormalDistribution; +import org.apache.commons.math3.linear.*; +import org.apache.commons.math3.stat.StatUtils; +import org.apache.commons.math3.stat.correlation.Covariance; +import org.apache.commons.math3.stat.descriptive.StatisticalMultivariateSummary; + +import java.util.Arrays; + +/** + * Created by ramesh on 11/3/16. + */ +public class PCAAnalysis { + + + public RealMatrix prepareFeatureMatrix(double[][] dataMatrix, int clusterIndex, int endIndex, boolean normalizePCA) { + RealMatrix rm = MatrixUtils.createRealMatrix(dataMatrix); + double[] geneIds = rm.getColumn(0); + double[] clusterIds = rm.getColumn(clusterIndex); + double[][] normalizedData = new double[dataMatrix.length][]; + double[][] tempMatrix = rm.getSubMatrix(0, dataMatrix.length - 1, 1, endIndex).getData(); + if (normalizePCA) { + for (int i = 0; i < tempMatrix.length; i++) { + normalizedData[i] = StatUtils.normalize(tempMatrix[i]); + } + } else { + normalizedData = tempMatrix; + } + RealMatrix featureMatrix = MatrixUtils.createRealMatrix(normalizedData); + return featureMatrix; + } + + public RealMatrix covarianceMatrix(RealMatrix featureMatrix) { + Covariance cv = new Covariance(featureMatrix); + return cv.getCovarianceMatrix(); + } + + + public RealMatrix performEigenDecomposition(RealMatrix covMatrix, RealMatrix featureMatrix) { + EigenDecomposition ed = new EigenDecomposition(covMatrix); + RealMatrix eigenVectors = ed.getV(); + System.out.println("Eigen Values: " + Arrays.toString(ed.getRealEigenvalues())); + RealMatrix principalComponents = featureMatrix.multiply(eigenVectors); + return principalComponents; + } + + public double[] findXScale(RealMatrix princiPalComponents) { + double[] scale = new double[2]; + scale[0] = princiPalComponents.getColumnVector(0).getMinValue(); + scale[1] = princiPalComponents.getColumnVector(0).getMaxValue(); + return scale; + } + + public double[] findYScale(RealMatrix princiPalComponents) { + double[] scale = new double[2]; + scale[0] = princiPalComponents.getColumnVector(1).getMinValue(); + scale[1] = princiPalComponents.getColumnVector(1).getMaxValue(); + return scale; + } + + +} diff --git a/src/com/ub/cse601/project2/clustering/PCAScatterPlot.java b/src/com/ub/cse601/project2/clustering/PCAScatterPlot.java new file mode 100644 index 0000000..b074e64 --- /dev/null +++ b/src/com/ub/cse601/project2/clustering/PCAScatterPlot.java @@ -0,0 +1,53 @@ +package com.ub.cse601.project2.clustering; + +import com.amazonaws.services.opsworks.model.App; +import javafx.application.Application; +import javafx.scene.Scene; +import javafx.scene.chart.NumberAxis; +import javafx.scene.chart.ScatterChart; +import javafx.scene.chart.XYChart; +import javafx.stage.Stage; + +import java.util.*; +import java.util.stream.Collectors; + + +public class PCAScatterPlot extends Application { + + public static double[][] dataMatrix = null; + public static String plotTitle = null; + public static double[] scaleX = null; + public static double[] scaleY = null; + public static Integer clusterIndex = null; + + public static void launchClass(double[][] dataMatrix, String plotTitle, double[] scaleX, double[] scaleY, Integer clusterIndex){ + PCAScatterPlot.dataMatrix = dataMatrix; + PCAScatterPlot.plotTitle = plotTitle; + PCAScatterPlot.scaleX = scaleX; + PCAScatterPlot.scaleY = scaleY; + PCAScatterPlot.clusterIndex = clusterIndex; + Application.launch(PCAScatterPlot.class,plotTitle); + } + @Override + public void start(Stage stage) { + stage.setTitle(plotTitle+" Scatter plot"); + final NumberAxis xAxis = new NumberAxis(scaleX[0], scaleX[1], 0.01); + final NumberAxis yAxis = new NumberAxis(scaleY[0],scaleY[1],0.01); + final ScatterChart sc = new + ScatterChart(xAxis, yAxis); + sc.setTitle(plotTitle+" Cluster Analysis"); + Map> clusterMap = new TreeMap>(Arrays.stream(dataMatrix).filter(x -> x[clusterIndex] != Double.NEGATIVE_INFINITY).collect( + Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList())))); + clusterMap.forEach((x, y) -> { + ScatterChart.Series series = new ScatterChart.Series(); + series.setName("Cluster "+x.intValue()); + for (double[] point : y) { + series.getData().add(new ScatterChart.Data<>(point[1], point[2])); + } + sc.getData().add(series); + }); + Scene scene = new Scene(sc, 700, 500); + stage.setScene(scene); + stage.show(); + } +} \ No newline at end of file diff --git a/src/com/ub/cse601/project2/clustering/PCAVisualization.java b/src/com/ub/cse601/project2/clustering/PCAVisualization.java deleted file mode 100644 index caaaf3b..0000000 --- a/src/com/ub/cse601/project2/clustering/PCAVisualization.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.ub.cse601.project2.clustering; - -/** - * Created by ramesh on 11/3/16. - */ -public class PCAVisualization { -} diff --git a/src/com/ub/cse601/project2/hadoop/MRStarter.java b/src/com/ub/cse601/project2/hadoop/KMeansMRStarter.java similarity index 66% rename from src/com/ub/cse601/project2/hadoop/MRStarter.java rename to src/com/ub/cse601/project2/hadoop/KMeansMRStarter.java index 7ac7a9a..e6531c0 100644 --- a/src/com/ub/cse601/project2/hadoop/MRStarter.java +++ b/src/com/ub/cse601/project2/hadoop/KMeansMRStarter.java @@ -1,6 +1,9 @@ package com.ub.cse601.project2.hadoop; +import com.ub.cse601.project2.clustering.PCAAnalysis; +import com.ub.cse601.project2.clustering.PCAScatterPlot; import org.apache.commons.io.FileUtils; +import org.apache.commons.math3.linear.RealMatrix; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; @@ -15,16 +18,14 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** * Created by ramesh on 11/3/16. */ -public class MRStarter { +public class KMeansMRStarter { private String inPath; private String outPath; @@ -32,14 +33,16 @@ public class MRStarter { private static final String ITERATION = "ITERATION"; private double[][] dataMatrix; private int clusterIndex; + private boolean normalizePCA; - public MRStarter(String inPath, String outPath, Integer maxIterations, double[][] dataMatrix, int clusterIndex ) { + public KMeansMRStarter(String inPath, String outPath, Integer maxIterations, double[][] dataMatrix, int clusterIndex, boolean normalizePCA) { this.inPath = inPath; this.outPath = outPath; this.maxIterations = maxIterations; this.dataMatrix = dataMatrix; this.clusterIndex = clusterIndex; + this.normalizePCA = normalizePCA; } @@ -53,11 +56,11 @@ public void runKMeansMR() throws Exception { Job job = Job.getInstance(conf); //delete output folder deleteOutPutFolder(outPath, conf); - job.setJobName("Running KMeans MR, iteration: "+iterations); + job.setJobName("Running KMeans MR, iteration: " + iterations); job.getConfiguration().setInt(ITERATION, iterations); job.setMapperClass(KMeansMapper.class); job.setReducerClass(KMeansReducer.class); - job.setJarByClass(MRStarter.class); + job.setJarByClass(KMeansMRStarter.class); Path in = new Path(inPath); Path out = new Path(outPath); job.setMapOutputKeyClass(IntWritable.class); @@ -75,9 +78,14 @@ public void runKMeansMR() throws Exception { } - System.out.println("KMeansMR convereged after " +String.valueOf(iterations-1)+" iterations"); + System.out.println("KMeansMR convereged after " + String.valueOf(iterations - 1) + " iterations"); + double jaccardCoefficient = calaculateJaccardCoefficient(); + printClusters(); System.out.println("Performing Cluster validation...."); - System.out.println("Jaccard Coefficient: " + calaculateJaccardCoefficient()); + System.out.println("Jaccard Coefficient: " + jaccardCoefficient); + System.out.println("Performing PCA analysis and generating Scatter Plot..."); + createScatterPlot("KMeans Map Reduce"); + } @@ -91,7 +99,7 @@ private void deleteOutPutFolder(String outPath, Configuration conf) throws Excep } - boolean checkConvergence(int iter){ + boolean checkConvergence(int iter) { try { @@ -112,8 +120,7 @@ boolean checkConvergence(int iter){ return currentCentroids.equals(previousCentroids); - - } catch ( Exception e ) { + } catch (Exception e) { e.printStackTrace(); @@ -131,19 +138,18 @@ private double calaculateJaccardCoefficient() throws IOException { List finalData = Files.readAllLines(centroidFilePath, StandardCharsets.UTF_8); - for ( String singleLine : finalData ) { + for (String singleLine : finalData) { String[] lineSplit = singleLine.split("\t"); Double centroidIndex = Double.parseDouble(lineSplit[0]); Arrays.stream(lineSplit[1].split(",")).forEach(x -> { - int index = Integer.parseInt(x); - dataMatrix[index-1][clusterIndex] = centroidIndex; + int index = Integer.parseInt(x); + dataMatrix[index - 1][clusterIndex] = centroidIndex; }); } - int countAgree = 0; int countDisagree = 0; @@ -167,4 +173,30 @@ private double calaculateJaccardCoefficient() throws IOException { } + private void createScatterPlot(String title) { + + PCAAnalysis pca = new PCAAnalysis(); + RealMatrix featureMatrix = pca.prepareFeatureMatrix(dataMatrix, clusterIndex, clusterIndex - 2, normalizePCA); + RealMatrix covMatrix = pca.covarianceMatrix(featureMatrix); + RealMatrix principalComponents = pca.performEigenDecomposition(covMatrix, featureMatrix); + double[] scaleX = pca.findXScale(principalComponents); + double[] scaleY = pca.findYScale(principalComponents); + for (int i = 0; i < principalComponents.getRowDimension(); i++) { + dataMatrix[i][1] = principalComponents.getEntry(i, 0); + dataMatrix[i][2] = principalComponents.getEntry(i, 1); + } + PCAScatterPlot.launchClass(dataMatrix, title, scaleX, scaleY, clusterIndex); + + } + + public void printClusters() { + Map> clusterMap = new TreeMap>(Arrays.stream(dataMatrix). + collect(Collectors.groupingBy(x -> x[clusterIndex], Collectors.mapping(x -> x, Collectors.toList())))); + clusterMap.forEach((x, y) -> { + System.out.println("Cluster " + Double.valueOf(x).intValue() + " size: " + y.size()); + }); + System.out.println("Total clusters formed: " + clusterMap.size()); + } + + } diff --git a/src/com/ub/cse601/project2/hadoop/KMeansReducer.java b/src/com/ub/cse601/project2/hadoop/KMeansReducer.java index 89c4948..caa2d26 100644 --- a/src/com/ub/cse601/project2/hadoop/KMeansReducer.java +++ b/src/com/ub/cse601/project2/hadoop/KMeansReducer.java @@ -87,7 +87,7 @@ protected void reduce(IntWritable key, Iterable value, Context context) th for (int i = 0; i < genesLength; i++) { - newCentroidExp[i] = (double) newCentroidExp[i] / genesCount; + newCentroidExp[i] = newCentroidExp[i] / genesCount; newCentroidExp[i] = BigDecimal.valueOf(newCentroidExp[i]).setScale(2, RoundingMode.HALF_UP).doubleValue(); } diff --git a/src/com/ub/cse601/project2/run/RunDBScan.java b/src/com/ub/cse601/project2/run/RunDBScan.java index a32e0c9..d916264 100644 --- a/src/com/ub/cse601/project2/run/RunDBScan.java +++ b/src/com/ub/cse601/project2/run/RunDBScan.java @@ -39,14 +39,20 @@ public static void main(String[] args) throws Exception { } if (fileName == null || fileName.length() == 0) fileName = "cho.txt"; String path = "data/"; - DBScan dbScan = new DBScan(fileName, minPoints, episilon); + boolean normalizePCA = false; + System.out.println("Do you want to normalize dat for PCA, Please type 'Y' or 'N': "); + String normalize = sc.next(); + if(normalize.equalsIgnoreCase("y")){ + normalizePCA = true; + } + DBScan dbScan = new DBScan(fileName, minPoints, episilon, normalizePCA); dbScan.readGeneDataSet(path); double[][] distMat = dbScan.calculateDistanceMatrix(); - Arrays.stream(distMat).forEach(x->{ + /*Arrays.stream(distMat).forEach(x->{ System.out.println(Arrays.toString(x)); - }); + });*/ dbScan.runDBScan(); - dbScan.printClusters(); + //dbScan.printClusters(); } } diff --git a/src/com/ub/cse601/project2/run/RunHierarchialClustering.java b/src/com/ub/cse601/project2/run/RunHierarchialClustering.java index deca94e..24cddca 100644 --- a/src/com/ub/cse601/project2/run/RunHierarchialClustering.java +++ b/src/com/ub/cse601/project2/run/RunHierarchialClustering.java @@ -11,19 +11,26 @@ public class RunHierarchialClustering { public static void main(String[] args) throws Exception { + Scanner sc = new Scanner(System.in); - System.out.println("Enter Final No. of Clusters: "); - int k = sc.nextInt(); System.out.println("Enter File name of data set: "); String fileName = sc.next(); + System.out.println("Enter Final No. of Clusters: "); + int k = sc.nextInt(); if (fileName == null || fileName.length() == 0) fileName = "cho.txt"; String path = "data/"; - System.out.println("Enter Max Iterations: "); - Integer maxIter = sc.nextInt(); - HierarchialClustering hc = new HierarchialClustering(k, fileName, maxIter); + boolean normalizePCA = false; + System.out.println("Do you want to normalize dat for PCA, Please type 'Y' or 'N': "); + String normalize = sc.next(); + if(normalize.equalsIgnoreCase("y")){ + normalizePCA = true; + } + HierarchialClustering hc = new HierarchialClustering(k, fileName, normalizePCA); hc.readGeneDataSet(path); double[][] distanceMatrix = hc.distanceMatrix(); hc.runHierarchialMinClustering(); + + } } diff --git a/src/com/ub/cse601/project2/run/RunKMeans.java b/src/com/ub/cse601/project2/run/RunKMeans.java index adb3b43..44abf4f 100644 --- a/src/com/ub/cse601/project2/run/RunKMeans.java +++ b/src/com/ub/cse601/project2/run/RunKMeans.java @@ -1,39 +1,74 @@ package com.ub.cse601.project2.run; import com.ub.cse601.project2.clustering.KMeans; +import javafx.application.Application; +import javafx.scene.chart.NumberAxis; +import javafx.scene.chart.ScatterChart; +import javafx.scene.chart.XYChart; +import javafx.stage.Stage; -import java.util.Arrays; -import java.util.Scanner; +import java.util.*; +import java.util.stream.Collectors; + +import javafx.scene.Scene; /** * Created by VenkataRamesh on 10/28/2016. */ public class RunKMeans { + static double[][] dataMatrix = null; + public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); System.out.println("Enter File name of data set: "); - String fileName = sc.next(); + String fileName = sc.nextLine(); if (fileName == null || fileName.length() == 0) fileName = "cho.txt"; - System.out.println("Enter No. of Clusters: "); - int k = sc.nextInt(); String path = "data/"; + System.out.println("Do you want to input initial centroids, Please type 'Y' or 'N': "); + String manual = sc.nextLine(); + List geneIds = new ArrayList(); + int k=0; + if(manual.equalsIgnoreCase("y")){ + System.out.println("Enter comma separated gene id's: "); + String genes = sc.nextLine().replaceAll("\\s+", ""); + System.out.println(genes); + geneIds = Arrays.stream(genes.split(",")).collect(Collectors.mapping(x -> Integer.parseInt(x.trim()), Collectors.toList())); + System.out.println(geneIds); + } + else{ + System.out.println("Enter No. of Clusters: "); + k = sc.nextInt(); + } System.out.println("Enter Max Iterations: "); Integer maxIter = sc.nextInt(); - KMeans kMeans = new KMeans(k, fileName, maxIter); + boolean normalizePCA = false; + System.out.println("Do you want to normalize dat for PCA, Please type 'Y' or 'N': "); + String normalize = sc.next(); + if(normalize.equalsIgnoreCase("y")){ + normalizePCA = true; + } + KMeans kMeans = new KMeans(k, fileName, maxIter, geneIds, normalizePCA); kMeans.readGeneDataSet(path); double[][] distanceMatrix = kMeans.calculateDistanceMatrix(); double[][] initKMeans = kMeans.initKMeans(); + dataMatrix = kMeans.dataMatrix; /*double[][] tk = new double[5][]; tk[0] = new double[]{-0.69, -0.96, -1.16, -0.66, -0.55, 0.12, -1.07, -1.22, 0.82, 1.4, 0.71, 0.68, 0.11, -0.04, 0.19, 0.82}; tk[1] = new double[]{-0.2, 0.14, 0.73, 0.3, -0.28, -0.12, -0.27, -0.22, -0.25, 0.24, 0.07, 0.0, -0.1, -0.06, -0.17, -0.08}; tk[2] = new double[]{-0.32, -0.21, 1.11, 0.84, -0.14, -0.09, -0.37, -0.59, -0.4, 0.44, 0.25, 0.04, 0.08, -0.304, -0.39, -0.36}; tk[3] = new double[]{-0.48, 0.06, -0.01, 0.31, 0.37, 0.27, 0.35, 0.31, -0.19, -0.27, -0.23, 0.15, 0.024, 0.18, -0.24, -0.41}; tk[4] = new double[]{-0.79, -0.56, -0.79, -0.23, -0.53, -0.14, 0.61, 0.95, 0.96, 0.38, -0.11, -0.31, -0.41, 0.49, 0.08, 0.15};*/ - System.out.println("Randomly chosen initial centroids:"); + if(manual.equalsIgnoreCase("Y")){ + System.out.println("Initial chosen centroids are:"); + } + else{ + System.out.println("Randomly chosen initial centroids:"); + } Arrays.stream(initKMeans).forEach(x -> { System.out.println(Arrays.toString(x)); }); kMeans.runKMeans(initKMeans); + } } diff --git a/src/com/ub/cse601/project2/run/RunKMeansMR.java b/src/com/ub/cse601/project2/run/RunKMeansMR.java index c24901f..47988f1 100644 --- a/src/com/ub/cse601/project2/run/RunKMeansMR.java +++ b/src/com/ub/cse601/project2/run/RunKMeansMR.java @@ -4,7 +4,7 @@ * Created by nitish on 11/2/16. */ -import com.ub.cse601.project2.hadoop.MRStarter; +import com.ub.cse601.project2.hadoop.KMeansMRStarter; import java.io.BufferedWriter; import java.io.FileWriter; @@ -33,12 +33,16 @@ public class RunKMeansMR { private Map> clusters; private String inPath; private String outPath; + private List geneIds; + private boolean normalizePCA; - public RunKMeansMR(Integer initialCentroids, String fileName, Integer maxIterations) { + public RunKMeansMR(Integer initialCentroids, String fileName, Integer maxIterations, List geneIds, boolean normalizePCA) { this.initialCentroids = initialCentroids; this.fileName = fileName; this.maxIterations = maxIterations; + this.geneIds = geneIds; + this.normalizePCA = normalizePCA; } @@ -48,20 +52,31 @@ public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); System.out.println("Enter File name of data set: "); - String fileName = sc.next(); - - if (fileName == null || fileName.length() == 0) { - - fileName = "cho.txt"; - + String fileName = sc.nextLine(); + if (fileName == null || fileName.length() == 0) fileName = "cho.txt"; + String path = "data/"; + System.out.println("Do you want to input initial centroids, Please type 'Y' or 'N': "); + String manual = sc.nextLine(); + List geneIds = new ArrayList(); + int k = 0; + if (manual.equalsIgnoreCase("y")) { + System.out.println("Enter comma separated gene id's: "); + String genes = sc.nextLine().replaceAll("\\s+", ""); + System.out.println(genes); + geneIds = Arrays.stream(genes.split(",")).collect(Collectors.mapping(x -> Integer.parseInt(x.trim()), Collectors.toList())); + System.out.println(geneIds); + } else { + System.out.println("Enter No. of Clusters: "); + k = sc.nextInt(); } - - System.out.println("Enter No. of Clusters: "); - int k = sc.nextInt(); - System.out.println("Enter Max Iterations: "); Integer maxIter = sc.nextInt(); - + boolean normalizePCA = false; + System.out.println("Do you want to normalize dat for PCA, Please type 'Y' or 'N': "); + String normalize = sc.next(); + if (normalize.equalsIgnoreCase("y")) { + normalizePCA = true; + } //System.out.println("args" + args.length); //String inPath = !args.equals("") && args[0] != null || args[0].length() > 0 ? args[0] : "data/input/"; @@ -99,9 +114,17 @@ public static void main(String[] args) throws Exception { }); Files.copy(Paths.get(dataPath, fileName), Paths.get(inPath, fileName)); - RunKMeansMR kMeansMR = new RunKMeansMR(k, fileName, maxIter); + RunKMeansMR kMeansMR = new RunKMeansMR(k, fileName, maxIter, geneIds, normalizePCA); double[][] returnedDataMatrix = kMeansMR.readGeneDataSet(inPath); double[][] initialKMeans = kMeansMR.initKMeans(); + if (manual.equalsIgnoreCase("Y")) { + System.out.println("Initial chosen centroids are:"); + } else { + System.out.println("Randomly chosen initial centroids:"); + } + Arrays.stream(initialKMeans).forEach(x -> { + System.out.println(Arrays.toString(x)); + }); /*double[][] tk = new double[5][]; tk[0] = new double[]{-0.69, -0.96, -1.16, -0.66, -0.55, 0.12, -1.07, -1.22, 0.82, 1.4, 0.71, 0.68, 0.11, -0.04, 0.19, 0.82}; tk[1] = new double[]{-0.2, 0.14, 0.73, 0.3, -0.28, -0.12, -0.27, -0.22, -0.25, 0.24, 0.07, 0.0, -0.1, -0.06, -0.17, -0.08}; @@ -109,7 +132,7 @@ public static void main(String[] args) throws Exception { tk[3] = new double[]{-0.48, 0.06, -0.01, 0.31, 0.37, 0.27, 0.35, 0.31, -0.19, -0.27, -0.23, 0.15, 0.024, 0.18, -0.24, -0.41}; tk[4] = new double[]{-0.79, -0.56, -0.79, -0.23, -0.53, -0.14, 0.61, 0.95, 0.96, 0.38, -0.11, -0.31, -0.41, 0.49, 0.08, 0.15};*/ kMeansMR.writeInitialCentroidsToFile(centroidPath, "centroids_0.txt", initialKMeans); - MRStarter startJob = new MRStarter(inPath, outPath, maxIter, returnedDataMatrix, kMeansMR.clusterIndex); + KMeansMRStarter startJob = new KMeansMRStarter(inPath, outPath, maxIter, returnedDataMatrix, kMeansMR.clusterIndex, normalizePCA); startJob.runKMeansMR(); } catch (Exception e) { @@ -170,20 +193,32 @@ public double[][] readGeneDataSet(String path) throws IOException { } public double[][] initKMeans() { - double[][] kMeans = new double[initialCentroids][]; - int k = 0; - Random rand = new Random(); - List clusterIndices = new ArrayList(); - while (k < initialCentroids) { - int centroidIndex = rand.nextInt(dataMatrix.length); - if (clusterIndices.contains(centroidIndex)) continue; - else { - clusterIndices.add(centroidIndex); - kMeans[k] = Arrays.copyOfRange(dataMatrix[centroidIndex], 1, attributeCount + 1); - Arrays.stream(kMeans[k]).forEach(x -> { + + double[][] kMeans = null; + if (geneIds.size() > 0) { + kMeans = new double[geneIds.size()][]; + for (int i = 0; i < geneIds.size(); i++) { + kMeans[i] = Arrays.copyOfRange(dataMatrix[geneIds.get(i) - 1], 1, attributeCount + 1); + Arrays.stream(kMeans[i]).forEach(x -> { x = new BigDecimal(x).setScale(2, RoundingMode.HALF_UP).doubleValue(); }); - k++; + } + } else { + kMeans = new double[initialCentroids][]; + int k = 0; + Random rand = new Random(); + List clusterIndices = new ArrayList(); + while (k < initialCentroids) { + int centroidIndex = rand.nextInt(dataMatrix.length); + if (clusterIndices.contains(centroidIndex)) continue; + else { + clusterIndices.add(centroidIndex); + kMeans[k] = Arrays.copyOfRange(dataMatrix[centroidIndex], 1, attributeCount + 1); + Arrays.stream(kMeans[k]).forEach(x -> { + x = new BigDecimal(x).setScale(2, RoundingMode.HALF_UP).doubleValue(); + }); + k++; + } } } return kMeans; @@ -202,8 +237,6 @@ public void writeInitialCentroidsToFile(String filePath, String centroidFileName try { String line = Arrays.stream(singleArray).mapToObj(i -> String.valueOf(i)).collect(Collectors.joining("\t")); - System.out.println(line); - if (counter.get() != (initialCentroids.length - 1)) { writer.append(line + "\n");