Cleaned up src/sorting/.
authorW. Trevor King <wking@drexel.edu>
Thu, 16 Sep 2010 02:52:36 +0000 (22:52 -0400)
committerW. Trevor King <wking@drexel.edu>
Thu, 16 Sep 2010 02:52:36 +0000 (22:52 -0400)
content/sorting_algorithms/index.shtml
src/average/Makefile
src/average/average.c
src/sorting/Makefile [new file with mode: 0644]
src/sorting/README [new file with mode: 0644]
src/sorting/bubble.c
src/sorting/data.py [new file with mode: 0755]
src/sorting/main.c [new file with mode: 0644]
src/sorting/main.h [new file with mode: 0644]
src/sorting/multi_lists [deleted file]
src/sorting/quicksort.c

index f3b8a9d1325354e17639fb0fcdaa4f988a9bafa6..e63976318911dbf1be11ac480724d6e26fff414c 100644 (file)
@@ -41,9 +41,9 @@ data points.</p>
 use bubble sorting in production code.</p>
 
 <p>Nevertheless, here is a simple implementation of the bubble sort
-algorithm. The code <a href="src/bubble.c">bubble.c</a> generates a
-list of random numbers which are then ordered. The bubble sort
-algorithm is certainly the easiest to implement and therefore the
+algorithm. The code <a href="../../src/sorting/bubble.c">bubble.c</a>
+generates a list of random numbers which are then ordered. The bubble
+sort algorithm is certainly the easiest to implement and therefore the
 easiest to parallelize.</p>
 
 <h3 id="par-bubble">Parallel Bubble Sort</h3>
@@ -82,11 +82,12 @@ random to totally ordered.</p>
     sorted.</li>
 </ul>
 
-<p><a href="src/quicksort.c">quicksort.c</a> implements this
-algorithm.</p>
+<p><a href="../../src/sorting/quicksort.c">quicksort.c</a> implements
+this algorithm.</p>
 
 <p>The merge component of this parallel implementation is the hardest
-to code. The data set <a href="src/multi_lists">multi_lists</a>, which
+to code. The data
+set <a href="../../src/sorting/multi_lists">multi_lists</a>, which
 contains three short lists, can be used to practice with.</p>
 
 <h3 id="par-quick">Parallel Quicksort Algorithm</h3>
@@ -102,6 +103,9 @@ worker nodes.</p>
 
 <h2 id="references">References</h2>
 
+The examples from this section are bundled in
+<a href="../../src/sorting/sorting.tar.gz">sorting.tar.gz</a>.
+
 <ul>
   <li><a href="http://www.nr.com/">Numerical Recipes</a> describes many
     of the most common algorithms.</li>
index 8e41cedac685fb5311faccba9e454ab0b01094fb..e74021f0ab30abfcfc80c2deefc8d5e671da8e8d 100644 (file)
@@ -25,7 +25,7 @@ MPI_EXECS     = average_parallel
 all: $(EXECS) $(MPI_EXECS) $(DATA)
 
 clean:
-       $(RM) -f *.o $(EXECS) $(DATA)
+       $(RM) -f *.o $(EXECS) $(MPI_EXECS) $(DATA)
 
 # Non-MPI rules
 
index 51408898fd0208da4d6e3b152c006057e59b2e57..906e71897ca6984126d647e880141398811a0975 100644 (file)
@@ -88,6 +88,6 @@ int read_data(const char *file_name, int *pN, double **pData) {
     }
 
   // close the file
-  fclose (fp);                                
+  fclose(fp);
   return EXIT_SUCCESS;
 }
diff --git a/src/sorting/Makefile b/src/sorting/Makefile
new file mode 100644 (file)
index 0000000..ec89dfe
--- /dev/null
@@ -0,0 +1,35 @@
+# General Environment
+
+RM            = /bin/rm
+DATA_SIZE     = 8191  # the 5th Mersenne prime
+DATA          = data
+
+# Non-MPI Environment
+
+CC            = /usr/bin/gcc
+CFLAGS        =
+LD            = $(CC)
+LDFLAGS       = -lm
+EXECS         = bubble quicksort
+
+# Top level targets
+
+all: $(EXECS) $(DATA)
+
+clean:
+       $(RM) -f *.o $(EXECS) $(DATA)
+
+# Lower level rules
+
+data : data.py
+       ./$< $(DATA_SIZE) > $@
+
+$(EXECS:%=%.o) main.o : %.o : %.c main.h
+       $(CC) -c $(CFLAGS) -o $@ $<
+
+$(EXECS) : % : main.o %.o
+       $(LD) $(LDFLAGS) -o $@ $^
+
+# Interesting Makefile sections
+#   4.12.1 Syntax of Static Pattern Rules
+#   6.3.1  Substitution References
diff --git a/src/sorting/README b/src/sorting/README
new file mode 100644 (file)
index 0000000..9506a9d
--- /dev/null
@@ -0,0 +1,41 @@
+sorting
+=======
+
+Various sorting algorithms.
+
+Manifest
+--------
+
+===========  ===============================================
+README       This file.
+Makefile     Automate building and cleanup.
+data.py      Generate random data for the 'data' file.
+main.c/.h    Command line framework for a sorting algorithm.
+bubble.c     Bubble sort algorithm for main.c/.h.
+quicksort.c  Quicksort algorithm for main.c/.h.
+===========  ===============================================
+
+Build
+-----
+
+Just run
+
+    $ make
+
+which also builds a random data file 'data'.
+
+Usage
+-----
+
+    $ ./qicksort data
+    $ ./bubble data
+
+Timing
+------
+
+Timing 8191 data points on my 571 MHz netbook with
+
+    $ time ./quicksort data > /dev/null
+    $ time ./quicksort data > /dev/null
+
+quicksort takes 0.075 s and bubble takes 3.994s.
index 65683139ff433cf02e6c4ef438656b8b7d00c0b8..d747d63b1da7e4341a4c761893b224a2fd192279 100644 (file)
@@ -1,41 +1,11 @@
+/* Bubble sort algorithm */
 
-//
-//               Bubble sort algorithm
-//
-//                                        Michel Vallieres, 2009
-//
+/* Michel Vallieres, 2009 */
 
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
+#include "main.h"
 
 
-void init( double * list, int list_size )
-{
-  int i;
-
-  for( i=0; i<list_size ; i++ )
-    {
-      list[i] = (double)rand()/(double)RAND_MAX;
-    }
-}
-
-
-void printlist(double * list, int n, int list_size )
-{
-   int i;
-   for(i=0;i<n;i++)
-      printf("%f\t",list[i]);
-   printf("\n");
-   for(i=n;i>0;i--)
-      printf("%f\t",list[list_size-i]);
-   printf("\n");
-}
-
-
-
-void sort( double * list, int list_size )
+void sort(int list_size, double *list)
 {
   double temp;
   int i, exchange;
@@ -56,45 +26,3 @@ void sort( double * list, int list_size )
        }
     }
 }
-
-
-double checklist(double list[], int list_size )
-{
-  int i;
-  double sum;
-
-  sum = 0.0;
-  for(i = 0; i < list_size; i++ )
-    sum = sum + list[i];
-  return sum;
-}
-
-
-int main ( int argc, char *argv[] )
-{
-  const int MAX_ELEMENTS = 1000000;
-  double list[MAX_ELEMENTS];
-  int list_size;
-
-                         /* size of lit */
-  list_size = 1000;
-
-                         /* initial a list of random numbers */
-  init( list, list_size );
-
-                         /* print initial list */ 
-  printf("The list before sorting is:\n");
-  printlist( list, 3, list_size );
-  printf( "Check: sum of %d elements = %f\n",
-          list_size, checklist( list, list_size ) );
-
-                         /* sort out the list */
-                         /* via bubble sort algorithm */
-  sort( list, list_size );
-
-                         /* print final list */ 
-  printf("The list after sorting is:\n");
-  printlist( list, 3, list_size );
-  printf( "Check: sum of %d elements = %f\n",
-          list_size, checklist( list, list_size ) );
-}
diff --git a/src/sorting/data.py b/src/sorting/data.py
new file mode 100755 (executable)
index 0000000..1d948ff
--- /dev/null
@@ -0,0 +1,11 @@
+#!/usr/bin/env python
+
+import random
+import sys
+
+N = int(sys.argv[1])
+data = range(N)
+random.shuffle(data)
+
+print '# %d' % N
+print '\n'.join([str(x) for x in data])
diff --git a/src/sorting/main.c b/src/sorting/main.c
new file mode 100644 (file)
index 0000000..65d00d9
--- /dev/null
@@ -0,0 +1,104 @@
+/* Sorting utility */
+
+/* Michel Vallieres, 2009 */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "main.h"
+
+
+void printlist(FILE *stream, int list_size, double *list, int num_shown)
+{
+  int i;
+  for(i=0; i < num_shown; i++)
+    fprintf(stream, "%f\t", list[i]);
+  fprintf(stream, "\n");
+  for(i=num_shown; i > 0 ; i--)
+    fprintf(stream, "%f\t", list[list_size-i]);
+  fprintf(stream, "\n");
+}
+
+double checklist(int list_size, double *list)
+{
+  int i;
+  double sum;
+
+  sum = 0.0;
+  for(i = 0; i < list_size; i++ )
+    sum = sum + list[i];
+  return sum;
+}
+
+int read_data(const char *file_name, int *pList_size, double **pList) {
+  FILE   *fp;
+  int    i;
+  double x;
+
+  // open the file
+  if ((fp = fopen(file_name, "r")) == NULL)
+    {
+      fprintf(stderr, "error in opening data file %s\n", file_name);
+      return EXIT_FAILURE;
+    }
+
+  // read the size of the data file
+  fscanf(fp, "# %d", pList_size);
+
+  // allocate memory for the data
+  *pList = (double *)malloc(sizeof(double)* *pList_size);
+  if (*pList == NULL)
+    {
+      fprintf(stderr, "could not allocate %d bytes\n",
+             sizeof(double)* *pList_size);
+      return EXIT_FAILURE;
+    }
+
+  // read in the data
+  fprintf(stderr, "reading %d points\n", *pList_size);
+  for (i=0; i < *pList_size ; i++)
+    {
+      fscanf(fp, "%lf", &x);
+      (*pList)[i] = x;
+    }
+
+  // close the file
+  fclose(fp);
+  return EXIT_SUCCESS;
+}
+
+
+int main ( int argc, char *argv[] )
+{
+  int    list_size, i;
+  double *list;
+  char   *file_name = "data";
+
+  // parse arguments
+  if (argc > 1)
+    file_name = argv[1];
+
+  // setup
+  if (read_data(file_name, &list_size, &list) != EXIT_SUCCESS)
+    return EXIT_FAILURE;
+
+  /* print initial list */
+  fprintf(stderr, "The list before sorting is:\n");
+  printlist(stderr, list_size, list, 3);
+  fprintf(stderr, "Check: sum of %d elements = %f\n",
+         list_size, checklist(list_size, list));
+
+  /* sort the list */
+  sort(list_size, list);
+
+  /* print final list */
+  fprintf(stderr, "The list after sorting is:\n");
+  printlist(stderr, list_size, list, 3);
+  fprintf(stderr, "Check: sum of %d elements = %f\n",
+         list_size, checklist(list_size, list));
+  for (i=0; i < list_size; i++)
+    printf("%f\n", list[i]);
+
+  return EXIT_SUCCESS;
+}
diff --git a/src/sorting/main.h b/src/sorting/main.h
new file mode 100644 (file)
index 0000000..0b43b5e
--- /dev/null
@@ -0,0 +1,2 @@
+/* sort a list `list` of `list_size` elements in place. */
+void sort(int list_size, double *list);
diff --git a/src/sorting/multi_lists b/src/sorting/multi_lists
deleted file mode 100644 (file)
index 7452d1b..0000000
+++ /dev/null
@@ -1,4867 +0,0 @@
-256 
-0.003231 
-0.004162 
-0.016301 
-0.020023 
-0.035421 
-0.039280 
-0.040864 
-0.051939 
-0.052529 
-0.054058 
-0.063096 
-0.064171 
-0.069755 
-0.069906 
-0.072329 
-0.074161 
-0.074530 
-0.076995 
-0.078232 
-0.086056 
-0.093480 
-0.099640 
-0.103171 
-0.108809 
-0.113281 
-0.125468 
-0.125475 
-0.126075 
-0.129790 
-0.134902 
-0.137232 
-0.141603 
-0.147660 
-0.152390 
-0.156679 
-0.157807 
-0.163131 
-0.163968 
-0.164102 
-0.165974 
-0.169607 
-0.176211 
-0.180372 
-0.182556 
-0.184622 
-0.187533 
-0.192214 
-0.197551 
-0.204329 
-0.204655 
-0.215825 
-0.218257 
-0.223656 
-0.226107 
-0.228968 
-0.229137 
-0.231428 
-0.232262 
-0.233892 
-0.238280 
-0.240062 
-0.242887 
-0.244413 
-0.248044 
-0.266666 
-0.276235 
-0.277775 
-0.280042 
-0.281059 
-0.283315 
-0.284293 
-0.292517 
-0.294160 
-0.296032 
-0.304295 
-0.304956 
-0.307458 
-0.316867 
-0.328777 
-0.330337 
-0.335223 
-0.336351 
-0.344943 
-0.347116 
-0.348893 
-0.350360 
-0.352458 
-0.354049 
-0.359095 
-0.364784 
-0.368664 
-0.375207 
-0.383188 
-0.391690 
-0.394383 
-0.398437 
-0.400229 
-0.400944 
-0.413984 
-0.416501 
-0.431953 
-0.434513 
-0.437638 
-0.439560 
-0.440105 
-0.447034 
-0.450918 
-0.452576 
-0.457702 
-0.461420 
-0.471483 
-0.477397 
-0.481936 
-0.482491 
-0.482950 
-0.493583 
-0.495444 
-0.497259 
-0.510686 
-0.512535 
-0.512932 
-0.513401 
-0.520210 
-0.521563 
-0.524287 
-0.525995 
-0.526745 
-0.530808 
-0.531606 
-0.539760 
-0.546107 
-0.552485 
-0.553970 
-0.556444 
-0.573319 
-0.576971 
-0.579430 
-0.584489 
-0.588640 
-0.592540 
-0.593892 
-0.598481 
-0.606969 
-0.609106 
-0.612640 
-0.619596 
-0.621823 
-0.627158 
-0.628871 
-0.628910 
-0.629480 
-0.633072 
-0.635712 
-0.637552 
-0.637640 
-0.639458 
-0.639979 
-0.641081 
-0.649707 
-0.651132 
-0.656564 
-0.657304 
-0.663227 
-0.666880 
-0.667724 
-0.673936 
-0.675476 
-0.684219 
-0.684445 
-0.686670 
-0.687387 
-0.687861 
-0.695984 
-0.700620 
-0.712087 
-0.717297 
-0.719269 
-0.720952 
-0.732149 
-0.732654 
-0.738534 
-0.743811 
-0.745071 
-0.747803 
-0.747809 
-0.749771 
-0.755581 
-0.757294 
-0.759735 
-0.760249 
-0.760475 
-0.768230 
-0.769914 
-0.771358 
-0.783099 
-0.786002 
-0.793470 
-0.797798 
-0.798440 
-0.804177 
-0.807725 
-0.814767 
-0.819677 
-0.819695 
-0.829201 
-0.830012 
-0.831038 
-0.833239 
-0.833243 
-0.839112 
-0.840188 
-0.847684 
-0.850920 
-0.858676 
-0.870540 
-0.873271 
-0.877614 
-0.880075 
-0.881062 
-0.888949 
-0.889956 
-0.890233 
-0.891529 
-0.893372 
-0.902208 
-0.903366 
-0.906804 
-0.910972 
-0.911647 
-0.913027 
-0.916195 
-0.919026 
-0.920128 
-0.923069 
-0.923970 
-0.925377 
-0.930810 
-0.931835 
-0.935004 
-0.944318 
-0.949327 
-0.950104 
-0.950252 
-0.952230 
-0.956468 
-0.967405 
-0.970634 
-0.971466 
-0.972775 
-0.979434 
-0.983596 
-0.984752 
-0.992228 
-0.997799 
-0.998925 
-0.999994 
-4096 
-0.000047 
-0.000406 
-0.000768 
-0.000824 
-0.001125 
-0.001326 
-0.002113 
-0.002209 
-0.002368 
-0.002623 
-0.002828 
-0.003231 
-0.003231 
-0.003282 
-0.003332 
-0.003458 
-0.003579 
-0.003858 
-0.003862 
-0.004162 
-0.004727 
-0.004938 
-0.005076 
-0.005409 
-0.005435 
-0.005709 
-0.005843 
-0.005910 
-0.006005 
-0.006122 
-0.006426 
-0.006954 
-0.006980 
-0.007716 
-0.007880 
-0.008569 
-0.008877 
-0.009073 
-0.009352 
-0.009470 
-0.009948 
-0.010617 
-0.010642 
-0.011007 
-0.011681 
-0.011745 
-0.011788 
-0.011968 
-0.012301 
-0.012830 
-0.013161 
-0.013341 
-0.013558 
-0.013866 
-0.013881 
-0.013905 
-0.014084 
-0.014150 
-0.014377 
-0.014579 
-0.014807 
-0.015051 
-0.015444 
-0.015484 
-0.015699 
-0.016177 
-0.016219 
-0.016301 
-0.016651 
-0.017457 
-0.017520 
-0.017835 
-0.017998 
-0.018409 
-0.018556 
-0.018774 
-0.018911 
-0.018933 
-0.018988 
-0.019217 
-0.019645 
-0.020023 
-0.020347 
-0.020508 
-0.020708 
-0.020864 
-0.021094 
-0.021798 
-0.022170 
-0.022273 
-0.022595 
-0.022916 
-0.023323 
-0.023453 
-0.023863 
-0.024575 
-0.024902 
-0.025309 
-0.025355 
-0.025667 
-0.025853 
-0.026187 
-0.026784 
-0.027284 
-0.028453 
-0.028500 
-0.028655 
-0.028757 
-0.029011 
-0.029040 
-0.029476 
-0.029557 
-0.029950 
-0.030065 
-0.030167 
-0.030324 
-0.030426 
-0.030634 
-0.030963 
-0.031606 
-0.031649 
-0.031653 
-0.032004 
-0.032038 
-0.032184 
-0.032625 
-0.032735 
-0.032893 
-0.032963 
-0.033091 
-0.033148 
-0.034026 
-0.034183 
-0.034307 
-0.034380 
-0.034487 
-0.034716 
-0.035014 
-0.035039 
-0.035421 
-0.035519 
-0.035571 
-0.035666 
-0.035746 
-0.035767 
-0.035848 
-0.036327 
-0.036489 
-0.036496 
-0.036516 
-0.036674 
-0.036818 
-0.037347 
-0.037406 
-0.037658 
-0.037932 
-0.038229 
-0.038265 
-0.039135 
-0.039280 
-0.039521 
-0.039717 
-0.039747 
-0.040087 
-0.040343 
-0.040368 
-0.040756 
-0.040864 
-0.041276 
-0.042431 
-0.043222 
-0.043379 
-0.043395 
-0.043415 
-0.043817 
-0.043891 
-0.043915 
-0.044362 
-0.044366 
-0.044729 
-0.044796 
-0.044991 
-0.045454 
-0.046365 
-0.046513 
-0.046847 
-0.047066 
-0.047183 
-0.047588 
-0.047742 
-0.048004 
-0.048346 
-0.048500 
-0.048532 
-0.048639 
-0.048739 
-0.048826 
-0.049162 
-0.049473 
-0.049933 
-0.050168 
-0.050254 
-0.050263 
-0.050466 
-0.050967 
-0.051208 
-0.051382 
-0.051508 
-0.051651 
-0.051685 
-0.051766 
-0.051869 
-0.051939 
-0.052010 
-0.052167 
-0.052399 
-0.052488 
-0.052529 
-0.052926 
-0.052977 
-0.053073 
-0.053422 
-0.053439 
-0.053534 
-0.053551 
-0.053613 
-0.053647 
-0.054058 
-0.054214 
-0.054437 
-0.054675 
-0.055387 
-0.055411 
-0.055770 
-0.055979 
-0.056022 
-0.056223 
-0.056461 
-0.056869 
-0.056883 
-0.057297 
-0.057497 
-0.058052 
-0.058723 
-0.058759 
-0.058793 
-0.058860 
-0.059043 
-0.059163 
-0.059298 
-0.059492 
-0.059800 
-0.060156 
-0.060459 
-0.060836 
-0.061761 
-0.062067 
-0.062239 
-0.062674 
-0.062947 
-0.063096 
-0.063243 
-0.063393 
-0.063524 
-0.063561 
-0.063591 
-0.063733 
-0.064171 
-0.064342 
-0.064588 
-0.064977 
-0.065064 
-0.065579 
-0.065851 
-0.065910 
-0.066662 
-0.067462 
-0.067608 
-0.067696 
-0.068235 
-0.068729 
-0.068814 
-0.069018 
-0.069114 
-0.069138 
-0.069755 
-0.069889 
-0.069906 
-0.069944 
-0.069960 
-0.070090 
-0.070557 
-0.070808 
-0.071322 
-0.071640 
-0.072194 
-0.072329 
-0.072545 
-0.073236 
-0.073638 
-0.073716 
-0.073749 
-0.073824 
-0.074058 
-0.074161 
-0.074260 
-0.074458 
-0.074505 
-0.074530 
-0.075401 
-0.075625 
-0.076753 
-0.076995 
-0.077029 
-0.077937 
-0.077968 
-0.078135 
-0.078232 
-0.078241 
-0.078258 
-0.078458 
-0.079281 
-0.079642 
-0.080166 
-0.080384 
-0.080405 
-0.080795 
-0.081265 
-0.081642 
-0.081783 
-0.081873 
-0.082122 
-0.082568 
-0.082577 
-0.083580 
-0.083794 
-0.084185 
-0.084289 
-0.084390 
-0.084411 
-0.085831 
-0.085852 
-0.086052 
-0.086056 
-0.086596 
-0.086620 
-0.086671 
-0.086795 
-0.087259 
-0.087565 
-0.087644 
-0.087782 
-0.087917 
-0.088038 
-0.088130 
-0.088201 
-0.088528 
-0.088864 
-0.089161 
-0.089184 
-0.089430 
-0.089609 
-0.089655 
-0.089739 
-0.089914 
-0.090130 
-0.090262 
-0.090368 
-0.091149 
-0.091314 
-0.091403 
-0.091864 
-0.092489 
-0.092494 
-0.092576 
-0.092657 
-0.092858 
-0.093366 
-0.093480 
-0.093740 
-0.093759 
-0.093788 
-0.093920 
-0.094073 
-0.094077 
-0.094320 
-0.094543 
-0.094848 
-0.094923 
-0.095043 
-0.095194 
-0.095341 
-0.096157 
-0.096404 
-0.096681 
-0.097133 
-0.097478 
-0.097491 
-0.097518 
-0.097544 
-0.097721 
-0.098057 
-0.098837 
-0.098858 
-0.098966 
-0.099247 
-0.099258 
-0.099285 
-0.099316 
-0.099463 
-0.099559 
-0.099629 
-0.099640 
-0.099847 
-0.100276 
-0.100686 
-0.100709 
-0.100857 
-0.101054 
-0.101124 
-0.101377 
-0.101446 
-0.101454 
-0.101480 
-0.101507 
-0.101630 
-0.101735 
-0.101782 
-0.101812 
-0.101953 
-0.102048 
-0.102233 
-0.102434 
-0.102443 
-0.102479 
-0.102577 
-0.102683 
-0.103171 
-0.103244 
-0.103390 
-0.104174 
-0.104331 
-0.105576 
-0.106272 
-0.106496 
-0.106892 
-0.107517 
-0.107613 
-0.107738 
-0.107848 
-0.108608 
-0.108785 
-0.108809 
-0.108823 
-0.108828 
-0.109087 
-0.109233 
-0.109285 
-0.109337 
-0.109345 
-0.109525 
-0.109733 
-0.109778 
-0.110183 
-0.110427 
-0.111276 
-0.112157 
-0.112205 
-0.112371 
-0.112648 
-0.112911 
-0.112964 
-0.112988 
-0.112998 
-0.113207 
-0.113274 
-0.113281 
-0.113363 
-0.113530 
-0.114054 
-0.114199 
-0.114216 
-0.114316 
-0.114459 
-0.114594 
-0.114668 
-0.115024 
-0.115414 
-0.115440 
-0.115571 
-0.115752 
-0.116508 
-0.116995 
-0.117271 
-0.118118 
-0.118126 
-0.118735 
-0.119111 
-0.119224 
-0.119379 
-0.119584 
-0.119679 
-0.119752 
-0.119964 
-0.119989 
-0.120201 
-0.120243 
-0.120757 
-0.120834 
-0.121143 
-0.121259 
-0.122013 
-0.122086 
-0.122217 
-0.122326 
-0.122489 
-0.122664 
-0.122798 
-0.123695 
-0.123838 
-0.123969 
-0.124236 
-0.125275 
-0.125433 
-0.125468 
-0.125475 
-0.126016 
-0.126075 
-0.126080 
-0.126222 
-0.126579 
-0.126669 
-0.126805 
-0.126812 
-0.127743 
-0.128624 
-0.129542 
-0.129663 
-0.129737 
-0.129790 
-0.129976 
-0.130165 
-0.130842 
-0.130979 
-0.131244 
-0.131653 
-0.131702 
-0.132000 
-0.132400 
-0.132558 
-0.133031 
-0.133100 
-0.133104 
-0.133314 
-0.133326 
-0.133388 
-0.133512 
-0.133548 
-0.133637 
-0.134470 
-0.134902 
-0.135545 
-0.135586 
-0.135705 
-0.135875 
-0.136075 
-0.136171 
-0.136956 
-0.136962 
-0.136975 
-0.137232 
-0.137874 
-0.138082 
-0.138114 
-0.138238 
-0.138539 
-0.138580 
-0.138667 
-0.138684 
-0.138826 
-0.138845 
-0.139001 
-0.139058 
-0.139216 
-0.139221 
-0.139814 
-0.140033 
-0.140080 
-0.140338 
-0.140684 
-0.141051 
-0.141065 
-0.141207 
-0.141603 
-0.141623 
-0.141796 
-0.142119 
-0.142225 
-0.142289 
-0.142889 
-0.142949 
-0.143224 
-0.143621 
-0.143818 
-0.143942 
-0.143982 
-0.144156 
-0.144200 
-0.144246 
-0.144468 
-0.144482 
-0.144791 
-0.144946 
-0.145122 
-0.145373 
-0.146135 
-0.146641 
-0.147062 
-0.147407 
-0.147660 
-0.148077 
-0.148230 
-0.148236 
-0.148342 
-0.148539 
-0.149041 
-0.149199 
-0.149882 
-0.149964 
-0.150099 
-0.150208 
-0.151025 
-0.151230 
-0.152062 
-0.152390 
-0.152413 
-0.152518 
-0.152610 
-0.152876 
-0.152917 
-0.153375 
-0.153923 
-0.154141 
-0.154393 
-0.154711 
-0.154724 
-0.154927 
-0.155202 
-0.155233 
-0.155289 
-0.155336 
-0.156244 
-0.156257 
-0.156525 
-0.156679 
-0.156801 
-0.157139 
-0.157272 
-0.157275 
-0.157555 
-0.157807 
-0.157949 
-0.158015 
-0.158214 
-0.158316 
-0.158587 
-0.158592 
-0.158607 
-0.159324 
-0.160135 
-0.160162 
-0.160248 
-0.160824 
-0.160982 
-0.161133 
-0.161353 
-0.161482 
-0.161494 
-0.161952 
-0.162572 
-0.162647 
-0.162757 
-0.162912 
-0.163131 
-0.163543 
-0.163657 
-0.163796 
-0.163968 
-0.164102 
-0.164362 
-0.164405 
-0.164617 
-0.164654 
-0.164692 
-0.164764 
-0.165015 
-0.165369 
-0.165882 
-0.165934 
-0.165974 
-0.166094 
-0.166699 
-0.166755 
-0.166837 
-0.166955 
-0.166998 
-0.167104 
-0.167165 
-0.167179 
-0.167241 
-0.167267 
-0.167648 
-0.168225 
-0.168778 
-0.168837 
-0.168940 
-0.169109 
-0.169177 
-0.169183 
-0.169592 
-0.169607 
-0.169610 
-0.169650 
-0.169748 
-0.169820 
-0.170221 
-0.170368 
-0.170628 
-0.170819 
-0.170857 
-0.170937 
-0.171385 
-0.172722 
-0.173036 
-0.173065 
-0.173089 
-0.173174 
-0.173228 
-0.173301 
-0.173373 
-0.173579 
-0.173704 
-0.174136 
-0.174222 
-0.174330 
-0.174830 
-0.174850 
-0.175413 
-0.175496 
-0.175605 
-0.176006 
-0.176179 
-0.176211 
-0.176239 
-0.176379 
-0.176656 
-0.176700 
-0.177133 
-0.178208 
-0.178314 
-0.178314 
-0.178430 
-0.178952 
-0.178987 
-0.179138 
-0.179218 
-0.180096 
-0.180136 
-0.180372 
-0.180421 
-0.180886 
-0.181161 
-0.182003 
-0.182012 
-0.182014 
-0.182116 
-0.182556 
-0.183500 
-0.183765 
-0.183801 
-0.184025 
-0.184066 
-0.184577 
-0.184622 
-0.184833 
-0.185323 
-0.185365 
-0.185987 
-0.186029 
-0.186265 
-0.186572 
-0.186951 
-0.186983 
-0.187533 
-0.187616 
-0.187693 
-0.188201 
-0.188248 
-0.188687 
-0.188752 
-0.189064 
-0.189401 
-0.189751 
-0.190303 
-0.190312 
-0.190501 
-0.190709 
-0.190984 
-0.191028 
-0.191112 
-0.191511 
-0.191630 
-0.191772 
-0.192214 
-0.192486 
-0.192586 
-0.192734 
-0.193493 
-0.193564 
-0.193679 
-0.194948 
-0.195336 
-0.195478 
-0.195538 
-0.195753 
-0.195898 
-0.196091 
-0.196428 
-0.196719 
-0.197161 
-0.197162 
-0.197551 
-0.198021 
-0.198887 
-0.198933 
-0.198945 
-0.199003 
-0.199200 
-0.199617 
-0.199724 
-0.199938 
-0.200168 
-0.200352 
-0.200379 
-0.200847 
-0.200947 
-0.201067 
-0.201899 
-0.202213 
-0.202232 
-0.202310 
-0.202326 
-0.202787 
-0.202977 
-0.203196 
-0.203548 
-0.203578 
-0.204186 
-0.204329 
-0.204655 
-0.205424 
-0.205714 
-0.205809 
-0.205989 
-0.205993 
-0.206047 
-0.206280 
-0.206421 
-0.207257 
-0.207670 
-0.207712 
-0.207844 
-0.208012 
-0.208175 
-0.208278 
-0.209278 
-0.209732 
-0.210692 
-0.210806 
-0.210863 
-0.210883 
-0.210920 
-0.211565 
-0.211604 
-0.211786 
-0.212269 
-0.212645 
-0.213094 
-0.213122 
-0.213991 
-0.214373 
-0.214422 
-0.214462 
-0.214524 
-0.214741 
-0.214797 
-0.215033 
-0.215066 
-0.215638 
-0.215825 
-0.216375 
-0.216457 
-0.216789 
-0.216935 
-0.217300 
-0.217346 
-0.217858 
-0.218131 
-0.218257 
-0.219136 
-0.219155 
-0.219303 
-0.219788 
-0.219853 
-0.220054 
-0.220459 
-0.220673 
-0.220679 
-0.221009 
-0.221171 
-0.221246 
-0.221536 
-0.221551 
-0.221587 
-0.221726 
-0.221918 
-0.221966 
-0.222180 
-0.222225 
-0.222602 
-0.222729 
-0.222978 
-0.223441 
-0.223656 
-0.224164 
-0.224338 
-0.224415 
-0.224643 
-0.225236 
-0.225375 
-0.225491 
-0.226107 
-0.226314 
-0.226481 
-0.226580 
-0.226811 
-0.226866 
-0.227552 
-0.227711 
-0.227952 
-0.228968 
-0.229137 
-0.229984 
-0.230139 
-0.230677 
-0.230689 
-0.230996 
-0.231253 
-0.231428 
-0.231855 
-0.232262 
-0.232565 
-0.232848 
-0.232951 
-0.233119 
-0.233557 
-0.233656 
-0.233892 
-0.233944 
-0.234441 
-0.234514 
-0.234686 
-0.234711 
-0.235047 
-0.235245 
-0.235388 
-0.235435 
-0.235453 
-0.236071 
-0.236360 
-0.236375 
-0.236490 
-0.236512 
-0.236531 
-0.237321 
-0.237846 
-0.238225 
-0.238280 
-0.238445 
-0.238873 
-0.239309 
-0.239321 
-0.239732 
-0.240062 
-0.240195 
-0.240597 
-0.240662 
-0.240937 
-0.241415 
-0.242477 
-0.242626 
-0.242887 
-0.243106 
-0.243243 
-0.243528 
-0.243745 
-0.243758 
-0.243905 
-0.244069 
-0.244069 
-0.244149 
-0.244277 
-0.244327 
-0.244413 
-0.244425 
-0.244858 
-0.245651 
-0.246071 
-0.246445 
-0.246476 
-0.246990 
-0.247033 
-0.247168 
-0.247431 
-0.247685 
-0.247962 
-0.248033 
-0.248044 
-0.248125 
-0.248395 
-0.248750 
-0.248992 
-0.249262 
-0.249267 
-0.250210 
-0.251974 
-0.252053 
-0.252221 
-0.252430 
-0.252535 
-0.252885 
-0.253006 
-0.253220 
-0.253276 
-0.253805 
-0.253945 
-0.254432 
-0.254906 
-0.255076 
-0.255829 
-0.256228 
-0.256489 
-0.256583 
-0.256673 
-0.256892 
-0.256969 
-0.257265 
-0.257327 
-0.257423 
-0.257469 
-0.257585 
-0.257778 
-0.257939 
-0.258112 
-0.258196 
-0.258257 
-0.258368 
-0.258413 
-0.258906 
-0.259237 
-0.259345 
-0.260030 
-0.260445 
-0.260497 
-0.260918 
-0.260963 
-0.261102 
-0.261570 
-0.261883 
-0.261886 
-0.262371 
-0.262785 
-0.263617 
-0.263759 
-0.264172 
-0.264500 
-0.264525 
-0.264553 
-0.264624 
-0.264676 
-0.264745 
-0.264793 
-0.265461 
-0.265539 
-0.265818 
-0.266194 
-0.266420 
-0.266620 
-0.266666 
-0.266880 
-0.267083 
-0.267134 
-0.267249 
-0.267567 
-0.267578 
-0.267607 
-0.267611 
-0.268023 
-0.268084 
-0.268192 
-0.268351 
-0.268480 
-0.268558 
-0.268684 
-0.269022 
-0.269239 
-0.270209 
-0.270321 
-0.270803 
-0.271102 
-0.271254 
-0.271468 
-0.272133 
-0.272189 
-0.272754 
-0.272987 
-0.273731 
-0.273911 
-0.274335 
-0.274417 
-0.274897 
-0.275352 
-0.275716 
-0.275884 
-0.275933 
-0.276120 
-0.276190 
-0.276235 
-0.276344 
-0.277214 
-0.277614 
-0.277775 
-0.277873 
-0.277892 
-0.278005 
-0.278859 
-0.279178 
-0.280042 
-0.280188 
-0.280467 
-0.280593 
-0.280851 
-0.281059 
-0.281382 
-0.281401 
-0.281647 
-0.281711 
-0.282016 
-0.282284 
-0.282532 
-0.282547 
-0.282835 
-0.283138 
-0.283175 
-0.283315 
-0.283321 
-0.283392 
-0.283917 
-0.284280 
-0.284289 
-0.284293 
-0.284316 
-0.284354 
-0.284874 
-0.285080 
-0.285149 
-0.285365 
-0.285543 
-0.285885 
-0.285946 
-0.286074 
-0.286577 
-0.286825 
-0.287181 
-0.287189 
-0.287504 
-0.287736 
-0.287895 
-0.287970 
-0.288270 
-0.288326 
-0.288379 
-0.288468 
-0.288752 
-0.288778 
-0.288957 
-0.289518 
-0.290041 
-0.290104 
-0.290423 
-0.290799 
-0.290829 
-0.291053 
-0.291057 
-0.291173 
-0.291188 
-0.291378 
-0.291431 
-0.291475 
-0.292063 
-0.292207 
-0.292432 
-0.292517 
-0.292555 
-0.292886 
-0.292889 
-0.293171 
-0.293177 
-0.293678 
-0.293991 
-0.294160 
-0.294601 
-0.294901 
-0.295309 
-0.296032 
-0.296033 
-0.296372 
-0.296440 
-0.296707 
-0.296830 
-0.296980 
-0.297288 
-0.297622 
-0.297691 
-0.297849 
-0.297912 
-0.297933 
-0.297956 
-0.298248 
-0.298639 
-0.298698 
-0.299007 
-0.299663 
-0.299775 
-0.300275 
-0.301169 
-0.301399 
-0.301763 
-0.302225 
-0.302290 
-0.302580 
-0.302601 
-0.304050 
-0.304075 
-0.304285 
-0.304295 
-0.304929 
-0.304956 
-0.305080 
-0.305239 
-0.305408 
-0.305560 
-0.305770 
-0.305987 
-0.306772 
-0.306902 
-0.307032 
-0.307168 
-0.307366 
-0.307458 
-0.307496 
-0.307532 
-0.307763 
-0.307971 
-0.308157 
-0.308247 
-0.308776 
-0.309771 
-0.309961 
-0.309982 
-0.310790 
-0.310944 
-0.311141 
-0.311602 
-0.311950 
-0.312343 
-0.312491 
-0.312940 
-0.312990 
-0.313187 
-0.313230 
-0.313560 
-0.313885 
-0.314043 
-0.314054 
-0.314397 
-0.315658 
-0.315721 
-0.316091 
-0.316653 
-0.316802 
-0.316867 
-0.316884 
-0.316945 
-0.317206 
-0.317548 
-0.317924 
-0.318000 
-0.318035 
-0.318191 
-0.319784 
-0.320145 
-0.320772 
-0.320857 
-0.320913 
-0.321047 
-0.321172 
-0.321478 
-0.321526 
-0.321734 
-0.321982 
-0.322070 
-0.322451 
-0.322630 
-0.322695 
-0.322960 
-0.323107 
-0.323755 
-0.323852 
-0.323983 
-0.324096 
-0.324541 
-0.324591 
-0.324807 
-0.325177 
-0.325206 
-0.325518 
-0.325711 
-0.325859 
-0.326013 
-0.326097 
-0.326458 
-0.326680 
-0.326804 
-0.326868 
-0.327184 
-0.327283 
-0.327616 
-0.327626 
-0.327805 
-0.328374 
-0.328595 
-0.328777 
-0.329285 
-0.329309 
-0.329342 
-0.329642 
-0.329892 
-0.330230 
-0.330337 
-0.330436 
-0.330647 
-0.331386 
-0.331479 
-0.331846 
-0.331917 
-0.332182 
-0.332238 
-0.332706 
-0.332892 
-0.333217 
-0.333569 
-0.333832 
-0.333857 
-0.333894 
-0.334016 
-0.334416 
-0.334972 
-0.335223 
-0.335287 
-0.335551 
-0.335712 
-0.336351 
-0.336502 
-0.337150 
-0.337208 
-0.338199 
-0.338243 
-0.338426 
-0.338929 
-0.339058 
-0.339071 
-0.339602 
-0.339732 
-0.339920 
-0.340026 
-0.340321 
-0.340664 
-0.341262 
-0.341354 
-0.341482 
-0.341540 
-0.341622 
-0.342262 
-0.342340 
-0.342352 
-0.342735 
-0.342763 
-0.342998 
-0.343464 
-0.343497 
-0.343520 
-0.343841 
-0.343959 
-0.344156 
-0.344251 
-0.344943 
-0.345501 
-0.345963 
-0.347116 
-0.347196 
-0.347287 
-0.347546 
-0.347815 
-0.347868 
-0.348555 
-0.348881 
-0.348893 
-0.349324 
-0.349562 
-0.349713 
-0.349781 
-0.350207 
-0.350360 
-0.350505 
-0.350901 
-0.351090 
-0.351109 
-0.351557 
-0.351819 
-0.351851 
-0.352458 
-0.352506 
-0.352948 
-0.354049 
-0.354221 
-0.354771 
-0.355369 
-0.355387 
-0.355508 
-0.355916 
-0.356162 
-0.356383 
-0.357193 
-0.358235 
-0.358727 
-0.358825 
-0.358948 
-0.359095 
-0.359247 
-0.359441 
-0.359786 
-0.359942 
-0.359984 
-0.360105 
-0.360164 
-0.360192 
-0.360305 
-0.360443 
-0.360570 
-0.360610 
-0.360914 
-0.361119 
-0.361601 
-0.361644 
-0.361881 
-0.361917 
-0.362115 
-0.362154 
-0.363598 
-0.363727 
-0.364190 
-0.364695 
-0.364784 
-0.364793 
-0.366028 
-0.366516 
-0.366783 
-0.366796 
-0.367118 
-0.367180 
-0.367581 
-0.368455 
-0.368664 
-0.369793 
-0.369946 
-0.370865 
-0.373556 
-0.374201 
-0.374413 
-0.374975 
-0.375207 
-0.375405 
-0.375564 
-0.376631 
-0.377377 
-0.377597 
-0.377888 
-0.377997 
-0.378316 
-0.378710 
-0.378799 
-0.378859 
-0.378966 
-0.379011 
-0.379874 
-0.380215 
-0.380434 
-0.380544 
-0.380670 
-0.380712 
-0.381603 
-0.381656 
-0.381762 
-0.381888 
-0.382167 
-0.382457 
-0.382628 
-0.382896 
-0.382915 
-0.383013 
-0.383188 
-0.383285 
-0.383832 
-0.384041 
-0.384509 
-0.384539 
-0.384658 
-0.385001 
-0.385282 
-0.385378 
-0.385717 
-0.385748 
-0.386026 
-0.386299 
-0.386394 
-0.386669 
-0.387003 
-0.387011 
-0.387067 
-0.387273 
-0.387323 
-0.387466 
-0.387987 
-0.387996 
-0.388838 
-0.389667 
-0.389888 
-0.390050 
-0.390289 
-0.390566 
-0.390888 
-0.391178 
-0.391405 
-0.391488 
-0.391690 
-0.391792 
-0.392179 
-0.392965 
-0.393097 
-0.393168 
-0.393632 
-0.393746 
-0.393750 
-0.393777 
-0.393928 
-0.393948 
-0.394239 
-0.394260 
-0.394327 
-0.394383 
-0.394388 
-0.394521 
-0.394842 
-0.395280 
-0.395316 
-0.395530 
-0.395532 
-0.395617 
-0.395684 
-0.395754 
-0.395988 
-0.395990 
-0.396091 
-0.396784 
-0.396995 
-0.397747 
-0.397874 
-0.398290 
-0.398437 
-0.398698 
-0.398775 
-0.399062 
-0.399300 
-0.399420 
-0.399924 
-0.400148 
-0.400229 
-0.400536 
-0.400709 
-0.400944 
-0.400985 
-0.401188 
-0.401282 
-0.401306 
-0.401325 
-0.401573 
-0.401886 
-0.402153 
-0.402379 
-0.402864 
-0.403191 
-0.403238 
-0.403431 
-0.403447 
-0.403541 
-0.404136 
-0.404321 
-0.404864 
-0.404956 
-0.405038 
-0.405089 
-0.405098 
-0.405267 
-0.405301 
-0.405555 
-0.405744 
-0.405786 
-0.405917 
-0.406224 
-0.406615 
-0.406767 
-0.407673 
-0.407959 
-0.408414 
-0.408417 
-0.408875 
-0.408978 
-0.409213 
-0.409217 
-0.409635 
-0.409687 
-0.410011 
-0.410222 
-0.410651 
-0.410788 
-0.410836 
-0.411230 
-0.411551 
-0.412306 
-0.412483 
-0.413078 
-0.413516 
-0.413732 
-0.413894 
-0.413984 
-0.414241 
-0.414467 
-0.415150 
-0.415526 
-0.415699 
-0.416126 
-0.416501 
-0.416589 
-0.416609 
-0.416706 
-0.416750 
-0.417051 
-0.417174 
-0.417313 
-0.417489 
-0.417663 
-0.417947 
-0.418785 
-0.418925 
-0.419144 
-0.419191 
-0.419502 
-0.419660 
-0.420218 
-0.420429 
-0.420787 
-0.421391 
-0.421442 
-0.421840 
-0.421975 
-0.423209 
-0.423378 
-0.423495 
-0.423777 
-0.423962 
-0.423981 
-0.424720 
-0.424774 
-0.424995 
-0.425361 
-0.425826 
-0.425894 
-0.426199 
-0.426412 
-0.426423 
-0.426496 
-0.426541 
-0.426555 
-0.426904 
-0.427295 
-0.427328 
-0.427702 
-0.427999 
-0.428032 
-0.428309 
-0.428720 
-0.429182 
-0.429613 
-0.429714 
-0.429751 
-0.430401 
-0.430662 
-0.431197 
-0.431407 
-0.431844 
-0.431918 
-0.431953 
-0.432199 
-0.432364 
-0.432452 
-0.432873 
-0.433114 
-0.433230 
-0.433687 
-0.433758 
-0.434009 
-0.434398 
-0.434513 
-0.434740 
-0.435157 
-0.435216 
-0.436149 
-0.436497 
-0.436585 
-0.437390 
-0.437638 
-0.437667 
-0.437823 
-0.437928 
-0.437942 
-0.438045 
-0.438242 
-0.438562 
-0.438924 
-0.438990 
-0.439173 
-0.439207 
-0.439338 
-0.439560 
-0.440105 
-0.440157 
-0.440217 
-0.440458 
-0.440813 
-0.442278 
-0.442560 
-0.442665 
-0.442740 
-0.442789 
-0.442931 
-0.443043 
-0.443211 
-0.443339 
-0.443597 
-0.443661 
-0.444097 
-0.444350 
-0.444379 
-0.445033 
-0.445079 
-0.445235 
-0.445533 
-0.445836 
-0.446045 
-0.446622 
-0.446645 
-0.446649 
-0.446662 
-0.446743 
-0.446876 
-0.447034 
-0.447123 
-0.447564 
-0.447982 
-0.448322 
-0.448423 
-0.448881 
-0.449020 
-0.449105 
-0.449652 
-0.449862 
-0.450056 
-0.450057 
-0.450117 
-0.450345 
-0.450918 
-0.451175 
-0.451258 
-0.451879 
-0.452122 
-0.452404 
-0.452576 
-0.452650 
-0.452681 
-0.452905 
-0.453226 
-0.453259 
-0.453673 
-0.454491 
-0.454649 
-0.454797 
-0.455145 
-0.455442 
-0.455477 
-0.455519 
-0.455690 
-0.455701 
-0.456151 
-0.456162 
-0.456514 
-0.456670 
-0.456955 
-0.457052 
-0.457151 
-0.457171 
-0.457240 
-0.457702 
-0.457716 
-0.458039 
-0.458048 
-0.458269 
-0.458655 
-0.459365 
-0.459635 
-0.459775 
-0.459937 
-0.460067 
-0.460309 
-0.460535 
-0.460646 
-0.460652 
-0.460768 
-0.461106 
-0.461250 
-0.461420 
-0.461462 
-0.461489 
-0.461706 
-0.461816 
-0.461848 
-0.461890 
-0.461949 
-0.462033 
-0.462065 
-0.462479 
-0.462720 
-0.462852 
-0.463378 
-0.463442 
-0.463662 
-0.464159 
-0.464208 
-0.464353 
-0.464393 
-0.464505 
-0.465389 
-0.465835 
-0.466169 
-0.466855 
-0.467274 
-0.467290 
-0.467471 
-0.467529 
-0.467823 
-0.468185 
-0.468477 
-0.468488 
-0.468817 
-0.469035 
-0.469050 
-0.469413 
-0.469676 
-0.470211 
-0.470325 
-0.470564 
-0.470674 
-0.471483 
-0.471579 
-0.471639 
-0.472099 
-0.472507 
-0.472796 
-0.473045 
-0.473345 
-0.473805 
-0.473841 
-0.473894 
-0.474050 
-0.474063 
-0.474219 
-0.474651 
-0.474687 
-0.475164 
-0.475641 
-0.475806 
-0.475947 
-0.476062 
-0.476355 
-0.476366 
-0.476585 
-0.476850 
-0.477323 
-0.477361 
-0.477397 
-0.477551 
-0.477862 
-0.477887 
-0.477943 
-0.477961 
-0.477996 
-0.478869 
-0.479170 
-0.479315 
-0.479455 
-0.479688 
-0.479777 
-0.480156 
-0.480193 
-0.480371 
-0.480826 
-0.480859 
-0.480881 
-0.481124 
-0.481733 
-0.481936 
-0.482107 
-0.482350 
-0.482384 
-0.482426 
-0.482491 
-0.482525 
-0.482830 
-0.482950 
-0.483083 
-0.483568 
-0.483648 
-0.483742 
-0.484641 
-0.484919 
-0.485059 
-0.485257 
-0.485337 
-0.485460 
-0.485850 
-0.485866 
-0.486648 
-0.486733 
-0.486873 
-0.487254 
-0.487427 
-0.487639 
-0.487721 
-0.487976 
-0.488450 
-0.488733 
-0.488740 
-0.489298 
-0.489424 
-0.489597 
-0.489656 
-0.489810 
-0.490581 
-0.490891 
-0.491214 
-0.491240 
-0.491571 
-0.492399 
-0.492422 
-0.493503 
-0.493583 
-0.493831 
-0.494317 
-0.494407 
-0.495224 
-0.495297 
-0.495355 
-0.495408 
-0.495444 
-0.495767 
-0.495949 
-0.495973 
-0.495977 
-0.496074 
-0.496178 
-0.496430 
-0.496431 
-0.496818 
-0.497259 
-0.497847 
-0.497858 
-0.498144 
-0.498153 
-0.498525 
-0.499278 
-0.499481 
-0.499773 
-0.499956 
-0.500019 
-0.500065 
-0.500659 
-0.500707 
-0.500898 
-0.501174 
-0.501178 
-0.501480 
-0.501835 
-0.501846 
-0.502401 
-0.503148 
-0.503394 
-0.503461 
-0.504399 
-0.504796 
-0.504845 
-0.504956 
-0.505339 
-0.506247 
-0.506471 
-0.506915 
-0.507410 
-0.507555 
-0.507617 
-0.507775 
-0.508369 
-0.508434 
-0.508530 
-0.508799 
-0.508861 
-0.509205 
-0.510349 
-0.510402 
-0.510686 
-0.511039 
-0.511386 
-0.511929 
-0.512008 
-0.512535 
-0.512906 
-0.512932 
-0.512941 
-0.513024 
-0.513401 
-0.513491 
-0.514103 
-0.514352 
-0.514382 
-0.514525 
-0.514849 
-0.514936 
-0.515049 
-0.515120 
-0.515216 
-0.515333 
-0.515532 
-0.515713 
-0.515819 
-0.515835 
-0.515971 
-0.516045 
-0.516139 
-0.516203 
-0.517026 
-0.517341 
-0.517391 
-0.517715 
-0.517722 
-0.517856 
-0.518151 
-0.518436 
-0.518515 
-0.518596 
-0.519048 
-0.519640 
-0.519828 
-0.519860 
-0.520012 
-0.520118 
-0.520210 
-0.520451 
-0.520482 
-0.521261 
-0.521386 
-0.521563 
-0.521583 
-0.521834 
-0.522075 
-0.522119 
-0.522290 
-0.522448 
-0.522588 
-0.522629 
-0.522729 
-0.523216 
-0.523271 
-0.523506 
-0.523548 
-0.523745 
-0.524287 
-0.524819 
-0.524878 
-0.524898 
-0.525373 
-0.525747 
-0.525995 
-0.526061 
-0.526062 
-0.526173 
-0.526450 
-0.526523 
-0.526745 
-0.526751 
-0.526827 
-0.526830 
-0.526892 
-0.527017 
-0.527075 
-0.527224 
-0.528079 
-0.528705 
-0.528885 
-0.528892 
-0.529754 
-0.529899 
-0.529918 
-0.529970 
-0.530043 
-0.530552 
-0.530808 
-0.530851 
-0.530892 
-0.530952 
-0.531033 
-0.531124 
-0.531144 
-0.531254 
-0.531606 
-0.532111 
-0.532218 
-0.532342 
-0.532441 
-0.532514 
-0.532647 
-0.532846 
-0.532960 
-0.533165 
-0.533253 
-0.533348 
-0.533636 
-0.533712 
-0.534025 
-0.534206 
-0.534848 
-0.535360 
-0.536115 
-0.536243 
-0.536564 
-0.536742 
-0.537030 
-0.537407 
-0.537536 
-0.537606 
-0.537660 
-0.538055 
-0.538074 
-0.538175 
-0.538205 
-0.538557 
-0.538568 
-0.539413 
-0.539549 
-0.539584 
-0.539760 
-0.540197 
-0.540389 
-0.541075 
-0.541140 
-0.541482 
-0.541743 
-0.542247 
-0.542303 
-0.543165 
-0.544564 
-0.544885 
-0.545356 
-0.545784 
-0.546107 
-0.546172 
-0.546222 
-0.546248 
-0.546393 
-0.547360 
-0.547397 
-0.547613 
-0.547723 
-0.548042 
-0.548048 
-0.548708 
-0.548938 
-0.549173 
-0.549238 
-0.549261 
-0.549519 
-0.550290 
-0.550494 
-0.550689 
-0.551302 
-0.551415 
-0.551443 
-0.551633 
-0.551681 
-0.551721 
-0.552316 
-0.552387 
-0.552485 
-0.552568 
-0.552692 
-0.552738 
-0.552897 
-0.552939 
-0.553111 
-0.553743 
-0.553791 
-0.553925 
-0.553970 
-0.554097 
-0.554228 
-0.554371 
-0.554448 
-0.554866 
-0.554889 
-0.555398 
-0.555519 
-0.556260 
-0.556444 
-0.556905 
-0.556908 
-0.557002 
-0.557279 
-0.557291 
-0.557481 
-0.557561 
-0.557619 
-0.558198 
-0.558287 
-0.558304 
-0.558473 
-0.558524 
-0.558645 
-0.559249 
-0.559335 
-0.559900 
-0.560023 
-0.560176 
-0.560197 
-0.560785 
-0.560872 
-0.561007 
-0.561060 
-0.561712 
-0.561902 
-0.561941 
-0.562414 
-0.562866 
-0.563161 
-0.563263 
-0.563327 
-0.563550 
-0.563617 
-0.563915 
-0.564042 
-0.564199 
-0.564252 
-0.564406 
-0.564484 
-0.564630 
-0.565189 
-0.565256 
-0.565681 
-0.565959 
-0.566164 
-0.566241 
-0.566618 
-0.566728 
-0.566801 
-0.566903 
-0.567269 
-0.567302 
-0.567389 
-0.567648 
-0.567817 
-0.567831 
-0.567921 
-0.568076 
-0.568379 
-0.568754 
-0.569198 
-0.569424 
-0.569600 
-0.570765 
-0.571064 
-0.571589 
-0.571639 
-0.571708 
-0.571755 
-0.572154 
-0.572735 
-0.572763 
-0.573077 
-0.573122 
-0.573261 
-0.573319 
-0.573721 
-0.574214 
-0.574408 
-0.574618 
-0.574926 
-0.575203 
-0.575875 
-0.576048 
-0.576200 
-0.576479 
-0.576553 
-0.576601 
-0.576691 
-0.576721 
-0.576724 
-0.576971 
-0.577209 
-0.577678 
-0.577898 
-0.578006 
-0.578054 
-0.578470 
-0.578613 
-0.578635 
-0.578702 
-0.578774 
-0.578813 
-0.578825 
-0.578877 
-0.579022 
-0.579176 
-0.579430 
-0.579494 
-0.579573 
-0.579678 
-0.579765 
-0.579965 
-0.580048 
-0.580261 
-0.580364 
-0.580422 
-0.580815 
-0.580872 
-0.581196 
-0.581682 
-0.581960 
-0.582084 
-0.582250 
-0.582450 
-0.582460 
-0.582682 
-0.583570 
-0.584121 
-0.584132 
-0.584288 
-0.584421 
-0.584489 
-0.584516 
-0.584522 
-0.584568 
-0.584585 
-0.584998 
-0.585230 
-0.585846 
-0.586288 
-0.586303 
-0.586491 
-0.586537 
-0.587011 
-0.587197 
-0.587725 
-0.587891 
-0.588640 
-0.588805 
-0.588846 
-0.589119 
-0.589157 
-0.589339 
-0.589427 
-0.589522 
-0.589629 
-0.589637 
-0.590012 
-0.590334 
-0.590354 
-0.590407 
-0.590518 
-0.590602 
-0.590633 
-0.590649 
-0.590753 
-0.591111 
-0.591312 
-0.591647 
-0.592540 
-0.592692 
-0.592883 
-0.593211 
-0.593892 
-0.594273 
-0.594497 
-0.594779 
-0.594832 
-0.594888 
-0.595045 
-0.595102 
-0.595484 
-0.595963 
-0.596191 
-0.596196 
-0.596341 
-0.596480 
-0.596504 
-0.596899 
-0.596952 
-0.596958 
-0.597114 
-0.597280 
-0.598032 
-0.598481 
-0.598775 
-0.599119 
-0.599291 
-0.599573 
-0.599644 
-0.599707 
-0.600405 
-0.600475 
-0.600492 
-0.600763 
-0.601427 
-0.601827 
-0.602030 
-0.602221 
-0.602314 
-0.603109 
-0.603411 
-0.603984 
-0.604379 
-0.604654 
-0.605223 
-0.605637 
-0.605827 
-0.605850 
-0.606542 
-0.606969 
-0.607122 
-0.607387 
-0.607427 
-0.607600 
-0.608510 
-0.608857 
-0.608883 
-0.609068 
-0.609106 
-0.609179 
-0.609356 
-0.609729 
-0.609736 
-0.610046 
-0.611093 
-0.611241 
-0.611279 
-0.611411 
-0.611981 
-0.612152 
-0.612442 
-0.612640 
-0.613046 
-0.613254 
-0.613683 
-0.613807 
-0.614227 
-0.614496 
-0.614859 
-0.614968 
-0.615491 
-0.615842 
-0.615894 
-0.615899 
-0.615935 
-0.616163 
-0.616955 
-0.617387 
-0.617582 
-0.618447 
-0.618712 
-0.618925 
-0.618958 
-0.619470 
-0.619596 
-0.619621 
-0.619965 
-0.620058 
-0.620075 
-0.621694 
-0.621719 
-0.621823 
-0.621990 
-0.622011 
-0.622095 
-0.622167 
-0.622212 
-0.622214 
-0.622791 
-0.622988 
-0.623194 
-0.623601 
-0.623672 
-0.623701 
-0.624060 
-0.624136 
-0.624658 
-0.625596 
-0.625665 
-0.625964 
-0.626101 
-0.626125 
-0.626573 
-0.627158 
-0.627219 
-0.627250 
-0.627518 
-0.627616 
-0.627863 
-0.627880 
-0.628191 
-0.628840 
-0.628871 
-0.628910 
-0.629359 
-0.629471 
-0.629480 
-0.630243 
-0.630351 
-0.630424 
-0.630655 
-0.630773 
-0.632015 
-0.633072 
-0.633522 
-0.633585 
-0.633734 
-0.633988 
-0.634344 
-0.634528 
-0.635204 
-0.635246 
-0.635712 
-0.636282 
-0.636656 
-0.636783 
-0.636905 
-0.636959 
-0.637054 
-0.637161 
-0.637552 
-0.637640 
-0.637656 
-0.637733 
-0.637771 
-0.637806 
-0.637819 
-0.637906 
-0.638409 
-0.638513 
-0.638654 
-0.638687 
-0.638857 
-0.639009 
-0.639199 
-0.639458 
-0.639973 
-0.639979 
-0.640098 
-0.640113 
-0.640368 
-0.640542 
-0.640766 
-0.640800 
-0.641001 
-0.641081 
-0.641188 
-0.642059 
-0.642521 
-0.642693 
-0.643331 
-0.643376 
-0.643391 
-0.643400 
-0.644239 
-0.644457 
-0.644512 
-0.644520 
-0.644812 
-0.645134 
-0.645385 
-0.645453 
-0.645464 
-0.645506 
-0.645601 
-0.645644 
-0.645693 
-0.645889 
-0.646113 
-0.646295 
-0.646520 
-0.646712 
-0.646840 
-0.647033 
-0.647207 
-0.647433 
-0.647450 
-0.647522 
-0.647548 
-0.647672 
-0.648018 
-0.648167 
-0.648451 
-0.648511 
-0.648545 
-0.649603 
-0.649659 
-0.649707 
-0.649787 
-0.650066 
-0.650077 
-0.650222 
-0.650421 
-0.650491 
-0.650626 
-0.650757 
-0.650924 
-0.651132 
-0.651868 
-0.652051 
-0.652399 
-0.652514 
-0.652588 
-0.652768 
-0.652831 
-0.653087 
-0.653093 
-0.653130 
-0.653287 
-0.653305 
-0.653760 
-0.653787 
-0.653880 
-0.654029 
-0.654299 
-0.655368 
-0.655813 
-0.655914 
-0.656098 
-0.656540 
-0.656564 
-0.656840 
-0.656900 
-0.657120 
-0.657201 
-0.657304 
-0.657522 
-0.657643 
-0.658659 
-0.658747 
-0.658831 
-0.659112 
-0.659146 
-0.659387 
-0.659452 
-0.659826 
-0.659878 
-0.659901 
-0.660302 
-0.660526 
-0.660966 
-0.661518 
-0.661792 
-0.661914 
-0.662880 
-0.663049 
-0.663091 
-0.663227 
-0.663252 
-0.663394 
-0.663461 
-0.664243 
-0.664316 
-0.664414 
-0.664438 
-0.664511 
-0.665822 
-0.665953 
-0.666005 
-0.666557 
-0.666707 
-0.666880 
-0.667341 
-0.667559 
-0.667724 
-0.667908 
-0.667960 
-0.668175 
-0.668224 
-0.668326 
-0.668469 
-0.669060 
-0.669177 
-0.669598 
-0.669759 
-0.669857 
-0.669871 
-0.669918 
-0.670024 
-0.670152 
-0.670602 
-0.670766 
-0.670987 
-0.671135 
-0.671841 
-0.672017 
-0.672021 
-0.672178 
-0.672560 
-0.672782 
-0.673135 
-0.673269 
-0.673648 
-0.673936 
-0.673959 
-0.673996 
-0.674129 
-0.674605 
-0.674785 
-0.674850 
-0.674919 
-0.674980 
-0.675255 
-0.675320 
-0.675476 
-0.675654 
-0.675659 
-0.675694 
-0.675750 
-0.675915 
-0.676407 
-0.676554 
-0.676628 
-0.676745 
-0.677342 
-0.677655 
-0.677710 
-0.677812 
-0.678068 
-0.678161 
-0.678271 
-0.678351 
-0.678878 
-0.679287 
-0.679643 
-0.679788 
-0.679904 
-0.680170 
-0.680180 
-0.680337 
-0.680667 
-0.681625 
-0.681922 
-0.683098 
-0.683453 
-0.683574 
-0.683833 
-0.684178 
-0.684219 
-0.684310 
-0.684445 
-0.684677 
-0.684757 
-0.684782 
-0.684799 
-0.684893 
-0.685173 
-0.685309 
-0.685539 
-0.685722 
-0.685786 
-0.685986 
-0.686125 
-0.686670 
-0.686988 
-0.687151 
-0.687294 
-0.687377 
-0.687387 
-0.687527 
-0.687546 
-0.687766 
-0.687861 
-0.688399 
-0.688542 
-0.688576 
-0.689194 
-0.689509 
-0.689566 
-0.690067 
-0.690096 
-0.690502 
-0.690731 
-0.690917 
-0.691745 
-0.692076 
-0.692082 
-0.692463 
-0.692488 
-0.692542 
-0.693311 
-0.693370 
-0.693692 
-0.694091 
-0.694985 
-0.695040 
-0.695535 
-0.695984 
-0.696513 
-0.696730 
-0.697616 
-0.697741 
-0.697848 
-0.698096 
-0.698573 
-0.698713 
-0.699075 
-0.699265 
-0.699344 
-0.699603 
-0.699784 
-0.699787 
-0.700301 
-0.700340 
-0.700620 
-0.700910 
-0.702437 
-0.702641 
-0.702645 
-0.702672 
-0.703096 
-0.703121 
-0.703186 
-0.703416 
-0.703571 
-0.703669 
-0.703921 
-0.704757 
-0.705300 
-0.705347 
-0.705760 
-0.706067 
-0.706378 
-0.706522 
-0.706995 
-0.707909 
-0.708262 
-0.708421 
-0.708616 
-0.708644 
-0.710807 
-0.711222 
-0.711355 
-0.711434 
-0.711906 
-0.712087 
-0.712244 
-0.712320 
-0.712522 
-0.713200 
-0.714091 
-0.714233 
-0.714432 
-0.714766 
-0.715065 
-0.715423 
-0.716091 
-0.716199 
-0.716247 
-0.716548 
-0.717047 
-0.717092 
-0.717170 
-0.717227 
-0.717297 
-0.717508 
-0.717512 
-0.717597 
-0.717778 
-0.717951 
-0.718099 
-0.718300 
-0.718666 
-0.718831 
-0.718867 
-0.719004 
-0.719269 
-0.719400 
-0.719462 
-0.720587 
-0.720952 
-0.721006 
-0.721540 
-0.721797 
-0.721822 
-0.722097 
-0.722377 
-0.723519 
-0.723838 
-0.723902 
-0.723975 
-0.724205 
-0.724252 
-0.724562 
-0.724785 
-0.725354 
-0.725663 
-0.725771 
-0.726144 
-0.726169 
-0.726187 
-0.726557 
-0.726575 
-0.726846 
-0.726900 
-0.727262 
-0.727276 
-0.727550 
-0.727586 
-0.727776 
-0.728256 
-0.728296 
-0.728589 
-0.728638 
-0.728903 
-0.729360 
-0.729398 
-0.729499 
-0.729702 
-0.729810 
-0.730677 
-0.730729 
-0.730928 
-0.731938 
-0.731957 
-0.732138 
-0.732149 
-0.732568 
-0.732654 
-0.732818 
-0.733178 
-0.733318 
-0.733968 
-0.734543 
-0.734682 
-0.734831 
-0.735031 
-0.735147 
-0.735307 
-0.735311 
-0.735723 
-0.735767 
-0.736092 
-0.736162 
-0.736462 
-0.736747 
-0.736901 
-0.737270 
-0.737408 
-0.737555 
-0.737611 
-0.737725 
-0.737939 
-0.738023 
-0.738534 
-0.738959 
-0.739467 
-0.739600 
-0.739794 
-0.740175 
-0.740396 
-0.740438 
-0.740450 
-0.741130 
-0.741167 
-0.741229 
-0.742097 
-0.742143 
-0.742623 
-0.742802 
-0.742903 
-0.743078 
-0.743163 
-0.743727 
-0.743788 
-0.743811 
-0.744056 
-0.744149 
-0.744207 
-0.744372 
-0.744390 
-0.744678 
-0.744732 
-0.744841 
-0.745008 
-0.745071 
-0.745154 
-0.745172 
-0.745415 
-0.746075 
-0.746635 
-0.746730 
-0.747157 
-0.747231 
-0.747277 
-0.747638 
-0.747803 
-0.747809 
-0.747942 
-0.748131 
-0.748551 
-0.748678 
-0.748768 
-0.748836 
-0.748942 
-0.749230 
-0.749422 
-0.749443 
-0.749457 
-0.749690 
-0.749719 
-0.749771 
-0.750027 
-0.750232 
-0.750337 
-0.750374 
-0.750902 
-0.751295 
-0.751439 
-0.751554 
-0.751912 
-0.752395 
-0.752479 
-0.752861 
-0.752935 
-0.752971 
-0.753379 
-0.753383 
-0.755033 
-0.755394 
-0.755581 
-0.755667 
-0.755693 
-0.755945 
-0.756143 
-0.756264 
-0.756846 
-0.757282 
-0.757294 
-0.757499 
-0.757571 
-0.757655 
-0.758290 
-0.758364 
-0.758491 
-0.758651 
-0.758790 
-0.758969 
-0.759208 
-0.759324 
-0.759590 
-0.759688 
-0.759735 
-0.759771 
-0.760137 
-0.760223 
-0.760249 
-0.760300 
-0.760475 
-0.760862 
-0.761029 
-0.761612 
-0.761661 
-0.761778 
-0.762171 
-0.762679 
-0.762871 
-0.762968 
-0.763137 
-0.763764 
-0.763811 
-0.764871 
-0.764924 
-0.764925 
-0.765058 
-0.765645 
-0.765887 
-0.765928 
-0.766387 
-0.766448 
-0.766701 
-0.766862 
-0.767014 
-0.767615 
-0.768013 
-0.768206 
-0.768230 
-0.768377 
-0.768804 
-0.769074 
-0.769121 
-0.769301 
-0.769599 
-0.769862 
-0.769914 
-0.770407 
-0.770597 
-0.770682 
-0.770686 
-0.770774 
-0.771248 
-0.771358 
-0.771367 
-0.771381 
-0.771387 
-0.771578 
-0.771723 
-0.772392 
-0.772644 
-0.772706 
-0.773016 
-0.773301 
-0.773503 
-0.773603 
-0.774273 
-0.774357 
-0.774386 
-0.774432 
-0.774659 
-0.775025 
-0.775058 
-0.775421 
-0.775641 
-0.775665 
-0.775767 
-0.775899 
-0.776050 
-0.776254 
-0.776374 
-0.776571 
-0.776935 
-0.777093 
-0.777380 
-0.777410 
-0.777505 
-0.777828 
-0.778152 
-0.778257 
-0.778391 
-0.778463 
-0.778803 
-0.779615 
-0.780153 
-0.780224 
-0.780251 
-0.780283 
-0.780407 
-0.780595 
-0.780868 
-0.780987 
-0.781219 
-0.782262 
-0.782533 
-0.782631 
-0.782633 
-0.783030 
-0.783099 
-0.783282 
-0.783413 
-0.783807 
-0.784022 
-0.784142 
-0.784295 
-0.784489 
-0.784929 
-0.785346 
-0.785932 
-0.786002 
-0.786187 
-0.786326 
-0.786796 
-0.787003 
-0.787027 
-0.787197 
-0.787347 
-0.787642 
-0.787729 
-0.787733 
-0.787929 
-0.788231 
-0.788265 
-0.788590 
-0.789217 
-0.789231 
-0.789244 
-0.789879 
-0.790125 
-0.790458 
-0.790920 
-0.790989 
-0.791261 
-0.791725 
-0.791770 
-0.792311 
-0.792566 
-0.792995 
-0.793410 
-0.793470 
-0.793657 
-0.793753 
-0.793879 
-0.794247 
-0.794745 
-0.794763 
-0.794910 
-0.795231 
-0.795490 
-0.795537 
-0.796788 
-0.797337 
-0.797798 
-0.798297 
-0.798440 
-0.798474 
-0.798683 
-0.798706 
-0.799290 
-0.799646 
-0.799678 
-0.799917 
-0.800129 
-0.800239 
-0.800440 
-0.800708 
-0.800775 
-0.801024 
-0.801065 
-0.801603 
-0.801897 
-0.802080 
-0.802262 
-0.802604 
-0.802663 
-0.803227 
-0.803330 
-0.803434 
-0.803575 
-0.803670 
-0.804177 
-0.804510 
-0.804596 
-0.804625 
-0.804641 
-0.804975 
-0.805115 
-0.805789 
-0.805799 
-0.806149 
-0.806322 
-0.806438 
-0.806693 
-0.806963 
-0.807067 
-0.807725 
-0.807959 
-0.808179 
-0.808404 
-0.808488 
-0.808617 
-0.808718 
-0.809095 
-0.809355 
-0.809371 
-0.809503 
-0.809743 
-0.809785 
-0.810266 
-0.810791 
-0.811560 
-0.811579 
-0.811709 
-0.812006 
-0.812189 
-0.812821 
-0.812902 
-0.812947 
-0.812997 
-0.813177 
-0.813904 
-0.814139 
-0.814351 
-0.814767 
-0.814794 
-0.814890 
-0.814909 
-0.814982 
-0.815162 
-0.815197 
-0.815294 
-0.815402 
-0.815549 
-0.815905 
-0.815991 
-0.816645 
-0.816651 
-0.816667 
-0.817747 
-0.818128 
-0.818716 
-0.818996 
-0.819102 
-0.819374 
-0.819437 
-0.819677 
-0.819695 
-0.819788 
-0.820146 
-0.820428 
-0.820926 
-0.821129 
-0.821331 
-0.821779 
-0.821842 
-0.822086 
-0.822139 
-0.822426 
-0.822875 
-0.822882 
-0.823013 
-0.823659 
-0.824041 
-0.824109 
-0.824853 
-0.825596 
-0.825895 
-0.826748 
-0.826769 
-0.827056 
-0.827268 
-0.827391 
-0.827615 
-0.827705 
-0.828546 
-0.828622 
-0.828721 
-0.828957 
-0.828988 
-0.829015 
-0.829201 
-0.829557 
-0.829569 
-0.829717 
-0.829754 
-0.829808 
-0.829939 
-0.830012 
-0.830110 
-0.830184 
-0.830764 
-0.831038 
-0.831323 
-0.831462 
-0.832095 
-0.832225 
-0.832555 
-0.832609 
-0.833062 
-0.833099 
-0.833182 
-0.833239 
-0.833243 
-0.834149 
-0.834212 
-0.834949 
-0.835050 
-0.835346 
-0.835348 
-0.835409 
-0.835533 
-0.836104 
-0.836828 
-0.837272 
-0.837417 
-0.837454 
-0.837986 
-0.838134 
-0.839112 
-0.839351 
-0.839868 
-0.840188 
-0.840390 
-0.840409 
-0.840433 
-0.840804 
-0.840899 
-0.841040 
-0.841657 
-0.842226 
-0.842312 
-0.842854 
-0.843179 
-0.843230 
-0.843312 
-0.843894 
-0.843910 
-0.844113 
-0.844281 
-0.844482 
-0.844667 
-0.845005 
-0.845123 
-0.845273 
-0.845325 
-0.845527 
-0.845633 
-0.846130 
-0.846611 
-0.846632 
-0.846642 
-0.846663 
-0.847030 
-0.847031 
-0.847330 
-0.847523 
-0.847684 
-0.847705 
-0.847953 
-0.848000 
-0.848023 
-0.848144 
-0.848912 
-0.848942 
-0.849272 
-0.849692 
-0.849850 
-0.849856 
-0.850586 
-0.850806 
-0.850920 
-0.851007 
-0.851100 
-0.851204 
-0.851501 
-0.851786 
-0.852032 
-0.852104 
-0.852391 
-0.852411 
-0.852622 
-0.852880 
-0.853671 
-0.853776 
-0.853785 
-0.853855 
-0.853999 
-0.854648 
-0.854973 
-0.855051 
-0.855419 
-0.855968 
-0.856141 
-0.856826 
-0.857143 
-0.857159 
-0.857555 
-0.857978 
-0.858676 
-0.858866 
-0.858895 
-0.859130 
-0.859242 
-0.859285 
-0.859329 
-0.859441 
-0.859479 
-0.859686 
-0.859687 
-0.860217 
-0.860237 
-0.860296 
-0.860587 
-0.860784 
-0.860834 
-0.861265 
-0.861759 
-0.861917 
-0.862016 
-0.862147 
-0.862779 
-0.862918 
-0.863850 
-0.863891 
-0.864016 
-0.864194 
-0.864442 
-0.864579 
-0.864873 
-0.865086 
-0.865181 
-0.865434 
-0.865535 
-0.865657 
-0.865679 
-0.865927 
-0.866327 
-0.866922 
-0.866993 
-0.867127 
-0.867197 
-0.867321 
-0.867469 
-0.867977 
-0.868474 
-0.868475 
-0.868918 
-0.868924 
-0.869090 
-0.869440 
-0.870053 
-0.870540 
-0.871113 
-0.871631 
-0.871851 
-0.872028 
-0.872841 
-0.872903 
-0.873021 
-0.873097 
-0.873217 
-0.873228 
-0.873271 
-0.873412 
-0.873414 
-0.873979 
-0.874309 
-0.875478 
-0.875604 
-0.875932 
-0.876748 
-0.877099 
-0.877384 
-0.877498 
-0.877614 
-0.878278 
-0.878417 
-0.878644 
-0.879009 
-0.879013 
-0.879885 
-0.880009 
-0.880020 
-0.880075 
-0.880596 
-0.880683 
-0.880725 
-0.880735 
-0.881062 
-0.881232 
-0.881521 
-0.881611 
-0.882204 
-0.882242 
-0.882928 
-0.883004 
-0.883037 
-0.883299 
-0.883896 
-0.884318 
-0.884543 
-0.885014 
-0.885474 
-0.886031 
-0.886116 
-0.886344 
-0.886736 
-0.886749 
-0.887197 
-0.887748 
-0.887965 
-0.888348 
-0.888433 
-0.888723 
-0.888799 
-0.888949 
-0.889154 
-0.889262 
-0.889343 
-0.889511 
-0.889553 
-0.889813 
-0.889956 
-0.890130 
-0.890233 
-0.890420 
-0.890718 
-0.891509 
-0.891529 
-0.891817 
-0.892051 
-0.892116 
-0.892318 
-0.892324 
-0.892721 
-0.892815 
-0.893119 
-0.893259 
-0.893318 
-0.893372 
-0.893909 
-0.894397 
-0.894532 
-0.894711 
-0.895010 
-0.895125 
-0.895354 
-0.895435 
-0.895828 
-0.896026 
-0.896055 
-0.896493 
-0.896618 
-0.896970 
-0.896971 
-0.897011 
-0.897055 
-0.897136 
-0.897424 
-0.897541 
-0.897560 
-0.897883 
-0.897897 
-0.898471 
-0.898478 
-0.898617 
-0.898709 
-0.898882 
-0.899026 
-0.899086 
-0.899431 
-0.899437 
-0.899521 
-0.899687 
-0.900065 
-0.900163 
-0.900294 
-0.900772 
-0.900895 
-0.900896 
-0.901503 
-0.901549 
-0.902208 
-0.902217 
-0.903366 
-0.903394 
-0.903662 
-0.904170 
-0.904187 
-0.904326 
-0.904539 
-0.904782 
-0.904932 
-0.904971 
-0.905096 
-0.905346 
-0.905452 
-0.906126 
-0.906164 
-0.906508 
-0.906575 
-0.906804 
-0.906964 
-0.907046 
-0.907284 
-0.907310 
-0.907750 
-0.908104 
-0.908109 
-0.908485 
-0.909329 
-0.909512 
-0.909529 
-0.909638 
-0.909643 
-0.909686 
-0.909708 
-0.910142 
-0.910227 
-0.910262 
-0.910267 
-0.910726 
-0.910972 
-0.911033 
-0.911647 
-0.912391 
-0.912683 
-0.913027 
-0.913355 
-0.914060 
-0.914522 
-0.914678 
-0.915221 
-0.916195 
-0.916250 
-0.916273 
-0.916378 
-0.916523 
-0.916649 
-0.916720 
-0.916851 
-0.917369 
-0.917395 
-0.917717 
-0.917979 
-0.918930 
-0.918992 
-0.919026 
-0.919176 
-0.919413 
-0.919481 
-0.919591 
-0.919869 
-0.920094 
-0.920128 
-0.920480 
-0.920914 
-0.921405 
-0.921551 
-0.921812 
-0.921837 
-0.922505 
-0.922572 
-0.922658 
-0.923069 
-0.923364 
-0.923381 
-0.923513 
-0.923692 
-0.923728 
-0.923792 
-0.923895 
-0.923970 
-0.924018 
-0.924097 
-0.924104 
-0.924540 
-0.925220 
-0.925318 
-0.925377 
-0.925379 
-0.925420 
-0.925497 
-0.925511 
-0.925819 
-0.925878 
-0.926068 
-0.926294 
-0.926364 
-0.926576 
-0.926589 
-0.926749 
-0.927244 
-0.927623 
-0.927706 
-0.927866 
-0.928000 
-0.928099 
-0.928603 
-0.928678 
-0.930653 
-0.930723 
-0.930810 
-0.930854 
-0.930875 
-0.931014 
-0.931024 
-0.931338 
-0.931518 
-0.931535 
-0.931551 
-0.931835 
-0.931895 
-0.932485 
-0.932716 
-0.933176 
-0.933273 
-0.933311 
-0.933420 
-0.934181 
-0.934312 
-0.934478 
-0.934495 
-0.935004 
-0.935296 
-0.935852 
-0.936315 
-0.936349 
-0.936754 
-0.936856 
-0.937714 
-0.937826 
-0.937901 
-0.938247 
-0.938456 
-0.938963 
-0.939121 
-0.939129 
-0.939294 
-0.939454 
-0.939649 
-0.939791 
-0.939879 
-0.939920 
-0.940271 
-0.940837 
-0.940884 
-0.941243 
-0.941299 
-0.941311 
-0.941724 
-0.942188 
-0.942388 
-0.942739 
-0.943051 
-0.943081 
-0.943222 
-0.943315 
-0.943459 
-0.943601 
-0.943652 
-0.943863 
-0.944318 
-0.944697 
-0.945502 
-0.945608 
-0.945760 
-0.946393 
-0.946435 
-0.946461 
-0.946527 
-0.946640 
-0.946698 
-0.946811 
-0.946925 
-0.947001 
-0.947894 
-0.948206 
-0.948211 
-0.948708 
-0.948911 
-0.949327 
-0.949576 
-0.949820 
-0.950104 
-0.950252 
-0.950714 
-0.950798 
-0.950873 
-0.950885 
-0.950893 
-0.950930 
-0.950959 
-0.951267 
-0.951620 
-0.951850 
-0.952070 
-0.952230 
-0.952308 
-0.952662 
-0.953274 
-0.953683 
-0.954232 
-0.954368 
-0.955938 
-0.956111 
-0.956468 
-0.956611 
-0.957394 
-0.957709 
-0.958022 
-0.958293 
-0.958637 
-0.958753 
-0.958780 
-0.958957 
-0.959096 
-0.959716 
-0.960668 
-0.960868 
-0.961014 
-0.961406 
-0.961565 
-0.961596 
-0.961843 
-0.961854 
-0.962112 
-0.962125 
-0.962342 
-0.962518 
-0.962551 
-0.962637 
-0.962958 
-0.963092 
-0.963505 
-0.963527 
-0.964248 
-0.965682 
-0.965882 
-0.966503 
-0.966573 
-0.966868 
-0.967277 
-0.967405 
-0.967568 
-0.967694 
-0.967726 
-0.967868 
-0.968185 
-0.968395 
-0.968549 
-0.968939 
-0.969070 
-0.969210 
-0.969308 
-0.969849 
-0.970042 
-0.970417 
-0.970610 
-0.970634 
-0.970693 
-0.971047 
-0.971058 
-0.971466 
-0.971818 
-0.972059 
-0.972194 
-0.972775 
-0.973147 
-0.974037 
-0.974202 
-0.974398 
-0.974499 
-0.974865 
-0.974993 
-0.975040 
-0.975215 
-0.975380 
-0.975484 
-0.975807 
-0.975934 
-0.976408 
-0.976798 
-0.976935 
-0.977227 
-0.978167 
-0.978229 
-0.979052 
-0.979434 
-0.979537 
-0.979666 
-0.979752 
-0.980315 
-0.980376 
-0.981109 
-0.981453 
-0.981637 
-0.981980 
-0.983039 
-0.983497 
-0.983596 
-0.984202 
-0.984264 
-0.984363 
-0.984386 
-0.984752 
-0.984845 
-0.984927 
-0.984980 
-0.985593 
-0.985946 
-0.986235 
-0.986467 
-0.986644 
-0.986918 
-0.987263 
-0.987332 
-0.987547 
-0.987592 
-0.988351 
-0.988382 
-0.988506 
-0.988606 
-0.988972 
-0.989059 
-0.989134 
-0.989175 
-0.989258 
-0.989483 
-0.989541 
-0.990165 
-0.991090 
-0.991152 
-0.991413 
-0.991751 
-0.991897 
-0.992010 
-0.992228 
-0.992352 
-0.992768 
-0.993110 
-0.993125 
-0.993528 
-0.993547 
-0.993774 
-0.994196 
-0.994510 
-0.994635 
-0.995165 
-0.995223 
-0.995253 
-0.995298 
-0.995299 
-0.995300 
-0.995620 
-0.995737 
-0.995912 
-0.996042 
-0.996442 
-0.997052 
-0.997451 
-0.997655 
-0.997799 
-0.997875 
-0.997970 
-0.998142 
-0.998525 
-0.998925 
-0.999241 
-0.999412 
-0.999500 
-0.999630 
-0.999652 
-0.999660 
-0.999994 
-512 
-0.001125 
-0.003231 
-0.003579 
-0.004162 
-0.005409 
-0.005709 
-0.006005 
-0.014579 
-0.016301 
-0.020023 
-0.032893 
-0.035421 
-0.036327 
-0.039280 
-0.040864 
-0.049162 
-0.051508 
-0.051939 
-0.052529 
-0.053422 
-0.054058 
-0.063096 
-0.063561 
-0.064171 
-0.069755 
-0.069906 
-0.070090 
-0.072329 
-0.072545 
-0.074161 
-0.074530 
-0.076995 
-0.078232 
-0.086056 
-0.087644 
-0.091149 
-0.093480 
-0.093740 
-0.093920 
-0.098837 
-0.099559 
-0.099640 
-0.103171 
-0.107848 
-0.108809 
-0.109733 
-0.111276 
-0.113281 
-0.114668 
-0.119111 
-0.121143 
-0.121259 
-0.125468 
-0.125475 
-0.126075 
-0.129790 
-0.131702 
-0.134902 
-0.136075 
-0.137232 
-0.138238 
-0.139058 
-0.141603 
-0.147660 
-0.151230 
-0.152390 
-0.152876 
-0.154724 
-0.156679 
-0.157139 
-0.157272 
-0.157807 
-0.162757 
-0.163131 
-0.163968 
-0.164102 
-0.165974 
-0.169607 
-0.169650 
-0.169820 
-0.176211 
-0.178208 
-0.180372 
-0.180421 
-0.181161 
-0.182556 
-0.184622 
-0.186265 
-0.187533 
-0.187616 
-0.188201 
-0.189751 
-0.191112 
-0.192214 
-0.197551 
-0.198021 
-0.200352 
-0.202213 
-0.203548 
-0.204329 
-0.204655 
-0.207844 
-0.210883 
-0.215825 
-0.218257 
-0.221009 
-0.221966 
-0.223656 
-0.225491 
-0.226107 
-0.228968 
-0.229137 
-0.230996 
-0.231428 
-0.232262 
-0.233119 
-0.233656 
-0.233892 
-0.238280 
-0.240062 
-0.242887 
-0.244327 
-0.244413 
-0.248044 
-0.257265 
-0.257469 
-0.258906 
-0.260445 
-0.260497 
-0.261570 
-0.265461 
-0.266666 
-0.273911 
-0.276235 
-0.277775 
-0.280042 
-0.281059 
-0.283315 
-0.284293 
-0.288270 
-0.288379 
-0.288778 
-0.290829 
-0.291053 
-0.292517 
-0.293678 
-0.294160 
-0.296032 
-0.297288 
-0.301763 
-0.304285 
-0.304295 
-0.304956 
-0.305239 
-0.305408 
-0.307458 
-0.308157 
-0.311950 
-0.313230 
-0.315658 
-0.316867 
-0.324807 
-0.326013 
-0.328374 
-0.328777 
-0.329642 
-0.330337 
-0.331386 
-0.331479 
-0.334972 
-0.335223 
-0.336351 
-0.338243 
-0.341354 
-0.344251 
-0.344943 
-0.347116 
-0.348893 
-0.350360 
-0.352458 
-0.354049 
-0.357193 
-0.359095 
-0.360443 
-0.361601 
-0.361917 
-0.362154 
-0.363598 
-0.364784 
-0.368664 
-0.375207 
-0.380215 
-0.382167 
-0.382896 
-0.383188 
-0.383832 
-0.385748 
-0.391690 
-0.394327 
-0.394383 
-0.394388 
-0.394521 
-0.398437 
-0.400229 
-0.400709 
-0.400944 
-0.401188 
-0.410788 
-0.413984 
-0.416501 
-0.426199 
-0.427328 
-0.431953 
-0.434009 
-0.434513 
-0.436497 
-0.437638 
-0.439560 
-0.440105 
-0.442560 
-0.447034 
-0.449105 
-0.450918 
-0.452576 
-0.457702 
-0.457716 
-0.461420 
-0.463662 
-0.471483 
-0.473894 
-0.476585 
-0.477397 
-0.481733 
-0.481936 
-0.482491 
-0.482950 
-0.487427 
-0.492399 
-0.492422 
-0.493583 
-0.495444 
-0.495977 
-0.496074 
-0.497259 
-0.498144 
-0.498525 
-0.503461 
-0.510686 
-0.512535 
-0.512932 
-0.513401 
-0.517715 
-0.518515 
-0.520210 
-0.521563 
-0.524287 
-0.525747 
-0.525995 
-0.526745 
-0.529899 
-0.530808 
-0.531606 
-0.532441 
-0.532846 
-0.532960 
-0.539760 
-0.546107 
-0.547397 
-0.548042 
-0.552316 
-0.552485 
-0.553970 
-0.555398 
-0.556444 
-0.557561 
-0.567831 
-0.573319 
-0.576200 
-0.576691 
-0.576971 
-0.578635 
-0.579430 
-0.583570 
-0.584489 
-0.588640 
-0.589637 
-0.592540 
-0.593211 
-0.593892 
-0.595045 
-0.596196 
-0.598481 
-0.603109 
-0.606969 
-0.608883 
-0.609106 
-0.609729 
-0.612442 
-0.612640 
-0.618447 
-0.618925 
-0.618958 
-0.619596 
-0.621823 
-0.622095 
-0.625665 
-0.625964 
-0.627158 
-0.628871 
-0.628910 
-0.629480 
-0.633072 
-0.635712 
-0.637552 
-0.637640 
-0.638654 
-0.639458 
-0.639979 
-0.641081 
-0.642693 
-0.645889 
-0.647207 
-0.649659 
-0.649707 
-0.651132 
-0.653130 
-0.653305 
-0.655368 
-0.656564 
-0.657120 
-0.657304 
-0.658747 
-0.658831 
-0.659146 
-0.663227 
-0.666557 
-0.666880 
-0.667341 
-0.667724 
-0.673936 
-0.674605 
-0.675476 
-0.675654 
-0.677812 
-0.684178 
-0.684219 
-0.684445 
-0.684757 
-0.685722 
-0.685786 
-0.685986 
-0.686125 
-0.686670 
-0.687387 
-0.687861 
-0.692076 
-0.695984 
-0.697848 
-0.699075 
-0.700301 
-0.700620 
-0.706067 
-0.707909 
-0.712087 
-0.717297 
-0.718867 
-0.719269 
-0.719462 
-0.720952 
-0.721006 
-0.724252 
-0.727550 
-0.729360 
-0.730729 
-0.732149 
-0.732654 
-0.737408 
-0.738534 
-0.738959 
-0.740438 
-0.743811 
-0.745071 
-0.747803 
-0.747809 
-0.749771 
-0.755581 
-0.757294 
-0.759735 
-0.760249 
-0.760475 
-0.761778 
-0.764871 
-0.768230 
-0.769914 
-0.771358 
-0.774273 
-0.774386 
-0.775767 
-0.778257 
-0.780868 
-0.782262 
-0.783099 
-0.783282 
-0.786002 
-0.793470 
-0.793657 
-0.797798 
-0.798440 
-0.801897 
-0.804177 
-0.807725 
-0.809095 
-0.809785 
-0.814767 
-0.814909 
-0.818128 
-0.819677 
-0.819695 
-0.826769 
-0.827391 
-0.828957 
-0.829201 
-0.829808 
-0.829939 
-0.830012 
-0.831038 
-0.833239 
-0.833243 
-0.836104 
-0.836828 
-0.838134 
-0.839112 
-0.840188 
-0.843910 
-0.847684 
-0.848942 
-0.850920 
-0.857555 
-0.858676 
-0.861917 
-0.864579 
-0.865181 
-0.865535 
-0.868924 
-0.870540 
-0.873271 
-0.873979 
-0.877384 
-0.877614 
-0.878278 
-0.879009 
-0.880075 
-0.881062 
-0.883037 
-0.885014 
-0.888723 
-0.888949 
-0.889956 
-0.890233 
-0.891529 
-0.893372 
-0.897560 
-0.902208 
-0.903366 
-0.904170 
-0.904932 
-0.906804 
-0.908485 
-0.909643 
-0.910972 
-0.911647 
-0.913027 
-0.916195 
-0.916273 
-0.918930 
-0.919026 
-0.919591 
-0.920128 
-0.920914 
-0.923069 
-0.923728 
-0.923970 
-0.925377 
-0.926576 
-0.930810 
-0.931835 
-0.931895 
-0.932485 
-0.934495 
-0.935004 
-0.943051 
-0.944318 
-0.949327 
-0.950104 
-0.950252 
-0.952230 
-0.956468 
-0.958637 
-0.967405 
-0.970634 
-0.971466 
-0.972775 
-0.979434 
-0.983596 
-0.984363 
-0.984752 
-0.984845 
-0.986467 
-0.992228 
-0.997799 
-0.998925 
-0.999994 
index 1a5943fe24c3401b6691ff7d14c8b60d87da8e3e..927c43a3be183763b586c3a9fa45eb5ce266a0c4 100644 (file)
@@ -1,50 +1,31 @@
+/* Quicksort algorithm */
 
-//
-//               quicksort algorithm
-//
-//                                    Michel Vallieres, 2009
-//                                   
-//  ref: http://cprogramminglanguage.net/quicksort-algorithm-c-source-code.aspx
-//       Numerical Recipes
-// 
-
-#include <stdio.h>
-#include <stdlib.h> 
-
-
-void init( double * list, int list_size )
-{
-  int i;
-
-  for( i=0; i<list_size ; i++ )
-    {
-      list[i] = (double)rand()/(double)RAND_MAX;
-    }
-}
-
+/* Michel Vallieres, 2009
+ *                                   
+ *  ref: http://cprogramminglanguage.net/quicksort-algorithm-c-source-code.aspx
+ *       Numerical Recipes
+ */ 
 
 void swap(double *x, double *y)
 {
-   double temp;
-   temp = *x;
-   *x = *y;
-   *y = temp;
+  double temp;
+  temp = *x;
+  *x = *y;
+  *y = temp;
 }
 
-
 int choose_pivot(int i,int j )
 {
-   return((i+j) /2);
+  return((i+j) /2);
 }
 
-
 void quicksort( double list[], int m, int n )
 {
-   int i,j,k;
-   double key;
+  int i,j,k;
+  double key;
 
-   if( m < n)
-   {
+  if( m < n)
+    {
       k = choose_pivot(m,n);
       swap(&list[m],&list[k]);
       key = list[m];
@@ -52,75 +33,24 @@ void quicksort( double list[], int m, int n )
 
       j = n;
       while(i <= j)
-      {
-         while((i <= n) && (list[i] <= key))
-                i++;
-         while((j >= m) && (list[j] > key))
-                j--;
-         if( i < j)
-                swap(&list[i],&list[j]);
-      }
-         // swap two elements
+       {
+         while((i <= n) && (list[i] <= key))
+           i++;
+         while((j >= m) && (list[j] > key))
+           j--;
+         if( i < j)
+           swap(&list[i],&list[j]);
+       }
+      // swap two elements
       swap(&list[m],&list[j]);
 
-         // recursively sort the lesser list
+      // recursively sort the lesser list
       quicksort(list,m,j-1);
       quicksort(list,j+1,n);
-   }
-}
-
-
-void printlist(double list[],int n, int list_size)
-{
-   int i;
-   for(i=0;i<n;i++)
-      printf("%f\t",list[i]);
-   printf("\n");
-   for(i=n;i>0;i--)
-      printf("%f\t",list[list_size-i]);
-   printf("\n");
-}
-
-
-double checklist(double list[], int list_size )
-{
-  int i;
-  double sum;
-
-  sum = 0.0;
-  for(i = 0; i < list_size; i++ )
-    sum = sum + list[i];
-  return sum;
+    }
 }
 
-
-int main()
+void sort(int list_size, double *list)
 {
-   const int MAX_ELEMENTS = 1000000;
-   double list[MAX_ELEMENTS];
-   int i, list_size;
-
-   // size of lit 
-   list_size = 1000;
-
-   i = 0;
-   
-   // generate a list of random numbers
-   init( list, list_size );
-
-   // print initial list
-   printf("The list before sorting is:\n");
-   printlist(list,3,list_size);
-   printf( "Check: sum of %d elements = %f\n",
-          list_size, checklist( list, list_size ) );
-   
-   // sort the list using quicksort
-   quicksort(list,0,list_size-1);
-
-   // print the result
-   printf("The list after sorting using quicksort algorithm:\n");
-   printlist(list,3,list_size);
-   printf( "Check: sum of %d elements = %f\n",
-          list_size, checklist( list, list_size ) );
-
+  quicksort(list, 0, list_size-1);
 }