From f0f362eeeeb2310fb953aca4ebef69ba4e991f26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laure=CE=B7t?= Date: Fri, 23 Jun 2023 19:34:09 +0200 Subject: [PATCH] init --- BE/01_RingD/Makefile | 17 + BE/01_RingD/ringd.c | 136 + BE/02_normA/Makefile | 17 + BE/02_normA/normA.c | 159 + BE/03_overmean/Makefile | 18 + BE/03_overmean/overmean.c | 120 + BE/04_n-corps/n-corps.md | 170 + BE/Makefile | 11 + BE/init.sh | 6 + TP1/00_Who_am_i/Makefile | 15 + TP1/00_Who_am_i/who_am_i.c | 26 + TP1/01_Ring/Makefile | 14 + TP1/01_Ring/ring.c | 74 + TP1/02_Limite/Makefile | 14 + TP1/02_Limite/limite.c | 86 + TP1/03_Dot/Makefile | 14 + TP1/03_Dot/dotp.c | 91 + TP1/04_Mult/Makefile | 14 + TP1/04_Mult/MultAv.c | 119 + TP1/05_CG/CG_par | Bin 0 -> 21824 bytes TP1/05_CG/CG_par.c | 121 + TP1/05_CG/CG_par.h | 1 + TP1/05_CG/CG_sq.c | 85 + TP1/05_CG/CG_sq.h | 1 + TP1/05_CG/Laplacien.mtx | 21 + TP1/05_CG/Makefile | 18 + TP1/05_CG/main_par.c | 98 + TP1/05_CG/main_sq.c | 79 + TP1/05_CG/nos3.mtx | 8416 +++++++++++++++++++++++++++ TP1/05_CG/util.c | 114 + TP1/05_CG/util.h | 21 + TP1/init.sh | 6 + TP1/tp_mpi.pdf | Bin 0 -> 177718 bytes TP2/.vscode/settings.json | 7 + TP2/Makefile | 26 + TP2/README | 1 + TP2/bench.csv | 151 + TP2/bench.sh | 39 + TP2/check.csv | 16 + TP2/check.sh | 39 + TP2/hostfiles/cluster_hostfile.txt | 256 + TP2/hostfiles/hostfile.txt | 16 + TP2/init.sh | 4 + TP2/log.txt | 117 + TP2/platforms/cluster_crossbar.xml | 7 + TP2/platforms/cluster_fat_tree.xml | 17 + TP2/platforms/default.xml | 17 + TP2/platforms/simgrid_update_xml.pl | 277 + TP2/src/dsmat.c | 360 ++ TP2/src/dsmat.h | 62 + TP2/src/ex1.c | 88 + TP2/src/ex1.c.clem | 63 + TP2/src/ex1.h | 5 + TP2/src/ex2.c | 53 + TP2/src/ex2.h | 5 + TP2/src/ex3.c | 108 + TP2/src/ex3.h | 6 + TP2/src/gemms.c | 157 + TP2/src/gemms.h | 9 + TP2/src/main.c | 270 + TP2/src/test.c | 74 + TP2/src/utils.c | 85 + TP2/src/utils.h | 34 + TP2/src/who_am_i.c | 23 + TP2/subject_mpi.pdf | Bin 0 -> 263707 bytes TP2/utils.sh | 53 + 66 files changed, 12547 insertions(+) create mode 100644 BE/01_RingD/Makefile create mode 100644 BE/01_RingD/ringd.c create mode 100644 BE/02_normA/Makefile create mode 100644 BE/02_normA/normA.c create mode 100644 BE/03_overmean/Makefile create mode 100644 BE/03_overmean/overmean.c create mode 100644 BE/04_n-corps/n-corps.md create mode 100644 BE/Makefile create mode 100644 BE/init.sh create mode 100644 TP1/00_Who_am_i/Makefile create mode 100644 TP1/00_Who_am_i/who_am_i.c create mode 100644 TP1/01_Ring/Makefile create mode 100644 TP1/01_Ring/ring.c create mode 100644 TP1/02_Limite/Makefile create mode 100644 TP1/02_Limite/limite.c create mode 100644 TP1/03_Dot/Makefile create mode 100644 TP1/03_Dot/dotp.c create mode 100644 TP1/04_Mult/Makefile create mode 100644 TP1/04_Mult/MultAv.c create mode 100755 TP1/05_CG/CG_par create mode 100644 TP1/05_CG/CG_par.c create mode 100644 TP1/05_CG/CG_par.h create mode 100644 TP1/05_CG/CG_sq.c create mode 100644 TP1/05_CG/CG_sq.h create mode 100644 TP1/05_CG/Laplacien.mtx create mode 100644 TP1/05_CG/Makefile create mode 100644 TP1/05_CG/main_par.c create mode 100644 TP1/05_CG/main_sq.c create mode 100644 TP1/05_CG/nos3.mtx create mode 100644 TP1/05_CG/util.c create mode 100644 TP1/05_CG/util.h create mode 100755 TP1/init.sh create mode 100644 TP1/tp_mpi.pdf create mode 100644 TP2/.vscode/settings.json create mode 100644 TP2/Makefile create mode 100644 TP2/README create mode 100644 TP2/bench.csv create mode 100755 TP2/bench.sh create mode 100644 TP2/check.csv create mode 100755 TP2/check.sh create mode 100644 TP2/hostfiles/cluster_hostfile.txt create mode 100644 TP2/hostfiles/hostfile.txt create mode 100644 TP2/init.sh create mode 100644 TP2/log.txt create mode 100644 TP2/platforms/cluster_crossbar.xml create mode 100644 TP2/platforms/cluster_fat_tree.xml create mode 100644 TP2/platforms/default.xml create mode 100755 TP2/platforms/simgrid_update_xml.pl create mode 100644 TP2/src/dsmat.c create mode 100644 TP2/src/dsmat.h create mode 100644 TP2/src/ex1.c create mode 100644 TP2/src/ex1.c.clem create mode 100644 TP2/src/ex1.h create mode 100644 TP2/src/ex2.c create mode 100644 TP2/src/ex2.h create mode 100644 TP2/src/ex3.c create mode 100644 TP2/src/ex3.h create mode 100644 TP2/src/gemms.c create mode 100644 TP2/src/gemms.h create mode 100644 TP2/src/main.c create mode 100644 TP2/src/test.c create mode 100644 TP2/src/utils.c create mode 100644 TP2/src/utils.h create mode 100644 TP2/src/who_am_i.c create mode 100644 TP2/subject_mpi.pdf create mode 100755 TP2/utils.sh diff --git a/BE/01_RingD/Makefile b/BE/01_RingD/Makefile new file mode 100644 index 0000000..10b9623 --- /dev/null +++ b/BE/01_RingD/Makefile @@ -0,0 +1,17 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +DIR=01_RingD +SRC=ringd + +all: ${SRC} + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +${SRC}: ${SRC}.o + $(MPICC) -o $@ $^ + +clean: + rm -rf *.o ${SRC} diff --git a/BE/01_RingD/ringd.c b/BE/01_RingD/ringd.c new file mode 100644 index 0000000..fdeca44 --- /dev/null +++ b/BE/01_RingD/ringd.c @@ -0,0 +1,136 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + + MPI_Init(&argc, &argv); + + int comm_size; + MPI_Comm_size(MPI_COMM_WORLD, &comm_size); + if (comm_size % 2 != 0) + { + printf("This application is meant to be run with an even number of MPI processes, not %d.\n", comm_size); + MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE); + } + + // Get my rank in the global communicator + int my_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + + // Determine the colour and key based on whether my rank is even. + char subcommunicator; + int colour; + int key; + if (my_rank % 2 == 0) + { + subcommunicator = 'E'; + colour = 0; + key = my_rank; + } + else + { + subcommunicator = 'O'; + colour = 1; + key = comm_size - my_rank; + } + + // Split of the global communicator + MPI_Comm new_comm; + MPI_Comm_split(MPI_COMM_WORLD, colour, key, &new_comm); + + int my_new_comm_rank, new_comm_size; + // Get my rank in the new communicator + MPI_Comm_rank(new_comm, &my_new_comm_rank); + // Get the size of the new communicator + MPI_Comm_size(new_comm, &new_comm_size); + + // Print my new rank and new communicator + printf("[MPI process %d] I am now MPI process %d in subcommunicator %c.\n", my_rank, my_new_comm_rank, subcommunicator); + + // barriere pour clean un peu le stdout + // MPI_Barrier(MPI_COMM_WORLD); + + int previous, next; + // determine my neighbours according to my rank in my subcommunicator + if (my_new_comm_rank == 0) + { + previous = new_comm_size - 1; + next = my_new_comm_rank + 1; + } + else if (my_new_comm_rank == new_comm_size - 1) + { + previous = my_new_comm_rank - 1; + next = 0; + } + else + { + previous = my_new_comm_rank - 1; + next = my_new_comm_rank + 1; + } + + // printf("[MPI process %d] new %d previous %d next %d in subcommunicator %c.\n", my_rank, my_new_comm_rank, previous, next, subcommunicator); + + float value = 1.0; + MPI_Status status; + + // Even: clockwise + multiplication + if (subcommunicator == 'E') + { + // receive value from previous node + if (my_new_comm_rank != 0) + { + MPI_Recv(&value, 1, MPI_FLOAT, previous, 0, new_comm, &status); + printf("[MPI process %d_%c] RECEIVED from process %d of %d, value = %f\n", my_rank, subcommunicator, my_new_comm_rank, new_comm_size, value); + value = value * 2.0; + printf("[MPI process %d_%c] UPDATE, value = %f\n", my_rank, subcommunicator, value); + } + else + { + printf("[MPI process %d_%c] START, value = %f\n", my_rank, subcommunicator, value); + } + + // send value to next node + if (my_new_comm_rank != new_comm_size - 1) + { + MPI_Send(&value, 1, MPI_FLOAT, next, 0, new_comm); + printf("[MPI process %d_%c] SENT to process %d of %d, value = %f\n", my_rank, subcommunicator, my_new_comm_rank, new_comm_size, value); + } + } + + // Odd: counter-clockwise + division + if (subcommunicator == 'O') + { + // receive value from next node + if (my_new_comm_rank != 0) + { + MPI_Recv(&value, 1, MPI_FLOAT, next, 0, new_comm, &status); + printf("[MPI process %d_%c] RECEIVED from process %d of %d, value = %f\n", my_rank, subcommunicator, my_new_comm_rank, new_comm_size, value); + value = value / 2.0; + printf("[MPI process %d_%c] UPDATE, value = %f\n", my_rank, subcommunicator, value); + } + else + { + printf("[MPI process %d_%c] START, value = %f\n", my_rank, subcommunicator, value); + } + + // send value to previous node + if (my_new_comm_rank != 1) + { + MPI_Send(&value, 1, MPI_FLOAT, previous, 0, new_comm); + printf("[MPI process %d_%c] SENT to process %d of %d, value = %f\n", my_rank, subcommunicator, my_new_comm_rank, new_comm_size, value); + } + } + + // barrière pour clean un peu le stdout + // MPI_Barrier(MPI_COMM_WORLD); + + // the end + printf("[MPI process %d_%c] The End\n", my_rank, subcommunicator); + + // Free the communicator + MPI_Finalize(); + + return EXIT_SUCCESS; +} diff --git a/BE/02_normA/Makefile b/BE/02_normA/Makefile new file mode 100644 index 0000000..41566df --- /dev/null +++ b/BE/02_normA/Makefile @@ -0,0 +1,17 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +DIR=02_normA +SRC=normA + +all: ${SRC} + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +${SRC}: ${SRC}.o + $(MPICC) -o $@ $^ + +clean: + rm -rf *.o ${SRC} ${DIR} diff --git a/BE/02_normA/normA.c b/BE/02_normA/normA.c new file mode 100644 index 0000000..e195a81 --- /dev/null +++ b/BE/02_normA/normA.c @@ -0,0 +1,159 @@ +#include +#include +#include +#include + +void multAv(double x[], double *A, double y[], int m, int n); + +void init0(double x[], int n); + +double dot(double x[], double y[], int n); + +int main(int argc, char *argv[]) +{ + int size; + int const n = 12; + int my_rank; + double local_dot, global_dot, normA, reference; + + MPI_Init(&argc, &argv); + + // Get number of processes and check that 4 processes are used + MPI_Comm_size(MPI_COMM_WORLD, &size); + if (size != 4) + { + printf("This application is meant to be run with 4 MPI processes.\n"); + MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE); + } + + // Get my rank + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + + // Declaration and Initialization of A (one for all components) + // the blocking on rows, b, is the same for all nodes + // (if you don't change the constants) + int b = n / size; + double *A; + + A = (double *)malloc(b * n * sizeof(double)); + + for (int i = 0; i < b; i++) + { + for (int j = 0; j < n; j++) + { + A[i * n + j] = 1.0; + reference = 66.000000; // sum_{i=1}^{12-1} + + // A[i*n + j] = (double) my_rank; + // reference = 97.488461; + + // A[i*n + j] = (double) my_rank*(i+1)+(j+1); + // reference = 239.899979; + + // printf("Process [%d], A[%d][%d] = %f\n", my_rank, i, j, A[i*n+j]); + } + } + + // reference vector to verify that the global vector is correct + double v_ref[n]; + for (int i = 0; i < n; i++) + { + v_ref[i] = (double)i; + } + + // local vector + double x_local[b]; + for (int i = 0; i < b; i++) + { + x_local[i] = (double)b * my_rank + i; + // printf("Process [%d], v_local[%d] = %f\n", my_rank, i, v_local[i]); + } + + // global vector + double x_global[n]; + init0(x_global, n); + + // Use a collective communication in order to gather on ALL the nodes the + // part of the local vector into the global vector + MPI_Allgather(x_local, b, MPI_DOUBLE, x_global, b, MPI_DOUBLE, MPI_COMM_WORLD); + + // the node 2 checks if the global vector is correct (should be 0 for all components) + if (my_rank == 2) + { + for (int i = 0; i < n; i++) + { + printf("Process [%d], vérif[%d] = %f\n", my_rank, i, x_global[i] - v_ref[i]); + } + } + + MPI_Barrier(MPI_COMM_WORLD); + + // vector y_local = A * x_global + double y_local[b]; + init0(y_local, b); + + // Perform the multiplication + multAv(y_local, A, x_global, b, n); + + // each node displays y (with A, full of ones, all the components of x + // should be the same) + for (int i = 0; i < b; i++) + { + printf("Process [%d] y_local[%d] = %f\n", my_rank, i, y_local[i]); + } + + // Perform the dot product on the local x + local_dot = dot(x_local, y_local, b); + printf("Process [%d] local dot %f\n", my_rank, local_dot); + + // Use one single collective communication to perfom the reduction in + // global_dot + MPI_Allreduce(&local_dot, &global_dot, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + + // the norm is the square root of the global_dot + normA = sqrt(global_dot); + + // Another node displays the norm + if (my_rank == 2) + { + printf("Process [%d] normA = %f, reference = %f\n", my_rank, normA, reference); + } + + MPI_Finalize(); + + return EXIT_SUCCESS; +} + +void multAv(double x[], double *A, double y[], int m, int n) +{ + for (int i = 0; i < m; i++) + { + x[i] = 0.0; + for (int j = 0; j < n; j++) + { + x[i] += A[i * n + j] * y[j]; + } + } + return; +} + +void init0(double x[], int n) +{ + for (int i = 0; i < n; i++) + { + x[i] = 0.0; + } + return; +} + +double dot(double x[], double y[], int n) +{ + double res = 0.0; + + for (int i = 0; i < n; i++) + { + res += x[i] * y[i]; + } + + return res; +} diff --git a/BE/03_overmean/Makefile b/BE/03_overmean/Makefile new file mode 100644 index 0000000..f27d306 --- /dev/null +++ b/BE/03_overmean/Makefile @@ -0,0 +1,18 @@ +MPICC=smpicc +CFLAGS=-g -O4 + + +DIR=03_overmean +SRC=overmean + +all: ${SRC} + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +${SRC}: ${SRC}.o + $(MPICC) -o $@ $^ + +clean: + rm -rf *.o ${SRC} ${DIR} diff --git a/BE/03_overmean/overmean.c b/BE/03_overmean/overmean.c new file mode 100644 index 0000000..f6f78f6 --- /dev/null +++ b/BE/03_overmean/overmean.c @@ -0,0 +1,120 @@ +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + // comment this line, if you want the same vector for each run + srand(time(NULL)); + + MPI_Init(&argc, &argv); + + // Get number of processes + int nb_process; + MPI_Comm_size(MPI_COMM_WORLD, &nb_process); + + // Fix root's rank + int root_rank = 0; + + // Get my rank + int my_rank; + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + + // global size (only the root know its value) + int global_size = 0; + // local size (we fix this value in order to be regular) + int local_size = 3; + // local vector + int *local_vector = NULL; + int *global_vector = NULL; + + // root process + if (my_rank == root_rank) + { + global_size = nb_process * local_size; // to be able to split + // the global vector into sub-vectors + // with the same size + printf("global_size = %d\n", global_size); + global_vector = (int *)malloc(sizeof(int) * global_size); + for (int i = 0; i < global_size; i++) + { + // global_vector[i] = i; + global_vector[i] = rand() % 101; + printf("global_vector[%d] = %d\n", i, global_vector[i]); + } + } + + // Each process gets its part of the global vector + local_vector = (int *)malloc(sizeof(int) * local_size); + MPI_Scatter(global_vector, local_size, MPI_INT, local_vector, local_size, MPI_INT, root_rank, MPI_COMM_WORLD); + + // print the local vector + for(int i = 0; i < local_size; i++) + { + printf("[%d] local_vector[%d] = %d\n", my_rank, i, local_vector[i]); + } + + // barriere pour clean un peu le stdout + // MPI_Barrier(MPI_COMM_WORLD); + + // compute the local sum + int local_sum = 0.0; + for (int i = 0; i < local_size; i++) + { + local_sum += local_vector[i]; + } + printf("Process %d computed its local sum = %d.\n", my_rank, local_sum); + + // compute the global sum by a reduction + int global_sum; + MPI_Reduce(&local_sum, &global_sum, 1, MPI_INT, MPI_SUM, root_rank, MPI_COMM_WORLD); + + // print the global sum + if (my_rank == root_rank) { + printf("Process %d got the global sum = %d.\n", my_rank, global_sum); + } + + // barriere pour clean un peu le stdout + // MPI_Barrier(MPI_COMM_WORLD); + + float mean; // float!! + + // the root computes the mean (only one to know the global size) + if (my_rank == root_rank) + { + mean = ((float)global_sum) / global_size; + printf("Process %d computed the mean = %f.\n", my_rank, mean); + } + + // broadcast of the mean to all process + MPI_Bcast(&mean, 1, MPI_FLOAT, root_rank, MPI_COMM_WORLD); + + // print the mean + printf("Process %d got the mean = %f.\n", my_rank, mean); + + // barriere pour clean un peu le stdout + // MPI_Barrier(MPI_COMM_WORLD); + + // compute the number of values (from the local vector) over the mean + int local_number = 0; + for (int i = 0; i < local_size; i++) + { + if (local_vector[i] >= mean) + local_number++; + } + printf("Process %d has %d values over the mean.\n", my_rank, local_number); + + // reduce these numbers on root process + int over_the_mean; + MPI_Reduce(&local_number, &over_the_mean, 1, MPI_INT, MPI_SUM, root_rank, MPI_COMM_WORLD); + + // print the total number of values over the mean + if (my_rank == root_rank) { + printf("the total number of values over the mean is %d.\n", over_the_mean); + } + + MPI_Finalize(); + + return EXIT_SUCCESS; +} diff --git a/BE/04_n-corps/n-corps.md b/BE/04_n-corps/n-corps.md new file mode 100644 index 0000000..dce1aff --- /dev/null +++ b/BE/04_n-corps/n-corps.md @@ -0,0 +1,170 @@ +# Exercice 4 : problème aux N-corps + +Ce fichier fait partie du rendu évalué pour le BE de Calcul parallèle. + +## Question 1 + +Déterminer quels calculs peuvent être parallélisés et quelles communications mettre en place dans le code séquentiel suivant. Proposer une réécriture parallèle avectransmission de messages de ce code. + +``` +variables : force[1,...,N], data[1,...,N] +for t in 1, nb_steps do + for i in 1, N do + force[i] = 0 + for j in 1, N do + force[i] = force[i] + interaction(data[i], data[j]) + end for + end for + for i in 1, N do + data[i] = update(data[i], force[i]) + end for +end for +``` + +### Réponse Q2 + +On suppose que l'on possède K processus, tels que N divise K. +Par exemple K = 2N. + +```C +variables (globales) : K, N, ratio +variables (locales) : ik, force[1,...,ratio] +variables : data[1,...,N] + +// data est à la fois globale et locale car on le communique entre les processus + +ratio = K / N + +// Chaque processus k va s'occuper de `ratio` corps +// par exemple si `ratio` = 2 +// processus 0 -> corps 0 + corps 1 +// processus 1 -> corps 2 + corps 3 +// ... + +// Chaque processus doit connaitre `data` +// (seul le process 0 connait `data` au début) +// -> Broadcast data from 0 to all + +// cette boucle n'est pas parallélisable +// on a besoin de t-1 pour calculer t +for t in 1, nb_steps do + + ik = 0 + + // cette boucle est parralélisable + // dans le code on va "split" `N` par paquets de `ratio` + for i in 1, N do + if je_mocuppe_de_ce_corps(i, N, K) // on peut split de cette manière + + // on reset les forces + force[ik] = 0 + + // on calcule la force totale des corps qu'on s'occupe + for j in 1, N do + force[ik] = force[ik] + interaction(data[i], data[j]) + end for + + // on update notre `data` local + data[i] = update(data[i], force[ik]) + ik++ + + end if + end for + + // une fois chaque `data` updaté localement (dans chaque processus) + // il faut rassembler toutes ces infos + // -> All_Gather des data locaux + // on obtient un `data` synchronisé entre tous les processus, + // comme lors du premier broadcast + +end for +``` + +## Question 2 + +Proposer une version parallèle du code suivant. + +``` +variables : force[1,...,N], data[1,...,N] +for t in 1, nb_steps do + for i in 1, N do + force[i] = 0 + end for + for i in 1, N do + for j in 1, i-1 do + f = interaction(data[i],data[j]) + force[i] = force[i] + f + force[j] = force[j] - f + end for + end for + for i in 1, N do + data[i] = update(data[i], force[i]) + end for +end for +``` + +### Réponse Q2 + + +```C +variables (globales) : force[1,...,N], data[1,...,N] + +// Chaque processus doit connaitre `data` +// (seul le process 0 connait `data` au début) +// -> Broadcast data from 0 to all + +// cette boucle n'est pas parallélisable +// on a besoin de t-1 pour calculer t +for t in 1, nb_steps do + + // on calcul les forces (plus efficacement) + // on effectue N(N-1)/2 appels à `interaction` + for i in 1, N do + if je_mocuppe_de_ce_corps(i, N, K) // je m'occupe de cette "colonne" + + // on reset les forces + force[i] = 0 + + // on calcule la force totale des corps qu'on s'occupe + for j in 1, i-1 do + f = interaction(data[i],data[j]) + force[i] = force[i] + f + force[j] = force[j] - f + end for + + // on reduce les forces que l'on a calculé pour chaque corps + // -> All_reduce + + // on update notre `data` local + data[i] = update(data[i], force[i]) + end if + end for + + // une fois chaque `data` updaté localement (dans chaque processus) + // il faut rassembler toutes ces infos + // -> All_Gather des data locaux + // on obtient un `data` synchronisé entre tous les processus, + // comme lors du premier broadcast + +end for +``` + +## Question 3 + +Quels sont les inconvénients de cette version ? +Proposer une solution pour les atténuer. + +### Réponse Q3 + +L'inconvénient de cette version est que l'on doit désormais répartir des calculs "en triangle". En effet puisque l'on ne calcul aucune redondance de interaction, on effectue les calculs suivants: + +| | 0 | 1 | 2 | 3 | +|:-:|:-:|:-:|:-:|:-:| +| 0 | | x | x | x | +| 1 | | | x | x | +| 2 | | | | x | +| 3 | | | | | + +On doit alors effectuer $\frac{N(N-1)}2$ calculs, ce qui est plus compliqué à répartir sur $K = \frac{N}{ratio}$ processus. La manière naïve que j'ai utilisé pour paralléliser le code Question 2 est sous optimal puisque la chaque de calcul entre chaque processus n'est pas égal. + +Une manière plus efficace serait, un peu comme dans openMP, de créer des tasks pour chaque calcul de `interaction` et de répartir uniformément ces tasks entre chaque processus. diff --git a/BE/Makefile b/BE/Makefile new file mode 100644 index 0000000..8a0b0ca --- /dev/null +++ b/BE/Makefile @@ -0,0 +1,11 @@ +SOURCES=01_RingD 02_normA 03_overmean 04_n-corps + +all: collect + + +collect: + echo ${USER} + (cd 01_RingD; make clean) + (cd 02_normA; make clean) + (cd 03_overmean; make clean) + tar cvf Calcul_${USER}_`hostname | cut -d'.' -f1`.tar ${SOURCES} diff --git a/BE/init.sh b/BE/init.sh new file mode 100644 index 0000000..2051436 --- /dev/null +++ b/BE/init.sh @@ -0,0 +1,6 @@ +#!/bin/bash +SIMGRID=/mnt/n7fs/ens/tp_guivarch/opt2021/simgrid-3.31 + +export PATH=${SIMGRID}/bin:${PATH} + +alias smpirun="smpirun -hostfile ${SIMGRID}/archis/cluster_hostfile.txt -platform ${SIMGRID}/archis/cluster_crossbar.xml" diff --git a/TP1/00_Who_am_i/Makefile b/TP1/00_Who_am_i/Makefile new file mode 100644 index 0000000..4208ce4 --- /dev/null +++ b/TP1/00_Who_am_i/Makefile @@ -0,0 +1,15 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +all: who_am_i + +clean: + rm -f *.o who_am_i + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +who_am_i: who_am_i.o + $(MPICC) -o $@ $^ + diff --git a/TP1/00_Who_am_i/who_am_i.c b/TP1/00_Who_am_i/who_am_i.c new file mode 100644 index 0000000..42fad59 --- /dev/null +++ b/TP1/00_Who_am_i/who_am_i.c @@ -0,0 +1,26 @@ +#include +#include + +int main( int argc, char *argv[] ) { + + int rank, size; + int l; + char name[MPI_MAX_PROCESSOR_NAME]; + + MPI_Init( &argc, &argv ); + + // Get rank + MPI_Comm_rank(MPI_COMM_WORLD, &rank); + + // Get size + MPI_Comm_size(MPI_COMM_WORLD, &size); + + // Get name + MPI_Get_processor_name (name , &l); + + printf("Hello world from process %d of %d on processor named %s\n", rank, size, name); + + MPI_Finalize(); + + return 0; +} diff --git a/TP1/01_Ring/Makefile b/TP1/01_Ring/Makefile new file mode 100644 index 0000000..0539fcd --- /dev/null +++ b/TP1/01_Ring/Makefile @@ -0,0 +1,14 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +all: ring + +clean: + rm -rf *.o ring + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +ring: ring.o + $(MPICC) -o $@ $^ diff --git a/TP1/01_Ring/ring.c b/TP1/01_Ring/ring.c new file mode 100644 index 0000000..5209989 --- /dev/null +++ b/TP1/01_Ring/ring.c @@ -0,0 +1,74 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + + int value; + int my_rank, size; + int previous, next; + MPI_Status status; + + MPI_Init(NULL, NULL); + + // Get number of processes + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + // determine my neighbours according to my rank + if (my_rank == 0) + { + previous = size - 1; + next = my_rank + 1; + } + else if (my_rank == size - 1) + { + previous = my_rank - 1; + next = 0; + } + else + { + previous = my_rank - 1; + next = my_rank + 1; + } + + value = 1; + + // The nodes, starting with node 0, transmit the value to each other, + // each time multiplying it by 2. + // At the end of the transmission, node 0 receives the value 2^(size-1) + // + // Instruction: before each send and after each receive, each node displays + // - its rank + // - the type communication (send, recv) + // - the value + + // receive value from previous node + if (my_rank != 0) + { + MPI_Recv(&value, 1, MPI_INT, previous, 0, MPI_COMM_WORLD, &status); + printf("RECEIVED from process %d of %d, value = %d\n", my_rank, size, value); + value = value * 2; + } + else + { + printf("START, value = %d\n", value); + } + + printf("SENDING from process %d of %d, value = %d\n", my_rank, size, value); + + // send value to next node + if (my_rank != size - 1) + { + MPI_Send(&value, 1, MPI_INT, next, 0, MPI_COMM_WORLD); + } + else + { + printf("The End, value = %d\n", value); + } + + MPI_Finalize(); + + return EXIT_SUCCESS; +} diff --git a/TP1/02_Limite/Makefile b/TP1/02_Limite/Makefile new file mode 100644 index 0000000..950470c --- /dev/null +++ b/TP1/02_Limite/Makefile @@ -0,0 +1,14 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +all: limite + +clean: + rm -rf *.o limite + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +limite: limite.o + $(MPICC) -Dhave_mpi -o $@ $^ diff --git a/TP1/02_Limite/limite.c b/TP1/02_Limite/limite.c new file mode 100644 index 0000000..ad3e108 --- /dev/null +++ b/TP1/02_Limite/limite.c @@ -0,0 +1,86 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + + int size; + int my_rank; + int data_size = -100; + int *buffer_send, *buffer_recv; + int tag; + MPI_Status status; + int l; + char name[MPI_MAX_PROCESSOR_NAME]; + + // Make sure that the command line has one argument (the size of the data) + + if (argc != 2) + { + printf("usage : limite \n"); + return EXIT_FAILURE; + } + + MPI_Init(&argc, &argv); + + // Make sure exactly 2 MPI processes are used + MPI_Comm_size(MPI_COMM_WORLD, &size); + if (size != 2) + { + printf("%d MPI processes used, please use 2.\n", size); + MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE); + } + + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Get_processor_name(name, &l); + printf("process %d of %d on processor named %s\n", my_rank, size, name); + + // Prepare parameters + + data_size = atoi(argv[1]); + printf("The size of the data is %d\n", data_size); + + buffer_send = (int *)malloc(data_size * sizeof(int)); + buffer_recv = (int *)malloc(data_size * sizeof(int)); + buffer_send[0] = (my_rank == 0) ? 12345 : 67890; + + tag = 0; + + if (my_rank == 0) + { + // node 0 sends its buffer buffer_send of size data_size to node 1 + MPI_Send(buffer_send, data_size, MPI_INT, 1, tag, MPI_COMM_WORLD); + // node 0 receives in its buffer buffer_recv data from node 1 + MPI_Recv(buffer_recv, data_size, MPI_INT, 1, tag, MPI_COMM_WORLD, &status); + printf("MPI process %d received value %d from MPI process %d.\n", my_rank, buffer_recv[0], 1); + } + else + { + // node 1 sends its buffer buffer_send of size data_size to node 0 + MPI_Send(buffer_send, data_size, MPI_INT, 0, tag, MPI_COMM_WORLD); + // node 1 receives in its buffer buffer_recv data from node 0 + MPI_Recv(buffer_recv, data_size, MPI_INT, 0, tag, MPI_COMM_WORLD, &status); + printf("MPI process %d received value %d from MPI process %d.\n", my_rank, buffer_recv[0], 0); + } + + free(buffer_send); + free(buffer_recv); + + MPI_Finalize(); + + return EXIT_SUCCESS; +} + +// (a) rappelez pour quelle taille de message (petite, grande), MPI Send aura un comportement asynchrone (resp. synchrone) +// -> + +// (b) que va-t-il se passer quand votre programme, compl ́et ́e comme indiqu ́e, sera appel ́e avec une taille de message qui fera que MPI Send sera synchrone ? +// -> deadlock, on passe en synchrone + +// (c) estimez `a 10 entiers pr`es, la taille limite sur deux noeuds du mˆeme ordinateur ? +// -> 16383 + +// (d) proposez une solution pour que l’ ́echange entre les deux noeuds puissent se faire au del`a de cette limite (plusieurs r ́eponses possibles). Vous avez la possibilit ́e de les tester en dehors de la s ́eance. +// -> découper le buffer de telle manière à n'envoyer que des petits buffers en asynchrone +// -> changer ordre send/recv du deuxième noeud \ No newline at end of file diff --git a/TP1/03_Dot/Makefile b/TP1/03_Dot/Makefile new file mode 100644 index 0000000..96194db --- /dev/null +++ b/TP1/03_Dot/Makefile @@ -0,0 +1,14 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +all: dotp + +clean: + rm -rf *.o dotp + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +dotp: dotp.o + $(MPICC) -o $@ $^ -lm diff --git a/TP1/03_Dot/dotp.c b/TP1/03_Dot/dotp.c new file mode 100644 index 0000000..cafa627 --- /dev/null +++ b/TP1/03_Dot/dotp.c @@ -0,0 +1,91 @@ +#include +#include +#include +#include + +// perform the dot product between the two vectors x and y of size n +float dot(float x[], float y[], int n); + +int main(int argc, char *argv[]) +{ + + int const local_data_size = 5; + float local_x[local_data_size], local_y[local_data_size]; + float local_dot, global_dot1, global_dot2, reference; + int borne; + + int my_rank, size; + + MPI_Init(NULL, NULL); + + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + MPI_Comm_size(MPI_COMM_WORLD, &size); + + borne = size * local_data_size - 1; + reference = (float)(borne * (borne + 1) * (2 * borne + 1) / 6); + + // Initialization of both local vectors with the same values + // the global vectors would be [0, 1, ..., local_data_size -1] + for (int i = 0; i < local_data_size; i++) + { + local_x[i] = (float)(local_data_size * my_rank + i); + local_y[i] = (float)(local_data_size * my_rank + i); + // printf("[MPI process %d] value[%d]: %f\n", my_rank, i, local_x[i]); + } + + local_dot = dot(local_x, local_y, local_data_size); + + printf("[MPI process %d] my local dot product: %f\n", my_rank, local_dot); + + /* Two-step operation */ + + global_dot1 = 0.0; + + // Step 1 + // Use a collective communication to compute the global dot product + // in such a way that the node 0 gets this value + MPI_Reduce(&local_dot, &global_dot1, 1, MPI_FLOAT, MPI_SUM, 0, MPI_COMM_WORLD); + + // Node 0 displays the global value and the reference (sum of first integer ^ 2) + if (my_rank == 0) + { + printf("[MPI process %d] *Two-step collective operation* global dot product: %f == %f\n", my_rank, global_dot1, reference); + } + + // Step 2 + // Use a collective communication to broadcast the global value on each node + MPI_Bcast(&global_dot1, 1, MPI_FLOAT, 0, MPI_COMM_WORLD); + + // A node i (i different from 0) displays the global value + if (my_rank != 0) + { + printf("[MPI process %d] *Two-step collective operation* global dot product: %f == %f\n", my_rank, global_dot1, reference); + } + + /* One-step operation */ + + global_dot2 = 0; + + // Step 3 + // Now use one single collective communication to perfom both step 1 and 2 + MPI_Allreduce(&local_dot, &global_dot2, 1, MPI_FLOAT, MPI_SUM, MPI_COMM_WORLD); + + // Another node displays the global value + printf("[MPI process %d] *One-step collective operation* global dot product: %f == %f\n", my_rank, global_dot2, reference); + + MPI_Finalize(); + + return EXIT_SUCCESS; +} + +float dot(float x[], float y[], int n) +{ + float res = 0.0; + + for (int i = 0; i < n; i++) + { + res += x[i] * y[i]; + } + + return res; +} diff --git a/TP1/04_Mult/Makefile b/TP1/04_Mult/Makefile new file mode 100644 index 0000000..127a06f --- /dev/null +++ b/TP1/04_Mult/Makefile @@ -0,0 +1,14 @@ +MPICC=smpicc +CFLAGS=-g -O4 + +all: MultAv + +clean: + rm -rf *.o MultAv + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +MultAv: MultAv.o + $(MPICC) -o $@ $^ diff --git a/TP1/04_Mult/MultAv.c b/TP1/04_Mult/MultAv.c new file mode 100644 index 0000000..3cb0ca9 --- /dev/null +++ b/TP1/04_Mult/MultAv.c @@ -0,0 +1,119 @@ +#include +#include +#include + +void multAv(double x[], double *A, double y[], int m, int n); + +void init0(double x[], int n); + +int main(int argc, char *argv[]) +{ + int size; + int const n = 12; + int my_rank; + MPI_Init(&argc, &argv); + + // Get number of processes and check that 4 processes are used + MPI_Comm_size(MPI_COMM_WORLD, &size); + if (size != 4) + { + printf("This application is meant to be run with 4 MPI processes.\n"); + MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE); + } + + // Get my rank + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + + // Declaration and Initialization of A (one for all components) + // the number of bloc of lines, b, is the same for all node + // (if you don't change the constants) + int b = n / size; + double *A; + + A = (double *)malloc(b * n * sizeof(double)); + + for (int i = 0; i < b; i++) + { + for (int j = 0; j < n; j++) + { + A[i * n + j] = 1.0; + // A[i*n + j] = (double) my_rank; + // A[i*n + j] = (double) my_rank*(i+1)+(j+1); + // printf("Process [%d], A[%d][%d] = %f\n", my_rank, i, j, A[i*n+j]); + } + } + + // reference vector to verify that the global vector is correct + double v_ref[n]; + for (int i = 0; i < n; i++) + { + v_ref[i] = (double)i; + } + + // local vector + double v_local[b]; + for (int i = 0; i < b; i++) + { + v_local[i] = (double)b * my_rank + i; + // printf("Process [%d], v_local[%d] = %f\n", my_rank, i, v_local[i]); + } + + // global vector + double v_global[n]; + init0(v_global, n); + + // Use a collective communication in order to gather on ALL the nodes the + // part of the local vector into the global vector + + MPI_Allgather(v_local, b, MPI_DOUBLE, v_global, b, MPI_DOUBLE, MPI_COMM_WORLD); + + // the node 2 checks if the global vector is correct + if (my_rank == 2) + { + for (int i = 0; i < n; i++) + { + printf("Process [%d], vérif[%d] = %f\n", my_rank, i, v_global[i] - v_ref[i]); + } + } + + MPI_Barrier(MPI_COMM_WORLD); + + // vector x_loc = A * v_global + double x_loc[b]; + init0(x_loc, b); + + // Perform the multiplication + multAv(x_loc, A, v_global, b, n); + + // each node displays x (with A, full of ones, all the components of x should be the same) + for (int i = 0; i < b; i++) + { + printf("Process [%d], x_loc[%d] = %f\n", my_rank, i, x_loc[i]); + } + + MPI_Finalize(); + + return EXIT_SUCCESS; +} + +void multAv(double x[], double *A, double y[], int m, int n) +{ + for (int i = 0; i < m; i++) + { + x[i] = 0.0; + for (int j = 0; j < n; j++) + { + x[i] += A[i * n + j] * y[j]; + } + } + return; +} + +void init0(double x[], int n) +{ + for (int i = 0; i < n; i++) + { + x[i] = 0.0; + } + return; +} diff --git a/TP1/05_CG/CG_par b/TP1/05_CG/CG_par new file mode 100755 index 0000000000000000000000000000000000000000..54d3b9bb90d6576808570956f74dff03beb016e5 GIT binary patch literal 21824 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 +#include +#include +#include + +#include "util.h" + +void cg_par(double *A_local, double *rhs_local, int N, int b, float tol) +{ + + int size; + int my_rank; + + // Get number of processes + MPI_Comm_size(MPI_COMM_WORLD, &size); + + // Get my rank + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + + //**************** Parallel CG (M == N) + int num_it, max_it; + double x[b], r[b], Ap[b]; + double p_local[b], p_global[N]; + double nr_global, nr_local; + double np2_global, np2_local; + double epsilon; + double alpha, beta; + + max_it = 100; + + // initialization of the solution (local vector) + for (int i = 0; i < b; i++) + { + x[i] = 0.0; + } + + // compute the global norm of the rhs_local (dot product, then sqrt); + // all the nodes must have this value + nr_local = dot(rhs_local, rhs_local, b); + MPI_Allreduce(&nr_local, &nr_global, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + nr_global = sqrt(nr_global); + // if (my_rank == 0) printf("nr = %lg\n", nr_global); + + // threshold of the CG + epsilon = tol * nr_global; + + // Initialization of p_local and r (local vectors) + copy_v(p_local, rhs_local, b); + copy_v(r, rhs_local, b); + + // number of iterations + num_it = 0; + + printf("num_it %d -- epsilon %lg -- nr_global %lg\n", num_it, epsilon, nr_global); + + while ((nr_global > epsilon) && (num_it < max_it)) + { + + // Compute the local vector Ap = A_local*p_global + // => gather p_local vectors to p_global + MPI_Allgather(p_local, b, MPI_DOUBLE, p_global, b, MPI_DOUBLE, MPI_COMM_WORLD); + + // display p_global + if (my_rank == 0) + printf("p_global = %lg\n", p_global); + + // do the matrix-vector multiplication + multAv(Ap, A_local, p_global, b, N); + + // compute the global dot product np2_global = (Ap_global, p_global) + // all the node must have this value + np2_local = dot(p_local, Ap, b); + MPI_Allreduce(&np2_local, &np2_global, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + if (my_rank == 0) + printf("np2 = %lg\n", np2_global); + + // alpha + alpha = (nr_global * nr_global) / np2_global; + // if(my_rank == 0) printf("alpha = %lg\n", alpha); + + // compute the new x and r (local vectors) + axpy(alpha, x, p_local, b); + axpy(-alpha, r, Ap, b); + + // compute the global norm of the residual (dot product, then sqrt); + // all the nodes must have this value + nr_local = dot(r, r, b); + MPI_Allreduce(&nr_local, &nr_global, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); + nr_global = sqrt(nr_global); + // if(my_rank == 0) printf("nr = %lg\n", nr_global); + + // beta + beta = (nr_global * nr_global) / (alpha * np2_global); + // if(my_rank == 0) printf("beta = %lg\n", beta); + + // compute the new p_local (local vector) + xpay(beta, r, p_local, b); + + // increase the number of iterations + num_it++; + + // if(my_rank == 0) printf("num_it %d -- nr_global %lg\n", num_it, nr_global); + } + + free(A_local); + + // gather the solution on the node 0 + double x_global[N]; + MPI_Gather(x, b, MPI_DOUBLE, x_global, b, MPI_DOUBLE, 0, MPI_COMM_WORLD); + + // display the solution + if (my_rank == 0) + { + for (int i = 0; i < N; i++) + { + printf("x[%d] = %lg\n", i, x_global[i]); + } + } + + return; +} diff --git a/TP1/05_CG/CG_par.h b/TP1/05_CG/CG_par.h new file mode 100644 index 0000000..f436ded --- /dev/null +++ b/TP1/05_CG/CG_par.h @@ -0,0 +1 @@ +void cg_par(double *A_local, double *rhs, int N, int b, float tol); diff --git a/TP1/05_CG/CG_sq.c b/TP1/05_CG/CG_sq.c new file mode 100644 index 0000000..b770fd5 --- /dev/null +++ b/TP1/05_CG/CG_sq.c @@ -0,0 +1,85 @@ +#include +#include +#include + +#include "util.h" + +void cg_sq(double *A, double *rhs, int N, double tol) +{ + + int num_it, max_it; + double x[N], p[N], r[N], Ap[N]; + double nr; + double epsilon; + double np2, alpha, beta; + + max_it = 100; + + // initialization of the solution + for (int i = 0; i < N; i++) + { + // b[i] = (float) i; + x[i] = 0.0; + } + + // compute the norm of the rhs (dot product, then sqrt) + nr = dot(rhs, rhs, N); + nr = sqrt(nr); + printf("nr = %lg\n", nr); + + // threshold of the CG + epsilon = tol * nr; + + // Initialization of p and r + copy_v(p, rhs, N); + copy_v(r, rhs, N); + + // number of iterations + num_it = 0; + + printf("num_it %d -- epsilon %lg -- nr %lg\n", num_it, epsilon, nr); + + while ((nr > epsilon) && (num_it < max_it)) + { + + // Compute the vector Ap = A*p + multAv(Ap, A, p, N, N); + + // compute the dot product np2 = (Ap, p) + np2 = dot(p, Ap, N); + printf("np2 = %lg\n", np2); + + // alpha + alpha = (nr * nr) / np2; + // printf("alpha = %lg\n", alpha); + + // compute the new x and r + axpy(alpha, x, p, N); + axpy(-alpha, r, Ap, N); + + // compute the norm of the residual (dot product, then sqrt) + nr = dot(r, r, N); + nr = sqrt(nr); + // printf("nr = %lg\n", nr); + + // beta + beta = (nr * nr) / (alpha * np2); + // printf("beta = %lg\n", beta); + + // compute the new p + xpay(beta, r, p, N); + + // increase the number of iterations + num_it++; + + // printf("num_it %d -- nr %lg \n", num_it, nr); + } + + // display the solution + for (int i = 0; i < N; i++) + { + printf("x[%d] = %lg\n", i, x[i]); + } + + return; +} diff --git a/TP1/05_CG/CG_sq.h b/TP1/05_CG/CG_sq.h new file mode 100644 index 0000000..5d2ed9d --- /dev/null +++ b/TP1/05_CG/CG_sq.h @@ -0,0 +1 @@ +void cg_sq(double *A, double *rhs, int N, double tol); diff --git a/TP1/05_CG/Laplacien.mtx b/TP1/05_CG/Laplacien.mtx new file mode 100644 index 0000000..02aef86 --- /dev/null +++ b/TP1/05_CG/Laplacien.mtx @@ -0,0 +1,21 @@ +%%MatrixMarket matrix coordinate real symmetric +%------------------------------------------------------------------------------- +% UF Sparse Matrix Collection, Tim Davis +% http://www.cise.ufl.edu/research/sparse/matrices/HB/nos3 +% name: HB/nos3 +% [SYMMETRIC MATRIX, FE APPROXIMATION TO BIHARMONIC OPERATOR ON PLATE] +% id: 219 +% date: 1982 +% author: H. Simon +% ed: I. Duff, R. Grimes, J. Lewis +% fields: title A name id date author ed kind +% kind: structural problem +%------------------------------------------------------------------------------- +4 4 7 +1 1 2.0 +1 2 -1.0 +2 2 2.0 +2 3 -1.0 +3 3 2.0 +3 4 -1.0 +4 4 2.0 diff --git a/TP1/05_CG/Makefile b/TP1/05_CG/Makefile new file mode 100644 index 0000000..a63ece9 --- /dev/null +++ b/TP1/05_CG/Makefile @@ -0,0 +1,18 @@ +CC=gcc +MPICC=smpicc +CFLAGS=-g -O4 + +all: CG_par CG_sq + +clean: + rm -rf *.o CG_par CG_sq + +%.o: %.c + echo $@ + $(MPICC) -c -Wall -o $@ $< + +CG_par: util.o CG_par.o main_par.o + $(MPICC) -o $@ $^ -lm + +CG_sq: util.o CG_sq.o main_sq.o + $(MPICC) -o $@ $^ -lm diff --git a/TP1/05_CG/main_par.c b/TP1/05_CG/main_par.c new file mode 100644 index 0000000..db83c4b --- /dev/null +++ b/TP1/05_CG/main_par.c @@ -0,0 +1,98 @@ +#include +#include +#include +#include + +#include "util.h" +#include "CG_par.h" + +int main(int argc, char* argv[]) { + + int size; + int my_rank; + + FILE *f; + int M, N, nz; + + double *A = NULL; + double *rhs; + + double tol = 1e-6; + + // Make sure that the command line has one argument (name of the matrix file) + + if(argc != 2){ + printf("usage : CG_par \n"); + return EXIT_FAILURE; + } + + //**************** MPI Initialization + + MPI_Init(&argc, &argv); + + // Get number of processes and check that 4 processes are used + MPI_Comm_size(MPI_COMM_WORLD, &size); + + if(size != 4) { + printf("This application is meant to be run with 4 MPI processes.\n"); + MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE); + } + + // Get my rank + MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); + + //**************** READING OF THE MATRICE AND DISTRIBUTION OF THE BLOCS OF LINES TO EACH NODE + + // You have the possibility to test with a small matrice ("Laplacien.txt") + // or a larger one ("nos3.mtx") + + f = fopen(argv[1], "r"); + + // All nodes get the sizes + mm_read_mtx_crd_size(f, &M, &N, &nz); + //printf("%d %d %d\n", M, N, nz); + + // Reading the matrix by node 0 + if(my_rank == 0) { + + A = (double *) malloc(M*N*sizeof(double)); + read_A(f, A, M, N, nz); + + // increase diagonal to be sure to converge easily + for (int i = 0; i < M; i++) { + *(A+i*N+i) = *(A+i*N+i) + 10.0; + } + + } + + if (f != stdin) fclose(f); + + // DISTRIBUTION OF BLOCS => A_local(b, N) + int b = M / size; + double *A_local; + + A_local = (double *) malloc(b*N*sizeof(double)); + MPI_Scatter(A, b*N, MPI_DOUBLE, A_local, b*N, MPI_DOUBLE, 0, MPI_COMM_WORLD); + + if(my_rank == 0) free(A); + + //**************** END OF THE READING OF THE MATRICE AND THE DISTRIBUTION OF THE BLOCS OF LINES TO EACH NODE + + //**************** PARALLEL CG (M == N) + + rhs = (double *) malloc(b*sizeof(double)); + + // initialization of the right hand side (local vector) + for(int i = 0; i < b; i++){ + rhs[i] = (float) (b*my_rank + i); + } + + cg_par(A_local, rhs, N, b, tol); + + //**************** END OF PARALLEL CG + + MPI_Finalize(); + printf("The End\n"); + + return EXIT_SUCCESS; +} diff --git a/TP1/05_CG/main_sq.c b/TP1/05_CG/main_sq.c new file mode 100644 index 0000000..8c56e53 --- /dev/null +++ b/TP1/05_CG/main_sq.c @@ -0,0 +1,79 @@ +#include +#include +#include +#include + +#include "util.h" +#include "CG_sq.h" + + +int main(int argc, char* argv[]) { + + int size; + + FILE *f; + int M, N, nz; + + double *A = NULL; + + double *rhs; + + double tol = 1e-6; + + // Make sure that the command line has one argument (name of the matrix file) + + if(argc != 2){ + printf("usage : CG_sq \n"); + return EXIT_FAILURE; + } + + MPI_Init(&argc, &argv); + + // Get number of processes and check that only 1 process is used + MPI_Comm_size(MPI_COMM_WORLD, &size); + + if(size != 1) { + printf("This application is meant to be run with 1 MPI process.\n"); + MPI_Abort(MPI_COMM_WORLD, EXIT_FAILURE); + } + + + //**************** READING THE MATRICE + + // You have the possibility to test with a small matrice ("Laplacien.txt") + // or a larger one ("nos3.mtx") + + f = fopen(argv[1], "r"); + + mm_read_mtx_crd_size(f, &M, &N, &nz); + //printf("%d %d %d\n", M, N, nz); + + A = (double *) malloc(M*N*sizeof(double)); + read_A(f, A, M, N, nz); + + // increase diagonal to be sure to converge easily + for (int i = 0; i < M; i++) { + *(A+i*N+i) = *(A+i*N+i) + 10.0; + } + + if (f !=stdin) fclose(f); + + //**************** END OF READING THE MATRICE + + //**************** SEQUENTIAL CG (M == N) + + rhs = (double *) malloc(N*sizeof(double)); + + // initialization of the right-hand side + for(int i = 0; i < N; i++){ + rhs[i] = (float) i; + } + cg_sq(A, rhs, N, tol); + + //**************** END OF SEQUENTIAL CG + + MPI_Finalize(); + printf("The End\n"); + + return EXIT_SUCCESS; +} diff --git a/TP1/05_CG/nos3.mtx b/TP1/05_CG/nos3.mtx new file mode 100644 index 0000000..ccdae2e --- /dev/null +++ b/TP1/05_CG/nos3.mtx @@ -0,0 +1,8416 @@ +%%MatrixMarket matrix coordinate real symmetric +%------------------------------------------------------------------------------- +% UF Sparse Matrix Collection, Tim Davis +% http://www.cise.ufl.edu/research/sparse/matrices/HB/nos3 +% name: HB/nos3 +% [SYMMETRIC MATRIX, FE APPROXIMATION TO BIHARMONIC OPERATOR ON PLATE] +% id: 219 +% date: 1982 +% author: H. Simon +% ed: I. Duff, R. Grimes, J. Lewis +% fields: title A name id date author ed kind +% kind: structural problem +%------------------------------------------------------------------------------- +960 960 8402 +1 1 86.86781 +2 1 4.8849813e-15 +3 1 -17.463532 +4 1 -4.8849813e-15 +41 1 -12.985187 +42 1 1.3736264 +43 1 -21.716953 +44 1 17.857143 +2 2 132.18945 +3 2 -4.8849813e-15 +4 2 -107.89795 +41 2 -1.3736264 +42 2 20.901614 +43 2 17.857143 +44 2 -33.047362 +3 3 173.73562 +4 3 8.8817842e-15 +5 3 -17.463532 +6 3 -3.7747583e-15 +41 3 -21.716953 +42 3 -17.857143 +43 3 -25.970373 +44 3 1.9984014e-15 +45 3 -21.716953 +46 3 17.857143 +4 4 264.3789 +5 4 -3.7747583e-15 +6 4 -107.89795 +41 4 -17.857143 +42 4 -33.047362 +43 4 1.7763568e-15 +44 4 41.803228 +45 4 17.857143 +46 4 -33.047362 +5 5 173.73562 +6 5 1.2878587e-14 +7 5 -17.463532 +8 5 -9.547918e-15 +43 5 -21.716953 +44 5 -17.857143 +45 5 -25.970373 +46 5 7.1054274e-15 +47 5 -21.716953 +48 5 17.857143 +6 6 264.3789 +7 6 -9.7699626e-15 +8 6 -107.89795 +43 6 -17.857143 +44 6 -33.047362 +45 6 7.327472e-15 +46 6 41.803228 +47 6 17.857143 +48 6 -33.047362 +7 7 173.73562 +8 7 1.9539925e-14 +9 7 -17.463532 +10 7 -9.9920072e-15 +45 7 -21.716953 +46 7 -17.857143 +47 7 -25.970373 +48 7 7.7715612e-15 +49 7 -21.716953 +50 7 17.857143 +8 8 264.3789 +9 8 -9.9920072e-15 +10 8 -107.89795 +45 8 -17.857143 +46 8 -33.047362 +47 8 7.7715612e-15 +48 8 41.803228 +49 8 17.857143 +50 8 -33.047362 +9 9 173.73562 +10 9 1.1546319e-14 +11 9 -17.463532 +12 9 -2.4424907e-15 +47 9 -21.716953 +48 9 -17.857143 +49 9 -25.970373 +50 9 5.1070259e-15 +51 9 -21.716953 +52 9 17.857143 +10 10 264.3789 +11 10 -2.4424907e-15 +12 10 -107.89795 +47 10 -17.857143 +48 10 -33.047362 +49 10 5.1070259e-15 +50 10 41.803228 +51 10 17.857143 +52 10 -33.047362 +11 11 173.73562 +12 11 3.1086245e-15 +13 11 -17.463532 +14 11 -6.6613381e-16 +49 11 -21.716953 +50 11 -17.857143 +51 11 -25.970373 +52 11 4.8849813e-15 +53 11 -21.716953 +54 11 17.857143 +12 12 264.3789 +13 12 -4.4408921e-16 +14 12 -107.89795 +49 12 -17.857143 +50 12 -33.047362 +51 12 4.6629367e-15 +52 12 41.803228 +53 12 17.857143 +54 12 -33.047362 +13 13 173.73562 +14 13 4.8849813e-15 +15 13 -17.463532 +16 13 -3.7747583e-15 +51 13 -21.716953 +52 13 -17.857143 +53 13 -25.970373 +54 13 2.8865799e-15 +55 13 -21.716953 +56 13 17.857143 +14 14 264.3789 +15 14 -3.7747583e-15 +16 14 -107.89795 +51 14 -17.857143 +52 14 -33.047362 +53 14 3.1086245e-15 +54 14 41.803228 +55 14 17.857143 +56 14 -33.047362 +15 15 173.73562 +16 15 1.110223e-14 +17 15 -17.463532 +18 15 -7.327472e-15 +53 15 -21.716953 +54 15 -17.857143 +55 15 -25.970373 +56 15 2.6645353e-15 +57 15 -21.716953 +58 15 17.857143 +16 16 264.3789 +17 16 -7.1054274e-15 +18 16 -107.89795 +53 16 -17.857143 +54 16 -33.047362 +55 16 2.6645353e-15 +56 16 41.803228 +57 16 17.857143 +58 16 -33.047362 +17 17 173.73562 +18 17 1.1990409e-14 +19 17 -17.463532 +20 17 -4.8849813e-15 +55 17 -21.716953 +56 17 -17.857143 +57 17 -25.970373 +58 17 5.1070259e-15 +59 17 -21.716953 +60 17 17.857143 +18 18 264.3789 +19 18 -4.8849813e-15 +20 18 -107.89795 +55 18 -17.857143 +56 18 -33.047362 +57 18 5.1070259e-15 +58 18 41.803228 +59 18 17.857143 +60 18 -33.047362 +19 19 173.73562 +20 19 4.4408921e-15 +21 19 -17.463532 +22 19 4.4408921e-16 +57 19 -21.716953 +58 19 -17.857143 +59 19 -25.970373 +60 19 4.2188475e-15 +61 19 -21.716953 +62 19 17.857143 +20 20 264.3789 +21 20 4.4408921e-16 +22 20 -107.89795 +57 20 -17.857143 +58 20 -33.047362 +59 20 4.4408921e-15 +60 20 41.803228 +61 20 17.857143 +62 20 -33.047362 +21 21 173.73562 +22 21 4.4408921e-16 +23 21 -17.463532 +24 21 -1.110223e-15 +59 21 -21.716953 +60 21 -17.857143 +61 21 -25.970373 +62 21 3.5527137e-15 +63 21 -21.716953 +64 21 17.857143 +22 22 264.3789 +23 22 -1.110223e-15 +24 22 -107.89795 +59 22 -17.857143 +60 22 -33.047362 +61 22 3.5527137e-15 +62 22 41.803228 +63 22 17.857143 +64 22 -33.047362 +23 23 173.73562 +24 23 8.8817842e-16 +25 23 -17.463532 +26 23 6.6613381e-16 +61 23 -21.716953 +62 23 -17.857143 +63 23 -25.970373 +64 23 2.8865799e-15 +65 23 -21.716953 +66 23 17.857143 +24 24 264.3789 +25 24 6.6613381e-16 +26 24 -107.89795 +61 24 -17.857143 +62 24 -33.047362 +63 24 3.1086245e-15 +64 24 41.803228 +65 24 17.857143 +66 24 -33.047362 +25 25 173.73562 +26 25 4.4408921e-16 +27 25 -17.463532 +28 25 -8.8817842e-16 +63 25 -21.716953 +64 25 -17.857143 +65 25 -25.970373 +66 25 1.110223e-15 +67 25 -21.716953 +68 25 17.857143 +26 26 264.3789 +27 26 -8.8817842e-16 +28 26 -107.89795 +63 26 -17.857143 +64 26 -33.047362 +65 26 1.110223e-15 +66 26 41.803228 +67 26 17.857143 +68 26 -33.047362 +27 27 173.73562 +28 27 1.7763568e-15 +29 27 -17.463532 +30 27 -8.8817842e-16 +65 27 -21.716953 +66 27 -17.857143 +67 27 -25.970373 +68 27 2.220446e-16 +69 27 -21.716953 +70 27 17.857143 +28 28 264.3789 +29 28 -8.8817842e-16 +30 28 -107.89795 +65 28 -17.857143 +66 28 -33.047362 +67 28 2.220446e-16 +68 28 41.803228 +69 28 17.857143 +70 28 -33.047362 +29 29 173.73562 +30 29 8.8817842e-16 +31 29 -17.463532 +67 29 -21.716953 +68 29 -17.857143 +69 29 -25.970373 +71 29 -21.716953 +72 29 17.857143 +30 30 264.3789 +32 30 -107.89795 +67 30 -17.857143 +68 30 -33.047362 +70 30 41.803228 +71 30 17.857143 +72 30 -33.047362 +31 31 173.73562 +32 31 8.8817842e-16 +33 31 -17.463532 +34 31 -8.8817842e-16 +69 31 -21.716953 +70 31 -17.857143 +71 31 -25.970373 +72 31 2.220446e-16 +73 31 -21.716953 +74 31 17.857143 +32 32 264.3789 +33 32 -8.8817842e-16 +34 32 -107.89795 +69 32 -17.857143 +70 32 -33.047362 +71 32 2.220446e-16 +72 32 41.803228 +73 32 17.857143 +74 32 -33.047362 +33 33 173.73562 +34 33 1.3322676e-15 +35 33 -17.463532 +36 33 -4.4408921e-16 +71 33 -21.716953 +72 33 -17.857143 +73 33 -25.970373 +74 33 2.220446e-16 +75 33 -21.716953 +76 33 17.857143 +34 34 264.3789 +35 34 -4.4408921e-16 +36 34 -107.89795 +71 34 -17.857143 +72 34 -33.047362 +73 34 2.220446e-16 +74 34 41.803228 +75 34 17.857143 +76 34 -33.047362 +35 35 173.73562 +36 35 4.4408921e-16 +37 35 -17.463532 +73 35 -21.716953 +74 35 -17.857143 +75 35 -25.970373 +77 35 -21.716953 +78 35 17.857143 +36 36 264.3789 +38 36 -107.89795 +73 36 -17.857143 +74 36 -33.047362 +76 36 41.803228 +77 36 17.857143 +78 36 -33.047362 +37 37 173.73562 +39 37 -17.463532 +75 37 -21.716953 +76 37 -17.857143 +77 37 -25.970373 +79 37 -21.716953 +80 37 17.857143 +38 38 264.3789 +40 38 -107.89795 +75 38 -17.857143 +76 38 -33.047362 +78 38 41.803228 +79 38 17.857143 +80 38 -33.047362 +39 39 86.86781 +77 39 -21.716953 +78 39 -17.857143 +79 39 -12.985187 +80 39 -1.3736264 +40 40 132.18945 +77 40 -17.857143 +78 40 -33.047362 +79 40 1.3736264 +80 40 20.901614 +41 41 86.86781 +42 41 9.7699626e-15 +43 41 -17.463532 +44 41 -1.0214052e-14 +81 41 -12.985187 +82 41 1.3736264 +83 41 -21.716953 +84 41 17.857143 +42 42 132.18945 +43 42 -1.0214052e-14 +44 42 -107.89795 +81 42 -1.3736264 +82 42 20.901614 +83 42 17.857143 +84 42 -33.047362 +43 43 173.73562 +44 43 2.3980817e-14 +45 43 -17.463532 +46 43 -1.398881e-14 +81 43 -21.716953 +82 43 -17.857143 +83 43 -25.970373 +84 43 1.0214052e-14 +85 43 -21.716953 +86 43 17.857143 +44 44 264.3789 +45 44 -1.4210855e-14 +46 44 -107.89795 +81 44 -17.857143 +82 44 -33.047362 +83 44 1.0214052e-14 +84 44 41.803228 +85 44 17.857143 +86 44 -33.047362 +45 45 173.73562 +46 45 2.8865799e-14 +47 45 -17.463532 +48 45 -1.5321078e-14 +83 45 -21.716953 +84 45 -17.857143 +85 45 -25.970373 +86 45 7.7715612e-15 +87 45 -21.716953 +88 45 17.857143 +46 46 264.3789 +47 46 -1.5099033e-14 +48 46 -107.89795 +83 46 -17.857143 +84 46 -33.047362 +85 46 7.7715612e-15 +86 46 41.803228 +87 46 17.857143 +88 46 -33.047362 +47 47 173.73562 +48 47 2.4868996e-14 +49 47 -17.463532 +50 47 -9.9920072e-15 +85 47 -21.716953 +86 47 -17.857143 +87 47 -25.970373 +88 47 5.3290705e-15 +89 47 -21.716953 +90 47 17.857143 +48 48 264.3789 +49 48 -9.9920072e-15 +50 48 -107.89795 +85 48 -17.857143 +86 48 -33.047362 +87 48 5.3290705e-15 +88 48 41.803228 +89 48 17.857143 +90 48 -33.047362 +49 49 173.73562 +50 49 1.1990409e-14 +51 49 -17.463532 +52 49 -2.6645353e-15 +87 49 -21.716953 +88 49 -17.857143 +89 49 -25.970373 +90 49 1.5543122e-15 +91 49 -21.716953 +92 49 17.857143 +50 50 264.3789 +51 50 -2.6645353e-15 +52 50 -107.89795 +87 50 -17.857143 +88 50 -33.047362 +89 50 1.5543122e-15 +90 50 41.803228 +91 50 17.857143 +92 50 -33.047362 +51 51 173.73562 +52 51 3.9968029e-15 +53 51 -17.463532 +54 51 -8.8817842e-16 +89 51 -21.716953 +90 51 -17.857143 +91 51 -25.970373 +92 51 -3.1086245e-15 +93 51 -21.716953 +94 51 17.857143 +52 52 264.3789 +53 52 -1.110223e-15 +54 52 -107.89795 +89 52 -17.857143 +90 52 -33.047362 +91 52 -3.3306691e-15 +92 52 41.803228 +93 52 17.857143 +94 52 -33.047362 +53 53 173.73562 +54 53 4.8849813e-15 +55 53 -17.463532 +56 53 -3.7747583e-15 +91 53 -21.716953 +92 53 -17.857143 +93 53 -25.970373 +94 53 -1.110223e-15 +95 53 -21.716953 +96 53 17.857143 +54 54 264.3789 +55 54 -3.7747583e-15 +56 54 -107.89795 +91 54 -17.857143 +92 54 -33.047362 +93 54 -8.8817842e-16 +94 54 41.803228 +95 54 17.857143 +96 54 -33.047362 +55 55 173.73562 +56 55 1.110223e-14 +57 55 -17.463532 +58 55 -7.327472e-15 +93 55 -21.716953 +94 55 -17.857143 +95 55 -25.970373 +96 55 2.6645353e-15 +97 55 -21.716953 +98 55 17.857143 +56 56 264.3789 +57 56 -7.1054274e-15 +58 56 -107.89795 +93 56 -17.857143 +94 56 -33.047362 +95 56 2.6645353e-15 +96 56 41.803228 +97 56 17.857143 +98 56 -33.047362 +57 57 173.73562 +58 57 1.1990409e-14 +59 57 -17.463532 +60 57 -5.1070259e-15 +95 57 -21.716953 +96 57 -17.857143 +97 57 -25.970373 +98 57 1.3322676e-15 +99 57 -21.716953 +100 57 17.857143 +58 58 264.3789 +59 58 -5.1070259e-15 +60 58 -107.89795 +95 58 -17.857143 +96 58 -33.047362 +97 58 1.3322676e-15 +98 58 41.803228 +99 58 17.857143 +100 58 -33.047362 +59 59 173.73562 +60 59 4.4408921e-15 +61 59 -17.463532 +62 59 4.4408921e-16 +97 59 -21.716953 +98 59 -17.857143 +99 59 -25.970373 +100 59 -2.220446e-15 +101 59 -21.716953 +102 59 17.857143 +60 60 264.3789 +61 60 4.4408921e-16 +62 60 -107.89795 +97 60 -17.857143 +98 60 -33.047362 +99 60 -2.4424907e-15 +100 60 41.803228 +101 60 17.857143 +102 60 -33.047362 +61 61 173.73562 +62 61 3.5527137e-15 +63 61 -17.463532 +64 61 -3.7747583e-15 +99 61 -21.716953 +100 61 -17.857143 +101 61 -25.970373 +102 61 -2.220446e-15 +103 61 -21.716953 +104 61 17.857143 +62 62 264.3789 +63 62 -3.7747583e-15 +64 62 -107.89795 +99 62 -17.857143 +100 62 -33.047362 +101 62 -1.9984014e-15 +102 62 41.803228 +103 62 17.857143 +104 62 -33.047362 +63 63 173.73562 +64 63 5.3290705e-15 +65 63 -17.463532 +66 63 -1.110223e-15 +101 63 -21.716953 +102 63 -17.857143 +103 63 -25.970373 +104 63 -6.6613381e-16 +105 63 -21.716953 +106 63 17.857143 +64 64 264.3789 +65 64 -1.3322676e-15 +66 64 -107.89795 +101 64 -17.857143 +102 64 -33.047362 +103 64 -6.6613381e-16 +104 64 41.803228 +105 64 17.857143 +106 64 -33.047362 +65 65 173.73562 +66 65 2.220446e-15 +67 65 -17.463532 +68 65 -8.8817842e-16 +103 65 -21.716953 +104 65 -17.857143 +105 65 -25.970373 +106 65 -2.220446e-16 +107 65 -21.716953 +108 65 17.857143 +66 66 264.3789 +67 66 -8.8817842e-16 +68 66 -107.89795 +103 66 -17.857143 +104 66 -33.047362 +105 66 -2.220446e-16 +106 66 41.803228 +107 66 17.857143 +108 66 -33.047362 +67 67 173.73562 +68 67 1.7763568e-15 +69 67 -17.463532 +70 67 -8.8817842e-16 +105 67 -21.716953 +106 67 -17.857143 +107 67 -25.970373 +108 67 2.220446e-16 +109 67 -21.716953 +110 67 17.857143 +68 68 264.3789 +69 68 -8.8817842e-16 +70 68 -107.89795 +105 68 -17.857143 +106 68 -33.047362 +107 68 2.220446e-16 +108 68 41.803228 +109 68 17.857143 +110 68 -33.047362 +69 69 173.73562 +70 69 8.8817842e-16 +71 69 -17.463532 +107 69 -21.716953 +108 69 -17.857143 +109 69 -25.970373 +111 69 -21.716953 +112 69 17.857143 +70 70 264.3789 +72 70 -107.89795 +107 70 -17.857143 +108 70 -33.047362 +110 70 41.803228 +111 70 17.857143 +112 70 -33.047362 +71 71 173.73562 +72 71 8.8817842e-16 +73 71 -17.463532 +74 71 -8.8817842e-16 +109 71 -21.716953 +110 71 -17.857143 +111 71 -25.970373 +112 71 2.220446e-16 +113 71 -21.716953 +114 71 17.857143 +72 72 264.3789 +73 72 -8.8817842e-16 +74 72 -107.89795 +109 72 -17.857143 +110 72 -33.047362 +111 72 2.220446e-16 +112 72 41.803228 +113 72 17.857143 +114 72 -33.047362 +73 73 173.73562 +74 73 1.3322676e-15 +75 73 -17.463532 +76 73 -4.4408921e-16 +111 73 -21.716953 +112 73 -17.857143 +113 73 -25.970373 +114 73 2.220446e-16 +115 73 -21.716953 +116 73 17.857143 +74 74 264.3789 +75 74 -4.4408921e-16 +76 74 -107.89795 +111 74 -17.857143 +112 74 -33.047362 +113 74 2.220446e-16 +114 74 41.803228 +115 74 17.857143 +116 74 -33.047362 +75 75 173.73562 +76 75 4.4408921e-16 +77 75 -17.463532 +113 75 -21.716953 +114 75 -17.857143 +115 75 -25.970373 +117 75 -21.716953 +118 75 17.857143 +76 76 264.3789 +78 76 -107.89795 +113 76 -17.857143 +114 76 -33.047362 +116 76 41.803228 +117 76 17.857143 +118 76 -33.047362 +77 77 173.73562 +79 77 -17.463532 +115 77 -21.716953 +116 77 -17.857143 +117 77 -25.970373 +119 77 -21.716953 +120 77 17.857143 +78 78 264.3789 +80 78 -107.89795 +115 78 -17.857143 +116 78 -33.047362 +118 78 41.803228 +119 78 17.857143 +120 78 -33.047362 +79 79 86.86781 +117 79 -21.716953 +118 79 -17.857143 +119 79 -12.985187 +120 79 -1.3736264 +80 80 132.18945 +117 80 -17.857143 +118 80 -33.047362 +119 80 1.3736264 +120 80 20.901614 +81 81 86.86781 +82 81 1.5099033e-14 +83 81 -17.463532 +84 81 -1.5321078e-14 +121 81 -12.985187 +122 81 1.3736264 +123 81 -21.716953 +124 81 17.857143 +82 82 132.18945 +83 82 -1.5321078e-14 +84 82 -107.89795 +121 82 -1.3736264 +122 82 20.901614 +123 82 17.857143 +124 82 -33.047362 +83 83 173.73562 +84 83 3.0198066e-14 +85 83 -17.463532 +86 83 -1.5321078e-14 +121 83 -21.716953 +122 83 -17.857143 +123 83 -25.970373 +124 83 5.3290705e-15 +125 83 -21.716953 +126 83 17.857143 +84 84 264.3789 +85 84 -1.5099033e-14 +86 84 -107.89795 +121 84 -17.857143 +122 84 -33.047362 +123 84 5.3290705e-15 +124 84 41.803228 +125 84 17.857143 +126 84 -33.047362 +85 85 173.73562 +86 85 2.4868996e-14 +87 85 -17.463532 +88 85 -9.9920072e-15 +123 85 -21.716953 +124 85 -17.857143 +125 85 -25.970373 +126 85 5.3290705e-15 +127 85 -21.716953 +128 85 17.857143 +86 86 264.3789 +87 86 -9.9920072e-15 +88 86 -107.89795 +123 86 -17.857143 +124 86 -33.047362 +125 86 5.3290705e-15 +126 86 41.803228 +127 86 17.857143 +128 86 -33.047362 +87 87 173.73562 +88 87 1.9539925e-14 +89 87 -17.463532 +90 87 -9.9920072e-15 +125 87 -21.716953 +126 87 -17.857143 +127 87 -25.970373 +128 87 5.3290705e-15 +129 87 -21.716953 +130 87 17.857143 +88 88 264.3789 +89 88 -9.9920072e-15 +90 88 -107.89795 +125 88 -17.857143 +126 88 -33.047362 +127 88 5.3290705e-15 +128 88 41.803228 +129 88 17.857143 +130 88 -33.047362 +89 89 173.73562 +90 89 1.1546319e-14 +91 89 -17.463532 +92 89 -2.4424907e-15 +127 89 -21.716953 +128 89 -17.857143 +129 89 -25.970373 +130 89 5.1070259e-15 +131 89 -21.716953 +132 89 17.857143 +90 90 264.3789 +91 90 -2.4424907e-15 +92 90 -107.89795 +127 90 -17.857143 +128 90 -33.047362 +129 90 5.1070259e-15 +130 90 41.803228 +131 90 17.857143 +132 90 -33.047362 +91 91 173.73562 +92 91 3.1086245e-15 +93 91 -17.463532 +94 91 -6.6613381e-16 +129 91 -21.716953 +130 91 -17.857143 +131 91 -25.970373 +132 91 4.8849813e-15 +133 91 -21.716953 +134 91 17.857143 +92 92 264.3789 +93 92 -4.4408921e-16 +94 92 -107.89795 +129 92 -17.857143 +130 92 -33.047362 +131 92 4.6629367e-15 +132 92 41.803228 +133 92 17.857143 +134 92 -33.047362 +93 93 173.73562 +94 93 4.8849813e-15 +95 93 -17.463532 +96 93 -3.7747583e-15 +131 93 -21.716953 +132 93 -17.857143 +133 93 -25.970373 +134 93 2.8865799e-15 +135 93 -21.716953 +136 93 17.857143 +94 94 264.3789 +95 94 -3.7747583e-15 +96 94 -107.89795 +131 94 -17.857143 +132 94 -33.047362 +133 94 3.1086245e-15 +134 94 41.803228 +135 94 17.857143 +136 94 -33.047362 +95 95 173.73562 +96 95 1.110223e-14 +97 95 -17.463532 +98 95 -7.327472e-15 +133 95 -21.716953 +134 95 -17.857143 +135 95 -25.970373 +136 95 2.6645353e-15 +137 95 -21.716953 +138 95 17.857143 +96 96 264.3789 +97 96 -7.1054274e-15 +98 96 -107.89795 +133 96 -17.857143 +134 96 -33.047362 +135 96 2.6645353e-15 +136 96 41.803228 +137 96 17.857143 +138 96 -33.047362 +97 97 173.73562 +98 97 1.1990409e-14 +99 97 -17.463532 +100 97 -4.8849813e-15 +135 97 -21.716953 +136 97 -17.857143 +137 97 -25.970373 +138 97 5.1070259e-15 +139 97 -21.716953 +140 97 17.857143 +98 98 264.3789 +99 98 -4.8849813e-15 +100 98 -107.89795 +135 98 -17.857143 +136 98 -33.047362 +137 98 5.1070259e-15 +138 98 41.803228 +139 98 17.857143 +140 98 -33.047362 +99 99 173.73562 +100 99 4.4408921e-15 +101 99 -17.463532 +102 99 4.4408921e-16 +137 99 -21.716953 +138 99 -17.857143 +139 99 -25.970373 +140 99 4.2188475e-15 +141 99 -21.716953 +142 99 17.857143 +100 100 264.3789 +101 100 4.4408921e-16 +102 100 -107.89795 +137 100 -17.857143 +138 100 -33.047362 +139 100 4.4408921e-15 +140 100 41.803228 +141 100 17.857143 +142 100 -33.047362 +101 101 173.73562 +102 101 -1.7763568e-15 +103 101 -17.463532 +104 101 1.3322676e-15 +139 101 -21.716953 +140 101 -17.857143 +141 101 -25.970373 +142 101 8.8817842e-16 +143 101 -21.716953 +144 101 17.857143 +102 102 264.3789 +103 102 1.3322676e-15 +104 102 -107.89795 +139 102 -17.857143 +140 102 -33.047362 +141 102 1.110223e-15 +142 102 41.803228 +143 102 17.857143 +144 102 -33.047362 +103 103 173.73562 +104 103 -2.6645353e-15 +105 103 -17.463532 +106 103 1.3322676e-15 +141 103 -21.716953 +142 103 -17.857143 +143 103 -25.970373 +144 103 -6.6613381e-16 +145 103 -21.716953 +146 103 17.857143 +104 104 264.3789 +105 104 1.3322676e-15 +106 104 -107.89795 +141 104 -17.857143 +142 104 -33.047362 +143 104 -6.6613381e-16 +144 104 41.803228 +145 104 17.857143 +146 104 -33.047362 +105 105 173.73562 +106 105 -4.4408921e-16 +107 105 -17.463532 +108 105 -8.8817842e-16 +143 105 -21.716953 +144 105 -17.857143 +145 105 -25.970373 +146 105 -2.220446e-16 +147 105 -21.716953 +148 105 17.857143 +106 106 264.3789 +107 106 -8.8817842e-16 +108 106 -107.89795 +143 106 -17.857143 +144 106 -33.047362 +145 106 -2.220446e-16 +146 106 41.803228 +147 106 17.857143 +148 106 -33.047362 +107 107 173.73562 +108 107 1.7763568e-15 +109 107 -17.463532 +110 107 -8.8817842e-16 +145 107 -21.716953 +146 107 -17.857143 +147 107 -25.970373 +148 107 2.220446e-16 +149 107 -21.716953 +150 107 17.857143 +108 108 264.3789 +109 108 -8.8817842e-16 +110 108 -107.89795 +145 108 -17.857143 +146 108 -33.047362 +147 108 2.220446e-16 +148 108 41.803228 +149 108 17.857143 +150 108 -33.047362 +109 109 173.73562 +110 109 8.8817842e-16 +111 109 -17.463532 +147 109 -21.716953 +148 109 -17.857143 +149 109 -25.970373 +151 109 -21.716953 +152 109 17.857143 +110 110 264.3789 +112 110 -107.89795 +147 110 -17.857143 +148 110 -33.047362 +150 110 41.803228 +151 110 17.857143 +152 110 -33.047362 +111 111 173.73562 +112 111 8.8817842e-16 +113 111 -17.463532 +114 111 -8.8817842e-16 +149 111 -21.716953 +150 111 -17.857143 +151 111 -25.970373 +152 111 2.220446e-16 +153 111 -21.716953 +154 111 17.857143 +112 112 264.3789 +113 112 -8.8817842e-16 +114 112 -107.89795 +149 112 -17.857143 +150 112 -33.047362 +151 112 2.220446e-16 +152 112 41.803228 +153 112 17.857143 +154 112 -33.047362 +113 113 173.73562 +114 113 1.3322676e-15 +115 113 -17.463532 +116 113 -4.4408921e-16 +151 113 -21.716953 +152 113 -17.857143 +153 113 -25.970373 +154 113 2.220446e-16 +155 113 -21.716953 +156 113 17.857143 +114 114 264.3789 +115 114 -4.4408921e-16 +116 114 -107.89795 +151 114 -17.857143 +152 114 -33.047362 +153 114 2.220446e-16 +154 114 41.803228 +155 114 17.857143 +156 114 -33.047362 +115 115 173.73562 +116 115 4.4408921e-16 +117 115 -17.463532 +153 115 -21.716953 +154 115 -17.857143 +155 115 -25.970373 +157 115 -21.716953 +158 115 17.857143 +116 116 264.3789 +118 116 -107.89795 +153 116 -17.857143 +154 116 -33.047362 +156 116 41.803228 +157 116 17.857143 +158 116 -33.047362 +117 117 173.73562 +119 117 -17.463532 +155 117 -21.716953 +156 117 -17.857143 +157 117 -25.970373 +159 117 -21.716953 +160 117 17.857143 +118 118 264.3789 +120 118 -107.89795 +155 118 -17.857143 +156 118 -33.047362 +158 118 41.803228 +159 118 17.857143 +160 118 -33.047362 +119 119 86.86781 +157 119 -21.716953 +158 119 -17.857143 +159 119 -12.985187 +160 119 -1.3736264 +120 120 132.18945 +157 120 -17.857143 +158 120 -33.047362 +159 120 1.3736264 +160 120 20.901614 +121 121 86.86781 +122 121 9.7699626e-15 +123 121 -17.463532 +124 121 -9.7699626e-15 +161 121 -12.985187 +162 121 1.3736264 +163 121 -21.716953 +164 121 17.857143 +122 122 132.18945 +123 122 -9.7699626e-15 +124 122 -107.89795 +161 122 -1.3736264 +162 122 20.901614 +163 122 17.857143 +164 122 -33.047362 +123 123 173.73562 +124 123 1.9539925e-14 +125 123 -17.463532 +126 123 -9.7699626e-15 +161 123 -21.716953 +162 123 -17.857143 +163 123 -25.970373 +164 123 5.1070259e-15 +165 123 -21.716953 +166 123 17.857143 +124 124 264.3789 +125 124 -9.7699626e-15 +126 124 -107.89795 +161 124 -17.857143 +162 124 -33.047362 +163 124 5.1070259e-15 +164 124 41.803228 +165 124 17.857143 +166 124 -33.047362 +125 125 173.73562 +126 125 1.9539925e-14 +127 125 -17.463532 +128 125 -9.7699626e-15 +163 125 -21.716953 +164 125 -17.857143 +165 125 -25.970373 +166 125 5.1070259e-15 +167 125 -21.716953 +168 125 17.857143 +126 126 264.3789 +127 126 -9.7699626e-15 +128 126 -107.89795 +163 126 -17.857143 +164 126 -33.047362 +165 126 5.1070259e-15 +166 126 41.803228 +167 126 17.857143 +168 126 -33.047362 +127 127 173.73562 +128 127 1.9539925e-14 +129 127 -17.463532 +130 127 -9.7699626e-15 +165 127 -21.716953 +166 127 -17.857143 +167 127 -25.970373 +168 127 5.1070259e-15 +169 127 -21.716953 +170 127 17.857143 +128 128 264.3789 +129 128 -9.7699626e-15 +130 128 -107.89795 +165 128 -17.857143 +166 128 -33.047362 +167 128 5.1070259e-15 +168 128 41.803228 +169 128 17.857143 +170 128 -33.047362 +129 129 173.73562 +130 129 1.2434498e-14 +131 129 -17.463532 +132 129 -2.6645353e-15 +167 129 -21.716953 +168 129 -17.857143 +169 129 -25.970373 +170 129 1.3322676e-15 +171 129 -21.716953 +172 129 17.857143 +130 130 264.3789 +131 130 -2.6645353e-15 +132 130 -107.89795 +167 130 -17.857143 +168 130 -33.047362 +169 130 1.3322676e-15 +170 130 41.803228 +171 130 17.857143 +172 130 -33.047362 +131 131 173.73562 +132 131 3.9968029e-15 +133 131 -17.463532 +134 131 -8.8817842e-16 +169 131 -21.716953 +170 131 -17.857143 +171 131 -25.970373 +172 131 -3.5527137e-15 +173 131 -21.716953 +174 131 17.857143 +132 132 264.3789 +133 132 -1.110223e-15 +134 132 -107.89795 +169 132 -17.857143 +170 132 -33.047362 +171 132 -3.5527137e-15 +172 132 41.803228 +173 132 17.857143 +174 132 -33.047362 +133 133 173.73562 +134 133 4.8849813e-15 +135 133 -17.463532 +136 133 -3.7747583e-15 +171 133 -21.716953 +172 133 -17.857143 +173 133 -25.970373 +174 133 -8.8817842e-16 +175 133 -21.716953 +176 133 17.857143 +134 134 264.3789 +135 134 -3.7747583e-15 +136 134 -107.89795 +171 134 -17.857143 +172 134 -33.047362 +173 134 -8.8817842e-16 +174 134 41.803228 +175 134 17.857143 +176 134 -33.047362 +135 135 173.73562 +136 135 1.110223e-14 +137 135 -17.463532 +138 135 -7.327472e-15 +173 135 -21.716953 +174 135 -17.857143 +175 135 -25.970373 +176 135 2.6645353e-15 +177 135 -21.716953 +178 135 17.857143 +136 136 264.3789 +137 136 -7.1054274e-15 +138 136 -107.89795 +173 136 -17.857143 +174 136 -33.047362 +175 136 2.6645353e-15 +176 136 41.803228 +177 136 17.857143 +178 136 -33.047362 +137 137 173.73562 +138 137 1.1546319e-14 +139 137 -17.463532 +140 137 -5.1070259e-15 +175 137 -21.716953 +176 137 -17.857143 +177 137 -25.970373 +178 137 1.3322676e-15 +179 137 -21.716953 +180 137 17.857143 +138 138 264.3789 +139 138 -4.8849813e-15 +140 138 -107.89795 +175 138 -17.857143 +176 138 -33.047362 +177 138 1.5543122e-15 +178 138 41.803228 +179 138 17.857143 +180 138 -33.047362 +139 139 173.73562 +140 139 5.3290705e-15 +141 139 -17.463532 +142 139 2.220446e-16 +177 139 -21.716953 +178 139 -17.857143 +179 139 -25.970373 +180 139 -2.220446e-15 +181 139 -21.716953 +182 139 17.857143 +140 140 264.3789 +141 140 2.220446e-16 +142 140 -107.89795 +177 140 -17.857143 +178 140 -33.047362 +179 140 -2.4424907e-15 +180 140 41.803228 +181 140 17.857143 +182 140 -33.047362 +141 141 173.73562 +142 141 -1.3322676e-15 +143 141 -17.463532 +144 141 1.110223e-15 +179 141 -21.716953 +180 141 -17.857143 +181 141 -25.970373 +182 141 -1.9984014e-15 +183 141 -21.716953 +184 141 17.857143 +142 142 264.3789 +143 142 1.110223e-15 +144 142 -107.89795 +179 142 -17.857143 +180 142 -33.047362 +181 142 -1.9984014e-15 +182 142 41.803228 +183 142 17.857143 +184 142 -33.047362 +143 143 173.73562 +144 143 -2.220446e-15 +145 143 -17.463532 +146 143 1.3322676e-15 +181 143 -21.716953 +182 143 -17.857143 +183 143 -25.970373 +184 143 -6.6613381e-16 +185 143 -21.716953 +186 143 17.857143 +144 144 264.3789 +145 144 1.3322676e-15 +146 144 -107.89795 +181 144 -17.857143 +182 144 -33.047362 +183 144 -6.6613381e-16 +184 144 41.803228 +185 144 17.857143 +186 144 -33.047362 +145 145 173.73562 +147 145 -17.463532 +148 145 -8.8817842e-16 +183 145 -21.716953 +184 145 -17.857143 +185 145 -25.970373 +186 145 -2.220446e-16 +187 145 -21.716953 +188 145 17.857143 +146 146 264.3789 +147 146 -8.8817842e-16 +148 146 -107.89795 +183 146 -17.857143 +184 146 -33.047362 +185 146 -2.220446e-16 +186 146 41.803228 +187 146 17.857143 +188 146 -33.047362 +147 147 173.73562 +148 147 1.7763568e-15 +149 147 -17.463532 +150 147 -8.8817842e-16 +185 147 -21.716953 +186 147 -17.857143 +187 147 -25.970373 +189 147 -21.716953 +190 147 17.857143 +148 148 264.3789 +149 148 -8.8817842e-16 +150 148 -107.89795 +185 148 -17.857143 +186 148 -33.047362 +188 148 41.803228 +189 148 17.857143 +190 148 -33.047362 +149 149 173.73562 +150 149 8.8817842e-16 +151 149 -17.463532 +152 149 -2.220446e-16 +187 149 -21.716953 +188 149 -17.857143 +189 149 -25.970373 +190 149 -2.220446e-16 +191 149 -21.716953 +192 149 17.857143 +150 150 264.3789 +151 150 -2.220446e-16 +152 150 -107.89795 +187 150 -17.857143 +188 150 -33.047362 +189 150 -2.220446e-16 +190 150 41.803228 +191 150 17.857143 +192 150 -33.047362 +151 151 173.73562 +152 151 1.3322676e-15 +153 151 -17.463532 +154 151 -8.8817842e-16 +189 151 -21.716953 +190 151 -17.857143 +191 151 -25.970373 +193 151 -21.716953 +194 151 17.857143 +152 152 264.3789 +153 152 -8.8817842e-16 +154 152 -107.89795 +189 152 -17.857143 +190 152 -33.047362 +192 152 41.803228 +193 152 17.857143 +194 152 -33.047362 +153 153 173.73562 +154 153 1.3322676e-15 +155 153 -17.463532 +156 153 -6.6613381e-16 +191 153 -21.716953 +192 153 -17.857143 +193 153 -25.970373 +195 153 -21.716953 +196 153 17.857143 +154 154 264.3789 +155 154 -6.6613381e-16 +156 154 -107.89795 +191 154 -17.857143 +192 154 -33.047362 +194 154 41.803228 +195 154 17.857143 +196 154 -33.047362 +155 155 173.73562 +156 155 8.8817842e-16 +157 155 -17.463532 +158 155 -2.220446e-16 +193 155 -21.716953 +194 155 -17.857143 +195 155 -25.970373 +196 155 -2.220446e-16 +197 155 -21.716953 +198 155 17.857143 +156 156 264.3789 +157 156 -2.220446e-16 +158 156 -107.89795 +193 156 -17.857143 +194 156 -33.047362 +195 156 -2.220446e-16 +196 156 41.803228 +197 156 17.857143 +198 156 -33.047362 +157 157 173.73562 +158 157 4.4408921e-16 +159 157 -17.463532 +160 157 -2.220446e-16 +195 157 -21.716953 +196 157 -17.857143 +197 157 -25.970373 +198 157 -2.220446e-16 +199 157 -21.716953 +200 157 17.857143 +158 158 264.3789 +159 158 -2.220446e-16 +160 158 -107.89795 +195 158 -17.857143 +196 158 -33.047362 +197 158 -2.220446e-16 +198 158 41.803228 +199 158 17.857143 +200 158 -33.047362 +159 159 86.86781 +160 159 4.4408921e-16 +197 159 -21.716953 +198 159 -17.857143 +199 159 -12.985187 +200 159 -1.3736264 +160 160 132.18945 +197 160 -17.857143 +198 160 -33.047362 +199 160 1.3736264 +200 160 20.901614 +161 161 86.86781 +162 161 1.0214052e-14 +163 161 -17.463532 +164 161 -9.7699626e-15 +201 161 -12.985187 +202 161 1.3736264 +203 161 -21.716953 +204 161 17.857143 +162 162 132.18945 +163 162 -9.9920072e-15 +164 162 -107.89795 +201 162 -1.3736264 +202 162 20.901614 +203 162 17.857143 +204 162 -33.047362 +163 163 173.73562 +164 163 1.9539925e-14 +165 163 -17.463532 +166 163 -9.7699626e-15 +201 163 -21.716953 +202 163 -17.857143 +203 163 -25.970373 +204 163 5.3290705e-15 +205 163 -21.716953 +206 163 17.857143 +164 164 264.3789 +165 164 -9.9920072e-15 +166 164 -107.89795 +201 164 -17.857143 +202 164 -33.047362 +203 164 5.3290705e-15 +204 164 41.803228 +205 164 17.857143 +206 164 -33.047362 +165 165 173.73562 +166 165 1.9539925e-14 +167 165 -17.463532 +168 165 -9.7699626e-15 +203 165 -21.716953 +204 165 -17.857143 +205 165 -25.970373 +206 165 5.3290705e-15 +207 165 -21.716953 +208 165 17.857143 +166 166 264.3789 +167 166 -9.9920072e-15 +168 166 -107.89795 +203 166 -17.857143 +204 166 -33.047362 +205 166 5.3290705e-15 +206 166 41.803228 +207 166 17.857143 +208 166 -33.047362 +167 167 173.73562 +168 167 1.9539925e-14 +169 167 -17.463532 +170 167 -9.7699626e-15 +205 167 -21.716953 +206 167 -17.857143 +207 167 -25.970373 +208 167 5.3290705e-15 +209 167 -21.716953 +210 167 17.857143 +168 168 264.3789 +169 168 -9.9920072e-15 +170 168 -107.89795 +205 168 -17.857143 +206 168 -33.047362 +207 168 5.3290705e-15 +208 168 41.803228 +209 168 17.857143 +210 168 -33.047362 +169 169 173.73562 +170 169 1.1990409e-14 +171 169 -17.463532 +172 169 -2.6645353e-15 +207 169 -21.716953 +208 169 -17.857143 +209 169 -25.970373 +210 169 5.1070259e-15 +211 169 -21.716953 +212 169 17.857143 +170 170 264.3789 +171 170 -2.6645353e-15 +172 170 -107.89795 +207 170 -17.857143 +208 170 -33.047362 +209 170 5.1070259e-15 +210 170 41.803228 +211 170 17.857143 +212 170 -33.047362 +171 171 173.73562 +172 171 3.1086245e-15 +173 171 -17.463532 +174 171 -2.220446e-16 +209 171 -21.716953 +210 171 -17.857143 +211 171 -25.970373 +212 171 4.8849813e-15 +213 171 -21.716953 +214 171 17.857143 +172 172 264.3789 +173 172 -2.220446e-16 +174 172 -107.89795 +209 172 -17.857143 +210 172 -33.047362 +211 172 4.6629367e-15 +212 172 41.803228 +213 172 17.857143 +214 172 -33.047362 +173 173 173.73562 +174 173 3.9968029e-15 +175 173 -17.463532 +176 173 -3.5527137e-15 +211 173 -21.716953 +212 173 -17.857143 +213 173 -25.970373 +214 173 2.8865799e-15 +215 173 -21.716953 +216 173 17.857143 +174 174 264.3789 +175 174 -3.7747583e-15 +176 174 -107.89795 +211 174 -17.857143 +212 174 -33.047362 +213 174 3.1086245e-15 +214 174 41.803228 +215 174 17.857143 +216 174 -33.047362 +175 175 173.73562 +176 175 1.0658141e-14 +177 175 -17.463532 +178 175 -7.1054274e-15 +213 175 -21.716953 +214 175 -17.857143 +215 175 -25.970373 +216 175 2.6645353e-15 +217 175 -21.716953 +218 175 17.857143 +176 176 264.3789 +177 176 -7.1054274e-15 +178 176 -107.89795 +213 176 -17.857143 +214 176 -33.047362 +215 176 2.6645353e-15 +216 176 41.803228 +217 176 17.857143 +218 176 -33.047362 +177 177 173.73562 +178 177 1.1990409e-14 +179 177 -17.463532 +180 177 -4.4408921e-15 +215 177 -21.716953 +216 177 -17.857143 +217 177 -25.970373 +218 177 5.1070259e-15 +219 177 -21.716953 +220 177 17.857143 +178 178 264.3789 +179 178 -4.6629367e-15 +180 178 -107.89795 +215 178 -17.857143 +216 178 -33.047362 +217 178 5.1070259e-15 +218 178 41.803228 +219 178 17.857143 +220 178 -33.047362 +179 179 173.73562 +180 179 3.9968029e-15 +181 179 -17.463532 +182 179 4.4408921e-16 +217 179 -21.716953 +218 179 -17.857143 +219 179 -25.970373 +220 179 4.2188475e-15 +221 179 -21.716953 +222 179 17.857143 +180 180 264.3789 +181 180 4.4408921e-16 +182 180 -107.89795 +217 180 -17.857143 +218 180 -33.047362 +219 180 4.4408921e-15 +220 180 41.803228 +221 180 17.857143 +222 180 -33.047362 +181 181 173.73562 +182 181 -1.7763568e-15 +183 181 -17.463532 +184 181 1.110223e-15 +219 181 -21.716953 +220 181 -17.857143 +221 181 -25.970373 +222 181 8.8817842e-16 +223 181 -21.716953 +224 181 17.857143 +182 182 264.3789 +183 182 1.110223e-15 +184 182 -107.89795 +219 182 -17.857143 +220 182 -33.047362 +221 182 1.110223e-15 +222 182 41.803228 +223 182 17.857143 +224 182 -33.047362 +183 183 173.73562 +184 183 -2.6645353e-15 +185 183 -17.463532 +186 183 1.3322676e-15 +221 183 -21.716953 +222 183 -17.857143 +223 183 -25.970373 +224 183 -6.6613381e-16 +225 183 -21.716953 +226 183 17.857143 +184 184 264.3789 +185 184 1.3322676e-15 +186 184 -107.89795 +221 184 -17.857143 +222 184 -33.047362 +223 184 -6.6613381e-16 +224 184 41.803228 +225 184 17.857143 +226 184 -33.047362 +185 185 173.73562 +186 185 -4.4408921e-16 +187 185 -17.463532 +188 185 -8.8817842e-16 +223 185 -21.716953 +224 185 -17.857143 +225 185 -25.970373 +226 185 -2.220446e-16 +227 185 -21.716953 +228 185 17.857143 +186 186 264.3789 +187 186 -8.8817842e-16 +188 186 -107.89795 +223 186 -17.857143 +224 186 -33.047362 +225 186 -2.220446e-16 +226 186 41.803228 +227 186 17.857143 +228 186 -33.047362 +187 187 173.73562 +188 187 1.7763568e-15 +189 187 -17.463532 +190 187 -8.8817842e-16 +225 187 -21.716953 +226 187 -17.857143 +227 187 -25.970373 +228 187 2.220446e-16 +229 187 -21.716953 +230 187 17.857143 +188 188 264.3789 +189 188 -8.8817842e-16 +190 188 -107.89795 +225 188 -17.857143 +226 188 -33.047362 +227 188 2.220446e-16 +228 188 41.803228 +229 188 17.857143 +230 188 -33.047362 +189 189 173.73562 +190 189 8.8817842e-16 +191 189 -17.463532 +227 189 -21.716953 +228 189 -17.857143 +229 189 -25.970373 +231 189 -21.716953 +232 189 17.857143 +190 190 264.3789 +192 190 -107.89795 +227 190 -17.857143 +228 190 -33.047362 +230 190 41.803228 +231 190 17.857143 +232 190 -33.047362 +191 191 173.73562 +192 191 8.8817842e-16 +193 191 -17.463532 +194 191 -8.8817842e-16 +229 191 -21.716953 +230 191 -17.857143 +231 191 -25.970373 +232 191 2.220446e-16 +233 191 -21.716953 +234 191 17.857143 +192 192 264.3789 +193 192 -8.8817842e-16 +194 192 -107.89795 +229 192 -17.857143 +230 192 -33.047362 +231 192 2.220446e-16 +232 192 41.803228 +233 192 17.857143 +234 192 -33.047362 +193 193 173.73562 +194 193 1.3322676e-15 +195 193 -17.463532 +196 193 -2.220446e-16 +231 193 -21.716953 +232 193 -17.857143 +233 193 -25.970373 +234 193 2.220446e-16 +235 193 -21.716953 +236 193 17.857143 +194 194 264.3789 +195 194 -2.220446e-16 +196 194 -107.89795 +231 194 -17.857143 +232 194 -33.047362 +233 194 2.220446e-16 +234 194 41.803228 +235 194 17.857143 +236 194 -33.047362 +195 195 173.73562 +197 195 -17.463532 +233 195 -21.716953 +234 195 -17.857143 +235 195 -25.970373 +237 195 -21.716953 +238 195 17.857143 +196 196 264.3789 +198 196 -107.89795 +233 196 -17.857143 +234 196 -33.047362 +236 196 41.803228 +237 196 17.857143 +238 196 -33.047362 +197 197 173.73562 +199 197 -17.463532 +235 197 -21.716953 +236 197 -17.857143 +237 197 -25.970373 +239 197 -21.716953 +240 197 17.857143 +198 198 264.3789 +200 198 -107.89795 +235 198 -17.857143 +236 198 -33.047362 +238 198 41.803228 +239 198 17.857143 +240 198 -33.047362 +199 199 86.86781 +237 199 -21.716953 +238 199 -17.857143 +239 199 -12.985187 +240 199 -1.3736264 +200 200 132.18945 +237 200 -17.857143 +238 200 -33.047362 +239 200 1.3736264 +240 200 20.901614 +201 201 86.86781 +202 201 9.7699626e-15 +203 201 -17.463532 +204 201 -9.7699626e-15 +241 201 -12.985187 +242 201 1.3736264 +243 201 -21.716953 +244 201 17.857143 +202 202 132.18945 +203 202 -9.7699626e-15 +204 202 -107.89795 +241 202 -1.3736264 +242 202 20.901614 +243 202 17.857143 +244 202 -33.047362 +203 203 173.73562 +204 203 1.9539925e-14 +205 203 -17.463532 +206 203 -9.7699626e-15 +241 203 -21.716953 +242 203 -17.857143 +243 203 -25.970373 +244 203 4.8849813e-15 +245 203 -21.716953 +246 203 17.857143 +204 204 264.3789 +205 204 -9.7699626e-15 +206 204 -107.89795 +241 204 -17.857143 +242 204 -33.047362 +243 204 4.8849813e-15 +244 204 41.803228 +245 204 17.857143 +246 204 -33.047362 +205 205 173.73562 +206 205 1.9539925e-14 +207 205 -17.463532 +208 205 -9.7699626e-15 +243 205 -21.716953 +244 205 -17.857143 +245 205 -25.970373 +246 205 4.8849813e-15 +247 205 -21.716953 +248 205 17.857143 +206 206 264.3789 +207 206 -9.7699626e-15 +208 206 -107.89795 +243 206 -17.857143 +244 206 -33.047362 +245 206 4.8849813e-15 +246 206 41.803228 +247 206 17.857143 +248 206 -33.047362 +207 207 173.73562 +208 207 1.9539925e-14 +209 207 -17.463532 +210 207 -9.7699626e-15 +245 207 -21.716953 +246 207 -17.857143 +247 207 -25.970373 +248 207 4.8849813e-15 +249 207 -21.716953 +250 207 17.857143 +208 208 264.3789 +209 208 -9.7699626e-15 +210 208 -107.89795 +245 208 -17.857143 +246 208 -33.047362 +247 208 4.8849813e-15 +248 208 41.803228 +249 208 17.857143 +250 208 -33.047362 +209 209 173.73562 +210 209 1.2434498e-14 +211 209 -17.463532 +212 209 -2.8865799e-15 +247 209 -21.716953 +248 209 -17.857143 +249 209 -25.970373 +250 209 1.3322676e-15 +251 209 -21.716953 +252 209 17.857143 +210 210 264.3789 +211 210 -2.6645353e-15 +212 210 -107.89795 +247 210 -17.857143 +248 210 -33.047362 +249 210 1.110223e-15 +250 210 41.803228 +251 210 17.857143 +252 210 -33.047362 +211 211 173.73562 +212 211 3.1086245e-15 +213 211 -17.463532 +214 211 -6.6613381e-16 +249 211 -21.716953 +250 211 -17.857143 +251 211 -25.970373 +252 211 -3.3306691e-15 +253 211 -21.716953 +254 211 17.857143 +212 212 264.3789 +213 212 -6.6613381e-16 +214 212 -107.89795 +249 212 -17.857143 +250 212 -33.047362 +251 212 -3.1086245e-15 +252 212 41.803228 +253 212 17.857143 +254 212 -33.047362 +213 213 173.73562 +214 213 4.8849813e-15 +215 213 -17.463532 +216 213 -3.9968029e-15 +251 213 -21.716953 +252 213 -17.857143 +253 213 -25.970373 +254 213 -8.8817842e-16 +255 213 -21.716953 +256 213 17.857143 +214 214 264.3789 +215 214 -3.9968029e-15 +216 214 -107.89795 +251 214 -17.857143 +252 214 -33.047362 +253 214 -8.8817842e-16 +254 214 41.803228 +255 214 17.857143 +256 214 -33.047362 +215 215 173.73562 +216 215 1.0658141e-14 +217 215 -17.463532 +218 215 -7.5495166e-15 +253 215 -21.716953 +254 215 -17.857143 +255 215 -25.970373 +256 215 2.6645353e-15 +257 215 -21.716953 +258 215 17.857143 +216 216 264.3789 +217 216 -7.1054274e-15 +218 216 -107.89795 +253 216 -17.857143 +254 216 -33.047362 +255 216 2.6645353e-15 +256 216 41.803228 +257 216 17.857143 +258 216 -33.047362 +217 217 173.73562 +218 217 1.687539e-14 +219 217 -17.463532 +220 217 -9.9920072e-15 +255 217 -21.716953 +256 217 -17.857143 +257 217 -25.970373 +258 217 3.7747583e-15 +259 217 -21.716953 +260 217 17.857143 +218 218 264.3789 +219 218 -9.7699626e-15 +220 218 -107.89795 +255 218 -17.857143 +256 218 -33.047362 +257 218 3.7747583e-15 +258 218 41.803228 +259 218 17.857143 +260 218 -33.047362 +219 219 173.73562 +220 219 1.2878587e-14 +221 219 -17.463532 +222 219 -3.1086245e-15 +257 219 -21.716953 +258 219 -17.857143 +259 219 -25.970373 +260 219 1.7763568e-15 +261 219 -21.716953 +262 219 17.857143 +220 220 264.3789 +221 220 -3.1086245e-15 +222 220 -107.89795 +257 220 -17.857143 +258 220 -33.047362 +259 220 1.7763568e-15 +260 220 41.803228 +261 220 17.857143 +262 220 -33.047362 +221 221 173.73562 +222 221 2.220446e-15 +223 221 -17.463532 +224 221 1.110223e-15 +259 221 -21.716953 +260 221 -17.857143 +261 221 -25.970373 +262 221 -4.4408921e-16 +263 221 -21.716953 +264 221 17.857143 +222 222 264.3789 +223 222 1.110223e-15 +224 222 -107.89795 +259 222 -17.857143 +260 222 -33.047362 +261 222 -4.4408921e-16 +262 222 41.803228 +263 222 17.857143 +264 222 -33.047362 +223 223 173.73562 +224 223 -2.220446e-15 +225 223 -17.463532 +226 223 1.3322676e-15 +261 223 -21.716953 +262 223 -17.857143 +263 223 -25.970373 +264 223 -1.110223e-15 +265 223 -21.716953 +266 223 17.857143 +224 224 264.3789 +225 224 1.3322676e-15 +226 224 -107.89795 +261 224 -17.857143 +262 224 -33.047362 +263 224 -1.110223e-15 +264 224 41.803228 +265 224 17.857143 +266 224 -33.047362 +225 225 173.73562 +227 225 -17.463532 +228 225 -8.8817842e-16 +263 225 -21.716953 +264 225 -17.857143 +265 225 -25.970373 +266 225 -2.220446e-16 +267 225 -21.716953 +268 225 17.857143 +226 226 264.3789 +227 226 -8.8817842e-16 +228 226 -107.89795 +263 226 -17.857143 +264 226 -33.047362 +265 226 -2.220446e-16 +266 226 41.803228 +267 226 17.857143 +268 226 -33.047362 +227 227 173.73562 +228 227 1.7763568e-15 +229 227 -17.463532 +230 227 -8.8817842e-16 +265 227 -21.716953 +266 227 -17.857143 +267 227 -25.970373 +268 227 2.220446e-16 +269 227 -21.716953 +270 227 17.857143 +228 228 264.3789 +229 228 -8.8817842e-16 +230 228 -107.89795 +265 228 -17.857143 +266 228 -33.047362 +267 228 2.220446e-16 +268 228 41.803228 +269 228 17.857143 +270 228 -33.047362 +229 229 173.73562 +230 229 8.8817842e-16 +231 229 -17.463532 +232 229 -2.220446e-16 +267 229 -21.716953 +268 229 -17.857143 +269 229 -25.970373 +271 229 -21.716953 +272 229 17.857143 +230 230 264.3789 +231 230 -2.220446e-16 +232 230 -107.89795 +267 230 -17.857143 +268 230 -33.047362 +270 230 41.803228 +271 230 17.857143 +272 230 -33.047362 +231 231 173.73562 +232 231 1.3322676e-15 +233 231 -17.463532 +234 231 -8.8817842e-16 +269 231 -21.716953 +270 231 -17.857143 +271 231 -25.970373 +272 231 -2.220446e-16 +273 231 -21.716953 +274 231 17.857143 +232 232 264.3789 +233 232 -8.8817842e-16 +234 232 -107.89795 +269 232 -17.857143 +270 232 -33.047362 +271 232 -2.220446e-16 +272 232 41.803228 +273 232 17.857143 +274 232 -33.047362 +233 233 173.73562 +234 233 8.8817842e-16 +235 233 -17.463532 +236 233 -4.4408921e-16 +271 233 -21.716953 +272 233 -17.857143 +273 233 -25.970373 +275 233 -21.716953 +276 233 17.857143 +234 234 264.3789 +235 234 -4.4408921e-16 +236 234 -107.89795 +271 234 -17.857143 +272 234 -33.047362 +274 234 41.803228 +275 234 17.857143 +276 234 -33.047362 +235 235 173.73562 +236 235 8.8817842e-16 +237 235 -17.463532 +238 235 -2.220446e-16 +273 235 -21.716953 +274 235 -17.857143 +275 235 -25.970373 +276 235 -2.220446e-16 +277 235 -21.716953 +278 235 17.857143 +236 236 264.3789 +237 236 -2.220446e-16 +238 236 -107.89795 +273 236 -17.857143 +274 236 -33.047362 +275 236 -2.220446e-16 +276 236 41.803228 +277 236 17.857143 +278 236 -33.047362 +237 237 173.73562 +238 237 4.4408921e-16 +239 237 -17.463532 +240 237 -2.220446e-16 +275 237 -21.716953 +276 237 -17.857143 +277 237 -25.970373 +278 237 -2.220446e-16 +279 237 -21.716953 +280 237 17.857143 +238 238 264.3789 +239 238 -2.220446e-16 +240 238 -107.89795 +275 238 -17.857143 +276 238 -33.047362 +277 238 -2.220446e-16 +278 238 41.803228 +279 238 17.857143 +280 238 -33.047362 +239 239 86.86781 +240 239 4.4408921e-16 +277 239 -21.716953 +278 239 -17.857143 +279 239 -12.985187 +280 239 -1.3736264 +240 240 132.18945 +277 240 -17.857143 +278 240 -33.047362 +279 240 1.3736264 +280 240 20.901614 +241 241 86.86781 +242 241 1.0214052e-14 +243 241 -17.463532 +244 241 -9.7699626e-15 +281 241 -12.985187 +282 241 1.3736264 +283 241 -21.716953 +284 241 17.857143 +242 242 132.18945 +243 242 -9.9920072e-15 +244 242 -107.89795 +281 242 -1.3736264 +282 242 20.901614 +283 242 17.857143 +284 242 -33.047362 +243 243 173.73562 +244 243 1.9539925e-14 +245 243 -17.463532 +246 243 -9.7699626e-15 +281 243 -21.716953 +282 243 -17.857143 +283 243 -25.970373 +284 243 5.3290705e-15 +285 243 -21.716953 +286 243 17.857143 +244 244 264.3789 +245 244 -9.9920072e-15 +246 244 -107.89795 +281 244 -17.857143 +282 244 -33.047362 +283 244 5.3290705e-15 +284 244 41.803228 +285 244 17.857143 +286 244 -33.047362 +245 245 173.73562 +246 245 1.9539925e-14 +247 245 -17.463532 +248 245 -9.7699626e-15 +283 245 -21.716953 +284 245 -17.857143 +285 245 -25.970373 +286 245 5.3290705e-15 +287 245 -21.716953 +288 245 17.857143 +246 246 264.3789 +247 246 -9.9920072e-15 +248 246 -107.89795 +283 246 -17.857143 +284 246 -33.047362 +285 246 5.3290705e-15 +286 246 41.803228 +287 246 17.857143 +288 246 -33.047362 +247 247 173.73562 +248 247 1.9539925e-14 +249 247 -17.463532 +250 247 -9.7699626e-15 +285 247 -21.716953 +286 247 -17.857143 +287 247 -25.970373 +288 247 5.3290705e-15 +289 247 -21.716953 +290 247 17.857143 +248 248 264.3789 +249 248 -9.9920072e-15 +250 248 -107.89795 +285 248 -17.857143 +286 248 -33.047362 +287 248 5.3290705e-15 +288 248 41.803228 +289 248 17.857143 +290 248 -33.047362 +249 249 173.73562 +250 249 1.1990409e-14 +251 249 -17.463532 +252 249 -2.6645353e-15 +287 249 -21.716953 +288 249 -17.857143 +289 249 -25.970373 +290 249 5.1070259e-15 +291 249 -21.716953 +292 249 17.857143 +250 250 264.3789 +251 250 -2.6645353e-15 +252 250 -107.89795 +287 250 -17.857143 +288 250 -33.047362 +289 250 5.1070259e-15 +290 250 41.803228 +291 250 17.857143 +292 250 -33.047362 +251 251 173.73562 +252 251 3.5527137e-15 +253 251 -17.463532 +254 251 -4.4408921e-16 +289 251 -21.716953 +290 251 -17.857143 +291 251 -25.970373 +292 251 4.8849813e-15 +293 251 -21.716953 +294 251 17.857143 +252 252 264.3789 +253 252 -4.4408921e-16 +254 252 -107.89795 +289 252 -17.857143 +290 252 -33.047362 +291 252 4.6629367e-15 +292 252 41.803228 +293 252 17.857143 +294 252 -33.047362 +253 253 173.73562 +254 253 3.9968029e-15 +255 253 -17.463532 +256 253 -3.5527137e-15 +291 253 -21.716953 +292 253 -17.857143 +293 253 -25.970373 +294 253 2.8865799e-15 +295 253 -21.716953 +296 253 17.857143 +254 254 264.3789 +255 254 -3.7747583e-15 +256 254 -107.89795 +291 254 -17.857143 +292 254 -33.047362 +293 254 3.1086245e-15 +294 254 41.803228 +295 254 17.857143 +296 254 -33.047362 +255 255 173.73562 +256 255 1.110223e-14 +257 255 -17.463532 +258 255 -7.327472e-15 +293 255 -21.716953 +294 255 -17.857143 +295 255 -25.970373 +296 255 2.6645353e-15 +297 255 -21.716953 +298 255 17.857143 +256 256 264.3789 +257 256 -7.5495166e-15 +258 256 -107.89795 +293 256 -17.857143 +294 256 -33.047362 +295 256 2.6645353e-15 +296 256 41.803228 +297 256 17.857143 +298 256 -33.047362 +257 257 173.73562 +258 257 1.4654944e-14 +259 257 -17.463532 +260 257 -7.327472e-15 +295 257 -21.716953 +296 257 -17.857143 +297 257 -25.970373 +298 257 3.7747583e-15 +299 257 -21.716953 +300 257 17.857143 +258 258 264.3789 +259 258 -7.5495166e-15 +260 258 -107.89795 +295 258 -17.857143 +296 258 -33.047362 +297 258 3.7747583e-15 +298 258 41.803228 +299 258 17.857143 +300 258 -33.047362 +259 259 173.73562 +260 259 7.5495166e-15 +261 259 -17.463532 +262 259 -2.220446e-16 +297 259 -21.716953 +298 259 -17.857143 +299 259 -25.970373 +300 259 1.9984014e-15 +301 259 -21.716953 +302 259 17.857143 +260 260 264.3789 +261 260 -2.220446e-16 +262 260 -107.89795 +297 260 -17.857143 +298 260 -33.047362 +299 260 1.9984014e-15 +300 260 41.803228 +301 260 17.857143 +302 260 -33.047362 +261 261 173.73562 +262 261 -1.3322676e-15 +263 261 -17.463532 +264 261 1.110223e-15 +299 261 -21.716953 +300 261 -17.857143 +301 261 -25.970373 +302 261 -4.4408921e-16 +303 261 -21.716953 +304 261 17.857143 +262 262 264.3789 +263 262 1.110223e-15 +264 262 -107.89795 +299 262 -17.857143 +300 262 -33.047362 +301 262 -4.4408921e-16 +302 262 41.803228 +303 262 17.857143 +304 262 -33.047362 +263 263 173.73562 +264 263 -2.6645353e-15 +265 263 -17.463532 +266 263 1.3322676e-15 +301 263 -21.716953 +302 263 -17.857143 +303 263 -25.970373 +304 263 -6.6613381e-16 +305 263 -21.716953 +306 263 17.857143 +264 264 264.3789 +265 264 1.3322676e-15 +266 264 -107.89795 +301 264 -17.857143 +302 264 -33.047362 +303 264 -6.6613381e-16 +304 264 41.803228 +305 264 17.857143 +306 264 -33.047362 +265 265 173.73562 +266 265 -4.4408921e-16 +267 265 -17.463532 +268 265 -8.8817842e-16 +303 265 -21.716953 +304 265 -17.857143 +305 265 -25.970373 +306 265 -2.220446e-16 +307 265 -21.716953 +308 265 17.857143 +266 266 264.3789 +267 266 -8.8817842e-16 +268 266 -107.89795 +303 266 -17.857143 +304 266 -33.047362 +305 266 -2.220446e-16 +306 266 41.803228 +307 266 17.857143 +308 266 -33.047362 +267 267 173.73562 +268 267 1.7763568e-15 +269 267 -17.463532 +270 267 -8.8817842e-16 +305 267 -21.716953 +306 267 -17.857143 +307 267 -25.970373 +308 267 2.220446e-16 +309 267 -21.716953 +310 267 17.857143 +268 268 264.3789 +269 268 -8.8817842e-16 +270 268 -107.89795 +305 268 -17.857143 +306 268 -33.047362 +307 268 2.220446e-16 +308 268 41.803228 +309 268 17.857143 +310 268 -33.047362 +269 269 173.73562 +270 269 8.8817842e-16 +271 269 -17.463532 +307 269 -21.716953 +308 269 -17.857143 +309 269 -25.970373 +311 269 -21.716953 +312 269 17.857143 +270 270 264.3789 +272 270 -107.89795 +307 270 -17.857143 +308 270 -33.047362 +310 270 41.803228 +311 270 17.857143 +312 270 -33.047362 +271 271 173.73562 +272 271 8.8817842e-16 +273 271 -17.463532 +274 271 -8.8817842e-16 +309 271 -21.716953 +310 271 -17.857143 +311 271 -25.970373 +312 271 2.220446e-16 +313 271 -21.716953 +314 271 17.857143 +272 272 264.3789 +273 272 -8.8817842e-16 +274 272 -107.89795 +309 272 -17.857143 +310 272 -33.047362 +311 272 2.220446e-16 +312 272 41.803228 +313 272 17.857143 +314 272 -33.047362 +273 273 173.73562 +274 273 1.7763568e-15 +275 273 -17.463532 +276 273 -4.4408921e-16 +311 273 -21.716953 +312 273 -17.857143 +313 273 -25.970373 +314 273 2.220446e-16 +315 273 -21.716953 +316 273 17.857143 +274 274 264.3789 +275 274 -4.4408921e-16 +276 274 -107.89795 +311 274 -17.857143 +312 274 -33.047362 +313 274 2.220446e-16 +314 274 41.803228 +315 274 17.857143 +316 274 -33.047362 +275 275 173.73562 +277 275 -17.463532 +313 275 -21.716953 +314 275 -17.857143 +315 275 -25.970373 +317 275 -21.716953 +318 275 17.857143 +276 276 264.3789 +278 276 -107.89795 +313 276 -17.857143 +314 276 -33.047362 +316 276 41.803228 +317 276 17.857143 +318 276 -33.047362 +277 277 173.73562 +279 277 -17.463532 +315 277 -21.716953 +316 277 -17.857143 +317 277 -25.970373 +319 277 -21.716953 +320 277 17.857143 +278 278 264.3789 +280 278 -107.89795 +315 278 -17.857143 +316 278 -33.047362 +318 278 41.803228 +319 278 17.857143 +320 278 -33.047362 +279 279 86.86781 +317 279 -21.716953 +318 279 -17.857143 +319 279 -12.985187 +320 279 -1.3736264 +280 280 132.18945 +317 280 -17.857143 +318 280 -33.047362 +319 280 1.3736264 +320 280 20.901614 +281 281 86.86781 +282 281 9.7699626e-15 +283 281 -17.463532 +284 281 -9.7699626e-15 +321 281 -12.985187 +322 281 1.3736264 +323 281 -21.716953 +324 281 17.857143 +282 282 132.18945 +283 282 -9.7699626e-15 +284 282 -107.89795 +321 282 -1.3736264 +322 282 20.901614 +323 282 17.857143 +324 282 -33.047362 +283 283 173.73562 +284 283 1.9539925e-14 +285 283 -17.463532 +286 283 -9.7699626e-15 +321 283 -21.716953 +322 283 -17.857143 +323 283 -25.970373 +324 283 4.8849813e-15 +325 283 -21.716953 +326 283 17.857143 +284 284 264.3789 +285 284 -9.7699626e-15 +286 284 -107.89795 +321 284 -17.857143 +322 284 -33.047362 +323 284 4.8849813e-15 +324 284 41.803228 +325 284 17.857143 +326 284 -33.047362 +285 285 173.73562 +286 285 1.9539925e-14 +287 285 -17.463532 +288 285 -9.7699626e-15 +323 285 -21.716953 +324 285 -17.857143 +325 285 -25.970373 +326 285 4.8849813e-15 +327 285 -21.716953 +328 285 17.857143 +286 286 264.3789 +287 286 -9.7699626e-15 +288 286 -107.89795 +323 286 -17.857143 +324 286 -33.047362 +325 286 4.8849813e-15 +326 286 41.803228 +327 286 17.857143 +328 286 -33.047362 +287 287 173.73562 +288 287 1.9539925e-14 +289 287 -17.463532 +290 287 -9.7699626e-15 +325 287 -21.716953 +326 287 -17.857143 +327 287 -25.970373 +328 287 4.8849813e-15 +329 287 -21.716953 +330 287 17.857143 +288 288 264.3789 +289 288 -9.7699626e-15 +290 288 -107.89795 +325 288 -17.857143 +326 288 -33.047362 +327 288 4.8849813e-15 +328 288 41.803228 +329 288 17.857143 +330 288 -33.047362 +289 289 173.73562 +290 289 1.2434498e-14 +291 289 -17.463532 +292 289 -2.8865799e-15 +327 289 -21.716953 +328 289 -17.857143 +329 289 -25.970373 +330 289 1.3322676e-15 +331 289 -21.716953 +332 289 17.857143 +290 290 264.3789 +291 290 -2.6645353e-15 +292 290 -107.89795 +327 290 -17.857143 +328 290 -33.047362 +329 290 1.3322676e-15 +330 290 41.803228 +331 290 17.857143 +332 290 -33.047362 +291 291 173.73562 +292 291 3.9968029e-15 +293 291 -17.463532 +294 291 -8.8817842e-16 +329 291 -21.716953 +330 291 -17.857143 +331 291 -25.970373 +332 291 -3.5527137e-15 +333 291 -21.716953 +334 291 17.857143 +292 292 264.3789 +293 292 -1.110223e-15 +294 292 -107.89795 +329 292 -17.857143 +330 292 -33.047362 +331 292 -3.3306691e-15 +332 292 41.803228 +333 292 17.857143 +334 292 -33.047362 +293 293 173.73562 +294 293 4.8849813e-15 +295 293 -17.463532 +296 293 -3.7747583e-15 +331 293 -21.716953 +332 293 -17.857143 +333 293 -25.970373 +334 293 -8.8817842e-16 +335 293 -21.716953 +336 293 17.857143 +294 294 264.3789 +295 294 -3.7747583e-15 +296 294 -107.89795 +331 294 -17.857143 +332 294 -33.047362 +333 294 -8.8817842e-16 +334 294 41.803228 +335 294 17.857143 +336 294 -33.047362 +295 295 173.73562 +296 295 1.0214052e-14 +297 295 -17.463532 +298 295 -7.327472e-15 +333 295 -21.716953 +334 295 -17.857143 +335 295 -25.970373 +336 295 2.6645353e-15 +337 295 -21.716953 +338 295 17.857143 +296 296 264.3789 +297 296 -7.1054274e-15 +298 296 -107.89795 +333 296 -17.857143 +334 296 -33.047362 +335 296 2.6645353e-15 +336 296 41.803228 +337 296 17.857143 +338 296 -33.047362 +297 297 173.73562 +298 297 1.3766766e-14 +299 297 -17.463532 +300 297 -7.327472e-15 +335 297 -21.716953 +336 297 -17.857143 +337 297 -25.970373 +338 297 3.9968029e-15 +339 297 -21.716953 +340 297 17.857143 +298 298 264.3789 +299 298 -7.1054274e-15 +300 298 -107.89795 +335 298 -17.857143 +336 298 -33.047362 +337 298 3.9968029e-15 +338 298 41.803228 +339 298 17.857143 +340 298 -33.047362 +299 299 173.73562 +300 299 7.5495166e-15 +301 299 -17.463532 +302 299 -2.220446e-16 +337 299 -21.716953 +338 299 -17.857143 +339 299 -25.970373 +340 299 1.7763568e-15 +341 299 -21.716953 +342 299 17.857143 +300 300 264.3789 +301 300 -2.220446e-16 +302 300 -107.89795 +337 300 -17.857143 +338 300 -33.047362 +339 300 1.9984014e-15 +340 300 41.803228 +341 300 17.857143 +342 300 -33.047362 +301 301 173.73562 +302 301 -1.3322676e-15 +303 301 -17.463532 +304 301 1.110223e-15 +339 301 -21.716953 +340 301 -17.857143 +341 301 -25.970373 +342 301 -6.6613381e-16 +343 301 -21.716953 +344 301 17.857143 +302 302 264.3789 +303 302 1.110223e-15 +304 302 -107.89795 +339 302 -17.857143 +340 302 -33.047362 +341 302 -6.6613381e-16 +342 302 41.803228 +343 302 17.857143 +344 302 -33.047362 +303 303 173.73562 +304 303 -2.220446e-15 +305 303 -17.463532 +306 303 1.3322676e-15 +341 303 -21.716953 +342 303 -17.857143 +343 303 -25.970373 +344 303 -6.6613381e-16 +345 303 -21.716953 +346 303 17.857143 +304 304 264.3789 +305 304 1.3322676e-15 +306 304 -107.89795 +341 304 -17.857143 +342 304 -33.047362 +343 304 -6.6613381e-16 +344 304 41.803228 +345 304 17.857143 +346 304 -33.047362 +305 305 173.73562 +307 305 -17.463532 +308 305 -8.8817842e-16 +343 305 -21.716953 +344 305 -17.857143 +345 305 -25.970373 +346 305 -4.4408921e-16 +347 305 -21.716953 +348 305 17.857143 +306 306 264.3789 +307 306 -8.8817842e-16 +308 306 -107.89795 +343 306 -17.857143 +344 306 -33.047362 +345 306 -4.4408921e-16 +346 306 41.803228 +347 306 17.857143 +348 306 -33.047362 +307 307 173.73562 +308 307 1.7763568e-15 +309 307 -17.463532 +310 307 -8.8817842e-16 +345 307 -21.716953 +346 307 -17.857143 +347 307 -25.970373 +348 307 2.220446e-16 +349 307 -21.716953 +350 307 17.857143 +308 308 264.3789 +309 308 -8.8817842e-16 +310 308 -107.89795 +345 308 -17.857143 +346 308 -33.047362 +347 308 2.220446e-16 +348 308 41.803228 +349 308 17.857143 +350 308 -33.047362 +309 309 173.73562 +310 309 8.8817842e-16 +311 309 -17.463532 +312 309 -2.220446e-16 +347 309 -21.716953 +348 309 -17.857143 +349 309 -25.970373 +351 309 -21.716953 +352 309 17.857143 +310 310 264.3789 +311 310 -2.220446e-16 +312 310 -107.89795 +347 310 -17.857143 +348 310 -33.047362 +350 310 41.803228 +351 310 17.857143 +352 310 -33.047362 +311 311 173.73562 +312 311 1.3322676e-15 +313 311 -17.463532 +314 311 -8.8817842e-16 +349 311 -21.716953 +350 311 -17.857143 +351 311 -25.970373 +352 311 -2.220446e-16 +353 311 -21.716953 +354 311 17.857143 +312 312 264.3789 +313 312 -8.8817842e-16 +314 312 -107.89795 +349 312 -17.857143 +350 312 -33.047362 +351 312 -2.220446e-16 +352 312 41.803228 +353 312 17.857143 +354 312 -33.047362 +313 313 173.73562 +314 313 1.3322676e-15 +315 313 -17.463532 +316 313 -6.6613381e-16 +351 313 -21.716953 +352 313 -17.857143 +353 313 -25.970373 +355 313 -21.716953 +356 313 17.857143 +314 314 264.3789 +315 314 -6.6613381e-16 +316 314 -107.89795 +351 314 -17.857143 +352 314 -33.047362 +354 314 41.803228 +355 314 17.857143 +356 314 -33.047362 +315 315 173.73562 +316 315 8.8817842e-16 +317 315 -17.463532 +318 315 -2.220446e-16 +353 315 -21.716953 +354 315 -17.857143 +355 315 -25.970373 +356 315 -2.220446e-16 +357 315 -21.716953 +358 315 17.857143 +316 316 264.3789 +317 316 -2.220446e-16 +318 316 -107.89795 +353 316 -17.857143 +354 316 -33.047362 +355 316 -2.220446e-16 +356 316 41.803228 +357 316 17.857143 +358 316 -33.047362 +317 317 173.73562 +318 317 4.4408921e-16 +319 317 -17.463532 +320 317 -2.220446e-16 +355 317 -21.716953 +356 317 -17.857143 +357 317 -25.970373 +358 317 -2.220446e-16 +359 317 -21.716953 +360 317 17.857143 +318 318 264.3789 +319 318 -2.220446e-16 +320 318 -107.89795 +355 318 -17.857143 +356 318 -33.047362 +357 318 -2.220446e-16 +358 318 41.803228 +359 318 17.857143 +360 318 -33.047362 +319 319 86.86781 +320 319 4.4408921e-16 +357 319 -21.716953 +358 319 -17.857143 +359 319 -12.985187 +360 319 -1.3736264 +320 320 132.18945 +357 320 -17.857143 +358 320 -33.047362 +359 320 1.3736264 +360 320 20.901614 +321 321 86.86781 +322 321 9.7699626e-15 +323 321 -17.463532 +324 321 -9.7699626e-15 +361 321 -12.985187 +362 321 1.3736264 +363 321 -21.716953 +364 321 17.857143 +322 322 132.18945 +323 322 -9.7699626e-15 +324 322 -107.89795 +361 322 -1.3736264 +362 322 20.901614 +363 322 17.857143 +364 322 -33.047362 +323 323 173.73562 +324 323 1.9539925e-14 +325 323 -17.463532 +326 323 -9.7699626e-15 +361 323 -21.716953 +362 323 -17.857143 +363 323 -25.970373 +364 323 4.8849813e-15 +365 323 -21.716953 +366 323 17.857143 +324 324 264.3789 +325 324 -9.7699626e-15 +326 324 -107.89795 +361 324 -17.857143 +362 324 -33.047362 +363 324 4.8849813e-15 +364 324 41.803228 +365 324 17.857143 +366 324 -33.047362 +325 325 173.73562 +326 325 1.9539925e-14 +327 325 -17.463532 +328 325 -9.7699626e-15 +363 325 -21.716953 +364 325 -17.857143 +365 325 -25.970373 +366 325 4.8849813e-15 +367 325 -21.716953 +368 325 17.857143 +326 326 264.3789 +327 326 -9.7699626e-15 +328 326 -107.89795 +363 326 -17.857143 +364 326 -33.047362 +365 326 4.8849813e-15 +366 326 41.803228 +367 326 17.857143 +368 326 -33.047362 +327 327 173.73562 +328 327 1.9539925e-14 +329 327 -17.463532 +330 327 -9.7699626e-15 +365 327 -21.716953 +366 327 -17.857143 +367 327 -25.970373 +368 327 4.8849813e-15 +369 327 -21.716953 +370 327 17.857143 +328 328 264.3789 +329 328 -9.7699626e-15 +330 328 -107.89795 +365 328 -17.857143 +366 328 -33.047362 +367 328 4.8849813e-15 +368 328 41.803228 +369 328 17.857143 +370 328 -33.047362 +329 329 173.73562 +330 329 1.1546319e-14 +331 329 -17.463532 +332 329 -2.220446e-15 +367 329 -21.716953 +368 329 -17.857143 +369 329 -25.970373 +370 329 4.8849813e-15 +371 329 -21.716953 +372 329 17.857143 +330 330 264.3789 +331 330 -1.9984014e-15 +332 330 -107.89795 +367 330 -17.857143 +368 330 -33.047362 +369 330 4.8849813e-15 +370 330 41.803228 +371 330 17.857143 +372 330 -33.047362 +331 331 173.73562 +332 331 3.5527137e-15 +333 331 -17.463532 +334 331 -6.6613381e-16 +369 331 -21.716953 +370 331 -17.857143 +371 331 -25.970373 +372 331 4.6629367e-15 +373 331 -21.716953 +374 331 17.857143 +332 332 264.3789 +333 332 -6.6613381e-16 +334 332 -107.89795 +369 332 -17.857143 +370 332 -33.047362 +371 332 4.4408921e-15 +372 332 41.803228 +373 332 17.857143 +374 332 -33.047362 +333 333 173.73562 +334 333 4.4408921e-15 +335 333 -17.463532 +336 333 -3.7747583e-15 +371 333 -21.716953 +372 333 -17.857143 +373 333 -25.970373 +374 333 3.1086245e-15 +375 333 -21.716953 +376 333 17.857143 +334 334 264.3789 +335 334 -3.9968029e-15 +336 334 -107.89795 +371 334 -17.857143 +372 334 -33.047362 +373 334 3.1086245e-15 +374 334 41.803228 +375 334 17.857143 +376 334 -33.047362 +335 335 173.73562 +336 335 1.0214052e-14 +337 335 -17.463532 +338 335 -7.327472e-15 +373 335 -21.716953 +374 335 -17.857143 +375 335 -25.970373 +376 335 2.6645353e-15 +377 335 -21.716953 +378 335 17.857143 +336 336 264.3789 +337 336 -7.1054274e-15 +338 336 -107.89795 +373 336 -17.857143 +374 336 -33.047362 +375 336 2.6645353e-15 +376 336 41.803228 +377 336 17.857143 +378 336 -33.047362 +337 337 173.73562 +338 337 1.4210855e-14 +339 337 -17.463532 +340 337 -7.327472e-15 +375 337 -21.716953 +376 337 -17.857143 +377 337 -25.970373 +378 337 3.7747583e-15 +379 337 -21.716953 +380 337 17.857143 +338 338 264.3789 +339 338 -7.1054274e-15 +340 338 -107.89795 +375 338 -17.857143 +376 338 -33.047362 +377 338 3.7747583e-15 +378 338 41.803228 +379 338 17.857143 +380 338 -33.047362 +339 339 173.73562 +340 339 7.9936058e-15 +341 339 -17.463532 +342 339 -6.6613381e-16 +377 339 -21.716953 +378 339 -17.857143 +379 339 -25.970373 +380 339 1.7763568e-15 +381 339 -21.716953 +382 339 17.857143 +340 340 264.3789 +341 340 -6.6613381e-16 +342 340 -107.89795 +377 340 -17.857143 +378 340 -33.047362 +379 340 1.7763568e-15 +380 340 41.803228 +381 340 17.857143 +382 340 -33.047362 +341 341 173.73562 +343 341 -17.463532 +344 341 8.8817842e-16 +379 341 -21.716953 +380 341 -17.857143 +381 341 -25.970373 +382 341 -4.4408921e-16 +383 341 -21.716953 +384 341 17.857143 +342 342 264.3789 +343 342 8.8817842e-16 +344 342 -107.89795 +379 342 -17.857143 +380 342 -33.047362 +381 342 -4.4408921e-16 +382 342 41.803228 +383 342 17.857143 +384 342 -33.047362 +343 343 173.73562 +344 343 -2.220446e-15 +345 343 -17.463532 +346 343 1.3322676e-15 +381 343 -21.716953 +382 343 -17.857143 +383 343 -25.970373 +384 343 -1.110223e-15 +385 343 -21.716953 +386 343 17.857143 +344 344 264.3789 +345 344 1.3322676e-15 +346 344 -107.89795 +381 344 -17.857143 +382 344 -33.047362 +383 344 -1.110223e-15 +384 344 41.803228 +385 344 17.857143 +386 344 -33.047362 +345 345 173.73562 +347 345 -17.463532 +348 345 -8.8817842e-16 +383 345 -21.716953 +384 345 -17.857143 +385 345 -25.970373 +386 345 -2.220446e-16 +387 345 -21.716953 +388 345 17.857143 +346 346 264.3789 +347 346 -8.8817842e-16 +348 346 -107.89795 +383 346 -17.857143 +384 346 -33.047362 +385 346 -2.220446e-16 +386 346 41.803228 +387 346 17.857143 +388 346 -33.047362 +347 347 173.73562 +348 347 1.7763568e-15 +349 347 -17.463532 +350 347 -8.8817842e-16 +385 347 -21.716953 +386 347 -17.857143 +387 347 -25.970373 +388 347 2.220446e-16 +389 347 -21.716953 +390 347 17.857143 +348 348 264.3789 +349 348 -8.8817842e-16 +350 348 -107.89795 +385 348 -17.857143 +386 348 -33.047362 +387 348 2.220446e-16 +388 348 41.803228 +389 348 17.857143 +390 348 -33.047362 +349 349 173.73562 +350 349 8.8817842e-16 +351 349 -17.463532 +352 349 -2.220446e-16 +387 349 -21.716953 +388 349 -17.857143 +389 349 -25.970373 +391 349 -21.716953 +392 349 17.857143 +350 350 264.3789 +351 350 -2.220446e-16 +352 350 -107.89795 +387 350 -17.857143 +388 350 -33.047362 +390 350 41.803228 +391 350 17.857143 +392 350 -33.047362 +351 351 173.73562 +352 351 1.3322676e-15 +353 351 -17.463532 +354 351 -8.8817842e-16 +389 351 -21.716953 +390 351 -17.857143 +391 351 -25.970373 +392 351 -2.220446e-16 +393 351 -21.716953 +394 351 17.857143 +352 352 264.3789 +353 352 -8.8817842e-16 +354 352 -107.89795 +389 352 -17.857143 +390 352 -33.047362 +391 352 -2.220446e-16 +392 352 41.803228 +393 352 17.857143 +394 352 -33.047362 +353 353 173.73562 +354 353 8.8817842e-16 +355 353 -17.463532 +356 353 -4.4408921e-16 +391 353 -21.716953 +392 353 -17.857143 +393 353 -25.970373 +395 353 -21.716953 +396 353 17.857143 +354 354 264.3789 +355 354 -4.4408921e-16 +356 354 -107.89795 +391 354 -17.857143 +392 354 -33.047362 +394 354 41.803228 +395 354 17.857143 +396 354 -33.047362 +355 355 173.73562 +356 355 4.4408921e-16 +357 355 -17.463532 +358 355 -2.220446e-16 +393 355 -21.716953 +394 355 -17.857143 +395 355 -25.970373 +396 355 -2.220446e-16 +397 355 -21.716953 +398 355 17.857143 +356 356 264.3789 +357 356 -2.220446e-16 +358 356 -107.89795 +393 356 -17.857143 +394 356 -33.047362 +395 356 -2.220446e-16 +396 356 41.803228 +397 356 17.857143 +398 356 -33.047362 +357 357 173.73562 +358 357 4.4408921e-16 +359 357 -17.463532 +360 357 -2.220446e-16 +395 357 -21.716953 +396 357 -17.857143 +397 357 -25.970373 +398 357 -2.220446e-16 +399 357 -21.716953 +400 357 17.857143 +358 358 264.3789 +359 358 -2.220446e-16 +360 358 -107.89795 +395 358 -17.857143 +396 358 -33.047362 +397 358 -2.220446e-16 +398 358 41.803228 +399 358 17.857143 +400 358 -33.047362 +359 359 86.86781 +360 359 4.4408921e-16 +397 359 -21.716953 +398 359 -17.857143 +399 359 -12.985187 +400 359 -1.3736264 +360 360 132.18945 +397 360 -17.857143 +398 360 -33.047362 +399 360 1.3736264 +400 360 20.901614 +361 361 86.86781 +362 361 7.5495166e-15 +363 361 -17.463532 +364 361 -3.3306691e-15 +401 361 -12.985187 +402 361 1.3736264 +403 361 -21.716953 +404 361 17.857143 +362 362 132.18945 +363 362 -3.7747583e-15 +364 362 -107.89795 +401 362 -1.3736264 +402 362 20.901614 +403 362 17.857143 +404 362 -33.047362 +363 363 173.73562 +364 363 8.8817842e-15 +365 363 -17.463532 +366 363 -4.6629367e-15 +401 363 -21.716953 +402 363 -17.857143 +403 363 -25.970373 +404 363 -8.8817842e-16 +405 363 -21.716953 +406 363 17.857143 +364 364 264.3789 +365 364 -4.8849813e-15 +366 364 -107.89795 +401 364 -17.857143 +402 364 -33.047362 +403 364 -8.8817842e-16 +404 364 41.803228 +405 364 17.857143 +406 364 -33.047362 +365 365 173.73562 +366 365 1.110223e-14 +367 365 -17.463532 +368 365 -9.7699626e-15 +403 365 -21.716953 +404 365 -17.857143 +405 365 -25.970373 +406 365 4.6629367e-15 +407 365 -21.716953 +408 365 17.857143 +366 366 264.3789 +367 366 -9.9920072e-15 +368 366 -107.89795 +403 366 -17.857143 +404 366 -33.047362 +405 366 4.6629367e-15 +406 366 41.803228 +407 366 17.857143 +408 366 -33.047362 +367 367 173.73562 +368 367 1.9539925e-14 +369 367 -17.463532 +370 367 -9.7699626e-15 +405 367 -21.716953 +406 367 -17.857143 +407 367 -25.970373 +408 367 5.3290705e-15 +409 367 -21.716953 +410 367 17.857143 +368 368 264.3789 +369 368 -9.9920072e-15 +370 368 -107.89795 +405 368 -17.857143 +406 368 -33.047362 +407 368 5.3290705e-15 +408 368 41.803228 +409 368 17.857143 +410 368 -33.047362 +369 369 173.73562 +370 369 1.4210855e-14 +371 369 -17.463532 +372 369 -4.8849813e-15 +407 369 -21.716953 +408 369 -17.857143 +409 369 -25.970373 +410 369 2.6645353e-15 +411 369 -21.716953 +412 369 17.857143 +370 370 264.3789 +371 370 -4.8849813e-15 +372 370 -107.89795 +407 370 -17.857143 +408 370 -33.047362 +409 370 2.6645353e-15 +410 370 41.803228 +411 370 17.857143 +412 370 -33.047362 +371 371 173.73562 +372 371 8.8817842e-15 +373 371 -17.463532 +374 371 -3.7747583e-15 +409 371 -21.716953 +410 371 -17.857143 +411 371 -25.970373 +412 371 -4.4408921e-16 +413 371 -21.716953 +414 371 17.857143 +372 372 264.3789 +373 372 -3.7747583e-15 +374 372 -107.89795 +409 372 -17.857143 +410 372 -33.047362 +411 372 -4.4408921e-16 +412 372 41.803228 +413 372 17.857143 +414 372 -33.047362 +373 373 173.73562 +374 373 7.5495166e-15 +375 373 -17.463532 +376 373 -3.5527137e-15 +411 373 -21.716953 +412 373 -17.857143 +413 373 -25.970373 +414 373 4.4408921e-16 +415 373 -21.716953 +416 373 17.857143 +374 374 264.3789 +375 374 -3.7747583e-15 +376 374 -107.89795 +411 374 -17.857143 +412 374 -33.047362 +413 374 4.4408921e-16 +414 374 41.803228 +415 374 17.857143 +416 374 -33.047362 +375 375 173.73562 +376 375 1.110223e-14 +377 375 -17.463532 +378 375 -7.327472e-15 +413 375 -21.716953 +414 375 -17.857143 +415 375 -25.970373 +416 375 2.6645353e-15 +417 375 -21.716953 +418 375 17.857143 +376 376 264.3789 +377 376 -7.5495166e-15 +378 376 -107.89795 +413 376 -17.857143 +414 376 -33.047362 +415 376 2.6645353e-15 +416 376 41.803228 +417 376 17.857143 +418 376 -33.047362 +377 377 173.73562 +378 377 1.4654944e-14 +379 377 -17.463532 +380 377 -7.327472e-15 +415 377 -21.716953 +416 377 -17.857143 +417 377 -25.970373 +418 377 3.7747583e-15 +419 377 -21.716953 +420 377 17.857143 +378 378 264.3789 +379 378 -7.5495166e-15 +380 378 -107.89795 +415 378 -17.857143 +416 378 -33.047362 +417 378 3.7747583e-15 +418 378 41.803228 +419 378 17.857143 +420 378 -33.047362 +379 379 173.73562 +380 379 7.5495166e-15 +381 379 -17.463532 +382 379 -2.220446e-16 +417 379 -21.716953 +418 379 -17.857143 +419 379 -25.970373 +420 379 1.9984014e-15 +421 379 -21.716953 +422 379 17.857143 +380 380 264.3789 +381 380 -2.220446e-16 +382 380 -107.89795 +417 380 -17.857143 +418 380 -33.047362 +419 380 1.9984014e-15 +420 380 41.803228 +421 380 17.857143 +422 380 -33.047362 +381 381 173.73562 +382 381 -1.3322676e-15 +383 381 -17.463532 +384 381 1.110223e-15 +419 381 -21.716953 +420 381 -17.857143 +421 381 -25.970373 +422 381 -4.4408921e-16 +423 381 -21.716953 +424 381 17.857143 +382 382 264.3789 +383 382 1.110223e-15 +384 382 -107.89795 +419 382 -17.857143 +420 382 -33.047362 +421 382 -4.4408921e-16 +422 382 41.803228 +423 382 17.857143 +424 382 -33.047362 +383 383 173.73562 +384 383 -2.6645353e-15 +385 383 -17.463532 +386 383 1.3322676e-15 +421 383 -21.716953 +422 383 -17.857143 +423 383 -25.970373 +424 383 -6.6613381e-16 +425 383 -21.716953 +426 383 17.857143 +384 384 264.3789 +385 384 1.3322676e-15 +386 384 -107.89795 +421 384 -17.857143 +422 384 -33.047362 +423 384 -6.6613381e-16 +424 384 41.803228 +425 384 17.857143 +426 384 -33.047362 +385 385 173.73562 +386 385 -4.4408921e-16 +387 385 -17.463532 +388 385 -8.8817842e-16 +423 385 -21.716953 +424 385 -17.857143 +425 385 -25.970373 +426 385 -2.220446e-16 +427 385 -21.716953 +428 385 17.857143 +386 386 264.3789 +387 386 -8.8817842e-16 +388 386 -107.89795 +423 386 -17.857143 +424 386 -33.047362 +425 386 -2.220446e-16 +426 386 41.803228 +427 386 17.857143 +428 386 -33.047362 +387 387 173.73562 +388 387 1.7763568e-15 +389 387 -17.463532 +390 387 -8.8817842e-16 +425 387 -21.716953 +426 387 -17.857143 +427 387 -25.970373 +428 387 2.220446e-16 +429 387 -21.716953 +430 387 17.857143 +388 388 264.3789 +389 388 -8.8817842e-16 +390 388 -107.89795 +425 388 -17.857143 +426 388 -33.047362 +427 388 2.220446e-16 +428 388 41.803228 +429 388 17.857143 +430 388 -33.047362 +389 389 173.73562 +390 389 8.8817842e-16 +391 389 -17.463532 +427 389 -21.716953 +428 389 -17.857143 +429 389 -25.970373 +431 389 -21.716953 +432 389 17.857143 +390 390 264.3789 +392 390 -107.89795 +427 390 -17.857143 +428 390 -33.047362 +430 390 41.803228 +431 390 17.857143 +432 390 -33.047362 +391 391 173.73562 +392 391 8.8817842e-16 +393 391 -17.463532 +394 391 -8.8817842e-16 +429 391 -21.716953 +430 391 -17.857143 +431 391 -25.970373 +432 391 2.220446e-16 +433 391 -21.716953 +434 391 17.857143 +392 392 264.3789 +393 392 -8.8817842e-16 +394 392 -107.89795 +429 392 -17.857143 +430 392 -33.047362 +431 392 2.220446e-16 +432 392 41.803228 +433 392 17.857143 +434 392 -33.047362 +393 393 173.73562 +394 393 3.9968029e-15 +395 393 -17.463532 +396 393 8.8817842e-16 +431 393 -21.716953 +432 393 -17.857143 +433 393 -25.970373 +434 393 -2.220446e-15 +435 393 -21.716953 +436 393 17.857143 +394 394 264.3789 +395 394 8.8817842e-16 +396 394 -107.89795 +431 394 -17.857143 +432 394 -33.047362 +433 394 -2.220446e-15 +434 394 41.803228 +435 394 17.857143 +436 394 -33.047362 +395 395 173.73562 +397 395 -17.463532 +398 395 -1.5543122e-15 +433 395 -21.716953 +434 395 -17.857143 +435 395 -25.970373 +437 395 -21.716953 +438 395 17.857143 +396 396 264.3789 +397 396 -1.3322676e-15 +398 396 -107.89795 +433 396 -17.857143 +434 396 -33.047362 +436 396 41.803228 +437 396 17.857143 +438 396 -33.047362 +397 397 173.73562 +399 397 -17.463532 +400 397 1.3322676e-15 +435 397 -21.716953 +436 397 -17.857143 +437 397 -25.970373 +439 397 -21.716953 +440 397 17.857143 +398 398 264.3789 +399 398 1.5543122e-15 +400 398 -107.89795 +435 398 -17.857143 +436 398 -33.047362 +438 398 41.803228 +439 398 17.857143 +440 398 -33.047362 +399 399 86.86781 +400 399 2.220446e-15 +437 399 -21.716953 +438 399 -17.857143 +439 399 -12.985187 +440 399 -1.3736264 +400 400 132.18945 +437 400 -17.857143 +438 400 -33.047362 +439 400 1.3736264 +440 400 20.901614 +401 401 86.86781 +402 401 1.5099033e-14 +403 401 -17.463532 +404 401 -7.327472e-15 +441 401 -12.985187 +442 401 1.3736264 +443 401 -21.716953 +444 401 17.857143 +402 402 132.18945 +403 402 -7.1054274e-15 +404 402 -107.89795 +441 402 -1.3736264 +442 402 20.901614 +443 402 17.857143 +444 402 -33.047362 +403 403 173.73562 +404 403 2.0872193e-14 +405 403 -17.463532 +406 403 -1.0436096e-14 +441 403 -21.716953 +442 403 -17.857143 +443 403 -25.970373 +444 403 8.8817842e-15 +445 403 -21.716953 +446 403 17.857143 +404 404 264.3789 +405 404 -1.0658141e-14 +406 404 -107.89795 +441 404 -17.857143 +442 404 -33.047362 +443 404 8.6597396e-15 +444 404 41.803228 +445 404 17.857143 +446 404 -33.047362 +405 405 173.73562 +406 405 1.5099033e-14 +407 405 -17.463532 +408 405 -9.9920072e-15 +443 405 -21.716953 +444 405 -17.857143 +445 405 -25.970373 +446 405 9.1038288e-15 +447 405 -21.716953 +448 405 17.857143 +406 406 264.3789 +407 406 -9.9920072e-15 +408 406 -107.89795 +443 406 -17.857143 +444 406 -33.047362 +445 406 9.3258734e-15 +446 406 41.803228 +447 406 17.857143 +448 406 -33.047362 +407 407 173.73562 +408 407 1.9539925e-14 +409 407 -17.463532 +410 407 -9.9920072e-15 +445 407 -21.716953 +446 407 -17.857143 +447 407 -25.970373 +448 407 5.3290705e-15 +449 407 -21.716953 +450 407 17.857143 +408 408 264.3789 +409 408 -9.9920072e-15 +410 408 -107.89795 +445 408 -17.857143 +446 408 -33.047362 +447 408 5.3290705e-15 +448 408 41.803228 +449 408 17.857143 +450 408 -33.047362 +409 409 173.73562 +410 409 9.3258734e-15 +411 409 -17.463532 +447 409 -21.716953 +448 409 -17.857143 +449 409 -25.970373 +450 409 2.6645353e-15 +451 409 -21.716953 +452 409 17.857143 +410 410 264.3789 +412 410 -107.89795 +447 410 -17.857143 +448 410 -33.047362 +449 410 2.6645353e-15 +450 410 41.803228 +451 410 17.857143 +452 410 -33.047362 +411 411 173.73562 +412 411 -1.3322676e-15 +413 411 -17.463532 +414 411 1.3322676e-15 +449 411 -21.716953 +450 411 -17.857143 +451 411 -25.970373 +452 411 -4.4408921e-16 +453 411 -21.716953 +454 411 17.857143 +412 412 264.3789 +413 412 1.3322676e-15 +414 412 -107.89795 +449 412 -17.857143 +450 412 -33.047362 +451 412 -4.4408921e-16 +452 412 41.803228 +453 412 17.857143 +454 412 -33.047362 +413 413 173.73562 +414 413 2.6645353e-15 +415 413 -17.463532 +416 413 -3.7747583e-15 +451 413 -21.716953 +452 413 -17.857143 +453 413 -25.970373 +454 413 4.4408921e-16 +455 413 -21.716953 +456 413 17.857143 +414 414 264.3789 +415 414 -3.7747583e-15 +416 414 -107.89795 +451 414 -17.857143 +452 414 -33.047362 +453 414 4.4408921e-16 +454 414 41.803228 +455 414 17.857143 +456 414 -33.047362 +415 415 173.73562 +416 415 1.110223e-14 +417 415 -17.463532 +418 415 -7.327472e-15 +453 415 -21.716953 +454 415 -17.857143 +455 415 -25.970373 +456 415 2.6645353e-15 +457 415 -21.716953 +458 415 17.857143 +416 416 264.3789 +417 416 -7.1054274e-15 +418 416 -107.89795 +453 416 -17.857143 +454 416 -33.047362 +455 416 2.6645353e-15 +456 416 41.803228 +457 416 17.857143 +458 416 -33.047362 +417 417 173.73562 +418 417 1.4210855e-14 +419 417 -17.463532 +420 417 -7.327472e-15 +455 417 -21.716953 +456 417 -17.857143 +457 417 -25.970373 +458 417 3.7747583e-15 +459 417 -21.716953 +460 417 17.857143 +418 418 264.3789 +419 418 -7.1054274e-15 +420 418 -107.89795 +455 418 -17.857143 +456 418 -33.047362 +457 418 3.7747583e-15 +458 418 41.803228 +459 418 17.857143 +460 418 -33.047362 +419 419 173.73562 +420 419 7.5495166e-15 +421 419 -17.463532 +422 419 -2.220446e-16 +457 419 -21.716953 +458 419 -17.857143 +459 419 -25.970373 +460 419 1.9984014e-15 +461 419 -21.716953 +462 419 17.857143 +420 420 264.3789 +421 420 -2.220446e-16 +422 420 -107.89795 +457 420 -17.857143 +458 420 -33.047362 +459 420 1.9984014e-15 +460 420 41.803228 +461 420 17.857143 +462 420 -33.047362 +421 421 173.73562 +422 421 -1.7763568e-15 +423 421 -17.463532 +424 421 1.3322676e-15 +459 421 -21.716953 +460 421 -17.857143 +461 421 -25.970373 +462 421 -4.4408921e-16 +463 421 -21.716953 +464 421 17.857143 +422 422 264.3789 +423 422 1.3322676e-15 +424 422 -107.89795 +459 422 -17.857143 +460 422 -33.047362 +461 422 -4.4408921e-16 +462 422 41.803228 +463 422 17.857143 +464 422 -33.047362 +423 423 173.73562 +424 423 -2.6645353e-15 +425 423 -17.463532 +426 423 1.3322676e-15 +461 423 -21.716953 +462 423 -17.857143 +463 423 -25.970373 +464 423 -6.6613381e-16 +465 423 -21.716953 +466 423 17.857143 +424 424 264.3789 +425 424 1.3322676e-15 +426 424 -107.89795 +461 424 -17.857143 +462 424 -33.047362 +463 424 -6.6613381e-16 +464 424 41.803228 +465 424 17.857143 +466 424 -33.047362 +425 425 173.73562 +426 425 -4.4408921e-16 +427 425 -17.463532 +428 425 -8.8817842e-16 +463 425 -21.716953 +464 425 -17.857143 +465 425 -25.970373 +466 425 -2.220446e-16 +467 425 -21.716953 +468 425 17.857143 +426 426 264.3789 +427 426 -8.8817842e-16 +428 426 -107.89795 +463 426 -17.857143 +464 426 -33.047362 +465 426 -2.220446e-16 +466 426 41.803228 +467 426 17.857143 +468 426 -33.047362 +427 427 173.73562 +428 427 1.7763568e-15 +429 427 -17.463532 +430 427 -8.8817842e-16 +465 427 -21.716953 +466 427 -17.857143 +467 427 -25.970373 +468 427 2.220446e-16 +469 427 -21.716953 +470 427 17.857143 +428 428 264.3789 +429 428 -8.8817842e-16 +430 428 -107.89795 +465 428 -17.857143 +466 428 -33.047362 +467 428 2.220446e-16 +468 428 41.803228 +469 428 17.857143 +470 428 -33.047362 +429 429 173.73562 +430 429 8.8817842e-16 +431 429 -17.463532 +467 429 -21.716953 +468 429 -17.857143 +469 429 -25.970373 +471 429 -21.716953 +472 429 17.857143 +430 430 264.3789 +432 430 -107.89795 +467 430 -17.857143 +468 430 -33.047362 +470 430 41.803228 +471 430 17.857143 +472 430 -33.047362 +431 431 173.73562 +432 431 8.8817842e-16 +433 431 -17.463532 +434 431 -8.8817842e-16 +469 431 -21.716953 +470 431 -17.857143 +471 431 -25.970373 +472 431 2.220446e-16 +473 431 -21.716953 +474 431 17.857143 +432 432 264.3789 +433 432 -8.8817842e-16 +434 432 -107.89795 +469 432 -17.857143 +470 432 -33.047362 +471 432 2.220446e-16 +472 432 41.803228 +473 432 17.857143 +474 432 -33.047362 +433 433 173.73562 +434 433 6.6613381e-15 +435 433 -17.463532 +436 433 2.220446e-15 +471 433 -21.716953 +472 433 -17.857143 +473 433 -25.970373 +474 433 -2.8865799e-15 +475 433 -21.716953 +476 433 17.857143 +434 434 264.3789 +435 434 2.4424907e-15 +436 434 -107.89795 +471 434 -17.857143 +472 434 -33.047362 +473 434 -2.8865799e-15 +474 434 41.803228 +475 434 17.857143 +476 434 -33.047362 +435 435 173.73562 +436 435 2.220446e-15 +437 435 -17.463532 +438 435 -2.220446e-15 +473 435 -21.716953 +474 435 -17.857143 +475 435 -25.970373 +476 435 -1.3322676e-15 +477 435 -21.716953 +478 435 17.857143 +436 436 264.3789 +437 436 -1.9984014e-15 +438 436 -107.89795 +473 436 -17.857143 +474 436 -33.047362 +475 436 -1.5543122e-15 +476 436 41.803228 +477 436 17.857143 +478 436 -33.047362 +437 437 173.73562 +438 437 1.3322676e-15 +439 437 -17.463532 +440 437 2.6645353e-15 +475 437 -21.716953 +476 437 -17.857143 +477 437 -25.970373 +478 437 -1.3322676e-15 +479 437 -21.716953 +480 437 17.857143 +438 438 264.3789 +439 438 2.6645353e-15 +440 438 -107.89795 +475 438 -17.857143 +476 438 -33.047362 +477 438 -1.3322676e-15 +478 438 41.803228 +479 438 17.857143 +480 438 -33.047362 +439 439 86.86781 +440 439 5.3290705e-15 +477 439 -21.716953 +478 439 -17.857143 +479 439 -12.985187 +480 439 -1.3736264 +440 440 132.18945 +477 440 -17.857143 +478 440 -33.047362 +479 440 1.3736264 +480 440 20.901614 +441 441 86.86781 +442 441 1.4210855e-14 +443 441 -17.463532 +444 441 -7.9936058e-15 +481 441 -12.985187 +482 441 1.3736264 +483 441 -21.716953 +484 441 17.857143 +442 442 132.18945 +443 442 -7.9936058e-15 +444 442 -107.89795 +481 442 -1.3736264 +482 442 20.901614 +483 442 17.857143 +484 442 -33.047362 +443 443 173.73562 +444 443 2.0428104e-14 +445 443 -17.463532 +446 443 -9.9920072e-15 +481 443 -21.716953 +482 443 -17.857143 +483 443 -25.970373 +484 443 -4.4408921e-16 +485 443 -21.716953 +486 443 17.857143 +444 444 264.3789 +445 444 -9.7699626e-15 +446 444 -107.89795 +481 444 -17.857143 +482 444 -33.047362 +483 444 -4.4408921e-16 +484 444 41.803228 +485 444 17.857143 +486 444 -33.047362 +445 445 173.73562 +446 445 1.6431301e-14 +447 445 -17.463532 +448 445 -9.3258734e-15 +483 445 -21.716953 +484 445 -17.857143 +485 445 -25.970373 +486 445 1.9984014e-15 +487 445 -21.716953 +488 445 17.857143 +446 446 264.3789 +447 446 -9.3258734e-15 +448 446 -107.89795 +483 446 -17.857143 +484 446 -33.047362 +485 446 1.9984014e-15 +486 446 41.803228 +487 446 17.857143 +488 446 -33.047362 +447 447 173.73562 +448 447 1.9539925e-14 +449 447 -17.463532 +450 447 -1.0214052e-14 +485 447 -21.716953 +486 447 -17.857143 +487 447 -25.970373 +488 447 5.1070259e-15 +489 447 -21.716953 +490 447 17.857143 +448 448 264.3789 +449 448 -1.0214052e-14 +450 448 -107.89795 +485 448 -17.857143 +486 448 -33.047362 +487 448 5.1070259e-15 +488 448 41.803228 +489 448 17.857143 +490 448 -33.047362 +449 449 173.73562 +450 449 8.8817842e-15 +451 449 -17.463532 +487 449 -21.716953 +488 449 -17.857143 +489 449 -25.970373 +490 449 3.3306691e-15 +491 449 -21.716953 +492 449 17.857143 +450 450 264.3789 +452 450 -107.89795 +487 450 -17.857143 +488 450 -33.047362 +489 450 3.3306691e-15 +490 450 41.803228 +491 450 17.857143 +492 450 -33.047362 +451 451 173.73562 +452 451 -1.3322676e-15 +453 451 -17.463532 +454 451 1.3322676e-15 +489 451 -21.716953 +490 451 -17.857143 +491 451 -25.970373 +492 451 -4.4408921e-16 +493 451 -21.716953 +494 451 17.857143 +452 452 264.3789 +453 452 1.3322676e-15 +454 452 -107.89795 +489 452 -17.857143 +490 452 -33.047362 +491 452 -4.4408921e-16 +492 452 41.803228 +493 452 17.857143 +494 452 -33.047362 +453 453 173.73562 +454 453 2.6645353e-15 +455 453 -17.463532 +456 453 -3.7747583e-15 +491 453 -21.716953 +492 453 -17.857143 +493 453 -25.970373 +494 453 4.4408921e-16 +495 453 -21.716953 +496 453 17.857143 +454 454 264.3789 +455 454 -3.7747583e-15 +456 454 -107.89795 +491 454 -17.857143 +492 454 -33.047362 +493 454 4.4408921e-16 +494 454 41.803228 +495 454 17.857143 +496 454 -33.047362 +455 455 173.73562 +456 455 1.110223e-14 +457 455 -17.463532 +458 455 -7.327472e-15 +493 455 -21.716953 +494 455 -17.857143 +495 455 -25.970373 +496 455 2.6645353e-15 +497 455 -21.716953 +498 455 17.857143 +456 456 264.3789 +457 456 -7.1054274e-15 +458 456 -107.89795 +493 456 -17.857143 +494 456 -33.047362 +495 456 2.6645353e-15 +496 456 41.803228 +497 456 17.857143 +498 456 -33.047362 +457 457 173.73562 +458 457 1.4210855e-14 +459 457 -17.463532 +460 457 -7.327472e-15 +495 457 -21.716953 +496 457 -17.857143 +497 457 -25.970373 +498 457 3.7747583e-15 +499 457 -21.716953 +500 457 17.857143 +458 458 264.3789 +459 458 -7.1054274e-15 +460 458 -107.89795 +495 458 -17.857143 +496 458 -33.047362 +497 458 3.9968029e-15 +498 458 41.803228 +499 458 17.857143 +500 458 -33.047362 +459 459 173.73562 +460 459 7.9936058e-15 +461 459 -17.463532 +462 459 -2.220446e-16 +497 459 -21.716953 +498 459 -17.857143 +499 459 -25.970373 +500 459 1.7763568e-15 +501 459 -21.716953 +502 459 17.857143 +460 460 264.3789 +461 460 -2.220446e-16 +462 460 -107.89795 +497 460 -17.857143 +498 460 -33.047362 +499 460 1.7763568e-15 +500 460 41.803228 +501 460 17.857143 +502 460 -33.047362 +461 461 173.73562 +462 461 -1.3322676e-15 +463 461 -17.463532 +464 461 1.3322676e-15 +499 461 -21.716953 +500 461 -17.857143 +501 461 -25.970373 +502 461 -4.4408921e-16 +503 461 -21.716953 +504 461 17.857143 +462 462 264.3789 +463 462 1.3322676e-15 +464 462 -107.89795 +499 462 -17.857143 +500 462 -33.047362 +501 462 -4.4408921e-16 +502 462 41.803228 +503 462 17.857143 +504 462 -33.047362 +463 463 173.73562 +464 463 -2.6645353e-15 +465 463 -17.463532 +466 463 1.3322676e-15 +501 463 -21.716953 +502 463 -17.857143 +503 463 -25.970373 +504 463 -6.6613381e-16 +505 463 -21.716953 +506 463 17.857143 +464 464 264.3789 +465 464 1.3322676e-15 +466 464 -107.89795 +501 464 -17.857143 +502 464 -33.047362 +503 464 -6.6613381e-16 +504 464 41.803228 +505 464 17.857143 +506 464 -33.047362 +465 465 173.73562 +466 465 -4.4408921e-16 +467 465 -17.463532 +468 465 -8.8817842e-16 +503 465 -21.716953 +504 465 -17.857143 +505 465 -25.970373 +507 465 -21.716953 +508 465 17.857143 +466 466 264.3789 +467 466 -8.8817842e-16 +468 466 -107.89795 +503 466 -17.857143 +504 466 -33.047362 +506 466 41.803228 +507 466 17.857143 +508 466 -33.047362 +467 467 173.73562 +468 467 1.7763568e-15 +469 467 -17.463532 +470 467 -8.8817842e-16 +505 467 -21.716953 +506 467 -17.857143 +507 467 -25.970373 +509 467 -21.716953 +510 467 17.857143 +468 468 264.3789 +469 468 -8.8817842e-16 +470 468 -107.89795 +505 468 -17.857143 +506 468 -33.047362 +508 468 41.803228 +509 468 17.857143 +510 468 -33.047362 +469 469 173.73562 +470 469 1.7763568e-15 +471 469 -17.463532 +472 469 4.4408921e-16 +507 469 -21.716953 +508 469 -17.857143 +509 469 -25.970373 +510 469 -8.8817842e-16 +511 469 -21.716953 +512 469 17.857143 +470 470 264.3789 +471 470 4.4408921e-16 +472 470 -107.89795 +507 470 -17.857143 +508 470 -33.047362 +509 470 -8.8817842e-16 +510 470 41.803228 +511 470 17.857143 +512 470 -33.047362 +471 471 173.73562 +472 471 8.8817842e-16 +473 471 -17.463532 +474 471 -1.110223e-15 +509 471 -21.716953 +510 471 -17.857143 +511 471 -25.970373 +513 471 -21.716953 +514 471 17.857143 +472 472 264.3789 +473 472 -1.110223e-15 +474 472 -107.89795 +509 472 -17.857143 +510 472 -33.047362 +512 472 41.803228 +513 472 17.857143 +514 472 -33.047362 +473 473 173.73562 +474 473 3.5527137e-15 +475 473 -17.463532 +476 473 1.7763568e-15 +511 473 -21.716953 +512 473 -17.857143 +513 473 -25.970373 +514 473 2.220446e-16 +515 473 -21.716953 +516 473 17.857143 +474 474 264.3789 +475 474 1.5543122e-15 +476 474 -107.89795 +511 474 -17.857143 +512 474 -33.047362 +513 474 2.220446e-16 +514 474 41.803228 +515 474 17.857143 +516 474 -33.047362 +475 475 173.73562 +476 475 2.220446e-15 +477 475 -17.463532 +478 475 -1.110223e-15 +513 475 -21.716953 +514 475 -17.857143 +515 475 -25.970373 +516 475 -2.220446e-16 +517 475 -21.716953 +518 475 17.857143 +476 476 264.3789 +477 476 -1.110223e-15 +478 476 -107.89795 +513 476 -17.857143 +514 476 -33.047362 +515 476 -2.220446e-16 +516 476 41.803228 +517 476 17.857143 +518 476 -33.047362 +477 477 173.73562 +478 477 8.8817842e-16 +479 477 -17.463532 +480 477 2.220446e-15 +515 477 -21.716953 +516 477 -17.857143 +517 477 -25.970373 +519 477 -21.716953 +520 477 17.857143 +478 478 264.3789 +479 478 1.9984014e-15 +480 478 -107.89795 +515 478 -17.857143 +516 478 -33.047362 +518 478 41.803228 +519 478 17.857143 +520 478 -33.047362 +479 479 86.86781 +480 479 4.4408921e-15 +517 479 -21.716953 +518 479 -17.857143 +519 479 -12.985187 +520 479 -1.3736264 +480 480 132.18945 +517 480 -17.857143 +518 480 -33.047362 +519 480 1.3736264 +520 480 20.901614 +481 481 86.86781 +482 481 1.0658141e-14 +483 481 -17.463532 +484 481 -9.7699626e-15 +521 481 -12.985187 +522 481 1.3736264 +523 481 -21.716953 +524 481 17.857143 +482 482 132.18945 +483 482 -9.7699626e-15 +484 482 -107.89795 +521 482 -1.3736264 +522 482 20.901614 +523 482 17.857143 +524 482 -33.047362 +483 483 173.73562 +484 483 1.8651747e-14 +485 483 -17.463532 +486 483 -8.8817842e-15 +521 483 -21.716953 +522 483 -17.857143 +523 483 -25.970373 +524 483 1.0214052e-14 +525 483 -21.716953 +526 483 17.857143 +484 484 264.3789 +485 484 -8.8817842e-15 +486 484 -107.89795 +521 484 -17.857143 +522 484 -33.047362 +523 484 1.0214052e-14 +524 484 41.803228 +525 484 17.857143 +526 484 -33.047362 +485 485 173.73562 +486 485 1.8207658e-14 +487 485 -17.463532 +488 485 -9.547918e-15 +523 485 -21.716953 +524 485 -17.857143 +525 485 -25.970373 +526 485 7.327472e-15 +527 485 -21.716953 +528 485 17.857143 +486 486 264.3789 +487 486 -9.7699626e-15 +488 486 -107.89795 +523 486 -17.857143 +524 486 -33.047362 +525 486 7.327472e-15 +526 486 41.803228 +527 486 17.857143 +528 486 -33.047362 +487 487 173.73562 +488 487 1.9539925e-14 +489 487 -17.463532 +490 487 -9.9920072e-15 +525 487 -21.716953 +526 487 -17.857143 +527 487 -25.970373 +528 487 5.3290705e-15 +529 487 -21.716953 +530 487 17.857143 +488 488 264.3789 +489 488 -9.9920072e-15 +490 488 -107.89795 +525 488 -17.857143 +526 488 -33.047362 +527 488 5.3290705e-15 +528 488 41.803228 +529 488 17.857143 +530 488 -33.047362 +489 489 173.73562 +490 489 8.8817842e-15 +491 489 -17.463532 +527 489 -21.716953 +528 489 -17.857143 +529 489 -25.970373 +530 489 2.6645353e-15 +531 489 -21.716953 +532 489 17.857143 +490 490 264.3789 +492 490 -107.89795 +527 490 -17.857143 +528 490 -33.047362 +529 490 2.6645353e-15 +530 490 41.803228 +531 490 17.857143 +532 490 -33.047362 +491 491 173.73562 +492 491 -1.3322676e-15 +493 491 -17.463532 +494 491 1.110223e-15 +529 491 -21.716953 +530 491 -17.857143 +531 491 -25.970373 +532 491 -4.4408921e-16 +533 491 -21.716953 +534 491 17.857143 +492 492 264.3789 +493 492 1.110223e-15 +494 492 -107.89795 +529 492 -17.857143 +530 492 -33.047362 +531 492 -4.4408921e-16 +532 492 41.803228 +533 492 17.857143 +534 492 -33.047362 +493 493 173.73562 +494 493 2.6645353e-15 +495 493 -17.463532 +496 493 -3.5527137e-15 +531 493 -21.716953 +532 493 -17.857143 +533 493 -25.970373 +534 493 4.4408921e-16 +535 493 -21.716953 +536 493 17.857143 +494 494 264.3789 +495 494 -3.7747583e-15 +496 494 -107.89795 +531 494 -17.857143 +532 494 -33.047362 +533 494 4.4408921e-16 +534 494 41.803228 +535 494 17.857143 +536 494 -33.047362 +495 495 173.73562 +496 495 1.0658141e-14 +497 495 -17.463532 +498 495 -7.327472e-15 +533 495 -21.716953 +534 495 -17.857143 +535 495 -25.970373 +536 495 2.6645353e-15 +537 495 -21.716953 +538 495 17.857143 +496 496 264.3789 +497 496 -7.1054274e-15 +498 496 -107.89795 +533 496 -17.857143 +534 496 -33.047362 +535 496 2.6645353e-15 +536 496 41.803228 +537 496 17.857143 +538 496 -33.047362 +497 497 173.73562 +498 497 1.4654944e-14 +499 497 -17.463532 +500 497 -7.327472e-15 +535 497 -21.716953 +536 497 -17.857143 +537 497 -25.970373 +538 497 3.7747583e-15 +539 497 -21.716953 +540 497 17.857143 +498 498 264.3789 +499 498 -7.5495166e-15 +500 498 -107.89795 +535 498 -17.857143 +536 498 -33.047362 +537 498 3.9968029e-15 +538 498 41.803228 +539 498 17.857143 +540 498 -33.047362 +499 499 173.73562 +500 499 7.9936058e-15 +501 499 -17.463532 +502 499 -2.220446e-16 +537 499 -21.716953 +538 499 -17.857143 +539 499 -25.970373 +540 499 1.7763568e-15 +541 499 -21.716953 +542 499 17.857143 +500 500 264.3789 +501 500 -2.220446e-16 +502 500 -107.89795 +537 500 -17.857143 +538 500 -33.047362 +539 500 1.7763568e-15 +540 500 41.803228 +541 500 17.857143 +542 500 -33.047362 +501 501 173.73562 +502 501 -1.3322676e-15 +503 501 -17.463532 +504 501 1.110223e-15 +539 501 -21.716953 +540 501 -17.857143 +541 501 -25.970373 +542 501 -4.4408921e-16 +543 501 -21.716953 +544 501 17.857143 +502 502 264.3789 +503 502 1.110223e-15 +504 502 -107.89795 +539 502 -17.857143 +540 502 -33.047362 +541 502 -4.4408921e-16 +542 502 41.803228 +543 502 17.857143 +544 502 -33.047362 +503 503 173.73562 +504 503 -2.6645353e-15 +505 503 -17.463532 +506 503 1.3322676e-15 +541 503 -21.716953 +542 503 -17.857143 +543 503 -25.970373 +544 503 -6.6613381e-16 +545 503 -21.716953 +546 503 17.857143 +504 504 264.3789 +505 504 1.3322676e-15 +506 504 -107.89795 +541 504 -17.857143 +542 504 -33.047362 +543 504 -6.6613381e-16 +544 504 41.803228 +545 504 17.857143 +546 504 -33.047362 +505 505 173.73562 +506 505 -4.4408921e-16 +507 505 -17.463532 +508 505 -8.8817842e-16 +543 505 -21.716953 +544 505 -17.857143 +545 505 -25.970373 +547 505 -21.716953 +548 505 17.857143 +506 506 264.3789 +507 506 -8.8817842e-16 +508 506 -107.89795 +543 506 -17.857143 +544 506 -33.047362 +546 506 41.803228 +547 506 17.857143 +548 506 -33.047362 +507 507 173.73562 +508 507 1.7763568e-15 +509 507 -17.463532 +510 507 -8.8817842e-16 +545 507 -21.716953 +546 507 -17.857143 +547 507 -25.970373 +549 507 -21.716953 +550 507 17.857143 +508 508 264.3789 +509 508 -8.8817842e-16 +510 508 -107.89795 +545 508 -17.857143 +546 508 -33.047362 +548 508 41.803228 +549 508 17.857143 +550 508 -33.047362 +509 509 173.73562 +510 509 1.3322676e-15 +511 509 -17.463532 +512 509 6.6613381e-16 +547 509 -21.716953 +548 509 -17.857143 +549 509 -25.970373 +550 509 -2.220446e-16 +551 509 -21.716953 +552 509 17.857143 +510 510 264.3789 +511 510 6.6613381e-16 +512 510 -107.89795 +547 510 -17.857143 +548 510 -33.047362 +549 510 -2.220446e-16 +550 510 41.803228 +551 510 17.857143 +552 510 -33.047362 +511 511 173.73562 +512 511 8.8817842e-16 +513 511 -17.463532 +514 511 -1.110223e-15 +549 511 -21.716953 +550 511 -17.857143 +551 511 -25.970373 +553 511 -21.716953 +554 511 17.857143 +512 512 264.3789 +513 512 -1.110223e-15 +514 512 -107.89795 +549 512 -17.857143 +550 512 -33.047362 +552 512 41.803228 +553 512 17.857143 +554 512 -33.047362 +513 513 173.73562 +514 513 8.8817842e-16 +515 513 -17.463532 +551 513 -21.716953 +552 513 -17.857143 +553 513 -25.970373 +554 513 -2.220446e-16 +555 513 -21.716953 +556 513 17.857143 +514 514 264.3789 +516 514 -107.89795 +551 514 -17.857143 +552 514 -33.047362 +553 514 -2.220446e-16 +554 514 41.803228 +555 514 17.857143 +556 514 -33.047362 +515 515 173.73562 +516 515 4.4408921e-16 +517 515 -17.463532 +518 515 -2.220446e-16 +553 515 -21.716953 +554 515 -17.857143 +555 515 -25.970373 +557 515 -21.716953 +558 515 17.857143 +516 516 264.3789 +517 516 -2.220446e-16 +518 516 -107.89795 +553 516 -17.857143 +554 516 -33.047362 +556 516 41.803228 +557 516 17.857143 +558 516 -33.047362 +517 517 173.73562 +519 517 -17.463532 +520 517 4.4408921e-16 +555 517 -21.716953 +556 517 -17.857143 +557 517 -25.970373 +558 517 2.220446e-16 +559 517 -21.716953 +560 517 17.857143 +518 518 264.3789 +519 518 4.4408921e-16 +520 518 -107.89795 +555 518 -17.857143 +556 518 -33.047362 +557 518 2.220446e-16 +558 518 41.803228 +559 518 17.857143 +560 518 -33.047362 +519 519 86.86781 +520 519 8.8817842e-16 +557 519 -21.716953 +558 519 -17.857143 +559 519 -12.985187 +560 519 -1.3736264 +520 520 132.18945 +557 520 -17.857143 +558 520 -33.047362 +559 520 1.3736264 +560 520 20.901614 +521 521 86.86781 +522 521 1.9095836e-14 +523 521 -17.463532 +524 521 -1.3100632e-14 +561 521 -12.985187 +562 521 1.3736264 +563 521 -21.716953 +564 521 17.857143 +522 522 132.18945 +523 522 -1.3100632e-14 +524 522 -107.89795 +561 522 -1.3736264 +562 522 20.901614 +563 522 17.857143 +564 522 -33.047362 +523 523 173.73562 +524 523 2.9753977e-14 +525 523 -17.463532 +526 523 -1.687539e-14 +561 523 -21.716953 +562 523 -17.857143 +563 523 -25.970373 +564 523 4.8849813e-15 +565 523 -21.716953 +566 523 17.857143 +524 524 264.3789 +525 524 -1.687539e-14 +526 524 -107.89795 +561 524 -17.857143 +562 524 -33.047362 +563 524 4.8849813e-15 +564 524 41.803228 +565 524 17.857143 +566 524 -33.047362 +525 525 173.73562 +526 525 2.5313085e-14 +527 525 -17.463532 +528 525 -7.7715612e-15 +563 525 -21.716953 +564 525 -17.857143 +565 525 -25.970373 +566 525 5.1070259e-15 +567 525 -21.716953 +568 525 17.857143 +526 526 264.3789 +527 526 -7.7715612e-15 +528 526 -107.89795 +563 526 -17.857143 +564 526 -33.047362 +565 526 5.3290705e-15 +566 526 41.803228 +567 526 17.857143 +568 526 -33.047362 +527 527 173.73562 +528 527 1.9539925e-14 +529 527 -17.463532 +530 527 -1.1768364e-14 +565 527 -21.716953 +566 527 -17.857143 +567 527 -25.970373 +568 527 4.8849813e-15 +569 527 -21.716953 +570 527 17.857143 +528 528 264.3789 +529 528 -1.1768364e-14 +530 528 -107.89795 +565 528 -17.857143 +566 528 -33.047362 +567 528 4.8849813e-15 +568 528 41.803228 +569 528 17.857143 +570 528 -33.047362 +529 529 173.73562 +530 529 7.9936058e-15 +531 529 -17.463532 +532 529 4.2188475e-15 +567 529 -21.716953 +568 529 -17.857143 +569 529 -25.970373 +570 529 1.3322676e-15 +571 529 -21.716953 +572 529 17.857143 +530 530 264.3789 +531 530 4.4408921e-15 +532 530 -107.89795 +567 530 -17.857143 +568 530 -33.047362 +569 530 1.5543122e-15 +570 530 41.803228 +571 530 17.857143 +572 530 -33.047362 +531 531 173.73562 +532 531 -6.2172489e-15 +533 531 -17.463532 +534 531 2.220446e-15 +569 531 -21.716953 +570 531 -17.857143 +571 531 -25.970373 +572 531 -3.3306691e-15 +573 531 -21.716953 +574 531 17.857143 +532 532 264.3789 +533 532 2.220446e-15 +534 532 -107.89795 +569 532 -17.857143 +570 532 -33.047362 +571 532 -3.5527137e-15 +572 532 41.803228 +573 532 17.857143 +574 532 -33.047362 +533 533 173.73562 +534 533 -4.4408921e-15 +535 533 -17.463532 +536 533 -3.5527137e-15 +571 533 -21.716953 +572 533 -17.857143 +573 533 -25.970373 +574 533 3.1086245e-15 +575 533 -21.716953 +576 533 17.857143 +534 534 264.3789 +535 534 -3.7747583e-15 +536 534 -107.89795 +571 534 -17.857143 +572 534 -33.047362 +573 534 3.1086245e-15 +574 534 41.803228 +575 534 17.857143 +576 534 -33.047362 +535 535 173.73562 +536 535 1.0658141e-14 +537 535 -17.463532 +538 535 -7.327472e-15 +573 535 -21.716953 +574 535 -17.857143 +575 535 -25.970373 +576 535 2.6645353e-15 +577 535 -21.716953 +578 535 17.857143 +536 536 264.3789 +537 536 -7.1054274e-15 +538 536 -107.89795 +573 536 -17.857143 +574 536 -33.047362 +575 536 2.6645353e-15 +576 536 41.803228 +577 536 17.857143 +578 536 -33.047362 +537 537 173.73562 +538 537 1.4654944e-14 +539 537 -17.463532 +540 537 -7.327472e-15 +575 537 -21.716953 +576 537 -17.857143 +577 537 -25.970373 +578 537 3.7747583e-15 +579 537 -21.716953 +580 537 17.857143 +538 538 264.3789 +539 538 -7.5495166e-15 +540 538 -107.89795 +575 538 -17.857143 +576 538 -33.047362 +577 538 3.7747583e-15 +578 538 41.803228 +579 538 17.857143 +580 538 -33.047362 +539 539 173.73562 +540 539 7.5495166e-15 +541 539 -17.463532 +542 539 -2.220446e-16 +577 539 -21.716953 +578 539 -17.857143 +579 539 -25.970373 +580 539 1.9984014e-15 +581 539 -21.716953 +582 539 17.857143 +540 540 264.3789 +541 540 -2.220446e-16 +542 540 -107.89795 +577 540 -17.857143 +578 540 -33.047362 +579 540 1.9984014e-15 +580 540 41.803228 +581 540 17.857143 +582 540 -33.047362 +541 541 173.73562 +542 541 -1.7763568e-15 +543 541 -17.463532 +544 541 1.110223e-15 +579 541 -21.716953 +580 541 -17.857143 +581 541 -25.970373 +582 541 -4.4408921e-16 +583 541 -21.716953 +584 541 17.857143 +542 542 264.3789 +543 542 1.110223e-15 +544 542 -107.89795 +579 542 -17.857143 +580 542 -33.047362 +581 542 -4.4408921e-16 +582 542 41.803228 +583 542 17.857143 +584 542 -33.047362 +543 543 173.73562 +544 543 -2.6645353e-15 +545 543 -17.463532 +546 543 1.3322676e-15 +581 543 -21.716953 +582 543 -17.857143 +583 543 -25.970373 +584 543 -6.6613381e-16 +585 543 -21.716953 +586 543 17.857143 +544 544 264.3789 +545 544 1.3322676e-15 +546 544 -107.89795 +581 544 -17.857143 +582 544 -33.047362 +583 544 -6.6613381e-16 +584 544 41.803228 +585 544 17.857143 +586 544 -33.047362 +545 545 173.73562 +546 545 3.5527137e-15 +547 545 -17.463532 +548 545 1.110223e-15 +583 545 -21.716953 +584 545 -17.857143 +585 545 -25.970373 +586 545 -3.9968029e-15 +587 545 -21.716953 +588 545 17.857143 +546 546 264.3789 +547 546 1.110223e-15 +548 546 -107.89795 +583 546 -17.857143 +584 546 -33.047362 +585 546 -3.9968029e-15 +586 546 41.803228 +587 546 17.857143 +588 546 -33.047362 +547 547 173.73562 +548 547 1.3322676e-15 +549 547 -17.463532 +550 547 -2.6645353e-15 +585 547 -21.716953 +586 547 -17.857143 +587 547 -25.970373 +588 547 2.220446e-16 +589 547 -21.716953 +590 547 17.857143 +548 548 264.3789 +549 548 -2.6645353e-15 +550 548 -107.89795 +585 548 -17.857143 +586 548 -33.047362 +587 548 4.4408921e-16 +588 548 41.803228 +589 548 17.857143 +590 548 -33.047362 +549 549 173.73562 +550 549 8.8817842e-16 +551 549 -17.463532 +552 549 1.5543122e-15 +587 549 -21.716953 +588 549 -17.857143 +589 549 -25.970373 +591 549 -21.716953 +592 549 17.857143 +550 550 264.3789 +551 550 1.7763568e-15 +552 550 -107.89795 +587 550 -17.857143 +588 550 -33.047362 +589 550 2.220446e-16 +590 550 41.803228 +591 550 17.857143 +592 550 -33.047362 +551 551 173.73562 +552 551 8.8817842e-16 +553 551 -17.463532 +554 551 -2.6645353e-15 +589 551 -21.716953 +590 551 -17.857143 +591 551 -25.970373 +593 551 -21.716953 +594 551 17.857143 +552 552 264.3789 +553 552 -2.4424907e-15 +554 552 -107.89795 +589 552 -17.857143 +590 552 -33.047362 +592 552 41.803228 +593 552 17.857143 +594 552 -33.047362 +553 553 173.73562 +554 553 1.3322676e-15 +555 553 -17.463532 +556 553 1.3322676e-15 +591 553 -21.716953 +592 553 -17.857143 +593 553 -25.970373 +594 553 4.4408921e-16 +595 553 -21.716953 +596 553 17.857143 +554 554 264.3789 +555 554 1.3322676e-15 +556 554 -107.89795 +591 554 -17.857143 +592 554 -33.047362 +593 554 2.220446e-16 +594 554 41.803228 +595 554 17.857143 +596 554 -33.047362 +555 555 173.73562 +556 555 8.8817842e-16 +557 555 -17.463532 +558 555 -1.9984014e-15 +593 555 -21.716953 +594 555 -17.857143 +595 555 -25.970373 +596 555 -2.220446e-16 +597 555 -21.716953 +598 555 17.857143 +556 556 264.3789 +557 556 -1.7763568e-15 +558 556 -107.89795 +593 556 -17.857143 +594 556 -33.047362 +595 556 -2.220446e-16 +596 556 41.803228 +597 556 17.857143 +598 556 -33.047362 +557 557 173.73562 +558 557 4.4408921e-16 +559 557 -17.463532 +560 557 1.7763568e-15 +595 557 -21.716953 +596 557 -17.857143 +597 557 -25.970373 +598 557 -2.220446e-16 +599 557 -21.716953 +600 557 17.857143 +558 558 264.3789 +559 558 1.9984014e-15 +560 558 -107.89795 +595 558 -17.857143 +596 558 -33.047362 +597 558 -4.4408921e-16 +598 558 41.803228 +599 558 17.857143 +600 558 -33.047362 +559 559 86.86781 +560 559 4.4408921e-15 +597 559 -21.716953 +598 559 -17.857143 +599 559 -12.985187 +600 559 -1.3736264 +560 560 132.18945 +597 560 -17.857143 +598 560 -33.047362 +599 560 1.3736264 +600 560 20.901614 +561 561 86.86781 +562 561 1.687539e-14 +563 561 -17.463532 +564 561 -6.2172489e-15 +601 561 -12.985187 +602 561 1.3736264 +603 561 -21.716953 +604 561 17.857143 +562 562 132.18945 +563 562 -6.2172489e-15 +564 562 -107.89795 +601 562 -1.3736264 +602 562 20.901614 +603 562 17.857143 +604 562 -33.047362 +563 563 173.73562 +564 563 1.9984014e-14 +565 563 -17.463532 +566 563 -1.3766766e-14 +601 563 -21.716953 +602 563 -17.857143 +603 563 -25.970373 +604 563 5.1070259e-15 +605 563 -21.716953 +606 563 17.857143 +564 564 264.3789 +565 564 -1.398881e-14 +566 564 -107.89795 +601 564 -17.857143 +602 564 -33.047362 +603 564 5.1070259e-15 +604 564 41.803228 +605 564 17.857143 +606 564 -33.047362 +565 565 173.73562 +566 565 1.9984014e-14 +567 565 -17.463532 +568 565 -6.2172489e-15 +603 565 -21.716953 +604 565 -17.857143 +605 565 -25.970373 +606 565 4.8849813e-15 +607 565 -21.716953 +608 565 17.857143 +566 566 264.3789 +567 566 -6.2172489e-15 +568 566 -107.89795 +603 566 -17.857143 +604 566 -33.047362 +605 566 4.8849813e-15 +606 566 41.803228 +607 566 17.857143 +608 566 -33.047362 +567 567 173.73562 +568 567 1.9984014e-14 +569 567 -17.463532 +570 567 -1.3766766e-14 +605 567 -21.716953 +606 567 -17.857143 +607 567 -25.970373 +608 567 5.1070259e-15 +609 567 -21.716953 +610 567 17.857143 +568 568 264.3789 +569 568 -1.398881e-14 +570 568 -107.89795 +605 568 -17.857143 +606 568 -33.047362 +607 568 5.1070259e-15 +608 568 41.803228 +609 568 17.857143 +610 568 -33.047362 +569 569 173.73562 +570 569 1.2434498e-14 +571 569 -17.463532 +572 569 1.3322676e-15 +607 569 -21.716953 +608 569 -17.857143 +609 569 -25.970373 +610 569 4.8849813e-15 +611 569 -21.716953 +612 569 17.857143 +570 570 264.3789 +571 570 1.110223e-15 +572 570 -107.89795 +607 570 -17.857143 +608 570 -33.047362 +609 570 4.8849813e-15 +610 570 41.803228 +611 570 17.857143 +612 570 -33.047362 +571 571 173.73562 +572 571 3.9968029e-15 +573 571 -17.463532 +574 571 -4.2188475e-15 +609 571 -21.716953 +610 571 -17.857143 +611 571 -25.970373 +612 571 4.8849813e-15 +613 571 -21.716953 +614 571 17.857143 +572 572 264.3789 +573 572 -4.2188475e-15 +574 572 -107.89795 +609 572 -17.857143 +610 572 -33.047362 +611 572 4.8849813e-15 +612 572 41.803228 +613 572 17.857143 +614 572 -33.047362 +573 573 173.73562 +574 573 -2.220446e-15 +575 573 -17.463532 +576 573 -3.7747583e-15 +611 573 -21.716953 +612 573 -17.857143 +613 573 -25.970373 +614 573 6.2172489e-15 +615 573 -21.716953 +616 573 17.857143 +574 574 264.3789 +575 574 -3.7747583e-15 +576 574 -107.89795 +611 574 -17.857143 +612 574 -33.047362 +613 574 6.2172489e-15 +614 574 41.803228 +615 574 17.857143 +616 574 -33.047362 +575 575 173.73562 +576 575 1.110223e-14 +577 575 -17.463532 +578 575 -7.327472e-15 +613 575 -21.716953 +614 575 -17.857143 +615 575 -25.970373 +616 575 2.6645353e-15 +617 575 -21.716953 +618 575 17.857143 +576 576 264.3789 +577 576 -7.1054274e-15 +578 576 -107.89795 +613 576 -17.857143 +614 576 -33.047362 +615 576 2.6645353e-15 +616 576 41.803228 +617 576 17.857143 +618 576 -33.047362 +577 577 173.73562 +578 577 1.4210855e-14 +579 577 -17.463532 +580 577 -7.327472e-15 +615 577 -21.716953 +616 577 -17.857143 +617 577 -25.970373 +618 577 3.7747583e-15 +619 577 -21.716953 +620 577 17.857143 +578 578 264.3789 +579 578 -7.1054274e-15 +580 578 -107.89795 +615 578 -17.857143 +616 578 -33.047362 +617 578 3.7747583e-15 +618 578 41.803228 +619 578 17.857143 +620 578 -33.047362 +579 579 173.73562 +580 579 7.5495166e-15 +581 579 -17.463532 +582 579 -2.220446e-16 +617 579 -21.716953 +618 579 -17.857143 +619 579 -25.970373 +620 579 1.9984014e-15 +621 579 -21.716953 +622 579 17.857143 +580 580 264.3789 +581 580 -2.220446e-16 +582 580 -107.89795 +617 580 -17.857143 +618 580 -33.047362 +619 580 1.9984014e-15 +620 580 41.803228 +621 580 17.857143 +622 580 -33.047362 +581 581 173.73562 +582 581 -1.7763568e-15 +583 581 -17.463532 +584 581 1.3322676e-15 +619 581 -21.716953 +620 581 -17.857143 +621 581 -25.970373 +622 581 -4.4408921e-16 +623 581 -21.716953 +624 581 17.857143 +582 582 264.3789 +583 582 1.3322676e-15 +584 582 -107.89795 +619 582 -17.857143 +620 582 -33.047362 +621 582 -4.4408921e-16 +622 582 41.803228 +623 582 17.857143 +624 582 -33.047362 +583 583 173.73562 +584 583 -2.6645353e-15 +585 583 -17.463532 +586 583 1.3322676e-15 +621 583 -21.716953 +622 583 -17.857143 +623 583 -25.970373 +624 583 -6.6613381e-16 +625 583 -21.716953 +626 583 17.857143 +584 584 264.3789 +585 584 1.3322676e-15 +586 584 -107.89795 +621 584 -17.857143 +622 584 -33.047362 +623 584 -6.6613381e-16 +624 584 41.803228 +625 584 17.857143 +626 584 -33.047362 +585 585 173.73562 +586 585 6.2172489e-15 +587 585 -17.463532 +588 585 2.6645353e-15 +623 585 -21.716953 +624 585 -17.857143 +625 585 -25.970373 +626 585 -3.3306691e-15 +627 585 -21.716953 +628 585 17.857143 +586 586 264.3789 +587 586 2.6645353e-15 +588 586 -107.89795 +623 586 -17.857143 +624 586 -33.047362 +625 586 -3.3306691e-15 +626 586 41.803228 +627 586 17.857143 +628 586 -33.047362 +587 587 173.73562 +588 587 1.7763568e-15 +589 587 -17.463532 +590 587 -4.2188475e-15 +625 587 -21.716953 +626 587 -17.857143 +627 587 -25.970373 +629 587 -21.716953 +630 587 17.857143 +588 588 264.3789 +589 588 -4.4408921e-15 +590 588 -107.89795 +625 588 -17.857143 +626 588 -33.047362 +628 588 41.803228 +629 588 17.857143 +630 588 -33.047362 +589 589 173.73562 +590 589 1.3322676e-15 +591 589 -17.463532 +592 589 3.5527137e-15 +627 589 -21.716953 +628 589 -17.857143 +629 589 -25.970373 +631 589 -21.716953 +632 589 17.857143 +590 590 264.3789 +591 590 3.5527137e-15 +592 590 -107.89795 +627 590 -17.857143 +628 590 -33.047362 +630 590 41.803228 +631 590 17.857143 +632 590 -33.047362 +591 591 173.73562 +592 591 8.8817842e-16 +593 591 -17.463532 +594 591 -4.4408921e-15 +629 591 -21.716953 +630 591 -17.857143 +631 591 -25.970373 +632 591 2.220446e-16 +633 591 -21.716953 +634 591 17.857143 +592 592 264.3789 +593 592 -4.4408921e-15 +594 592 -107.89795 +629 592 -17.857143 +630 592 -33.047362 +631 592 2.220446e-16 +632 592 41.803228 +633 592 17.857143 +634 592 -33.047362 +593 593 173.73562 +594 593 1.3322676e-15 +595 593 -17.463532 +596 593 3.3306691e-15 +631 593 -21.716953 +632 593 -17.857143 +633 593 -25.970373 +634 593 2.220446e-16 +635 593 -21.716953 +636 593 17.857143 +594 594 264.3789 +595 594 3.3306691e-15 +596 594 -107.89795 +631 594 -17.857143 +632 594 -33.047362 +633 594 2.220446e-16 +634 594 41.803228 +635 594 17.857143 +636 594 -33.047362 +595 595 173.73562 +596 595 4.4408921e-16 +597 595 -17.463532 +598 595 -3.7747583e-15 +633 595 -21.716953 +634 595 -17.857143 +635 595 -25.970373 +637 595 -21.716953 +638 595 17.857143 +596 596 264.3789 +597 596 -3.7747583e-15 +598 596 -107.89795 +633 596 -17.857143 +634 596 -33.047362 +636 596 41.803228 +637 596 17.857143 +638 596 -33.047362 +597 597 173.73562 +598 597 8.8817842e-16 +599 597 -17.463532 +600 597 3.5527137e-15 +635 597 -21.716953 +636 597 -17.857143 +637 597 -25.970373 +639 597 -21.716953 +640 597 17.857143 +598 598 264.3789 +599 598 3.5527137e-15 +600 598 -107.89795 +635 598 -17.857143 +636 598 -33.047362 +638 598 41.803228 +639 598 17.857143 +640 598 -33.047362 +599 599 86.86781 +600 599 7.1054274e-15 +637 599 -21.716953 +638 599 -17.857143 +639 599 -12.985187 +640 599 -1.3736264 +600 600 132.18945 +637 600 -17.857143 +638 600 -33.047362 +639 600 1.3736264 +640 600 20.901614 +601 601 86.86781 +602 601 1.687539e-14 +603 601 -17.463532 +604 601 -5.9952043e-15 +641 601 -12.985187 +642 601 1.3736264 +643 601 -21.716953 +644 601 17.857143 +602 602 132.18945 +603 602 -5.9952043e-15 +604 602 -107.89795 +641 602 -1.3736264 +642 602 20.901614 +643 602 17.857143 +644 602 -33.047362 +603 603 173.73562 +604 603 1.9984014e-14 +605 603 -17.463532 +606 603 -1.3322676e-14 +641 603 -21.716953 +642 603 -17.857143 +643 603 -25.970373 +644 603 5.3290705e-15 +645 603 -21.716953 +646 603 17.857143 +604 604 264.3789 +605 604 -1.3544721e-14 +606 604 -107.89795 +641 604 -17.857143 +642 604 -33.047362 +643 604 5.1070259e-15 +644 604 41.803228 +645 604 17.857143 +646 604 -33.047362 +605 605 173.73562 +606 605 1.9095836e-14 +607 605 -17.463532 +608 605 -5.9952043e-15 +643 605 -21.716953 +644 605 -17.857143 +645 605 -25.970373 +646 605 5.1070259e-15 +647 605 -21.716953 +648 605 17.857143 +606 606 264.3789 +607 606 -5.9952043e-15 +608 606 -107.89795 +643 606 -17.857143 +644 606 -33.047362 +645 606 5.3290705e-15 +646 606 41.803228 +647 606 17.857143 +648 606 -33.047362 +607 607 173.73562 +608 607 1.9984014e-14 +609 607 -17.463532 +610 607 -1.3322676e-14 +645 607 -21.716953 +646 607 -17.857143 +647 607 -25.970373 +648 607 5.3290705e-15 +649 607 -21.716953 +650 607 17.857143 +608 608 264.3789 +609 608 -1.3544721e-14 +610 608 -107.89795 +645 608 -17.857143 +646 608 -33.047362 +647 608 5.1070259e-15 +648 608 41.803228 +649 608 17.857143 +650 608 -33.047362 +609 609 173.73562 +610 609 1.2434498e-14 +611 609 -17.463532 +612 609 8.8817842e-16 +647 609 -21.716953 +648 609 -17.857143 +649 609 -25.970373 +650 609 1.110223e-15 +651 609 -21.716953 +652 609 17.857143 +610 610 264.3789 +611 610 1.110223e-15 +612 610 -107.89795 +647 610 -17.857143 +648 610 -33.047362 +649 610 1.3322676e-15 +650 610 41.803228 +651 610 17.857143 +652 610 -33.047362 +611 611 173.73562 +612 611 3.9968029e-15 +613 611 -17.463532 +614 611 -4.6629367e-15 +649 611 -21.716953 +650 611 -17.857143 +651 611 -25.970373 +652 611 -2.8865799e-15 +653 611 -21.716953 +654 611 17.857143 +612 612 264.3789 +613 612 -4.2188475e-15 +614 612 -107.89795 +649 612 -17.857143 +650 612 -33.047362 +651 612 -3.1086245e-15 +652 612 41.803228 +653 612 17.857143 +654 612 -33.047362 +613 613 173.73562 +614 613 1.3322676e-15 +615 613 -17.463532 +616 613 -1.7763568e-15 +651 613 -21.716953 +652 613 -17.857143 +653 613 -25.970373 +654 613 -8.8817842e-16 +655 613 -21.716953 +656 613 17.857143 +614 614 264.3789 +615 614 -1.7763568e-15 +616 614 -107.89795 +651 614 -17.857143 +652 614 -33.047362 +653 614 -8.8817842e-16 +654 614 41.803228 +655 614 17.857143 +656 614 -33.047362 +615 615 173.73562 +616 615 1.0658141e-14 +617 615 -17.463532 +618 615 -9.1038288e-15 +653 615 -21.716953 +654 615 -17.857143 +655 615 -25.970373 +656 615 2.220446e-15 +657 615 -21.716953 +658 615 17.857143 +616 616 264.3789 +617 616 -8.8817842e-15 +618 616 -107.89795 +653 616 -17.857143 +654 616 -33.047362 +655 616 2.220446e-15 +656 616 41.803228 +657 616 17.857143 +658 616 -33.047362 +617 617 173.73562 +618 617 1.0658141e-14 +619 617 -17.463532 +620 617 -7.327472e-15 +655 617 -21.716953 +656 617 -17.857143 +657 617 -25.970373 +658 617 7.5495166e-15 +659 617 -21.716953 +660 617 17.857143 +618 618 264.3789 +619 618 -7.1054274e-15 +620 618 -107.89795 +655 618 -17.857143 +656 618 -33.047362 +657 618 7.5495166e-15 +658 618 41.803228 +659 618 17.857143 +660 618 -33.047362 +619 619 173.73562 +620 619 7.5495166e-15 +621 619 -17.463532 +622 619 -2.220446e-16 +657 619 -21.716953 +658 619 -17.857143 +659 619 -25.970373 +660 619 1.7763568e-15 +661 619 -21.716953 +662 619 17.857143 +620 620 264.3789 +621 620 -2.220446e-16 +622 620 -107.89795 +657 620 -17.857143 +658 620 -33.047362 +659 620 1.9984014e-15 +660 620 41.803228 +661 620 17.857143 +662 620 -33.047362 +621 621 173.73562 +622 621 2.6645353e-15 +623 621 -17.463532 +624 621 3.3306691e-15 +659 621 -21.716953 +660 621 -17.857143 +661 621 -25.970373 +662 621 -3.9968029e-15 +663 621 -21.716953 +664 621 17.857143 +622 622 264.3789 +623 622 3.3306691e-15 +624 622 -107.89795 +659 622 -17.857143 +660 622 -33.047362 +661 622 -4.2188475e-15 +662 622 41.803228 +663 622 17.857143 +664 622 -33.047362 +623 623 173.73562 +624 623 -3.5527137e-15 +625 623 -17.463532 +626 623 -6.6613381e-16 +661 623 -21.716953 +662 623 -17.857143 +663 623 -25.970373 +664 623 -2.220446e-16 +665 623 -21.716953 +666 623 17.857143 +624 624 264.3789 +625 624 -4.4408921e-16 +626 624 -107.89795 +661 624 -17.857143 +662 624 -33.047362 +663 624 -4.4408921e-16 +664 624 41.803228 +665 624 17.857143 +666 624 -33.047362 +625 625 173.73562 +626 625 2.220446e-15 +627 625 -17.463532 +628 625 2.8865799e-15 +663 625 -21.716953 +664 625 -17.857143 +665 625 -25.970373 +667 625 -21.716953 +668 625 17.857143 +626 626 264.3789 +627 626 2.8865799e-15 +628 626 -107.89795 +663 626 -17.857143 +664 626 -33.047362 +666 626 41.803228 +667 626 17.857143 +668 626 -33.047362 +627 627 173.73562 +628 627 1.3322676e-15 +629 627 -17.463532 +630 627 -3.9968029e-15 +665 627 -21.716953 +666 627 -17.857143 +667 627 -25.970373 +668 627 4.4408921e-16 +669 627 -21.716953 +670 627 17.857143 +628 628 264.3789 +629 628 -4.2188475e-15 +630 628 -107.89795 +665 628 -17.857143 +666 628 -33.047362 +667 628 2.220446e-16 +668 628 41.803228 +669 628 17.857143 +670 628 -33.047362 +629 629 173.73562 +630 629 4.4408921e-16 +631 629 -17.463532 +632 629 3.7747583e-15 +667 629 -21.716953 +668 629 -17.857143 +669 629 -25.970373 +670 629 2.220446e-16 +671 629 -21.716953 +672 629 17.857143 +630 630 264.3789 +631 630 3.7747583e-15 +632 630 -107.89795 +667 630 -17.857143 +668 630 -33.047362 +669 630 2.220446e-16 +670 630 41.803228 +671 630 17.857143 +672 630 -33.047362 +631 631 173.73562 +632 631 8.8817842e-16 +633 631 -17.463532 +634 631 -4.4408921e-15 +669 631 -21.716953 +670 631 -17.857143 +671 631 -25.970373 +672 631 2.220446e-16 +673 631 -21.716953 +674 631 17.857143 +632 632 264.3789 +633 632 -4.4408921e-15 +634 632 -107.89795 +669 632 -17.857143 +670 632 -33.047362 +671 632 4.4408921e-16 +672 632 41.803228 +673 632 17.857143 +674 632 -33.047362 +633 633 173.73562 +634 633 8.8817842e-16 +635 633 -17.463532 +636 633 3.3306691e-15 +671 633 -21.716953 +672 633 -17.857143 +673 633 -25.970373 +674 633 4.4408921e-16 +675 633 -21.716953 +676 633 17.857143 +634 634 264.3789 +635 634 3.3306691e-15 +636 634 -107.89795 +671 634 -17.857143 +672 634 -33.047362 +673 634 2.220446e-16 +674 634 41.803228 +675 634 17.857143 +676 634 -33.047362 +635 635 173.73562 +636 635 4.4408921e-16 +637 635 -17.463532 +638 635 -3.5527137e-15 +673 635 -21.716953 +674 635 -17.857143 +675 635 -25.970373 +676 635 -2.220446e-16 +677 635 -21.716953 +678 635 17.857143 +636 636 264.3789 +637 636 -3.3306691e-15 +638 636 -107.89795 +673 636 -17.857143 +674 636 -33.047362 +675 636 -2.220446e-16 +676 636 41.803228 +677 636 17.857143 +678 636 -33.047362 +637 637 173.73562 +639 637 -17.463532 +640 637 3.5527137e-15 +675 637 -21.716953 +676 637 -17.857143 +677 637 -25.970373 +679 637 -21.716953 +680 637 17.857143 +638 638 264.3789 +639 638 3.7747583e-15 +640 638 -107.89795 +675 638 -17.857143 +676 638 -33.047362 +678 638 41.803228 +679 638 17.857143 +680 638 -33.047362 +639 639 86.86781 +640 639 7.5495166e-15 +677 639 -21.716953 +678 639 -17.857143 +679 639 -12.985187 +680 639 -1.3736264 +640 640 132.18945 +677 640 -17.857143 +678 640 -33.047362 +679 640 1.3736264 +680 640 20.901614 +641 641 86.86781 +642 641 1.6431301e-14 +643 641 -17.463532 +644 641 -6.4392935e-15 +681 641 -12.985187 +682 641 1.3736264 +683 641 -21.716953 +684 641 17.857143 +642 642 132.18945 +643 642 -6.4392935e-15 +644 642 -107.89795 +681 642 -1.3736264 +682 642 20.901614 +683 642 17.857143 +684 642 -33.047362 +643 643 173.73562 +644 643 2.0428104e-14 +645 643 -17.463532 +646 643 -1.3766766e-14 +681 643 -21.716953 +682 643 -17.857143 +683 643 -25.970373 +684 643 5.1070259e-15 +685 643 -21.716953 +686 643 17.857143 +644 644 264.3789 +645 644 -1.398881e-14 +646 644 -107.89795 +681 644 -17.857143 +682 644 -33.047362 +683 644 5.1070259e-15 +684 644 41.803228 +685 644 17.857143 +686 644 -33.047362 +645 645 173.73562 +646 645 1.9984014e-14 +647 645 -17.463532 +648 645 -6.4392935e-15 +683 645 -21.716953 +684 645 -17.857143 +685 645 -25.970373 +686 645 5.1070259e-15 +687 645 -21.716953 +688 645 17.857143 +646 646 264.3789 +647 646 -6.4392935e-15 +648 646 -107.89795 +683 646 -17.857143 +684 646 -33.047362 +685 646 5.1070259e-15 +686 646 41.803228 +687 646 17.857143 +688 646 -33.047362 +647 647 173.73562 +648 647 2.0428104e-14 +649 647 -17.463532 +650 647 -1.3766766e-14 +685 647 -21.716953 +686 647 -17.857143 +687 647 -25.970373 +688 647 5.1070259e-15 +689 647 -21.716953 +690 647 17.857143 +648 648 264.3789 +649 648 -1.398881e-14 +650 648 -107.89795 +685 648 -17.857143 +686 648 -33.047362 +687 648 5.1070259e-15 +688 648 41.803228 +689 648 17.857143 +690 648 -33.047362 +649 649 173.73562 +650 649 1.2878587e-14 +651 649 -17.463532 +652 649 1.3322676e-15 +687 649 -21.716953 +688 649 -17.857143 +689 649 -25.970373 +690 649 5.1070259e-15 +691 649 -21.716953 +692 649 17.857143 +650 650 264.3789 +651 650 1.110223e-15 +652 650 -107.89795 +687 650 -17.857143 +688 650 -33.047362 +689 650 5.1070259e-15 +690 650 41.803228 +691 650 17.857143 +692 650 -33.047362 +651 651 173.73562 +652 651 2.6645353e-15 +653 651 -17.463532 +654 651 -4.2188475e-15 +689 651 -21.716953 +690 651 -17.857143 +691 651 -25.970373 +692 651 4.6629367e-15 +693 651 -21.716953 +694 651 17.857143 +652 652 264.3789 +653 652 -4.2188475e-15 +654 652 -107.89795 +689 652 -17.857143 +690 652 -33.047362 +691 652 4.6629367e-15 +692 652 41.803228 +693 652 17.857143 +694 652 -33.047362 +653 653 173.73562 +654 653 4.8849813e-15 +655 653 -17.463532 +656 653 -2.220446e-16 +691 653 -21.716953 +692 653 -17.857143 +693 653 -25.970373 +694 653 3.1086245e-15 +695 653 -21.716953 +696 653 17.857143 +654 654 264.3789 +655 654 -2.220446e-16 +656 654 -107.89795 +691 654 -17.857143 +692 654 -33.047362 +693 654 2.8865799e-15 +694 654 41.803228 +695 654 17.857143 +696 654 -33.047362 +655 655 173.73562 +656 655 1.110223e-14 +657 655 -17.463532 +658 655 -1.1324275e-14 +693 655 -21.716953 +694 655 -17.857143 +695 655 -25.970373 +696 655 2.6645353e-15 +697 655 -21.716953 +698 655 17.857143 +656 656 264.3789 +657 656 -1.1324275e-14 +658 656 -107.89795 +693 656 -17.857143 +694 656 -33.047362 +695 656 2.8865799e-15 +696 656 41.803228 +697 656 17.857143 +698 656 -33.047362 +657 657 173.73562 +658 657 7.9936058e-15 +659 657 -17.463532 +660 657 -7.1054274e-15 +695 657 -21.716953 +696 657 -17.857143 +697 657 -25.970373 +698 657 6.4392935e-15 +699 657 -21.716953 +700 657 17.857143 +658 658 264.3789 +659 658 -7.1054274e-15 +660 658 -107.89795 +695 658 -17.857143 +696 658 -33.047362 +697 658 6.6613381e-15 +698 658 41.803228 +699 658 17.857143 +700 658 -33.047362 +659 659 173.73562 +660 659 7.5495166e-15 +661 659 -17.463532 +662 659 -2.220446e-16 +697 659 -21.716953 +698 659 -17.857143 +699 659 -25.970373 +700 659 1.7763568e-15 +701 659 -21.716953 +702 659 17.857143 +660 660 264.3789 +661 660 -2.220446e-16 +662 660 -107.89795 +697 660 -17.857143 +698 660 -33.047362 +699 660 1.9984014e-15 +700 660 41.803228 +701 660 17.857143 +702 660 -33.047362 +661 661 173.73562 +662 661 5.7731597e-15 +663 661 -17.463532 +664 661 4.4408921e-15 +699 661 -21.716953 +700 661 -17.857143 +701 661 -25.970373 +702 661 -3.3306691e-15 +703 661 -21.716953 +704 661 17.857143 +662 662 264.3789 +663 662 4.4408921e-15 +664 662 -107.89795 +699 662 -17.857143 +700 662 -33.047362 +701 662 -3.3306691e-15 +702 662 41.803228 +703 662 17.857143 +704 662 -33.047362 +663 663 173.73562 +664 663 -2.6645353e-15 +665 663 -17.463532 +666 663 -2.6645353e-15 +701 663 -21.716953 +702 663 -17.857143 +703 663 -25.970373 +704 663 -8.8817842e-16 +705 663 -21.716953 +706 663 17.857143 +664 664 264.3789 +665 664 -2.220446e-15 +666 664 -107.89795 +701 664 -17.857143 +702 664 -33.047362 +703 664 -6.6613381e-16 +704 664 41.803228 +705 664 17.857143 +706 664 -33.047362 +665 665 173.73562 +667 665 -17.463532 +668 665 2.6645353e-15 +703 665 -21.716953 +704 665 -17.857143 +705 665 -25.970373 +706 665 -2.220446e-16 +707 665 -21.716953 +708 665 17.857143 +666 666 264.3789 +667 666 2.4424907e-15 +668 666 -107.89795 +703 666 -17.857143 +704 666 -33.047362 +705 666 -2.220446e-16 +706 666 41.803228 +707 666 17.857143 +708 666 -33.047362 +667 667 173.73562 +668 667 2.220446e-15 +669 667 -17.463532 +670 667 -4.2188475e-15 +705 667 -21.716953 +706 667 -17.857143 +707 667 -25.970373 +709 667 -21.716953 +710 667 17.857143 +668 668 264.3789 +669 668 -4.4408921e-15 +670 668 -107.89795 +705 668 -17.857143 +706 668 -33.047362 +708 668 41.803228 +709 668 17.857143 +710 668 -33.047362 +669 669 173.73562 +670 669 1.3322676e-15 +671 669 -17.463532 +672 669 3.5527137e-15 +707 669 -21.716953 +708 669 -17.857143 +709 669 -25.970373 +711 669 -21.716953 +712 669 17.857143 +670 670 264.3789 +671 670 3.5527137e-15 +672 670 -107.89795 +707 670 -17.857143 +708 670 -33.047362 +709 670 2.220446e-16 +710 670 41.803228 +711 670 17.857143 +712 670 -33.047362 +671 671 173.73562 +672 671 4.4408921e-16 +673 671 -17.463532 +674 671 -4.4408921e-15 +709 671 -21.716953 +710 671 -17.857143 +711 671 -25.970373 +713 671 -21.716953 +714 671 17.857143 +672 672 264.3789 +673 672 -4.4408921e-15 +674 672 -107.89795 +709 672 -17.857143 +710 672 -33.047362 +712 672 41.803228 +713 672 17.857143 +714 672 -33.047362 +673 673 173.73562 +674 673 1.3322676e-15 +675 673 -17.463532 +676 673 3.1086245e-15 +711 673 -21.716953 +712 673 -17.857143 +713 673 -25.970373 +715 673 -21.716953 +716 673 17.857143 +674 674 264.3789 +675 674 2.8865799e-15 +676 674 -107.89795 +711 674 -17.857143 +712 674 -33.047362 +714 674 41.803228 +715 674 17.857143 +716 674 -33.047362 +675 675 173.73562 +676 675 4.4408921e-16 +677 675 -17.463532 +678 675 -3.9968029e-15 +713 675 -21.716953 +714 675 -17.857143 +715 675 -25.970373 +717 675 -21.716953 +718 675 17.857143 +676 676 264.3789 +677 676 -3.9968029e-15 +678 676 -107.89795 +713 676 -17.857143 +714 676 -33.047362 +716 676 41.803228 +717 676 17.857143 +718 676 -33.047362 +677 677 173.73562 +678 677 4.4408921e-16 +679 677 -17.463532 +680 677 3.1086245e-15 +715 677 -21.716953 +716 677 -17.857143 +717 677 -25.970373 +718 677 -2.220446e-16 +719 677 -21.716953 +720 677 17.857143 +678 678 264.3789 +679 678 3.3306691e-15 +680 678 -107.89795 +715 678 -17.857143 +716 678 -33.047362 +717 678 -2.220446e-16 +718 678 41.803228 +719 678 17.857143 +720 678 -33.047362 +679 679 86.86781 +680 679 7.1054274e-15 +717 679 -21.716953 +718 679 -17.857143 +719 679 -12.985187 +720 679 -1.3736264 +680 680 132.18945 +717 680 -17.857143 +718 680 -33.047362 +719 680 1.3736264 +720 680 20.901614 +681 681 86.86781 +682 681 1.3322676e-14 +683 681 -17.463532 +684 681 -7.7715612e-15 +721 681 -12.985187 +722 681 1.3736264 +723 681 -21.716953 +724 681 17.857143 +682 682 132.18945 +683 682 -7.7715612e-15 +684 682 -107.89795 +721 682 -1.3736264 +722 682 20.901614 +723 682 17.857143 +724 682 -33.047362 +683 683 173.73562 +684 683 1.9984014e-14 +685 683 -17.463532 +686 683 -1.1768364e-14 +721 683 -21.716953 +722 683 -17.857143 +723 683 -25.970373 +724 683 5.1070259e-15 +725 683 -21.716953 +726 683 17.857143 +684 684 264.3789 +685 684 -1.1990409e-14 +686 684 -107.89795 +721 684 -17.857143 +722 684 -33.047362 +723 684 5.1070259e-15 +724 684 41.803228 +725 684 17.857143 +726 684 -33.047362 +685 685 173.73562 +686 685 1.8207658e-14 +687 685 -17.463532 +688 685 -7.7715612e-15 +723 685 -21.716953 +724 685 -17.857143 +725 685 -25.970373 +726 685 4.8849813e-15 +727 685 -21.716953 +728 685 17.857143 +686 686 264.3789 +687 686 -7.7715612e-15 +688 686 -107.89795 +723 686 -17.857143 +724 686 -33.047362 +725 686 4.8849813e-15 +726 686 41.803228 +727 686 17.857143 +728 686 -33.047362 +687 687 173.73562 +688 687 1.9984014e-14 +689 687 -17.463532 +690 687 -1.1768364e-14 +725 687 -21.716953 +726 687 -17.857143 +727 687 -25.970373 +728 687 5.1070259e-15 +729 687 -21.716953 +730 687 17.857143 +688 688 264.3789 +689 688 -1.1990409e-14 +690 688 -107.89795 +725 688 -17.857143 +726 688 -33.047362 +727 688 5.1070259e-15 +728 688 41.803228 +729 688 17.857143 +730 688 -33.047362 +689 689 173.73562 +690 689 1.110223e-14 +691 689 -17.463532 +692 689 -6.6613381e-16 +727 689 -21.716953 +728 689 -17.857143 +729 689 -25.970373 +730 689 1.110223e-15 +731 689 -21.716953 +732 689 17.857143 +690 690 264.3789 +691 690 -6.6613381e-16 +692 690 -107.89795 +727 690 -17.857143 +728 690 -33.047362 +729 690 1.110223e-15 +730 690 41.803228 +731 690 17.857143 +732 690 -33.047362 +691 691 173.73562 +692 691 3.5527137e-15 +693 691 -17.463532 +694 691 -2.8865799e-15 +729 691 -21.716953 +730 691 -17.857143 +731 691 -25.970373 +732 691 -3.3306691e-15 +733 691 -21.716953 +734 691 17.857143 +692 692 264.3789 +693 692 -2.8865799e-15 +694 692 -107.89795 +729 692 -17.857143 +730 692 -33.047362 +731 692 -3.5527137e-15 +732 692 41.803228 +733 692 17.857143 +734 692 -33.047362 +693 693 173.73562 +694 693 4.8849813e-15 +695 693 -17.463532 +696 693 -1.9984014e-15 +731 693 -21.716953 +732 693 -17.857143 +733 693 -25.970373 +734 693 -8.8817842e-16 +735 693 -21.716953 +736 693 17.857143 +694 694 264.3789 +695 694 -1.7763568e-15 +696 694 -107.89795 +731 694 -17.857143 +732 694 -33.047362 +733 694 -8.8817842e-16 +734 694 41.803228 +735 694 17.857143 +736 694 -33.047362 +695 695 173.73562 +696 695 1.0658141e-14 +697 695 -17.463532 +698 695 -9.547918e-15 +733 695 -21.716953 +734 695 -17.857143 +735 695 -25.970373 +736 695 3.1086245e-15 +737 695 -21.716953 +738 695 17.857143 +696 696 264.3789 +697 696 -9.3258734e-15 +698 696 -107.89795 +733 696 -17.857143 +734 696 -33.047362 +735 696 3.1086245e-15 +736 696 41.803228 +737 696 17.857143 +738 696 -33.047362 +697 697 173.73562 +698 697 5.7731597e-15 +699 697 -17.463532 +700 697 -1.9984014e-15 +735 697 -21.716953 +736 697 -17.857143 +737 697 -25.970373 +738 697 1.3322676e-15 +739 697 -21.716953 +740 697 17.857143 +698 698 264.3789 +699 698 -1.7763568e-15 +700 698 -107.89795 +735 698 -17.857143 +736 698 -33.047362 +737 698 1.110223e-15 +738 698 41.803228 +739 698 17.857143 +740 698 -33.047362 +699 699 173.73562 +700 699 -4.4408921e-16 +701 699 -17.463532 +702 699 2.4424907e-15 +737 699 -21.716953 +738 699 -17.857143 +739 699 -25.970373 +740 699 -1.9984014e-15 +741 699 -21.716953 +742 699 17.857143 +700 700 264.3789 +701 700 2.4424907e-15 +702 700 -107.89795 +737 700 -17.857143 +738 700 -33.047362 +739 700 -1.7763568e-15 +740 700 41.803228 +741 700 17.857143 +742 700 -33.047362 +701 701 173.73562 +702 701 -1.3322676e-15 +703 701 -17.463532 +704 701 3.3306691e-15 +739 701 -21.716953 +740 701 -17.857143 +741 701 -25.970373 +742 701 -1.7763568e-15 +743 701 -21.716953 +744 701 17.857143 +702 702 264.3789 +703 702 3.1086245e-15 +704 702 -107.89795 +739 702 -17.857143 +740 702 -33.047362 +741 702 -1.9984014e-15 +742 702 41.803228 +743 702 17.857143 +744 702 -33.047362 +703 703 173.73562 +704 703 -2.6645353e-15 +705 703 -17.463532 +706 703 -6.6613381e-16 +741 703 -21.716953 +742 703 -17.857143 +743 703 -25.970373 +744 703 -8.8817842e-16 +745 703 -21.716953 +746 703 17.857143 +704 704 264.3789 +705 704 -6.6613381e-16 +706 704 -107.89795 +741 704 -17.857143 +742 704 -33.047362 +743 704 -6.6613381e-16 +744 704 41.803228 +745 704 17.857143 +746 704 -33.047362 +705 705 173.73562 +706 705 -1.3322676e-15 +707 705 -17.463532 +708 705 1.7763568e-15 +743 705 -21.716953 +744 705 -17.857143 +745 705 -25.970373 +746 705 2.220446e-16 +747 705 -21.716953 +748 705 17.857143 +706 706 264.3789 +707 706 1.5543122e-15 +708 706 -107.89795 +743 706 -17.857143 +744 706 -33.047362 +745 706 2.220446e-16 +746 706 41.803228 +747 706 17.857143 +748 706 -33.047362 +707 707 173.73562 +708 707 1.7763568e-15 +709 707 -17.463532 +710 707 -2.8865799e-15 +745 707 -21.716953 +746 707 -17.857143 +747 707 -25.970373 +749 707 -21.716953 +750 707 17.857143 +708 708 264.3789 +709 708 -3.1086245e-15 +710 708 -107.89795 +745 708 -17.857143 +746 708 -33.047362 +748 708 41.803228 +749 708 17.857143 +750 708 -33.047362 +709 709 173.73562 +710 709 4.4408921e-16 +711 709 -17.463532 +712 709 1.9984014e-15 +747 709 -21.716953 +748 709 -17.857143 +749 709 -25.970373 +750 709 4.4408921e-16 +751 709 -21.716953 +752 709 17.857143 +710 710 264.3789 +711 710 1.9984014e-15 +712 710 -107.89795 +747 710 -17.857143 +748 710 -33.047362 +749 710 6.6613381e-16 +750 710 41.803228 +751 710 17.857143 +752 710 -33.047362 +711 711 173.73562 +712 711 8.8817842e-16 +713 711 -17.463532 +714 711 -2.6645353e-15 +749 711 -21.716953 +750 711 -17.857143 +751 711 -25.970373 +753 711 -21.716953 +754 711 17.857143 +712 712 264.3789 +713 712 -2.8865799e-15 +714 712 -107.89795 +749 712 -17.857143 +750 712 -33.047362 +752 712 41.803228 +753 712 17.857143 +754 712 -33.047362 +713 713 173.73562 +714 713 4.4408921e-16 +715 713 -17.463532 +716 713 1.9984014e-15 +751 713 -21.716953 +752 713 -17.857143 +753 713 -25.970373 +755 713 -21.716953 +756 713 17.857143 +714 714 264.3789 +715 714 1.7763568e-15 +716 714 -107.89795 +751 714 -17.857143 +752 714 -33.047362 +754 714 41.803228 +755 714 17.857143 +756 714 -33.047362 +715 715 173.73562 +717 715 -17.463532 +718 715 -1.7763568e-15 +753 715 -21.716953 +754 715 -17.857143 +755 715 -25.970373 +756 715 -2.220446e-16 +757 715 -21.716953 +758 715 17.857143 +716 716 264.3789 +717 716 -1.9984014e-15 +718 716 -107.89795 +753 716 -17.857143 +754 716 -33.047362 +755 716 -2.220446e-16 +756 716 41.803228 +757 716 17.857143 +758 716 -33.047362 +717 717 173.73562 +718 717 -4.4408921e-16 +719 717 -17.463532 +720 717 2.220446e-15 +755 717 -21.716953 +756 717 -17.857143 +757 717 -25.970373 +759 717 -21.716953 +760 717 17.857143 +718 718 264.3789 +719 718 2.220446e-15 +720 718 -107.89795 +755 718 -17.857143 +756 718 -33.047362 +758 718 41.803228 +759 718 17.857143 +760 718 -33.047362 +719 719 86.86781 +720 719 3.9968029e-15 +757 719 -21.716953 +758 719 -17.857143 +759 719 -12.985187 +760 719 -1.3736264 +720 720 132.18945 +757 720 -17.857143 +758 720 -33.047362 +759 720 1.3736264 +760 720 20.901614 +721 721 86.86781 +722 721 1.0658141e-14 +723 721 -17.463532 +724 721 -9.547918e-15 +761 721 -12.985187 +762 721 1.3736264 +763 721 -21.716953 +764 721 17.857143 +722 722 132.18945 +723 722 -9.7699626e-15 +724 722 -107.89795 +761 722 -1.3736264 +762 722 20.901614 +763 722 17.857143 +764 722 -33.047362 +723 723 173.73562 +724 723 1.9539925e-14 +725 723 -17.463532 +726 723 -1.0214052e-14 +761 723 -21.716953 +762 723 -17.857143 +763 723 -25.970373 +764 723 5.1070259e-15 +765 723 -21.716953 +766 723 17.857143 +724 724 264.3789 +725 724 -1.0214052e-14 +726 724 -107.89795 +761 724 -17.857143 +762 724 -33.047362 +763 724 5.1070259e-15 +764 724 41.803228 +765 724 17.857143 +766 724 -33.047362 +725 725 173.73562 +726 725 1.9984014e-14 +727 725 -17.463532 +728 725 -9.547918e-15 +763 725 -21.716953 +764 725 -17.857143 +765 725 -25.970373 +766 725 5.1070259e-15 +767 725 -21.716953 +768 725 17.857143 +726 726 264.3789 +727 726 -9.7699626e-15 +728 726 -107.89795 +763 726 -17.857143 +764 726 -33.047362 +765 726 5.1070259e-15 +766 726 41.803228 +767 726 17.857143 +768 726 -33.047362 +727 727 173.73562 +728 727 1.9539925e-14 +729 727 -17.463532 +730 727 -1.0214052e-14 +765 727 -21.716953 +766 727 -17.857143 +767 727 -25.970373 +768 727 5.1070259e-15 +769 727 -21.716953 +770 727 17.857143 +728 728 264.3789 +729 728 -1.0214052e-14 +730 728 -107.89795 +765 728 -17.857143 +766 728 -33.047362 +767 728 5.1070259e-15 +768 728 41.803228 +769 728 17.857143 +770 728 -33.047362 +729 729 173.73562 +730 729 1.1990409e-14 +731 729 -17.463532 +732 729 -2.4424907e-15 +767 729 -21.716953 +768 729 -17.857143 +769 729 -25.970373 +770 729 5.3290705e-15 +771 729 -21.716953 +772 729 17.857143 +730 730 264.3789 +731 730 -2.4424907e-15 +732 730 -107.89795 +767 730 -17.857143 +768 730 -33.047362 +769 730 5.1070259e-15 +770 730 41.803228 +771 730 17.857143 +772 730 -33.047362 +731 731 173.73562 +732 731 3.9968029e-15 +733 731 -17.463532 +734 731 -8.8817842e-16 +769 731 -21.716953 +770 731 -17.857143 +771 731 -25.970373 +772 731 4.4408921e-15 +773 731 -21.716953 +774 731 17.857143 +732 732 264.3789 +733 732 -8.8817842e-16 +734 732 -107.89795 +769 732 -17.857143 +770 732 -33.047362 +771 732 4.6629367e-15 +772 732 41.803228 +773 732 17.857143 +774 732 -33.047362 +733 733 173.73562 +734 733 4.4408921e-15 +735 733 -17.463532 +736 733 -3.7747583e-15 +771 733 -21.716953 +772 733 -17.857143 +773 733 -25.970373 +774 733 3.1086245e-15 +775 733 -21.716953 +776 733 17.857143 +734 734 264.3789 +735 734 -3.7747583e-15 +736 734 -107.89795 +771 734 -17.857143 +772 734 -33.047362 +773 734 3.3306691e-15 +774 734 41.803228 +775 734 17.857143 +776 734 -33.047362 +735 735 173.73562 +736 735 1.1546319e-14 +737 735 -17.463532 +738 735 -8.2156504e-15 +773 735 -21.716953 +774 735 -17.857143 +775 735 -25.970373 +776 735 2.8865799e-15 +777 735 -21.716953 +778 735 17.857143 +736 736 264.3789 +737 736 -7.9936058e-15 +738 736 -107.89795 +773 736 -17.857143 +774 736 -33.047362 +775 736 2.6645353e-15 +776 736 41.803228 +777 736 17.857143 +778 736 -33.047362 +737 737 173.73562 +738 737 1.3322676e-14 +739 737 -17.463532 +740 737 -4.6629367e-15 +775 737 -21.716953 +776 737 -17.857143 +777 737 -25.970373 +778 737 5.3290705e-15 +779 737 -21.716953 +780 737 17.857143 +738 738 264.3789 +739 738 -4.6629367e-15 +740 738 -107.89795 +775 738 -17.857143 +776 738 -33.047362 +777 738 5.3290705e-15 +778 738 41.803228 +779 738 17.857143 +780 738 -33.047362 +739 739 173.73562 +740 739 4.4408921e-15 +741 739 -17.463532 +742 739 -2.220446e-16 +777 739 -21.716953 +778 739 -17.857143 +779 739 -25.970373 +780 739 4.6629367e-15 +781 739 -21.716953 +782 739 17.857143 +740 740 264.3789 +741 740 -2.220446e-16 +742 740 -107.89795 +777 740 -17.857143 +778 740 -33.047362 +779 740 4.4408921e-15 +780 740 41.803228 +781 740 17.857143 +782 740 -33.047362 +741 741 173.73562 +742 741 -1.3322676e-15 +743 741 -17.463532 +744 741 1.9984014e-15 +779 741 -21.716953 +780 741 -17.857143 +781 741 -25.970373 +782 741 4.4408921e-16 +783 741 -21.716953 +784 741 17.857143 +742 742 264.3789 +743 742 1.7763568e-15 +744 742 -107.89795 +779 742 -17.857143 +780 742 -33.047362 +781 742 4.4408921e-16 +782 742 41.803228 +783 742 17.857143 +784 742 -33.047362 +743 743 173.73562 +744 743 -3.5527137e-15 +745 743 -17.463532 +746 743 1.110223e-15 +781 743 -21.716953 +782 743 -17.857143 +783 743 -25.970373 +784 743 -4.4408921e-16 +785 743 -21.716953 +786 743 17.857143 +744 744 264.3789 +745 744 1.110223e-15 +746 744 -107.89795 +781 744 -17.857143 +782 744 -33.047362 +783 744 -4.4408921e-16 +784 744 41.803228 +785 744 17.857143 +786 744 -33.047362 +745 745 173.73562 +747 745 -17.463532 +748 745 -2.220446e-16 +783 745 -21.716953 +784 745 -17.857143 +785 745 -25.970373 +786 745 -2.220446e-16 +787 745 -21.716953 +788 745 17.857143 +746 746 264.3789 +747 746 -2.220446e-16 +748 746 -107.89795 +783 746 -17.857143 +784 746 -33.047362 +785 746 -2.220446e-16 +786 746 41.803228 +787 746 17.857143 +788 746 -33.047362 +747 747 173.73562 +748 747 1.3322676e-15 +749 747 -17.463532 +750 747 -8.8817842e-16 +785 747 -21.716953 +786 747 -17.857143 +787 747 -25.970373 +788 747 4.4408921e-16 +789 747 -21.716953 +790 747 17.857143 +748 748 264.3789 +749 748 -8.8817842e-16 +750 748 -107.89795 +785 748 -17.857143 +786 748 -33.047362 +787 748 4.4408921e-16 +788 748 41.803228 +789 748 17.857143 +790 748 -33.047362 +749 749 173.73562 +750 749 4.4408921e-16 +751 749 -17.463532 +752 749 8.8817842e-16 +787 749 -21.716953 +788 749 -17.857143 +789 749 -25.970373 +791 749 -21.716953 +792 749 17.857143 +750 750 264.3789 +751 750 8.8817842e-16 +752 750 -107.89795 +787 750 -17.857143 +788 750 -33.047362 +790 750 41.803228 +791 750 17.857143 +792 750 -33.047362 +751 751 173.73562 +752 751 4.4408921e-16 +753 751 -17.463532 +754 751 -1.110223e-15 +789 751 -21.716953 +790 751 -17.857143 +791 751 -25.970373 +792 751 4.4408921e-16 +793 751 -21.716953 +794 751 17.857143 +752 752 264.3789 +753 752 -1.110223e-15 +754 752 -107.89795 +789 752 -17.857143 +790 752 -33.047362 +791 752 4.4408921e-16 +792 752 41.803228 +793 752 17.857143 +794 752 -33.047362 +753 753 173.73562 +754 753 8.8817842e-16 +755 753 -17.463532 +756 753 2.220446e-16 +791 753 -21.716953 +792 753 -17.857143 +793 753 -25.970373 +794 753 -2.220446e-16 +795 753 -21.716953 +796 753 17.857143 +754 754 264.3789 +755 754 2.220446e-16 +756 754 -107.89795 +791 754 -17.857143 +792 754 -33.047362 +793 754 -2.220446e-16 +794 754 41.803228 +795 754 17.857143 +796 754 -33.047362 +755 755 173.73562 +757 755 -17.463532 +758 755 -2.220446e-16 +793 755 -21.716953 +794 755 -17.857143 +795 755 -25.970373 +796 755 2.220446e-16 +797 755 -21.716953 +798 755 17.857143 +756 756 264.3789 +757 756 -2.220446e-16 +758 756 -107.89795 +793 756 -17.857143 +794 756 -33.047362 +795 756 2.220446e-16 +796 756 41.803228 +797 756 17.857143 +798 756 -33.047362 +757 757 173.73562 +759 757 -17.463532 +760 757 4.4408921e-16 +795 757 -21.716953 +796 757 -17.857143 +797 757 -25.970373 +798 757 2.220446e-16 +799 757 -21.716953 +800 757 17.857143 +758 758 264.3789 +759 758 4.4408921e-16 +760 758 -107.89795 +795 758 -17.857143 +796 758 -33.047362 +797 758 2.220446e-16 +798 758 41.803228 +799 758 17.857143 +800 758 -33.047362 +759 759 86.86781 +760 759 4.4408921e-16 +797 759 -21.716953 +798 759 -17.857143 +799 759 -12.985187 +800 759 -1.3736264 +760 760 132.18945 +797 760 -17.857143 +798 760 -33.047362 +799 760 1.3736264 +800 760 20.901614 +761 761 86.86781 +762 761 9.7699626e-15 +763 761 -17.463532 +764 761 -9.7699626e-15 +801 761 -12.985187 +802 761 1.3736264 +803 761 -21.716953 +804 761 17.857143 +762 762 132.18945 +763 762 -9.7699626e-15 +764 762 -107.89795 +801 762 -1.3736264 +802 762 20.901614 +803 762 17.857143 +804 762 -33.047362 +763 763 173.73562 +764 763 1.9984014e-14 +765 763 -17.463532 +766 763 -9.7699626e-15 +801 763 -21.716953 +802 763 -17.857143 +803 763 -25.970373 +804 763 5.3290705e-15 +805 763 -21.716953 +806 763 17.857143 +764 764 264.3789 +765 764 -9.7699626e-15 +766 764 -107.89795 +801 764 -17.857143 +802 764 -33.047362 +803 764 5.3290705e-15 +804 764 41.803228 +805 764 17.857143 +806 764 -33.047362 +765 765 173.73562 +766 765 1.9984014e-14 +767 765 -17.463532 +768 765 -9.7699626e-15 +803 765 -21.716953 +804 765 -17.857143 +805 765 -25.970373 +806 765 5.3290705e-15 +807 765 -21.716953 +808 765 17.857143 +766 766 264.3789 +767 766 -9.7699626e-15 +768 766 -107.89795 +803 766 -17.857143 +804 766 -33.047362 +805 766 5.3290705e-15 +806 766 41.803228 +807 766 17.857143 +808 766 -33.047362 +767 767 173.73562 +768 767 1.9984014e-14 +769 767 -17.463532 +770 767 -9.7699626e-15 +805 767 -21.716953 +806 767 -17.857143 +807 767 -25.970373 +808 767 5.3290705e-15 +809 767 -21.716953 +810 767 17.857143 +768 768 264.3789 +769 768 -9.7699626e-15 +770 768 -107.89795 +805 768 -17.857143 +806 768 -33.047362 +807 768 5.3290705e-15 +808 768 41.803228 +809 768 17.857143 +810 768 -33.047362 +769 769 173.73562 +770 769 1.2878587e-14 +771 769 -17.463532 +772 769 -2.6645353e-15 +807 769 -21.716953 +808 769 -17.857143 +809 769 -25.970373 +810 769 1.5543122e-15 +811 769 -21.716953 +812 769 17.857143 +770 770 264.3789 +771 770 -2.6645353e-15 +772 770 -107.89795 +807 770 -17.857143 +808 770 -33.047362 +809 770 1.5543122e-15 +810 770 41.803228 +811 770 17.857143 +812 770 -33.047362 +771 771 173.73562 +772 771 3.9968029e-15 +773 771 -17.463532 +774 771 -6.6613381e-16 +809 771 -21.716953 +810 771 -17.857143 +811 771 -25.970373 +812 771 -3.5527137e-15 +813 771 -21.716953 +814 771 17.857143 +772 772 264.3789 +773 772 -1.110223e-15 +774 772 -107.89795 +809 772 -17.857143 +810 772 -33.047362 +811 772 -3.7747583e-15 +812 772 41.803228 +813 772 17.857143 +814 772 -33.047362 +773 773 173.73562 +774 773 4.8849813e-15 +775 773 -17.463532 +776 773 -3.7747583e-15 +811 773 -21.716953 +812 773 -17.857143 +813 773 -25.970373 +814 773 -8.8817842e-16 +815 773 -21.716953 +816 773 17.857143 +774 774 264.3789 +775 774 -3.7747583e-15 +776 774 -107.89795 +811 774 -17.857143 +812 774 -33.047362 +813 774 -6.6613381e-16 +814 774 41.803228 +815 774 17.857143 +816 774 -33.047362 +775 775 173.73562 +776 775 1.1546319e-14 +777 775 -17.463532 +778 775 -7.327472e-15 +813 775 -21.716953 +814 775 -17.857143 +815 775 -25.970373 +816 775 2.6645353e-15 +817 775 -21.716953 +818 775 17.857143 +776 776 264.3789 +777 776 -7.1054274e-15 +778 776 -107.89795 +813 776 -17.857143 +814 776 -33.047362 +815 776 2.6645353e-15 +816 776 41.803228 +817 776 17.857143 +818 776 -33.047362 +777 777 173.73562 +778 777 1.6431301e-14 +779 777 -17.463532 +780 777 -2.6645353e-15 +815 777 -21.716953 +816 777 -17.857143 +817 777 -25.970373 +818 777 -3.5527137e-15 +819 777 -21.716953 +820 777 17.857143 +778 778 264.3789 +779 778 -2.6645353e-15 +780 778 -107.89795 +815 778 -17.857143 +816 778 -33.047362 +817 778 -3.3306691e-15 +818 778 41.803228 +819 778 17.857143 +820 778 -33.047362 +779 779 173.73562 +780 779 4.8849813e-15 +781 779 -17.463532 +782 779 -1.7763568e-15 +817 779 -21.716953 +818 779 -17.857143 +819 779 -25.970373 +820 779 -2.220446e-15 +821 779 -21.716953 +822 779 17.857143 +780 780 264.3789 +781 780 -1.7763568e-15 +782 780 -107.89795 +817 780 -17.857143 +818 780 -33.047362 +819 780 -2.220446e-15 +820 780 41.803228 +821 780 17.857143 +822 780 -33.047362 +781 781 173.73562 +782 781 -6.6613381e-15 +783 781 -17.463532 +784 781 1.3322676e-15 +819 781 -21.716953 +820 781 -17.857143 +821 781 -25.970373 +822 781 2.6645353e-15 +823 781 -21.716953 +824 781 17.857143 +782 782 264.3789 +783 782 1.3322676e-15 +784 782 -107.89795 +819 782 -17.857143 +820 782 -33.047362 +821 782 2.6645353e-15 +822 782 41.803228 +823 782 17.857143 +824 782 -33.047362 +783 783 173.73562 +784 783 -2.6645353e-15 +785 783 -17.463532 +786 783 1.3322676e-15 +821 783 -21.716953 +822 783 -17.857143 +823 783 -25.970373 +824 783 -6.6613381e-16 +825 783 -21.716953 +826 783 17.857143 +784 784 264.3789 +785 784 1.3322676e-15 +786 784 -107.89795 +821 784 -17.857143 +822 784 -33.047362 +823 784 -6.6613381e-16 +824 784 41.803228 +825 784 17.857143 +826 784 -33.047362 +785 785 173.73562 +786 785 -4.4408921e-16 +787 785 -17.463532 +788 785 -8.8817842e-16 +823 785 -21.716953 +824 785 -17.857143 +825 785 -25.970373 +827 785 -21.716953 +828 785 17.857143 +786 786 264.3789 +787 786 -8.8817842e-16 +788 786 -107.89795 +823 786 -17.857143 +824 786 -33.047362 +826 786 41.803228 +827 786 17.857143 +828 786 -33.047362 +787 787 173.73562 +788 787 1.7763568e-15 +789 787 -17.463532 +790 787 -8.8817842e-16 +825 787 -21.716953 +826 787 -17.857143 +827 787 -25.970373 +829 787 -21.716953 +830 787 17.857143 +788 788 264.3789 +789 788 -8.8817842e-16 +790 788 -107.89795 +825 788 -17.857143 +826 788 -33.047362 +828 788 41.803228 +829 788 17.857143 +830 788 -33.047362 +789 789 173.73562 +790 789 1.3322676e-15 +791 789 -17.463532 +792 789 -2.220446e-16 +827 789 -21.716953 +828 789 -17.857143 +829 789 -25.970373 +831 789 -21.716953 +832 789 17.857143 +790 790 264.3789 +791 790 -2.220446e-16 +792 790 -107.89795 +827 790 -17.857143 +828 790 -33.047362 +830 790 41.803228 +831 790 17.857143 +832 790 -33.047362 +791 791 173.73562 +792 791 8.8817842e-16 +793 791 -17.463532 +794 791 -8.8817842e-16 +829 791 -21.716953 +830 791 -17.857143 +831 791 -25.970373 +832 791 2.220446e-16 +833 791 -21.716953 +834 791 17.857143 +792 792 264.3789 +793 792 -8.8817842e-16 +794 792 -107.89795 +829 792 -17.857143 +830 792 -33.047362 +831 792 2.220446e-16 +832 792 41.803228 +833 792 17.857143 +834 792 -33.047362 +793 793 173.73562 +794 793 1.3322676e-15 +795 793 -17.463532 +796 793 -8.8817842e-16 +831 793 -21.716953 +832 793 -17.857143 +833 793 -25.970373 +835 793 -21.716953 +836 793 17.857143 +794 794 264.3789 +795 794 -8.8817842e-16 +796 794 -107.89795 +831 794 -17.857143 +832 794 -33.047362 +834 794 41.803228 +835 794 17.857143 +836 794 -33.047362 +795 795 173.73562 +796 795 5.3290705e-15 +797 795 -17.463532 +798 795 2.220446e-15 +833 795 -21.716953 +834 795 -17.857143 +835 795 -25.970373 +836 795 -4.6629367e-15 +837 795 -21.716953 +838 795 17.857143 +796 796 264.3789 +797 796 2.4424907e-15 +798 796 -107.89795 +833 796 -17.857143 +834 796 -33.047362 +835 796 -4.6629367e-15 +836 796 41.803228 +837 796 17.857143 +838 796 -33.047362 +797 797 173.73562 +798 797 8.8817842e-16 +799 797 -17.463532 +800 797 -2.4424907e-15 +835 797 -21.716953 +836 797 -17.857143 +837 797 -25.970373 +838 797 -2.220446e-16 +839 797 -21.716953 +840 797 17.857143 +798 798 264.3789 +799 798 -2.220446e-15 +800 798 -107.89795 +835 798 -17.857143 +836 798 -33.047362 +838 798 41.803228 +839 798 17.857143 +840 798 -33.047362 +799 799 86.86781 +800 799 -4.4408921e-15 +837 799 -21.716953 +838 799 -17.857143 +839 799 -12.985187 +840 799 -1.3736264 +800 800 132.18945 +837 800 -17.857143 +838 800 -33.047362 +839 800 1.3736264 +840 800 20.901614 +801 801 86.86781 +802 801 9.7699626e-15 +803 801 -17.463532 +804 801 -2.6645353e-15 +841 801 -12.985187 +842 801 1.3736264 +843 801 -21.716953 +844 801 17.857143 +802 802 132.18945 +803 802 -2.6645353e-15 +804 802 -107.89795 +841 802 -1.3736264 +842 802 20.901614 +843 802 17.857143 +844 802 -33.047362 +803 803 173.73562 +804 803 9.3258734e-15 +805 803 -17.463532 +806 803 -5.9952043e-15 +841 803 -21.716953 +842 803 -17.857143 +843 803 -25.970373 +844 803 -6.6613381e-16 +845 803 -21.716953 +846 803 17.857143 +804 804 264.3789 +805 804 -6.2172489e-15 +806 804 -107.89795 +841 804 -17.857143 +842 804 -33.047362 +843 804 -4.4408921e-16 +844 804 41.803228 +845 804 17.857143 +846 804 -33.047362 +805 805 173.73562 +806 805 8.8817842e-15 +807 805 -17.463532 +808 805 -9.9920072e-15 +843 805 -21.716953 +844 805 -17.857143 +845 805 -25.970373 +846 805 6.6613381e-15 +847 805 -21.716953 +848 805 17.857143 +806 806 264.3789 +807 806 -9.9920072e-15 +808 806 -107.89795 +843 806 -17.857143 +844 806 -33.047362 +845 806 6.8833828e-15 +846 806 41.803228 +847 806 17.857143 +848 806 -33.047362 +807 807 173.73562 +808 807 1.9539925e-14 +809 807 -17.463532 +810 807 -9.9920072e-15 +845 807 -21.716953 +846 807 -17.857143 +847 807 -25.970373 +848 807 5.3290705e-15 +849 807 -21.716953 +850 807 17.857143 +808 808 264.3789 +809 808 -9.9920072e-15 +810 808 -107.89795 +845 808 -17.857143 +846 808 -33.047362 +847 808 5.3290705e-15 +848 808 41.803228 +849 808 17.857143 +850 808 -33.047362 +809 809 173.73562 +810 809 1.1990409e-14 +811 809 -17.463532 +812 809 -2.6645353e-15 +847 809 -21.716953 +848 809 -17.857143 +849 809 -25.970373 +850 809 5.1070259e-15 +851 809 -21.716953 +852 809 17.857143 +810 810 264.3789 +811 810 -2.6645353e-15 +812 810 -107.89795 +847 810 -17.857143 +848 810 -33.047362 +849 810 5.1070259e-15 +850 810 41.803228 +851 810 17.857143 +852 810 -33.047362 +811 811 173.73562 +812 811 3.1086245e-15 +813 811 -17.463532 +814 811 -2.220446e-16 +849 811 -21.716953 +850 811 -17.857143 +851 811 -25.970373 +852 811 4.8849813e-15 +853 811 -21.716953 +854 811 17.857143 +812 812 264.3789 +813 812 -2.220446e-16 +814 812 -107.89795 +849 812 -17.857143 +850 812 -33.047362 +851 812 4.6629367e-15 +852 812 41.803228 +853 812 17.857143 +854 812 -33.047362 +813 813 173.73562 +814 813 3.9968029e-15 +815 813 -17.463532 +816 813 -3.5527137e-15 +851 813 -21.716953 +852 813 -17.857143 +853 813 -25.970373 +854 813 2.8865799e-15 +855 813 -21.716953 +856 813 17.857143 +814 814 264.3789 +815 814 -3.7747583e-15 +816 814 -107.89795 +851 814 -17.857143 +852 814 -33.047362 +853 814 3.1086245e-15 +854 814 41.803228 +855 814 17.857143 +856 814 -33.047362 +815 815 173.73562 +816 815 1.0658141e-14 +817 815 -17.463532 +818 815 -7.327472e-15 +853 815 -21.716953 +854 815 -17.857143 +855 815 -25.970373 +856 815 2.6645353e-15 +857 815 -21.716953 +858 815 17.857143 +816 816 264.3789 +817 816 -7.1054274e-15 +818 816 -107.89795 +853 816 -17.857143 +854 816 -33.047362 +855 816 2.6645353e-15 +856 816 41.803228 +857 816 17.857143 +858 816 -33.047362 +817 817 173.73562 +818 817 2.3980817e-14 +819 817 -17.463532 +820 817 6.6613381e-16 +855 817 -21.716953 +856 817 -17.857143 +857 817 -25.970373 +858 817 -1.110223e-15 +859 817 -21.716953 +860 817 17.857143 +818 818 264.3789 +819 818 4.4408921e-16 +820 818 -107.89795 +855 818 -17.857143 +856 818 -33.047362 +857 818 -1.110223e-15 +858 818 41.803228 +859 818 17.857143 +860 818 -33.047362 +819 819 173.73562 +820 819 7.9936058e-15 +821 819 -17.463532 +822 819 -3.3306691e-15 +857 819 -21.716953 +858 819 -17.857143 +859 819 -25.970373 +860 819 1.3322676e-15 +861 819 -21.716953 +862 819 17.857143 +820 820 264.3789 +821 820 -3.1086245e-15 +822 820 -107.89795 +857 820 -17.857143 +858 820 -33.047362 +859 820 1.3322676e-15 +860 820 41.803228 +861 820 17.857143 +862 820 -33.047362 +821 821 173.73562 +822 821 -9.7699626e-15 +823 821 -17.463532 +824 821 1.110223e-15 +859 821 -21.716953 +860 821 -17.857143 +861 821 -25.970373 +862 821 3.9968029e-15 +863 821 -21.716953 +864 821 17.857143 +822 822 264.3789 +823 822 1.110223e-15 +824 822 -107.89795 +859 822 -17.857143 +860 822 -33.047362 +861 822 4.2188475e-15 +862 822 41.803228 +863 822 17.857143 +864 822 -33.047362 +823 823 173.73562 +824 823 -2.6645353e-15 +825 823 -17.463532 +826 823 1.3322676e-15 +861 823 -21.716953 +862 823 -17.857143 +863 823 -25.970373 +864 823 -6.6613381e-16 +865 823 -21.716953 +866 823 17.857143 +824 824 264.3789 +825 824 1.3322676e-15 +826 824 -107.89795 +861 824 -17.857143 +862 824 -33.047362 +863 824 -6.6613381e-16 +864 824 41.803228 +865 824 17.857143 +866 824 -33.047362 +825 825 173.73562 +826 825 -4.4408921e-16 +827 825 -17.463532 +828 825 -8.8817842e-16 +863 825 -21.716953 +864 825 -17.857143 +865 825 -25.970373 +866 825 -2.220446e-16 +867 825 -21.716953 +868 825 17.857143 +826 826 264.3789 +827 826 -8.8817842e-16 +828 826 -107.89795 +863 826 -17.857143 +864 826 -33.047362 +865 826 -2.220446e-16 +866 826 41.803228 +867 826 17.857143 +868 826 -33.047362 +827 827 173.73562 +828 827 1.7763568e-15 +829 827 -17.463532 +830 827 -8.8817842e-16 +865 827 -21.716953 +866 827 -17.857143 +867 827 -25.970373 +868 827 2.220446e-16 +869 827 -21.716953 +870 827 17.857143 +828 828 264.3789 +829 828 -8.8817842e-16 +830 828 -107.89795 +865 828 -17.857143 +866 828 -33.047362 +867 828 2.220446e-16 +868 828 41.803228 +869 828 17.857143 +870 828 -33.047362 +829 829 173.73562 +830 829 8.8817842e-16 +831 829 -17.463532 +867 829 -21.716953 +868 829 -17.857143 +869 829 -25.970373 +871 829 -21.716953 +872 829 17.857143 +830 830 264.3789 +832 830 -107.89795 +867 830 -17.857143 +868 830 -33.047362 +870 830 41.803228 +871 830 17.857143 +872 830 -33.047362 +831 831 173.73562 +832 831 4.4408921e-16 +833 831 -17.463532 +834 831 -6.6613381e-16 +869 831 -21.716953 +870 831 -17.857143 +871 831 -25.970373 +872 831 2.220446e-16 +873 831 -21.716953 +874 831 17.857143 +832 832 264.3789 +833 832 -6.6613381e-16 +834 832 -107.89795 +869 832 -17.857143 +870 832 -33.047362 +871 832 2.220446e-16 +872 832 41.803228 +873 832 17.857143 +874 832 -33.047362 +833 833 173.73562 +834 833 5.7731597e-15 +835 833 -17.463532 +836 833 1.9984014e-15 +871 833 -21.716953 +872 833 -17.857143 +873 833 -25.970373 +874 833 -4.4408921e-15 +875 833 -21.716953 +876 833 17.857143 +834 834 264.3789 +835 834 1.9984014e-15 +836 834 -107.89795 +871 834 -17.857143 +872 834 -33.047362 +873 834 -4.4408921e-15 +874 834 41.803228 +875 834 17.857143 +876 834 -33.047362 +835 835 173.73562 +836 835 1.1546319e-14 +837 835 -17.463532 +838 835 3.1086245e-15 +873 835 -21.716953 +874 835 -17.857143 +875 835 -25.970373 +876 835 -6.2172489e-15 +877 835 -21.716953 +878 835 17.857143 +836 836 264.3789 +837 836 2.8865799e-15 +838 836 -107.89795 +873 836 -17.857143 +874 836 -33.047362 +875 836 -6.4392935e-15 +876 836 41.803228 +877 836 17.857143 +878 836 -33.047362 +837 837 173.73562 +838 837 3.5527137e-15 +839 837 -17.463532 +840 837 -2.220446e-15 +875 837 -21.716953 +876 837 -17.857143 +877 837 -25.970373 +878 837 -3.3306691e-15 +879 837 -21.716953 +880 837 17.857143 +838 838 264.3789 +839 838 -2.220446e-15 +840 838 -107.89795 +875 838 -17.857143 +876 838 -33.047362 +877 838 -3.1086245e-15 +878 838 41.803228 +879 838 17.857143 +880 838 -33.047362 +839 839 86.86781 +840 839 -2.6645353e-15 +877 839 -21.716953 +878 839 -17.857143 +879 839 -12.985187 +880 839 -1.3736264 +840 840 132.18945 +877 840 -17.857143 +878 840 -33.047362 +879 840 1.3736264 +880 840 20.901614 +841 841 86.86781 +842 841 2.0872193e-14 +843 841 -17.463532 +844 841 -4.2188475e-15 +881 841 -12.985187 +882 841 1.3736264 +883 841 -21.716953 +884 841 17.857143 +842 842 132.18945 +843 842 -4.2188475e-15 +844 842 -107.89795 +881 842 -1.3736264 +882 842 20.901614 +883 842 17.857143 +884 842 -33.047362 +843 843 173.73562 +844 843 2.4868996e-14 +845 843 -17.463532 +846 843 -3.7747583e-15 +881 843 -21.716953 +882 843 -17.857143 +883 843 -25.970373 +884 843 -3.7747583e-15 +885 843 -21.716953 +886 843 17.857143 +844 844 264.3789 +845 844 -3.7747583e-15 +846 844 -107.89795 +881 844 -17.857143 +882 844 -33.047362 +883 844 -3.7747583e-15 +884 844 41.803228 +885 844 17.857143 +886 844 -33.047362 +845 845 173.73562 +846 845 4.4408921e-16 +847 845 -17.463532 +848 845 -8.2156504e-15 +883 845 -21.716953 +884 845 -17.857143 +885 845 -25.970373 +886 845 5.1070259e-15 +887 845 -21.716953 +888 845 17.857143 +846 846 264.3789 +847 846 -8.2156504e-15 +848 846 -107.89795 +883 846 -17.857143 +884 846 -33.047362 +885 846 5.3290705e-15 +886 846 41.803228 +887 846 17.857143 +888 846 -33.047362 +847 847 173.73562 +848 847 6.6613381e-15 +849 847 -17.463532 +850 847 -9.9920072e-15 +885 847 -21.716953 +886 847 -17.857143 +887 847 -25.970373 +888 847 1.0436096e-14 +889 847 -21.716953 +890 847 17.857143 +848 848 264.3789 +849 848 -9.9920072e-15 +850 848 -107.89795 +885 848 -17.857143 +886 848 -33.047362 +887 848 1.0436096e-14 +888 848 41.803228 +889 848 17.857143 +890 848 -33.047362 +849 849 173.73562 +850 849 1.1990409e-14 +851 849 -17.463532 +852 849 -2.6645353e-15 +887 849 -21.716953 +888 849 -17.857143 +889 849 -25.970373 +890 849 1.5543122e-15 +891 849 -21.716953 +892 849 17.857143 +850 850 264.3789 +851 850 -2.6645353e-15 +852 850 -107.89795 +887 850 -17.857143 +888 850 -33.047362 +889 850 1.5543122e-15 +890 850 41.803228 +891 850 17.857143 +892 850 -33.047362 +851 851 173.73562 +852 851 3.9968029e-15 +853 851 -17.463532 +854 851 -8.8817842e-16 +889 851 -21.716953 +890 851 -17.857143 +891 851 -25.970373 +892 851 -3.1086245e-15 +893 851 -21.716953 +894 851 17.857143 +852 852 264.3789 +853 852 -1.110223e-15 +854 852 -107.89795 +889 852 -17.857143 +890 852 -33.047362 +891 852 -3.3306691e-15 +892 852 41.803228 +893 852 17.857143 +894 852 -33.047362 +853 853 173.73562 +854 853 4.8849813e-15 +855 853 -17.463532 +856 853 -3.7747583e-15 +891 853 -21.716953 +892 853 -17.857143 +893 853 -25.970373 +894 853 -1.110223e-15 +895 853 -21.716953 +896 853 17.857143 +854 854 264.3789 +855 854 -3.7747583e-15 +856 854 -107.89795 +891 854 -17.857143 +892 854 -33.047362 +893 854 -8.8817842e-16 +894 854 41.803228 +895 854 17.857143 +896 854 -33.047362 +855 855 173.73562 +856 855 1.110223e-14 +857 855 -17.463532 +858 855 -7.327472e-15 +893 855 -21.716953 +894 855 -17.857143 +895 855 -25.970373 +896 855 2.6645353e-15 +897 855 -21.716953 +898 855 17.857143 +856 856 264.3789 +857 856 -7.1054274e-15 +858 856 -107.89795 +893 856 -17.857143 +894 856 -33.047362 +895 856 2.6645353e-15 +896 856 41.803228 +897 856 17.857143 +898 856 -33.047362 +857 857 173.73562 +858 857 2.6201263e-14 +859 857 -17.463532 +860 857 2.220446e-15 +895 857 -21.716953 +896 857 -17.857143 +897 857 -25.970373 +898 857 -6.6613381e-15 +899 857 -21.716953 +900 857 17.857143 +858 858 264.3789 +859 858 2.220446e-15 +860 858 -107.89795 +895 858 -17.857143 +896 858 -33.047362 +897 858 -6.4392935e-15 +898 858 41.803228 +899 858 17.857143 +900 858 -33.047362 +859 859 173.73562 +860 859 6.6613381e-15 +861 859 -17.463532 +862 859 -4.8849813e-15 +897 859 -21.716953 +898 859 -17.857143 +899 859 -25.970373 +900 859 -1.9984014e-15 +901 859 -21.716953 +902 859 17.857143 +860 860 264.3789 +861 860 -5.1070259e-15 +862 860 -107.89795 +897 860 -17.857143 +898 860 -33.047362 +899 860 -2.4424907e-15 +900 860 41.803228 +901 860 17.857143 +902 860 -33.047362 +861 861 173.73562 +862 861 -7.5495166e-15 +863 861 -17.463532 +864 861 7.5495166e-15 +899 861 -21.716953 +900 861 -17.857143 +901 861 -25.970373 +902 861 -3.1086245e-15 +903 861 -21.716953 +904 861 17.857143 +862 862 264.3789 +863 862 7.5495166e-15 +864 862 -107.89795 +899 862 -17.857143 +900 862 -33.047362 +901 862 -2.8865799e-15 +902 862 41.803228 +903 862 17.857143 +904 862 -33.047362 +863 863 173.73562 +864 863 -6.6613381e-15 +865 863 -17.463532 +866 863 -6.6613381e-16 +901 863 -21.716953 +902 863 -17.857143 +903 863 -25.970373 +904 863 -3.1086245e-15 +905 863 -21.716953 +906 863 17.857143 +864 864 264.3789 +865 864 -6.6613381e-16 +866 864 -107.89795 +901 864 -17.857143 +902 864 -33.047362 +903 864 -3.3306691e-15 +904 864 41.803228 +905 864 17.857143 +906 864 -33.047362 +865 865 173.73562 +866 865 -1.0214052e-14 +867 865 -17.463532 +868 865 -8.8817842e-16 +903 865 -21.716953 +904 865 -17.857143 +905 865 -25.970373 +906 865 6.8833828e-15 +907 865 -21.716953 +908 865 17.857143 +866 866 264.3789 +867 866 -8.8817842e-16 +868 866 -107.89795 +903 866 -17.857143 +904 866 -33.047362 +905 866 7.1054274e-15 +906 866 41.803228 +907 866 17.857143 +908 866 -33.047362 +867 867 173.73562 +868 867 1.7763568e-15 +869 867 -17.463532 +870 867 -8.8817842e-16 +905 867 -21.716953 +906 867 -17.857143 +907 867 -25.970373 +908 867 2.220446e-16 +909 867 -21.716953 +910 867 17.857143 +868 868 264.3789 +869 868 -8.8817842e-16 +870 868 -107.89795 +905 868 -17.857143 +906 868 -33.047362 +907 868 2.220446e-16 +908 868 41.803228 +909 868 17.857143 +910 868 -33.047362 +869 869 173.73562 +870 869 8.8817842e-16 +871 869 -17.463532 +907 869 -21.716953 +908 869 -17.857143 +909 869 -25.970373 +911 869 -21.716953 +912 869 17.857143 +870 870 264.3789 +872 870 -107.89795 +907 870 -17.857143 +908 870 -33.047362 +910 870 41.803228 +911 870 17.857143 +912 870 -33.047362 +871 871 173.73562 +872 871 8.8817842e-16 +873 871 -17.463532 +874 871 -8.8817842e-16 +909 871 -21.716953 +910 871 -17.857143 +911 871 -25.970373 +912 871 2.220446e-16 +913 871 -21.716953 +914 871 17.857143 +872 872 264.3789 +873 872 -8.8817842e-16 +874 872 -107.89795 +909 872 -17.857143 +910 872 -33.047362 +911 872 2.220446e-16 +912 872 41.803228 +913 872 17.857143 +914 872 -33.047362 +873 873 173.73562 +874 873 1.2434498e-14 +875 873 -17.463532 +876 873 4.6629367e-15 +911 873 -21.716953 +912 873 -17.857143 +913 873 -25.970373 +914 873 -5.9952043e-15 +915 873 -21.716953 +916 873 17.857143 +874 874 264.3789 +875 874 4.6629367e-15 +876 874 -107.89795 +911 874 -17.857143 +912 874 -33.047362 +913 874 -6.2172489e-15 +914 874 41.803228 +915 874 17.857143 +916 874 -33.047362 +875 875 173.73562 +876 875 1.7319479e-14 +877 875 -17.463532 +878 875 3.3306691e-15 +913 875 -21.716953 +914 875 -17.857143 +915 875 -25.970373 +916 875 -1.1324275e-14 +917 875 -21.716953 +918 875 17.857143 +876 876 264.3789 +877 876 3.3306691e-15 +878 876 -107.89795 +913 876 -17.857143 +914 876 -33.047362 +915 876 -1.1324275e-14 +916 876 41.803228 +917 876 17.857143 +918 876 -33.047362 +877 877 173.73562 +878 877 6.2172489e-15 +879 877 -17.463532 +915 877 -21.716953 +916 877 -17.857143 +917 877 -25.970373 +918 877 -3.1086245e-15 +919 877 -21.716953 +920 877 17.857143 +878 878 264.3789 +880 878 -107.89795 +915 878 -17.857143 +916 878 -33.047362 +917 878 -3.1086245e-15 +918 878 41.803228 +919 878 17.857143 +920 878 -33.047362 +879 879 86.86781 +880 879 -4.4408921e-16 +917 879 -21.716953 +918 879 -17.857143 +919 879 -12.985187 +920 879 -1.3736264 +880 880 132.18945 +917 880 -17.857143 +918 880 -33.047362 +919 880 1.3736264 +920 880 20.901614 +881 881 86.86781 +882 881 2.1316282e-14 +883 881 -17.463532 +884 881 -1.1768364e-14 +921 881 -12.985187 +922 881 1.3736264 +923 881 -21.716953 +924 881 17.857143 +882 882 132.18945 +883 882 -1.1768364e-14 +884 882 -107.89795 +921 882 -1.3736264 +922 882 20.901614 +923 882 17.857143 +924 882 -33.047362 +883 883 173.73562 +884 883 5.062617e-14 +885 883 -17.463532 +886 883 -7.9936058e-15 +921 883 -21.716953 +922 883 -17.857143 +923 883 -25.970373 +924 883 -1.7763568e-15 +925 883 -21.716953 +926 883 17.857143 +884 884 264.3789 +885 884 -7.9936058e-15 +886 884 -107.89795 +921 884 -17.857143 +922 884 -33.047362 +923 884 -1.7763568e-15 +924 884 41.803228 +925 884 17.857143 +926 884 -33.047362 +885 885 173.73562 +886 885 2.4868996e-14 +887 885 -17.463532 +888 885 -1.6431301e-14 +923 885 -21.716953 +924 885 -17.857143 +925 885 -25.970373 +926 885 7.327472e-15 +927 885 -21.716953 +928 885 17.857143 +886 886 264.3789 +887 886 -1.6653345e-14 +888 886 -107.89795 +923 886 -17.857143 +924 886 -33.047362 +925 886 7.327472e-15 +926 886 41.803228 +927 886 17.857143 +928 886 -33.047362 +887 887 173.73562 +888 887 4.4408921e-15 +889 887 -17.463532 +890 887 -9.9920072e-15 +925 887 -21.716953 +926 887 -17.857143 +927 887 -25.970373 +928 887 1.4210855e-14 +929 887 -21.716953 +930 887 17.857143 +888 888 264.3789 +889 888 -9.9920072e-15 +890 888 -107.89795 +925 888 -17.857143 +926 888 -33.047362 +927 888 1.4210855e-14 +928 888 41.803228 +929 888 17.857143 +930 888 -33.047362 +889 889 173.73562 +890 889 1.1546319e-14 +891 889 -17.463532 +892 889 -2.4424907e-15 +927 889 -21.716953 +928 889 -17.857143 +929 889 -25.970373 +930 889 5.1070259e-15 +931 889 -21.716953 +932 889 17.857143 +890 890 264.3789 +891 890 -2.4424907e-15 +892 890 -107.89795 +927 890 -17.857143 +928 890 -33.047362 +929 890 5.1070259e-15 +930 890 41.803228 +931 890 17.857143 +932 890 -33.047362 +891 891 173.73562 +892 891 3.1086245e-15 +893 891 -17.463532 +894 891 -6.6613381e-16 +929 891 -21.716953 +930 891 -17.857143 +931 891 -25.970373 +932 891 4.8849813e-15 +933 891 -21.716953 +934 891 17.857143 +892 892 264.3789 +893 892 -4.4408921e-16 +894 892 -107.89795 +929 892 -17.857143 +930 892 -33.047362 +931 892 4.6629367e-15 +932 892 41.803228 +933 892 17.857143 +934 892 -33.047362 +893 893 173.73562 +894 893 4.8849813e-15 +895 893 -17.463532 +896 893 -3.7747583e-15 +931 893 -21.716953 +932 893 -17.857143 +933 893 -25.970373 +934 893 2.8865799e-15 +935 893 -21.716953 +936 893 17.857143 +894 894 264.3789 +895 894 -3.7747583e-15 +896 894 -107.89795 +931 894 -17.857143 +932 894 -33.047362 +933 894 3.1086245e-15 +934 894 41.803228 +935 894 17.857143 +936 894 -33.047362 +895 895 173.73562 +896 895 1.110223e-14 +897 895 -17.463532 +898 895 -7.327472e-15 +933 895 -21.716953 +934 895 -17.857143 +935 895 -25.970373 +936 895 2.6645353e-15 +937 895 -21.716953 +938 895 17.857143 +896 896 264.3789 +897 896 -7.1054274e-15 +898 896 -107.89795 +933 896 -17.857143 +934 896 -33.047362 +935 896 2.6645353e-15 +936 896 41.803228 +937 896 17.857143 +938 896 -33.047362 +897 897 173.73562 +898 897 2.9753977e-14 +899 897 -17.463532 +900 897 3.5527137e-15 +935 897 -21.716953 +936 897 -17.857143 +937 897 -25.970373 +938 897 -4.4408921e-15 +939 897 -21.716953 +940 897 17.857143 +898 898 264.3789 +899 898 3.7747583e-15 +900 898 -107.89795 +935 898 -17.857143 +936 898 -33.047362 +937 898 -4.4408921e-15 +938 898 41.803228 +939 898 17.857143 +940 898 -33.047362 +899 899 173.73562 +900 899 7.1054274e-15 +901 899 -17.463532 +902 899 -6.4392935e-15 +937 899 -21.716953 +938 899 -17.857143 +939 899 -25.970373 +940 899 1.110223e-15 +941 899 -21.716953 +942 899 17.857143 +900 900 264.3789 +901 900 -6.4392935e-15 +902 900 -107.89795 +937 900 -17.857143 +938 900 -33.047362 +939 900 1.3322676e-15 +940 900 41.803228 +941 900 17.857143 +942 900 -33.047362 +901 901 173.73562 +902 901 3.5527137e-15 +903 901 -17.463532 +904 901 7.5495166e-15 +939 901 -21.716953 +940 901 -17.857143 +941 901 -25.970373 +942 901 4.4408921e-16 +943 901 -21.716953 +944 901 17.857143 +902 902 264.3789 +903 902 7.5495166e-15 +904 902 -107.89795 +939 902 -17.857143 +940 902 -33.047362 +941 902 4.4408921e-16 +942 902 41.803228 +943 902 17.857143 +944 902 -33.047362 +903 903 173.73562 +904 903 3.5527137e-15 +905 903 -17.463532 +906 903 -6.4392935e-15 +941 903 -21.716953 +942 903 -17.857143 +943 903 -25.970373 +945 903 -21.716953 +946 903 17.857143 +904 904 264.3789 +905 904 -6.4392935e-15 +906 904 -107.89795 +941 904 -17.857143 +942 904 -33.047362 +943 904 -2.220446e-16 +944 904 41.803228 +945 904 17.857143 +946 904 -33.047362 +905 905 173.73562 +906 905 -1.3766766e-14 +907 905 -17.463532 +908 905 -8.8817842e-16 +943 905 -21.716953 +944 905 -17.857143 +945 905 -25.970373 +946 905 7.5495166e-15 +947 905 -21.716953 +948 905 17.857143 +906 906 264.3789 +907 906 -8.8817842e-16 +908 906 -107.89795 +943 906 -17.857143 +944 906 -33.047362 +945 906 7.5495166e-15 +946 906 41.803228 +947 906 17.857143 +948 906 -33.047362 +907 907 173.73562 +908 907 1.7763568e-15 +909 907 -17.463532 +910 907 -8.8817842e-16 +945 907 -21.716953 +946 907 -17.857143 +947 907 -25.970373 +948 907 2.220446e-16 +949 907 -21.716953 +950 907 17.857143 +908 908 264.3789 +909 908 -8.8817842e-16 +910 908 -107.89795 +945 908 -17.857143 +946 908 -33.047362 +947 908 2.220446e-16 +948 908 41.803228 +949 908 17.857143 +950 908 -33.047362 +909 909 173.73562 +910 909 8.8817842e-16 +911 909 -17.463532 +947 909 -21.716953 +948 909 -17.857143 +949 909 -25.970373 +951 909 -21.716953 +952 909 17.857143 +910 910 264.3789 +912 910 -107.89795 +947 910 -17.857143 +948 910 -33.047362 +950 910 41.803228 +951 910 17.857143 +952 910 -33.047362 +911 911 173.73562 +912 911 8.8817842e-16 +913 911 -17.463532 +914 911 -8.8817842e-16 +949 911 -21.716953 +950 911 -17.857143 +951 911 -25.970373 +952 911 2.220446e-16 +953 911 -21.716953 +954 911 17.857143 +912 912 264.3789 +913 912 -8.8817842e-16 +914 912 -107.89795 +949 912 -17.857143 +950 912 -33.047362 +951 912 2.220446e-16 +952 912 41.803228 +953 912 17.857143 +954 912 -33.047362 +913 913 173.73562 +914 913 7.5495166e-15 +915 913 -17.463532 +916 913 2.4424907e-15 +951 913 -21.716953 +952 913 -17.857143 +953 913 -25.970373 +954 913 2.220446e-16 +955 913 -21.716953 +956 913 17.857143 +914 914 264.3789 +915 914 2.4424907e-15 +916 914 -107.89795 +951 914 -17.857143 +952 914 -33.047362 +953 914 2.220446e-16 +954 914 41.803228 +955 914 17.857143 +956 914 -33.047362 +915 915 173.73562 +916 915 2.1316282e-14 +917 915 -17.463532 +918 915 6.8833828e-15 +953 915 -21.716953 +954 915 -17.857143 +955 915 -25.970373 +956 915 -9.547918e-15 +957 915 -21.716953 +958 915 17.857143 +916 916 264.3789 +917 916 7.1054274e-15 +918 916 -107.89795 +953 916 -17.857143 +954 916 -33.047362 +955 916 -9.547918e-15 +956 916 41.803228 +957 916 17.857143 +958 916 -33.047362 +917 917 173.73562 +918 917 7.1054274e-15 +919 917 -17.463532 +920 917 -3.7747583e-15 +955 917 -21.716953 +956 917 -17.857143 +957 917 -25.970373 +958 917 -3.5527137e-15 +959 917 -21.716953 +960 917 17.857143 +918 918 264.3789 +919 918 -3.7747583e-15 +920 918 -107.89795 +955 918 -17.857143 +956 918 -33.047362 +957 918 -3.3306691e-15 +958 918 41.803228 +959 918 17.857143 +960 918 -33.047362 +919 919 86.86781 +920 919 -7.5495166e-15 +957 919 -21.716953 +958 919 -17.857143 +959 919 -12.985187 +960 919 -1.3736264 +920 920 132.18945 +957 920 -17.857143 +958 920 -33.047362 +959 920 1.3736264 +960 920 20.901614 +921 921 43.433905 +922 921 17.857143 +923 921 -8.731766 +924 921 1.3736264 +922 922 66.094725 +923 922 -1.3736264 +924 922 -53.948977 +923 923 86.86781 +924 923 2.3980817e-14 +925 923 -8.731766 +926 923 1.3736264 +924 924 132.18945 +925 924 -1.3736264 +926 924 -53.948977 +925 925 86.86781 +926 925 2.3092639e-14 +927 925 -8.731766 +928 925 1.3736264 +926 926 132.18945 +927 926 -1.3736264 +928 926 -53.948977 +927 927 86.86781 +928 927 8.437695e-15 +929 927 -8.731766 +930 927 1.3736264 +928 928 132.18945 +929 928 -1.3736264 +930 928 -53.948977 +929 929 86.86781 +930 929 9.7699626e-15 +931 929 -8.731766 +932 929 1.3736264 +930 930 132.18945 +931 930 -1.3736264 +932 930 -53.948977 +931 931 86.86781 +932 931 9.7699626e-15 +933 931 -8.731766 +934 931 1.3736264 +932 932 132.18945 +933 932 -1.3736264 +934 932 -53.948977 +933 933 86.86781 +934 933 6.6613381e-15 +935 933 -8.731766 +936 933 1.3736264 +934 934 132.18945 +935 934 -1.3736264 +936 934 -53.948977 +935 935 86.86781 +936 935 5.3290705e-15 +937 935 -8.731766 +938 935 1.3736264 +936 936 132.18945 +937 936 -1.3736264 +938 936 -53.948977 +937 937 86.86781 +938 937 1.9095836e-14 +939 937 -8.731766 +940 937 1.3736264 +938 938 132.18945 +939 938 -1.3736264 +940 938 -53.948977 +939 939 86.86781 +940 939 1.1546319e-14 +941 939 -8.731766 +942 939 1.3736264 +940 940 132.18945 +941 940 -1.3736264 +942 940 -53.948977 +941 941 86.86781 +942 941 9.7699626e-15 +943 941 -8.731766 +944 941 1.3736264 +942 942 132.18945 +943 942 -1.3736264 +944 942 -53.948977 +943 943 86.86781 +944 943 9.7699626e-15 +945 943 -8.731766 +946 943 1.3736264 +944 944 132.18945 +945 944 -1.3736264 +946 944 -53.948977 +945 945 86.86781 +946 945 -3.9968029e-15 +947 945 -8.731766 +948 945 1.3736264 +946 946 132.18945 +947 946 -1.3736264 +948 946 -53.948977 +947 947 86.86781 +948 947 8.8817842e-16 +949 947 -8.731766 +950 947 1.3736264 +948 948 132.18945 +949 948 -1.3736264 +950 948 -53.948977 +949 949 86.86781 +950 949 4.4408921e-16 +951 949 -8.731766 +952 949 1.3736264 +950 950 132.18945 +951 950 -1.3736264 +952 950 -53.948977 +951 951 86.86781 +952 951 4.4408921e-16 +953 951 -8.731766 +954 951 1.3736264 +952 952 132.18945 +953 952 -1.3736264 +954 952 -53.948977 +953 953 86.86781 +954 953 4.4408921e-16 +955 953 -8.731766 +956 953 1.3736264 +954 954 132.18945 +955 954 -1.3736264 +956 954 -53.948977 +955 955 86.86781 +956 955 9.7699626e-15 +957 955 -8.731766 +958 955 1.3736264 +956 956 132.18945 +957 956 -1.3736264 +958 956 -53.948977 +957 957 86.86781 +958 957 3.1086245e-15 +959 957 -8.731766 +960 957 1.3736264 +958 958 132.18945 +959 958 -1.3736264 +960 958 -53.948977 +959 959 43.433905 +960 959 -17.857143 +960 960 66.094725 diff --git a/TP1/05_CG/util.c b/TP1/05_CG/util.c new file mode 100644 index 0000000..df22bbc --- /dev/null +++ b/TP1/05_CG/util.c @@ -0,0 +1,114 @@ +#include +#include +#include +#include +#include + +#include "util.h" + +void multAv(double x[], double *A, double y[], int m, int n){ + + for(int i = 0; i < m; i++){ + x[i] = 0.0; + for(int j = 0; j < n; j++){ + x[i] += A[i*n + j] * y[j]; + } + } + return; +} + +void copy_v(double x[], double y[], int n){ + + for(int i = 0; i < n; i++){ + x[i] = y[i]; + } + + return; +} + +double dot(double x[], double y[], int n){ + double res = 0.0; + + for(int i = 0; i < n; i++){ + res += x[i]*y[i]; + } + + return res; +} + +void axpy(double a, double x[], double y[], int n){ + + for(int i = 0; i < n; i++){ + x[i] = x[i] + a*y[i]; + } + + return; +} + +void xpay(double a, double x[], double y[], int n){ + + for(int i = 0; i < n; i++){ + y[i] = x[i] + a*y[i]; + } + + return; +} + +int read_A(FILE *f, double *A, int M, int N, int nz){ + int i, j, k; + double val; + int error; + + for (i = 0; i < M; i++) { + for(j = 0; j < N; j++) { + *(A+i*N+j) = 0.0; + } + } + + for (k = 0; k < nz; k++) { + error = fscanf(f, "%d %d %lg\n", &i, &j, &val); + if(!error) exit(0); + //printf("-- %d -- %d -- %lg\n", i, j, val); + *(A + (i-1)*N + (j-1)) = val; + // this is a symmetric matrix + *(A + (j-1)*N + (i-1)) = val; + } + + /* + for (k = 0; k < nz; k++) { + printf("---- %lg\n", *(A+k)); + } + */ + + return 0; +} + +int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz ) +{ + char line[MM_MAX_LINE_LENGTH]; + int num_items_read; + + /* set return null parameter values, in case we exit with errors */ + *M = *N = *nz = 0; + + /* now continue scanning until you reach the end-of-comments */ + do + { + if (fgets(line,MM_MAX_LINE_LENGTH,f) == NULL) + return MM_PREMATURE_EOF; + }while (line[0] == '%'); + + /* line[] is either blank or has M,N, nz */ + if (sscanf(line, "%d %d %d", M, N, nz) == 3) + return 0; + + else + do + { + num_items_read = fscanf(f, "%d %d %d", M, N, nz); + if (num_items_read == EOF) return MM_PREMATURE_EOF; + } + while (num_items_read != 3); + + return 0; +} diff --git a/TP1/05_CG/util.h b/TP1/05_CG/util.h new file mode 100644 index 0000000..2479bf6 --- /dev/null +++ b/TP1/05_CG/util.h @@ -0,0 +1,21 @@ +#include + +#define MM_MAX_LINE_LENGTH 1025 +#define MatrixMarketBanner "%%MatrixMarket" +#define MM_MAX_TOKEN_LENGTH 64 +#define MM_PREMATURE_EOF 12 + +void multAv(double x[], double *A, double y[], int m, int n); + +void copy_v(double x[], double y[], int n); + +double dot(double x[], double y[], int n); + +void axpy(double a, double x[], double y[], int n); + +void xpay(double a, double x[], double y[], int n); + +int read_A(FILE *f, double *A, int M, int N, int nz); + +int mm_read_mtx_crd_size(FILE *f, int *M, int *N, int *nz); + diff --git a/TP1/init.sh b/TP1/init.sh new file mode 100755 index 0000000..2051436 --- /dev/null +++ b/TP1/init.sh @@ -0,0 +1,6 @@ +#!/bin/bash +SIMGRID=/mnt/n7fs/ens/tp_guivarch/opt2021/simgrid-3.31 + +export PATH=${SIMGRID}/bin:${PATH} + +alias smpirun="smpirun -hostfile ${SIMGRID}/archis/cluster_hostfile.txt -platform ${SIMGRID}/archis/cluster_crossbar.xml" diff --git a/TP1/tp_mpi.pdf b/TP1/tp_mpi.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1c242049c7565368acbf121bfc5b2fe30d39b523 GIT binary patch literal 177718 zcmbrm1yEeuvo8z*f@^RI?(PySI0PFcxHGuBJHa7Hf%3R@e)TAdTC->GUcFY^Z*}j6R#i%dm6MGZg?0?wJ&VH4L%~7eXljEZER4dg z2z0P?v!dV>;Nhou`axlrv9@yqx=^so*qOKirGRFR=0FrtQ507<7odqfir0LcwobwV zA6CF+)tF@Phv3MqQff!*j0VOew;0}=2~=I37D}c!@$q$iRYzzMDL~mwT-48ftM9q9 z)-&_G&j^oqB8D4phYxQRWr>)%*z)fsQ&8wqqFmV06Lspuq}sb}GC}&io<~WJD`Oma zqg8s8UUzH5o?`9NA;@P7EsdV+je+}tA)Ui(PA_RCILz*v*awRZakVhk+Jvos zekDXkrnjP9yjegMS25K5@H~;xDA7i{Oz9_f-e#b1qV$6i)oTe zqs!K}I^O{urUFUjnSQ#ev!;)9b{w7qq*mNBjefF|riXDScjt|q|FllzWQ_G_9OM}c zO2N;tE+E+IL(}i_&zanAs7h!!M9j!m5MyXm=pt`a=y8`$X>6?Omts)hE>e%m|GpMo z1jq;E)5tp>s7@9)pQ~lmoD_yW^6`I(l(1W=xA!lc^P*J@;TSyx=;9VVP0H3r#|f`gJ@fr?oU?UbLk?U zYpjnu3QMY(QkNaY%j~`lFS-ejzjDA+eN7WY$9m&p@lC~uzwS;|nc5!IObsuqc`K<> zL=Jw;*IiEKs3>-Buy@AeRSu#+hTGAq5F#;6+uIKmpghic(;e6v`*}HkG<$-`##&%g z0&-^P60!`8DRfry{(;&PhotbDPeQrvXd0XYXa#rob$QWWovLShK zM#_EUfSZ|^iV{kY!{BX?I!0Ra_gcB7@SD`@IY3ZLQK zM3sB7sBG?QRIV4(2+?`Zy`1JGWXjA)thcih^b@Jf9dFv?fYA=@P?cw>tTz9N68;KJ z4#EHJ4?wEwR+{j$ypejbHL$vq2Cv+4ooo8Huc2#xQ45{N=C`H(&-B#j3fp4U!JGy% zqh3UcU-S#T!Y4Ix4UfHhCW_b}TsO%W+!zUA+CKK$BY6uIV8$T!UDiH2Euc$1$7`sr z{KDa*#1h6=a6H&t^Ll^AanbFM7o34Ad6T`+LuTcf+MbWPML3*gAukvieX08j2sQ^T=9-BtCkOp9`7*L5bAv6 zb7ATT1qEJ#H?U%-RJuHYQ5)O_i3GOSJ09nC*?B^EW}?5-%#2|6$sE@eqbYa zT2?BQRatf`TT<=(NoQ}&Ku;w;Co+#u5|D-NF?spW$)>EXk?9PC8 zY07@eS@8Z1no*GYJx!L2I8OS5n82`fHAB+kp4BJ*Vt58}+oba>QO$$*@Zk%vaPZ3- zR1dDGjszOX33Xn8o}UtLPSX^O9xv?m`027bp6sc1##!2V=_iTOS?NVy^J zW8ZtxD+Dp(lLCN_)%s4<&s-F|?=0WYI|eCfa*rD{uCJ%Ax-UBp_{5ueMt;qaUOwM* zUD9eO%N+-s3Wqk5FP>xi%TNAr&HW|4u0loA0Z@N2qo9|Vy@0X-YJSP0fNJ2&P@4U# zX2wYv$rkc`UEhPke>mi@;_h7eO8eo!&`TxFVSF)%j$}Sv6-kpJ3{rzNvUERbFsd(Z z0b?k?F@>SUY{j_cfFs;+ViQp!5|L<%0A4tqyuS$FP7{Bj>UKx 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 literal 0 HcmV?d00001 diff --git a/TP2/.vscode/settings.json b/TP2/.vscode/settings.json new file mode 100644 index 0000000..ae8cca2 --- /dev/null +++ b/TP2/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "files.associations": { + "*.html": "html", + "*.toml": "toml", + "*.bak": "c" + } +} \ No newline at end of file diff --git a/TP2/Makefile b/TP2/Makefile new file mode 100644 index 0000000..64e7cc0 --- /dev/null +++ b/TP2/Makefile @@ -0,0 +1,26 @@ +CC=gcc +MPICC=smpicc +LD=smpicc +LDFLAGS= +CFLAGS=-O4 +CLIBS=-lblas -llapack +INCLUDES= +SOURCEDIR=src +BUILDDIR=build + +all: dir main # test + +test_env: dir who_am_i + +dir: + mkdir -p $(BUILDDIR)/bin + +clean: + rm -rf $(BUILDDIR) + +%.o: $(SOURCEDIR)/%.c + echo $@ + $(MPICC) -c -Wall -o $(BUILDDIR)/$@ $< $(CFLAGS) $(INCLUDES) + +main: main.o gemms.o ex1.o ex2.o ex3.o utils.o dsmat.o + $(LD) -o $(BUILDDIR)/bin/$@ $(addprefix $(BUILDDIR)/,$^) $(CLIBS) $(LDFLAGS) diff --git a/TP2/README b/TP2/README new file mode 100644 index 0000000..b023f29 --- /dev/null +++ b/TP2/README @@ -0,0 +1 @@ +https://laurent.fainsin.bzh/assets/CalcPar/ \ No newline at end of file diff --git a/TP2/bench.csv b/TP2/bench.csv new file mode 100644 index 0000000..4a67c02 --- /dev/null +++ b/TP2/bench.csv @@ -0,0 +1,151 @@ +m,n,k,b,p,q,algo,lookahead,gflops +1024,1024,1024,256,2,2,p2p,0,7.475035 +1024,1024,1024,256,2,2,p2p,0,7.475035 +1024,1024,1024,256,2,2,p2p,0,7.475036 +1024,1024,1024,256,2,2,p2p,0,7.475036 +1024,1024,1024,256,2,2,p2p,0,7.475036 +1024,1024,1024,256,2,2,bcast,0,7.471268 +1024,1024,1024,256,2,2,bcast,0,7.471269 +1024,1024,1024,256,2,2,bcast,0,7.471268 +1024,1024,1024,256,2,2,bcast,0,7.471268 +1024,1024,1024,256,2,2,bcast,0,7.471269 +1024,1024,1024,256,2,2,p2p-i-la,1,14.306685 +1024,1024,1024,256,2,2,p2p-i-la,1,14.306689 +1024,1024,1024,256,2,2,p2p-i-la,1,14.306691 +1024,1024,1024,256,2,2,p2p-i-la,1,14.306689 +1024,1024,1024,256,2,2,p2p-i-la,1,14.306691 +1024,1024,1024,256,2,2,p2p-i-la,2,9.856253 +1024,1024,1024,256,2,2,p2p-i-la,2,9.856253 +1024,1024,1024,256,2,2,p2p-i-la,2,9.856254 +1024,1024,1024,256,2,2,p2p-i-la,2,9.856254 +1024,1024,1024,256,2,2,p2p-i-la,2,9.856254 +1024,1024,1024,256,2,2,p2p-i-la,3,14.317787 +1024,1024,1024,256,2,2,p2p-i-la,3,14.317789 +1024,1024,1024,256,2,2,p2p-i-la,3,14.317793 +1024,1024,1024,256,2,2,p2p-i-la,3,14.317793 +1024,1024,1024,256,2,2,p2p-i-la,3,14.317793 +1024,1024,1024,256,2,2,p2p-i-la,4,14.317787 +1024,1024,1024,256,2,2,p2p-i-la,4,14.317787 +1024,1024,1024,256,2,2,p2p-i-la,4,14.317793 +1024,1024,1024,256,2,2,p2p-i-la,4,14.317793 +1024,1024,1024,256,2,2,p2p-i-la,4,14.317793 +2048,2048,2048,256,2,2,p2p,0,14.951931 +2048,2048,2048,256,2,2,p2p,0,14.951932 +2048,2048,2048,256,2,2,p2p,0,14.951932 +2048,2048,2048,256,2,2,p2p,0,14.951929 +2048,2048,2048,256,2,2,p2p,0,14.951932 +2048,2048,2048,256,2,2,bcast,0,14.950045 +2048,2048,2048,256,2,2,bcast,0,14.950048 +2048,2048,2048,256,2,2,bcast,0,14.950048 +2048,2048,2048,256,2,2,bcast,0,14.950046 +2048,2048,2048,256,2,2,bcast,0,14.950046 +2048,2048,2048,256,2,2,p2p-i-la,1,28.642430 +2048,2048,2048,256,2,2,p2p-i-la,1,28.642433 +2048,2048,2048,256,2,2,p2p-i-la,1,28.642433 +2048,2048,2048,256,2,2,p2p-i-la,1,28.642433 +2048,2048,2048,256,2,2,p2p-i-la,1,28.642436 +2048,2048,2048,256,2,2,p2p-i-la,2,23.366289 +2048,2048,2048,256,2,2,p2p-i-la,2,23.366289 +2048,2048,2048,256,2,2,p2p-i-la,2,23.366289 +2048,2048,2048,256,2,2,p2p-i-la,2,23.366289 +2048,2048,2048,256,2,2,p2p-i-la,2,23.366289 +2048,2048,2048,256,2,2,p2p-i-la,3,28.653563 +2048,2048,2048,256,2,2,p2p-i-la,3,28.653569 +2048,2048,2048,256,2,2,p2p-i-la,3,28.653569 +2048,2048,2048,256,2,2,p2p-i-la,3,28.653566 +2048,2048,2048,256,2,2,p2p-i-la,3,28.653569 +2048,2048,2048,256,2,2,p2p-i-la,4,23.369989 +2048,2048,2048,256,2,2,p2p-i-la,4,23.369989 +2048,2048,2048,256,2,2,p2p-i-la,4,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,4,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,4,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,5,28.653569 +2048,2048,2048,256,2,2,p2p-i-la,5,28.653575 +2048,2048,2048,256,2,2,p2p-i-la,5,28.653575 +2048,2048,2048,256,2,2,p2p-i-la,5,28.653575 +2048,2048,2048,256,2,2,p2p-i-la,5,28.653575 +2048,2048,2048,256,2,2,p2p-i-la,6,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,6,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,6,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,6,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,6,23.369991 +2048,2048,2048,256,2,2,p2p-i-la,7,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,7,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,7,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,7,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,7,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,8,28.659102 +2048,2048,2048,256,2,2,p2p-i-la,8,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,8,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,8,28.659105 +2048,2048,2048,256,2,2,p2p-i-la,8,28.659105 +3072,3072,3072,256,2,2,p2p,0,22.428405 +3072,3072,3072,256,2,2,p2p,0,22.428407 +3072,3072,3072,256,2,2,p2p,0,22.428407 +3072,3072,3072,256,2,2,p2p,0,22.428407 +3072,3072,3072,256,2,2,p2p,0,22.428407 +3072,3072,3072,256,2,2,bcast,0,22.427149 +3072,3072,3072,256,2,2,bcast,0,22.427149 +3072,3072,3072,256,2,2,bcast,0,22.427152 +3072,3072,3072,256,2,2,bcast,0,22.427149 +3072,3072,3072,256,2,2,bcast,0,22.427152 +3072,3072,3072,256,2,2,p2p-i-la,1,42.976658 +3072,3072,3072,256,2,2,p2p-i-la,1,42.976662 +3072,3072,3072,256,2,2,p2p-i-la,1,42.976658 +3072,3072,3072,256,2,2,p2p-i-la,1,42.976662 +3072,3072,3072,256,2,2,p2p-i-la,1,42.976662 +3072,3072,3072,256,2,2,p2p-i-la,2,33.027327 +3072,3072,3072,256,2,2,p2p-i-la,2,33.027327 +3072,3072,3072,256,2,2,p2p-i-la,2,33.027327 +3072,3072,3072,256,2,2,p2p-i-la,2,33.027330 +3072,3072,3072,256,2,2,p2p-i-la,2,33.027327 +3072,3072,3072,256,2,2,p2p-i-la,3,42.987825 +3072,3072,3072,256,2,2,p2p-i-la,3,42.987825 +3072,3072,3072,256,2,2,p2p-i-la,3,42.987829 +3072,3072,3072,256,2,2,p2p-i-la,3,42.987818 +3072,3072,3072,256,2,2,p2p-i-la,3,42.987822 +3072,3072,3072,256,2,2,p2p-i-la,4,37.356416 +3072,3072,3072,256,2,2,p2p-i-la,4,37.356414 +3072,3072,3072,256,2,2,p2p-i-la,4,37.356422 +3072,3072,3072,256,2,2,p2p-i-la,4,37.356416 +3072,3072,3072,256,2,2,p2p-i-la,4,37.356416 +3072,3072,3072,256,2,2,p2p-i-la,5,42.991522 +3072,3072,3072,256,2,2,p2p-i-la,5,42.991526 +3072,3072,3072,256,2,2,p2p-i-la,5,42.991526 +3072,3072,3072,256,2,2,p2p-i-la,5,42.991526 +3072,3072,3072,256,2,2,p2p-i-la,5,42.991522 +3072,3072,3072,256,2,2,p2p-i-la,6,37.359194 +3072,3072,3072,256,2,2,p2p-i-la,6,37.359194 +3072,3072,3072,256,2,2,p2p-i-la,6,37.359194 +3072,3072,3072,256,2,2,p2p-i-la,6,37.359194 +3072,3072,3072,256,2,2,p2p-i-la,6,37.359197 +3072,3072,3072,256,2,2,p2p-i-la,7,42.991526 +3072,3072,3072,256,2,2,p2p-i-la,7,42.991538 +3072,3072,3072,256,2,2,p2p-i-la,7,42.991534 +3072,3072,3072,256,2,2,p2p-i-la,7,42.991534 +3072,3072,3072,256,2,2,p2p-i-la,7,42.991534 +3072,3072,3072,256,2,2,p2p-i-la,8,37.359200 +3072,3072,3072,256,2,2,p2p-i-la,8,37.359202 +3072,3072,3072,256,2,2,p2p-i-la,8,37.359202 +3072,3072,3072,256,2,2,p2p-i-la,8,37.359205 +3072,3072,3072,256,2,2,p2p-i-la,8,37.359202 +3072,3072,3072,256,2,2,p2p-i-la,9,42.991549 +3072,3072,3072,256,2,2,p2p-i-la,9,42.991549 +3072,3072,3072,256,2,2,p2p-i-la,9,42.991549 +3072,3072,3072,256,2,2,p2p-i-la,9,42.991545 +3072,3072,3072,256,2,2,p2p-i-la,9,42.991545 +3072,3072,3072,256,2,2,p2p-i-la,10,37.359205 +3072,3072,3072,256,2,2,p2p-i-la,10,37.359202 +3072,3072,3072,256,2,2,p2p-i-la,10,37.359202 +3072,3072,3072,256,2,2,p2p-i-la,10,37.359214 +3072,3072,3072,256,2,2,p2p-i-la,10,37.359202 +3072,3072,3072,256,2,2,p2p-i-la,11,42.995159 +3072,3072,3072,256,2,2,p2p-i-la,11,42.995159 +3072,3072,3072,256,2,2,p2p-i-la,11,42.995144 +3072,3072,3072,256,2,2,p2p-i-la,11,42.995167 +3072,3072,3072,256,2,2,p2p-i-la,11,42.995152 +3072,3072,3072,256,2,2,p2p-i-la,12,42.995159 +3072,3072,3072,256,2,2,p2p-i-la,12,42.995159 +3072,3072,3072,256,2,2,p2p-i-la,12,42.995152 +3072,3072,3072,256,2,2,p2p-i-la,12,42.995171 +3072,3072,3072,256,2,2,p2p-i-la,12,42.995159 diff --git a/TP2/bench.sh b/TP2/bench.sh new file mode 100755 index 0000000..ac828b4 --- /dev/null +++ b/TP2/bench.sh @@ -0,0 +1,39 @@ +source utils.sh +echo BENCHMARKING THE METHODS +# you can modify these values +p=2 +q=2 +P=$((p * q)) +#generate_hostfile $P + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 + +# proper benchmark <--- this could be a TODO for students ? (as in, show weak scaling and/or strong scaling) +#mpi_options="-hostfile hostfiles/hostfile.$P.txt" +mpi_options="-platform platforms/cluster_crossbar.xml -hostfile hostfiles/cluster_hostfile.txt -np $P" +b=256 +iter=5 +traces="bench_traces" +out="bench_outputs" +csv="bench.csv" +echo m,n,k,b,p,q,algo,lookahead,gflops >$csv +for i in 4 8 12; do + + n=$((i * b)) + m=$n + k=$n + la=0 + options="-c" + + for algo in p2p bcast; do + run + done + + for la in $(seq 1 $((n / b))); do + algo="p2p-i-la" + options="-c -l $la" + run + done + +done diff --git a/TP2/check.csv b/TP2/check.csv new file mode 100644 index 0000000..8e8c12d --- /dev/null +++ b/TP2/check.csv @@ -0,0 +1,16 @@ +m,n,k,b,p,q,algo,lookahead,gflops +2,2,2,2,2,2,p2p,0,0.000172 +2,2,2,2,2,2,p2p,0,0.000172 +2,2,2,2,2,2,p2p,0,0.000172 +2,2,2,2,2,2,p2p,0,0.000172 +2,2,2,2,2,2,p2p,0,0.000172 +2,2,2,2,2,2,bcast,0,0.000075 +2,2,2,2,2,2,bcast,0,0.000075 +2,2,2,2,2,2,bcast,0,0.000075 +2,2,2,2,2,2,bcast,0,0.000075 +2,2,2,2,2,2,bcast,0,0.000075 +2,2,2,2,2,2,p2p-i-la,1,0.000223 +2,2,2,2,2,2,p2p-i-la,1,0.000223 +2,2,2,2,2,2,p2p-i-la,1,0.000223 +2,2,2,2,2,2,p2p-i-la,1,0.000223 +2,2,2,2,2,2,p2p-i-la,1,0.000223 diff --git a/TP2/check.sh b/TP2/check.sh new file mode 100755 index 0000000..86b46ba --- /dev/null +++ b/TP2/check.sh @@ -0,0 +1,39 @@ +source utils.sh +echo BENCHMARKING THE METHODS +# you can modify these values +p=2 +q=2 +P=$((p * q)) +#generate_hostfile $P + +export OMP_NUM_THREADS=1 +export MKL_NUM_THREADS=1 + +# proper benchmark <--- this could be a TODO for students ? (as in, show weak scaling and/or strong scaling) +#mpi_options="-hostfile hostfiles/hostfile.$P.txt" +mpi_options="-platform platforms/cluster_crossbar.xml -hostfile hostfiles/cluster_hostfile.txt -np 4" +b=2 +iter=5 +traces="check_traces" +out="check_outputs" +csv="check.csv" +echo m,n,k,b,p,q,algo,lookahead,gflops >$csv +for i in 1; do + + n=$((i * b)) + m=$n + k=$n + la=0 + options="-c" + + for algo in p2p bcast; do + run + done + + for la in $(seq 1 $((n / b))); do + algo="p2p-i-la" + options="-c -l $la" + run + done + +done diff --git a/TP2/hostfiles/cluster_hostfile.txt b/TP2/hostfiles/cluster_hostfile.txt new file mode 100644 index 0000000..f24db7f --- /dev/null +++ b/TP2/hostfiles/cluster_hostfile.txt @@ -0,0 +1,256 @@ +host-0.hawaii.edu +host-1.hawaii.edu +host-2.hawaii.edu +host-3.hawaii.edu +host-4.hawaii.edu +host-5.hawaii.edu +host-6.hawaii.edu +host-7.hawaii.edu +host-8.hawaii.edu +host-9.hawaii.edu +host-10.hawaii.edu +host-11.hawaii.edu +host-12.hawaii.edu +host-13.hawaii.edu +host-14.hawaii.edu +host-15.hawaii.edu +host-16.hawaii.edu +host-17.hawaii.edu +host-18.hawaii.edu +host-19.hawaii.edu +host-20.hawaii.edu +host-21.hawaii.edu +host-22.hawaii.edu +host-23.hawaii.edu +host-24.hawaii.edu +host-25.hawaii.edu +host-26.hawaii.edu +host-27.hawaii.edu +host-28.hawaii.edu +host-29.hawaii.edu +host-30.hawaii.edu +host-31.hawaii.edu +host-32.hawaii.edu +host-33.hawaii.edu +host-34.hawaii.edu +host-35.hawaii.edu +host-36.hawaii.edu +host-37.hawaii.edu +host-38.hawaii.edu +host-39.hawaii.edu +host-40.hawaii.edu +host-41.hawaii.edu +host-42.hawaii.edu +host-43.hawaii.edu +host-44.hawaii.edu +host-45.hawaii.edu +host-46.hawaii.edu +host-47.hawaii.edu +host-48.hawaii.edu +host-49.hawaii.edu +host-50.hawaii.edu +host-51.hawaii.edu +host-52.hawaii.edu +host-53.hawaii.edu +host-54.hawaii.edu +host-55.hawaii.edu +host-56.hawaii.edu +host-57.hawaii.edu +host-58.hawaii.edu +host-59.hawaii.edu +host-60.hawaii.edu +host-61.hawaii.edu +host-62.hawaii.edu +host-63.hawaii.edu +host-64.hawaii.edu +host-65.hawaii.edu +host-66.hawaii.edu +host-67.hawaii.edu +host-68.hawaii.edu +host-69.hawaii.edu +host-70.hawaii.edu +host-71.hawaii.edu +host-72.hawaii.edu +host-73.hawaii.edu +host-74.hawaii.edu +host-75.hawaii.edu +host-76.hawaii.edu +host-77.hawaii.edu +host-78.hawaii.edu +host-79.hawaii.edu +host-80.hawaii.edu +host-81.hawaii.edu +host-82.hawaii.edu +host-83.hawaii.edu +host-84.hawaii.edu +host-85.hawaii.edu +host-86.hawaii.edu +host-87.hawaii.edu +host-88.hawaii.edu +host-89.hawaii.edu +host-90.hawaii.edu +host-91.hawaii.edu +host-92.hawaii.edu +host-93.hawaii.edu +host-94.hawaii.edu +host-95.hawaii.edu +host-96.hawaii.edu +host-97.hawaii.edu +host-98.hawaii.edu +host-99.hawaii.edu +host-100.hawaii.edu +host-101.hawaii.edu +host-102.hawaii.edu +host-103.hawaii.edu +host-104.hawaii.edu +host-105.hawaii.edu +host-106.hawaii.edu +host-107.hawaii.edu +host-108.hawaii.edu +host-109.hawaii.edu +host-110.hawaii.edu +host-111.hawaii.edu +host-112.hawaii.edu +host-113.hawaii.edu +host-114.hawaii.edu +host-115.hawaii.edu +host-116.hawaii.edu +host-117.hawaii.edu +host-118.hawaii.edu +host-119.hawaii.edu +host-120.hawaii.edu +host-121.hawaii.edu +host-122.hawaii.edu +host-123.hawaii.edu +host-124.hawaii.edu +host-125.hawaii.edu +host-126.hawaii.edu +host-127.hawaii.edu +host-128.hawaii.edu +host-129.hawaii.edu +host-130.hawaii.edu +host-131.hawaii.edu +host-132.hawaii.edu +host-133.hawaii.edu +host-134.hawaii.edu +host-135.hawaii.edu +host-136.hawaii.edu +host-137.hawaii.edu +host-138.hawaii.edu +host-139.hawaii.edu +host-140.hawaii.edu +host-141.hawaii.edu +host-142.hawaii.edu +host-143.hawaii.edu +host-144.hawaii.edu +host-145.hawaii.edu +host-146.hawaii.edu +host-147.hawaii.edu +host-148.hawaii.edu +host-149.hawaii.edu +host-150.hawaii.edu +host-151.hawaii.edu +host-152.hawaii.edu +host-153.hawaii.edu +host-154.hawaii.edu +host-155.hawaii.edu +host-156.hawaii.edu +host-157.hawaii.edu +host-158.hawaii.edu +host-159.hawaii.edu +host-160.hawaii.edu +host-161.hawaii.edu +host-162.hawaii.edu +host-163.hawaii.edu +host-164.hawaii.edu +host-165.hawaii.edu +host-166.hawaii.edu +host-167.hawaii.edu +host-168.hawaii.edu +host-169.hawaii.edu +host-170.hawaii.edu +host-171.hawaii.edu +host-172.hawaii.edu +host-173.hawaii.edu +host-174.hawaii.edu +host-175.hawaii.edu +host-176.hawaii.edu +host-177.hawaii.edu +host-178.hawaii.edu +host-179.hawaii.edu +host-180.hawaii.edu +host-181.hawaii.edu +host-182.hawaii.edu +host-183.hawaii.edu +host-184.hawaii.edu +host-185.hawaii.edu +host-186.hawaii.edu +host-187.hawaii.edu +host-188.hawaii.edu +host-189.hawaii.edu +host-190.hawaii.edu +host-191.hawaii.edu +host-192.hawaii.edu +host-193.hawaii.edu +host-194.hawaii.edu +host-195.hawaii.edu +host-196.hawaii.edu +host-197.hawaii.edu +host-198.hawaii.edu +host-199.hawaii.edu +host-200.hawaii.edu +host-201.hawaii.edu +host-202.hawaii.edu +host-203.hawaii.edu +host-204.hawaii.edu +host-205.hawaii.edu +host-206.hawaii.edu +host-207.hawaii.edu +host-208.hawaii.edu +host-209.hawaii.edu +host-210.hawaii.edu +host-211.hawaii.edu +host-212.hawaii.edu +host-213.hawaii.edu +host-214.hawaii.edu +host-215.hawaii.edu +host-216.hawaii.edu +host-217.hawaii.edu +host-218.hawaii.edu +host-219.hawaii.edu +host-220.hawaii.edu +host-221.hawaii.edu +host-222.hawaii.edu +host-223.hawaii.edu +host-224.hawaii.edu +host-225.hawaii.edu +host-226.hawaii.edu +host-227.hawaii.edu +host-228.hawaii.edu +host-229.hawaii.edu +host-230.hawaii.edu +host-231.hawaii.edu +host-232.hawaii.edu +host-233.hawaii.edu +host-234.hawaii.edu +host-235.hawaii.edu +host-236.hawaii.edu +host-237.hawaii.edu +host-238.hawaii.edu +host-239.hawaii.edu +host-240.hawaii.edu +host-241.hawaii.edu +host-242.hawaii.edu +host-243.hawaii.edu +host-244.hawaii.edu +host-245.hawaii.edu +host-246.hawaii.edu +host-247.hawaii.edu +host-248.hawaii.edu +host-249.hawaii.edu +host-250.hawaii.edu +host-251.hawaii.edu +host-252.hawaii.edu +host-253.hawaii.edu +host-254.hawaii.edu +host-255.hawaii.edu diff --git a/TP2/hostfiles/hostfile.txt b/TP2/hostfiles/hostfile.txt new file mode 100644 index 0000000..8132a5a --- /dev/null +++ b/TP2/hostfiles/hostfile.txt @@ -0,0 +1,16 @@ +node-0.simgrid.org +node-1.simgrid.org +node-2.simgrid.org +node-3.simgrid.org +node-4.simgrid.org +node-5.simgrid.org +node-6.simgrid.org +node-7.simgrid.org +node-8.simgrid.org +node-9.simgrid.org +node-10.simgrid.org +node-11.simgrid.org +node-12.simgrid.org +node-13.simgrid.org +node-14.simgrid.org +node-15.simgrid.org diff --git a/TP2/init.sh b/TP2/init.sh new file mode 100644 index 0000000..c985792 --- /dev/null +++ b/TP2/init.sh @@ -0,0 +1,4 @@ +#!/bin/bash +SIMGRID=/mnt/n7fs/ens/tp_guivarch/opt2021/simgrid-3.31 + +export PATH=${SIMGRID}/bin:${PATH} diff --git a/TP2/log.txt b/TP2/log.txt new file mode 100644 index 0000000..590d0e0 --- /dev/null +++ b/TP2/log.txt @@ -0,0 +1,117 @@ +File smpi_simgrid.trace + +Errors : +150 : Unknown container: 0 +153 : Unknown container: 0 +156 : Unknown container: 0 +165 : Unknown container: 0 +168 : Unknown container: 0 +171 : Unknown container: 0 +185 : Unknown container: 0 +191 : Unknown container: 0 +199 : Unknown container: 0 +205 : Unknown container: 0 +207 : Unknown container: 0 +213 : Unknown container: 0 +216 : Unknown container: 0 +221 : Unknown container: 0 +223 : Unknown container: 0 +231 : Unknown container: 0 +236 : Unknown container: 0 +243 : Unknown container: 0 +275 : Unknown container: 0 +283 : Unknown container: 0 +285 : Unknown container: 0 +287 : Unknown container: 0 +294 : Unknown container: 0 +303 : Unknown container: 0 +362 : Unknown container: 0 +364 : Unknown container: 0 +366 : Unknown container: 0 +371 : Unknown container: 0 +373 : Unknown container: 0 +375 : Unknown container: 0 +380 : Unknown container: 0 +382 : Unknown container: 0 +384 : Unknown container: 0 +389 : Unknown container: 0 +391 : Unknown container: 0 +393 : Unknown container: 0 +398 : Unknown container: 0 +400 : Unknown container: 0 +402 : Unknown container: 0 +407 : Unknown container: 0 +409 : Unknown container: 0 +411 : Unknown container: 0 +416 : Unknown container: 0 +418 : Unknown container: 0 +420 : Unknown container: 0 +425 : Unknown container: 0 +427 : Unknown container: 0 +429 : Unknown container: 0 +434 : Unknown container: 0 +436 : Unknown container: 0 +438 : Unknown container: 0 +443 : Unknown container: 0 +445 : Unknown container: 0 +447 : Unknown container: 0 +570 : Unknown container: 0 +573 : Unknown container: 0 +576 : Unknown container: 0 +585 : Unknown container: 0 +588 : Unknown container: 0 +591 : Unknown container: 0 +604 : Unknown container: 0 +612 : Unknown container: 0 +619 : Unknown container: 0 +625 : Unknown container: 0 +627 : Unknown container: 0 +633 : Unknown container: 0 +635 : Unknown container: 0 +641 : Unknown container: 0 +643 : Unknown container: 0 +650 : Unknown container: 0 +656 : Unknown container: 0 +663 : Unknown container: 0 +695 : Unknown container: 0 +703 : Unknown container: 0 +705 : Unknown container: 0 +707 : Unknown container: 0 +713 : Unknown container: 0 +723 : Unknown container: 0 +782 : Unknown container: 0 +784 : Unknown container: 0 +786 : Unknown container: 0 +791 : Unknown container: 0 +793 : Unknown container: 0 +795 : Unknown container: 0 +800 : Unknown container: 0 +802 : Unknown container: 0 +804 : Unknown container: 0 +809 : Unknown container: 0 +811 : Unknown container: 0 +813 : Unknown container: 0 +818 : Unknown container: 0 +820 : Unknown container: 0 +822 : Unknown container: 0 +827 : Unknown container: 0 +829 : Unknown container: 0 +831 : Unknown container: 0 +836 : Unknown container: 0 +838 : Unknown container: 0 +840 : Unknown container: 0 +845 : Unknown container: 0 +847 : Unknown container: 0 +849 : Unknown container: 0 +854 : Unknown container: 0 +856 : Unknown container: 0 +858 : Unknown container: 0 +863 : Unknown container: 0 +865 : Unknown container: 0 +867 : Unknown container: 0 + +Warnings : +1 : the definition is not identified +2 : the definition is not identified + +Your trace has 108 errors and 2 warnings. diff --git a/TP2/platforms/cluster_crossbar.xml b/TP2/platforms/cluster_crossbar.xml new file mode 100644 index 0000000..8ba3b5f --- /dev/null +++ b/TP2/platforms/cluster_crossbar.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TP2/platforms/cluster_fat_tree.xml b/TP2/platforms/cluster_fat_tree.xml new file mode 100644 index 0000000..3ba6191 --- /dev/null +++ b/TP2/platforms/cluster_fat_tree.xml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/TP2/platforms/default.xml b/TP2/platforms/default.xml new file mode 100644 index 0000000..3ba6191 --- /dev/null +++ b/TP2/platforms/default.xml @@ -0,0 +1,17 @@ + + + + + + + + + diff --git a/TP2/platforms/simgrid_update_xml.pl b/TP2/platforms/simgrid_update_xml.pl new file mode 100755 index 0000000..daea1f0 --- /dev/null +++ b/TP2/platforms/simgrid_update_xml.pl @@ -0,0 +1,277 @@ +#! /usr/bin/env perl +eval 'exec perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + +# This script updates the simgrid XML file passed as argument (modification in place) +# It is built to do the conversion incrementally. + +# Copyright (c) 2006-2022. The SimGrid Team. +# All rights reserved. +# +# This program is free software; you can redistribute it and/or modify it +# under the terms of the license (GNU LGPL) which comes with this package. + +=encoding UTF-8 + +=head1 NAME + +simgrid_update_xml - updates simgrid XML files to latest version + +=head1 SYNOPSIS + +B I + +=head1 DESCRIPTION + +simgrid_update_xml updates the simgrid XML file passed as argument. The file +is modified in place, without any kind of backup. You may want to save a copy +before running the script. + +In SimGrid XML files, the standard version is indicated in the version +attribute of the platform tag. Current version is 4. Here is a list of major +changes in each version. + +=over 4 + +=item B Used before SimGrid 3.3 + +=item B Introduced in SimGrid 3.3 + +=over 4 + +=item + +The version attribute of platform were added to allow file versioning. + +=item + +The link bandwidth changed from Mb/s to b/s; and the CPU power were changed +from MFlop/s to Flop/s + +=back + +=item B Introduced in SimGrid 3.4 + +=over + +=item + +Several tags were renamed: + + CPU -> HOST + NETWORK_LINK -> LINK + ROUTE_ELEMENT -> LINK_CTN + PLATFORM_DESCRIPTION -> PLATFORM + +=back + +=item B Introduced in SimGrid 3.5 + +=over 4 + +=item + +The AS tag were introduced. Every platform should now contain an englobing AS +tag. + +=item + +Routes are now symmetric by default. + +=item + +Several tags were renamed (for sake of XML sanity): + + LINK:CTN -> LINK_CTN + TRACE:CONNECT -> TRACE_CONNECT + +=back + +=item B Introduced in SimGrid 3.13 + +=over 4 + +=item + +Rename the attributes describing the amount of flop that a host / peer / cluster / cabinet can deliver per second. + + -> + +=item + +In , attribute kind="POWER" is now kind="SPEED". + +=item + +The DOCTYPE points to the right URL. + +=item + +Units are now mandatory in attributes. USE THE SCRIPT sg_xml_unit_converter.py TO CONVERT THIS + + - speed. Old default: 'f' or 'flops'. Also defined: + 'Yf', 'Zf', 'Ef', 'Pf', 'Tf', 'Gf', 'Mf', 'kf' + 'yottaflops', 'zettaflops', 'exaflops', 'petaflops', 'teraflops', 'gigaflops', 'megaflops', 'kiloflops' + + - bandwidth. Old default: 'Bps' bytes per second (or 'bps' but 1 Bps = 8 bps) + Also defined in bytes: 'TiBps', 'GiBps', 'MiBps', 'KiBps', 'TBps', 'GBps', 'MBps', 'kBps', 'Bps' + And the same in bits: 'Tibps', 'Gibps', 'Mibps', 'Kibps', 'Tbps', 'Gbps', 'Mbps', 'kbps', 'bps' + + - latency. Old default: 's' second. Also defined: + 'w' week, 'd' day, 'h' hour, 'm' minute, 'ms' millisecond, 'us' microsecond, 'ns' nanosecond, 'ps' picosecond + + +=back + +=item B Introduced in SimGrid 3.16 (this is the current version). + +=over 4 + +=item + +Rename a few tags, but in a backward-compatible manner: the old names are still accepted. + + AS -> zone + ASroute -> zoneRoute + bypassAsRoute -> bypassZoneRoute + process -> actor + +=back + +=item Other backward-compatible changes (old syntax is still accepted) for which we did not bump the DTD version: + +=over 4 + +=item + +Rename the FULLDUPLEX sharing into SPLITDUPLEX. + +=item + +In and , rename the 'availability_file' attribute into 'speed_file'. + +=back + +=back + +=head1 AUTHORS + + The SimGrid team + +=head1 COPYRIGHT AND LICENSE + +Copyright (c) 2006-2022. The SimGrid Team. All rights reserved. + +This program is free software; you may redistribute it and/or modify it +under the terms of GNU LGPL (v2.1) license. + +=cut + + +use strict; + +my $fromversion=-1; +my $toversion=4.1; + +my $filename = $ARGV[0] or die "Usage: simgrid_update_xml.pl file_to_convert.xml\nPlease provide an XML to convert as a parameter.\n"; +open INPUT, "$filename" or die "Cannot open input file $filename: $!\n"; + +my $output_string = "\n". + "\n". + "\n"; + +my($AS_opened)=0; + +my $line; +while (defined($line = )) { + chomp $line; + # eat the header, whatever form it has + next if ($line =~ s/<\?xml[^>]*>// && ! $line =~ /\S/); # just in case several tags are on the same line + next if ($line =~ s/]*>// && ! $line =~ /\S/); + + if ($line =~ s///) { + $fromversion = 0; + print "$filename was using version 0\n"; + next if !$line =~ /\S/; + } elsif ($line =~ s///) { + $fromversion = $1; + if ($fromversion == $toversion) { + warn "Input platform file $filename is already conformant to version $fromversion. This should be a no-op.\n"; + } + if ($fromversion > $toversion) { + die "Input platform file $filename is more recent than this script (file version: $fromversion; script version: $toversion)\n"; + } + next if !$line =~ /\S/; + print "$filename was using version $fromversion\n"; + } + + if ($fromversion == 0) { + while ($line =~ m|^(.*?)/) || ($line=~ /\n"; + $AS_opened=1; + } + + if($line=~/ $filename"; +print OUTPUT $output_string; +close OUTPUT; diff --git a/TP2/src/dsmat.c b/TP2/src/dsmat.c new file mode 100644 index 0000000..e114f57 --- /dev/null +++ b/TP2/src/dsmat.c @@ -0,0 +1,360 @@ +#include +#include +#include +#include + +#include "simgrid/actor.h" +#include + +#include "utils.h" +#include "dsmat.h" + +/* Tracing purposes */ +static char* COMPUTE = "Computing"; +static char* IDLE = "Idling"; + +void init_trace() { +// TRACE_host_state_declare(COMPUTE); +// TRACE_host_state_declare(IDLE); +} + +int dsmat_fill(Matrix* a, int m, int n, int b, int p, int q, char* name) { + int me, node; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + int mb = m/b, nb = n/b; + int ii, jj; + int row, col; + a->mb = mb; + a->nb = nb; + a->b = b; + //printf("%d] %s : m x n (b) = %d x %d (%d)\n", me, name, mb, nb, b); + a->blocks = calloc(mb,sizeof(Block*)); + for (ii = 0; ii < mb;ii++) { + a->blocks[ii] = calloc(nb,sizeof(Block)); + for (jj = 0; jj < nb;jj++) { + node = get_node(p,q,ii,jj); + node_coordinates_2i(p,q,node,&row,&col); + a->blocks[ii][jj].owner = node; + a->blocks[ii][jj].row = row; + a->blocks[ii][jj].col = col; + a->blocks[ii][jj].request = MPI_REQUEST_NULL; + if (me == a->blocks[ii][jj].owner) { + //printf("%d]allocating x_%d,%d\n",me,ii,jj); + a->blocks[ii][jj].c = calloc(b*b,sizeof(float)); + rand_mat(b,b,a->blocks[ii][jj].c,10); + } else { + a->blocks[ii][jj].c = NULL; + } + } + } + return 0; +} + +int dsmat_fill_v(Matrix* a, int m, int n, int b, int p, int q, char* name, float value) { + int me, node; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + int mb = m/b, nb = n/b; + int ii, jj; + int row, col; + a->mb = mb; + a->nb = nb; + a->b = b; + a->blocks = calloc(mb,sizeof(Block*)); + for (ii = 0; ii < mb;ii++) { + a->blocks[ii] = calloc(nb,sizeof(Block)); + for (jj = 0; jj < nb;jj++) { + node = get_node(p,q,ii,jj); + node_coordinates_2i(p,q,node,&row,&col); + a->blocks[ii][jj].owner = node; + a->blocks[ii][jj].row = row; + a->blocks[ii][jj].col = col; + a->blocks[ii][jj].request = MPI_REQUEST_NULL; + if (me == a->blocks[ii][jj].owner) { + //printf("%d]allocating x_%d,%d to fill with %f\n",me,ii,jj, value); + a->blocks[ii][jj].c = calloc(b*b,sizeof(float)); + val_mat(b,b,a->blocks[ii][jj].c,value); + } else { + a->blocks[ii][jj].c = NULL; + } + } + } + return 0; +} + +int dsmat_fill_s(Matrix* a, int m, int n, int b, int p, int q, char* name) { + int me, node; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + int mb = m/b, nb = n/b; + int ii, jj; + int row, col; + a->mb = mb; + a->nb = nb; + a->b = b; + a->blocks = calloc(mb,sizeof(Block*)); + for (ii = 0; ii < mb;ii++) { + a->blocks[ii] = calloc(nb,sizeof(Block)); + for (jj = 0; jj < nb;jj++) { + node = get_node(p,q,ii,jj); + node_coordinates_2i(p,q,node,&row,&col); + a->blocks[ii][jj].owner = node; + a->blocks[ii][jj].row = row; + a->blocks[ii][jj].col = col; + a->blocks[ii][jj].request = MPI_REQUEST_NULL; + if (me == a->blocks[ii][jj].owner) { + //printf("%d] s_allocating %s_%d,%d to fill with %f\n",me,name,ii,jj,(float)nb*(ii+1)+(jj+1)); + a->blocks[ii][jj].c = calloc(b*b,sizeof(float)); + val_mat(b,b,a->blocks[ii][jj].c,(float) nb*(ii+1)+(jj+1)); + } else { + a->blocks[ii][jj].c = NULL; + } + } + } + return 0; +} + +int dsmat_destroy(Matrix* a, char* name) { + int me; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + int mb = a->mb, nb = a->nb; + //printf("[%d] destroying matrix %s (mb=%d,nb=%d,b=%d)\n",me, name, mb, nb, a->b); + int ii, jj; + Block * a_ij; + for (ii = 0; ii < mb ; ii++) { + for (jj = 0; jj < nb ; jj++) { + a_ij = & a->blocks[ii][jj]; + //if (a_ij->c != NULL) { // && a_ij.owner == me) { + if (a_ij->c != NULL && a_ij->owner == me) { + free(a_ij->c); + } + } + free(a->blocks[ii]); + } + free(a->blocks); + return 0; +} + +int dsmat_scal_check(Matrix* A, float alpha) { + int i,j; + int me; + if (alpha == 0.0) return 0; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + Block* Aij; + for(i = 0; i < A->mb; i++) { + for(j = 0; j < A->nb; j++) { + Aij = & A->blocks[i][j]; + if (Aij->owner == me) { + double computation_amount = 2.0*A->b*A->b*A->b; + cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, A->b, A->b, A->b, + 0.0, Aij->c, A->b, Aij->c, A->b, + alpha, Aij->c, A->b); + } + } + } + return 0; +} + +int dsmat_scal(Matrix* A, float alpha) { + int i,j; + int me; + if (alpha == 0.0) return 0; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + Block* Aij; + SMPI_SAMPLE_LOCAL(i = 0, i < A->mb, i++, 10, 0.005) { + SMPI_SAMPLE_LOCAL(j = 0, j < A->nb, j++, 10, 0.005) { + Aij = & A->blocks[i][j]; + if (Aij->owner == me) { + double computation_amount = 2.0*A->b*A->b*A->b; + cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, A->b, A->b, A->b, + 0.0, Aij->c, A->b, Aij->c, A->b, + alpha, Aij->c, A->b); + } + } + } + return 0; +} + +// FIXME : remove alpha/beta +int local_outer_product_check(float alpha, Matrix* A, Matrix* B, Matrix* C, int l, int p, int q) { + int i, j, err; + for(i = 0; i < C->mb; i++) { + for(j = 0; j < C->nb; j++) { + err = compute_local_op(alpha, A, B, C, i, j, l); + if (err != 0) return 1; + } + } + /* free useless memory */ + free_local_op(A, B, l, p, q); + return 0; +} + +int local_outer_product(float alpha, Matrix* A, Matrix* B, Matrix* C, int l, int p, int q) { + int i, j, err; + SMPI_SAMPLE_LOCAL(i = 0, i < C->mb, i++, 10, 0.005) { + SMPI_SAMPLE_LOCAL(j = 0, j < C->nb, j++, 10, 0.005) { + err = compute_local_op(alpha, A, B, C, i, j, l); + if (err != 0) return 1; + } + } + /* free useless memory */ + free_local_op(A, B, l, p, q); + return 0; +} + +int compute_local_op(float alpha, Matrix* A, Matrix* B, Matrix* C, int i, int j, int l) { + int me; + int b; + Block *Ail, *Blj, *Cij; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + Cij = & C->blocks[i][j]; + b = C->b; + if (Cij->owner == me) { + Ail = & A->blocks[i][l]; + if (Ail->c == NULL) { return 1; } + Blj = & B->blocks[l][j]; + if (Blj->c == NULL) { return 2; } +// TRACE_host_set_state(COMPUTE); + cblas_sgemm(CblasRowMajor, CblasNoTrans, CblasNoTrans, b,b,b, + alpha, Ail->c, b, Blj->c, b, + 1.0, Cij->c, b); +// TRACE_host_set_state(IDLE); + } + return 0; +} + +int free_local_op(Matrix* A, Matrix* B, int l, int p, int q) { + int i,j; + int me, me_coord[2]; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates(p,q,me,me_coord); + Block *Ail, *Blj; + for (i = 0; i < A->mb; i++) { + Ail = & A->blocks[i][l]; + if (Ail->owner != me && Ail->c != NULL) { + free(Ail->c); + Ail->c = NULL; + } + } + for (j = 0; j < B->nb; j++) { + Blj = & B->blocks[l][j]; + if (Blj->owner != me && Blj->c != NULL) { + free(Blj->c); + Blj->c = NULL; + } + } + return 0; +} + +int block_copy(float * a, float * b, int m, int n) { + int i, j; + for (i = 0; i < m ; i++) { + for (j = 0; j < n ; j++) { + a[n*i+j] = b[n*i+j]; + } + } + return 0; +} + +int block_print(float * a, int m, int n, char* name) { + int i, j; + printf("block %s\n", name); + for (i = 0; i < m ; i++) { + for (j = 0; j < n ; j++) { + printf("%9.2f\t", a[n*i+j]); + } + printf("\n"); + } + printf("\n"); + return 0; +} + +// A <- B +int dsmat_copy(Matrix * A, Matrix * B) { + int i, j; + int me; + int mb, nb, b; + Block *Aij, *Bij; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + + A->mb = B->mb; + A->nb = B->nb; + A->b = B->b; + + mb = A->mb; + nb = A->nb; + b = A->b; + + A->blocks = calloc(mb, sizeof(Block*)); + for (i = 0; iblocks[i] = calloc(nb, sizeof(Block)); + for (j = 0; jblocks[i][j]; + Bij = & B->blocks[i][j]; + Aij->owner = Bij->owner; + Aij->row = Bij->row; + Aij->col = Bij->col; + Aij->request = MPI_REQUEST_NULL; + if (Bij->owner == me) { + Aij->c = calloc(b*b,sizeof(float)); + block_copy(Aij->c, Bij->c, b, b); + } + } + } + return 0; +} + +int dsmat_copy_to(Matrix * A, Matrix * B, int rcv, char* copy, char* copied) { + int i, j, l; + int me,tag; + int mb, nb, b; + Block *Aij, *Bij; + float* localA; + MPI_Status status; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + A->nb = 1; + A->mb = 1; + A->b = -1; + + mb = B->mb; + nb = B->nb; + b = B->b; + + tag = 0; + A->blocks = malloc(sizeof(Block*)); + A->blocks[0] = malloc(sizeof(Block)); + Aij = & A->blocks[0][0]; + Aij->owner = rcv; + Aij->row = -1; + Aij->col = -1; // not on a grid ... + Aij->request = MPI_REQUEST_NULL; + if (me == rcv) { + Aij->c = malloc(mb*b*nb*b *sizeof(float)); + } + for (i = 0; iblocks[i][j]; + if (Bij->owner == me) { + if (rcv != me) { + MPI_Send(Bij->c, b*b, MPI_FLOAT, + rcv, tag, + MPI_COMM_WORLD); + } else { + for (l = 0; lc[nb*i*b*b+j*b+l*nb*b], Bij->c, 1, b); + } + } + } else if (me == rcv) { + localA = malloc(b*b*sizeof(float)); + MPI_Recv(localA, b*b, MPI_FLOAT, + Bij->owner, tag, + MPI_COMM_WORLD,&status); + for (l = 0; lc[nb*i*b*b+j*b+l*nb*b], localA, 1, b); + } + free(localA); + } + } + } + return 0; +} diff --git a/TP2/src/dsmat.h b/TP2/src/dsmat.h new file mode 100644 index 0000000..043c3bf --- /dev/null +++ b/TP2/src/dsmat.h @@ -0,0 +1,62 @@ +#ifndef DENSE_MAT_FNCT_H +#define DENSE_MAT_FNCT_H + +typedef struct Blocks { + float* c; // The Content of the block stored in an array. + // This pointer is only meaningful to the owner + // otherwise it is NULL. + // Element x_i,j of a given block of size b + // can be accessed as x->c[b*i+j]. + int owner; // The MPI rank of the owner of this block. + // This information is available to all the nodes. + int row, col; // owner = row * q + col in a p x q grid. + MPI_Request request; // The Request can be used when sending the block + // through Immediate Return routines of MPI such as MPI_Irecv +} Block; + +typedef struct Matrices { + int mb, nb, b; // A given Matrix is of size mb*b x nb*b, b being the + // dimension of every of its square blocks i.e. + // nb is the number of column blocks, mb the one of row blocks -- oof + Block** blocks; // This 2D array describes each block of a given Matrix. + // This is meaningful to all the nodes : information on a block A_i,j + // from a matrix A can be accessed through the block A->blocks[i][j] from every MPI rank. +} Matrix; + +// tracing +void init_trace(); + +/* dense matrices routines */ +// fill matrix a with values matching the position of the block in the matrix +// i.e. block a_i,j is full of n*(i+1)+(j+1) with a of size m x n +int dsmat_fill_s(Matrix* a, int m, int n, int b, int p, int q, char* name); +// destroy matrix a +int dsmat_destroy(Matrix* a, char* name); +// scale matrix a by alpha +int dsmat_scal_check(Matrix* a, float alpha); +int dsmat_scal(Matrix* a, float alpha); + +int dsmat_fill_v(Matrix* a, int m, int n, int b, int p, int q, char* name, float value); + +/* dense matrices copy */ +// copy a[0:m-1,0:n-1] into b[0:m-1,0:n-1] +int block_copy(float * a, float * b, int m, int n); +// print a[0:m-1,0:n-1] +int block_print(float * a, int m, int n, char* name); +// copy matrix B into matrix A +int dsmat_copy(Matrix * A, Matrix * B); +// copy matrix B into matrix A owned only by rank rcv +int dsmat_copy_to(Matrix * A, Matrix * B, int rcv, char* copy, char* copied); + +/* gemm generic routines */ +// computing C += A:l * Bl: for all blocks of C I own using compute_local_op +// matrices A and B that I do not own are freed from memory using free_local_op +int local_outer_product_check(float alpha, Matrix* A, Matrix* B, Matrix* C, int l, int p, int q); +int local_outer_product(float alpha, Matrix* A, Matrix* B, Matrix* C, int l, int p, int q); +// compute C_i,j += A_i,l * B_l,j +// if a given block is missing, the corresponding computation is skipped +int compute_local_op(float alpha, Matrix* A, Matrix* B, Matrix* C, int i, int j, int l); +// free A:l and Bl: from memory is I do not own them +int free_local_op(Matrix* A, Matrix* B, int l, int p, int q); + +#endif diff --git a/TP2/src/ex1.c b/TP2/src/ex1.c new file mode 100644 index 0000000..e45e38e --- /dev/null +++ b/TP2/src/ex1.c @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +void p2p_transmit_A(int p, int q, Matrix *A, int i, int l) +{ + int j; + int me, my_row, my_col; + MPI_Status status; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + Block *Ail; + int node, tag, b; + tag = 0; + Ail = &A->blocks[i][l]; + b = A->b; + + /* TODO : transmit A[i,l] using MPI_Ssend & MPI_Recv */ + if (Ail->owner == me) + { // I own A[i,l] + /* MPI_Ssend A[i,l] to my row */ + for (j = 0; j < q; j++) + { + node = get_node(p, q, my_row, j); + if (node != me) + { + // printf("%d Sending A[%d,%d] to node %d\n", my_rank, i, l, node); + MPI_Ssend(Ail->c, b * b, MPI_FLOAT, node, tag, MPI_COMM_WORLD); + // printf("%d Sent A[%d,%d] to node %d\n", my_rank, i, l, node); + } + } + } + else if (Ail->row == my_row) + { // A[i,l] is stored on my row + Ail->c = malloc(b * b * sizeof(float)); + /* MPI_Recv A[i,l] */ + // printf("%d Receiving A[%d,%d] from node %d\n", my_rank, i, l, node); + MPI_Recv(Ail->c, b * b, MPI_FLOAT, Ail->owner, tag, MPI_COMM_WORLD, &status); + // printf("%d Received A[%d,%d] from node %d\n", my_rank, i, l, node); + } + /* end TODO */ +} + +void p2p_transmit_B(int p, int q, Matrix *B, int l, int j) +{ + int i; + int me, my_row, my_col; + MPI_Status status; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + int node, tag, b; + tag = 1; + Block *Blj; + Blj = &B->blocks[l][j]; + b = B->b; + /* TODO : transmit B[l,j] using MPI_Ssend & MPI_Recv */ + if (Blj->owner == me) + { // I owned B[l,j] + /* MPI_Ssend B[l,j] to my column */ + for (i = 0; i < p; i++) + { + node = get_node(p, q, i, my_col); + if (node != me) + { + // printf("%d Sending B[%d,%d] to node %d\n", me, l, j, node); + MPI_Ssend(Blj->c, b * b, MPI_FLOAT, node, tag, MPI_COMM_WORLD); + // printf("%d Sent B[%d,%d] to node %d\n", me, l, j, node); + } + } + } + else if (Blj->col == my_col) + { // B[l,j] is stored on my column + Blj->c = malloc(b * b * sizeof(float)); + /* MPI_Recv B[l,j] */ + // printf("%d Receiving B[%d,%d] from node %d\n", me, l, j, node); + MPI_Recv(Blj->c, b * b, MPI_FLOAT, Blj->owner, tag, MPI_COMM_WORLD, &status); + // printf("%d Received B[%d,%d] from node %d\n", me, l, j, node); + } + /* end TODO */ +} diff --git a/TP2/src/ex1.c.clem b/TP2/src/ex1.c.clem new file mode 100644 index 0000000..ffd8844 --- /dev/null +++ b/TP2/src/ex1.c.clem @@ -0,0 +1,63 @@ +#include +#include +#include +#include +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +void p2p_transmit_A(int p, int q, Matrix *A, int i, int l) { + int j; + int me, my_row, my_col; + MPI_Status status; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p,q,me,&my_row,&my_col); + + Block *Ail; + int node, tag, b; + Ail = & A->blocks[i][l]; + b = A->b; + /* TODO : transmit A[i,l] using MPI_Ssend & MPI_Recv */ + if (Ail->owner == me /* I own A[i,l]*/) { + /* MPI_Ssend A[i,l] to my row */ + for (j = 0; j < q; j++) { + node = get_node(p, q, my_row, j); + if (node != me) + MPI_Ssend(Ail->c, b*b, MPI_FLOAT, node, 0, MPI_COMM_WORLD); + } + } else if (Ail->row == my_row /* A[i,l] is stored on my row */) { + Ail->c = malloc(b*b*sizeof(float)); + /* MPI_Recv A[i,l] */ + MPI_Recv(Ail->c, b*b, MPI_FLOAT, Ail->owner, 0, MPI_COMM_WORLD, &status); + } + /* end TODO */ +} + +void p2p_transmit_B(int p, int q, Matrix *B, int l, int j) { + int i; + int me, my_row, my_col; + MPI_Status status; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p,q,me,&my_row,&my_col); + + int node, tag, b; + Block *Blj; + Blj = & B->blocks[l][j]; + b = B->b; + /* TODO : transmit B[l,j] using MPI_Ssend & MPI_Recv */ + if (Blj->owner == me /* I owned B[l,j]*/) { + /* MPI_Ssend B[l,j] to my column */ + for (i = 0; i < p; i++) { + node = get_node(p, q, i, my_col); + if (node != me) + MPI_Ssend(Blj->c, b*b, MPI_FLOAT, node, 1, MPI_COMM_WORLD); + } + } else if (Blj->col == my_col /* B[l,j] is stored on my column */) { + Blj->c = malloc(b*b*sizeof(float)); + /* MPI_Recv B[l,j] */ + MPI_Recv(Blj->c, b*b, MPI_FLOAT, Blj->owner, 1, MPI_COMM_WORLD, &status); + } + /* end TODO */ +} \ No newline at end of file diff --git a/TP2/src/ex1.h b/TP2/src/ex1.h new file mode 100644 index 0000000..71ae2af --- /dev/null +++ b/TP2/src/ex1.h @@ -0,0 +1,5 @@ +#ifndef EXO_1_H +#define EXO_1_H +void p2p_transmit_A(int p, int q, Matrix *A, int i, int l); +void p2p_transmit_B(int p, int q, Matrix *B, int l, int j); +#endif diff --git a/TP2/src/ex2.c b/TP2/src/ex2.c new file mode 100644 index 0000000..890a6d7 --- /dev/null +++ b/TP2/src/ex2.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +void bcast_A(int p, int q, Matrix *A, int i, int l, MPI_Comm row_comm) +{ + int me, my_row, my_col; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + Block *Ail; + int b = A->b; + Ail = &A->blocks[i][l]; + /* TODO : transmit A[i,l] using MPI_Bcast */ + if (q > 1 && Ail->row == my_row) + { /* Ail is stored on my row */ + if (Ail->owner != me) + { + Ail->c = calloc(b * b, sizeof(float)); + } + // MPI_Bcast + MPI_Bcast(Ail->c, b * b, MPI_FLOAT, Ail->col, row_comm); + } + /* end TODO */ +} + +void bcast_B(int p, int q, Matrix *B, int l, int j, MPI_Comm col_comm) +{ + int me, my_row, my_col; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + Block *Blj; + int b = B->b; + Blj = &B->blocks[l][j]; + /* TODO : transmit B[l,j] using MPI_Bcast */ + if (p > 1 && Blj->col == my_col) + { /* Blj is stored on my column */ + if (Blj->owner != me) + { + Blj->c = calloc(b * b, sizeof(float)); + } + // MPI_Bcast + MPI_Bcast(Blj->c, b * b, MPI_FLOAT, Blj->row, col_comm); + } + /* end TODO */ +} diff --git a/TP2/src/ex2.h b/TP2/src/ex2.h new file mode 100644 index 0000000..a0554a3 --- /dev/null +++ b/TP2/src/ex2.h @@ -0,0 +1,5 @@ +#ifndef EXO_2_H +#define EXO_2_H +void bcast_A(int p, int q, Matrix *A, int i, int l, MPI_Comm row_comm); +void bcast_B(int p, int q, Matrix *B, int l, int j, MPI_Comm col_comm); +#endif diff --git a/TP2/src/ex3.c b/TP2/src/ex3.c new file mode 100644 index 0000000..c56d06d --- /dev/null +++ b/TP2/src/ex3.c @@ -0,0 +1,108 @@ +#include +#include +#include +#include +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +void p2p_i_transmit_A(int p, int q, Matrix *A, int i, int l) +{ + int j, b; + int me, my_row, my_col; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + int node, tag; + tag = 0; + Block *Ail; + Ail = &A->blocks[i][l]; + b = A->b; + + /* TODO : transmit A[i,l] using MPI_Isend/recv */ + if (Ail->owner == me) + { + // MPI_Isend Ail to my row + for (j = 0; j < q; j++) + { + node = get_node(p, q, my_row, j); + if (node != me) + { + MPI_Isend(Ail->c, b * b, MPI_FLOAT, node, tag, MPI_COMM_WORLD, &Ail->request); + } + } + } + else if (Ail->row == my_row) + { + Ail->c = calloc(b * b, sizeof(float)); + // MPI_Irecv Ail + MPI_Irecv(Ail->c, b * b, MPI_FLOAT, Ail->owner, tag, MPI_COMM_WORLD, &Ail->request); + } + /* end TODO */ +} + +void p2p_i_transmit_B(int p, int q, Matrix *B, int l, int j) +{ + int i, b; + int me, my_row, my_col; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + int node, tag; + tag = 1; + Block *Blj; + Blj = &B->blocks[l][j]; + b = B->b; + + /* TODO : transmit B[l,j] using MPI_Isend/recv */ + if (Blj->owner == me) + { + // MPI_Isend Blj to my col + for (i = 0; i < p; i++) + { + node = get_node(p, q, i, my_col); + if (node != me) + { + MPI_Isend(Blj->c, b * b, MPI_FLOAT, node, tag, MPI_COMM_WORLD, &Blj->request); + } + } + } + else if (Blj->col == my_col) + { + Blj->c = calloc(b * b, sizeof(float)); + // MPI_Irecv Blj + MPI_Irecv(Blj->c, b * b, MPI_FLOAT, Blj->owner, tag, MPI_COMM_WORLD, &Blj->request); + } + /* end TODO */ +} + +void p2p_i_wait_AB(int p, int q, Matrix *A, Matrix *B, Matrix *C, int l) +{ + int me, my_row, my_col; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates_2i(p, q, me, &my_row, &my_col); + + int i, j; + Block *Ail, *Blj; + /* TODO : wait for A[i,l] and B[l,j] if I need them */ + for (i = 0; i < A->mb; i++) + { + Ail = &A->blocks[i][l]; + if (Ail->owner != me && Ail->row == my_row) + { + // MPI_Wait Ail + MPI_Wait(&Ail->request, MPI_STATUS_IGNORE); + } + } + for (j = 0; j < B->nb; j++) + { + Blj = &B->blocks[l][j]; + if (Blj->owner != me && Blj->col == my_col) + { + // MPI_Wait Blj + MPI_Wait(&Blj->request, MPI_STATUS_IGNORE); + } + } + /* Alternative suggestion : iterate over blocks of C */ + /* end TODO */ +} diff --git a/TP2/src/ex3.h b/TP2/src/ex3.h new file mode 100644 index 0000000..ee1085c --- /dev/null +++ b/TP2/src/ex3.h @@ -0,0 +1,6 @@ +#ifndef EXO_3_H +#define EXO_3_H +void p2p_i_transmit_A(int p, int q, Matrix *A, int i, int l); +void p2p_i_transmit_B(int p, int q, Matrix *B, int l, int j); +void p2p_i_wait_AB(int p, int q, Matrix *A, Matrix* B, Matrix* C,int l); +#endif diff --git a/TP2/src/gemms.c b/TP2/src/gemms.c new file mode 100644 index 0000000..e91fe7f --- /dev/null +++ b/TP2/src/gemms.c @@ -0,0 +1,157 @@ +#include +#include +#include +#include +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +#include "ex1.h" +#include "ex2.h" +#include "ex3.h" + +int pgemm_p2p(int check, int p, int q, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C) { + int mb, nb, kb; + int i, j, l; + int me, me_coord[2], my_row, my_col; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates(p,q,me,me_coord); + node_coordinates_2i(p,q,me,&my_row,&my_col); + + if (A->nb != B->mb || A->mb != C-> mb || B->nb != C->nb) { + if (me == 0) { + printf(" A B C\n"); + printf(" mb %d %d %d\n", A->mb, B->mb, C->mb); + printf(" nb %d %d %d\n", A->nb, B->nb, C->nb); + } + return 1; + } + if (B->b != A->b || A->b != C-> b) return 2; + mb = C->mb; + nb = C->nb; + kb = A->nb; + + for (l = 0; l < kb; l++) { + for (i = 0; i < mb; i++) { + p2p_transmit_A(p,q,A,i,l); + } + for (j = 0; j < nb; j++) { + p2p_transmit_B(p,q,B,l,j); + } + if (check) { + local_outer_product_check(1.0f, A, B, C, l, p, q); + } else { + local_outer_product(1.0f, A, B, C, l, p, q); + } + } + // printf("FINI\n"); + return 0; +} + +int pgemm_bcast(int check, int p, int q, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C) { + int mb, nb, kb; + int i, j, l; + int me, me_row_comm, me_col_comm, me_coord[2]; + int my_row, my_col; + MPI_Comm row_comm, col_comm; + + MPI_Comm_rank(MPI_COMM_WORLD, &me); + + if (A->nb != B->mb || A->mb != C-> mb || B->nb != C->nb) { + if (me == 0) { + printf(" A B C\n"); + printf(" mb %d %d %d\n", A->mb, B->mb, C->mb); + printf(" nb %d %d %d\n", A->nb, B->nb, C->nb); + } + return 1; + } + if (B->b != A->b || A->b != C-> b) return 2; + mb = C->mb; + nb = C->nb; + kb = A->nb; + + node_coordinates(p,q,me,me_coord); + node_coordinates_2i(p,q,me,&my_row, &my_col); + if (q > 1) { + MPI_Comm_split(MPI_COMM_WORLD, my_row, me, &row_comm); + MPI_Comm_rank(row_comm, &me_row_comm); + } else { + me_row_comm = -1; + } + if (p > 1) { + MPI_Comm_split(MPI_COMM_WORLD, my_col, me, &col_comm); + MPI_Comm_rank(col_comm, &me_col_comm); + } else { + me_col_comm = -1; + } + + for (l = 0; l < kb ; l++) { + for (i = 0; i < mb; i++) { + bcast_A(p,q,A,i,l,row_comm); + } + for (j = 0; j < nb; j++) { + bcast_B(p,q,B,l,j,col_comm); + } + if (check) { + local_outer_product_check(1.0f, A, B, C, l, p, q); + } else { + local_outer_product(1.0f, A, B, C, l, p, q); + } + } + if (q > 1) + MPI_Comm_free(&row_comm); + if (p > 1) + MPI_Comm_free(&col_comm); + return 0; +} + +int pgemm_p2p_i_la(int check, int p, int q, int lookahead, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C) { + int mb, nb, kb; + int i, j, l; + int me, me_coord[2],my_row, my_col; + MPI_Comm_rank(MPI_COMM_WORLD, &me); + node_coordinates(p,q,me,me_coord); + node_coordinates_2i(p,q,me,&my_row,&my_col); + + if (A->nb != B->mb || A->mb != C-> mb || B->nb != C->nb) { + if (me == 0) { + printf(" A B C\n"); + printf(" mb %d %d %d\n", A->mb, B->mb, C->mb); + printf(" nb %d %d %d\n", A->nb, B->nb, C->nb); + } + return 1; + } + if (B->b != A->b || A->b != C-> b) return 2; + mb = C->mb; + nb = C->nb; + kb = A->nb; + if (lookahead <= 0) return 3; + if (lookahead >= kb) lookahead = kb; + //printf("LA = %d, KB = %d\n",lookahead, kb); + for (l = 0; l < lookahead ; l++) { + for (i = 0; i < mb; i++) { + p2p_i_transmit_A(p,q,A,i,l); + } + for (j = 0; j < nb; j++) { + p2p_i_transmit_B(p,q,B,l,j); + } + } + for (l = 0; l < kb ; l++) { + if (l < kb - lookahead) { // "kb-th" lookahead : kb = l + lookahead + for (i= 0; i < mb; i++) { + p2p_i_transmit_A(p,q,A,i,l+lookahead); + } + for (j= 0; j < nb; j++) { + p2p_i_transmit_B(p,q,B,l+lookahead,j); + } + } + p2p_i_wait_AB(p,q,A,B,C,l); + if (check) { + local_outer_product_check(1.0f, A, B, C, l, p, q); + } else { + local_outer_product(1.0f, A, B, C, l, p, q); + } + } + return 0; +} + diff --git a/TP2/src/gemms.h b/TP2/src/gemms.h new file mode 100644 index 0000000..20be264 --- /dev/null +++ b/TP2/src/gemms.h @@ -0,0 +1,9 @@ +#ifndef PROGPARALLEL_GEMMS_H +#define PROGPARALLEL_GEMMS_H + +int pgemm_p2p(int check, int p, int q, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C); +int pgemm_bcast(int check, int p, int q, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C); +//int pgemm_p2p_i(int p, int q, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C); +int pgemm_p2p_i_la(int check, int p, int q, int lookahead, int m, int n, int k, Matrix* A, Matrix* B, Matrix* C); + +#endif diff --git a/TP2/src/main.c b/TP2/src/main.c new file mode 100644 index 0000000..e6fc9da --- /dev/null +++ b/TP2/src/main.c @@ -0,0 +1,270 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +static char doc[] = +"TP Prog Parallèle -- Ligne de commande"; + + +static char args_doc[] = "-m [m] -n [n] -k [k] -b [b] -p [p] -q [q] --algorithm [p2p|p2p-i-la|bcast] --lookahead [la] --niter [i]"; + +static struct argp_option options[] = { + {"m", 'm', "int", 0, "Number of rows in A and C (deprecated)" }, + {"n", 'n', "int", 0, "Dimension of A B and C" }, + {"k", 'k', "int", 0, "Shared dimension of A and B (deprecated)" }, + {"blocking", 'b', "int", 0, "Size of the square block of A, B and C (must divide m,n and k" }, + {"p", 'p', "int", 0, "Length of the logical grid"}, + {"q", 'q', "int", 0, "Width of the logical grid"}, + {"algorithm",'a', "string", 0, "GEMM distributed algorithm to use"}, + {"lookahead",'l', "int", 0, "Parameter for p2p-i-la algorithm"}, + {"verbose", 'v', 0, 0, "If the program print more"}, + {"checking", 'c', 0, 0, "If the program checks gemm results"}, + {"niter", 'i', "int", 0, "Number of iterations"}, + { 0 } +}; + +struct arguments +{ + int m, n, k, b; + int p, q; + int la; + char* algo; + int verbose, check; + int iter; +}; + + static error_t +parse_opt (int key, char *arg, struct argp_state *state) +{ + /* Get the input argument from argp_parse, which we + know is a pointer to our arguments structure. */ + struct arguments *arguments = state->input; + + switch (key) + { + case 'm': + arguments->m = atoi(arg); + break; + case 'n': + arguments->n = atoi(arg); + break; + case 'k': + arguments->k = atoi(arg); + break; + case 'b': + arguments->b = atoi(arg); + break; + case 'p': + arguments->p = atoi(arg); + break; + case 'q': + arguments->q = atoi(arg); + break; + case 'l': + arguments->la = atoi(arg); + break; + case 'a': + arguments->algo = arg; + break; + case 'v': + arguments->verbose = 1; + break; + case 'c': + arguments->check = 1; + break; + case 'i': + arguments->iter = atoi(arg); + break; + default: + return ARGP_ERR_UNKNOWN; + } + return 0; +} + +static struct argp argp = { options, parse_opt, args_doc, doc }; + +// void print_res(Matrix C, char* algo) { +// int i,j; +// int size, rank; +// MPI_Comm_size(MPI_COMM_WORLD, &size); +// MPI_Comm_rank(MPI_COMM_WORLD, &rank); +// char name[100]; +// for (i=0;i +#include +#include +#include +#include +#include +#include +#include +#include "utils.h" +#include "dsmat.h" +#include "gemms.h" + +int main(int argc, char* argv[]) { + + int p, q; + int m,n,k,b; + int i,j,l,la; + int err, iter, niter; + double d_start, d_stop; // on multiple nodes + clock_t t; // on one node + double time_taken, gflops; + int node,tag; + long unsigned int total_us; + char name[100]; + char * algo; + int vbose, check; + MPI_Status status; + + m = 2; + n = 4; + k = 4; + b = 2; + p = 1; + q = 2; + + // openblas_set_num_threads(1); + srand(time(NULL)); + + MPI_Init(NULL,NULL); + int world_size, world_rank; + MPI_Comm_size(MPI_COMM_WORLD, &world_size); + MPI_Comm_rank(MPI_COMM_WORLD, &world_rank); + printf("I am the %d-th node in a world of size %d\n", world_rank, world_size); + if (p*q != world_size) { + printf("bad world size\n"); + return 1; + } + + err = MPI_Barrier(MPI_COMM_WORLD); + if (err != MPI_SUCCESS) return 1; + // this initialization could probably get better + Matrix A = (Matrix){0},B = (Matrix){0},C = (Matrix){0}; + Matrix bA = (Matrix){0},bB = (Matrix){0},bC= (Matrix){0}; + Matrix wA = (Matrix){0},wB = (Matrix){0},wC= (Matrix){0}, bwC= (Matrix){0}; + printf("[%d] m,n,k = %d,%d,%d | b = %d | pxq = %dx%d | la = %d | test %f \n", + world_rank, m,n,k, b, p,q, la, 1.0f); + err = dsmat_fill_s(&A, m, k, b, p, q, "A"); + err = MPI_Barrier(MPI_COMM_WORLD); + if (err != MPI_SUCCESS) return 1; + + err = dsmat_copy(&wA,&A); + MPI_Barrier(MPI_COMM_WORLD); + err = dsmat_copy_to(&wC,&A,0,"wC","A"); + printf("%d ] dsmat_copy_to.err = %d\n", world_rank, err); + err = dsmat_destroy(&wA,"wA"); + err = dsmat_copy(&wA,&A); + err = dsmat_destroy(&wA,"wA"); + err = dsmat_copy(&wA,&A); + err = dsmat_destroy(&wC,"wC"); + err = dsmat_destroy(&A,"A"); + err = MPI_Barrier(MPI_COMM_WORLD); + printf("[%d] matrices destroyed (%d) \n", world_rank, err); + return MPI_Finalize(); +} diff --git a/TP2/src/utils.c b/TP2/src/utils.c new file mode 100644 index 0000000..919d600 --- /dev/null +++ b/TP2/src/utils.c @@ -0,0 +1,85 @@ +#include +#include +#include +#include +//#include +#include +#include "utils.h" + +void val_mat(int m, int n, float* mat, float val) { + int i,j; + for(i = 0; i %f Gflop/s check: %f (block:%d, kernel:%d)\n", name, total_us, gflops, nrm, b, kernel); + printf("CSV %d,%d,%d,%d,%d,%s,%ld,%f\n", m,n,k,b,kernel,name,total_us,gflops); +} + +void print_mat(float* a, int m, int n, char* name) { + int i,j; + for (i = 0; i < m ; i++) { + for (j = 0; j < n ; j++) { + printf("%s[%d,%d] = %f,",name,i,j,a[n*i+j]); + } + printf("\n"); + } + printf("\n"); +} + +// b = alpha*a + b +void myblas_sgepxy(float alpha, float* a, float* b, int m, int n) { + int i; + for (i = 0; i < m ; i++) { + cblas_saxpy(n,alpha,&a[n*i],1,&b[n*i],1); + } +} + +void node_coordinates(int p, int q, int node, int* coordinates) { + // node = q * c[0] + c[1] + coordinates[1] = node % q; + coordinates[0] = (node - coordinates[1])/q; +} + +void node_coordinates_2i(int p, int q, int node, int* my_row, int* my_col) { + // node = q * my_row + my_col + *my_col = node % q; + *my_row = (node - *my_col)/q; +} + +int get_node(int p, int q, int i, int j) { + return q*(i%p) + (j%q); +} + +// cf stackoverflow (https://stackoverflow.com/questions/504810/how-do-i-find-the-current-machines-full-hostname-in-c-hostname-and-domain-info) +void get_host_name(char* hostname, int buffer_size) { + hostname[buffer_size - 1] = '\0'; + gethostname(hostname, buffer_size - 1); +} diff --git a/TP2/src/utils.h b/TP2/src/utils.h new file mode 100644 index 0000000..904d47a --- /dev/null +++ b/TP2/src/utils.h @@ -0,0 +1,34 @@ +#ifndef PROGPARALLEL_UTILS_H +#define PROGPARALLEL_UTILS_H + +#define max(a,b) \ + ({ __typeof__ (a) _a = (a); \ + __typeof__ (b) _b = (b); \ + _a > _b ? _a : _b; }) + +// fill the content of mat with values val +void val_mat(int m, int n, float* mat, float val); +// fill the content of mat with random values from 0.0 to max +void rand_mat(int m, int n, float* mat, float max); +// b = alpha*a + b +void myblas_sgepxy(float alpha, float* a, float* b, int m, int n); + +// return the time between start and stop in µs +long unsigned int time_interval(struct timeval start,struct timeval stop); +// deprecated +void print_gflops(struct timeval stop, struct timeval start, int m, int n, int k, int b, int kernel, char* name, float * c); +// print the content of a[0:m-1,0;n-1] with given name +void print_mat(float* a, int m, int n, char* name); + +// fill coordinates according to node = q * coordinates[0] + coordinates[1] +void node_coordinates(int p, int q, int node, int* coordinates); +// fill my_row/col according to node = q * my_row + my_col +void node_coordinates_2i(int p, int q, int node, int* my_row, int* my_col); +// return the owner node of a block A_i,j on a p x q grid. +int get_node(int p, int q, int i, int j); +// return i*n +j; +int item_2d(int i, int j, int m, int n); + +// get the name of the machine +void get_host_name(char* hostname, int buffer_size); +#endif diff --git a/TP2/src/who_am_i.c b/TP2/src/who_am_i.c new file mode 100644 index 0000000..57b1c8b --- /dev/null +++ b/TP2/src/who_am_i.c @@ -0,0 +1,23 @@ +#include +#include + +int main( int argc, char *argv[] ) { + + int rank, size; + int l; + char name[MPI_MAX_PROCESSOR_NAME]; + + //MPI_Init (&argc, &argv); /* starts MPI */ + MPI_Init (NULL, NULL); /* starts MPI */ + + MPI_Comm_rank (MPI_COMM_WORLD, &rank); /* get current process id */ + MPI_Comm_size (MPI_COMM_WORLD, &size); /* get number of processes */ + + MPI_Get_processor_name(name, &l); /* get processor name */ + + printf("Hello world from process %d of %d on processor named %s\n", rank, size, name); + + MPI_Finalize(); + + return 0; +} diff --git a/TP2/subject_mpi.pdf b/TP2/subject_mpi.pdf new file mode 100644 index 0000000000000000000000000000000000000000..88012725e13305bec006531b1ce66c406829cbfe GIT binary patch literal 263707 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%0D$y?shX;=oh0);`C6@91D41A`}Y&GMo5Q+ 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%0D}PufzC?ymf6Ac+51iGZWqy7;3P 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%0DXBL%&C1tJ#4uDQRlO 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�Ck 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/hostfile.$N.txt + done +} + +run() { + human=${1:-0} + mkdir -p $out + echo $my_mpirun $mpi_options ${exec:-build/bin/main} -m $m -k $k -n $n -b $b -a $algo -p $p -q $q -i $iter $options + $my_mpirun $mpi_options ${exec:-build/bin/main} -m $m -k $k -n $n -b $b -a $algo -p $p -q $q -i $iter $options &>$out/$algo.out + echo reading $out/$algo.out + correct=$(grep -i "gemm is correct" "$out/$algo.out" | wc -l) + trial=$(grep "Gflop/s" $out/$algo.out | grep $algo | wc -l) + echo Found $correct correct GEMM out of $trial + + while read line; do + # [0] (p2p) measured_wtime = 0.000058s (la=0) | 0.002195 Gflop/s + gflops=$(echo $line | grep -o "| .* Gflop/s" | grep -o "[0-9]\\+.[0-9]\\+") + if [ $human -eq 0 ]; then + echo "$m,$k,$n,$b,$p,$q,$algo,$la,$gflops" + else + echo "mxnxk=${m}x${n}x${k},b=$b,p x q = $p x $q | using $algo, (lookahead:$la) => $gflops Gflop/s" + fi + echo "$m,$k,$n,$b,$p,$q,$algo,$la,$gflops" >>$csv + done < <(grep "Gflop/s" $out/$algo.out | grep $algo) + + if [ $la -gt 0 ]; then + algo=$algo-$la + fi + + mkdir -p $traces + mv -f smpi_simgrid.trace $traces/$algo.trace + echo You can open $traces/$algo.trace with $VITE_DIR/build/bin/vite + echo +}