From e5008ccfb168d0f12a9caf6af998e8a5b0b933b0 Mon Sep 17 00:00:00 2001 From: Jason Baldridge Date: Thu, 26 Nov 2015 00:18:55 -0600 Subject: [PATCH] First commit. --- LICENSE | 178 +++ README.md | 121 ++ hidden.py | 145 ++ simdata/.RData | Bin 0 -> 28100 bytes simdata/generate_linear_data.R | 45 + simdata/generate_moon_data.py | 16 + simdata/generate_saturn_data.R | 68 + simdata/linear_data_eval.csv | 200 +++ simdata/linear_data_train.csv | 1000 +++++++++++++ simdata/linear_data_train.jpg | Bin 0 -> 35745 bytes simdata/moon_data_eval.csv | 1000 +++++++++++++ simdata/moon_data_train.csv | 2000 +++++++++++++++++++++++++ simdata/moon_data_train.jpg | Bin 0 -> 49384 bytes simdata/output_curve_hidden_nodes.txt | 150 ++ simdata/plot_data.R | 10 + simdata/plot_hidden_curve.R | 9 + simdata/plot_hyperplane.R | 15 + simdata/saturn_data_eval.csv | 100 ++ simdata/saturn_data_train.csv | 500 +++++++ simdata/saturn_data_train.jpg | Bin 0 -> 33634 bytes softmax.py | 132 ++ truncnorm_hidden.py | 134 ++ 22 files changed, 5823 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 hidden.py create mode 100644 simdata/.RData create mode 100644 simdata/generate_linear_data.R create mode 100644 simdata/generate_moon_data.py create mode 100644 simdata/generate_saturn_data.R create mode 100644 simdata/linear_data_eval.csv create mode 100644 simdata/linear_data_train.csv create mode 100644 simdata/linear_data_train.jpg create mode 100644 simdata/moon_data_eval.csv create mode 100644 simdata/moon_data_train.csv create mode 100644 simdata/moon_data_train.jpg create mode 100644 simdata/output_curve_hidden_nodes.txt create mode 100644 simdata/plot_data.R create mode 100644 simdata/plot_hidden_curve.R create mode 100644 simdata/plot_hyperplane.R create mode 100644 simdata/saturn_data_eval.csv create mode 100644 simdata/saturn_data_train.csv create mode 100644 simdata/saturn_data_train.jpg create mode 100644 softmax.py create mode 100644 truncnorm_hidden.py diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4909afd --- /dev/null +++ b/LICENSE @@ -0,0 +1,178 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..92540f8 --- /dev/null +++ b/README.md @@ -0,0 +1,121 @@ +Explore TensorFlow +==== + +Example code to explore[TensorFlow](http://www.tensorflow.org/). + +You need have [TensorFlow installed](http://www.tensorflow.org/get_started/os_setup.md). + + +## Instructions for simulated data + +The subdirectory `try-tf/simdata` contains train and evaluation data sets for three simulated data set types: linear, moon, and saturn. It also contains some simple R and Python scripts for generating and viewing the data. + +### Linearly separable data + +The data: + +* `try-tf/simdata/linear_data_train.csv` +* `try-tf/simdata/linear_data_eval.csv` + +The training data set looks like this. + +![](simdata/linear_data_train.jpg) + +Softmax regression is perfectly capable of handling this data. If you run the command below, you should see output similar to that provided here. + +``` +$ python softmax.py --train simdata/linear_data_train.csv --test simdata/linear_data_eval.csv --num_epochs 5 --verbose True +Initialized! + +Training. +0 1 2 3 4 5 6 7 8 9 +10 11 12 13 14 15 16 17 18 19 +20 21 22 23 24 25 26 27 28 29 +30 31 32 33 34 35 36 37 38 39 +40 41 42 43 44 45 46 47 48 49 + +Weight matrix. +[[-1.87038445 1.87038457] + [-2.23716712 2.23716712]] + +Bias vector. +[ 1.57296884 -1.57296848] + +Applying model to first test instance. +Point = [[ 0.14756215 0.24351828]] +Wx+b = [[ 0.7521798 -0.75217938]] +softmax(Wx+b) = [[ 0.81822371 0.18177626]] + +Accuracy: 1.0 +``` + +### Moon data + +The data: + + * `try-tf/simdata/moon_data_train.csv` + * `try-tf/simdata/moon_data_eval.csv` + +The training data set looks like this. + +![](simdata/moon_data_train.jpg) + +The softmax network performs poorly, but a network with a five node hidden layer works great. + +``` +$ python softmax.py --train simdata/moon_data_train.csv --test simdata/moon_data_eval.csv --num_epochs 100 +Accuracy: 0.861 + +$ python hidden.py --train simdata/moon_data_train.csv --test simdata/moon_data_eval.csv --num_epochs 100 --num_hidden 5 +Accuracy: 0.971 +``` + +### Saturn data + +The data: + + * `try-tf/simdata/saturn_data_train.csv` + * `try-tf/simdata/saturn_data_eval.csv` + +The training data set looks like this. + +![](simdata/saturn_data_train.jpg) + +Again, a softmax network performs poorly, but a network with a five node hidden layer works great. + +``` +$ python softmax.py --train simdata/saturn_data_train.csv --test simdata/saturn_data_eval.csv --num_epochs 100 +Accuracy: 0.43 + +$ python hidden.py --train simdata/saturn_data_train.csv --test simdata/saturn_data_eval.csv --num_epochs 100 --num_hidden 15 +Accuracy: 1.0 +``` + +## Generating simulated data. + +Feel free to play around with the code to generate data to make it harder, add more dimensions, etc. You can then generate new data as follows (while in the simdata directory): + +``` +$ Rscript generate_linear_data.R +$ python generate_moon_data.R +$ Rscript generate_saturn_data.R +``` + +The R scripts generate both train and test sets. For the moon data, you'll need to split the output into train and eval files using the Unix `head` and `tail` commands. + +## Creating plots of the data. + +To prepare the blog post for this repository, I created a few R scripts to plot data. They are simple, but I figured I'd include them in case they are useful starting points for others for changing things or plotting related data. + +Go into the `simdata` directory. + +Open `plot_data.R` in an editor and uncomment the data set you'd like to plot, save it, and then run: + +``` +$ Rscript plot_data.R +``` + +For plotting the image with the hyperplane, start up R and then provide the command `source("plot_hyperplane.R")` to R. + +For plotting the graph relating the number of hidden nodes to accuracy, start up R and then provide the command `source("plot_hidden_curve.R")` to R. + diff --git a/hidden.py b/hidden.py new file mode 100644 index 0000000..3d00ef7 --- /dev/null +++ b/hidden.py @@ -0,0 +1,145 @@ +import tensorflow.python.platform + +import numpy as np +import tensorflow as tf + +# Global variables. +NUM_LABELS = 2 # The number of labels. +BATCH_SIZE = 100 # The number of training examples to use per training step. + +tf.app.flags.DEFINE_string('train', None, + 'File containing the training data (labels & features).') +tf.app.flags.DEFINE_string('test', None, + 'File containing the test data (labels & features).') +tf.app.flags.DEFINE_integer('num_epochs', 1, + 'Number of passes over the training data.') +tf.app.flags.DEFINE_integer('num_hidden', 1, + 'Number of nodes in the hidden layer.') +tf.app.flags.DEFINE_boolean('verbose', False, 'Produce verbose output.') +FLAGS = tf.app.flags.FLAGS + +# Extract numpy representations of the labels and features given rows consisting of: +# label, feat_0, feat_1, ..., feat_n +def extract_data(filename): + + # Arrays to hold the labels and feature vectors. + labels = [] + fvecs = [] + + # Iterate over the rows, splitting the label from the features. Convert labels + # to integers and features to floats. + for line in file(filename): + row = line.split(",") + labels.append(int(row[0])) + fvecs.append([float(x) for x in row[1:]]) + + # Convert the array of float arrays into a numpy float matrix. + fvecs_np = np.matrix(fvecs).astype(np.float32) + + # Convert the array of int labels into a numpy array. + labels_np = np.array(labels).astype(dtype=np.uint8) + + # Convert the int numpy array into a one-hot matrix. + labels_onehot = (np.arange(NUM_LABELS) == labels_np[:, None]).astype(np.float32) + + # Return a pair of the feature matrix and the one-hot label matrix. + return fvecs_np,labels_onehot + +# Init weights method. (Lifted from Delip Rao: http://deliprao.com/archives/100) +def init_weights(shape, init_method='xavier', xavier_params = (None, None)): + if init_method == 'zeros': + return tf.Variable(tf.zeros(shape, dtype=tf.float32)) + elif init_method == 'uniform': + return tf.Variable(tf.random_normal(shape, stddev=0.01, dtype=tf.float32)) + else: #xavier + (fan_in, fan_out) = xavier_params + low = -4*np.sqrt(6.0/(fan_in + fan_out)) # {sigmoid:4, tanh:1} + high = 4*np.sqrt(6.0/(fan_in + fan_out)) + return tf.Variable(tf.random_uniform(shape, minval=low, maxval=high, dtype=tf.float32)) + +def main(argv=None): + # Be verbose? + verbose = FLAGS.verbose + + # Get the data. + train_data_filename = FLAGS.train + test_data_filename = FLAGS.test + + # Extract it into numpy arrays. + train_data,train_labels = extract_data(train_data_filename) + test_data, test_labels = extract_data(test_data_filename) + + # Get the shape of the training data. + train_size,num_features = train_data.shape + + # Get the number of epochs for training. + num_epochs = FLAGS.num_epochs + + # Get the size of layer one. + num_hidden = FLAGS.num_hidden + + # This is where training samples and labels are fed to the graph. + # These placeholder nodes will be fed a batch of training data at each + # training step using the {feed_dict} argument to the Run() call below. + x = tf.placeholder("float", shape=[None, num_features]) + y_ = tf.placeholder("float", shape=[None, NUM_LABELS]) + + # For the test data, hold the entire dataset in one constant node. + test_data_node = tf.constant(test_data) + + # Define and initialize the network. + + # Initialize the hidden weights and biases. + w_hidden = init_weights( + [num_features, num_hidden], + 'xavier', + xavier_params=(num_features, num_hidden)) + + b_hidden = init_weights([1,num_hidden],'zeros') + + # The hidden layer. + hidden = tf.nn.tanh(tf.matmul(x,w_hidden) + b_hidden) + + # Initialize the output weights and biases. + w_out = init_weights( + [num_hidden, NUM_LABELS], + 'xavier', + xavier_params=(num_hidden, NUM_LABELS)) + + b_out = init_weights([1,NUM_LABELS],'zeros') + + # The output layer. + y = tf.nn.softmax(tf.matmul(hidden, w_out) + b_out) + + # Optimization. + cross_entropy = -tf.reduce_sum(y_*tf.log(y)) + train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) + + # Evaluation. + correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) + accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) + + # Create a local session to run this computation. + with tf.Session() as s: + # Run all the initializers to prepare the trainable parameters. + tf.initialize_all_variables().run() + if verbose: + print 'Initialized!' + print + print 'Training.' + + # Iterate and train. + for step in xrange(num_epochs * train_size // BATCH_SIZE): + if verbose: + print step, + + offset = (step * BATCH_SIZE) % train_size + batch_data = train_data[offset:(offset + BATCH_SIZE), :] + batch_labels = train_labels[offset:(offset + BATCH_SIZE)] + train_step.run(feed_dict={x: batch_data, y_: batch_labels}) + if verbose and offset >= train_size-BATCH_SIZE: + print + print "Accuracy:", accuracy.eval(feed_dict={x: test_data, y_: test_labels}) + +if __name__ == '__main__': + tf.app.run() diff --git a/simdata/.RData b/simdata/.RData new file mode 100644 index 0000000000000000000000000000000000000000..a860e469f058963e5fe4eff4a4a3d2afe1c3ed8f GIT binary patch literal 28100 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 F^=};q!KDBI literal 0 HcmV?d00001 diff --git a/simdata/generate_linear_data.R b/simdata/generate_linear_data.R new file mode 100644 index 0000000..b8812a3 --- /dev/null +++ b/simdata/generate_linear_data.R @@ -0,0 +1,45 @@ +### 10/29/2015 +### Simulate a two-class linearly separable classification problem. +### Label 0 is the "negative" class. +### Label 1 is the "positive" class. +### Author: Jason Baldridge + +# Create a matrix given a label, the class means of some number of +# dimensions, the number of items, and the standard deviation. Values +# are sampled normally according to the mean and stdev for each +# column. +create_matrix = function(label, mu, n, dev=.1) { + d = length(mu) + x = t(matrix(rnorm(n*d, mu, dev), ncol=n)) + cbind(rep(label,n),x) + } + +# Num input dimensions (the "features"). +numDimensions = 2 + +# Sample the means for the dimensions for a positive class. +#pos = runif(numDimensions,min=0,max=1) +pos = c(.7,.5) # Use a fixed 2-dimensional center. + +# Sample the means for the dimensions for a negative class. +#neg = runif(numDimensions,min=0,max=1) +neg = c(.3,.1) # Use a fixed 2-dimensional center. + +# Create training data. +numTraining = 500 +trainDev = .1 +training_data = as.matrix(rbind(create_matrix(1,pos,numTraining,trainDev),create_matrix(0,neg,numTraining,trainDev))) +shuffled_training_data = training_data[sample(nrow(training_data)),] +write.table(shuffled_training_data,file="linear_data_train.csv",row.names=FALSE,col.names=FALSE,quote=FALSE,sep=",") + +# Create eval data. Possibly make the stdev bigger to make it a bit more interesting. +numEval = 100 +evalDev = .1 +eval_data = as.matrix(rbind(create_matrix(1,pos,numEval,evalDev),create_matrix(0,neg,numEval,evalDev))) +shuffled_eval_data = eval_data[sample(nrow(eval_data)),] +write.table(shuffled_eval_data,file="linear_data_eval.csv",row.names=FALSE,col.names=FALSE,quote=FALSE,sep=",") + +#Plot the training items, if desired. +#colnames(training_data) = c("label","x","y") +#plot(training_data[,c("x","y")],pch=21,bg=c("orange","blue")[training_data[,"label"]+1]) + diff --git a/simdata/generate_moon_data.py b/simdata/generate_moon_data.py new file mode 100644 index 0000000..81e072a --- /dev/null +++ b/simdata/generate_moon_data.py @@ -0,0 +1,16 @@ +from sklearn import datasets + +X, y = datasets.make_moons(2000, noise=0.20) + +# Can't believe I'm doing it this way, but join doesn't work +# on numpy strings and I'm on a plane unable to lookup the +# right way to join a column to a matrix and output as CSV. +for x_i,y_i in zip(X,y): + output = '' + output += str(y_i) + for j in range(0,len(x_i)): + output += ',' + output += str(x_i[j]) + print output + + diff --git a/simdata/generate_saturn_data.R b/simdata/generate_saturn_data.R new file mode 100644 index 0000000..bbb9b17 --- /dev/null +++ b/simdata/generate_saturn_data.R @@ -0,0 +1,68 @@ +### 10/29/2015 +### Simulate a two-class "Saturn" classification problem +### Label 0 is the planet +### Label 1 is the ring +### Author: James Scott + +# @n: number of points +# @frac: fraction of points to simulate from class 1 +# @d: Euclidean dimension +# @radius: a 2-vector of radiuses for class0 and class1 +sim_saturn_data = function(n, d, radius, sigma, frac = 0.5) { + + # Argument checking + stopifnot(d >= 2, length(radius) == 2) + + # We work in radial coordinates. + # Uniformly sample d-1 angular coordinates for each point + phi = matrix(runif(n*(d-1), 0, 2*pi), nrow=n, ncol=d-1) + + # Sample a class indicator for each simulated data point + gamma = rbinom(n, 1, frac) + n1 = sum(gamma) + + # Simulate a radial distance for each point + r = rep(0, n) + r[gamma==0] = runif(n-n1, 0, radius[1]) + r[gamma==1] = rnorm(n1, radius[2], sigma) + + # convert to Euclidean coordinates + x = matrix(0, nrow=n, ncol=d) + x[,1] = r*cos(phi[,1]) + x[,d] = r*apply(sin(phi), 1, prod) + if(d >= 3) { + for(j in 2:(d-1)) { + prod_of_sines = apply(matrix(sin(phi[,1:(j-1)]), nrow=n), 1, prod) + x[,j] = r*prod_of_sines*cos(phi[,j]) + } + } + + list(labels = gamma, features = x) +} + +### Testing: simulate some data and plot it. +mycols = c('blue','orange') + +# 2d example +#out = sim_saturn_data(1000, 2, c(3, 10), sigma = 1) +#plot(out$features,pch=21,bg=mycols[out$labels+1],xlab="x",ylab="y") + +# 3d example (need rgl installed for the visualization) +#out = sim_saturn_data(1000, 3, c(3, 10), sigma = 1.0) +#rgl::plot3d(out$features, col=mycols[out$labels+1],xlab="x",ylab="y",zlab="z") + +### Actually create simulated data. +numDimensions = 2 + +# Create training data. +numTraining = 500 +training_out = sim_saturn_data(numTraining, numDimensions, c(5, 10), sigma = 1.0) +training_data = cbind(training_out$labels,training_out$features) +write.table(training_data,file="saturn_data_train.csv",row.names=FALSE,col.names=FALSE,quote=FALSE,sep=",") + +# Create eval data. Perhas make sigma bigger to make it a bit more interesting. +numEval = 100 +eval_out = sim_saturn_data(numEval, numDimensions, c(5, 10), sigma = 1.0) +eval_data = cbind(eval_out$labels,eval_out$features) +write.table(eval_data,file="saturn_data_eval.csv",row.names=FALSE,col.names=FALSE,quote=FALSE,sep=",") + diff --git a/simdata/linear_data_eval.csv b/simdata/linear_data_eval.csv new file mode 100644 index 0000000..b07b9c2 --- /dev/null +++ b/simdata/linear_data_eval.csv @@ -0,0 +1,200 @@ +0,0.147562141324833,0.243518270820358 +0,0.179868989766322,0.0922537025547999 +1,0.754244045840797,0.52387485552728 +0,0.248663780798734,0.175587276306351 +0,0.397217489998824,0.0342134948381493 +0,0.45098160780959,0.0328858982745571 +0,0.335532917252522,0.16654442982869 +0,0.371372049777255,0.167201755443297 +0,0.280985655458144,0.214982885821991 +0,0.313304894476342,0.00521976760984659 +1,0.638465839375771,0.59044662666132 +0,0.431591142988843,0.0470830726734468 +0,0.207774186228136,0.0819718701225306 +1,0.74160948940248,0.48471276227826 +1,0.953514363329195,0.639625829881579 +1,0.642944532413742,0.561453314573865 +0,0.226494744243105,0.054182457565834 +0,0.303693007460946,0.0231174890601685 +0,0.442909334900624,0.26458738107626 +1,0.689641361293936,0.441606457994801 +1,0.808516873219165,0.460988843699898 +0,0.265847526966108,-0.0217612302359918 +0,0.277512671350018,-0.0351946196596575 +1,0.650996504600044,0.281211163745124 +1,0.604564151274163,0.581607217589511 +0,0.361767990760365,0.08894162662105 +1,0.666911463766987,0.658382180098643 +0,0.23063312840159,-0.018832997639963 +0,0.137952214405966,0.11362939867057 +1,0.736452219294899,0.491761590839456 +1,0.59710827462338,0.550563581924152 +1,0.602609504754365,0.4272558830412 +0,0.259748077463861,0.0830864567718866 +1,0.65936769953152,0.398195251750205 +1,0.68433814756797,0.243306417023253 +1,0.855013781033494,0.552123366487809 +1,0.960752241879643,0.589326478652242 +0,0.218532689151841,0.149970476606352 +0,0.340460187615256,0.163897051668133 +0,0.355834203480917,0.336747248250862 +1,0.692211516077662,0.577457901954487 +1,0.662154960387187,0.570323144740557 +0,0.372511985939819,0.0857198602571986 +0,0.22900535800054,0.0267345028505001 +0,0.309531718124159,0.144331015797212 +0,0.263227253895867,0.127925334758116 +0,0.308466277418238,0.0910351363893737 +0,0.0930774599145935,0.113987148810076 +1,0.6229369231208,0.456717036684569 +1,0.706148123157656,0.490803325682998 +1,0.758732482141232,0.456626655986977 +1,0.694577645162027,0.622832560922402 +0,0.369820198735285,0.0550497386655174 +0,0.239404252953096,0.132757785197318 +0,0.218428111377801,-0.219178158477306 +1,0.692946434725903,0.544563975400229 +0,0.245371538967234,0.101855416754447 +1,0.56913442403047,0.294387382973145 +1,0.714809619410276,0.538163512680377 +0,0.358067954360732,0.17044538896009 +0,0.320547428963535,0.251711615665619 +0,0.331588068345858,0.107835653776275 +0,0.304030747179208,0.0547750174185641 +0,0.321995718652107,0.00579217815345798 +1,0.865360178690971,0.428046918332584 +1,0.671798231854105,0.344725091990453 +1,0.828788452478336,0.71100719973842 +1,0.781619318840399,0.632570613805373 +1,0.731475532721693,0.257914929544682 +1,0.629915796829575,0.284014988011287 +0,0.422354335685084,0.114636655496169 +1,0.673380826362505,0.577899254008376 +0,0.411902241550325,-0.0328305542767028 +1,0.819974434826139,0.549032982583942 +1,0.749879048884502,0.521106457290703 +1,0.865129108041695,0.505063149340243 +1,0.802865060766911,0.534926888417566 +1,0.757857478161499,0.353704731938664 +1,0.795630162325943,0.351825595995113 +0,0.462310717991569,0.101365623468382 +0,0.269750572403886,-0.149506765860705 +1,0.832120799383439,0.579782802852318 +0,0.389685944569249,0.163719794768627 +0,0.300495737942904,0.0420527462802183 +0,0.301934594176741,0.0839837366231943 +0,0.150962586848513,0.233882915802165 +0,0.25452948081291,0.0859799579364082 +1,0.758924966011327,0.51452726603244 +1,0.688094757573297,0.451071027859505 +0,0.308508646709991,0.124020803218039 +1,0.55488440319187,0.712912973753406 +1,0.734968534679093,0.291312226056919 +0,0.424844828588299,0.0185442193071348 +0,0.307133843847762,-0.0280343474796379 +0,0.398740975001251,-0.0767590748067974 +0,0.273728056742917,0.251849536602207 +1,0.740350011751019,0.531733530441795 +0,0.286412335506547,0.0834310455481071 +1,0.844565148785342,0.556675571552102 +1,0.570621351148686,0.405651266329464 +1,0.780228461639442,0.682045157407263 +1,0.808610830575502,0.48055917875417 +0,0.404736393317852,0.0534461559608683 +0,0.0182219815354657,-0.0890842632482053 +1,0.580213837410484,0.434088367477381 +0,0.439028571589774,-0.00891622428961927 +0,0.169013026906772,0.139040747231028 +1,0.721813199806076,0.453310307451834 +1,0.579448726121783,0.601098430630891 +1,0.59757790717587,0.582346229610322 +1,0.706844037534213,0.444478339486168 +0,0.311812492223678,-0.0245609488864325 +1,0.696270344001157,0.559918986782424 +0,0.517693836106899,0.136882581439463 +1,0.711330813645891,0.368148477498463 +1,0.651106025565724,0.645855201514964 +0,0.312846178583358,0.167410567066292 +0,0.245212502207789,0.0788996016352575 +0,0.281584872796863,0.16330117675989 +0,0.224177537883604,0.198729749727135 +0,0.21360730861153,0.0659637945032196 +0,0.236451258508006,0.0652936599183583 +1,0.769116120629594,0.529177074205597 +0,0.221575998142235,0.130222505896903 +1,0.624409461092592,0.379450781522128 +1,0.547121964828769,0.273564135415305 +0,0.17592618523832,0.160037295166501 +1,0.736121699674151,0.506024281122913 +0,0.425480843904003,-0.0479291016901599 +1,0.618590118156231,0.562390207752306 +0,0.534384693355842,-0.00458315713932619 +0,0.470829423375905,0.0567177119203065 +0,0.375738399369332,0.10675402978279 +0,0.319635320093047,0.129350314422456 +0,0.243349669666206,0.116546106571295 +0,0.34357354135486,-0.00338666050798213 +0,0.186259256050742,0.049140403307173 +1,0.646103731473393,0.476865433197868 +1,0.742216880358217,0.390083115275135 +1,0.839287534868438,0.550027764170609 +1,0.800012129202795,0.466861127031535 +0,0.216202082309659,0.176368365536743 +1,0.780494991593676,0.375525772107199 +1,0.726960940964144,0.580849892908468 +1,0.743612641049324,0.552738236722576 +1,0.597827269636531,0.314015371971029 +1,0.753161899049477,0.612163367781747 +1,0.672106155440207,0.541402426363875 +0,0.611648647701236,-0.176614445962288 +1,0.643311341435752,0.53917536733336 +1,0.652427513768223,0.386155037786121 +0,0.301520618087258,0.00779725506341844 +1,0.580917034140212,0.318993261238895 +1,0.658638758875195,0.58533531721232 +1,0.522655469981122,0.526482285184902 +1,0.619107709006306,0.395568496047808 +0,0.342854385955556,0.00779057938184129 +1,0.86999733382526,0.574001573496694 +0,0.318543715852861,0.114391118336483 +0,0.228396072599371,0.0106065027681785 +1,0.727737130943151,0.38382553707226 +0,0.242654358004674,0.229605566380433 +1,0.849147311410968,0.485542675609488 +1,0.688785680721008,0.568723327471366 +1,0.601072641696223,0.472949199587446 +0,0.386597757697056,-0.0462553172550934 +0,0.173427736038098,0.0661032211070728 +0,0.212619485253217,0.226220588353548 +1,0.676379387810006,0.478200807508695 +1,0.814570220992963,0.343974473335934 +0,0.385176265775491,0.0321607979792773 +1,0.749057204428228,0.460541975098555 +0,0.249098133601278,0.135190023877858 +1,0.755616419656037,0.499437877798512 +1,0.605289891647501,0.576382527441655 +0,0.220124707599109,0.100802583684052 +1,0.611660353946956,0.582417425243852 +1,0.638657314638631,0.567476782208443 +1,0.707364959529237,0.553460099560961 +1,0.750636527933954,0.418064859633507 +0,0.258629634330844,0.205122708778633 +1,0.561659196951965,0.302892925040985 +0,0.261830597304793,0.0675225213946725 +1,0.614308570486587,0.6059587413353 +0,0.414439463469767,0.00965425791140319 +0,0.252322879548744,0.0506559735947343 +0,0.290671271152809,0.00155405446676163 +0,0.235453515294468,0.110972028714464 +1,0.732335416418508,0.448978572463179 +1,0.810313994896262,0.495563824762476 +0,0.421663017868487,-0.0356477152171603 +1,0.696456152042301,0.492043579296949 +1,0.648005874898818,0.474735589412081 +1,0.586856365928848,0.486846359431101 +0,0.311153185052651,0.0667137376136715 +0,0.238197827120521,0.329800929790695 +0,0.152745736144961,-0.0169226770608605 +0,0.383676691365755,-0.0613888293971788 +1,0.58794957455425,0.759074050955085 +0,0.298771398500675,0.181005648077388 diff --git a/simdata/linear_data_train.csv b/simdata/linear_data_train.csv new file mode 100644 index 0000000..ac13de5 --- /dev/null +++ b/simdata/linear_data_train.csv @@ -0,0 +1,1000 @@ +0,0.272702493273322,0.0201936700818061 +1,0.867855051798607,0.597829895646543 +1,0.686252591276707,0.425683114984294 +0,0.186145515985916,0.0412716941344573 +1,0.645338925515076,0.580301641707133 +1,0.674375674955563,0.427871763030954 +1,0.699879937946578,0.404807703421517 +1,0.802841564069345,0.416099191374431 +1,0.585520610660174,0.614734443224055 +0,0.159362690865938,0.0438791845717219 +1,0.819060934526088,0.537459473474092 +1,0.87894034372429,0.498259089084295 +1,0.717795050577066,0.4744618920087 +1,0.566033677291232,0.387396342863612 +0,0.247429729835316,0.0879995726331724 +1,0.431249648468584,0.50812116678762 +1,0.445587715698477,0.495087107318878 +1,0.76039174183016,0.444561107196163 +1,0.76051061546582,0.515525121630246 +0,0.275494818915078,0.140478719411677 +1,0.753968841901219,0.524162771626072 +0,0.294497740315007,-0.050388399952233 +1,0.804717983782732,0.398515224230574 +0,0.300418039279848,0.351027135627807 +1,0.688360546074351,0.373526723462879 +1,0.852345401249631,0.406303935627579 +1,0.668099899289195,0.531841347660949 +0,0.304800740891564,0.150389928827743 +1,0.619367500214818,0.480216866285488 +1,0.686703089228757,0.361979344372439 +1,0.718589858837761,0.416212572766102 +1,0.826085146421109,0.575286895749816 +0,0.420448410287454,-0.0546403055195056 +1,0.75141532125873,0.325021724291347 +1,0.730592409613609,0.541059117596772 +1,0.813904839898948,0.495235612652197 +0,0.339090628854521,0.0309991380475252 +0,0.387754495519495,0.111295769160654 +0,0.338508363051928,0.183845232273478 +0,0.252169642133232,-0.0277920767152015 +0,0.192477983760573,0.248539504317799 +1,0.579132815667903,0.596674752538209 +1,0.709753564340006,0.627776265158473 +0,0.385744505772042,0.173471897067801 +0,0.378661420604518,0.247146938725877 +1,0.646574260872838,0.322675381473884 +1,0.609118023604304,0.647831712350825 +1,0.758635069664429,0.597297179207463 +0,0.112918893797697,0.0399196636324755 +0,0.0757196797168712,0.212549149431339 +0,0.262526611883118,0.153510775651215 +0,0.400776042635224,0.0118928062320549 +0,0.249868972870086,0.087510966473546 +0,0.300843498603656,-0.125478800703799 +1,0.68732959206275,0.585402380977657 +0,0.21604950004571,0.107752455797129 +1,0.727973307482895,0.445424058558705 +1,0.611661189054556,0.443567247275501 +1,0.659200378458334,0.438264242694697 +0,0.316661223102756,0.00512723267572414 +0,0.335511102137539,0.0220287094796348 +1,0.568790247259437,0.605633120746626 +1,0.759945347225826,0.530666204478723 +0,0.254527443910965,0.171592939261188 +1,0.766837548998774,0.486441995062381 +0,0.332894760145352,-0.0112936854155695 +0,0.377466773756814,0.155504538357614 +0,0.399326026982261,0.153662508038569 +1,0.836999237521849,0.564460047717315 +0,0.171119962569083,0.127536860104091 +1,0.506373282256241,0.417952369585369 +1,0.560722898029418,0.720223842301507 +0,0.348845475773127,0.225755862785672 +0,0.251503092582984,-0.0437657692433004 +0,0.177615608556207,0.0753154885756146 +0,0.478794516530508,0.205951267283078 +1,0.829635534744383,0.272892546065268 +1,0.83777849837459,0.453830064938213 +0,0.314005750924866,-0.036418264249222 +1,0.777874637421659,0.658965983018213 +1,0.667422914295883,0.450202737899244 +0,0.413187584863836,-0.0382542681011459 +0,0.313650896375576,-0.052069716414482 +0,0.337713941691823,0.14231450721611 +0,0.208535455875277,0.0365610978079326 +1,0.751917522898454,0.397763749461091 +0,0.704285128566686,0.0173529747875296 +1,0.660159168124926,0.686879190712555 +0,0.239882597095324,0.039489328310596 +0,0.261667488176466,0.120468313797353 +0,0.221322822342822,-0.0147960345048331 +0,0.302200894788074,0.0773367505182494 +0,0.464646005426031,0.0624406129250455 +1,0.72353467112824,0.561586283981498 +1,0.779848416299403,0.40335122146947 +0,0.29619539738445,-0.0889825980170734 +0,0.310118813111254,-0.0470255968780949 +0,0.280329283647515,0.209183926330223 +0,0.495449785691372,0.0943897292081698 +0,0.323181642395557,0.214347078498927 +1,0.608712387395747,0.464674597744798 +0,0.333967005925061,0.108858809713995 +1,0.670725446177098,0.562078812324667 +0,0.157682515511279,0.114425938519343 +0,0.263527985253847,0.0779341919535255 +1,0.768842729112313,0.607910862471588 +1,0.782968217248463,0.684563065693586 +1,0.559552053226898,0.525739246953288 +0,0.218011674132951,0.235791501380809 +1,0.889413715027983,0.272981766226483 +1,0.707683165108239,0.43858100159458 +1,0.626040631828399,0.573452439942206 +0,0.319897190940781,0.0644771584718417 +0,0.414126766081263,0.299837127790236 +0,0.321648041917345,0.110466634556545 +0,0.302937416869991,0.0800642826815047 +0,0.229048040649578,-0.184479427661952 +0,0.0838523271376479,0.167658402689939 +0,0.191948768561072,-0.0498624393529019 +1,0.710093053081494,0.511290768221669 +0,0.249260920804791,0.084829401727985 +0,0.344202229217507,0.0310801977342976 +0,0.394779068995597,0.0639967934529216 +0,0.296291514179376,0.0940554702528169 +1,0.812874595218026,0.469660618071793 +0,0.312020940488456,0.338829143466612 +1,0.663441004626609,0.46359918851702 +1,0.516471550102168,0.661466565814409 +0,0.301371308850716,0.0753255969087134 +0,0.273261668487338,0.0633099583357949 +0,0.191452120986692,-0.143733307029889 +0,0.180617862650367,0.154215474907655 +0,0.229543176130791,0.163137050894395 +0,0.245315233544734,0.019128303476096 +1,0.748493032268826,0.435325673692232 +1,0.772508782267438,0.588852647990746 +1,0.636477940285981,0.390966711809906 +0,0.285085569705584,-0.00531731530741626 +0,0.163379626486227,-0.117361545679424 +0,0.468617183825494,0.207884744319045 +1,0.716267375815614,0.58055995163604 +1,0.691690404380763,0.455468188511155 +1,0.832068210563701,0.498498173611383 +1,0.798097754407747,0.422749113552243 +0,0.31681926493838,-0.0047561585254903 +1,0.827857867668203,0.631884677407406 +1,0.824940709980804,0.451138822676032 +1,0.749289181326563,0.532328990098315 +1,0.624983995029484,0.351158851969964 +0,0.246409770038098,0.150676967160461 +0,0.223024354285995,-0.151750472867883 +1,0.76253393134356,0.586377574234753 +0,0.256898604102665,0.0438509756239602 +0,0.253907298425618,-0.039504453708371 +1,0.734372750482043,0.663550372431311 +1,0.814369495793697,0.468059076508072 +0,0.458348241169566,0.245312288102812 +0,0.439622581101274,0.0632159802013028 +1,0.640924211952676,0.430795319116029 +0,0.388509099154434,0.197161148794277 +0,0.181132949519206,0.126716633249988 +0,0.376802675521996,0.159627299983832 +1,0.613992378167526,0.448724106891588 +1,0.831026553261926,0.484913716227477 +1,0.556045972239925,0.587379268102036 +0,0.395878015676788,0.10323120916278 +1,0.591953582092163,0.417286878320068 +1,0.46725112256271,0.520724901872325 +0,0.346922580998637,0.0944775645412709 +1,0.696503870903246,0.437940147112552 +1,0.637613213827238,0.471962377250537 +0,0.335162981545741,-0.027939761534094 +0,0.143582808117823,0.167860616383039 +1,0.723751517994281,0.478458346818457 +1,0.660177641452219,0.483452537209393 +1,0.76426800556873,0.535206233408446 +1,0.720740791695091,0.389326271169869 +0,0.174056768627934,0.154238589976693 +0,0.198788760104965,0.00682620020478004 +1,0.910390774424439,0.566187876343115 +1,0.776646384853128,0.56813908923461 +1,0.587905469226655,0.436903266509323 +1,0.669457159706513,0.614707436203888 +1,0.810283279996055,0.545987496271549 +0,0.344774208069323,0.0881550516552802 +0,0.303495334257899,0.0089383403243439 +0,0.269511611959495,0.21121955827661 +0,0.299334935856193,0.101146959731773 +1,0.506022527536241,0.578908197947377 +0,0.394109801948955,0.0336476048018214 +0,0.327404729016729,0.0431007508392108 +0,0.365495572999311,0.0482730093488889 +0,0.374130299862337,0.0359913916271899 +1,0.85526938076446,0.45332572345042 +0,0.18341342668473,0.0272027593280061 +1,0.733614866593426,0.526643787401623 +0,0.318182021030057,0.103656647700912 +0,0.240920265830654,0.0508657765459108 +1,0.513047324442947,0.615283053940208 +0,0.151334880808228,0.315431997368872 +0,0.394462481958267,0.101655086031096 +1,0.515170779931783,0.58795511851458 +1,0.87822902495986,0.383079543553225 +0,0.209125274713165,0.0405155085830344 +1,0.741073710053074,0.543223635403209 +1,0.717691808404203,0.46886594362597 +0,0.292397881802737,-0.233389260751618 +1,0.702115243155436,0.572679676100641 +0,0.375094870497223,0.150809692407089 +1,0.785725652776951,0.657917019182177 +1,0.654858803321836,0.594007046555065 +0,-0.015536607372292,0.118473570384402 +1,0.823689849537966,0.517843286242661 +1,0.737024212776215,0.516770848076513 +1,0.547824942019359,0.542864387419221 +0,0.00300243591783783,0.0669321614320229 +0,0.273884392760745,0.171475705806533 +0,0.103536256254438,0.0598674814024887 +1,0.773675819047256,0.453959112207333 +1,0.578217531502335,0.43667171410766 +0,0.232639642579056,0.240924534449787 +1,0.727694558223229,0.642259843020284 +0,0.290605671376913,0.164229334828911 +1,0.692293722721867,0.496939590106284 +1,0.615593461878773,0.449406011572758 +1,0.627821905109084,0.619436042725204 +0,0.238329429591959,0.286375999752565 +1,0.792581075649811,0.344853674219274 +0,0.350738565735997,0.22558224695422 +0,0.319592422848907,0.0867513089001646 +1,0.643171034805571,0.563205996550792 +0,0.374723362007506,0.00837700696183299 +0,0.254324259112646,0.00144734006907962 +1,0.578663882214374,0.529705467976943 +1,0.882743803416507,0.561587200664543 +1,0.815857167548696,0.527439454078851 +1,0.726982121399193,0.492554058609603 +1,0.552847329036692,0.577227366448834 +1,0.637439391832819,0.515361216802003 +1,0.835461222089426,0.35051988465915 +1,0.652410315557341,0.509471949208526 +0,0.488358973871447,0.00779776032373296 +1,0.785369845724894,0.570234703493426 +1,0.777757685635365,0.45173070684212 +1,0.795701597689754,0.524204837455563 +1,0.549169099565117,0.384759752701807 +0,0.234862682863927,0.129931624201085 +0,0.193303345986147,0.102307826779251 +1,0.742839831135753,0.682694301793083 +1,0.743079207517149,0.437048647358291 +0,0.195641253875026,0.142516326553134 +0,0.194197685991943,0.0711303494887362 +0,0.397289909365214,0.147242119427428 +0,0.280735382867741,0.2741197609794 +0,0.271616309865042,0.130158033572375 +0,0.226743613931422,0.031337905344956 +0,0.323762524070031,0.23784457012538 +0,0.433031580638902,0.0882404371773291 +1,0.634980622804064,0.521478938641404 +0,0.248833759760726,0.220434482749925 +1,0.631488997469027,0.507633087769453 +1,0.58169884772006,0.516668109773911 +1,0.615425233806811,0.350418391510562 +0,0.195709693569621,0.0534423509285914 +0,0.258753403680014,0.0846353866955831 +1,0.679225606911221,0.48019792150124 +0,0.356454895453918,0.00599612727378884 +0,0.157243082918555,0.00198288708382963 +0,0.403489012486068,0.176443486229387 +0,0.406157733738504,0.148474644739375 +1,0.557526378882686,0.469763927684993 +0,0.409614776290418,0.127695190474676 +0,0.221130957798106,0.00246251644256472 +0,0.307149139147413,0.0351128399564661 +1,0.880521324305735,0.437411475204538 +0,0.209054910179452,0.365368139829218 +1,0.744834054436914,0.328366131280262 +1,0.619738988151147,0.498248349424278 +1,0.732680162526291,0.356227527560738 +0,0.235409738360354,0.155565967884249 +1,0.708282472843026,0.466522588821841 +1,0.653624611750762,0.545726726383717 +0,0.244974323858804,0.0233317035889604 +1,0.687006405386532,0.537180417249272 +0,0.270027214927163,0.145099856731118 +1,0.529880648219717,0.373601704431567 +0,0.153435200903184,0.0827142600527631 +0,0.196907982479139,0.0110335793546832 +0,0.183488581842081,0.178008251937411 +0,0.103729266597934,0.226377008526147 +1,0.497275351166873,0.557524687583008 +0,0.234936388491344,0.153641322229989 +1,0.638117952580239,0.502399163015757 +0,0.265919558672097,-0.0175444065462989 +1,0.972739429139427,0.579478912092279 +1,0.771707055886069,0.432483214910362 +0,0.319847915030195,-0.0182933707045556 +1,0.640152218640739,0.446549485194609 +0,0.309726418649981,0.0180711719824336 +1,0.59634217809301,0.465539422207531 +1,0.700837299015692,0.56459983382551 +1,0.627143376122354,0.566889375676663 +1,0.678457616699935,0.46206888081276 +0,0.335575549111729,0.236793685308073 +1,0.552340913408488,0.454735797393809 +1,0.775272923590388,0.570571050115034 +0,0.389002732801433,0.0844440149829364 +1,0.774075574991445,0.644286970259073 +0,0.436576258767381,0.113144386193333 +0,0.131806366354122,0.135492054483679 +1,0.865305609911491,0.393004029700549 +0,0.383896546872063,0.136931931327836 +0,0.52876851092401,0.18694206198509 +1,0.872037927046165,0.524298979669219 +0,0.319398680338347,0.082050069292556 +0,0.306019228765853,0.171146090516605 +1,0.568028897019929,0.397139632050195 +1,0.687004258165262,0.657174773644742 +0,0.264884892997342,0.152177916190216 +0,0.324477457435399,0.130638598187011 +1,0.680743646079928,0.618979277469957 +1,0.621895527664642,0.57337598375699 +1,0.712168082997765,0.53550873606463 +1,0.61978701745368,0.609027977048943 +0,0.365233331106601,-0.0613362243238503 +0,0.397735986696886,0.112311028414076 +1,0.606235254004225,0.400447895775286 +0,0.321941398084019,0.21374858825093 +0,0.461363308549641,0.118628064693912 +1,0.701084109913346,0.432315413377117 +1,0.599379648268497,0.557589211628395 +1,0.765671832669,0.522974365432396 +0,0.418904308051734,0.141407526973326 +0,0.0928236534128022,0.208792514080872 +1,0.773308591622014,0.384933544483661 +0,0.310011149079205,-0.113025500604217 +0,0.330476297927931,0.0562833566800701 +1,0.719222956560448,0.599601234367575 +0,0.0948268113584294,0.155328008227369 +0,0.266557090739179,0.0281396471150643 +1,0.645157933764616,0.504226979507884 +1,0.962330528460206,0.452805671774283 +1,0.729786811932308,0.567362214851711 +0,0.42822079264878,-0.116947049145102 +0,0.28292031311975,0.210396468088107 +1,0.818960733047804,0.471478708169644 +0,0.301000395650939,0.275350638737648 +0,0.248563052222786,0.210458573470741 +1,0.624567745681724,0.463364770378235 +1,0.721131916759737,0.33170180449007 +0,0.444882506681454,0.0612027055428679 +1,0.638377283819513,0.445003526421249 +1,0.696976438121931,0.360248232352897 +0,0.332136597424114,-0.109847076823912 +1,0.699361384618667,0.432264272568347 +1,0.831993970135725,0.539947466404146 +1,0.561925910683751,0.424648173491636 +0,0.156189816118722,0.0729055751558616 +1,0.693031841480399,0.405688203837692 +0,0.284499114880476,0.169492667486919 +1,0.382645621013668,0.693017458125835 +1,0.787366045398516,0.56245748664724 +0,0.357534849007698,0.026936192217413 +1,0.731630968684622,0.553183988567175 +0,0.196234400016264,-0.183104296203216 +0,0.360587443227833,0.0459158003103007 +0,0.20757915464528,0.153368408854095 +1,0.779538870581914,0.31652036018281 +1,0.603413970007394,0.565691097923056 +1,0.703962936778714,0.515774251438579 +0,0.262673571663612,0.0650658239322596 +0,0.282079330100814,0.111953207211367 +0,0.297324925180568,-0.0391228322398546 +1,0.763180071191603,0.490652821893112 +0,0.315184964005646,0.253006254684889 +1,0.734171640777751,0.519167158795141 +0,0.184180985030549,0.00393161644942733 +0,0.223298865161568,-0.026327091947429 +0,0.316478145129054,0.0575035712393981 +0,0.378857137825344,0.22082964898691 +0,0.397656833742266,0.083190442427166 +1,0.759538686196077,0.437127672521589 +1,0.616664639947993,0.617391680132461 +0,0.145722235542289,0.108084199810254 +0,0.212343117912545,0.15016795466069 +1,0.73503309376852,0.570909233439749 +1,0.77543710347383,0.3712569376399 +1,0.713781263822946,0.627104550338368 +1,0.657921394808149,0.661998316396182 +1,0.761264669790777,0.46397686813566 +1,0.713206276225525,0.744066073525418 +1,0.496790564523307,0.346152051582078 +0,0.229258131675837,0.22391922262195 +1,0.629957821024016,0.598895836847523 +1,0.463104017343866,0.583455771572864 +1,0.740197079770519,0.511804494746958 +1,0.79300764090308,0.645624889279153 +1,0.670301301929275,0.505798660521333 +1,0.642616536317977,0.528714803503423 +1,0.788762644621946,0.616529533399391 +1,0.857464939639688,0.51031489411801 +0,0.336846954546065,-0.142491179183837 +1,0.633643110908775,0.560760074681661 +1,0.808547386300575,0.483391730709343 +0,0.171527188406912,0.181674625895587 +1,0.785541616406081,0.584142957013564 +1,0.679314778984817,0.588366113333832 +0,0.361113481215867,0.0535724803311333 +0,0.397064291394628,0.214166442900235 +1,0.59289850815176,0.597423108259622 +1,0.762216937589137,0.685826995668519 +1,0.598470889624612,0.512232600439455 +1,0.847631108985384,0.469639451803623 +0,0.352206404961858,0.0658130319379766 +0,0.302196572373195,0.0657407190121178 +1,0.635779981355708,0.528047686177884 +1,0.578992955418749,0.514896918280291 +0,0.212999520548702,0.0541441484560792 +1,0.891804459254137,0.398665659557486 +1,0.654340337267037,0.451580501947295 +0,0.247719577705494,0.0799734001071803 +0,0.273897421994848,0.203501937678282 +1,0.567001182521013,0.597298736166695 +0,0.467798139709093,0.229337851914864 +1,0.570353132688965,0.478803832996153 +0,0.443542502048693,0.0928170957175811 +1,0.833742702690899,0.433885148967803 +0,0.207152652348099,0.160692107355562 +1,0.596946688183879,0.504932395223731 +0,0.237987468873185,0.111890466523783 +0,0.122120423311518,0.0664443604938182 +1,0.625397213019283,0.429400535274749 +1,0.778207480642215,0.503531292602428 +0,0.436212859109153,0.0122862274912339 +1,0.625001694810475,0.549123827462865 +0,0.136545300743945,0.126831485205996 +1,0.597731579576769,0.556662445462397 +0,0.408344125500783,0.253336636246755 +1,0.964226974503666,0.320675977950571 +0,0.324997356440017,0.048644424257146 +1,0.652230816894289,0.531950363671602 +0,0.0389828168912392,0.137251854890295 +1,0.736664215489305,0.404307513508069 +1,0.744811760763821,0.575886916382629 +0,0.470458604705599,0.289305226993897 +0,0.38623549650401,0.129688951832793 +0,0.287511322902999,0.128228003988729 +0,0.214845705418748,0.155132679897794 +1,0.549283007772904,0.502960660190269 +0,0.310174445838025,0.0941481076322118 +0,0.195454566633443,-0.234607607847963 +0,0.298249802393511,0.112851002967217 +1,0.690237004664318,0.378108840643105 +0,0.189398549132626,0.0890272156639169 +1,0.614365823452273,0.456521991264265 +1,0.518062634355388,0.561211028653153 +0,0.372343420847563,-0.0673792950230403 +1,0.605582550542063,0.719570587546506 +1,0.558400398717601,0.553650998537768 +1,0.619303706502876,0.525020408389046 +0,0.416806925989891,0.127498072446934 +1,0.668371871343868,0.439494297274923 +0,0.227864005666367,0.249375945070259 +0,0.388964303923619,0.0512118591290209 +0,0.523396016444082,0.0793919490086411 +1,0.696502700171182,0.319249568970975 +1,0.694920878442282,0.611577830966688 +0,0.18560722345213,0.141410362044617 +1,0.639350524013375,0.531104368031335 +0,0.294566651242279,0.0764817614760867 +1,0.725640168924614,0.49358305389429 +1,0.877070872119292,0.391289726240275 +1,0.587562805028845,0.729819251882595 +0,0.340721421395989,0.16849774837481 +0,0.430236481117462,0.130542181925397 +1,0.785999865781316,0.539671413885152 +1,0.758827793555516,0.503597044078879 +0,0.590143103205461,0.151490159471587 +1,0.578174749789001,0.267200797992692 +1,0.657664683723653,0.410509106904018 +1,0.839918271521176,0.427395442341733 +0,0.39200354022638,0.236253719076249 +1,0.788051288258796,0.292994344630151 +1,0.739784991601855,0.354434076820377 +0,0.4551704629299,-0.130902505903346 +0,0.244443670308969,0.200144611747777 +1,0.636376132613296,0.45775638731752 +1,0.796637839131232,0.580737820037626 +1,0.708801577457193,0.545352360978482 +1,0.550265645136274,0.484494061509674 +0,0.234541465103561,0.233991672818969 +0,0.194670134511449,0.126177918457203 +1,0.766889064563754,0.466402612868279 +1,0.80071884792835,0.404593258613153 +0,0.381284472737006,0.17687356357681 +1,0.599522552395624,0.543136172846105 +0,0.240574345353352,0.0253513928215877 +0,0.410017041126765,-0.0100812540539413 +0,0.361974435284997,0.0881434501053607 +0,0.207727524944803,-0.0367640612710508 +0,0.1594489254994,0.201522377891547 +0,0.256651273497901,-0.132347852626953 +0,0.197554559087531,0.177957295136275 +0,0.398728683880572,0.16728015949292 +0,0.360811993622786,-0.04824866638835 +1,0.733941290645016,0.433150455186029 +1,0.618828631204708,0.486055269309517 +0,0.165115647436616,0.166373378499186 +0,0.329986469377093,-0.145319876090286 +1,0.655945618215475,0.565458427664124 +1,0.63592101405517,0.611493955328119 +0,0.187670062838029,0.258563366423394 +0,0.349829851646627,0.084957807867815 +0,0.378321216347947,0.214635756849205 +1,0.707728669366132,0.48114770792878 +0,0.355190716822167,0.120052746763546 +0,0.466632125933254,0.0342335031628444 +1,0.660195421430894,0.535792199622042 +0,0.372382587512372,0.178211756645497 +0,0.28955963461689,0.232916243764839 +0,0.275691767045573,0.104233261047742 +0,0.457583346733422,0.0113568064427055 +0,0.30207949013981,0.153308802533798 +0,0.342152315929637,0.223798246892968 +0,0.273887320638952,0.206809480968687 +1,0.685612837176582,0.664078399046569 +1,0.764881455038035,0.621398000348663 +1,0.52238020940587,0.358551794456546 +1,0.593308566223648,0.451690105976225 +0,0.291803725430566,0.127856814131483 +1,0.726693013263402,0.46135257365006 +1,0.7372293568951,0.505908624984738 +1,0.565792951278671,0.63327022806756 +0,-0.0429918005727185,0.134210110662662 +1,0.831211182597751,0.52623590173448 +1,0.650675907968231,0.513559986676506 +1,0.696222490735325,0.55761580245871 +1,0.650270082721844,0.432031433143288 +0,0.211309305874204,0.185172747070275 +1,0.880032898032521,0.471690943221445 +0,0.242159521808166,0.124004647757489 +1,0.738575812297853,0.560734748425541 +0,0.218745425642789,-0.0280331971720218 +0,0.157586196082378,0.11668032192546 +1,0.746213040875643,0.479935580740508 +1,0.737379178012575,0.524749497313761 +1,0.676603305786792,0.574394608417219 +0,0.234500311201054,0.133431799436931 +1,0.74042749986537,0.342508162770225 +1,0.746154363720681,0.611291853873489 +0,0.130483539577805,0.270796873571717 +0,0.363394337502584,0.0324431998285745 +1,0.699695087182931,0.377325657848333 +0,0.215982659005145,0.100276639841196 +0,0.322170812569563,0.0286951852530272 +0,0.467815313162574,0.166257700276355 +0,0.344496907667261,-0.0787891568310318 +0,0.269913803207164,0.180110737296386 +1,0.607093838078526,0.42899287568583 +1,0.702841598939775,0.528984272889046 +0,0.433699692174703,0.0401236778817728 +1,0.642206235256222,0.166347496883072 +0,0.280306383994694,0.0515086109237062 +0,0.199028975587147,0.157396279671003 +1,0.685560135054544,0.351734395271269 +0,0.158536018164786,0.145683091490734 +0,0.160030887790979,0.172756912807044 +1,0.564790816886263,0.477457505394322 +1,0.552832873258963,0.642784726756741 +0,0.194718231937484,0.156165824848463 +0,0.426026428855053,0.164696485653757 +1,0.597887804377164,0.594844293548714 +0,0.295528266788754,0.0747183403083028 +0,0.35263366740229,0.123923521156832 +0,0.116067262405864,0.105276933488227 +0,0.189970215522424,0.131514007418794 +0,0.358483581296374,0.158239696171057 +1,0.527275122386961,0.466595976196316 +1,0.766176616897604,0.378363494395416 +0,0.318242758552735,0.0247720606042103 +0,0.349499567667261,0.0689912186755568 +1,0.646156331064499,0.612417041419526 +1,0.846563761969743,0.546017215326986 +1,0.746112882858578,0.385233322062056 +1,0.572935439371457,0.404890792506923 +0,0.147158625146855,0.0460825340590317 +0,0.336616456247489,0.0669092618933998 +0,0.310793720925482,0.27135928077744 +1,0.728453223685108,0.322437669015729 +0,0.25385354823197,-0.084252650626292 +1,0.709475389351328,0.522560179699657 +1,0.800320632714859,0.480947297822752 +0,0.455797243394366,0.0554957479690124 +1,0.624757344438195,0.601581397859871 +0,0.412517797005096,0.183547427624048 +1,0.754312959030315,0.542308257169538 +1,0.774425471173311,0.559642830124951 +1,0.785912061279285,0.607153576392285 +1,0.550647569861904,0.521253980103191 +1,0.781194627864989,0.437515084277226 +1,0.769721404472552,0.489638616811605 +0,0.345851331281325,-0.0835423955202882 +0,0.274205452800902,0.0369729562045203 +1,0.742730066689469,0.448510139288652 +1,0.669008356649984,0.556092799188644 +1,0.521279742678478,0.533259746345554 +0,0.368961393478092,0.0620565712312246 +0,0.418343959806105,-0.00148766366146191 +1,0.678772181087111,0.297239507972293 +1,0.816917949827907,0.350846547816628 +1,0.576715848038144,0.510633959111448 +1,0.609197071600881,0.696525280668464 +0,0.290185006852936,0.0950991271521423 +0,0.220627942907053,0.172388573953883 +0,0.323604068726149,0.321929878579241 +1,0.636452067094477,0.378647099783854 +0,0.261772082828085,0.125482954085528 +0,0.199142614419153,0.24837010252674 +0,0.359692272546054,0.133475454756772 +1,0.656923779669395,0.399015673625338 +1,0.765466551302201,0.486622732524117 +0,0.363038943749185,0.190146711949949 +1,0.573728527479804,0.708506134537767 +0,0.227434505032207,0.132005928531751 +0,0.362261102269695,0.182091406424617 +1,0.552767591574914,0.640231347572874 +1,0.745008921758967,0.476138905282749 +0,0.235016094982593,0.030821328831152 +1,0.569927185769143,0.533599512946027 +1,0.540919226433496,0.445965587532701 +1,0.537303628601098,0.442510392206699 +1,0.614599312376511,0.293594212647256 +1,0.606013974663877,0.544264840906945 +1,0.454528809834834,0.499476423679876 +1,0.737317161552518,0.455849265676542 +0,0.226877643649583,0.0778257767447274 +0,0.235769090654382,-0.0541148381745464 +1,0.629191245712809,0.412962868228981 +0,0.288703334680669,0.0509839710513972 +0,-0.0553610449220905,0.112077098399482 +0,0.308572147660474,0.178866373774703 +0,0.280267718134234,0.168879328616616 +0,0.290595179766584,0.085496431509059 +1,0.87979592429344,0.517910778998036 +1,0.647119063616976,0.487188900738255 +0,0.187124094699949,0.121866784395191 +0,0.422112816496255,0.209956176604592 +1,0.732559070962285,0.440294557978558 +0,0.388661232418864,0.148966053456064 +0,0.423245072075889,0.0867387632012575 +0,0.282849124264832,0.148769986793792 +0,0.424768340495513,0.0556317808256201 +0,0.174129959981651,0.00807187578895145 +0,0.501843353134547,0.133031451175741 +0,0.120615734783942,0.0376933600645564 +0,0.378693368144518,-0.0438914269791444 +0,0.170081040130433,0.182335149838812 +0,0.352413327115188,0.0144398079790181 +1,0.729827688438959,0.593487551439833 +0,0.378109776388778,0.289359718594457 +0,0.31249013506134,0.0693060078898178 +0,0.231522642975173,0.047844674381033 +0,0.399658150733606,-0.0853742813911763 +1,0.469529396378605,0.551583233394723 +0,0.183216611939466,0.124901308938973 +0,0.500774519409122,0.103434288267971 +0,0.407243066732757,0.112239607034534 +1,0.741062198918369,0.386530629989029 +0,0.299881602923698,0.20512589925838 +1,0.548105379482974,0.463687353737308 +0,0.349747823856433,0.0767352421283166 +0,0.528560887313413,0.233681140107927 +1,0.697685065083971,0.421634161117949 +1,0.683603527024515,0.529769635911744 +0,0.224155125982703,0.130060041166071 +1,0.84206414514415,0.389687568689523 +0,0.349116725186401,0.0931364450169638 +1,0.717425799742033,0.569001564152182 +0,0.303835388568343,-0.0808600312562248 +0,0.385282841600747,0.176629671043404 +1,0.728233194892712,0.437566561716223 +0,0.275560822841845,0.067759535376445 +1,0.752526631380138,0.437676927621947 +1,0.77594551463372,0.647335356401004 +0,0.289443821834818,0.129655963824409 +0,0.457031043554695,0.110360318511478 +1,0.670168642297959,0.550344589329263 +1,0.704943163416788,0.523602746131117 +0,0.317110572357443,0.244019105850541 +0,0.340153310682465,0.161452198272563 +1,0.677736499067133,0.529667449885923 +0,0.263745005034983,-0.0244753757620519 +0,0.316498859817741,-0.0606874549183752 +1,0.831297688454378,0.42940165448941 +0,0.456705300158062,0.0624238498026648 +0,0.359645481362399,0.0448678597671015 +1,0.685459002073857,0.484052444289094 +0,0.318081688805948,0.00509799198151692 +1,0.85843942825533,0.463609514867966 +1,0.73009055780931,0.50508575074328 +1,0.657915724124217,0.626157950965602 +0,0.463987853561012,0.114426246147913 +0,0.553660197410232,0.0842710327103933 +0,0.460782987659597,0.297823063863037 +0,0.264636371729503,-0.0733221751824376 +0,0.318521878216774,0.156081826169686 +0,0.176521557194302,0.209879949665236 +1,0.616728756921145,0.598782674158815 +0,0.348737364342779,0.196038946628466 +1,0.584272236083607,0.5583952910681 +0,0.491048239993434,-0.0341748906928977 +0,0.363221300121058,0.00311416891583936 +0,0.294428489999627,0.0740381167710181 +0,0.314484068321389,0.174130968448632 +1,0.711674830724482,0.722225529524769 +0,0.429497325683598,-0.00338571057528961 +1,0.693051453242482,0.552981854141337 +1,0.694557977087814,0.344335319534401 +1,0.698380454854423,0.50235305891111 +1,0.546240528463992,0.484799737777533 +1,0.84456999822897,0.511630529094712 +1,0.829631649689789,0.449013520814537 +1,0.611370787230976,0.47537648123942 +1,0.48794441957928,0.352474619443002 +1,0.678121429032912,0.717614501803218 +1,0.656238979787779,0.506295703756179 +1,0.808704355917707,0.544289437087048 +0,0.291000786174897,0.18756242990602 +0,0.286008831075059,0.183256270690621 +1,0.778314686712391,0.551749873922335 +0,0.348163414892062,0.0526164568572623 +1,0.698985646368548,0.450526988393171 +1,0.652419269932391,0.551775767280179 +1,0.714540613442356,0.499080188789111 +0,0.288269544293992,0.176780433458229 +1,0.701376295676095,0.634380794788028 +0,0.16985426142413,0.130183460048874 +1,0.665964081261148,0.497872021783534 +1,0.659681610788045,0.440149383368503 +0,0.295506048188131,0.19356452237853 +0,0.3581883242448,0.188038263309915 +0,0.2518389930837,0.141931476447984 +0,0.255088820307825,0.136113796079466 +1,0.788789907139158,0.472736976049706 +0,0.254720082517004,0.278841949769336 +0,0.400096489689716,0.169806941395634 +0,0.389325388925308,0.0428207959406402 +0,0.303596644217423,-0.0211356942252308 +1,0.598075982202267,0.71634440679072 +1,0.846531856758702,0.630666796364398 +1,0.636987579847441,0.523821578330955 +1,0.704328174035875,0.464595076574923 +0,0.333602864533136,0.196001784870715 +1,0.718377687551127,0.446878867271396 +0,0.292129461945253,0.208819776462064 +0,0.18141881158465,0.305065208146363 +0,0.297265442638535,0.0490799554703924 +1,0.575074707384884,0.546141853062778 +0,0.360464793278257,0.205406105841231 +1,0.819074760454348,0.412413216527676 +0,0.278193244660972,0.322133841947987 +0,0.234574413009205,0.226352645739012 +1,0.755055764844823,0.736836426380321 +1,0.733022751201858,0.59267341061093 +1,0.85348490448349,0.657929419547266 +1,0.806216184454454,0.500627923967346 +1,0.621731433191579,0.48695714453071 +0,0.258087814184909,-0.0635578237114404 +1,0.814553234525968,0.43746209852251 +0,0.231235130634974,-0.00268733052683408 +0,0.338905885312007,0.252978187630702 +0,0.277807732751421,-0.0399785462420387 +0,0.516568826420593,0.151487916700293 +1,0.64204797455313,0.430535910119798 +1,0.78355445902446,0.437011098351206 +0,0.404887232102823,-0.209793610987081 +1,0.831418300560301,0.665979212193514 +1,0.71338519230368,0.562375116909461 +0,0.110918432853517,0.179360867226739 +1,0.817393901114933,0.570687722319416 +0,0.362123656488518,0.133749838746908 +1,0.678044743030206,0.552285480722416 +1,0.639184966099981,0.389256202074398 +0,0.301418046996501,0.0251739111388578 +0,0.296389031914539,0.14813263086704 +1,0.641962355577562,0.492083970998301 +0,0.350710788108678,0.272359213958655 +1,0.607008203403116,0.342777977349272 +1,0.745329209679339,0.58144982782331 +0,0.378766570158344,-0.028604268323575 +0,0.319729888125828,0.0968840107029267 +1,0.691802673441845,0.640285255996932 +0,0.242278150555005,-0.0275442358243946 +0,0.332368857276272,0.107204488883822 +0,0.246628887420573,-0.0598483717461624 +1,0.689927289944315,0.643969077903893 +0,0.167477837598874,0.221552520108923 +0,0.361225831315617,0.126766741525405 +1,0.599910596476218,0.597604157226741 +1,0.705296772650519,0.562224723426892 +1,0.610859050617126,0.561555935527899 +1,0.779042693428166,0.469742258952299 +1,0.721953383296772,0.330504205034856 +0,0.199177670493139,-0.0541702682912998 +1,0.632324877663293,0.2988795550039 +1,0.710946606108542,0.65070982991859 +1,0.646660609202825,0.554404571510107 +0,0.185876611085429,0.0934318346929306 +0,0.273094770627089,0.101234103940518 +1,0.670510063788298,0.524744046683915 +0,0.330588997705384,1.97621294152073e-05 +0,0.220551652501929,0.00677419470080122 +0,0.509820742534314,0.0474168402911526 +0,0.349215800162633,0.0975564168091252 +0,0.255324166357047,0.0142135303100417 +0,0.207544184859608,0.225988923069435 +1,0.685340920227042,0.494319470006428 +0,0.416679571493822,0.245677237237383 +1,0.812975541830634,0.415628016222127 +0,0.320471039231804,0.150145735237842 +1,0.829461547895229,0.493776376960508 +1,0.680994960542808,0.43400030029373 +0,0.259987042270739,0.114005486392992 +0,0.168848685578161,-0.00954704765822642 +1,0.635145828898241,0.51360447532633 +0,0.421903259687952,0.180794066319864 +1,0.625057332452724,0.641587131914647 +1,0.675848273512748,0.632010071910655 +1,0.533133257051366,0.578125658611273 +0,0.197305182165994,0.151226509649199 +1,0.74653428994078,0.62364340524231 +0,0.253651159020339,0.168892052960315 +1,0.765788074642117,0.454842753406659 +1,0.666398682662433,0.608995629881867 +1,0.635291232115157,0.3766058471493 +1,0.578223848012206,0.577032660203558 +0,0.26551333704833,0.0354747123289688 +1,0.720383364756263,0.314354519714492 +1,0.687289229941347,0.479171746692858 +0,0.327435187790049,-0.0457038326212 +1,0.512954312657834,0.605408005890925 +1,0.574372740473772,0.464359352552996 +1,0.519101638860377,0.567569038032269 +1,0.623855871712756,0.483145048552174 +1,0.599179754034089,0.521952878469356 +0,0.423768817415759,0.0882421894269756 +1,0.746294608042051,0.414510923167562 +1,0.675670405056974,0.422696071313821 +1,0.788703159498108,0.67386104031044 +0,0.378106707841851,0.0760879104127337 +0,0.114270526158963,0.201381513049239 +1,0.747673611917776,0.573924654000711 +1,0.566333032387794,0.743419588671139 +0,0.239739624143197,-0.0275283030751193 +0,0.336807563075062,0.118372100185875 +0,0.39949816825635,-0.0363911604776991 +0,0.226185608435648,-0.0957692926033634 +1,0.709608753767254,0.487886920405059 +1,0.659727666342834,0.721933812585661 +0,0.280539014460227,0.206328172933842 +1,0.622483852839431,0.403868231044358 +1,0.638215910949604,0.391402203658114 +0,0.182465612985859,0.077579336035961 +0,0.16548469680623,0.187504949483702 +1,0.642055730547472,0.496933987331819 +0,0.30462177800554,0.253548749981266 +0,0.360320221194284,0.283823890069657 +1,0.641996569571562,0.507677787015584 +1,0.780896014850636,0.5308701386998 +1,0.705949157648258,0.594286581653946 +1,0.684006329129067,0.418479179364012 +1,0.710585414310567,0.571614895412168 +0,0.301067650445162,-0.166699008606091 +0,0.305202990441317,0.364626716148074 +0,0.164086121321754,0.131222497755963 +0,0.529876888274968,0.041069330989599 +0,0.303736937964446,0.136527110501533 +0,0.28505744342113,0.137579845924959 +1,0.728257086597695,0.48967616688098 +1,0.604446478729784,0.545729909789597 +0,0.293159603172581,0.0490178735520561 +1,0.868714367863232,0.531447483866697 +1,0.67379793891572,0.499687817279283 +1,0.680067364015127,0.537958834329096 +1,0.769445918004292,0.612545393802719 +0,0.229587118303191,0.0932053663345317 +1,0.756073026620105,0.519522905570089 +0,0.172997458030445,0.0116226432767597 +1,0.628765292423085,0.440481162064944 +0,0.435077816729383,0.144463845082589 +1,0.548409328550115,0.453305211297501 +1,0.83986780410854,0.506971986322197 +0,0.33073949997258,0.249754687175591 +1,0.74949720500869,0.410347665801642 +0,0.0929085591442369,0.215360941218623 +1,0.7359470510237,0.599612237896847 +1,0.600964708812595,0.611895797507082 +0,0.339469243009024,0.267604028758517 +1,0.694002550766549,0.40246039615025 +1,0.552501058823616,0.627440184414506 +0,0.40353874235505,0.336157266667048 +0,0.462315574097761,-0.00573901316312267 +0,0.349231556863921,0.086163354915397 +0,0.39193148549771,0.17590698916113 +1,0.676930575172694,0.346510128462135 +1,0.679645828045732,0.577121148661782 +1,0.864397242160299,0.506012221528977 +0,0.286349599507294,0.0284234784210164 +0,0.301056208183654,0.0971042890365868 +1,0.70080768404139,0.49690866368696 +1,0.703500736492505,0.415943311086894 +1,0.635860406671523,0.662055846971972 +1,0.596187712280143,0.520124065364811 +0,0.150957974800847,0.0464335172377109 +1,0.520139166943832,0.596836499299212 +0,0.397568770966058,0.0306454851285853 +0,0.331845949389302,0.11252982223052 +1,0.746466296132988,0.576399481730183 +0,0.27187367746434,0.33376370949036 +0,0.470757410145599,0.078661207553236 +0,0.536172439128294,0.0777459259455492 +0,0.303458038868193,0.2051544655177 +0,0.176054167244673,0.322091359574964 +1,0.766857719111549,0.50691519493913 +0,0.242532011092533,0.129756668505565 +0,0.250988840875535,0.0931375276589551 +1,0.699394326993209,0.452299419298282 +0,0.321874033709486,0.0151074577957314 +1,0.678111194051389,0.392634175140063 +0,0.248833485186545,0.0432042460120094 +1,0.694286452178599,0.602081068167167 +1,0.753212641749318,0.485998157208827 +1,0.721406654309081,0.430254653604519 +1,0.518593077174776,0.456272115507621 +0,0.192697787614544,0.116152945192816 +0,0.217411882851379,-0.0645645709560981 +0,0.149417245045527,-0.0509644534767213 +0,0.333200271991093,0.0126829710560955 +0,0.330071760445476,-0.163593017708845 +1,0.534877952568945,0.602286414156199 +0,0.427137123832751,-0.00212997267714535 +0,0.465209007558267,0.190092842029924 +0,0.387820847910937,0.147036212372151 +1,0.677075663688624,0.393688203202669 +0,0.340122927992711,0.199102849848583 +0,0.375936597647849,0.0576857517171014 +0,0.19680461716877,0.126825098566748 +0,0.345613244418262,0.111968101894549 +0,0.415306271487636,0.0274765339028115 +1,0.759206126508585,0.361066865632757 +1,0.627329454187417,0.70470321713622 +1,0.750035120504359,0.671914272368653 +1,0.658400551559745,0.765364048505117 +1,0.809852288886275,0.369827122090055 +1,0.742155427459077,0.475197149670467 +0,0.472977082954314,0.0414537702779115 +0,0.456431422915802,0.0269498051853626 +0,0.206938238018846,0.194749956359312 +1,0.757067760279864,0.559505907275914 +1,0.734348564804222,0.582643128118847 +0,0.121993378223797,0.163177154070997 +0,0.358354979816009,0.145474920493865 +1,0.670281007673169,0.458492128030286 +1,0.753318178108946,0.478502396023747 +0,0.479495384633774,0.165887540584127 +0,0.356497398658085,0.107194390487611 +0,0.224403509860098,0.0291987439921982 +1,0.609590262907632,0.553526932603486 +0,0.24296702403368,0.0588362296331379 +0,0.420545659324178,0.125156289067077 +0,0.228213758920545,0.143136893584809 +0,0.191837685799215,0.132193944906839 +1,0.661831288773944,0.652660707954536 +0,0.298577371906541,0.0552648411022183 +1,0.730213677155348,0.582079483739723 +0,0.204568420435368,0.0350601196982612 +1,0.716255356890322,0.363472186953968 +0,0.386798314348276,-0.027664840420184 +0,0.342563217571713,-0.158701499702784 +1,0.869206933523169,0.517271382682064 +1,0.773020413744283,0.549650593897377 +1,0.667303669642038,0.437695155146516 +1,0.63592064294667,0.535376831534549 +0,0.319719761117838,0.146917927674461 +1,0.818872517719446,0.47752038987334 +1,0.583970376921327,0.566355241690794 +0,0.37328464075495,0.101685122091795 +0,0.294380885719476,0.0685428528864088 +0,0.347644215517767,0.221266167808915 +1,0.68545554285279,0.500169334192856 +1,0.612060851132193,0.413868137102724 +0,0.266821442944639,0.0992953966705651 +0,0.395630463368185,0.149027011545546 +0,0.369444556046919,0.278277875406332 +1,0.719392196460534,0.465720539664018 +1,0.680332620830717,0.534328581664379 +0,0.179529285117794,-0.110245947644673 +1,0.573306543090293,0.608713744427839 +1,0.500384090018299,0.579511796304665 +1,0.790973981269152,0.563663506890512 diff --git a/simdata/linear_data_train.jpg b/simdata/linear_data_train.jpg new file mode 100644 index 0000000000000000000000000000000000000000..067307950bd9c82061cb6792a9f7f49ba6ecb8e0 GIT binary patch literal 35745 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 RE!_XvL+by{@d1Bk{~x^+WZD1# literal 0 HcmV?d00001 diff --git a/simdata/moon_data_eval.csv b/simdata/moon_data_eval.csv new file mode 100644 index 0000000..abe6f32 --- /dev/null +++ b/simdata/moon_data_eval.csv @@ -0,0 +1,1000 @@ +0,-0.500568579838,0.687106471955 +1,0.190067977988,-0.341116711905 +0,0.995019651532,0.663292952846 +0,-1.03053733564,0.342392729177 +1,0.0376749555484,-0.836548188848 +0,-0.113745482508,0.740204108847 +1,0.56769119889,-0.375810486522 +1,0.029053020776,0.0662553115138 +1,1.97115418849,0.273806254766 +0,0.709015172669,0.240575923747 +1,0.370316033321,-0.128201864483 +0,-1.02519250655,0.0804386196736 +1,0.889419539348,-0.426764508858 +0,-0.815197473739,0.343830106878 +1,0.103984761456,-0.125316575481 +0,0.669872794385,0.924316677526 +0,0.643513479899,0.885369948437 +0,0.915430504991,0.870963917519 +0,-1.26352201845,0.49571290049 +0,1.10881006012,0.40141246155 +1,0.0587265717682,0.502672407917 +0,-0.505897969713,0.673650585128 +0,0.738273195336,0.315131977418 +1,0.0312439516817,0.302219516823 +0,0.852464709394,0.178128395499 +0,1.03186111678,0.750161618571 +0,-0.526986140623,0.902092605754 +0,-0.728635377324,0.99557396959 +1,-0.045113142414,-0.257386127347 +1,1.1589669104,-0.708845157316 +1,1.28773366287,-0.528537227076 +1,1.52103538165,-0.216994816084 +0,0.85418807633,0.302561598632 +1,1.7178437562,-0.671111198659 +0,1.00991587529,0.208138479285 +1,1.61366375141,-0.670751979351 +1,1.85725351971,0.410922532194 +1,2.18778916414,0.490173856148 +1,0.263793192141,0.289378947091 +0,-0.0268276293996,0.945425957263 +0,0.442747631256,0.746807692066 +1,2.28496175734,0.344245685947 +1,1.38868004544,-0.460490488794 +0,-0.816915234614,0.678684687018 +0,-0.969295736661,0.562134179627 +1,0.421868617904,-0.160956446 +1,1.65991109412,-0.161081712533 +0,0.244923922682,1.28880016617 +1,1.63994385529,-0.504280047541 +0,-1.18354333026,0.280662043538 +0,0.130678969482,1.06590483506 +1,0.94072134659,-0.380472006359 +1,0.146393475566,-0.0162829413787 +0,-0.791589791592,0.440089333235 +0,0.00504798694106,0.929785582337 +0,-0.865552177444,0.753468024589 +0,-0.50282742293,0.741718820023 +0,1.14409048682,0.197227604297 +0,1.16702295045,0.449377253948 +1,0.600089936361,-0.400640362415 +0,0.153842022423,0.840515489352 +0,-0.79643958858,1.0728758 +0,-1.20773990343,0.267500509668 +1,1.45214427024,0.0149673429589 +1,0.744825457248,-0.241765583514 +0,0.288968251496,1.22810054843 +1,1.67177425154,-0.409514729047 +0,-0.493185888365,0.707390146389 +0,1.45996751699,0.273040122219 +0,-0.265659336101,0.557911527113 +1,0.0438188233332,0.498771357863 +1,0.0506683538813,0.244630492389 +0,-0.785394748084,0.120495170178 +1,0.337049890476,0.163531703107 +1,1.91196643477,0.670347172482 +0,0.886559998655,0.70673358167 +0,0.708110522436,0.20313866569 +0,-0.00411909521608,1.21525516428 +0,0.879578121565,0.82065421626 +1,1.83407249551,0.214984784668 +0,0.158249592248,1.22381846345 +1,0.181357446941,0.314191888911 +1,0.976675382628,-0.504692808602 +0,1.06363674153,0.565594108545 +0,1.38234192051,-0.273929206989 +0,0.951863389848,0.188485401247 +0,1.1612162475,0.671266118062 +1,0.107351195124,-0.21265283768 +0,-0.836313677978,0.645398950949 +1,0.382223075621,-0.537343217518 +1,0.493972870861,-0.248895266867 +1,1.79749243157,-0.339941184048 +0,0.673576395063,0.740919992567 +1,1.56488156502,-0.547435453857 +1,0.283255605382,-0.272028678096 +1,0.92864769938,-0.741613047216 +0,0.764117634376,0.430576067686 +1,0.0762457688673,-0.101809529848 +1,1.72594203865,0.302238014226 +0,1.00514406494,0.247745252348 +1,1.38938318207,-0.257624576821 +0,-0.931927702563,0.0675579191061 +1,2.02938940901,0.13549029869 +1,1.44859525772,-0.538998572774 +1,0.700241223027,-0.361242153024 +0,0.205834548607,1.44717862999 +1,0.998468087238,-0.454851979249 +1,0.225827258027,0.162004837618 +0,-0.407173782159,1.12198349566 +0,0.675315831968,0.261008548803 +1,1.90914208359,0.426653816909 +0,0.0326319273704,0.536122139578 +0,-0.619279755742,0.733199388941 +0,-0.305851111601,0.667074949583 +0,0.862378026831,0.394710963025 +1,-0.172970309409,-0.25946923535 +1,0.0670121276831,-0.0107427495743 +1,-0.240439232193,0.123569182785 +1,0.770192362663,-0.538960163377 +0,0.840656686909,0.0765833430865 +0,-1.04600399047,0.32281582 +1,0.828528103094,-0.307714969518 +0,0.34369152987,0.682833694472 +0,-1.32532111342,0.260047950996 +0,-0.645457853581,0.306101617957 +1,2.22508472656,0.0985767047671 +1,0.0245613648638,0.473611322223 +1,1.34976334545,-0.621716730531 +1,0.238341039544,-0.0849359952151 +0,-0.580077209378,0.938925319107 +0,0.408660254369,0.628515702044 +0,-0.792477555963,0.333412677731 +1,2.040010107,0.149023064338 +1,1.01449590591,-0.493702731778 +1,0.0452220342886,-0.0735491457806 +0,-1.16354492755,0.240147386224 +1,1.90772199827,-0.329657624553 +0,0.29222637769,0.663005773924 +1,2.08284126455,-0.194327595223 +0,-0.892865315857,0.550181529996 +0,1.11989505927,0.389768175027 +1,1.11283267633,-0.569860415603 +0,0.981117340253,0.290874442009 +1,-0.208768559933,0.49691591102 +1,0.223157179352,-0.155301677429 +0,0.974290332833,0.264243634928 +1,1.97826098995,0.0382282796752 +0,-0.792467232902,0.952109371168 +1,1.77899834703,0.125006070293 +0,1.31043319695,0.399964415084 +0,1.28912031352,-0.0962515185103 +0,1.11302727657,0.542690458519 +0,-0.319443626718,0.574935081075 +0,0.197898895522,0.920459719762 +0,-0.697958271859,0.640357024613 +0,0.399327411114,0.892302160506 +0,0.446493297985,0.750343460128 +0,0.182047259486,1.19627502797 +0,-0.981873704735,-0.00506800345832 +1,0.761044475582,-0.270602027139 +1,0.313005654844,-0.703530974923 +1,1.76606362413,-0.455494314853 +0,1.04661591405,0.251745844837 +0,-0.190903584019,0.892676318393 +0,0.788058754414,0.499999229894 +0,-0.863884866882,0.281023653406 +1,0.140036546395,0.0485307507966 +0,0.525805505031,0.976955180177 +0,-0.92507325346,0.0862767916624 +0,1.03751301371,-0.370267388378 +0,0.401263948245,1.07196613668 +1,1.81260469014,0.0529897791196 +1,1.28853329339,-0.329717850403 +1,-0.309294127871,0.522958845929 +0,-0.457299260413,1.21565053973 +1,2.00230776938,0.402742869313 +1,0.111563440724,0.269655928622 +0,0.61009528834,0.865678224513 +1,2.34019921911,0.366089287087 +1,0.106820740855,-0.0968336456934 +0,0.618768935282,0.661150089006 +0,-0.920077807508,0.126842254088 +1,1.50679565073,-0.324878487468 +0,0.329571499418,0.687207730756 +1,0.90701930276,0.000480070368653 +1,0.455043513844,-0.282414674462 +0,-0.500476849483,1.03525825136 +1,2.14686664722,-0.492680631767 +0,-0.208937614787,0.822033540544 +1,2.19628449397,0.555594181052 +0,0.317211851849,0.761583411244 +0,0.50975544596,0.646565797364 +1,0.201246167989,-0.227969920327 +0,1.11431016584,-0.0976160569456 +1,1.92205982598,0.39730607743 +0,0.679256420188,0.704702500103 +1,-0.153098498998,0.291525110317 +1,1.20729470485,-0.565176805684 +1,1.63505867005,-0.397232219047 +1,0.357300082212,0.180953553469 +1,0.116232840289,-0.0532782389998 +0,-0.0109308116929,0.591251052507 +0,0.831388290209,-0.0884159079792 +1,-0.333940906473,0.502312242657 +1,-0.210369112827,0.275670310792 +1,2.00784257277,0.0585065579679 +1,0.400840264821,-0.381066497931 +0,-0.0429083282847,0.941155877774 +0,-0.109029375323,1.01996728791 +0,-1.22322074901,0.354479298857 +0,-0.705619498992,0.582144965132 +0,-0.264859675377,0.736719648845 +1,0.540655702278,-0.135988980301 +0,-0.00352930884236,0.665773485492 +0,0.30614390096,0.797809286883 +1,1.86789105587,0.141808414077 +0,0.370062363887,0.555286147327 +1,0.76820919997,-0.302894865119 +1,0.535787516666,0.0592859075073 +1,-0.0920474346528,0.218168290314 +1,1.806392007,-0.356942682685 +0,-1.06201348939,0.738111940409 +1,1.62560542636,-0.0602246704803 +1,1.82408820337,-0.190515586857 +1,0.0696754375727,0.246721644507 +0,-0.63888569008,0.276294424056 +1,1.46577320497,-0.331123695578 +1,0.055164206904,0.169508850346 +0,-0.263938767665,1.08704741339 +0,1.10370039365,0.403414972954 +1,-0.199920171283,0.179201110229 +0,0.482779058141,0.793141531312 +1,1.76520636297,0.475182113774 +0,-0.978513224347,0.294106718796 +0,-0.605911912161,0.702224818733 +0,0.438469154507,0.740149614642 +0,0.911959981931,0.0294764524784 +1,2.16934382851,0.3543076863 +0,-0.671523712698,0.627370791205 +1,1.44405853725,0.396580724065 +1,2.03989420841,0.530067924946 +0,-0.594866468573,0.696145798026 +1,1.81678206865,-0.644236497701 +1,0.0897835745471,-0.59413296516 +1,1.60196067129,-0.237408898153 +1,0.797718768431,-0.636800875209 +0,-0.965597954582,-0.026172911804 +1,1.9883645686,-0.463657944415 +0,-0.400657776452,0.831319432056 +1,0.930002464342,-0.378879317242 +0,0.11698216212,0.83039999669 +0,-0.789995550774,0.354648332647 +0,-1.04594869733,0.482230063712 +0,-0.164502635191,0.598430586044 +1,0.0814883977049,0.615110712599 +1,-0.142839910472,0.181684638411 +0,-0.890384521368,0.148939393312 +0,1.06971909645,-0.270198741893 +1,1.92818913974,0.216947130817 +0,0.213426255591,1.3671492026 +1,0.255484463861,-0.678073516784 +0,0.422721068853,0.85049316628 +1,0.581754932076,-0.282398370563 +1,0.790331233716,-0.705695902001 +1,0.105469704101,-0.585848260916 +1,1.28492842041,-0.183736939008 +1,0.41059235276,-0.587424648497 +0,0.0609079309726,0.90640367526 +0,0.899219103512,0.420964946367 +0,0.472226065985,1.20499100353 +1,1.30818657164,0.0725487069588 +0,-0.479890799046,0.99391529209 +0,0.0963304698014,0.712147288487 +0,-0.0142489080111,1.09118539104 +1,0.765782527936,-0.354339542316 +0,0.2464411457,0.989765203826 +1,1.42643526312,-0.517263300469 +0,-0.194914105012,0.681682944104 +0,-0.20614481661,1.29966328626 +1,2.11561714364,0.086243497607 +0,0.588164776879,0.805090833305 +0,-0.408546477384,0.833979733297 +0,-0.653868177738,0.915582093916 +0,-0.00213093009824,0.936985276926 +1,0.247329141203,-0.1178159406 +1,1.85277774445,0.203955659998 +0,-0.440761197372,0.0598313843123 +1,1.75671591286,0.283311384031 +0,0.275487427158,0.857448789916 +1,0.423102887841,-0.89425967556 +0,-1.05856774487,0.235397976785 +0,-1.16579065253,0.331748721686 +0,1.19409216335,0.544276692319 +0,0.551852084882,1.00515169693 +0,-0.516539247871,0.954093784075 +1,0.569236475422,-0.685623044145 +1,0.103745050988,-0.466260147947 +1,1.29312592343,-0.386383660974 +0,0.964861051727,0.0461266289913 +1,0.287884340204,0.80423013044 +1,1.86888945173,0.474452781706 +1,0.309580621557,0.423093767548 +1,1.90645443936,0.193772127221 +1,0.550947391366,-0.640639190852 +0,0.706637080006,0.934757040559 +1,0.87752087995,-0.240729475855 +0,0.242964324715,0.861637292311 +0,1.1173249684,0.176065382799 +1,0.9649609358,-0.472948175002 +1,1.60191748452,-0.486899518808 +1,2.03797892651,0.298220421394 +1,0.71440673523,-0.348290133643 +0,0.937376358915,0.480189276148 +1,1.27018242036,-0.793713814891 +0,-0.220590596022,0.740683512836 +0,0.0986817181909,0.646701630994 +0,0.711229653015,0.572084433676 +1,1.59932435479,-0.579195180959 +1,2.064290708,0.363454182557 +0,0.0699926046574,1.092313673 +0,0.249626598833,1.31970449089 +0,-0.0479621588092,1.14144124756 +0,-0.0896742711037,1.00480860247 +0,-0.870576650265,0.549066137282 +0,0.982719704136,0.483405907955 +0,0.975944932591,-0.0249652859916 +0,-1.07094293688,0.741923281329 +1,1.84302429292,0.322314912275 +1,1.83618066856,0.446377827576 +0,-0.187826565563,1.20494189033 +0,0.387886023236,1.05944816909 +0,-0.817417325005,0.226644559505 +0,-0.706645379238,0.862825386741 +1,1.77072689457,0.270705830592 +0,-0.558662737326,1.09648263433 +1,0.290181884978,-0.395636367525 +1,1.18865131146,-0.304782998705 +0,0.00680768309034,0.933341275857 +0,-0.501778560806,0.150169620488 +1,0.000684111210317,-0.212580492642 +1,0.327375344166,0.342555694678 +1,0.878876836858,-0.30302781919 +1,1.83634441803,0.187405842584 +0,-0.829971105816,0.979464864188 +1,1.62488532982,-0.272749489567 +1,1.3494184456,-0.532627465378 +0,1.02222922556,0.443022896156 +0,-0.437297913548,1.07937410636 +0,0.576412051865,0.611008163463 +0,1.39754631822,0.12533924565 +1,2.11095093635,-0.0481933754077 +1,1.85183890821,0.221740004084 +1,1.14691109376,-0.358578911297 +1,1.52006816416,0.214397189334 +1,1.88629985719,0.0102883349053 +0,0.876003634114,0.295459567553 +0,-0.933747507396,0.305683070705 +0,-0.817918433172,0.102317372397 +1,-0.0475785095493,0.429152163289 +0,-0.880658233917,0.47282120102 +1,-0.0957863530801,-0.279991466841 +1,1.277259887,-0.557265990789 +0,1.02819527334,0.261484962205 +1,1.72285048457,0.409103710525 +1,-0.171325847749,0.186822977579 +0,0.82339277632,0.225490532041 +0,0.742347697155,0.136713290553 +0,-0.665645935673,0.44749615588 +1,0.096109534823,-0.0466271674399 +1,0.8126683244,-0.582101290115 +1,0.149191430872,0.309839036193 +1,1.53408347079,-0.440756322121 +1,-0.182692524499,0.141196449794 +0,0.454013521956,1.29555149979 +0,-0.413348879605,0.845386165939 +1,0.427118212629,-0.445917725221 +0,0.772625542892,0.633557724458 +0,0.83509050861,0.69788886127 +0,0.000431210743488,0.842140658294 +1,1.68799911148,0.328497318303 +1,0.0460056377961,0.360375128781 +0,0.608956373608,0.652347102797 +0,-0.201473918884,0.973343258674 +1,2.03935430213,0.726375885636 +0,0.818719291371,0.397351453678 +1,0.534779859333,-0.77230349515 +1,0.549813445568,-0.659565025978 +0,-0.649702803741,0.539232072019 +1,-0.0986623532166,0.0953528696375 +1,1.26956606031,-0.475260156691 +1,1.4630987064,-0.169100683406 +0,-0.384370094264,0.762132904366 +0,1.13348525681,0.209168457145 +0,0.616501395993,0.721597402281 +0,0.474036333281,1.03539093905 +1,0.389979302217,0.148403076568 +1,1.71562254142,0.124999589443 +0,1.05805672221,0.105499111962 +1,1.97708001143,0.311091277247 +1,0.104196698584,0.219307993931 +0,0.563035558778,0.759987249838 +1,1.56210183604,-0.453390627396 +1,1.95917838217,-0.219560175277 +0,0.736998152077,0.595352767982 +0,-0.241380695635,1.05712882719 +1,1.42318596248,-0.393257808897 +0,0.103143593601,1.18284468225 +1,0.789748797426,-0.268118022924 +0,-0.432141809473,0.692665876437 +1,0.491309531582,0.179777967178 +0,0.592066181729,0.469164791204 +0,-1.11599017838,0.480918543658 +0,-0.768676474695,0.621186320221 +1,0.252554169966,0.422016976515 +0,-0.822944976602,0.452442069873 +1,1.0305970498,-0.219619304841 +0,-0.0920654555611,1.29375468143 +1,-0.261761788339,0.586258642631 +0,-0.14472707767,0.841698183099 +0,0.795230610088,0.515129297587 +1,0.344562881641,-0.497032795989 +1,0.205518782785,-0.248494131342 +0,0.689358145007,1.03164550647 +0,0.37173934178,0.885860787065 +0,0.390004332981,0.767665326373 +1,1.81728836478,-0.214402670962 +1,0.633316480533,-0.630312756942 +1,0.342824391542,-0.306237164795 +0,-0.564010420098,0.757130682221 +0,-0.289584048256,0.793466044713 +0,-0.992286810554,0.35913785518 +0,0.44209357742,0.315512977033 +1,0.868343499058,-0.589327508286 +1,1.61801987371,-0.3980008854 +0,-1.00216593593,0.121421016154 +1,0.759766692325,-0.231745776831 +1,1.67339643553,0.234896200792 +1,0.0207866230105,0.259359536738 +1,1.79941746195,0.252256063467 +0,1.05022146834,0.332709418709 +1,1.58044425863,-0.251909310802 +1,1.71164467342,-0.347692122031 +1,1.70346904399,0.154974519727 +0,0.197577729307,0.989830143116 +0,-0.962036768937,0.0262891406316 +1,0.204375105342,-0.116660274618 +0,-0.960841096343,0.599079570247 +1,1.5732865901,-0.256220304892 +0,-0.137848654388,0.880646590459 +1,1.22644151212,-0.308672349468 +1,2.00576859984,-0.19537899381 +0,-0.390629878897,0.829712511605 +0,-0.811751559865,0.669421161132 +0,-0.821231768877,0.853092049748 +0,0.875881186506,0.871288490974 +1,0.37453602929,-0.293873552004 +1,1.72985479317,0.616181011368 +1,1.67215695206,-0.100271986833 +0,-0.0642223230348,0.851449166922 +1,0.297802566863,-0.168468026484 +1,0.681844938107,-0.361216405709 +0,0.641252746697,0.442147795364 +0,0.428107180193,0.501561641937 +1,1.06480122643,-0.481773371739 +1,1.57894952485,-0.494392601318 +1,1.95954004085,0.505436641651 +1,1.87555871046,-0.064594500955 +0,-0.378053764257,0.842511604465 +0,-1.14463478696,0.546575438668 +0,0.934382558289,0.271497321551 +0,-0.193840456646,0.815513562004 +1,1.79471607877,0.028836631069 +1,0.625663645462,-0.677750256297 +1,1.42269138335,-0.723885358297 +0,-0.368859446548,0.995157624693 +0,0.436487878656,1.31507635115 +0,0.0971011670191,1.20621939606 +0,1.00225415109,0.477311401737 +0,0.334298930087,0.951735250692 +1,0.930917723503,-0.379588561352 +0,0.835401015715,0.57421786711 +0,-1.26039627157,0.0848939834129 +1,2.15877573294,0.876630032594 +1,1.87773710026,-0.256694312231 +1,1.603711564,-0.524161505225 +0,1.01069248669,0.139875034297 +0,-0.00761929573226,0.958552867883 +0,-0.067693562028,1.10569576479 +1,0.586805317626,-0.380935211169 +0,0.953613935862,0.432776509329 +1,1.85578574385,0.178138622369 +0,-0.165521478262,1.29208162974 +1,1.6427221297,-0.00723198523201 +1,1.72093718548,0.220716044611 +1,0.651399590298,-0.436374691699 +1,1.57295912195,-0.354526481554 +1,1.65053365836,-0.21138310363 +1,0.365950746129,-0.212073517326 +1,0.119855415116,-0.569123578054 +0,-0.930861209964,0.465999399457 +0,0.743449314107,0.7429794028 +0,-0.238351170932,1.28126179305 +1,-0.089937379638,0.00878779916791 +0,0.156185082017,0.913173223416 +0,0.707370897844,0.120763198594 +0,-0.418276339158,0.735695529998 +1,0.107264916876,-0.142711351177 +0,-0.781786986746,0.435849152188 +1,0.724731069145,-0.404902671309 +1,-0.00434426763965,-0.338898535407 +0,-0.723763331117,0.984463572871 +1,0.946968160968,-0.665805385399 +1,-0.250619096152,0.218601521697 +1,0.201690893976,0.1050691073 +1,1.62483574908,0.128523513719 +1,0.491695380262,-0.13263510477 +1,0.516754657469,-0.342128141392 +1,0.406844263223,-0.222011163262 +1,0.99617406827,-0.565807843038 +0,-0.283086854576,1.18539931743 +1,1.94674249626,0.384788831486 +0,0.554316369566,1.02081754625 +1,1.96706087713,0.298411186344 +0,-0.234333975226,0.877527450828 +1,0.396975682121,-0.436320795443 +1,1.15254519448,-0.576469947244 +1,1.56139789127,0.0629599146949 +0,0.868377714612,0.441739776578 +1,0.119552073017,0.44840852513 +1,0.273948710144,-0.102266739033 +0,-0.411406949233,0.896440877063 +0,-1.01364469106,-0.0626845448161 +1,1.93403931561,0.00865172459937 +1,1.85921844248,-0.341112855066 +1,1.60064540886,0.0321341839111 +0,-0.786408860681,0.793619197476 +1,0.838444779559,-0.18598896123 +0,-0.419846988373,0.942682586648 +0,-0.750887888752,0.0432408481614 +0,0.366833554497,1.02066516163 +0,0.327248715138,1.15958427837 +0,-0.145722955551,0.982249027992 +0,0.772384179324,0.983583459351 +0,0.866354186187,0.070347214666 +0,1.08341503417,0.409462316571 +0,1.14974596037,0.584038646949 +0,1.10842684282,0.376053757062 +0,-0.734208628742,0.389604878218 +0,-0.523334889506,0.851713543422 +0,-0.725755271994,0.467468415493 +0,1.14250209609,0.00414187726763 +0,-0.352553877707,0.936383628448 +1,1.9613157104,0.467100342009 +0,0.706157352029,0.640954233476 +1,1.79053552806,-0.275549611754 +0,0.151789899282,0.932102250712 +0,-0.157840269267,0.838548025258 +1,0.98915311957,-0.232619318801 +0,1.03608450422,0.921467700023 +1,0.0298560618995,-0.0330882413552 +1,1.83445715817,-0.222812362574 +1,0.192426862718,-0.226429823336 +0,-1.01455485674,0.468990414416 +1,2.04091513662,0.0797306413526 +0,0.651283461774,0.51630952635 +0,0.207081120562,1.17521352574 +0,0.443022773293,1.06786658343 +1,1.93685132797,0.569617716745 +1,1.68867402963,0.300115892106 +1,0.379007921561,-0.595275557525 +1,0.105116834077,0.406374702306 +1,0.15036097391,-0.106518748866 +0,-0.0914859816364,0.434430319652 +0,-0.578554556512,0.776627775038 +0,-0.51673475366,0.948405142123 +1,-0.0942511793712,0.508434413647 +0,0.21134550351,0.693764923893 +1,1.71494935397,-0.393260495711 +0,-0.0146538409121,1.18374701254 +0,-1.06744746621,0.791987610421 +0,1.32764014662,-0.158756738461 +0,0.303548812779,1.1875380666 +1,1.73871987667,-0.079741156639 +1,1.39735120435,-0.218226203016 +1,1.71034476413,-0.917203985471 +1,1.88859577892,0.30141936834 +0,-0.688638794744,0.534821110369 +0,-0.455164938491,1.01860679985 +0,0.132913541243,0.832394947945 +1,1.50244574447,-0.271442350357 +1,0.584829792285,-0.723363625072 +0,1.08262373263,0.324617316271 +1,1.58816678927,-0.387629573074 +1,0.47441092755,0.154986249067 +1,-0.183377837022,0.230370258544 +0,0.884457492205,0.788548839091 +1,0.159919191311,0.484192505214 +1,0.315779315697,-0.288818954785 +1,1.24863308955,-0.768071399058 +0,-1.20534283256,-0.0254506321275 +0,0.96263720424,0.0338608173187 +1,-0.0867675273427,-0.13859002644 +1,0.815451236704,-0.306455257295 +0,-0.492025340023,0.997197121347 +1,1.91874368726,0.154260984785 +0,-0.485526123406,0.844087374719 +1,1.21269181309,-0.788558018346 +1,1.37895173496,-0.232217714483 +0,0.867544483903,0.897846528714 +0,0.976829642665,0.249753559999 +1,0.0485510232846,0.172771017053 +1,1.63486516182,-0.218947541496 +0,0.270463384761,0.89529719498 +1,1.80602261066,0.208560089035 +1,1.47849450863,-0.685485586749 +1,0.0503720507471,0.174119012647 +1,0.294976798043,0.0438375061464 +1,1.19160689721,-0.509183070429 +0,-1.10759540352,0.344459297438 +0,0.646359625814,0.301800845266 +1,0.296371894722,-0.339355325751 +1,-0.0274720276684,0.239107538027 +1,1.88711198623,0.366790551638 +1,0.164404462085,0.212488303644 +0,-0.356059270591,1.06702432689 +1,0.0667442645627,0.227873510462 +0,-0.760545384178,1.07086165823 +1,1.17242500395,-0.543434701348 +1,1.89643674101,0.612825488071 +0,-0.991584820998,0.7620535927 +0,-0.581421276772,0.687341863207 +0,0.0134360095445,0.780188108435 +1,1.85316279527,-0.0872849033223 +1,1.23624309165,-0.477689414026 +1,0.717508315195,-0.511013409626 +0,1.12363523468,0.335647665964 +0,0.60411179157,0.179710191765 +0,0.985119757974,0.0672157117289 +1,0.15100186486,0.543861732802 +1,2.2348858476,0.434740359161 +0,-0.546764052326,0.843832173045 +1,0.337663304004,-0.215372795155 +1,1.66397298588,0.074031049436 +0,1.22667213064,0.686889888691 +1,1.16208457295,-0.612771139953 +1,1.75578649958,0.0390627476176 +1,0.577093464401,-0.325639340424 +0,0.918574581186,1.02683651066 +1,1.83235255637,-0.295192550631 +0,0.789480475934,0.186826259471 +1,1.35302774738,-0.0892766013228 +1,1.22436410933,-0.815889823042 +1,1.32848629953,-0.476164825077 +1,0.981514060805,-0.496620338839 +1,1.48432031544,-0.00754834790732 +1,0.0532529019723,0.115223303726 +0,-0.251686464553,0.73788945525 +0,-0.268351445508,0.694449318195 +0,-0.276440309243,1.08228719542 +0,-0.530773687674,0.578894049009 +0,-1.28520473406,-0.237795051984 +0,0.483684835399,0.932596225192 +0,-1.07657807743,0.243648548885 +1,0.899076330125,-0.504559292823 +1,0.402370211802,0.331727630692 +0,-0.502183434848,0.909421812182 +0,-1.09392941022,0.320879987165 +1,1.15823534914,0.0791025046672 +1,1.73232313499,0.210620646833 +1,1.64072996385,-0.265505318001 +1,0.68139052491,-0.228566541792 +1,0.667072442708,-0.477925900765 +1,0.923262503593,-0.161260602327 +0,0.497629236193,0.937119468151 +0,0.321596114462,0.919229156649 +0,0.506641136603,0.53162635435 +0,-0.680137408232,0.860070985829 +0,-0.633231976145,1.0581169238 +0,0.453839471198,1.0315238122 +0,-0.613268298623,0.678124150182 +0,0.78514168925,0.804711865643 +0,-0.169121207176,0.874769626219 +1,1.49169966409,-0.333706699674 +1,0.260686740723,0.501775088631 +1,1.98063612142,-0.0971310706775 +0,1.16216102352,0.126265358854 +1,1.38926361501,-0.444384697323 +0,0.895270834079,0.652969290928 +1,1.56044100073,-0.726466977224 +1,0.886011145769,-0.304463073096 +0,0.425472276051,0.793598514961 +0,0.587416138069,0.971809993262 +1,0.515228645037,-0.153986189489 +0,1.20694143205,0.188262820308 +1,2.19125563282,0.400449355314 +0,-0.0620103280035,0.858430000752 +1,0.22576236156,0.0650725524482 +1,0.65363170147,-0.231092589032 +0,0.156115691685,0.848483078701 +1,0.647315055136,-0.820866909835 +1,0.384022945245,-0.64717309134 +1,1.7429637937,0.0796745508831 +0,0.388389570961,0.835685657839 +0,-1.06918978197,0.522486728388 +1,1.78671358917,0.201528181766 +0,0.250775098245,0.510317584097 +1,1.44689524788,-0.59582746814 +0,0.676980004809,0.868704481969 +0,0.568869448961,0.19981478778 +1,0.816604221994,-0.374473903165 +0,-0.184209453634,0.980400157264 +1,1.76141976289,0.210521217598 +1,0.903905751566,-0.225160362917 +0,-0.611133847148,0.111026192647 +1,1.60891958881,-0.183002789765 +1,1.29399197725,-0.290292254724 +1,1.87059686822,-0.763764240543 +1,0.772980615176,-0.484967867083 +1,0.430623701005,-0.637905534201 +1,2.08722794539,0.399239246318 +1,0.0892383484693,0.155984983371 +0,-1.11687973905,0.369187165214 +1,0.171485419393,-0.00507046332496 +1,0.15233117885,0.0133716580721 +0,1.26645596464,0.179337354725 +0,-0.952224065303,0.539732892991 +0,0.454043379056,0.834341108734 +1,1.4296186708,-0.624861558523 +0,1.26394478993,0.0980860289858 +1,0.554235024538,-0.395056684623 +0,-0.241808508995,0.795185888785 +1,1.04833639155,-0.859541524893 +0,0.521338827164,1.06021332179 +0,-0.000157847411437,0.793652865633 +0,-1.01646954654,0.48080552693 +1,0.107915964402,-0.101666265949 +1,1.77684745069,-0.484135042513 +1,0.864689574095,-0.682256937581 +1,0.289829060987,0.140806948511 +1,-0.112987425146,0.202946307279 +1,1.40833601312,-0.582144658923 +1,0.755742646936,-0.429048567017 +1,0.795564469777,-0.489354190156 +1,1.67499863748,-0.431958470644 +0,0.175110311843,0.734498684703 +0,0.175352546837,0.992684808106 +1,1.91752890229,0.0583009215354 +0,-0.946941046452,0.353822144566 +1,0.330908242194,-0.210071041124 +0,-0.810782694618,0.845588111708 +0,0.46319558379,0.528641018885 +0,-1.0319082359,0.402434431518 +0,0.53652507723,0.948131895188 +1,1.74946485959,-0.51077399697 +1,0.289800079733,0.45891281834 +1,1.38605102428,-0.658292175467 +0,1.05704487153,0.240416127694 +0,-0.429010840151,0.904014945211 +1,1.79033637644,-0.44743451061 +0,-0.687038089552,0.599792444631 +0,-0.889178076096,0.578259444697 +1,1.16690711201,-0.873085360849 +1,1.68505200281,-0.438370722449 +1,0.451854729941,-0.323751360047 +1,1.39168517208,-0.466379737011 +0,-1.05241091451,0.559891842007 +1,0.0214979934811,0.641793845375 +0,-0.870489902791,0.185361373274 +0,1.15492936913,0.571118949927 +0,-0.635588695489,0.843118321097 +0,1.34440724122,0.497278337366 +1,0.611401800988,-0.391604428791 +1,0.438683753072,-0.443927263035 +0,1.20038711516,0.183711103078 +1,0.973361610576,-0.43610324432 +1,1.57415729543,-0.31834963115 +0,-0.73159198209,0.507722547596 +0,0.397765520989,0.479285894889 +1,0.627445242314,-0.428401851656 +1,0.163309295499,-0.170593938866 +0,-0.908190950857,0.246798498979 +1,1.48076063749,-0.339331874046 +0,-1.12568276547,-0.129195581345 +1,-0.156116598391,0.161929583188 +0,-0.323661304219,1.26529616694 +0,-1.09406065084,0.573288808413 +0,-0.627976304619,0.82784831038 +0,0.364051648371,0.745774125609 +1,1.06741860718,-0.333917270724 +1,1.34029216504,-0.572224039878 +0,-0.794389208208,0.85689401223 +1,0.0369683503231,0.277547081733 +1,0.485556837707,-0.115612533987 +0,0.839971889792,0.19186199962 +1,0.332495935517,-0.183885914904 +1,0.22282201505,-0.24234760329 +1,0.469997518682,-0.232896191201 +1,0.942857237785,-0.130488184413 +0,0.883533236365,0.537011718141 +1,1.19731021163,-0.608672182291 +0,0.201145960811,1.48982528842 +0,0.886459270485,0.269160123194 +1,1.39608334522,-0.576028726875 +1,0.873310404171,-0.379685630772 +1,1.9143196917,0.965445807083 +1,-0.101623185184,0.306728322715 +0,1.11236310183,0.416263013862 +1,0.0783165602419,0.38420007435 +1,1.88324940842,-0.0300783657648 +1,0.445849419746,-0.196436646684 +1,1.08381708326,-0.258429938474 +1,0.0822721770662,0.366442096267 +0,-0.557241694333,0.155006499605 +1,0.268440863192,0.125287751353 +0,0.520443754375,1.19427212534 +0,0.598065791189,0.905551782675 +0,0.622378200359,0.328532237069 +1,1.89216594715,0.0279590734872 +0,-0.780060155894,0.404163032778 +0,0.538190560455,1.23361555566 +1,1.86347315615,-0.204607538074 +0,1.03398999767,0.284344806262 +1,1.5002619409,-0.631262450111 +1,1.09050972899,-0.504123372956 +1,0.257251413283,-0.24593429109 +0,-0.696020199547,0.253701123424 +1,1.20070741869,-0.59931614113 +1,1.71338393097,0.131871003287 +0,-0.796600906055,0.384468093075 +0,-0.65266629529,1.14264982469 +0,-0.50490664239,0.232504622007 +0,-0.353713863822,0.725612860398 +1,0.819521119383,-0.747316472337 +1,1.58236263187,-0.115092650738 +1,-0.0962248508252,0.224321217835 +1,0.489153573686,-0.017654277661 +0,-0.0538172458635,1.28295372103 +0,-0.594560451933,0.48963087521 +0,0.956638314388,0.855957141459 +1,0.285059168023,-0.345271351084 +1,0.278998104875,-0.460670111287 +0,-0.191653178909,0.951518690744 +1,1.75718740917,-0.278398864638 +1,1.90848271507,0.111050537552 +0,-0.766695719838,0.989709890538 +1,0.446172658682,-0.116178068116 +0,0.0713600611704,1.06166402535 +0,-1.14997905266,0.26121762798 +0,0.703289197505,0.099644730814 +0,-0.259577334626,0.902383494658 +1,0.0522103563328,0.402156056885 +0,0.602849144131,0.782431767457 +1,0.405116682264,-0.379244819982 +1,1.68227255175,-0.040609560876 +0,-0.199365754167,1.01038151311 +1,0.848276770568,0.0145430328042 +0,-0.275858356265,0.98103215699 +0,1.12912122624,0.208917753686 +1,1.31487542091,-0.300321533094 +0,-0.233178019775,0.592139647261 +1,0.828172737152,-0.211333085891 +1,2.01786070981,-0.267168395743 +1,-0.251526477547,0.705788471017 +1,-0.0877398902259,0.822626941837 +0,-0.410220080814,0.471448317826 +1,1.62827497759,-0.281611744011 +0,-0.63186200695,1.04085807012 +1,1.60152682919,0.439980207179 +0,0.438033029502,0.970668233834 +0,-0.601699074472,0.724245328352 +1,1.9094894538,0.247298157696 +0,-0.13880450676,1.04003391402 +0,0.211200997931,0.735115562875 +1,1.8998505198,0.0245345970145 +0,0.669752898355,1.15231728949 +1,0.949555520066,-0.271816203801 +0,-0.209027689718,0.812549863946 +0,0.670522980038,0.865776948889 +1,0.136725306416,-0.251129588697 +1,1.15905262034,-0.318027316963 +1,0.418363816942,-0.197997769035 +1,1.44145534695,-0.519591151968 +1,0.416435928389,-0.517193817827 +0,0.11015283636,0.965670637884 +1,1.33646295193,-0.393681601373 +0,0.575285675728,1.00352641466 +0,-0.725664579711,0.55285585065 +0,-0.295662903014,1.03863195547 +1,1.18662197406,-0.211478909361 +0,0.678482060901,0.532051695835 +1,2.20406303231,0.207373404657 +1,0.408289611369,-0.205937104438 +0,0.175118229699,0.980469676555 +1,1.16248934429,-0.38339799472 +0,1.21915066322,0.512607183493 +0,0.367303712017,0.751369157279 +0,-1.39884147259,0.269026549456 +1,-0.0137603309699,-0.0828339073335 +0,0.56819679116,0.577773306341 +0,-0.826689215327,0.504759467103 +1,0.0441626017252,0.0220648768889 +1,0.751687056063,-0.456959174637 +0,-0.562750161253,0.70920259828 +0,0.823246870464,0.575467139199 +1,2.02904227175,-0.727644554785 +1,2.02855685191,-0.282594426907 +0,-0.466668591796,0.640975843428 +0,0.726529375078,1.15116164222 +1,0.823826795955,-0.820716386208 +0,0.54196653942,1.02682036378 +0,0.65177090589,0.632180720523 +1,1.11591540205,-0.451155134042 +1,0.7664165754,-0.549639714815 +0,1.38331636949,-0.0951623495007 +0,-0.210682334642,1.07565428568 +1,0.116311660485,0.0797957537731 +0,0.112547236305,0.966643372712 +0,0.311100177281,0.936524457457 +0,0.950563983288,0.430509452166 +0,0.394063201814,0.9730011896 +0,-0.892847697026,0.397740078114 +1,0.916436446865,-0.563920535972 +0,0.889241566922,0.297120408926 +1,1.7111909073,-0.141373724784 +1,2.07723847346,0.418862310879 +0,-0.894987785708,0.63294261628 +1,0.177983834469,0.187479667356 +1,0.148087996234,0.494125412885 +0,-0.293798387984,0.702832021773 +1,1.34778356077,-0.321549501417 +1,1.95524494912,0.526100623643 +1,1.41079300289,-0.100338668649 +1,1.83938950008,-0.253318150904 +0,1.08970351127,0.0424923391418 +1,0.0142490836485,-0.134322399008 +0,0.0380951900532,1.03895254989 +0,-0.877618536503,0.0204506384276 +1,0.288737357545,-0.51542129293 +1,-0.174011882083,0.11885256315 +0,0.842483759429,0.68766666843 +1,-0.156151931864,0.448519657968 +1,1.53747865476,-0.600384406513 +1,0.323467202487,-0.476444316391 +0,-0.336210191121,0.755961491574 +1,1.85709242746,0.125878526954 +1,0.673305588526,-0.324604689439 +0,-0.0318362019541,1.13653920136 +0,-0.688011313318,0.790894586581 +0,0.520050958247,0.53579429877 +1,0.964025331548,-0.168270671107 +1,1.55918456169,-0.0777705154301 +0,0.922614714864,0.348146863681 +0,-0.302092169544,0.401612257517 +0,-1.10996406042,0.572238417361 +0,0.482192620204,0.449824717121 +0,-0.984908142158,-0.0576560821186 +1,0.312029607564,0.0266851999446 +1,2.10939076236,-0.0561971372391 +1,1.30631175374,-0.684295808522 +0,-0.925049222097,0.161666822203 +0,1.04641580645,0.214324662342 +1,0.858993177974,-0.336070264191 +0,-0.815452990939,0.0227312240277 +1,1.02407575788,-0.986430921825 +1,0.46607047661,0.272210175023 +0,0.306741079445,0.525678701175 +1,1.08835446456,-0.410516776154 +0,-0.730525509546,0.0290620988818 +1,0.706289009872,-0.280560677821 +0,-0.785823298718,0.361824128485 +1,1.78369940848,-0.205332220408 +0,1.01352118986,0.210766406967 +1,2.02450228141,0.516395666601 +1,0.723898554231,-0.632665781548 +1,1.97538696948,-0.111643076217 +1,0.352620549491,0.0104819351831 +0,0.89921669123,0.834767819075 +0,0.250113501093,1.14593624776 +0,0.30165928697,1.0284392498 +1,1.50710876754,-0.637236476927 +0,-0.743216418981,0.742508811859 +0,1.27384102026,0.706226172349 +1,2.05204051198,0.411193596365 +0,-0.140204957382,0.810011972138 +0,-0.495353772359,1.01328222 +0,-0.845127370529,0.527162497097 +1,2.03478799288,-0.173860813606 +0,-1.27230645986,0.161587330431 +0,0.587308928274,0.378486290691 +0,-0.556618181053,0.782472034253 +0,0.896269905,0.419096705483 +0,-1.56533840711,0.0684563341062 +1,2.0877198213,0.63536812862 +0,-1.03738443481,0.605922491608 +1,0.247268581187,-0.287227735368 +1,0.91002351533,-0.460794079773 +0,-1.09350703899,-0.0510927948365 +0,-0.604634938413,0.861479523127 +1,-0.219688807042,0.101656030166 +1,0.309964018933,0.108210920672 diff --git a/simdata/moon_data_train.csv b/simdata/moon_data_train.csv new file mode 100644 index 0000000..6afce3a --- /dev/null +++ b/simdata/moon_data_train.csv @@ -0,0 +1,2000 @@ +1,0.610651377833,-0.459645658189 +1,-0.555537034016,0.730968202566 +0,-0.584957041494,0.663384599899 +1,1.19752256255,-0.694940320343 +0,-0.554557303084,0.796669797254 +0,-0.524280620684,0.882978375322 +1,0.623590031951,-0.782186611986 +0,0.0601702535588,0.910675386357 +0,0.443282654477,0.647677161685 +0,0.628799725121,0.892566295038 +0,-0.794410277516,0.243574038338 +0,-1.01078176448,0.958953984787 +0,0.744346405259,0.896406975255 +0,0.999271643673,0.91225056078 +0,-0.609919015226,0.50784904226 +0,1.13393529845,0.0788467061711 +1,1.33014534362,-0.729985965578 +1,2.12417272324,0.417723430162 +1,0.432837216789,-0.332806101131 +1,0.946458146516,-0.542550425449 +1,1.25887776359,-0.495588093793 +1,1.56587187371,-0.215983504268 +0,0.742005631816,0.791863475967 +0,-0.758564016598,0.388747303181 +1,1.21513248864,-0.523717719039 +1,2.20196103685,-0.26666107716 +1,1.40945771302,-0.258962161378 +1,0.253270606841,-0.278188853798 +1,0.681197675769,-0.49097679877 +0,-0.796376982856,0.596832683319 +0,0.173103213767,1.08933998911 +0,-0.642223758067,0.825877700163 +0,0.603418492545,0.433743254553 +0,-1.17908771204,-0.0426146094612 +1,0.160271309828,0.24169313921 +1,1.03287478543,-0.632701928136 +1,0.524855932932,-0.454150199476 +0,-0.755086345149,0.845252572225 +1,-0.107878129327,0.0571888917804 +1,-0.129681240803,0.390567962962 +0,-0.689950998794,0.41671974559 +1,0.910831324192,-0.735531890573 +0,0.79167988712,0.537528102863 +0,-0.490334122564,0.342825236117 +0,-0.749015479658,0.520598893974 +0,0.878378021105,0.240484686665 +0,-0.907353878435,0.754246344673 +0,-1.02250510784,0.516031653903 +0,-0.446396321173,0.665972862602 +1,1.31641506138,-0.414783322193 +0,0.503182182324,0.535393155555 +0,-0.564052698244,0.941394090932 +0,0.226845839636,1.16856757643 +1,1.52031139977,-0.049123390951 +0,0.276589216104,1.08491262125 +0,-0.617717740901,0.706883646637 +0,-0.237052582894,0.616454971236 +1,0.638716484093,-0.259934211262 +1,1.65713651718,-0.454803023563 +0,0.291622197444,0.846536380936 +0,0.837000338376,0.407659368701 +0,0.712713429701,0.873217348439 +0,-0.834847794973,0.368813674065 +1,2.04372217885,0.0162852223633 +1,0.633537771035,-0.304417999998 +1,0.442448491719,-0.284917394674 +0,0.784072391451,0.38146690359 +0,0.848844489931,0.929308085851 +0,-0.526363049647,0.858345361346 +1,1.85652541263,0.244786252707 +1,0.191783780415,0.215733891901 +0,-0.519937645806,0.595440105021 +1,2.02579805484,0.244986304126 +1,0.351203245414,-0.478526054335 +1,0.713469853792,-0.284389007408 +0,-0.599509790021,0.984496806564 +1,2.07172686618,-0.155190994728 +0,-0.684200497275,0.686893206798 +0,-0.950859992581,0.451399349309 +0,-0.926615568525,0.0415870553827 +0,0.687297736161,0.919618877946 +1,2.05923340448,0.190781591934 +1,1.92335418066,0.402360779443 +0,0.26046757964,0.401638073456 +0,0.877579006893,0.679204988535 +0,-0.61444251451,0.582399429452 +0,-0.614586051963,0.672041673853 +1,1.08556638487,-0.547190247436 +0,-0.391165685415,1.35760170302 +0,-1.12797041702,-0.197891360501 +1,1.8144108127,-0.201810232393 +1,1.68055447355,-0.184505370432 +0,-1.12806040094,0.913689130259 +0,0.654289558908,0.583497429923 +0,0.528175689386,0.80780540229 +1,0.165345847613,0.0770720034223 +0,-0.0520532450577,1.02442360955 +1,0.0771029312393,0.335206915372 +1,-0.237910812622,0.344771745476 +0,-0.750943526496,0.414921861738 +0,1.31130443712,0.532164277812 +0,-0.449114712696,0.879589755328 +0,-1.07418606402,0.528280983165 +1,0.558694648078,-0.439297534946 +0,0.807124450586,0.514667330695 +0,-0.724023042115,0.176520265669 +1,1.8849190517,0.301195838103 +1,2.3082061414,-0.0136863885804 +0,0.984174090038,0.597450934908 +1,1.21956934223,-0.500163056114 +0,-0.71031445325,0.526414834462 +0,-0.622801433816,0.640597808325 +1,1.73753132719,-0.21173528317 +1,0.0334183269739,0.0731280576337 +1,0.429534419423,0.601323326358 +0,-1.0035032138,0.388260575197 +1,1.75339928898,-0.173890019012 +0,1.08341359956,0.60310024006 +0,-0.698815070886,0.646948405772 +1,1.66513217794,-0.162783974661 +0,-0.97367572011,0.408404263004 +1,0.671896595397,-0.247751962679 +0,0.186416082376,0.679144884962 +1,1.7809614641,-0.0566359823001 +0,1.08260195867,0.0574610931523 +1,1.8744615431,-0.0777287548604 +1,2.05682830667,-0.277228310212 +0,-0.593233820222,0.895343562188 +1,1.41938070879,0.161856660822 +1,1.90754198171,0.111766114573 +1,0.0248039893931,0.459555095481 +0,-0.995565695185,0.323328325571 +0,0.174689044751,1.10511123768 +1,1.08350431576,-0.608875985547 +0,-0.0468218530414,0.564493210527 +1,0.514242587481,-0.152014318523 +1,-0.00737591516534,0.39925864972 +0,0.30005821639,1.12886227688 +0,1.10327336506,0.106980729315 +0,0.303842689871,0.963213618187 +1,1.39173727868,-0.543757101584 +1,2.2285409633,0.287366024717 +0,-1.15301884294,0.0121474073499 +1,0.507628262117,-0.490875064814 +0,-0.4998416972,-0.0880365233796 +1,1.86116682814,0.184726153804 +0,-0.671503524544,0.676765434405 +1,0.732576908015,-0.559507430166 +0,0.974426570726,0.355088828071 +1,0.237656177422,-0.456617878579 +1,0.357168271055,-0.329366415301 +1,1.0521564351,-0.472031144764 +0,-0.661049045986,0.694188625777 +0,0.110060639334,0.974468169524 +1,0.0645190268636,0.0886942908457 +1,1.4110220922,0.0438016927614 +0,-0.240840332503,1.06958825827 +1,1.18787185319,-0.429736941002 +1,1.61216891242,-0.144075494629 +1,2.02770910882,0.438869241941 +1,0.098248945499,-0.021961806295 +1,1.24959592648,-0.590540814858 +1,-0.0939778967564,0.525338847161 +1,-0.0391072384107,0.167100290262 +0,-0.861398801758,0.350344223039 +1,0.148114241754,-0.55052890239 +0,-1.08930119523,0.0859671650856 +0,0.817320698762,0.598537993013 +1,1.45653219298,-0.249990283063 +1,0.923152097586,-0.488297436664 +1,1.15818566421,-0.480681225622 +0,0.50246731653,-0.0995271468624 +0,-0.759851157776,0.616255518969 +0,-0.0680476885577,0.946270968269 +1,0.15651749349,-0.00904682546143 +1,2.01397746584,-0.179615680055 +1,0.192323149092,0.0975851678483 +1,0.990533606553,-0.499099300219 +1,1.47591618747,-0.414618507901 +0,-0.594123712895,0.470564713391 +1,0.767014428591,-0.44139014985 +1,0.689500567854,-0.121403991257 +0,-0.716537775613,0.864075810395 +0,-0.859347912976,0.356487173989 +0,0.220468264567,0.971556703241 +0,1.04614150331,0.173062810499 +0,0.0746255424237,0.999573170135 +1,0.484006782576,0.140168124124 +1,0.339630038094,-0.103571381623 +1,0.899888861513,-0.55894863538 +1,0.216822862666,-0.345472218357 +1,0.391631974919,-0.108648765038 +0,-0.509156544219,0.897661242576 +0,0.382552662377,0.907548148408 +1,0.616442316222,-0.0665722484343 +1,0.655745177439,-0.337152958264 +1,0.310378404191,-0.0620632340722 +1,1.63887613698,0.191947507711 +0,-0.774736245239,0.308623887588 +0,0.18830504108,0.741977432476 +0,0.89737525379,0.41451114072 +1,2.22826968236,0.47146421221 +0,0.123597543095,1.22460184073 +0,-0.106537513998,1.07328115331 +0,-1.09042185016,0.147845917904 +0,0.71455723091,0.645469038755 +0,-0.614124901156,0.349330336893 +1,-0.0712300393899,0.458198922669 +0,-0.432936899424,1.03499146189 +0,-0.900456389627,0.355094756779 +1,1.56405994713,-0.418941329566 +1,1.25385148128,-0.452767994875 +0,0.307485823478,1.16718948702 +0,-0.170833984821,0.854115320488 +1,-0.100949630127,0.555110524785 +0,0.935981132953,0.70195846334 +1,1.51659171032,-0.2550820625 +1,1.58139870078,-0.351280550663 +0,0.241253245908,1.06793552713 +0,-0.370207137509,1.1369342073 +1,1.15809065138,-0.179200896121 +1,1.05711652419,-0.851431542583 +1,0.340760934065,-0.372496546252 +0,0.919073870512,0.013614466724 +1,0.32154846448,-0.443878696011 +1,0.445362121397,-0.0854910823595 +1,0.604601839319,-0.483470717869 +1,-0.00554092562756,0.0223613576177 +1,0.526534617781,-0.24363320196 +1,0.159707792407,-0.398858649022 +1,1.55507651832,-0.123831627547 +0,-0.0960210432322,0.583832985876 +1,0.456240567145,-0.075548220598 +1,1.19563080916,-0.308890127072 +1,-0.31039221877,-0.101879484833 +0,0.0645431054827,0.922901306087 +1,1.64844567129,-0.498498878207 +1,1.81526733004,0.376899743825 +0,0.310868641157,1.03687130256 +0,0.613725775698,0.951572020715 +1,2.02410625501,0.314678666147 +1,1.56688553742,-0.406019762679 +0,-0.776476368492,0.518580711442 +0,-0.796494354211,1.48983381065 +0,0.524159273215,0.893853392976 +1,1.286623764,-1.0393715865 +1,-0.0343739204357,0.192709167606 +1,2.13529581468,0.50039265569 +1,1.87780936697,-0.275576513944 +0,-0.652833997145,0.632650695661 +0,-1.19948193512,0.338233766774 +1,1.04325537442,-0.378958989821 +1,1.40550609358,-0.22348505772 +0,-0.463985913223,0.769482361384 +0,-1.16160301451,0.542182871044 +1,0.875777839611,-0.699828036802 +1,0.47201965467,-0.223942635455 +0,0.297437640431,0.876831450842 +0,0.484869875199,1.13172595808 +1,1.67266686019,-0.392079161925 +1,0.843918615448,-0.66644065269 +0,0.181307291869,1.0653476232 +1,1.99961378405,0.454347140865 +0,0.122504317519,0.831554868081 +0,0.957170939434,0.839782857027 +1,-0.00734435117528,0.422618653578 +1,1.85548584645,-0.243209037279 +0,-0.240329091053,0.946595494764 +0,-0.145323948446,1.01955729719 +0,0.974018793943,0.28499940422 +1,1.60256359007,-0.364257757182 +1,1.94588478247,-0.191203276585 +1,-0.271556967183,0.100114081718 +1,1.78420301544,0.213630825294 +1,0.330058120499,0.0911573522541 +1,1.73891086039,-0.628008429959 +1,0.233689754142,-0.326341064717 +1,2.1198617188,-0.0973915995892 +0,1.47433817071,0.0638272519302 +0,1.01456789157,0.733117964481 +1,1.69087738771,-0.517473100692 +1,2.09879113391,-0.0543092496293 +0,1.15377593085,0.169941762373 +0,0.833457318202,0.519592129313 +0,0.956563003202,0.799701215153 +0,0.034959833931,0.994619485048 +1,0.764606831473,-0.180548878735 +1,0.736555035732,-0.479776236052 +1,1.49356778882,-0.232884564013 +1,-0.544831104239,-0.179916928081 +0,0.268930412877,0.752837965376 +0,-1.04755339421,0.39309005433 +0,-1.14943402334,-0.0725523302563 +0,0.409742668232,0.772445674641 +0,0.841355887559,0.478888143756 +1,0.271166740221,0.077529511697 +0,-0.843345456058,0.489805414297 +0,0.0486537637147,0.750345300318 +1,1.65576207324,-0.374926323191 +0,-0.877502881279,0.655780687278 +1,0.285070205727,-0.511868832326 +1,0.17833157064,-0.0378125138616 +1,0.654953855814,-0.219411781355 +0,-0.821828637003,0.561499506931 +0,-0.894683909313,0.183379444681 +1,1.41770330994,-0.184721039505 +1,2.03895278389,0.223261243401 +0,0.395247744596,0.615078490958 +0,0.494817170127,1.145969274 +0,-0.11344217128,1.51346105475 +1,1.95721555402,-0.127706106749 +0,-0.493482887832,0.61904124296 +1,2.05176306868,-0.0133352318197 +1,1.16511862888,-0.415314681136 +1,2.30328658893,0.186284591157 +1,1.13294814088,-0.48062010618 +0,1.14729841949,0.395765420776 +1,0.0302027335837,0.0258255678286 +0,-0.287741525135,1.15602376055 +1,0.0637442533539,0.248471872823 +1,0.512957088724,-0.300567004334 +1,1.83646100735,-0.144363483269 +0,-0.678779448417,1.201860096 +0,-0.841288007564,0.216391302471 +0,0.769785332908,-0.276273470772 +1,1.01113969152,-0.144546999018 +0,-0.857929722505,-0.133706003096 +1,1.37904440021,-0.00963348909162 +0,0.366977564592,0.910407923871 +0,-0.853156446638,0.452994554705 +1,0.102294516302,-0.0997475292176 +0,-0.460208012717,0.98613607736 +0,0.803277660797,0.112884906132 +0,-1.02575260649,-0.125138911665 +0,0.399828160189,1.09530436252 +0,0.582370448571,0.773088843373 +1,0.795866870873,-0.406920992821 +1,1.80031032681,-0.0240934988775 +0,-0.804749225138,0.812651654707 +0,1.39652026222,0.28855616383 +0,-0.247327846475,0.956870252715 +1,1.32098924463,-0.798963716121 +0,-0.331635947943,0.767491857091 +0,0.640350928328,-0.0458291004408 +1,1.80660680977,-0.272502880724 +0,0.519653006297,0.972032539046 +1,1.40077163696,-0.541750669372 +1,1.67840776237,-0.530886365836 +0,-1.07397595792,-0.197703719238 +1,0.123551363245,0.418468398723 +0,-0.761503660316,-0.122356283589 +1,1.39866882722,-0.548155433839 +1,0.750745317978,-0.19620563414 +0,-0.900766528005,1.10066400127 +1,1.14712527902,-0.94270449566 +1,0.00338879834166,0.284266849173 +0,1.15542830165,0.512263261085 +0,-0.511574244046,0.86701093593 +1,0.310499350062,-0.0544704477414 +0,-0.611912759424,0.975032786376 +0,0.777664630724,0.388664006739 +0,-0.257906603537,1.05936974285 +1,1.85535868164,-0.00421267662187 +0,0.887888557315,0.0228944883336 +1,0.313680123515,-0.465685293448 +1,0.936021668099,-0.282353233193 +1,0.148322696764,0.165790363082 +1,1.64517368133,0.218629244939 +1,0.424700503628,0.329672587251 +1,0.768278996604,-0.572760302704 +1,0.617779990926,-0.195722847817 +0,0.318011830669,0.935787417234 +0,1.24185663417,0.580733002023 +0,0.00544704441306,1.19764082318 +1,1.30658711871,-0.679783990048 +1,0.068617538721,0.304684647882 +0,0.995084089476,0.243542494861 +1,0.473401967353,-0.131249671758 +1,0.776035568371,0.00461758545915 +0,-1.1685145566,0.180645604966 +0,-0.522766438185,1.11573040231 +1,1.01253523261,-0.516125739146 +1,2.14123900918,-0.295693137006 +0,-0.845969277035,0.64009958082 +0,0.53400507397,0.814511662428 +0,-0.987440571283,0.884818637229 +0,-0.517513828784,0.411465408605 +1,1.63348562264,-0.300043503517 +1,0.130083007764,-0.048830759206 +1,1.59351496668,-0.127607942796 +1,1.01606080158,-0.314697052691 +1,1.28772818982,-0.186781382604 +1,0.13498771543,-0.540630426563 +1,0.434260903462,-0.346925896052 +1,1.4043362089,0.319038218099 +0,-0.699295711216,0.519896107416 +1,0.138383328024,-0.360648611594 +0,-1.15842096405,0.193480459884 +1,1.46203795649,-0.560153707037 +1,1.07299879201,-0.691793035248 +0,0.251300135549,0.645593301774 +1,1.63520168675,-0.400324058686 +1,0.0432296760136,0.0601497343867 +1,1.50041203317,-0.335007135688 +0,0.68021044246,0.33203515262 +1,1.19830354672,-0.167117381563 +0,-1.25222206299,0.274542351051 +0,-0.525132498466,0.933404554823 +0,0.385798823054,0.937013341655 +0,-0.926359783099,0.387835381283 +0,0.855990075579,0.289202309601 +1,0.491457080237,-0.23211955978 +1,1.46327261298,-0.455465259438 +1,-0.351143400259,0.25096062268 +0,0.230321607357,0.916118676724 +0,0.417627362241,0.846494452443 +0,0.228088502915,0.654342735891 +0,-0.161918506778,0.962875634194 +1,1.83003697273,0.0995466395543 +0,1.25751317364,0.663756697941 +1,1.36719662786,-0.100268498828 +0,-0.197586862678,1.20132778395 +1,1.87553109573,-0.0928055144819 +1,0.995699705946,-0.270066555195 +1,0.274391046921,0.0254265201515 +1,1.0655434386,-0.375228000702 +0,0.583299331087,0.717910594879 +1,1.3859273483,-0.582190840923 +0,0.517148150336,0.697721022699 +0,-0.175058792349,1.31960084789 +0,0.724079397228,0.729140661233 +1,1.75599789738,0.344056007989 +1,-0.211735663562,0.247547912361 +1,1.22235550548,-0.382571203986 +0,0.333375825166,1.33725558973 +1,0.38213966105,-0.119316188309 +0,-0.31528325458,0.854139422221 +0,0.515545778549,0.934367068156 +1,0.372824081704,-0.227699995055 +1,0.607474232283,-0.0262334421 +1,1.06261701077,-0.376876480193 +0,1.00526107603,0.250005970205 +1,0.27571461143,-0.311996722791 +1,0.180486202425,0.28103919801 +0,0.875889813878,0.168704865254 +1,-0.110671213908,0.534863563868 +0,-0.46698779017,0.881735645125 +1,-0.112546252183,-0.109413771103 +1,0.724916179043,-0.725982540145 +1,0.133281825502,0.350105271928 +0,-0.08029265682,1.16330967597 +1,0.804848216208,-0.359667595636 +0,1.07216202706,0.294695548277 +0,0.753386339073,-0.0363776730486 +0,-0.762800800573,0.582475645095 +0,-0.0703885868955,1.31452251817 +0,1.34920457713,0.281104763966 +0,0.0693618437937,0.508690433584 +0,-0.248629499241,0.613591217898 +0,-1.1915001982,0.197672449092 +1,1.86445539652,0.768312651654 +0,-0.575535776965,0.900809531027 +1,0.304955439516,-0.446606834468 +1,0.475170118903,-0.332956434811 +1,1.94324410039,0.268639592855 +1,-0.110825718891,0.445161466679 +1,0.181649145011,-0.40037364193 +1,0.130586934374,0.176633308458 +1,2.1826994705,0.311228071458 +1,1.13368476335,-0.787133346308 +0,1.07638172446,0.941687770003 +1,0.264951293005,-0.175103682122 +1,2.03393432642,-0.0403892286027 +0,0.767509875266,0.358546445377 +0,-1.12789351261,-0.105934909948 +0,-0.25994986645,1.26320715808 +0,-0.981147058501,0.706122538702 +0,-0.45369234869,0.992899420659 +1,1.64710796451,-0.0169148674959 +0,-1.29307353001,0.112234589108 +0,-0.841914493897,0.636596182796 +0,0.0748466692582,1.04143039246 +1,1.11473903017,-0.686500319471 +1,0.250923828488,0.166437769863 +1,1.56310918639,-0.327666705118 +0,-0.876020105296,0.48609925565 +0,-0.279077072337,1.02893403063 +1,1.0218603129,-0.497773409147 +1,1.68646523551,0.221326783179 +1,0.498234799312,-0.18735953882 +1,1.89962066269,0.361042643083 +1,1.44626994544,-0.270282054049 +1,0.523111447748,-0.661954261175 +0,0.194527638796,1.20005231344 +0,0.701621180548,0.0710351338436 +1,0.113260198634,-0.226100044282 +1,2.09510893632,0.128685785551 +0,0.722154996797,0.148361621315 +0,0.594175895066,1.00841795625 +1,0.0126427059127,0.632283877315 +1,1.67457143901,-0.382465509724 +0,-0.342713466361,0.863381093767 +1,1.7127111748,-0.311539407332 +0,-0.84720855502,0.671862917045 +1,1.61177677736,-0.347351164828 +1,1.47946504165,-0.318636760104 +0,-0.165589545923,1.25838161613 +0,-1.02024854013,0.625740976609 +1,0.0455794343137,0.385528224828 +0,0.382684584873,0.98495198275 +1,1.24317348786,-0.346155791212 +1,0.311645929259,0.0358175265632 +1,-0.0395242490501,-0.231364096004 +1,0.120005615158,0.178792758776 +1,0.402128065335,-0.348969095032 +0,-0.585786058553,0.287316373358 +0,-0.980017050732,0.896133138782 +1,2.0179844311,0.156035041337 +1,1.92678816224,0.906243783505 +1,1.21406870519,-0.432248675508 +0,-1.10217067566,0.456761516264 +0,0.474927603397,0.76360399044 +1,2.20350723104,0.486950050262 +0,-0.252748258766,0.877479132518 +1,0.363963773797,-0.324065547488 +1,1.47303932652,-0.336310198073 +1,1.62747018014,0.0383321281351 +1,0.473330455608,-0.365688551131 +1,0.723883114509,-0.241292444543 +1,1.27661319046,-0.465353071751 +0,-0.451665304794,0.602540074452 +0,1.25438626892,0.234804047662 +0,0.404842880206,1.10780015436 +0,0.524249070391,0.782753964009 +1,0.566327534617,-0.714135962155 +1,0.667915744431,-0.0339340363948 +0,-0.433982378379,0.986144932652 +0,-0.0617982289104,0.727868051239 +1,1.73608990255,-0.216442125307 +1,0.036749431102,0.202106867046 +0,0.722257751254,0.483134815906 +0,-0.925994233148,0.724387993125 +0,0.93723549833,0.352765437584 +1,1.83361286389,-0.155132864084 +0,-1.42877416471,0.327980760613 +0,0.692504594453,0.687917609026 +1,1.01272020121,-0.476221039151 +1,2.11361758633,0.196414775424 +0,-1.15026159833,0.355121458541 +0,1.1287977519,0.573412538411 +1,1.02846306739,-0.397296061216 +1,1.28010267252,-0.20766299675 +1,0.101603982797,-0.312899594627 +1,1.28997311085,-0.436914681789 +1,1.8029084697,-0.254880855385 +1,0.119166173722,0.0623572184586 +0,0.878707119928,-0.120995171042 +1,0.266695394991,-0.408330860402 +1,1.87070371944,0.262801779847 +1,0.963552119251,-0.483182676114 +1,0.0581138144432,0.326528809987 +0,0.941617005937,-0.100379254098 +0,-0.0198910317391,0.830111986228 +1,-0.115709817006,0.345410099015 +0,0.683080014197,0.572971066853 +0,-1.13638040662,-0.089147970168 +1,0.232850698839,0.0536825921821 +0,0.069313833891,1.12610110374 +0,-0.664049338407,1.01757255635 +1,0.878301378132,-0.320962736659 +1,1.46829301469,-0.685476022232 +0,1.15241156615,0.16379568937 +1,1.63114427001,0.117373655662 +0,1.07188449622,0.542286295916 +0,-0.675256806806,0.813276285843 +1,1.42845961011,-0.146603131499 +1,-0.062310769756,-0.0284869137604 +0,0.476586708197,0.806038561944 +0,0.366945508063,1.09988141363 +1,1.8690770533,0.204772553635 +0,-0.601603181451,-0.0515108115971 +0,0.915483212698,0.0497560962032 +0,-0.750972497782,-0.134142459579 +0,-0.718013830815,0.756814055132 +0,-0.655056189887,0.688028887968 +1,1.60267982525,-0.10434207821 +0,-0.185113886971,0.941182910663 +1,-0.0861079130056,-0.40742393382 +0,0.504780290271,0.945770731576 +0,-0.345538222339,0.89275745637 +0,0.373483895144,0.77232198869 +1,1.80934820119,-0.260137199761 +0,-0.586977658065,0.937578436966 +1,0.765416291409,-0.326676382758 +0,-0.0749336982573,0.966968785316 +1,1.55962294273,-0.193912957406 +0,1.02360403735,0.455547053126 +1,0.244229863884,0.0757240921061 +0,-0.506856570195,0.913819077846 +1,0.940962846537,-0.380381183891 +0,-1.13999025091,0.414205729241 +0,-0.920126993618,0.175249318026 +1,2.32744108737,0.391266987357 +1,1.28741540025,-0.147523639132 +1,0.150307261,-0.521174880677 +0,1.09160215485,0.0773538823135 +0,0.296014805694,0.743531529409 +0,-0.279296415417,1.02704445036 +0,0.997070842361,0.668961748797 +1,0.567541504648,-0.663504087819 +0,0.327562877865,0.91089758673 +1,0.725859423898,-0.45665490624 +0,0.0390306183058,1.17320989876 +0,-0.212598610474,1.30725602435 +1,0.184178319302,-0.407829479477 +1,1.35857433328,-0.43473492333 +1,1.05595914821,-0.625161633949 +0,1.05323285904,-0.23985733068 +0,0.939464398338,-0.26291887286 +0,0.60689517805,0.507151452598 +1,2.04460735037,-0.135270504389 +1,0.243172141852,-0.415010676677 +0,-0.740547736254,0.9511627364 +1,0.331876236278,0.0908437932971 +0,0.681511107244,1.06678617584 +0,-0.717382878568,0.332323130917 +1,0.141385233184,0.101180033126 +0,-0.966258977246,1.16214465616 +0,-0.614777327074,0.540647456662 +1,1.80448314772,-0.285275990958 +0,-1.02855343869,0.47102092963 +0,0.752609125879,0.0786694488768 +0,-0.419039288316,0.638042227864 +0,0.70472345459,0.695986521148 +0,0.236546366044,0.688826068592 +1,0.00823494010871,-0.090706261574 +0,-0.763376907902,0.382172613362 +1,0.229679139589,-0.0226427774086 +0,1.00614302192,0.481830157594 +1,1.05735157745,-0.217808687281 +0,0.317431926893,0.980161399814 +1,2.21657204718,0.0999795048063 +1,2.01834829958,0.322981018963 +0,0.877939628,0.276196674863 +0,0.779979154128,0.520519469138 +1,0.219450049231,0.113607833279 +1,0.461643874041,-0.217651821969 +0,-0.443733070956,0.911146756718 +1,0.305453042028,-0.0030088641706 +0,-0.0906673367502,1.06626519948 +0,-1.0421583418,0.909924252826 +0,0.715265229867,0.591057700636 +1,2.3628747653,0.784698368687 +1,1.86854771829,1.14294021209 +1,0.0080510226335,0.328013263976 +0,-0.44996250383,1.10020953023 +0,0.500863674003,0.744174882481 +0,-1.24899272215,0.182439332986 +1,0.225113524617,-0.048087132906 +0,-0.490029903676,0.853853397361 +1,1.51624097034,-0.824865779165 +0,0.436784806542,0.953452831374 +1,-0.029846044338,0.00492480134891 +1,-0.283021733793,0.120464084311 +1,0.334131551776,0.0379706575259 +1,1.796547616,0.436079262559 +0,-0.148221636061,1.10330774299 +0,-1.00113168756,0.622987988001 +0,1.02307233662,-0.335150734943 +1,0.195603353644,0.216303366814 +0,1.43253500021,0.151986941736 +0,0.605611933344,0.742019390968 +0,-0.816286585352,0.0257785670738 +0,-0.836433285753,0.885090833516 +0,-0.632836894827,0.991225054299 +1,0.284513143059,0.695373307682 +1,2.17680881301,0.305719982797 +0,-0.373751270561,0.136850602048 +0,-0.450040389431,0.647450604115 +0,-0.709133764883,1.27428413389 +0,0.838550951713,0.173233763203 +0,0.611059805859,0.928275382602 +1,0.150332189632,0.685602954314 +0,-0.674025550745,0.262830127435 +1,1.06303641619,-0.38762011455 +1,1.75307259205,-0.41588159766 +0,-0.94031986475,0.0361683726226 +0,-0.866247322084,0.465076793315 +1,1.98140310578,-0.0642398360253 +0,-0.654792887411,0.470807133302 +0,0.786207219119,0.954688098647 +1,2.04663600978,-0.195667619569 +0,0.44233815669,0.920531079871 +0,-1.04023332889,-0.00370776849098 +1,1.24717602633,-0.428254708831 +1,0.222868525667,-0.0561852493432 +1,1.22517569345,-0.682500957609 +0,-0.583244529638,0.789910005697 +1,1.69454304459,0.278387463497 +0,0.775646909221,0.423945440526 +1,0.0849539079928,0.199962093981 +1,0.272671945088,-0.274572445591 +1,1.29916637464,-0.364211627182 +0,0.48453449257,0.921042374705 +0,0.0270978674933,0.757496584999 +1,1.59277067244,0.286313710498 +0,0.377375492862,1.181921695 +0,0.775306642783,0.957045022908 +0,-0.419061142003,0.831262640174 +0,-0.95861441845,0.201982362625 +0,-0.100605647014,0.967420323604 +1,0.643357704142,-0.511077124556 +1,0.587418265104,-0.785357900011 +1,1.48357524364,-0.396802703747 +0,0.563121432217,0.885199028988 +1,0.6857301469,-0.395945015729 +1,0.239970280293,-0.592079521362 +1,2.29664722227,0.327587737816 +1,1.05440637836,-0.256168668548 +0,-0.461742667366,0.817895099184 +0,0.72476938659,1.27592975661 +0,0.608913478203,0.709274546201 +1,-0.120397769029,0.499941377414 +0,0.548986104882,0.651814087495 +0,-0.13056977044,1.00853339114 +0,0.328186016981,0.55719966648 +1,2.10160938354,0.449238466411 +0,0.819694143779,0.649700630031 +1,0.817750851938,-0.736462861398 +0,-0.53343554418,0.321647527653 +0,-0.277301294781,1.19601039667 +0,0.57573595938,0.358040396276 +0,-1.01564332587,-0.0231733642292 +0,0.191540902156,0.873380288435 +0,-0.121676886382,1.14565383024 +1,1.23466737755,-0.0467580158195 +0,-0.272314613702,0.889274785038 +1,0.54266971028,-0.0989614607537 +1,2.13878350247,-0.598148865447 +0,0.553067801675,0.442070926293 +1,0.0964651555771,0.462231983916 +1,0.182680293406,-0.394399473356 +1,-0.00354501373429,0.546645955538 +1,-0.181048829725,-0.0718354324972 +0,0.873575547589,0.641753948073 +0,0.920834706444,0.300467670284 +1,-0.0529472401967,0.271187936463 +1,1.60739803452,0.265666877637 +0,0.728791671896,0.14024067206 +1,1.17641365871,-0.664797718839 +0,-0.964419682754,0.500676741037 +0,0.907385669503,0.382972007347 +0,0.251059400717,1.11030423081 +1,1.47988757966,-0.447054740776 +0,-0.758169416501,0.528151545217 +1,1.73424192083,-0.324507549144 +0,0.245671400425,0.82422633911 +0,-0.429550886573,1.12197257955 +0,-0.27542293027,0.810475150685 +1,1.6136160218,0.153584174008 +0,-0.0364203534195,0.643329065903 +1,1.87032850544,0.264687761315 +1,1.64665406506,-0.0715955275877 +1,1.34761453386,-0.498449324861 +0,0.750454725987,0.682282577576 +0,-0.40529589212,1.05947407655 +1,1.29658123941,-0.358122768278 +0,0.767807121427,0.858775245595 +1,0.899855246154,-0.368974789435 +1,1.72637766098,-0.701913302256 +1,1.72225931991,-0.145608397045 +0,-0.888787563903,0.352584797269 +1,1.51106189242,-0.0585899514716 +1,0.467130891701,-0.659543433623 +0,-0.70587712718,0.571910707176 +0,-0.946889821322,1.13514055188 +1,1.22486660003,-0.569084620241 +0,-0.238847387446,1.04417477896 +0,-1.01501008604,0.0684030964138 +1,1.91425031315,0.24315145725 +0,0.911005979,0.219982050541 +1,-0.139077638601,0.116623050709 +1,0.553549195644,-0.385856834247 +1,0.565333159479,-0.560795599004 +1,0.473075426489,0.126854172091 +1,-0.394634699932,0.0419245924776 +1,0.121298926538,0.00476803359804 +1,0.788610118558,-0.400875873293 +0,-0.437775741386,1.17262677566 +1,0.0437671408755,0.423778122147 +1,1.75242450308,-0.0456514820586 +0,0.420589727027,0.830444965666 +1,1.26510274266,-0.639053470457 +0,0.831125653607,0.653312103084 +1,-0.074967428747,-0.0471287201756 +1,-0.017247149237,0.127130812156 +1,-0.000132865737498,0.367981552749 +0,-1.11608500331,0.312519019788 +1,0.760059617544,-0.403098395891 +1,1.3967814879,-0.635417174546 +0,-0.645338941903,0.957399164057 +0,0.677701451987,0.534288084189 +0,0.167697820553,1.10884844367 +1,1.43560034152,-0.592495209625 +0,0.694694531906,1.17277217345 +1,0.579690344226,-0.0687321074898 +0,-0.286744927584,0.965941778353 +1,-0.196442278443,0.123973744885 +1,0.155039335611,0.00942838068634 +1,1.73243497129,-0.159076855805 +0,-1.25631686282,0.613283168695 +1,0.391521529678,-0.455148792891 +1,1.92434382015,0.14235813323 +1,1.92469638253,-0.0204096377208 +1,0.0289488907993,0.502429878967 +1,1.80832606252,0.338069683138 +1,0.709676123989,-0.72627869976 +1,0.554195530254,-0.408857644818 +1,0.672154594539,-0.837130766017 +1,0.910190199695,-0.230150284377 +1,2.1763310944,-0.163987588175 +1,1.47356255941,0.159721121436 +1,0.392633504766,-0.145216415272 +0,1.03304897656,0.0634573165647 +1,1.7556439996,-0.48515890695 +1,1.16884797384,-0.191926737235 +1,0.179451810874,0.126270127203 +1,0.802503199279,-0.442407846091 +0,-0.511532766628,0.859746094473 +1,1.932704759,0.331201030093 +0,-0.766213999421,0.489217999537 +1,0.419021117866,-0.187843254439 +1,0.80508812329,-0.193308999673 +0,-0.938836831682,0.105077295498 +0,-0.830553381265,0.644273771709 +1,0.517449006758,-0.212462998134 +1,0.618230750185,-0.378355868079 +1,0.0197754769003,-0.444546847049 +0,0.733163084017,0.364748758566 +1,-0.257210152825,0.284990467327 +1,1.26119742295,-0.773220164941 +1,0.140699997257,0.382469340037 +1,0.162334688471,-0.0772397068433 +0,-1.00300419093,0.270257676065 +0,-1.05664428025,0.396727118418 +1,1.59191403287,-0.356176170341 +0,0.531711232175,0.560183862336 +0,-0.752448749334,0.876054595218 +0,0.538265596579,0.687199394595 +1,1.16114781029,-0.765075004928 +1,0.294684655795,-0.155255457173 +1,2.10858293816,0.438530781328 +1,0.779195491698,-0.194651353172 +0,0.0780547402164,1.39810953906 +1,1.54369882338,-0.146754742776 +0,0.391556430178,1.01332739458 +0,-0.377115862001,0.606688685982 +1,1.46580144618,-0.203703172544 +1,1.95401860437,-0.370339426282 +0,0.0688364463226,0.950589456773 +0,0.908399842355,-0.247629132834 +0,-0.106680841268,1.10200193796 +1,1.02219489487,-0.526647873373 +0,0.0330705706119,0.97442633621 +1,-0.190483018649,0.277561007042 +1,0.510450610805,-0.0958574247186 +1,-0.0713569296153,0.30988254514 +0,-0.848999403924,0.729133890941 +0,0.565801657576,1.02141151156 +0,-0.754964642002,0.45750807598 +0,0.629116889676,0.890932684749 +0,-0.994270149559,0.858000165021 +1,2.27488160618,0.331681574879 +1,1.29916493847,-0.543097969797 +1,0.478874600551,-0.272410334756 +1,1.60199406025,-0.0436429426239 +0,0.656735557617,1.05496841772 +0,-0.768533849414,0.351782309413 +0,0.632559322563,0.524577761949 +0,0.414710784723,0.724253180781 +1,1.71977630013,-0.236238285152 +1,1.11447156324,-0.607484261996 +0,-1.02262265738,-0.00662355147257 +1,0.613067826213,-0.116061348243 +1,0.772445086919,-0.620551908934 +1,1.45903539349,-0.392173656974 +1,0.612299299083,-0.257973513983 +1,0.526262126355,-0.485241945015 +0,0.550846011717,0.788707502263 +1,-0.305749415192,0.0380523825016 +1,1.0848592877,-0.594515644614 +1,2.21252786735,-0.371659798903 +1,0.0449005357731,0.805192062235 +1,1.39295617542,-0.547609793582 +1,2.28975130364,-0.112947366411 +1,0.518237769115,-0.513430422195 +0,-0.631473414698,0.878176751797 +0,0.370756174974,1.08411726795 +0,0.667907792807,0.524165228363 +1,1.05432388886,-1.05423094813 +0,-0.0306596666075,1.24172460985 +1,0.248602466299,0.309667951323 +1,1.27428538243,-0.101049508974 +0,0.563458185347,0.58424237169 +0,1.02095000649,0.255407951149 +0,0.0771494816131,0.659334715995 +0,0.478798742001,0.857551330599 +1,1.32340286869,-0.422952710962 +1,1.78435427003,-0.265603594712 +1,1.62658124399,-0.0251941816982 +1,1.98846325784,-0.0769719782524 +0,0.316672299728,0.921241439449 +1,1.1843940916,-0.481500248625 +0,0.48650205636,0.953424070147 +0,-0.372133456176,0.742665478789 +0,-1.29605242226,0.308079430412 +1,0.475846625196,-0.49843356497 +1,0.174132136766,-0.119844509642 +1,1.37748784034,-0.640219250042 +1,-0.0497133580478,0.315765306478 +0,-0.787633630536,0.488407405586 +1,1.71056179158,-0.206460354658 +0,1.25327306223,0.383290400723 +0,-0.598024494209,0.453424818969 +0,-0.678192675646,0.740062163975 +1,0.0946787904625,-0.0434099208578 +1,0.327743636717,-0.226145751531 +1,2.02303576716,0.0853368341106 +0,0.0933683823459,0.935470369355 +1,0.109483216343,-0.244968166056 +1,2.12447044925,0.333126834021 +1,1.96845842568,0.13731991724 +0,0.0322383523773,0.763030260618 +1,1.44547004523,-0.160478719321 +1,2.15161254406,0.0116058521898 +1,2.0085565298,0.430371187376 +0,-0.275338462344,1.57399755925 +1,1.76160998791,0.0344108846974 +1,1.73877293144,0.598600666122 +1,1.18628190853,-0.564072274577 +0,-0.476232000679,0.473856600504 +0,-0.146354638012,1.21811904475 +0,0.846606692593,-0.0959119878782 +1,1.91744662516,0.272395596894 +1,0.478649291355,-0.643646632368 +1,1.64471753786,-0.22852298811 +0,0.104399377178,0.982309786877 +0,0.435053090541,0.859010753141 +0,0.415483247836,1.15706948638 +0,1.08171970051,0.846308866693 +1,0.541372215092,-0.15939225543 +1,2.20492162838,0.121194117242 +0,-0.715426039465,0.727729460773 +0,-0.376455179252,0.919085509019 +0,-0.607763221958,0.986151979733 +1,1.2705150227,-0.719978446188 +1,0.367283658893,-0.352431963603 +0,-0.405867968279,0.532250198784 +0,-0.438995784432,0.725246377203 +1,0.956990136348,-0.39919456103 +0,0.16891448703,0.79886072597 +0,-0.909061368658,0.686269768413 +1,0.055139137132,-0.446583346702 +1,1.60575196688,0.184671839417 +1,1.8394591074,-0.291117482711 +0,-0.626147560527,0.283810706006 +1,0.261509788256,-0.0167194519115 +0,0.944153237795,0.403746392331 +0,0.16780185736,0.692233429584 +1,2.08137416776,0.369986107359 +0,-0.455717030935,1.28834277784 +1,1.36209734433,0.0704641116623 +1,1.46870496982,-0.460109131584 +0,1.15257904591,0.564169285882 +1,0.279862951145,-0.454718446508 +1,0.0637773856373,-0.159886700715 +1,1.08056454905,-0.249289568368 +1,1.4717314857,-0.123501539849 +0,-1.0120068534,0.141303641009 +1,1.32882888161,-0.509066883489 +0,0.0935643394823,1.4412946971 +1,2.25607026442,-0.0454000929853 +1,0.16751272913,0.375980791434 +0,0.727910035969,0.60420265023 +1,0.0625885325236,-0.199822237738 +1,0.171706823351,-0.59420836059 +0,-0.660100347865,0.357607015701 +0,0.636648626929,0.132096173236 +1,0.109577181962,-0.0718152016539 +1,1.71198552078,0.139514312671 +0,-0.884290746181,0.87775213663 +0,0.854460496187,0.431410565998 +0,0.922315918202,0.319721091324 +1,2.01372918984,0.503543773249 +1,1.98349787081,-0.19057775872 +0,0.280882155675,0.810858769912 +1,-0.159032867699,0.0616118819309 +1,2.06306784421,0.136994500058 +0,0.822510299316,0.0769158025817 +0,-0.653384418499,0.180877036024 +1,1.8208536538,-0.302843014715 +1,0.344115196889,0.010046687081 +1,0.38411994008,-0.607368360294 +0,0.260587484606,0.683196144605 +1,1.42881870469,-0.432307891126 +0,-0.0891575433765,1.09860000244 +0,-0.903234746131,0.31813795135 +0,-0.377350070854,1.1490518559 +1,0.986634874953,-0.233835829429 +0,-0.61440446235,0.494402477526 +0,1.19072669857,0.238922359123 +1,1.41496133464,-0.600248356767 +0,0.923283217976,0.181654109752 +0,0.0185899886364,0.681138139958 +0,1.22541353252,0.606346853953 +0,-0.92271603443,0.838317841106 +0,0.245606148529,0.71892586387 +1,1.34227494426,-0.339729572834 +0,-0.99715087654,0.212004078375 +0,0.574567209814,0.537294958819 +1,0.0150378620003,0.754880461551 +0,0.625906062848,0.829206432185 +0,0.984106643802,0.685170847007 +1,1.99954106177,0.346479291246 +1,1.39942035718,-0.613749574043 +1,0.7743610733,-0.369017859447 +1,0.726711775437,-0.650223376685 +1,2.01543465928,-0.121227771742 +0,0.882187239518,0.659854172141 +0,1.15293287286,0.211115313325 +1,1.67605837734,-0.291036930546 +1,0.679262374267,-0.289500085924 +0,-1.2159177435,0.285085741978 +1,2.21431054749,0.448293980994 +0,0.91947929723,0.0928231590677 +1,1.27320895087,-0.520021109415 +1,1.55632733169,-0.302337383673 +0,-0.216011116211,1.16175621092 +0,-0.11542881595,0.779218724931 +0,-0.375198741457,1.1706476906 +0,0.846295716777,0.647512076037 +1,-0.227895230994,0.391084643147 +1,1.85753401986,0.547605249544 +1,0.780027672392,-0.455338765588 +0,-0.559357525444,1.12091990248 +0,-0.374015908064,1.37059695831 +0,-0.690151355699,0.30950587516 +0,-0.804773045946,-0.127408740551 +0,1.03219426962,0.571317970656 +1,-0.144834528832,0.0509049911771 +1,1.81354938949,-0.153971517933 +0,0.00694767125989,1.12277196815 +0,0.583829285041,0.169321809839 +1,-0.134062907851,0.163751969868 +0,0.920582831399,0.787233811311 +1,1.5825369239,0.164729626251 +1,2.05380633909,0.671980417234 +0,0.626400965203,1.0086938967 +1,1.97860492301,0.0274263552601 +1,1.26055816229,-0.486257379918 +0,0.34174109915,0.796259464519 +0,-0.567918424408,0.161957184065 +1,0.316528233668,-0.173111122028 +0,0.219853555329,1.16841259795 +1,2.33849405067,-0.259640767751 +0,0.966522467604,0.122696612481 +1,1.9224129324,0.496878688556 +1,1.78841381294,-0.450232669546 +1,0.539340410705,-0.105158696928 +0,-1.50550888553,0.2913044156 +1,0.833391928228,-0.58765728198 +0,0.09224964112,1.04882273255 +0,-0.940873542725,-0.141516221604 +0,-1.01360326786,0.212755871797 +1,0.144744962084,-0.51680675362 +1,0.441737741641,0.0874851204532 +1,0.82212722235,-0.434598312084 +0,0.785392633347,0.685509407796 +0,0.0482678115029,0.971539849155 +0,0.973367818217,0.458099723785 +1,1.91130356822,-0.23203507225 +0,-0.53938122531,1.07573887402 +1,1.08056312832,-0.32457684627 +1,1.81972665189,0.55161990961 +0,-0.803103657986,0.826450253442 +1,0.691063710946,-0.293112529025 +1,1.65380378637,-0.372643076084 +0,-0.619105593414,0.780906828554 +0,0.556571793033,0.818545985085 +0,-0.649794812467,0.489283278179 +0,0.919979931695,0.747300633081 +1,0.0141728615224,0.0994934974372 +1,1.15698125515,-0.607705575434 +0,-0.32294949975,0.910768363184 +0,0.539662260367,0.666922132071 +0,0.848138372614,-0.0057092851549 +0,0.394483126489,0.730351065107 +1,0.157588428835,0.0142366967314 +1,0.339174971004,-0.201525461239 +1,1.96378000652,0.553822653857 +1,1.04557555103,-0.545486463761 +1,2.25922523815,0.369654420617 +0,-0.0639863615193,0.949404921907 +1,-0.311516940482,0.359218244065 +1,1.50376937829,-0.479490649209 +0,0.0180729356736,0.54503726683 +1,0.0654533426204,0.238362412128 +1,0.197151128004,-0.322739835047 +1,0.367946008823,-0.432177930619 +0,0.175180071469,0.793181314175 +1,0.0202773677712,0.340055533067 +0,-1.1612702176,0.917048673649 +0,0.651763908371,0.898947492673 +0,1.1827468207,-0.117093563847 +0,-1.2757070801,0.0747388490425 +0,-0.757966832459,0.217452622164 +0,0.46410940749,0.95136337674 +1,0.606239401262,-0.632802862351 +0,0.880765797071,0.308077997214 +1,2.19607689693,0.572154587629 +0,0.776052516977,0.411077080308 +1,1.62189453897,-0.126154267913 +1,1.20995099826,-0.332899927349 +1,1.80437922391,-0.264582889195 +0,-0.575366562719,1.04320675399 +1,1.12998100306,-0.520655616682 +1,0.55288151428,-0.755193104967 +0,0.705418213699,0.895510272041 +0,0.472731142722,0.617563719523 +1,2.32111577233,-0.0852820858455 +0,-0.341271697557,1.03814780114 +0,1.02269532251,0.515395510406 +0,1.25358604657,0.178337419799 +1,1.96629088071,0.333013557729 +0,-0.757083444316,0.0148881699723 +0,-0.429302806082,0.434115561455 +0,-1.51194834031,0.155813483217 +1,1.77975597261,0.0445267888499 +1,0.0171049045117,-0.0517674565102 +0,-0.504926357943,0.4625038293 +0,0.89619434177,0.381440445542 +1,1.31459996767,-0.233776579009 +1,1.12764919251,-0.410565506969 +1,0.144949472051,-0.663216845723 +1,1.76000211182,-0.0938600336741 +1,1.84769715553,0.424798777221 +1,1.26774951076,-0.437312040107 +0,-0.286265291826,0.427298652195 +1,2.36795671538,-0.0487042203391 +0,-0.820657602307,0.57601944679 +0,0.760289601897,0.914155071635 +0,-0.799155149978,0.557630447448 +0,0.959805061656,0.799845922444 +1,0.874328297551,-0.675409415404 +0,-0.191316491128,1.22875096975 +0,-0.5832453736,0.465921898308 +1,0.151275273738,0.295909430348 +0,-0.771604145479,0.302613430584 +1,0.00584442760234,0.240195347513 +1,-0.0289485567698,0.437821464757 +0,0.498636213786,0.428638383862 +0,0.635955528162,0.259298240109 +1,0.0656916993046,0.173608012454 +0,-1.08450924797,0.530598491609 +0,0.830046105192,0.315189867726 +1,0.68017645325,-0.420648289572 +1,-0.0377194539925,0.0459774032874 +0,-0.891411240977,0.442528519373 +1,1.76667050168,0.0325618953308 +1,1.17485950176,-0.447810229966 +0,-1.13232792437,0.446955041584 +1,2.26995858608,0.395655817646 +1,-0.0556772656246,0.194530892784 +1,-0.385743325576,0.0268176586311 +0,0.273332088038,0.97727663524 +0,-0.100319467837,0.662836994208 +1,2.15016969155,0.230657905529 +1,2.33591522425,0.085062839522 +0,0.811622587529,0.87306016416 +1,1.83467395417,0.203768785724 +0,0.356123040513,1.05621743775 +0,-1.15951222225,-0.164969463698 +1,1.49221845429,-0.470322127845 +0,0.311303273942,1.51560378094 +1,0.82475271212,-0.207278761424 +0,-0.447247494309,0.600213744835 +0,0.81022353782,0.392317600073 +1,0.279297856406,0.347294202611 +0,-0.712674621058,1.01297679627 +0,0.471043274403,0.772509946101 +1,0.703954470379,-0.643979119588 +1,0.186708334406,0.567793507812 +0,1.11073471318,0.45847492224 +0,0.662659109362,0.429675256807 +1,1.62338103861,-0.176624140104 +0,0.575096790558,0.59605271376 +0,0.593163926708,0.635184388025 +1,0.0661665705611,-0.575234366824 +1,1.9907057263,0.0849589289282 +1,0.911849484562,-0.454184380708 +0,-0.678662278665,1.02370406239 +1,1.73083481027,0.332967152486 +0,0.446177070538,0.708734956996 +0,0.63422304328,1.17509160068 +1,1.78081638226,-0.488593149313 +1,0.845475055713,-0.570827047249 +1,0.78505330855,-0.681983997123 +1,0.439770953624,-0.206414346582 +0,0.28077753627,1.00946862873 +0,-0.374405678751,1.08289156356 +0,-0.460704925439,0.926050401135 +0,0.877283009236,0.316465203935 +0,0.505214962153,0.803815778995 +0,-0.738203664876,0.579170313874 +1,0.194859647355,0.919223313593 +1,0.870665609209,-0.309618795174 +1,0.680396555879,-0.109566694361 +0,-0.774151254807,-0.0295154953685 +1,1.18645194714,-0.815730363768 +0,0.90167311314,0.205595569766 +0,0.577496403291,1.00030376684 +0,0.352007894286,1.02951091082 +1,0.513559208349,-0.0639618738943 +1,0.189038057323,0.242816958844 +1,0.262808815581,0.0420099886143 +1,0.0685443571208,-0.0970366275154 +0,-0.279783821528,1.3005440223 +0,-0.95238986654,0.397332207055 +0,-1.05815975211,0.167219791783 +1,0.261394871185,-0.622394190395 +1,0.0594422871143,-0.0719364723839 +1,0.284281736268,0.242877266061 +0,0.359597574333,0.961097891802 +0,-0.0200960173591,0.693008826459 +1,1.93776268427,0.0691232243685 +0,0.936617769696,-0.0190051984026 +1,0.821828108765,-0.159861140034 +1,1.14227599787,-0.460569481499 +0,-0.329516459445,0.778072788175 +1,2.10744827945,-0.252703705719 +0,-0.790184770019,1.05092239075 +0,0.0431653685216,1.01708390361 +0,0.708331313499,-0.0810864525987 +1,1.02995312504,-0.315574183362 +0,-0.72850121692,0.775739498912 +1,1.79727103616,-0.294056759506 +1,0.770890464907,-0.255218848894 +0,0.495233516474,0.812876888783 +1,1.66123624799,-0.635636273018 +1,2.29412671161,-0.0397112867719 +0,-1.38228929412,0.165081146383 +0,-0.762704014285,0.393407629904 +0,-0.229743254965,0.978413311217 +0,-0.429193142829,0.570842439972 +0,0.23153145595,0.947703753268 +0,0.825362127321,0.262146106021 +1,1.1090482482,-0.652030696972 +1,0.778461193908,-0.676670375264 +0,-0.377378659475,0.724883764415 +0,-0.918040002115,0.514604201675 +1,1.81910152022,-0.212315286393 +0,-0.935764319245,0.183323086987 +1,1.81974826825,-0.0401499880066 +0,0.663366989005,0.344102274426 +1,1.67637718796,0.682296388786 +0,0.196909030733,1.53759412706 +0,1.20938470599,0.214824249689 +1,-0.00449388567614,0.32608838469 +1,1.15993693124,-0.620310583372 +1,1.6438856924,-0.0877447002028 +0,0.0869114971771,0.891303240377 +0,-0.113268712779,0.705175113272 +1,1.28942334444,-0.442314956267 +1,1.71799795213,-0.0543709696624 +1,1.60577698049,0.0565046194895 +1,1.94263447879,0.28593042439 +0,-0.667831581255,0.835772934794 +1,0.980452096632,-0.416930533506 +1,0.6759980408,-0.454919158228 +0,1.07594422098,0.468416127193 +0,0.39882929847,1.01697687923 +0,-0.934510095081,0.638710801133 +1,-0.121699505456,0.135065891457 +0,-0.320191833092,1.35191941364 +1,0.667814789712,-0.486065560101 +0,-0.862245559876,0.157641533637 +1,0.532225903189,-0.416282860752 +1,1.16233539579,-0.403216707937 +1,0.664223729891,-0.352037616658 +0,-1.12150561593,0.229212935709 +0,0.240102435149,0.992430747341 +0,-0.382399970941,1.26777064916 +0,0.439586085338,1.05614508132 +0,-0.317817305128,0.775433136806 +0,-0.544250544483,0.359040455642 +1,1.74789394204,0.159681075115 +1,1.73593841639,-0.34686072281 +0,1.05195616534,-0.0185852698695 +0,0.779011120668,0.0894286022269 +0,0.84458371637,0.239949247646 +1,0.388796721295,-0.257634328168 +1,0.99859178188,-0.644110307912 +1,0.67201556945,-0.308984666889 +0,0.311517806515,1.30787909766 +1,1.85069629417,-0.392599825769 +0,0.285936144823,0.764250468027 +1,0.468762168563,-0.226650536007 +1,0.23254312321,0.377369860805 +0,0.444452018825,0.818458782546 +1,2.09476305432,0.555936956548 +0,-0.550163691887,1.08215523214 +1,0.816242333955,-0.480307272041 +0,0.846249592558,0.592119019296 +0,0.93736217329,0.428406574509 +1,1.00419633416,-0.403740858596 +1,0.512264531283,-0.175148009871 +0,1.07404589255,0.477892075611 +0,1.09150571036,0.656544413635 +0,-1.2197231902,0.222557112884 +0,0.953638198653,0.147435161116 +1,-0.118243310047,0.370293397426 +0,0.10283153503,1.17000302324 +1,2.13155063309,0.362214530304 +1,0.164317736775,0.250710626812 +1,1.92087101047,-0.169140419254 +1,0.187468047318,0.364864972353 +0,-0.695673828306,0.404246628679 +1,0.291191877914,-0.470714393133 +1,1.80537766434,-0.234448922338 +0,-0.339787190322,0.803375857 +0,1.16434660159,0.795610712389 +0,-0.508947085001,0.4652482084 +1,0.108762743381,-0.0562501062 +0,0.69180331024,0.735539644682 +1,1.56504254382,-0.019829792438 +0,0.812372787259,0.345698688502 +0,0.267929911443,0.908420609187 +1,0.391393124531,-0.243560459175 +1,0.307560873377,-0.228427283488 +1,0.197660323369,0.453516815541 +1,2.08621832955,0.110255949421 +1,0.736134299383,-0.465982249548 +0,0.800124982736,0.776414083891 +1,1.44675361735,-0.222242326497 +0,-1.44058230136,0.0743932104649 +1,1.72505461214,-0.344446168328 +1,1.93851600407,-0.140907083578 +1,2.02526061179,-0.0776266418838 +1,1.35801082873,-0.379367741198 +1,1.91454194211,0.716369476658 +0,0.213445258111,0.545519163436 +1,1.26020605301,-0.529487483195 +1,0.231814302901,-0.102606771865 +0,-1.17876426167,0.67775821274 +1,1.49388852318,-0.608533079166 +0,0.541495046855,1.31199000327 +1,1.78688871551,-0.476004864883 +0,-0.681317721784,0.251170973215 +1,2.53271595601,0.552806893211 +0,-1.47167188616,0.231281151994 +1,2.00641919153,-0.384866513301 +1,2.26706950543,0.161826814349 +0,0.977315771979,0.0902784000894 +0,0.871298442416,0.426362878084 +0,0.908738268021,-0.0107061724118 +1,1.75204081518,-0.0494888259426 +1,0.928991015542,-0.445457602134 +0,0.121535427326,1.20896876221 +1,1.78644079042,0.673590601463 +0,-0.891356630533,0.92616437302 +0,0.284529271159,1.19761264095 +0,0.104229857963,0.699187880695 +1,1.39385387892,-0.403677141728 +1,0.814234981894,-0.697010309161 +0,0.131411183094,0.86594237771 +1,1.97087380929,0.446343992173 +1,1.14034734769,-0.520029131443 +1,1.84912074555,-0.589905707566 +1,0.225313392895,-0.234374048392 +1,1.21597422492,-0.372987164677 +0,0.959527683853,-0.0103206922652 +1,1.04267767685,-0.640613862563 +1,1.72229976472,0.426664895301 +0,0.767844356926,0.905760327051 +1,1.59775164295,-0.905640051152 +0,-0.432369142491,1.09011256489 +0,0.0933431566397,0.760572123023 +1,1.45972590142,-0.278730755345 +1,0.617843973226,-0.505756868855 +0,-0.897029346234,0.310030006194 +0,-0.47299440247,0.652605213628 +1,0.599827574416,-0.274002314853 +1,0.0931090522929,0.0943466205526 +0,0.88707854764,0.625473326287 +1,2.15314823,0.293769907225 +1,0.204514230748,-0.423329494363 +0,1.32695450868,0.50528007037 +1,1.57208296332,0.0118261292784 +0,-0.244194310822,1.08185753691 +1,-0.057878854695,0.246033659694 +0,0.435479063463,0.934228255954 +1,0.200164928243,-0.288702813269 +0,0.151470867307,0.697298477787 +1,1.83637354557,0.25502333468 +1,1.22776850682,0.111693326555 +0,-0.321303763481,1.1035666871 +0,0.257818356563,1.01279889481 +0,-0.642307690568,1.13822151509 +1,0.84400662416,-0.73974731489 +0,-0.879626444268,0.626827787333 +1,0.892995352372,-0.701186544962 +1,0.593258545249,0.0475856921856 +0,-0.282136729126,1.06010389639 +1,0.622709935507,-0.393870192335 +0,0.551346664155,0.904901999519 +1,-0.0923293430237,0.540892811931 +1,1.85731696346,0.127811990162 +1,0.696417567569,-0.575030609036 +0,-0.735162199535,0.74553547244 +0,-0.152300255194,1.1639758521 +0,0.573120953343,1.15236539567 +1,1.35456249433,-0.644131931533 +1,1.1384334659,-0.431710164188 +0,0.0188944919724,1.09524936174 +1,1.41441103638,-0.591111139654 +1,-0.318271460806,-0.0849535169742 +0,-0.685800748914,1.03660265567 +0,-0.125229312046,0.92908620047 +0,-0.54273562312,1.01149714111 +1,0.679153028111,-0.394883220569 +0,-0.289150337947,1.01177179883 +0,1.05496894194,0.835437321915 +0,-1.18104470401,-0.0113727395798 +0,0.946297212804,0.199776507025 +1,1.81967835272,0.348259520976 +0,0.584181837015,0.78912089273 +0,-1.28816143607,0.166808159239 +0,1.09266687639,-0.133794309233 +0,0.568838176832,0.816233772638 +0,0.840383857119,0.417097415771 +1,0.944617267942,-0.491531394792 +1,0.101632544137,0.0306504011587 +1,1.14743319647,-0.626443964626 +1,1.78532957388,0.373526551227 +1,1.40574200458,-0.280941035467 +0,-0.892149773736,0.661107376548 +1,1.1779681383,-0.38451940734 +1,0.21537472948,-0.198896450505 +0,1.10742173647,0.297366146877 +0,-0.135505262322,0.708209066006 +1,1.80507550169,-0.33501331287 +1,1.78538846388,0.189261597663 +0,-1.26562059901,0.469376326248 +1,0.129262690946,-0.0843954828534 +1,0.777091170322,-0.453599004204 +1,0.122546430259,-0.0259489371002 +0,0.101026070378,0.698733986491 +0,-1.13039568935,0.0680846873845 +0,-0.066114292551,0.687895882548 +0,-0.897803940566,0.565393872475 +1,1.54768402545,-0.448781564726 +1,0.682829299188,-0.408293775782 +0,0.649623800463,0.658933716566 +0,-0.944273187977,0.0726317944895 +1,1.8901247557,-0.454601330637 +0,-0.0329976680365,0.960096429181 +1,0.303129572066,-0.452888359487 +1,2.02466697639,0.29137543399 +1,2.24202161689,0.302435992081 +0,-0.896955138739,0.439856443268 +0,0.643670466017,0.882478901348 +1,1.53583884956,-0.428976243133 +1,0.131945636221,0.594442751902 +0,0.749141542302,0.524389635922 +0,-0.215796492305,1.41139223548 +0,0.726295253405,0.475433312388 +0,0.478353648924,1.27997897645 +0,-0.406630383297,0.976084107764 +1,1.86434467621,-0.563898817636 +1,1.68794393823,0.145521621697 +1,2.17292424102,0.563425927164 +0,-1.03521665952,0.621085935679 +1,2.06029016448,0.333354778956 +0,0.884965460556,0.635640571134 +1,0.833107628031,-0.67350521353 +0,-0.197475020511,1.15884273748 +0,-0.21808843737,0.904016242762 +0,-0.83708432374,0.581625524054 +1,0.0557679351298,-0.0889670778011 +0,-0.908993255549,-0.014186689186 +1,0.190567872543,0.472073765712 +0,0.971168631449,1.1534777608 +0,-0.639303420226,0.504156245009 +0,-0.206657917023,1.49253401124 +0,-0.701447174074,0.195238828544 +1,0.431104733734,-0.137021305248 +1,-0.335820151894,0.110286356483 +0,-1.04287995133,0.263033579532 +1,1.92820096462,0.472799181968 +1,0.0776312721033,0.0970174316045 +1,-0.0225399097113,0.565175904931 +0,-0.229324468224,1.09209623947 +0,1.06122624178,0.246731702741 +1,-0.224183269015,0.436300625566 +1,-0.0802558157155,0.306094222808 +1,1.13164780677,-0.321421674099 +1,0.70012050123,-0.352684572239 +1,-0.158904940885,0.0552951777245 +1,2.11683191357,0.36298602705 +0,-0.0488222239444,1.0344920777 +1,1.23045289068,-0.337233760962 +1,0.128153793988,-0.290878746169 +1,0.098495078044,0.540942347555 +0,-0.725307660723,0.733587959064 +0,-0.227792967258,1.16688946367 +0,0.451768749339,0.822830436963 +0,0.519401647963,0.752446603798 +1,1.33459735465,-0.431728088951 +1,0.39490911367,-0.224790547035 +1,-0.0776549832441,-0.0469320597203 +0,-0.356036332031,0.841249052888 +1,0.978716558074,-0.561810381568 +0,0.586688993678,0.394564466567 +1,0.974075380558,-0.669402860222 +1,1.21632856992,-0.375979501979 +1,0.624673410092,-0.569228078908 +0,-0.692072803909,0.593355334329 +1,1.39189197521,-0.24686188727 +0,-1.00314418053,0.649912245029 +1,0.140411148222,0.14057736681 +0,-0.827334239107,0.473586401657 +1,0.956332503043,-0.333522685698 +0,0.775927531981,0.452561460313 +0,-0.445649572542,0.96216818237 +1,2.10793743906,0.587169793682 +0,1.11290167733,0.372657639047 +0,1.13850029278,-0.118772457747 +0,-0.336543155636,0.875497068521 +0,-0.323282376209,0.612561253074 +0,-0.792861395103,0.447336239807 +0,0.768995675154,0.539215135479 +1,1.5053716209,-0.17858083456 +1,1.64280519526,-0.6510572569 +0,1.08134625223,0.277195004077 +1,0.27093295397,-0.408760731821 +1,0.737814350727,-0.397715912053 +0,1.01761907538,0.54464998665 +1,0.729803696328,-0.574427222112 +0,-1.09434243046,0.184554089994 +0,-0.132573842188,1.05182058944 +0,-0.0565779830346,1.14845795581 +0,1.07479503787,0.665879624893 +0,0.823972057942,0.725074809821 +0,-0.240691948978,0.614333126285 +1,1.32560811364,-0.565174183507 +0,0.00251863691205,0.717447201862 +0,0.603722785116,0.99861122902 +1,1.24550875918,-0.534327668078 +1,0.635641537118,-0.509981845441 +1,0.00966642983364,0.777235047535 +1,0.43358835591,-0.246571923525 +1,1.87891768394,0.0259710085074 +1,0.313088976363,0.302018022353 +1,1.39941475043,-0.181912111345 +1,0.296068211017,0.367741384944 +0,1.14244675772,0.385543661965 +0,0.94852242946,0.565521052484 +1,0.0200073468235,0.11923449305 +1,2.13495448986,0.309606080927 +0,1.16216351282,0.18198100552 +0,0.0604187498966,1.12284683972 +1,1.60811618459,-0.758517670987 +1,0.332321875121,-0.129043073167 +0,-1.05331084398,0.875204721265 +1,1.20422456213,-0.666566709295 +1,2.16124422224,0.532255810953 +1,0.628672219867,-0.291031270421 +1,2.04060699089,0.162377313855 +1,0.207560911512,-0.405895369317 +1,0.173650941443,0.521163981676 +1,1.37098734442,-0.0789245055061 +1,0.966577502022,-0.581273869829 +0,-0.738881517502,1.4319097349 +0,-0.629944501065,0.203753594405 +0,0.304334154129,0.696897277167 +0,0.46508452135,1.33380353339 +1,1.94390967392,0.496709724106 +1,1.51831677523,-0.135912041838 +0,0.949266659719,0.534716275327 +0,-1.28510048451,0.509200319283 +1,0.879514721517,-0.281780083595 +1,0.942022800713,-0.684053115746 +0,0.244463648292,0.560631877589 +0,-0.839315733705,0.763287156847 +0,-0.991102600676,0.118339731828 +0,-0.745178211351,0.73549444627 +0,-0.0224058812889,1.14096277238 +0,0.194199906045,1.48528158624 +1,0.0455613861527,0.311179751792 +1,1.39138273034,-0.313556354603 +0,-0.686997915968,0.572013822872 +0,-1.27942924096,0.627830600033 +0,0.0819665730613,0.841982089884 +0,-0.539533161558,1.03515560459 +1,0.240336491134,0.063716101892 +1,-0.028309878294,0.650960783159 +0,-0.175549197533,0.745272793904 +0,0.116511625413,1.1348400538 +1,1.5014969226,-0.374555933136 +0,0.589366569729,1.26868847159 +0,0.0533759299389,0.927852290121 +1,0.270890382927,-0.248327801141 +1,1.89673628694,0.492496199061 +0,-0.481171742522,0.932187729036 +1,0.190636196255,-0.485745080488 +0,-0.141479003334,0.888315442392 +0,0.487375031769,1.00829589139 +1,1.4086309169,-0.621633471538 +0,0.350220530312,1.09661029079 +0,1.08636701221,0.587086490139 +0,0.0787025810551,1.12006081663 +0,0.645979650973,0.398987319447 +1,-0.0473545485976,0.590071320438 +1,1.59279650373,-0.180287480862 +0,0.866718674806,0.477979198976 +1,-0.107567033455,-0.17509565183 +0,-0.672379192448,1.05458840105 +1,1.7910936534,0.05681723625 +0,1.31826395983,0.234434233094 +1,0.207903508444,-0.124999749367 +1,0.737335177652,-0.265420064449 +0,-0.23997720835,0.979592714354 +0,0.618177018824,1.16291458621 +0,-1.50985818235,-0.0503852677651 +1,1.03019045699,-0.420764720637 +0,0.546318925035,0.701415220407 +1,0.415144672137,-0.203669602932 +0,-0.358952672315,0.94890601061 +0,-1.13929573919,0.39210114164 +0,-0.355407306599,0.990147762933 +0,-0.401972767785,0.917513712467 +0,1.06229318214,0.272398371472 +0,0.315165048581,1.06708922518 +0,1.30118533363,0.125186060669 +1,1.85281444077,0.729659511254 +1,0.464039108875,-0.618292122598 +0,-0.542593081091,0.771816100446 +0,-1.03913968313,0.660922661895 +1,1.05957990374,-0.629385521681 +1,1.10045627412,-0.625384295462 +0,1.01245157065,1.04230003707 +0,0.58693868668,0.910661576559 +0,-0.665886687753,0.776166239443 +0,0.359095921552,0.603669764956 +1,-0.0416839647159,0.406215771683 +1,1.9527142435,0.160103521971 +1,1.67865678462,-0.319965054117 +0,0.811224624155,0.651472513042 +1,1.71168970279,-0.0367914899249 +1,1.64631844912,-0.129426680818 +1,1.76535981122,0.0678026335233 +1,0.71465188095,-0.557002254201 +0,0.522395678676,0.504554207677 +0,0.954471360612,0.0773571202181 +0,-0.458795709431,0.606223618767 +0,0.398532692769,0.901573062604 +0,0.862466948557,0.517601668319 +0,-0.472227715772,0.984898091144 +0,0.985790734918,0.410151333604 +0,-0.4303643702,0.415780830794 +0,0.947131093294,0.461142873442 +1,1.59709076047,-0.153807577522 +1,2.04260974139,0.362895493023 +0,-1.02649714481,0.227739692931 +0,0.693361677864,-0.203407939208 +0,-0.961555633365,0.0407348159465 +0,0.416242438141,0.687491152466 +0,-0.298714605304,1.22324603764 +1,0.533520555768,0.175967230598 +0,0.428936280999,0.802651908613 +0,1.19547439329,0.292389570434 +0,0.436092727522,0.409694194356 +1,0.914060038566,-0.726797614165 +0,-0.742831413674,0.16105623127 +1,1.42955798518,-0.302241245811 +0,-0.228091437,0.955249479571 +0,-0.171858460235,1.00153188714 +0,0.663078851504,0.585105310621 +1,0.359783604557,-0.266661169626 +0,-0.896205510821,0.597438790104 +0,-0.545849812513,0.759234841112 +1,0.454873926452,0.417537473878 +1,1.4540925138,0.0113752235938 +0,1.16430946601,0.440915680587 +0,0.047317920487,0.827144695781 +1,1.18497935961,0.0146040243352 +1,1.42880197308,-0.476858229817 +0,-0.893498744996,-0.0138672199315 +0,0.291831005389,1.06009338234 +0,-1.21698893692,0.140797331714 +0,-0.993557798264,0.0627024570494 +0,0.335577114491,1.26742267993 +0,-1.05591714795,0.673094411459 +1,1.91418440369,0.485324063368 +1,1.77971161864,0.142890944267 +1,0.987983282085,-0.672577434935 +0,-1.17351569998,0.00929320131287 +0,-0.974911478099,-0.219787837349 +0,1.02019897206,0.802863441437 +0,-0.439410734625,0.617638366237 +0,0.477236007752,0.944931885597 +1,0.986165121307,-0.221236556468 +0,0.143401437616,0.933104570206 +1,1.47873773825,-0.30255329717 +0,1.0313217123,0.0502096673257 +0,0.758415588678,0.848203737946 +1,0.0411377764981,0.508457651962 +0,-0.649074909041,1.17145248512 +1,1.28511883154,-0.549391437523 +0,-0.630867781748,0.866277228613 +0,0.56896114841,1.07300308021 +1,0.670156848482,-0.521305384689 +0,-1.02603244849,0.115821740216 +1,2.10917395585,0.258976075713 +1,0.552785517161,-0.370097581047 +1,1.79917387528,-0.325065270167 +1,1.53378554177,-0.316977052278 +1,1.59944244425,-0.752055979563 +1,0.211237458754,0.0285680750596 +0,0.699999557994,0.647550123783 +0,-0.527775496772,0.707121708165 +1,0.201990480001,-0.324451689795 +0,0.430225065841,0.844107519403 +0,-0.246642946191,0.830163549525 +1,0.929889973504,-0.405308268691 +0,0.258253114858,1.36056520855 +0,0.0680936468438,1.01316492194 +0,-0.118541257472,1.27532763526 +1,1.85457178059,-0.132983516386 +1,1.56846651824,0.0240604127897 +1,1.18493334684,-0.703246817563 +1,0.126708404729,-0.228222199305 +1,2.18590859776,0.171499430362 +0,0.476898016214,0.851119588734 +1,2.00396878057,0.51615046374 +0,0.221463050174,0.350582454239 +0,0.683233849841,0.894776269311 +0,-0.514948798364,0.899545960755 +1,1.48756333384,-0.377598923264 +0,1.03465389709,0.380290680579 +0,0.805643622334,0.42379945982 +0,1.08530638283,0.411413037845 +0,0.448746826745,0.916721586574 +1,0.34833284551,-0.0799859776592 +1,0.440474682914,-0.703905100443 +0,0.899802169339,-0.413938996398 +1,2.02237083802,-0.37160345319 +0,1.1377118536,0.800014736207 +1,2.00915673236,0.518892557677 +1,1.71014785777,-0.123585684778 +0,-0.884098217924,0.93164695578 +1,0.438218254787,-0.648941324151 +0,-1.28110935407,0.136905046531 +1,1.60968314661,-0.414458011874 +0,0.79714858362,0.647359111 +1,-0.00712992066225,0.295840658168 +1,1.78448707822,-0.373506401252 +0,-0.0272648085878,1.09778847903 +1,1.80711168784,-0.0888491374722 +0,0.635634122608,0.974534201301 +0,0.800076612485,0.0697702400479 +0,1.01877050409,0.263210495944 +0,-0.964403988177,0.536940249905 +0,0.161399210285,1.24388113024 +0,0.530280341452,1.16321111913 +1,0.100919227091,-0.21695685255 +0,0.892971987766,0.467592650653 +1,0.0598486805358,0.144499597451 +1,2.11693625241,0.271168794362 +0,0.868969187908,0.562543765071 +1,2.03386915694,0.206961183426 +1,1.42464549028,-0.170477691896 +0,0.772309767054,0.178574339311 +0,-0.688623186797,0.955125383569 +0,1.05896728458,0.539150742996 +1,0.301280575856,0.307875882474 +0,0.67775427515,0.355042902666 +0,-0.75823051679,0.854258228104 +0,1.02357800137,0.453342094463 +0,1.01019784228,0.562921645989 +1,1.63337942739,0.0269405925146 +0,1.13619212293,0.533763775404 +1,1.11904293503,-0.545067723872 +0,-0.713267220705,0.619031060818 +1,0.267630254955,-0.418865653239 +0,0.134125019491,0.973311356256 +1,-0.0367669324062,0.570495789039 +0,-0.509656565861,0.531503914912 +1,2.00368891664,0.227676358437 +0,-0.636648958267,0.267727952107 +1,0.299613549808,0.0301839521376 +0,0.843842608205,0.600227700599 +1,1.79430168577,-0.210805150406 +0,-0.618087263519,0.354233731846 +1,0.666060487761,0.0727811670847 +0,-1.29533468451,0.19875063545 +1,0.159458590831,-0.136410212611 +1,1.5441309817,-0.440601170178 +0,-1.24406392502,0.338843575593 +1,2.45530952088,0.128430966811 +0,0.576845666274,0.971990173053 +1,1.64517152988,-0.391178849062 +0,1.23256160256,0.228881511488 +0,-0.826289921402,0.642211607149 +0,0.291567360761,1.28586940177 +1,-0.0675090693886,0.264265414378 +1,1.17737503029,-0.379851789255 +0,-0.823618488665,0.463790231139 +0,0.360812821356,0.972513746365 +1,1.23600059163,-0.442205447563 +0,0.479020872102,1.26956364695 +1,1.72658178794,-0.426673028387 +0,-0.758125905632,0.687336075183 +0,-1.15171080102,0.792679358708 +1,0.572880992415,-0.507622351426 +1,1.91922976547,-0.149345547678 +0,-0.657429956907,0.98989461273 +0,-0.875773645413,-0.335605090839 +0,-0.464251498309,1.15133683408 +0,0.794197016263,0.557043509117 +0,-0.517245852496,1.17513468209 +0,-0.80755278183,-0.0452745975428 +0,-1.09864456557,0.251729870428 +0,1.12885525166,0.48457612396 +1,2.14187375098,0.508060521034 +0,-1.13514655092,0.267662873827 +0,0.373084298948,0.976773163235 +1,1.50873227161,-0.52043822422 +1,1.05336013862,-0.358177045038 +1,0.763436948238,-0.37024173655 +0,0.978689005807,0.780671189864 +0,1.07246935093,0.173405978084 +1,0.436202920979,-0.610133900682 +0,0.564301512267,0.744831762717 +1,1.93302320471,0.698291564974 +0,1.07310445805,0.614231838609 +1,0.208862954238,-0.158966914595 +0,-0.818741018893,0.140742493109 +1,1.667622173,-0.75930812645 +1,2.09933695045,0.599262882768 +0,0.973563567103,0.782062003432 +0,0.600912061365,0.0568633791119 +1,0.317351709777,-0.179787265261 +1,0.797844398722,-0.424830551997 +0,-1.26236591334,0.282125431644 +0,0.304493512737,0.857906408171 +1,1.61673831002,0.126759745061 +1,2.0264940609,0.0427580251132 +0,0.0469950709275,0.831310185466 +1,0.0458880985223,0.382853651151 +0,0.994894618859,0.63117651019 +0,0.23982227882,0.997988687748 +0,0.905078517544,0.587326474656 +1,2.32029441807,0.55356487738 +0,0.101108588937,1.19918495065 +0,-0.242961871704,0.868949471244 +1,0.871770999981,-0.363899780516 +1,0.185418577494,0.137388765995 +0,-0.104911499823,0.913987598165 +0,-0.646021567369,0.157519705136 +0,-0.956252161735,0.497679850897 +0,1.10673836047,0.553671619114 +0,-0.00807643234824,0.894813783359 +1,0.741838660931,-0.258614530376 +1,-0.127403051191,-0.0811403327812 +0,1.02560767542,0.655036684938 +0,0.537571238372,1.15483967962 +1,1.18743451305,-0.307531863639 +1,0.00308225502891,0.151222735758 +0,-0.182780924346,0.610617720711 +1,0.351709603085,-0.210991988441 +0,-1.06204211233,0.4094396704 +0,-0.914628851895,0.193270032395 +0,-1.08187655264,0.405208398145 +1,-0.145649070745,0.444714609364 +0,0.817789458357,0.756210669445 +0,-0.878124926491,0.382185056308 +0,-0.757690477431,0.115409492488 +1,0.918326762809,-0.691544985931 +1,0.793533794109,-0.408158254038 +0,-0.42711490832,0.920469363566 +0,0.964427166805,-0.0359282474687 +0,0.69315476389,0.595959059309 +0,0.494666595212,1.1534321109 +1,1.41387464954,-0.57693765392 +0,-0.204323433431,1.24804755149 +1,0.811844995275,-0.36835019587 +1,0.792321680647,-0.358065057404 +1,1.07707674842,-0.582032837912 +0,0.409477973021,0.317144155855 +1,2.02796309016,-0.303852841023 +0,-0.867876251912,0.182872616455 +1,1.90544441632,-0.281010293215 +1,0.242666310002,0.244404771114 +1,1.54759421463,-0.512467921459 +1,1.09896639028,-0.551229025632 +0,-0.517710773916,0.306113451482 +0,0.815106502553,0.671867139097 +1,0.229032121793,0.144375786417 +1,-0.0238385487806,-0.0510098821695 +0,-0.248908272011,0.982504420038 +1,0.61343559344,-0.147480438351 +1,-0.0698345843364,0.240583079454 +1,2.02088773274,-0.0349591373471 +0,-0.645424221811,0.408487705296 +1,1.57086144435,0.243999780862 +1,0.738900425675,-0.448339165868 +1,0.666896070435,-0.672020003956 +1,0.544569636029,-0.576015148768 +1,0.170048999394,-0.294296734015 +1,1.82224919423,-0.198414630499 +0,0.593695973877,0.830638660849 +0,-0.119183265454,1.06724499113 +1,0.941011401429,-0.597054934273 +1,0.898726750784,-0.741112030176 +0,-0.322306755558,0.854297939115 +0,0.399339992919,0.983952641298 +1,0.527197590112,-0.0833083850581 +1,0.491081832061,-0.19480110019 +1,1.55877383222,-0.778843278073 +1,0.827076179485,-0.125550893494 +1,0.238104742614,-0.519792519913 +0,0.175343631736,1.1174144809 +0,0.78527931788,0.419012067634 +0,0.281806313771,0.907715689728 +1,0.933023200854,-0.544714525288 +1,-0.0684442198717,-0.0272343293347 +0,-1.01802324097,0.168343445905 +1,1.25195482816,-0.507908863916 +0,-0.155619625233,0.876050927567 +1,-0.0513906066283,0.055209442109 +1,1.72916185955,-0.105112488558 +0,0.935164418201,0.363511685488 +0,0.710999824415,0.674145689719 +0,1.11350227978,0.231248549245 +1,0.850101555956,-0.300707910939 +1,1.77229062208,0.304098892812 +1,0.0910685024745,0.0541364226606 +0,-1.15106270352,0.744842202838 +1,-0.079359847106,0.402148859449 +1,0.0996185836566,-0.503394011094 +1,1.27606335504,-0.869908726816 +0,-0.786441828392,0.766688847655 +0,0.723156044221,0.831916328745 +0,0.989869564603,0.553719107478 +0,-0.0531249746931,0.981325394784 +0,-0.655096975409,-0.181798793509 +0,-0.478364292401,0.740491205814 +0,1.00841299823,-0.0854456275008 +1,0.326639447983,0.0438276351167 +0,-0.409947691769,1.00208671087 +0,1.18161277265,0.393725440163 +1,0.473353932606,-0.231459126378 +0,-0.781921844587,0.693999167391 +1,1.43971521546,-0.404701574248 +1,0.0161238808719,0.199556931078 +1,1.94071986587,0.00836046585534 +0,0.0372459377506,1.00639204646 +1,1.3952027692,-0.459241846975 +1,1.37025555554,-0.793919114499 +0,-0.23780332368,0.838880210975 +0,-1.16087729623,0.0791360386555 +0,0.724230267941,0.940144906417 +1,1.16290987724,-0.405131176484 +1,0.115538690495,-0.0120182117675 +1,0.890445327194,-0.544145405331 +0,-0.365698083484,0.773245940101 +0,-0.62859910723,0.430892568706 +0,0.700749504028,0.603786295151 +0,-0.826655700249,0.831427635368 +1,0.792394827691,-0.582698675092 +0,1.17595226151,0.272187909189 +1,0.633249140626,-0.413025595804 +0,0.838467989954,0.792508119319 +1,1.62263091635,-0.664699634593 +1,1.26776427718,-0.495709153521 +1,0.287806034761,-0.165082553098 +1,0.420521885834,0.0950151485809 +0,-0.39746552042,0.380158889766 +0,-0.940532051688,0.0957385087499 +1,0.530961768167,-0.607325318009 +1,2.03048432964,0.183076685468 +1,2.01417078793,0.189139991892 +0,0.33530795548,1.30373678802 +1,1.42454109296,0.0507732174716 +1,-0.193271629434,0.557113800701 +1,-0.121756122475,0.508190484246 +1,1.77209350063,-0.342661614749 +0,1.04023288886,0.73319128716 +0,-0.969920295859,0.675946167282 diff --git a/simdata/moon_data_train.jpg b/simdata/moon_data_train.jpg new file mode 100644 index 0000000000000000000000000000000000000000..92a39277ea6f897b40d05cebdf81091d55b5c220 GIT binary patch literal 49384 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 z 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ïz+$@vHR-a+wAME8O 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 Utd#vz= train_size-BATCH_SIZE: + print + + # Give very detailed output. + if verbose: + print + print 'Weight matrix.' + print s.run(W) + print + print 'Bias vector.' + print s.run(b) + print + print "Applying model to first test instance." + first = test_data[:1] + print "Point =", first + print "Wx+b = ", s.run(tf.matmul(first,W)+b) + print "softmax(Wx+b) = ", s.run(tf.nn.softmax(tf.matmul(first,W)+b)) + print + + print "Accuracy:", accuracy.eval(feed_dict={x: test_data, y_: test_labels}) + +if __name__ == '__main__': + tf.app.run() diff --git a/truncnorm_hidden.py b/truncnorm_hidden.py new file mode 100644 index 0000000..cc63068 --- /dev/null +++ b/truncnorm_hidden.py @@ -0,0 +1,134 @@ +import tensorflow.python.platform + +import numpy as np +import tensorflow as tf + +# Global variables. +NUM_LABELS = 2 # The number of labels. +BATCH_SIZE = 100 # The number of training examples to use per training step. +SEED = None # Set to None for random seed. + +tf.app.flags.DEFINE_string('train', None, + 'File containing the training data (labels & features).') +tf.app.flags.DEFINE_string('test', None, + 'File containing the test data (labels & features).') +tf.app.flags.DEFINE_integer('num_epochs', 1, + 'Number of passes over the training data.') +tf.app.flags.DEFINE_integer('num_hidden', 1, + 'Number of nodes in the hidden layer.') +tf.app.flags.DEFINE_boolean('verbose', False, 'Produce verbose output.') +FLAGS = tf.app.flags.FLAGS + +# Extract numpy representations of the labels and features given rows consisting of: +# label, feat_0, feat_1, ..., feat_n +def extract_data(filename): + + # Arrays to hold the labels and feature vectors. + labels = [] + fvecs = [] + + # Iterate over the rows, splitting the label from the features. Convert labels + # to integers and features to floats. + for line in file(filename): + row = line.split(",") + labels.append(int(row[0])) + fvecs.append([float(x) for x in row[1:]]) + + # Convert the array of float arrays into a numpy float matrix. + fvecs_np = np.matrix(fvecs).astype(np.float32) + + # Convert the array of int labels into a numpy array. + labels_np = np.array(labels).astype(dtype=np.uint8) + + # Convert the int numpy array into a one-hot matrix. + labels_onehot = (np.arange(NUM_LABELS) == labels_np[:, None]).astype(np.float32) + + # Return a pair of the feature matrix and the one-hot label matrix. + return fvecs_np,labels_onehot + +def main(argv=None): + # Be verbose? + verbose = FLAGS.verbose + + # Get the data. + train_data_filename = FLAGS.train + test_data_filename = FLAGS.test + + # Extract it into numpy arrays. + train_data,train_labels = extract_data(train_data_filename) + test_data, test_labels = extract_data(test_data_filename) + + # Get the shape of the training data. + train_size,num_features = train_data.shape + + # Get the number of epochs for training. + num_epochs = FLAGS.num_epochs + + # Get the size of layer one. + num_hidden = FLAGS.num_hidden + + # This is where training samples and labels are fed to the graph. + # These placeholder nodes will be fed a batch of training data at each + # training step using the {feed_dict} argument to the Run() call below. + x = tf.placeholder("float", shape=[None, num_features]) + y_ = tf.placeholder("float", shape=[None, NUM_LABELS]) + + # For the test data, hold the entire dataset in one constant node. + test_data_node = tf.constant(test_data) + + # Define and initialize the network. + + # Initialize the hidden weights and biases. + w_hidden = tf.Variable( + tf.truncated_normal([num_features, num_hidden], + stddev=0.1, + seed=SEED)) + + b_hidden = tf.Variable(tf.constant(0.1, shape=[num_hidden])) + + # The hidden layer. + hidden = tf.nn.relu(tf.matmul(x,w_hidden) + b_hidden) + + # Initialize the output weights and biases. + w_out = tf.Variable( + tf.truncated_normal([num_hidden, NUM_LABELS], + stddev=0.1, + seed=SEED)) + + b_out = tf.Variable(tf.constant(0.1, shape=[NUM_LABELS])) + + # The output layer. + y = tf.nn.softmax(tf.matmul(hidden, w_out) + b_out) + + # Optimization. + cross_entropy = -tf.reduce_sum(y_*tf.log(y)) + train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) + + # Evaluation. + correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1)) + accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float")) + + # Create a local session to run this computation. + with tf.Session() as s: + # Run all the initializers to prepare the trainable parameters. + tf.initialize_all_variables().run() + if verbose: + print 'Initialized!' + print + print 'Training.' + + # Iterate and train. + for step in xrange(num_epochs * train_size // BATCH_SIZE): + if verbose: + print step, + + offset = (step * BATCH_SIZE) % train_size + batch_data = train_data[offset:(offset + BATCH_SIZE), :] + batch_labels = train_labels[offset:(offset + BATCH_SIZE)] + train_step.run(feed_dict={x: batch_data, y_: batch_labels}) + if verbose and offset >= train_size-BATCH_SIZE: + print + print "Accuracy:", accuracy.eval(feed_dict={x: test_data, y_: test_labels}) + +if __name__ == '__main__': + tf.app.run()