#include <stdio.h>
#include <math.h>
#include <time.h>
#include <unistd.h>
#include <cuda_runtime_api.h>
#include <errno.h>
#include <unistd.h>

/*********************************************************************
To compile:
	nvcc -o aashish linear.cu -lm
To run:
	./aashish

Dr Kevan Buckley, University of Wolverhampton, 2018 
**********************************************************************/

typedef struct point_t {
  double x;
  double y;
} point_t;

int n_data = 1000;
__device__ int d_n_data = 1000;

// data of linear Regression

point_t data[] = {
  {77.52,111.16},{79.22,112.40},{72.15,118.44},{65.35,107.13},
  {77.17,122.11},{69.27,121.55},{68.41,102.39},{77.04,142.61},
  {65.28,109.43},{65.37,108.13},{82.08,144.07},{79.41,126.98},
  {85.32,120.36},{70.14,110.40},{73.30,127.07},{ 5.97,28.63},
  {80.49,123.26},{50.07,66.31},{56.02,107.73},{ 2.83,39.08},
  {68.54,123.97},{84.60,141.02},{20.86,38.32},{48.38,67.35},
  {56.57,94.10},{96.94,150.32},{69.81,113.25},{68.89,115.30},
  {46.76,60.28},{35.71,63.96},{63.70,113.86},{18.46,52.49},
  {48.48,83.58},{67.43,104.48},{81.34,146.11},{ 3.82,31.58},
  {12.85,37.14},{27.77,53.03},{94.36,149.10},{42.13,69.36},
  {78.35,134.01},{79.13,126.24},{14.33,50.01},{ 7.25,38.53},
  {92.05,146.99},{83.36,128.02},{50.18,96.34},{24.68,49.90},
  {85.16,122.33},{89.70,152.03},{86.76,140.41},{48.03,84.67},
  {75.57,116.22},{ 1.47,18.46},{80.11,129.09},{26.70,60.38},
  {89.25,146.50},{83.63,143.57},{84.54,145.00},{83.60,126.02},
  {34.41,71.97},{49.97,86.96},{45.47,66.06},{10.52,27.98},
  {79.23,143.58},{13.72,41.06},{14.52,47.18},{39.12,83.71},
  {24.08,42.18},{62.12,103.04},{25.68,51.91},{24.95,59.29},
  {29.45,81.68},{86.17,141.17},{ 4.71,41.81},{99.57,143.53},
  {82.09,123.12},{80.61,135.59},{69.88,123.64},{35.68,58.67},
  {56.28,94.81},{80.61,118.20},{55.45,95.69},{ 0.90,32.07},
  {19.45,40.02},{45.44,87.42},{54.10,88.99},{ 7.79,46.13},
  {70.78,136.58},{14.00,39.55},{77.44,117.50},{41.75,85.97},
  {41.13,81.01},{20.52,39.83},{47.83,91.97},{26.41,52.02},
  {32.09,71.52},{31.53,70.05},{29.75,60.78},{58.01,116.93},
  {14.31,27.87},{27.90,70.77},{98.57,156.98},{38.30,75.09},
  {46.99,85.40},{11.18,47.03},{39.33,76.67},{11.83,40.98},
  {85.97,142.88},{36.38,69.22},{82.51,127.25},{45.72,80.09},
  {60.22,114.65},{62.96,102.01},{85.78,132.10},{59.99,98.73},
  {79.48,118.37},{ 5.71,15.68},{76.29,129.40},{52.82,93.20},
  {27.03,67.46},{76.71,120.54},{52.74,99.66},{94.34,147.81},
  {26.73,42.36},{42.22,91.16},{16.38,25.64},{40.82,86.58},
  {43.43,102.28},{56.29,109.19},{87.00,125.70},{10.05,47.43},
  {86.82,137.87},{25.16,55.40},{34.03,60.92},{66.25,130.63},
  {91.44,137.46},{68.89,123.75},{94.88,145.16},{87.61,148.82},
  {77.70,148.02},{ 3.50,27.88},{18.62,55.41},{93.05,142.93},
  {95.51,156.15},{54.31,79.89},{34.03,62.93},{84.03,127.57},
  {92.75,148.48},{38.04,91.10},{41.45,92.28},{98.83,155.37},
  {66.18,105.42},{ 9.40,25.98},{52.68,91.78},{10.20,32.71},
  {31.96,67.68},{59.41,110.00},{10.78,35.01},{41.46,79.28},
  {42.35,68.84},{42.51,77.19},{43.82,88.14},{82.59,135.28},
  {18.09,32.51},{84.34,129.38},{59.59,91.75},{45.52,77.50},
  {43.05,79.65},{23.04,52.11},{64.19,106.30},{98.97,174.90},
  {71.36,121.96},{ 9.13,42.33},{88.50,143.88},{ 1.67,24.66},
  {40.93,92.19},{59.40,91.55},{68.98,119.01},{13.27,43.80},
  {22.08,36.17},{ 7.19,41.61},{14.24,43.80},{70.55,123.81},
  { 9.62,35.51},{13.57,27.03},{25.25,61.69},{20.56,32.96},
  {93.59,154.75},{11.94,37.32},{82.04,135.70},{88.50,122.58},
  {66.98,137.04},{53.67,98.56},{28.84,47.17},{50.21,96.36},
  {59.92,109.70},{47.92,92.12},{79.66,111.84},{89.42,153.62},
  {56.03,89.30},{31.56,62.10},{ 6.56,35.40},{23.96,45.25},
  {53.95,95.69},{16.29,46.77},{48.30,79.70},{62.40,94.58},
  {72.42,117.56},{10.56,36.41},{59.29,96.06},{40.46,82.43},
  {82.20,124.33},{49.20,94.03},{47.47,84.97},{53.33,77.55},
  {94.86,136.83},{ 5.62,34.47},{33.58,57.96},{74.92,116.21},
  {53.04,92.01},{99.16,157.45},{26.01,58.56},{62.03,114.51},
  {62.89,114.63},{ 5.39,26.40},{77.44,108.36},{74.53,115.37},
  {96.41,148.42},{66.35,101.12},{56.41,105.20},{82.07,128.32},
  {65.25,105.11},{55.43,94.37},{92.59,143.93},{67.82,119.85},
  {73.57,117.92},{88.90,152.16},{20.75,28.26},{33.71,91.55},
  {86.36,126.21},{41.52,84.56},{50.68,96.51},{62.29,104.52},
  {63.65,103.14},{30.77,49.46},{38.54,78.35},{66.80,105.95},
  {41.88,67.82},{63.68,116.77},{68.46,111.50},{ 4.35,19.71},
  { 0.72,37.59},{46.62,83.00},{12.47,37.35},{95.71,139.71},
  {50.33,94.83},{ 4.50,45.88},{ 6.01,22.70},{ 5.13,43.99},
  {17.33,50.26},{49.01,93.47},{22.02,49.99},{65.75,121.54},
  {44.57,73.37},{59.81,84.22},{62.10,95.50},{83.27,141.79},
  {51.07,74.11},{13.81,53.39},{56.92,108.09},{12.39,42.54},
  {60.42,105.30},{35.49,73.98},{57.93,93.68},{66.54,123.83},
  {74.00,117.37},{80.38,110.30},{41.23,68.43},{71.31,120.14},
  {27.71,82.20},{24.92,63.16},{62.28,95.31},{ 1.68,28.94},
  {46.42,83.37},{93.39,154.26},{22.97,64.60},{20.33,75.85},
  { 0.73,28.08},{96.22,150.56},{64.52,112.78},{91.89,139.96},
  {67.39,118.37},{52.75,99.27},{85.89,135.80},{32.96,61.55},
  {57.02,97.09},{67.59,112.74},{67.81,116.64},{36.59,73.44},
  {55.15,87.94},{40.73,98.64},{49.23,90.08},{17.18,33.49},
  {28.38,64.64},{97.13,136.69},{73.03,133.87},{87.21,133.02},
  {18.18,47.63},{12.57,37.10},{64.76,109.73},{ 9.75,29.04},
  {82.12,122.64},{91.46,131.91},{90.84,161.10},{ 6.84,40.35},
  {64.83,115.85},{16.52,41.08},{41.31,84.71},{80.05,135.91},
  {85.63,145.77},{92.20,136.55},{22.56,68.10},{43.94,80.47},
  {90.98,149.53},{88.48,140.59},{43.94,80.18},{63.03,110.36},
  {75.31,106.33},{86.03,143.80},{25.08,39.53},{62.38,79.06},
  {81.41,128.93},{63.26,101.87},{21.56,42.27},{79.55,126.08},
  {16.35,50.80},{78.20,141.32},{85.79,130.63},{90.41,151.95},
  {96.25,155.76},{27.77,52.00},{49.28,107.01},{ 1.40,30.10},
  {23.75,42.55},{92.63,165.88},{10.36,51.28},{50.78,88.73},
  {63.98,116.57},{92.83,164.68},{34.70,48.17},{27.49,74.40},
  {75.93,131.29},{10.21,41.22},{ 3.78,26.87},{86.22,145.92},
  { 0.72,21.55},{82.01,119.06},{24.85,49.25},{24.17,42.57},
  {48.38,72.87},{ 2.75,29.34},{46.52,85.10},{ 4.17,38.00},
  {18.60,43.57},{10.01,46.84},{18.56,45.86},{ 8.11,31.69},
  {26.92,53.01},{46.19,98.79},{22.32,54.22},{77.02,125.15},
  {24.30,49.02},{42.80,70.37},{30.94,73.44},{ 1.05,17.82},
  {69.00,124.85},{ 6.43, 9.62},{83.83,138.28},{29.43,76.73},
  {16.51,31.77},{94.75,140.16},{85.78,141.11},{87.10,137.03},
  {56.33,110.88},{74.82,127.71},{68.60,106.65},{62.33,107.47},
  {90.49,138.26},{80.22,123.50},{17.66,55.51},{40.87,77.92},
  {96.92,155.77},{24.36,50.70},{27.06,62.59},{50.41,97.24},
  {84.40,129.94},{25.57,54.69},{81.49,142.95},{80.61,117.50},
  {56.43,91.26},{67.83,109.04},{45.38,80.45},{21.89,44.76},
  {65.29,105.12},{34.83,86.38},{85.78,124.36},{50.41,81.53},
  {50.27,79.33},{57.30,97.96},{68.23,114.28},{82.46,131.61},
  {32.72,60.25},{83.32,138.25},{34.42,63.08},{39.90,81.74},
  {85.35,126.03},{95.80,149.79},{20.32,49.18},{50.55,72.14},
  {63.02,116.86},{59.13,108.30},{61.44,102.80},{46.19,86.38},
  {15.92,43.37},{40.00,84.80},{61.95,88.92},{54.67,100.75},
  { 4.29,36.26},{ 5.10,33.31},{ 3.50,40.45},{ 4.42, 8.68},
  {29.41,64.46},{ 7.70,19.82},{31.14,72.65},{61.28,96.56},
  {46.92,77.08},{65.99,104.39},{95.46,161.08},{27.53,49.22},
  {28.30,59.01},{15.52,57.93},{44.15,78.62},{49.91,100.10},
  {82.67,127.34},{81.82,127.23},{38.41,80.46},{57.28,106.81},
  {18.48,32.81},{34.13,66.41},{13.86,50.03},{21.59,56.45},
  {70.26,108.90},{16.63,37.35},{14.04,41.79},{91.76,152.34},
  {54.53,105.55},{36.12,74.01},{39.43,62.06},{32.52,66.84},
  { 1.78,40.27},{97.20,143.38},{16.32,33.57},{52.58,99.32},
  {20.00,52.72},{ 9.46,55.59},{47.48,82.58},{15.68,51.34},
  {36.16,75.22},{47.72,82.07},{ 9.69,39.10},{64.32,101.08},
  {84.57,160.17},{71.23,115.34},{26.92,63.79},{14.85,43.65},
  {37.46,80.06},{47.01,77.58},{41.51,78.77},{20.13,30.33},
  {75.55,139.90},{28.64,60.96},{29.30,69.45},{32.19,64.66},
  {28.36,72.15},{88.38,119.57},{15.28,39.54},{93.26,139.72},
  {11.51,53.71},{43.60,95.04},{45.60,78.14},{ 3.57,29.21},
  {90.12,136.05},{75.02,136.05},{60.73,100.82},{54.35,76.07},
  {12.42,37.29},{15.97,43.37},{62.72,101.78},{66.66,101.18},
  {31.13,63.84},{16.90,30.99},{32.49,46.71},{ 6.72,24.28},
  {81.29,137.57},{11.62,39.70},{37.27,80.20},{38.44,55.09},
  {26.22,46.68},{72.02,128.27},{93.57,141.10},{19.96,52.81},
  {95.29,140.70},{82.63,124.22},{21.49,65.14},{37.50,65.28},
  {36.33,41.88},{ 2.80,21.88},{53.83,91.65},{23.48,51.98},
  { 0.26,18.69},{ 9.78,38.06},{55.51,95.54},{26.11,59.50},
  {66.62,106.73},{29.15,65.64},{91.74,131.71},{44.07,76.21},
  {25.99,72.12},{54.49,114.81},{ 9.86,20.89},{97.67,156.29},
  {50.73,98.87},{43.00,71.73},{33.20,63.16},{96.08,129.94},
  {81.89,116.29},{48.48,97.10},{84.96,129.52},{29.89,77.43},
  {97.71,158.62},{ 7.82,26.07},{48.00,74.17},{22.98,28.29},
  { 7.78,29.81},{87.69,134.46},{66.96,110.43},{29.66,58.10},
  {59.16,94.51},{ 9.78,53.91},{23.26,73.97},{80.25,111.81},
  { 5.49,31.00},{51.45,88.27},{26.16,62.35},{15.33,21.70},
  {64.11,94.35},{13.60,58.55},{96.86,163.67},{53.38,101.79},
  {72.19,131.99},{35.30,78.84},{35.58,75.39},{ 5.29,28.83},
  {52.18,88.32},{29.15,58.47},{68.61,118.68},{ 9.03,39.02},
  {53.02,94.32},{ 4.19,20.16},{86.28,138.55},{28.18,70.37},
  {79.41,110.80},{15.09,44.83},{25.83,75.62},{48.58,98.05},
  {89.20,159.29},{86.70,140.27},{ 3.17,40.76},{96.63,152.67},
  {18.67,47.44},{89.57,151.11},{58.17,111.14},{45.94,84.63},
  {83.89,120.58},{71.04,117.22},{47.48,84.85},{11.24,47.77},
  {19.70,43.48},{52.84,77.85},{79.23,108.40},{79.05,120.36},
  {13.26,32.19},{50.76,85.85},{49.61,85.65},{14.53,41.85},
  {69.05,119.84},{ 6.40,42.74},{84.93,125.81},{76.85,127.86},
  {48.14,79.37},{85.13,151.18},{56.95,93.58},{82.65,130.67},
  { 9.65,21.77},{21.35,49.34},{22.78,43.02},{91.26,140.04},
  {74.91,108.01},{82.34,136.20},{11.33,41.50},{62.76,94.01},
  {20.20,35.24},{97.32,130.86},{20.94,33.45},{22.91,54.45},
  {85.56,132.90},{67.99,99.84},{95.49,152.03},{ 5.15,31.48},
  {39.70,71.36},{89.24,132.56},{26.83,65.25},{53.91,84.01},
  {93.97,155.57},{60.33,100.15},{89.10,128.70},{37.78,62.06},
  {34.84,84.18},{82.21,135.26},{20.20,27.26},{18.62,20.01},
  {62.74,123.56},{38.08,84.55},{11.14,19.07},{90.45,147.49},
  { 2.91,27.35},{34.14,90.88},{27.65,61.28},{64.04,99.81},
  {81.98,145.18},{45.22,92.61},{57.15,99.66},{11.96,28.68},
  {30.86,54.84},{54.83,113.26},{96.13,148.21},{10.67,49.45},
  {36.30,67.49},{68.88,118.21},{91.31,136.49},{38.56,66.85},
  {20.85,62.17},{58.23,75.13},{62.58,119.43},{ 7.69,36.64},
  {15.81,50.25},{85.65,138.91},{22.56,57.46},{23.70,45.18},
  {68.61,106.30},{ 8.46,13.89},{78.33,120.49},{64.00,101.99},
  {33.96,82.64},{17.10,37.42},{ 9.12,55.21},{88.90,136.81},
  { 4.31,21.83},{ 0.27,44.25},{33.01,63.29},{90.78,150.83},
  {29.75,56.38},{41.83,77.65},{99.32,146.98},{20.67,41.27},
  {29.88,64.83},{61.91,92.15},{32.85,68.50},{16.52,67.78},
  {47.97,76.31},{98.29,136.74},{57.78,88.86},{ 6.57,41.50},
  {57.67,94.49},{80.69,145.66},{62.96,88.29},{24.08,58.52},
  {33.02,61.94},{63.73,108.86},{50.00,91.55},{42.26,71.77},
  {26.28,46.69},{75.83,109.03},{32.58,65.84},{73.45,125.13},
  {17.22,60.19},{ 1.62,44.30},{33.16,64.43},{57.13,87.24},
  { 0.27,22.73},{73.69,120.51},{56.52,107.02},{98.30,163.52},
  {67.17,98.80},{98.83,149.50},{41.63,76.64},{ 6.42,32.72},
  { 5.79,23.30},{31.46,66.12},{78.28,127.18},{87.88,134.44},
  {75.69,148.95},{10.24,33.70},{84.43,128.40},{17.12,49.17},
  {68.02,120.78},{16.91,62.01},{65.15,111.94},{51.96,82.89},
  {76.27,115.37},{70.24,104.03},{87.13,134.93},{30.40,53.98},
  { 7.27,35.97},{ 0.75,18.21},{ 1.76,23.23},{31.97,61.38},
  {38.83,80.93},{66.65,123.47},{ 4.18,30.76},{41.93,69.08},
  {46.47,90.02},{83.14,142.15},{56.84,92.75},{11.78,45.65},
  {68.70,109.38},{98.92,157.91},{44.58,74.93},{43.90,86.07},
  {17.64,53.98},{ 7.26,37.84},{26.12,48.64},{86.92,112.69},
  {78.27,133.41},{60.95,90.92},{83.98,135.16},{11.26,45.56},
  {84.96,139.77},{60.04,92.95},{85.54,116.38},{74.51,120.22},
  {37.92,81.66},{70.87,103.62},{29.33,56.28},{10.52,51.91},
  {54.60,85.17},{52.38,78.53},{36.30,60.86},{90.26,136.45},
  {74.31,121.37},{67.97,106.30},{82.27,126.63},{41.25,69.56},
  { 2.22,24.39},{31.05,59.24},{22.33,64.82},{48.14,102.14},
  {54.53,86.90},{25.91,61.26},{36.46,68.70},{80.01,131.96},
  {57.14,76.68},{60.94,93.86},{80.85,135.13},{89.10,131.16},
  {87.25,139.23},{90.39,140.79},{31.63,72.16},{78.72,136.50},
  {24.29,68.23},{85.50,133.49},{34.94,70.80},{83.83,126.73},
  {29.62,77.49},{49.68,96.09},{92.05,143.54},{88.91,147.78},
  {82.35,122.56},{64.68,107.68},{63.06,111.11},{92.59,149.80},
  {24.44,43.72},{97.80,163.78},{41.78,92.29},{ 2.72,31.12},
  {52.91,97.01},{88.19,140.19},{23.98,69.68},{55.29,89.54},
  {53.03,85.14},{23.47,76.93},{74.23,113.76},{88.83,123.52},
  {41.78,75.85},{44.57,89.28},{ 2.35,35.99},{76.13,105.44},
  {84.71,134.29},{10.55,27.36},{99.45,154.58},{ 6.14,43.49},
  {63.70,103.86},{18.44,54.04},{ 1.87,31.44},{22.55,63.47},
  {82.36,120.63},{82.84,124.47},{14.12,47.25},{83.51,142.79},
  {96.54,129.42},{ 4.00,25.12},{12.30,41.94},{60.42,99.01},
  {49.67,92.03},{16.22,53.79},{74.67,132.45},{11.89,28.47},
  {76.45,127.94},{53.48,86.64},{68.14,112.46},{85.56,138.30},
  {51.25,87.80},{33.96,51.26},{51.73,80.35},{10.34,39.13},
  {66.10,115.58},{44.36,81.26},{ 4.66,47.74},{88.52,134.11},
  {13.10,42.69},{ 9.18,30.96},{19.02,41.59},{79.10,129.31},
  {26.73,44.16},{69.34,116.44},{34.20,77.61},{ 9.96,40.58},
  {68.04,117.72},{88.25,139.17},{62.42,102.20},{ 1.20,23.01},
  {67.73,109.42},{ 0.23,16.71},{29.62,63.17},{96.10,136.79},
  { 0.92,26.76},{48.00,86.00},{85.74,146.72},{45.04,83.30},
  {50.36,83.44},{45.04,77.49},{ 9.41,45.07},{97.39,140.04},
  {99.74,146.39},{89.05,123.75},{10.66,35.33},{71.62,104.94},
  {24.56,62.75},{95.33,142.52},{37.61,61.74},{45.86,73.78},
  {67.86,104.74},{23.38,67.05},{47.04,87.19},{ 6.34,28.82},
  {73.73,120.60},{81.47,128.47},{26.52,53.14},{ 2.53,20.32},
  {28.84,50.84},{ 0.76,41.80},{37.29,63.33},{22.67,66.33},
  {38.55,54.28},{59.73,98.34},{31.74,63.37},{59.88,113.27},
  {50.04,81.77},{51.96,86.54},{ 0.85, 3.60},{85.63,144.34},
  {98.70,144.18},{76.71,121.76},{ 0.56,23.03},{45.50,82.52},
  {45.68,88.98},{85.70,128.57},{65.92,123.04},{36.78,72.79},
  {99.74,148.25},{28.80,48.62},{80.68,135.52},{81.00,142.31},
  {17.03,38.47},{34.25,59.59},{75.11,120.49},{73.79,121.20},
  {16.54,34.55},{27.15,54.96},{92.94,139.49},{14.12,44.55},
  {71.92,135.42},{ 2.22,32.43},{92.61,149.75},{91.18,147.30},
  { 8.82,35.86},{70.32,114.13},{71.05,109.55},{18.05,41.15},
  {18.65,30.42},{29.72,67.71},{15.23,44.53},{70.81,120.75},
  {25.76,82.69},{56.22,103.13},{28.37,60.94},{69.28,107.57},
  { 0.84,28.07},{16.87,46.86},{ 5.49,35.09},{65.94,125.99},
  {72.58,109.52},{ 9.31,37.32},{39.14,67.57},{46.13,79.62},
  {39.44,74.93},{ 9.70,29.12},{52.09,80.55},{46.10,82.12},
  {42.93,73.52},{30.87,56.92},{ 4.33,15.32},{18.89,54.08},
  {70.36,121.13},{27.83,52.07},{ 5.56,28.68},{91.41,148.62},
  {12.80,41.98},{56.69,105.82},{72.51,131.64},{76.79,133.32},
  {40.85,75.61},{33.46,70.87},{54.66,88.39},{86.04,136.64},
  {64.17,113.13},{61.18,111.80},{56.57,96.01},{ 9.35,40.00},
  {60.58,99.33},{84.92,124.57},{37.97,71.78},{33.42,52.84},
  {95.13,138.60},{21.54,46.52},{85.84,129.05},{ 5.69,25.50},
  {64.87,114.65},{67.67,116.24},{90.66,147.89},{79.40,140.73},
  { 1.91,33.37},{65.37,110.35},{34.65,78.24},{65.36,102.69},
  { 7.65,37.71},{41.41,83.68},{22.84,44.57},{45.92,95.12},
  {36.59,74.49},{44.03,77.76},{58.15,105.33},{57.77,105.29},
  {53.70,96.38},{39.03,80.22},{75.61,128.23},{ 3.76,25.12},
  {98.39,163.35},{57.93,111.30},{90.21,123.92},{91.53,144.53},
  {35.26,71.00},{25.50,54.45},{76.83,115.69},{77.68,110.84},
  {32.45,61.08},{13.82,47.85},{17.47,68.97},{23.25,39.16}
};
double residual_error(double x, double y, double m, double c) {
  double e = (m * x) + c - y;
  return e * e;
}

__device__ double d_residual_error(double x, double y, double m, double c) {
  double e = (m * x) + c - y;
  return e * e;
}

double rms_error(double m, double c) {
  int i;
  double mean;
  double error_sum = 0;
  for(i=0; i<n_data; i++) {
	error_sum += residual_error(data[i].x, data[i].y, m, c);
  }
  
  mean = error_sum / n_data;
  return sqrt(mean);
}

__global__ void d_rms_error(double *m, double *c, double *error_sum_arr, point_t *d_data) {
	int i = threadIdx.x + blockIdx.x * blockDim.x;
		error_sum_arr[i] = d_residual_error(d_data[i].x, d_data[i].y, *m, *c);
}

// Used for calculating Time
int time_difference(struct timespec *start, struct timespec *finish, long long int *difference) {
  long long int ds =  finish->tv_sec - start->tv_sec; 
  long long int dn =  finish->tv_nsec - start->tv_nsec; 

  if(dn < 0 ) {
    ds--;
    dn += 1000000000; 
  } 
  *difference = ds * 1000000000 + dn;
  return !(*difference > 0);
}

int main() {
  int i;
  double bm = 1.3;
  double bc = 10;
  double be;
  double dm[8];
  double dc[8];
  double e[8];
  double step = 0.01;
  double best_error = 999999999;
  int best_error_i;
  int minimum_found = 0;
  
  double om[] = {0,1,1, 1, 0,-1,-1,-1};
  double oc[] = {1,1,0,-1,-1,-1, 0, 1};

	struct timespec start, finish;   
	long long int time_elapsed;
	clock_gettime(CLOCK_MONOTONIC, &start);

	cudaError_t error;
	double *d_dm;
	double *d_dc;
	double *d_error_sum_arr;
	point_t *d_data;

  be = rms_error(bm, bc);

	error = cudaMalloc(&d_dm, (sizeof(double) * 8));
 	if(error){
   		fprintf(stderr, "cudaMalloc on d_dm returned %d %s\n", error, cudaGetErrorString(error));
   		exit(1);
 	}
	
	error = cudaMalloc(&d_dc, (sizeof(double) * 8));
 	if(error){
   		fprintf(stderr, "cudaMalloc on d_dc returned %d %s\n", error, cudaGetErrorString(error));
   		exit(1);
 	}
	
	error = cudaMalloc(&d_error_sum_arr, (sizeof(double) * 1000));
 	if(error){
   		fprintf(stderr, "cudaMalloc on d_error_sum_arr returned %d %s\n", error, cudaGetErrorString(error));
   		exit(1);
 	}

	error = cudaMalloc(&d_data, sizeof(data));
 	if(error){
   		fprintf(stderr, "cudaMalloc on d_data returned %d %s\n", error, cudaGetErrorString(error));
   		exit(1);
 	}

  while(!minimum_found) {
    for(i=0;i<8;i++) {
      dm[i] = bm + (om[i] * step);
      dc[i] = bc + (oc[i] * step);    
    }

  	error = cudaMemcpy(d_dm, dm, (sizeof(double) * 8), cudaMemcpyHostToDevice);  
  	if(error){
    	fprintf(stderr, "cudaMemcpy to d_dm returned %d %s\n", error, cudaGetErrorString(error));
  	}
	
  	error = cudaMemcpy(d_dc, dc, (sizeof(double) * 8), cudaMemcpyHostToDevice);  
  	if(error){
    	fprintf(stderr, "cudaMemcpy to d_dc returned %d %s\n", error, cudaGetErrorString(error));
  	}
	
  	error = cudaMemcpy(d_data, data, sizeof(data), cudaMemcpyHostToDevice);  
  	if(error){
    	fprintf(stderr, "cudaMemcpy to d_data returned %d %s\n", error, cudaGetErrorString(error));
  	}
	
    for(i=0;i<8;i++) {
			double h_error_sum_arr[1000];
			double error_sum_total;
			double error_sum_mean;
			d_rms_error <<<100,10>>>(&d_dm[i], &d_dc[i], d_error_sum_arr, d_data);
			cudaThreadSynchronize();
			error = cudaMemcpy(&h_error_sum_arr, d_error_sum_arr, (sizeof(double) * 1000), cudaMemcpyDeviceToHost);  
			if(error){
				fprintf(stderr, "cudaMemcpy to error_sum returned %d %s\n", error, cudaGetErrorString(error));
		  }
			for(int j=0; j<n_data; j++) {
    		error_sum_total += h_error_sum_arr[j];
  		}

			error_sum_mean = error_sum_total / n_data;
			e[i] = sqrt(error_sum_mean);

      if(e[i] < best_error) {
        best_error = e[i];
        best_error_i = i;
      }

			error_sum_total = 0;
    }


    if(best_error < be) {
      be = best_error;
      bm = dm[best_error_i];
      bc = dc[best_error_i];
    } else {
      minimum_found = 1;
    }
  }

	error = cudaFree(d_dm);
	if(error){
		fprintf(stderr, "cudaFree on d_dm returned %d %s\n", error,
	  	cudaGetErrorString(error));
		exit(1);
	}
	
	error = cudaFree(d_dc);
	if(error){
		fprintf(stderr, "cudaFree on d_dc returned %d %s\n", error,
			cudaGetErrorString(error));
		exit(1);
	}

	error = cudaFree(d_data);
	if(error){
		fprintf(stderr, "cudaFree on d_data returned %d %s\n", error,
	  	cudaGetErrorString(error));
	 	exit(1);
	}
		
	error = cudaFree(d_error_sum_arr);
	if(error){
		fprintf(stderr, "cudaFree on d_error_sum_arr returned %d %s\n", error,
	  	cudaGetErrorString(error));
	 	exit(1);
	}

	printf("minimum m,c is %lf,%lf with error %lf\n", bm, bc, be);
	clock_gettime(CLOCK_MONOTONIC, &finish);
	time_difference(&start, &finish, &time_elapsed);

  printf("Time elapsed was %lldns or %0.9lfs\n", time_elapsed, (time_elapsed/1.0e9));
	
  return 0;
}

	.file	"tmpxft_00329b2d_00000000-6_linear.cudafe1.cpp"
	.text
#APP

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB2047:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE2047:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.globl	_Z14residual_errordddd
	.type	_Z14residual_errordddd, @function
_Z14residual_errordddd:
.LFB2040:
	.cfi_startproc
	endbr64
	mulsd	%xmm0, %xmm2
	addsd	%xmm3, %xmm2
	subsd	%xmm1, %xmm2
	movaps	%xmm2, %xmm0
	mulsd	%xmm2, %xmm0
	ret
	.cfi_endproc
.LFE2040:
	.size	_Z14residual_errordddd, .-_Z14residual_errordddd
	.globl	_Z16d_residual_errordddd
	.type	_Z16d_residual_errordddd, @function
_Z16d_residual_errordddd:
.LFB2041:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE2041:
	.size	_Z16d_residual_errordddd, .-_Z16d_residual_errordddd
	.globl	_Z9rms_errordd
	.type	_Z9rms_errordd, @function
_Z9rms_errordd:
.LFB2042:
	.cfi_startproc
	endbr64
	movl	n_data(%rip), %ecx
	leaq	data(%rip), %rax
	xorps	%xmm3, %xmm3
	xorl	%edx, %edx
.L6:
	cmpl	%edx, %ecx
	jle	.L9
	movsd	(%rax), %xmm2
	incl	%edx
	addq	$16, %rax
	mulsd	%xmm0, %xmm2
	addsd	%xmm1, %xmm2
	subsd	-8(%rax), %xmm2
	mulsd	%xmm2, %xmm2
	addsd	%xmm2, %xmm3
	jmp	.L6
.L9:
	cvtsi2sdl	%ecx, %xmm0
	divsd	%xmm0, %xmm3
	movaps	%xmm3, %xmm0
	jmp	sqrt@PLT
	.cfi_endproc
.LFE2042:
	.size	_Z9rms_errordd, .-_Z9rms_errordd
	.globl	_Z15time_differenceP8timespecS0_Px
	.type	_Z15time_differenceP8timespecS0_Px, @function
_Z15time_differenceP8timespecS0_Px:
.LFB2043:
	.cfi_startproc
	endbr64
	movq	(%rsi), %rax
	movq	8(%rsi), %rcx
	subq	(%rdi), %rax
	subq	8(%rdi), %rcx
	jns	.L11
	decq	%rax
	addq	$1000000000, %rcx
.L11:
	imulq	$1000000000, %rax, %rax
	addq	%rcx, %rax
	testq	%rax, %rax
	movq	%rax, (%rdx)
	setle	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2043:
	.size	_Z15time_differenceP8timespecS0_Px, .-_Z15time_differenceP8timespecS0_Px
	.globl	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.type	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t, @function
_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t:
.LFB2069:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 24(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 8(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, (%rsp)
	leaq	48(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 104(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	movq	%rsp, %rax
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L12
	pushq	48(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z11d_rms_errorPdS_S_P7point_t(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 176
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	120(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L12:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2069:
	.size	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t, .-_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.globl	_Z11d_rms_errorPdS_S_P7point_t
	.type	_Z11d_rms_errorPdS_S_P7point_t, @function
_Z11d_rms_errorPdS_S_P7point_t:
.LFB2070:
	.cfi_startproc
	endbr64
	jmp	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.cfi_endproc
.LFE2070:
	.size	_Z11d_rms_errorPdS_S_P7point_t, .-_Z11d_rms_errorPdS_S_P7point_t
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC6:
	.string	"cudaMalloc on d_dm returned %d %s\n"
.LC7:
	.string	"cudaMalloc on d_dc returned %d %s\n"
.LC8:
	.string	"cudaMalloc on d_error_sum_arr returned %d %s\n"
.LC9:
	.string	"cudaMalloc on d_data returned %d %s\n"
.LC11:
	.string	"cudaMemcpy to d_dm returned %d %s\n"
.LC12:
	.string	"cudaMemcpy to d_dc returned %d %s\n"
.LC13:
	.string	"cudaMemcpy to d_data returned %d %s\n"
.LC14:
	.string	"cudaMemcpy to error_sum returned %d %s\n"
.LC15:
	.string	"cudaFree on d_dm returned %d %s\n"
.LC16:
	.string	"cudaFree on d_dc returned %d %s\n"
.LC17:
	.string	"cudaFree on d_data returned %d %s\n"
.LC18:
	.string	"cudaFree on d_error_sum_arr returned %d %s\n"
.LC19:
	.string	"minimum m,c is %lf,%lf with error %lf\n"
.LC21:
	.string	"Time elapsed was %lldns or %0.9lfs\n"
	.section	.rodata
	.align 32
.LC0:
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.align 32
.LC1:
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.section	.text.startup,"ax",@progbits
	.globl	main
	.type	main, @function
main:
.LFB2044:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 8248
	orq	$0, (%rsp)
	subq	$216, %rsp
	.cfi_def_cfa_offset 8464
	leaq	.LC0(%rip), %rsi
	movl	$16, %ecx
	movq	%fs:40, %rax
	movq	%rax, 8392(%rsp)
	xorl	%eax, %eax
	leaq	104(%rsp), %rax
	leaq	264(%rsp), %rdi
	rep movsl
	leaq	328(%rsp), %rdi
	leaq	.LC1(%rip), %rsi
	movl	$16, %ecx
	rep movsl
	movq	%rax, %rsi
	movl	$1, %edi
	movq	%rax, 32(%rsp)
	call	clock_gettime@PLT
	movsd	.LC4(%rip), %xmm1
	movsd	.LC5(%rip), %xmm0
	call	_Z9rms_errordd
	leaq	56(%rsp), %rdi
	movl	$64, %esi
	movsd	%xmm0, 8(%rsp)
	call	cudaMalloc@PLT
	testl	%eax, %eax
	je	.L18
	movl	%eax, %edi
	movl	%eax, %ebx
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC6(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L18:
	leaq	64(%rsp), %rdi
	movl	$64, %esi
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L19
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC7(%rip), %rdx
	movq	%rax, %r8
.L59:
	movq	stderr(%rip), %rdi
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
	movl	$1, %edi
	call	exit@PLT
.L19:
	leaq	72(%rsp), %rdi
	movl	$8000, %esi
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L20
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC8(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L20:
	leaq	80(%rsp), %rdi
	movl	$16000, %esi
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L40
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC9(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L40:
	movq	.LC4(%rip), %rax
	movsd	.LC3(%rip), %xmm6
	leaq	264(%rsp), %r14
	leaq	328(%rsp), %r15
	movq	%rax, 24(%rsp)
	movq	.LC5(%rip), %rax
	movsd	%xmm6, (%rsp)
	movq	%rax, 16(%rsp)
.L21:
	xorl	%eax, %eax
	leaq	200(%rsp), %rbx
.L22:
	movsd	.LC10(%rip), %xmm0
	mulsd	(%r14,%rax), %xmm0
	leaq	136(%rsp), %rsi
	addsd	16(%rsp), %xmm0
	movsd	%xmm0, 136(%rsp,%rax)
	movsd	.LC10(%rip), %xmm0
	mulsd	(%r15,%rax), %xmm0
	addq	$8, %rax
	addsd	24(%rsp), %xmm0
	movsd	%xmm0, -8(%rax,%rbx)
	cmpq	$64, %rax
	jne	.L22
	movq	56(%rsp), %rdi
	movl	$1, %ecx
	movl	$64, %edx
	call	cudaMemcpy@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L23
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movq	stderr(%rip), %rdi
	movl	%r12d, %ecx
	leaq	.LC11(%rip), %rdx
	movq	%rax, %r8
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L23:
	movq	64(%rsp), %rdi
	movq	%rbx, %rsi
	movl	$1, %ecx
	movl	$64, %edx
	call	cudaMemcpy@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L24
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movq	stderr(%rip), %rdi
	movl	%ebx, %ecx
	leaq	.LC12(%rip), %rdx
	movq	%rax, %r8
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L24:
	movq	80(%rsp), %rdi
	movl	$1, %ecx
	movl	$16000, %edx
	leaq	data(%rip), %rsi
	call	cudaMemcpy@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L25
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movq	stderr(%rip), %rdi
	movl	%ebx, %ecx
	leaq	.LC13(%rip), %rdx
	movq	%rax, %r8
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L25:
	movabsq	$4294967306, %r12
	xorl	%ebx, %ebx
.L32:
	movl	$1073741849, %edi
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	%r12, %rdx
	salq	$2, %rdi
	movl	$1, %ecx
	movl	$1, %esi
	movq	%r12, 120(%rsp)
	movl	$1, 128(%rsp)
	movq	%rdi, 88(%rsp)
	movl	$1, 96(%rsp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L26
	movq	64(%rsp), %rsi
	leaq	0(,%rbx,8), %rdi
	movq	80(%rsp), %rcx
	movq	72(%rsp), %rdx
	addq	%rdi, %rsi
	addq	56(%rsp), %rdi
	call	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
.L26:
	call	cudaThreadSynchronize@PLT
	movq	72(%rsp), %rsi
	movl	$2, %ecx
	leaq	392(%rsp), %r13
	movl	$8000, %edx
	movq	%r13, %rdi
	call	cudaMemcpy@PLT
	testl	%eax, %eax
	je	.L27
	movl	%eax, %edi
	movl	%eax, 44(%rsp)
	call	cudaGetErrorString@PLT
	movl	44(%rsp), %ecx
	movl	$2, %esi
	movq	stderr(%rip), %rdi
	movq	%rax, %r8
	leaq	.LC14(%rip), %rdx
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L27:
	movl	n_data(%rip), %edx
	xorl	%eax, %eax
	xorps	%xmm0, %xmm0
.L28:
	cmpl	%eax, %edx
	jle	.L60
	addsd	0(%r13,%rax,8), %xmm0
	incq	%rax
	jmp	.L28
.L60:
	cvtsi2sdl	%edx, %xmm1
	divsd	%xmm1, %xmm0
	call	sqrt@PLT
	movsd	(%rsp), %xmm5
	comisd	%xmm0, %xmm5
	minsd	%xmm5, %xmm0
	cmova	%ebx, %ebp
	incq	%rbx
	movsd	%xmm0, (%rsp)
	cmpq	$8, %rbx
	jne	.L32
	movsd	8(%rsp), %xmm7
	comisd	%xmm0, %xmm7
	jbe	.L57
	movslq	%ebp, %rax
	movsd	%xmm0, 8(%rsp)
	movsd	136(%rsp,%rax,8), %xmm3
	movsd	200(%rsp,%rax,8), %xmm4
	movsd	%xmm3, 16(%rsp)
	movsd	%xmm4, 24(%rsp)
	jmp	.L21
.L57:
	movq	56(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L35
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC15(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L35:
	movq	64(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L36
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC16(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L36:
	movq	80(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L37
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC17(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L37:
	movq	72(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L38
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC18(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L38:
	movsd	16(%rsp), %xmm0
	movsd	8(%rsp), %xmm2
	movb	$3, %al
	leaq	.LC19(%rip), %rsi
	movsd	24(%rsp), %xmm1
	movl	$2, %edi
	leaq	120(%rsp), %rbx
	call	__printf_chk@PLT
	movq	%rbx, %rsi
	movl	$1, %edi
	call	clock_gettime@PLT
	movq	32(%rsp), %rdi
	leaq	88(%rsp), %rdx
	movq	%rbx, %rsi
	call	_Z15time_differenceP8timespecS0_Px
	movq	88(%rsp), %rdx
	leaq	.LC21(%rip), %rsi
	movb	$1, %al
	movl	$2, %edi
	cvtsi2sdq	%rdx, %xmm0
	divsd	.LC20(%rip), %xmm0
	call	__printf_chk@PLT
	movq	8392(%rsp), %rax
	subq	%fs:40, %rax
	je	.L39
	call	__stack_chk_fail@PLT
.L39:
	addq	$8408, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2044:
	.size	main, .-main
	.section	.rodata.str1.1
.LC24:
	.string	"_Z11d_rms_errorPdS_S_P7point_t"
.LC25:
	.string	"d_n_data"
	.section	.text.startup
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB2072:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC24(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_Z11d_rms_errorPdS_S_P7point_t(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC25(%rip), %rdx
	movl	$4, %r9d
	leaq	_ZL8d_n_data(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE2072:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.globl	data
	.data
	.align 32
	.type	data, @object
	.size	data, 16000
data:
	.long	-1374389535
	.long	1079206215
	.long	1889785610
	.long	1079757373
	.long	2061584302
	.long	1079234068
	.long	-1717986918
	.long	1079777689
	.long	-1717986918
	.long	1079118233
	.long	-171798692
	.long	1079876648
	.long	1717986918
	.long	1079006822
	.long	-343597384
	.long	1079691345
	.long	1202590843
	.long	1079200481
	.long	1030792151
	.long	1079936778
	.long	-1374389535
	.long	1079071047
	.long	858993459
	.long	1079927603
	.long	1889785610
	.long	1079056957
	.long	-1030792151
	.long	1079613685
	.long	1546188227
	.long	1079198351
	.long	515396076
	.long	1080152965
	.long	-2061584302
	.long	1079005675
	.long	515396076
	.long	1079729029
	.long	343597384
	.long	1079007150
	.long	-343597384
	.long	1079707729
	.long	-1202590843
	.long	1079280926
	.long	1889785610
	.long	1080164925
	.long	1889785610
	.long	1079237181
	.long	1374389535
	.long	1080016568
	.long	-515396076
	.long	1079334010
	.long	1030792151
	.long	1079908106
	.long	-1030792151
	.long	1079085301
	.long	-1717986918
	.long	1079744921
	.long	858993459
	.long	1079137075
	.long	-515396076
	.long	1080018042
	.long	-1374389535
	.long	1075306823
	.long	-1374389535
	.long	1077715271
	.long	687194767
	.long	1079254876
	.long	-687194767
	.long	1079955619
	.long	-1030792151
	.long	1078528245
	.long	171798692
	.long	1079022551
	.long	1546188227
	.long	1078723215
	.long	1374389535
	.long	1079701176
	.long	171798692
	.long	1074176983
	.long	1889785610
	.long	1078168125
	.long	1546188227
	.long	1079059087
	.long	2061584302
	.long	1079967252
	.long	1717986918
	.long	1079322214
	.long	-687194767
	.long	1080139939
	.long	-171798692
	.long	1077206056
	.long	-1030792151
	.long	1078143221
	.long	-687194767
	.long	1078472867
	.long	1717986918
	.long	1079039590
	.long	-1030792151
	.long	1078741237
	.long	1717986918
	.long	1079477862
	.long	-171798692
	.long	1079524392
	.long	1889785610
	.long	1080216125
	.long	171798692
	.long	1079079895
	.long	0
	.long	1079791616
	.long	-1030792151
	.long	1079064821
	.long	858993459
	.long	1079825203
	.long	-1374389535
	.long	1078419783
	.long	171798692
	.long	1078862807
	.long	1202590843
	.long	1078057697
	.long	1202590843
	.long	1078983393
	.long	-1717986918
	.long	1078974873
	.long	1030792151
	.long	1079801610
	.long	-1889785610
	.long	1077048770
	.long	1374389535
	.long	1078607544
	.long	-1546188227
	.long	1078476144
	.long	-1202590843
	.long	1079305502
	.long	515396076
	.long	1079040901
	.long	1374389535
	.long	1079647928
	.long	-1889785610
	.long	1079268802
	.long	515396076
	.long	1080181637
	.long	687194767
	.long	1074696028
	.long	-515396076
	.long	1077908602
	.long	858993459
	.long	1076474675
	.long	-2061584302
	.long	1078104555
	.long	-1202590843
	.long	1077658910
	.long	171798692
	.long	1078625239
	.long	1030792151
	.long	1079482122
	.long	858993459
	.long	1080206131
	.long	-687194767
	.long	1078268067
	.long	1030792151
	.long	1079072522
	.long	1717986918
	.long	1079219814
	.long	-343597384
	.long	1080082513
	.long	-343597384
	.long	1079232593
	.long	687194767
	.long	1080004444
	.long	-1030792151
	.long	1076668661
	.long	-1374389535
	.long	1078526279
	.long	0
	.long	1075642368
	.long	171798692
	.long	1078150103
	.long	858993459
	.long	1079444275
	.long	343597384
	.long	1080188846
	.long	1030792151
	.long	1079301898
	.long	-687194767
	.long	1080033443
	.long	1030792151
	.long	1078531850
	.long	-1889785610
	.long	1079514562
	.long	2061584302
	.long	1077456404
	.long	858993459
	.long	1078522675
	.long	1889785610
	.long	1079331389
	.long	-1202590843
	.long	1079940382
	.long	-858993459
	.long	1079405772
	.long	-1030792151
	.long	1080230133
	.long	-687194767
	.long	1079357603
	.long	-1202590843
	.long	1080134942
	.long	171798692
	.long	1078461399
	.long	1202590843
	.long	1079323361
	.long	-515396076
	.long	1079174266
	.long	2061584302
	.long	1079840276
	.long	-1202590843
	.long	1073186078
	.long	-1889785610
	.long	1077048770
	.long	1030792151
	.long	1079248650
	.long	1202590843
	.long	1080042209
	.long	858993459
	.long	1077588787
	.long	-687194767
	.long	1078866083
	.long	0
	.long	1079398400
	.long	0
	.long	1080184832
	.long	-343597384
	.long	1079306321
	.long	1889785610
	.long	1080160829
	.long	1546188227
	.long	1079321231
	.long	0
	.long	1080172544
	.long	1717986918
	.long	1079305830
	.long	-1374389535
	.long	1080000839
	.long	-515396076
	.long	1078015098
	.long	2061584302
	.long	1079115284
	.long	-171798692
	.long	1078524968
	.long	-1546188227
	.long	1079360880
	.long	-171798692
	.long	1078377512
	.long	171798692
	.long	1079018455
	.long	1889785610
	.long	1076169277
	.long	1202590843
	.long	1077672673
	.long	1374389535
	.long	1079234232
	.long	1546188227
	.long	1080160911
	.long	-687194767
	.long	1076588707
	.long	343597384
	.long	1078233006
	.long	1889785610
	.long	1076693565
	.long	1030792151
	.long	1078433546
	.long	687194767
	.long	1078169436
	.long	-1546188227
	.long	1079307632
	.long	-515396076
	.long	1077417082
	.long	1030792151
	.long	1078269706
	.long	687194767
	.long	1078923100
	.long	1546188227
	.long	1079624335
	.long	2061584302
	.long	1077521940
	.long	-515396076
	.long	1078588538
	.long	858993459
	.long	1077474099
	.long	-1202590843
	.long	1078830366
	.long	858993459
	.long	1077769011
	.long	515396076
	.long	1079274373
	.long	1202590843
	.long	1079347937
	.long	-1546188227
	.long	1080141168
	.long	1030792151
	.long	1074976522
	.long	343597384
	.long	1078257582
	.long	-515396076
	.long	1079567482
	.long	-1030792151
	.long	1080160501
	.long	-1889785610
	.long	1079281090
	.long	343597384
	.long	1079953326
	.long	1030792151
	.long	1079256842
	.long	1202590843
	.long	1080095457
	.long	-343597384
	.long	1079081041
	.long	-1030792151
	.long	1079961845
	.long	1030792151
	.long	1078056714
	.long	-1889785610
	.long	1078810050
	.long	171798692
	.long	1078731735
	.long	171798692
	.long	1079489495
	.long	1030792151
	.long	1079256842
	.long	-858993459
	.long	1079872716
	.long	-1717986918
	.long	1078704537
	.long	-171798692
	.long	1079503912
	.long	-858993459
	.long	1072483532
	.long	-1030792151
	.long	1077938421
	.long	858993459
	.long	1077113651
	.long	1546188227
	.long	1078198927
	.long	-343597384
	.long	1078376529
	.long	1202590843
	.long	1079368417
	.long	-858993459
	.long	1078660300
	.long	687194767
	.long	1079394140
	.long	-1030792151
	.long	1075783925
	.long	-687194767
	.long	1078399139
	.long	-2061584302
	.long	1079095787
	.long	1546188227
	.long	1080103567
	.long	0
	.long	1076625408
	.long	1717986918
	.long	1078183526
	.long	-171798692
	.long	1079204904
	.long	0
	.long	1079861248
	.long	0
	.long	1078255616
	.long	2061584302
	.long	1079344660
	.long	-687194767
	.long	1078235299
	.long	-687194767
	.long	1079263395
	.long	-1202590843
	.long	1077183774
	.long	1889785610
	.long	1078192701
	.long	1889785610
	.long	1078454845
	.long	2061584302
	.long	1079442964
	.long	-1030792151
	.long	1077569781
	.long	1546188227
	.long	1078592143
	.long	515396076
	.long	1077939077
	.long	-1374389535
	.long	1079107911
	.long	343597384
	.long	1077905326
	.long	858993459
	.long	1079083827
	.long	0
	.long	1077788672
	.long	171798692
	.long	1078879191
	.long	-1374389535
	.long	1078788423
	.long	515396076
	.long	1079851909
	.long	1374389535
	.long	1076666040
	.long	1374389535
	.long	1077665464
	.long	1717986918
	.long	1077667430
	.long	-1374389535
	.long	1079095623
	.long	-515396076
	.long	1079551098
	.long	687194767
	.long	1080270684
	.long	1717986918
	.long	1078142566
	.long	-1889785610
	.long	1079166402
	.long	1374389535
	.long	1078427320
	.long	-1717986918
	.long	1079335321
	.long	-171798692
	.long	1076255784
	.long	171798692
	.long	1078428631
	.long	1889785610
	.long	1078176317
	.long	1202590843
	.long	1079192289
	.long	-1030792151
	.long	1076340981
	.long	-1546188227
	.long	1078230384
	.long	2061584302
	.long	1079344660
	.long	-171798692
	.long	1080155176
	.long	-687194767
	.long	1078079651
	.long	2061584302
	.long	1079070228
	.long	-687194767
	.long	1079287971
	.long	0
	.long	1080020992
	.long	-171798692
	.long	1078385704
	.long	-1889785610
	.long	1079248322
	.long	-171798692
	.long	1078860840
	.long	-1717986918
	.long	1079814553
	.long	1202590843
	.long	1078950625
	.long	-687194767
	.long	1079607459
	.long	-2061584302
	.long	1079341547
	.long	858993459
	.long	1080066867
	.long	1374389535
	.long	1078853304
	.long	1374389535
	.long	1079553720
	.long	1374389535
	.long	1079238328
	.long	343597384
	.long	1079875502
	.long	1030792151
	.long	1075238666
	.long	-171798692
	.long	1076845608
	.long	1546188227
	.long	1079186063
	.long	-858993459
	.long	1080044748
	.long	-1030792151
	.long	1078618357
	.long	-858993459
	.long	1079463116
	.long	343597384
	.long	1077610414
	.long	-1546188227
	.long	1079041392
	.long	-1546188227
	.long	1079192944
	.long	1546188227
	.long	1079911055
	.long	1374389535
	.long	1078615736
	.long	1889785610
	.long	1079568957
	.long	-1889785610
	.long	1079481794
	.long	-2061584302
	.long	1080195563
	.long	1202590843
	.long	1077590753
	.long	2061584302
	.long	1078275604
	.long	-171798692
	.long	1078271016
	.long	1889785610
	.long	1079429693
	.long	-1374389535
	.long	1076912455
	.long	171798692
	.long	1077519319
	.long	-1030792151
	.long	1078225141
	.long	-1202590843
	.long	1079354654
	.long	1030792151
	.long	1078310666
	.long	-2061584302
	.long	1079611883
	.long	-1202590843
	.long	1078732062
	.long	-171798692
	.long	1079725096
	.long	0
	.long	1079361536
	.long	-858993459
	.long	1079995596
	.long	-1717986918
	.long	1076107673
	.long	1030792151
	.long	1078441738
	.long	-515396076
	.long	1079358586
	.long	171798692
	.long	1080114135
	.long	-1030792151
	.long	1077487861
	.long	858993459
	.long	1078702899
	.long	171798692
	.long	1078002647
	.long	-1889785610
	.long	1078883778
	.long	0
	.long	1079021568
	.long	-171798692
	.long	1080054824
	.long	-171798692
	.long	1079434280
	.long	1374389535
	.long	1080110776
	.long	-1030792151
	.long	1079064821
	.long	0
	.long	1079963648
	.long	-343597384
	.long	1079490641
	.long	-1202590843
	.long	1080173854
	.long	1030792151
	.long	1079371530
	.long	1889785610
	.long	1080203837
	.long	-858993459
	.long	1079209164
	.long	-687194767
	.long	1080197283
	.long	0
	.long	1074528256
	.long	-1374389535
	.long	1077666119
	.long	1374389535
	.long	1077059256
	.long	-515396076
	.long	1078703226
	.long	858993459
	.long	1079460659
	.long	-1889785610
	.long	1080155586
	.long	-687194767
	.long	1079500963
	.long	-858993459
	.long	1080263884
	.long	343597384
	.long	1078667182
	.long	-1030792151
	.long	1079245045
	.long	171798692
	.long	1078002647
	.long	1030792151
	.long	1078949642
	.long	-2061584302
	.long	1079312875
	.long	-515396076
	.long	1080026234
	.long	0
	.long	1079455744
	.long	687194767
	.long	1080201052
	.long	-1202590843
	.long	1078134046
	.long	1717986918
	.long	1079428710
	.long	-1717986918
	.long	1078245785
	.long	-2061584302
	.long	1079448043
	.long	-1202590843
	.long	1079555358
	.long	171798692
	.long	1080257495
	.long	515396076
	.long	1079020421
	.long	1202590843
	.long	1079663329
	.long	-858993459
	.long	1076022476
	.long	1202590843
	.long	1077541601
	.long	1030792151
	.long	1078613770
	.long	-2061584302
	.long	1079439851
	.long	1717986918
	.long	1076127334
	.long	1202590843
	.long	1077959393
	.long	-1889785610
	.long	1077933506
	.long	515396076
	.long	1079044997
	.long	-515396076
	.long	1078834298
	.long	0
	.long	1079738368
	.long	687194767
	.long	1076203356
	.long	-1374389535
	.long	1078034759
	.long	1202590843
	.long	1078246113
	.long	-2061584302
	.long	1079235051
	.long	-858993459
	.long	1078275276
	.long	-1889785610
	.long	1079064002
	.long	-1374389535
	.long	1078280519
	.long	-171798692
	.long	1079200808
	.long	-1030792151
	.long	1078323445
	.long	-1030792151
	.long	1079380213
	.long	-1889785610
	.long	1079289282
	.long	-1030792151
	.long	1080092917
	.long	1030792151
	.long	1077024522
	.long	-1374389535
	.long	1077952839
	.long	-1889785610
	.long	1079317954
	.long	-171798692
	.long	1080044584
	.long	515396076
	.long	1078840197
	.long	0
	.long	1079439360
	.long	1546188227
	.long	1078379151
	.long	0
	.long	1079205888
	.long	1717986918
	.long	1078298214
	.long	-1717986918
	.long	1079241113
	.long	1889785610
	.long	1077348925
	.long	2061584302
	.long	1078595092
	.long	-171798692
	.long	1078987816
	.long	858993459
	.long	1079677747
	.long	2061584302
	.long	1079557652
	.long	-858993459
	.long	1080417484
	.long	1030792151
	.long	1079105290
	.long	-1546188227
	.long	1079934320
	.long	1546188227
	.long	1075987087
	.long	1889785610
	.long	1078274621
	.long	0
	.long	1079386112
	.long	-171798692
	.long	1080163368
	.long	-343597384
	.long	1073395793
	.long	-1030792151
	.long	1077455093
	.long	1030792151
	.long	1078228746
	.long	-171798692
	.long	1079446568
	.long	858993459
	.long	1078833971
	.long	858993459
	.long	1079436083
	.long	1374389535
	.long	1079066296
	.long	-687194767
	.long	1079885987
	.long	1889785610
	.long	1076529725
	.long	1717986918
	.long	1078322790
	.long	-515396076
	.long	1077286010
	.long	-1889785610
	.long	1078072770
	.long	1546188227
	.long	1075626639
	.long	2061584302
	.long	1078251028
	.long	1202590843
	.long	1076656865
	.long	1717986918
	.long	1078322790
	.long	858993459
	.long	1079092019
	.long	171798692
	.long	1079964631
	.long	-1546188227
	.long	1076051312
	.long	-1374389535
	.long	1078051143
	.long	171798692
	.long	1076569047
	.long	343597384
	.long	1077610414
	.long	0
	.long	1077493760
	.long	-343597384
	.long	1078909009
	.long	687194767
	.long	1077186396
	.long	1202590843
	.long	1077967585
	.long	-1889785610
	.long	1079469506
	.long	0
	.long	1080252416
	.long	-1374389535
	.long	1076355399
	.long	-1030792151
	.long	1078110453
	.long	1546188227
	.long	1079280271
	.long	1717986918
	.long	1080096358
	.long	0
	.long	1079386112
	.long	-1202590843
	.long	1079944478
	.long	1374389535
	.long	1079033528
	.long	-1374389535
	.long	1080107335
	.long	-1889785610
	.long	1078646210
	.long	171798692
	.long	1079550935
	.long	1030792151
	.long	1077729034
	.long	-1889785610
	.long	1078433218
	.long	1202590843
	.long	1078532833
	.long	1030792151
	.long	1079514890
	.long	-1889785610
	.long	1078851010
	.long	-858993459
	.long	1079733452
	.long	-1889785610
	.long	1078457794
	.long	343597384
	.long	1079445422
	.long	1889785610
	.long	1079241277
	.long	-1889785610
	.long	1079768514
	.long	1202590843
	.long	1079401185
	.long	171798692
	.long	1080243159
	.long	171798692
	.long	1078723543
	.long	858993459
	.long	1079399219
	.long	687194767
	.long	1077907292
	.long	-858993459
	.long	1078922444
	.long	-1546188227
	.long	1075461488
	.long	858993459
	.long	1078047539
	.long	-1889785610
	.long	1077409218
	.long	0
	.long	1078370304
	.long	-1717986918
	.long	1078655385
	.long	-171798692
	.long	1079503912
	.long	1889785610
	.long	1076906557
	.long	1546188227
	.long	1078420111
	.long	1717986918
	.long	1078470246
	.long	-858993459
	.long	1079241932
	.long	858993459
	.long	1078932275
	.long	-1202590843
	.long	1079485726
	.long	1202590843
	.long	1079122657
	.long	171798692
	.long	1079862231
	.long	1374389535
	.long	1076174520
	.long	-515396076
	.long	1078080634
	.long	-1202590843
	.long	1078830366
	.long	171798692
	.long	1079509975
	.long	1202590843
	.long	1078213345
	.long	515396076
	.long	1079286661
	.long	-858993459
	.long	1079282892
	.long	-1202590843
	.long	1079973150
	.long	-1717986918
	.long	1078499737
	.long	-2061584302
	.long	1079476715
	.long	-171798692
	.long	1078443048
	.long	2061584302
	.long	1079328276
	.long	1889785610
	.long	1078635069
	.long	858993459
	.long	1079206707
	.long	1030792151
	.long	1079490314
	.long	1546188227
	.long	1080105615
	.long	1202590843
	.long	1075215073
	.long	-171798692
	.long	1078017064
	.long	1889785610
	.long	1077987901
	.long	1202590843
	.long	1078786785
	.long	1202590843
	.long	1079163617
	.long	-1546188227
	.long	1079840112
	.long	-1202590843
	.long	1078625566
	.long	-687194767
	.long	1079443619
	.long	1889785610
	.long	1079560765
	.long	1717986918
	.long	1080274534
	.long	1546188227
	.long	1077543567
	.long	343597384
	.long	1078806446
	.long	171798692
	.long	1078920151
	.long	-687194767
	.long	1079812259
	.long	-2061584302
	.long	1078948331
	.long	-343597384
	.long	1079814225
	.long	687194767
	.long	1075154780
	.long	1717986918
	.long	1077569126
	.long	-171798692
	.long	1079204904
	.long	1030792151
	.long	1079711498
	.long	-2061584302
	.long	1079157227
	.long	343597384
	.long	1079826350
	.long	1889785610
	.long	1079515709
	.long	-1546188227
	.long	1080200560
	.long	1717986918
	.long	1079023206
	.long	343597384
	.long	1079592878
	.long	-515396076
	.long	1078735994
	.long	-858993459
	.long	1079659724
	.long	-515396076
	.long	1079280762
	.long	1889785610
	.long	1080035901
	.long	0
	.long	1079005184
	.long	1030792151
	.long	1079658250
	.long	1030792151
	.long	1078703882
	.long	343597384
	.long	1079482286
	.long	-1889785610
	.long	1079453122
	.long	-1889785610
	.long	1080163778
	.long	-515396076
	.long	1079047290
	.long	1717986918
	.long	1079899750
	.long	-515396076
	.long	1079141498
	.long	1202590843
	.long	1079868129
	.long	-1717986918
	.long	1079392665
	.long	-1202590843
	.long	1080231198
	.long	0
	.long	1077198848
	.long	1546188227
	.long	1077691023
	.long	1202590843
	.long	1077992161
	.long	858993459
	.long	1079436083
	.long	1030792151
	.long	1079351050
	.long	-1546188227
	.long	1080003952
	.long	1546188227
	.long	1078248079
	.long	171798692
	.long	1079321559
	.long	1030792151
	.long	1078548234
	.long	-687194767
	.long	1079517347
	.long	-1202590843
	.long	1078928670
	.long	-1374389535
	.long	1079648583
	.long	858993459
	.long	1078973235
	.long	-1030792151
	.long	1079625973
	.long	-1202590843
	.long	1077855518
	.long	1202590843
	.long	1078508257
	.long	-1202590843
	.long	1078150430
	.long	1717986918
	.long	1079219814
	.long	858993459
	.long	1079030579
	.long	-858993459
	.long	1079672012
	.long	-687194767
	.long	1078259875
	.long	-515396076
	.long	1079047290
	.long	1030792151
	.long	1078974218
	.long	-1374389535
	.long	1079849287
	.long	-1546188227
	.long	1079057776
	.long	0
	.long	1079762944
	.long	1717986918
	.long	1074882150
	.long	-1889785610
	.long	1077130690
	.long	1889785610
	.long	1072106045
	.long	515396076
	.long	1078119301
	.long	687194767
	.long	1078415196
	.long	0
	.long	1079296000
	.long	-687194767
	.long	1076424867
	.long	-858993459
	.long	1078111436
	.long	-1546188227
	.long	1079504240
	.long	1374389535
	.long	1080129208
	.long	1889785610
	.long	1078536765
	.long	-1202590843
	.long	1079489822
	.long	0
	.long	1074921472
	.long	-687194767
	.long	1078390947
	.long	1889785610
	.long	1075317309
	.long	858993459
	.long	1077326643
	.long	-1202590843
	.long	1075086622
	.long	1374389535
	.long	1078329016
	.long	-515396076
	.long	1076974714
	.long	-1374389535
	.long	1078534471
	.long	-1374389535
	.long	1078493511
	.long	2061584302
	.long	1079467540
	.long	-1202590843
	.long	1077282078
	.long	1374389535
	.long	1078525624
	.long	0
	.long	1079013376
	.long	1546188227
	.long	1079927439
	.long	-1030792151
	.long	1078348021
	.long	343597384
	.long	1079138222
	.long	343597384
	.long	1078847406
	.long	2061584302
	.long	1079315988
	.long	-858993459
	.long	1078922444
	.long	0
	.long	1079500800
	.long	-1374389535
	.long	1079300423
	.long	-1374389535
	.long	1080146247
	.long	-1030792151
	.long	1078561013
	.long	1030792151
	.long	1079150346
	.long	1374389535
	.long	1076600504
	.long	-2061584302
	.long	1078637035
	.long	-1889785610
	.long	1078752706
	.long	-1889785610
	.long	1079707074
	.long	343597384
	.long	1076414382
	.long	-1202590843
	.long	1078281502
	.long	-1889785610
	.long	1078867394
	.long	858993459
	.long	1079661363
	.long	1374389535
	.long	1078050488
	.long	1374389535
	.long	1079148216
	.long	1030792151
	.long	1078785802
	.long	515396076
	.long	1079470981
	.long	1546188227
	.long	1079026319
	.long	-1202590843
	.long	1079964958
	.long	0
	.long	1079148544
	.long	343597384
	.long	1079859118
	.long	-343597384
	.long	1079253073
	.long	858993459
	.long	1079743283
	.long	-1546188227
	.long	1078238576
	.long	515396076
	.long	1079057285
	.long	171798692
	.long	1079104471
	.long	-1030792151
	.long	1079904501
	.long	-1889785610
	.long	1077654978
	.long	-858993459
	.long	1079282892
	.long	515396076
	.long	1077472133
	.long	-515396076
	.long	1078957178
	.long	171798692
	.long	1078928343
	.long	171798692
	.long	1079497687
	.long	-1374389535
	.long	1073406279
	.long	-687194767
	.long	1077735587
	.long	-1889785610
	.long	1078408642
	.long	343597384
	.long	1079302062
	.long	-1030792151
	.long	1079466229
	.long	-343597384
	.long	1080248401
	.long	-343597384
	.long	1077344337
	.long	1717986918
	.long	1078994534
	.long	-515396076
	.long	1077171322
	.long	1717986918
	.long	1079178854
	.long	-171798692
	.long	1072127016
	.long	-515396076
	.long	1077679226
	.long	2061584302
	.long	1079512596
	.long	-2061584302
	.long	1080218091
	.long	-1374389535
	.long	1078993223
	.long	-2061584302
	.long	1079783915
	.long	-1030792151
	.long	1079441653
	.long	1374389535
	.long	1080131256
	.long	-1030792151
	.long	1079040245
	.long	343597384
	.long	1079875502
	.long	0
	.long	1078616064
	.long	-1374389535
	.long	1079562567
	.long	-1030792151
	.long	1079343349
	.long	-1717986918
	.long	1080097177
	.long	1202590843
	.long	1077967585
	.long	1717986918
	.long	1078904422
	.long	1546188227
	.long	1078755983
	.long	-1889785610
	.long	1079526850
	.long	-1889785610
	.long	1079043522
	.long	687194767
	.long	1079783260
	.long	171798692
	.long	1079047127
	.long	-1030792151
	.long	1079847157
	.long	515396076
	.long	1078086533
	.long	-171798692
	.long	1079139368
	.long	858993459
	.long	1078694707
	.long	-171798692
	.long	1079376936
	.long	-1546188227
	.long	1078222192
	.long	-1030792151
	.long	1079552245
	.long	-1546188227
	.long	1078500720
	.long	-1202590843
	.long	1079411998
	.long	2061584302
	.long	1076964884
	.long	1374389535
	.long	1077984952
	.long	-1374389535
	.long	1077698887
	.long	-1030792151
	.long	1078995189
	.long	-343597384
	.long	1079527505
	.long	2061584302
	.long	1080104468
	.long	-2061584302
	.long	1079132651
	.long	171798692
	.long	1080081367
	.long	-1546188227
	.long	1079364976
	.long	-687194767
	.long	1080074403
	.long	2061584302
	.long	1077030420
	.long	-687194767
	.long	1078448291
	.long	171798692
	.long	1076437975
	.long	-858993459
	.long	1078103244
	.long	-687194767
	.long	1078997155
	.long	1374389535
	.long	1079733944
	.long	0
	.long	1076068352
	.long	1889785610
	.long	1077742141
	.long	343597384
	.long	1079281582
	.long	-1030792151
	.long	1079945461
	.long	-1546188227
	.long	1079434608
	.long	-1202590843
	.long	1080065310
	.long	-1889785610
	.long	1079424450
	.long	858993459
	.long	1080304435
	.long	-171798692
	.long	1075534888
	.long	-858993459
	.long	1078209740
	.long	-1202590843
	.long	1078998302
	.long	1717986918
	.long	1079834214
	.long	-1202590843
	.long	1076921630
	.long	1889785610
	.long	1078233661
	.long	343597384
	.long	1078241198
	.long	-1546188227
	.long	1079324016
	.long	858993459
	.long	1079247667
	.long	-1202590843
	.long	1080098078
	.long	-343597384
	.long	1079339089
	.long	-687194767
	.long	1080178851
	.long	-858993459
	.long	1079446732
	.long	-1717986918
	.long	1080103321
	.long	687194767
	.long	1077317468
	.long	1717986918
	.long	1079051878
	.long	-343597384
	.long	1078327377
	.long	2061584302
	.long	1079254548
	.long	1374389535
	.long	1079426744
	.long	-1030792151
	.long	1080209653
	.long	1374389535
	.long	1079385784
	.long	1202590843
	.long	1080136417
	.long	-343597384
	.long	1078327377
	.long	515396076
	.long	1079249797
	.long	171798692
	.long	1078952919
	.long	1030792151
	.long	1079744266
	.long	171798692
	.long	1079170007
	.long	-1202590843
	.long	1079678238
	.long	-2061584302
	.long	1079345643
	.long	-1717986918
	.long	1080162713
	.long	-515396076
	.long	1077482618
	.long	171798692
	.long	1078182871
	.long	-687194767
	.long	1078931619
	.long	171798692
	.long	1079231447
	.long	1889785610
	.long	1079269949
	.long	-1889785610
	.long	1080040898
	.long	-1374389535
	.long	1078960455
	.long	343597384
	.long	1079605166
	.long	687194767
	.long	1077251932
	.long	1546188227
	.long	1078272655
	.long	858993459
	.long	1079239475
	.long	-1202590843
	.long	1080001822
	.long	-1717986918
	.long	1076910489
	.long	1717986918
	.long	1078552166
	.long	-858993459
	.long	1079217356
	.long	1889785610
	.long	1080142397
	.long	1546188227
	.long	1079341711
	.long	-171798692
	.long	1080054824
	.long	1889785610
	.long	1079417405
	.long	1717986918
	.long	1080229478
	.long	0
	.long	1079513088
	.long	-343597384
	.long	1080260689
	.long	-1202590843
	.long	1077658910
	.long	0
	.long	1078591488
	.long	171798692
	.long	1078502359
	.long	-687194767
	.long	1079689379
	.long	1717986918
	.long	1073112678
	.long	-1717986918
	.long	1077811609
	.long	0
	.long	1077395456
	.long	1717986918
	.long	1078281830
	.long	-343597384
	.long	1079453777
	.long	-171798692
	.long	1080343592
	.long	-343597384
	.long	1076148305
	.long	171798692
	.long	1078567895
	.long	171798692
	.long	1078551511
	.long	1374389535
	.long	1079389880
	.long	-1546188227
	.long	1078984048
	.long	-515396076
	.long	1079846010
	.long	-1202590843
	.long	1079457054
	.long	-1889785610
	.long	1080333762
	.long	-1717986918
	.long	1078024601
	.long	-1889785610
	.long	1078465986
	.long	-1546188227
	.long	1077640560
	.long	-1717986918
	.long	1079155097
	.long	515396076
	.long	1079180165
	.long	-1374389535
	.long	1080060231
	.long	515396076
	.long	1076128645
	.long	-171798692
	.long	1078238248
	.long	-1546188227
	.long	1074675056
	.long	1374389535
	.long	1077599928
	.long	2061584302
	.long	1079348756
	.long	-1546188227
	.long	1080180080
	.long	1889785610
	.long	1072106045
	.long	-858993459
	.long	1077251276
	.long	-687194767
	.long	1079279779
	.long	171798692
	.long	1079886807
	.long	-1717986918
	.long	1077467545
	.long	0
	.long	1078501376
	.long	515396076
	.long	1077422981
	.long	-1030792151
	.long	1078282485
	.long	-687194767
	.long	1078472867
	.long	343597384
	.long	1079130030
	.long	0
	.long	1074135040
	.long	1030792151
	.long	1077761802
	.long	1546188227
	.long	1078411919
	.long	1717986918
	.long	1079330406
	.long	2061584302
	.long	1074834964
	.long	0
	.long	1078132736
	.long	-1717986918
	.long	1077057945
	.long	-1030792151
	.long	1078315253
	.long	-1202590843
	.long	1076102430
	.long	515396076
	.long	1078422405
	.long	687194767
	.long	1077055324
	.long	2061584302
	.long	1078390292
	.long	-343597384
	.long	1075853393
	.long	-687194767
	.long	1077915811
	.long	515396076
	.long	1077603205
	.long	-1374389535
	.long	1078624583
	.long	-343597384
	.long	1078401105
	.long	1546188227
	.long	1079554703
	.long	-2061584302
	.long	1077301739
	.long	-171798692
	.long	1078664232
	.long	-1374389535
	.long	1079198023
	.long	-1717986918
	.long	1079986585
	.long	-858993459
	.long	1077431500
	.long	1546188227
	.long	1078493839
	.long	1717986918
	.long	1078290022
	.long	343597384
	.long	1079089070
	.long	-687194767
	.long	1077866659
	.long	-171798692
	.long	1079139368
	.long	-858993459
	.long	1072745676
	.long	-2061584302
	.long	1077006827
	.long	0
	.long	1079066624
	.long	1717986918
	.long	1079981670
	.long	-343597384
	.long	1075427409
	.long	-1546188227
	.long	1076051312
	.long	-1202590843
	.long	1079309598
	.long	-1030792151
	.long	1080117493
	.long	2061584302
	.long	1077767700
	.long	1374389535
	.long	1079193272
	.long	1546188227
	.long	1076920975
	.long	-1202590843
	.long	1077921054
	.long	0
	.long	1079488512
	.long	-1202590843
	.long	1080132894
	.long	-2061584302
	.long	1079341547
	.long	515396076
	.long	1080140677
	.long	1717986918
	.long	1079363174
	.long	-1030792151
	.long	1080107253
	.long	1889785610
	.long	1078733373
	.long	-343597384
	.long	1079752785
	.long	-515396076
	.long	1079161978
	.long	-1546188227
	.long	1080028528
	.long	1717986918
	.long	1079060070
	.long	-1717986918
	.long	1079683481
	.long	1889785610
	.long	1078929981
	.long	2061584302
	.long	1079696916
	.long	687194767
	.long	1079418716
	.long	-343597384
	.long	1080117329
	.long	2061584302
	.long	1079250452
	.long	0
	.long	1079959552
	.long	-1030792151
	.long	1076996341
	.long	-1374389535
	.long	1078706503
	.long	687194767
	.long	1078226780
	.long	1202590843
	.long	1079212769
	.long	1202590843
	.long	1079524065
	.long	-687194767
	.long	1080260771
	.long	-171798692
	.long	1077435432
	.long	-1717986918
	.long	1078548889
	.long	687194767
	.long	1077612380
	.long	515396076
	.long	1078938501
	.long	-515396076
	.long	1078539386
	.long	687194767
	.long	1079529308
	.long	-1717986918
	.long	1079318937
	.long	2061584302
	.long	1080049172
	.long	-2061584302
	.long	1077514731
	.long	-343597384
	.long	1078679633
	.long	687194767
	.long	1079271260
	.long	1717986918
	.long	1080155750
	.long	1030792151
	.long	1079256842
	.long	0
	.long	1079861248
	.long	1030792151
	.long	1078736650
	.long	-687194767
	.long	1079431331
	.long	-1202590843
	.long	1079047454
	.long	1546188227
	.long	1079722639
	.long	-687194767
	.long	1078374563
	.long	-858993459
	.long	1079254220
	.long	171798692
	.long	1077273559
	.long	-1374389535
	.long	1078354247
	.long	1546188227
	.long	1079005839
	.long	343597384
	.long	1079658414
	.long	1889785610
	.long	1078028861
	.long	-343597384
	.long	1079351377
	.long	-2061584302
	.long	1079341547
	.long	1030792151
	.long	1079973642
	.long	-515396076
	.long	1078539386
	.long	-2061584302
	.long	1079271915
	.long	1546188227
	.long	1078534799
	.long	-1202590843
	.long	1079235870
	.long	1717986918
	.long	1078765158
	.long	-1546188227
	.long	1079541104
	.long	1374389535
	.long	1079054008
	.long	-2061584302
	.long	1079808491
	.long	-1546188227
	.long	1079287152
	.long	515396076
	.long	1080062853
	.long	-171798692
	.long	1077959720
	.long	0
	.long	1078861824
	.long	-515396076
	.long	1079301242
	.long	0
	.long	1080117248
	.long	-1889785610
	.long	1078015426
	.long	1889785610
	.long	1078954557
	.long	858993459
	.long	1078194995
	.long	687194767
	.long	1079275356
	.long	1717986918
	.long	1079334502
	.long	-2061584302
	.long	1080001003
	.long	858993459
	.long	1079505715
	.long	-1374389535
	.long	1080211783
	.long	-2061584302
	.long	1077170667
	.long	1030792151
	.long	1078499082
	.long	1717986918
	.long	1078543974
	.long	-1030792151
	.long	1079118069
	.long	1546188227
	.long	1078952591
	.long	1030792151
	.long	1079850762
	.long	-687194767
	.long	1078825123
	.long	858993459
	.long	1079710515
	.long	-343597384
	.long	1078900817
	.long	858993459
	.long	1079620403
	.long	-343597384
	.long	1078401105
	.long	-343597384
	.long	1079351377
	.long	1030792151
	.long	1076877066
	.long	687194767
	.long	1078308700
	.long	0
	.long	1078198272
	.long	858993459
	.long	1079325491
	.long	-1717986918
	.long	1078917529
	.long	1202590843
	.long	1079392993
	.long	-1889785610
	.long	1078678978
	.long	0
	.long	1079586816
	.long	-1030792151
	.long	1074866421
	.long	-1374389535
	.long	1078075719
	.long	1717986918
	.long	1075078758
	.long	343597384
	.long	1077979054
	.long	0
	.long	1074528256
	.long	-1717986918
	.long	1078213017
	.long	2061584302
	.long	1074900500
	.long	-171798692
	.long	1075928104
	.long	-1030792151
	.long	1077766389
	.long	-1546188227
	.long	1078992240
	.long	-858993459
	.long	1075760332
	.long	-2061584302
	.long	1077137899
	.long	171798692
	.long	1077879767
	.long	-1717986918
	.long	1079126425
	.long	171798692
	.long	1078895575
	.long	171798692
	.long	1079518167
	.long	-1889785610
	.long	1078425026
	.long	-1202590843
	.long	1079199006
	.long	687194767
	.long	1079017308
	.long	-1030792151
	.long	1079646453
	.long	-1546188227
	.long	1079500144
	.long	1546188227
	.long	1080304271
	.long	343597384
	.long	1077643182
	.long	-171798692
	.long	1078500392
	.long	-858993459
	.long	1077693644
	.long	-1374389535
	.long	1078821191
	.long	1889785610
	.long	1076824637
	.long	1030792151
	.long	1078785802
	.long	858993459
	.long	1078334259
	.long	343597384
	.long	1079224238
	.long	-515396076
	.long	1078523002
	.long	1717986918
	.long	1079576166
	.long	1202590843
	.long	1079290593
	.long	-1889785610
	.long	1080022466
	.long	-515396076
	.long	1079276666
	.long	1374389535
	.long	1080020664
	.long	-515396076
	.long	1078146170
	.long	-1546188227
	.long	1079254384
	.long	171798692
	.long	1078764503
	.long	171798692
	.long	1079686103
	.long	1202590843
	.long	1077050081
	.long	343597384
	.long	1077962670
	.long	-687194767
	.long	1078005923
	.long	1889785610
	.long	1079024189
	.long	-343597384
	.long	1076607057
	.long	171798692
	.long	1078526935
	.long	1030792151
	.long	1077253898
	.long	-1717986918
	.long	1078737305
	.long	-687194767
	.long	1079087267
	.long	-1717986918
	.long	1079720345
	.long	-1374389535
	.long	1076928839
	.long	-858993459
	.long	1078111436
	.long	-515396076
	.long	1076630650
	.long	-1202590843
	.long	1078256926
	.long	-687194767
	.long	1079439523
	.long	1202590843
	.long	1080232673
	.long	171798692
	.long	1078674391
	.long	858993459
	.long	1079665459
	.long	687194767
	.long	1078071132
	.long	-687194767
	.long	1079148707
	.long	1030792151
	.long	1078179594
	.long	343597384
	.long	1078921134
	.long	1546188227
	.long	1077953167
	.long	-1889785610
	.long	1079031234
	.long	1202590843
	.long	1073511137
	.long	1546188227
	.long	1078207119
	.long	-858993459
	.long	1079528652
	.long	-171798692
	.long	1080159272
	.long	-2061584302
	.long	1076908523
	.long	-1030792151
	.long	1077987573
	.long	1889785610
	.long	1078610493
	.long	-515396076
	.long	1079563386
	.long	0
	.long	1077149696
	.long	-171798692
	.long	1078615080
	.long	515396076
	.long	1076030341
	.long	515396076
	.long	1078709125
	.long	-1546188227
	.long	1078443376
	.long	-1202590843
	.long	1079289118
	.long	-171798692
	.long	1076845608
	.long	515396076
	.long	1078569861
	.long	-515396076
	.long	1078072442
	.long	2061584302
	.long	1079168532
	.long	-171798692
	.long	1078451240
	.long	-515396076
	.long	1079280762
	.long	-1374389535
	.long	1076060487
	.long	-858993459
	.long	1078168780
	.long	-515396076
	.long	1078989946
	.long	-1202590843
	.long	1079592222
	.long	-515396076
	.long	1079321722
	.long	-1546188227
	.long	1080296816
	.long	1374389535
	.long	1079103160
	.long	-1889785610
	.long	1079825858
	.long	515396076
	.long	1077603205
	.long	-1202590843
	.long	1078977822
	.long	858993459
	.long	1076736819
	.long	858993459
	.long	1078317875
	.long	1202590843
	.long	1078115041
	.long	171798692
	.long	1079247831
	.long	-1374389535
	.long	1078427975
	.long	-1202590843
	.long	1079207198
	.long	-1374389535
	.long	1078247751
	.long	-1374389535
	.long	1079226695
	.long	-1374389535
	.long	1077158215
	.long	-515396076
	.long	1077826682
	.long	858993459
	.long	1079173939
	.long	-858993459
	.long	1080130764
	.long	171798692
	.long	1077715927
	.long	1202590843
	.long	1078885089
	.long	-858993459
	.long	1077759180
	.long	-858993459
	.long	1079073996
	.long	-343597384
	.long	1077942353
	.long	1889785610
	.long	1078995517
	.long	-171798692
	.long	1077697576
	.long	-1717986918
	.long	1079118233
	.long	-343597384
	.long	1079384145
	.long	-515396076
	.long	1079895162
	.long	687194767
	.long	1076793180
	.long	-1202590843
	.long	1078183198
	.long	-687194767
	.long	1079464099
	.long	1030792151
	.long	1080129290
	.long	-1202590843
	.long	1076299038
	.long	1202590843
	.long	1078647521
	.long	-858993459
	.long	1078316236
	.long	1546188227
	.long	1079493263
	.long	-858993459
	.long	1078381772
	.long	-1030792151
	.long	1079216373
	.long	687194767
	.long	1074564956
	.long	-1889785610
	.long	1077753282
	.long	343597384
	.long	1079412654
	.long	-1717986918
	.long	1080099225
	.long	-1374389535
	.long	1079165255
	.long	-1717986918
	.long	1080099225
	.long	-1546188227
	.long	1078877552
	.long	-515396076
	.long	1079587962
	.long	-858993459
	.long	1078668492
	.long	-515396076
	.long	1079182458
	.long	1030792151
	.long	1076418314
	.long	-1202590843
	.long	1078109470
	.long	-687194767
	.long	1076883619
	.long	687194767
	.long	1078308700
	.long	-171798692
	.long	1078942760
	.long	-2061584302
	.long	1079603691
	.long	1889785610
	.long	1079028285
	.long	515396076
	.long	1079593861
	.long	-1374389535
	.long	1077879111
	.long	515396076
	.long	1078979461
	.long	1717986918
	.long	1076946534
	.long	-1546188227
	.long	1077869936
	.long	1374389535
	.long	1077952184
	.long	1202590843
	.long	1078418145
	.long	-1374389535
	.long	1075503431
	.long	343597384
	.long	1077430190
	.long	1546188227
	.long	1079267983
	.long	1889785610
	.long	1080111677
	.long	-1546188227
	.long	1076313456
	.long	-1717986918
	.long	1078188441
	.long	1546188227
	.long	1078108815
	.long	-858993459
	.long	1079250124
	.long	-343597384
	.long	1078147153
	.long	515396076
	.long	1078692741
	.long	-343597384
	.long	1077557329
	.long	1030792151
	.long	1078417162
	.long	-1374389535
	.long	1079116103
	.long	-687194767
	.long	1080035491
	.long	-515396076
	.long	1079469178
	.long	858993459
	.long	1080140595
	.long	-1889785610
	.long	1077147074
	.long	343597384
	.long	1078618030
	.long	1546188227
	.long	1079497359
	.long	1717986918
	.long	1080137318
	.long	-343597384
	.long	1079289937
	.long	2061584302
	.long	1079971348
	.long	-1546188227
	.long	1077247344
	.long	-1030792151
	.long	1079003381
	.long	0
	.long	1078116352
	.long	-2061584302
	.long	1079005675
	.long	1889785610
	.long	1078078013
	.long	-687194767
	.long	1078259875
	.long	1717986918
	.long	1074161254
	.long	-1374389535
	.long	1077272903
	.long	1889785610
	.long	1078651453
	.long	-1717986918
	.long	1079437721
	.long	1202590843
	.long	1077377761
	.long	-1546188227
	.long	1078590832
	.long	171798692
	.long	1070638039
	.long	-687194767
	.long	1077063843
	.long	687194767
	.long	1076072284
	.long	343597384
	.long	1078134702
	.long	-1374389535
	.long	1078706503
	.long	1546188227
	.long	1079501455
	.long	-171798692
	.long	1077550120
	.long	0
	.long	1078837248
	.long	343597384
	.long	1079027630
	.long	1374389535
	.long	1079684792
	.long	1717986918
	.long	1077749350
	.long	-1030792151
	.long	1079011573
	.long	687194767
	.long	1079439196
	.long	1374389535
	.long	1080063672
	.long	-1030792151
	.long	1078331637
	.long	-1546188227
	.long	1079184752
	.long	-1546188227
	.long	1077542256
	.long	343597384
	.long	1079117742
	.long	1374389535
	.long	1078673080
	.long	171798692
	.long	1079817175
	.long	-343597384
	.long	1076082769
	.long	171798692
	.long	1077208023
	.long	1202590843
	.long	1079536353
	.long	-1374389535
	.long	1080265031
	.long	-1546188227
	.long	1078549872
	.long	343597384
	.long	1079556014
	.long	0
	.long	1078296576
	.long	1374389535
	.long	1079111352
	.long	-1717986918
	.long	1077975449
	.long	-515396076
	.long	1078957178
	.long	-1202590843
	.long	1079510302
	.long	2061584302
	.long	1080049172
	.long	-1030792151
	.long	1079277813
	.long	1546188227
	.long	1079841423
	.long	-1546188227
	.long	1078476144
	.long	1717986918
	.long	1079527014
	.long	-1546188227
	.long	1079328112
	.long	-687194767
	.long	1080045731
	.long	171798692
	.long	1077797847
	.long	515396076
	.long	1079204741
	.long	-1546188227
	.long	1079537008
	.long	171798692
	.long	1080284119
	.long	343597384
	.long	1075791790
	.long	-2061584302
	.long	1077547499
	.long	0
	.long	1078460416
	.long	1202590843
	.long	1079151329
	.long	1202590843
	.long	1077344993
	.long	1889785610
	.long	1077692989
	.long	1374389535
	.long	1075781304
	.long	687194767
	.long	1077792604
	.long	-171798692
	.long	1079372840
	.long	1374389535
	.long	1080086200
	.long	-1546188227
	.long	1079033200
	.long	515396076
	.long	1079745413
	.long	-1030792151
	.long	1077782773
	.long	-858993459
	.long	1078791372
	.long	-515396076
	.long	1078826106
	.long	-687194767
	.long	1079484579
	.long	687194767
	.long	1076072284
	.long	-515396076
	.long	1078654074
	.long	1546188227
	.long	1077363343
	.long	2061584302
	.long	1079148052
	.long	0
	.long	1079250944
	.long	171798692
	.long	1079768023
	.long	-1889785610
	.long	1075180994
	.long	0
	.long	1077870592
	.long	-1717986918
	.long	1078573465
	.long	-1374389535
	.long	1079382343
	.long	-1030792151
	.long	1077553397
	.long	-858993459
	.long	1078930636
	.long	-1030792151
	.long	1076799733
	.long	858993459
	.long	1077261107
	.long	1030792151
	.long	1078986506
	.long	1717986918
	.long	1079481958
	.long	858993459
	.long	1076572979
	.long	1717986918
	.long	1078806118
	.long	1030792151
	.long	1079523082
	.long	-1546188227
	.long	1080325488
	.long	-687194767
	.long	1078636707
	.long	1546188227
	.long	1079603855
	.long	-171798692
	.long	1079118888
	.long	343597384
	.long	1080065966
	.long	1717986918
	.long	1078044262
	.long	-1889785610
	.long	1079227842
	.long	1889785610
	.long	1078053437
	.long	-1030792151
	.long	1079171317
	.long	-1030792151
	.long	1075128565
	.long	-515396076
	.long	1077728378
	.long	1030792151
	.long	1078597386
	.long	-515396076
	.long	1079383162
	.long	1717986918
	.long	1077749350
	.long	-171798692
	.long	1078803496
	.long	1030792151
	.long	1079060234
	.long	515396076
	.long	1079880581
	.long	687194767
	.long	1075973980
	.long	1546188227
	.long	1078166159
	.long	1546188227
	.long	1078624911
	.long	-515396076
	.long	1079481466
	.long	1546188227
	.long	1074840207
	.long	-1030792151
	.long	1077160181
	.long	-2061584302
	.long	1079349739
	.long	-1717986918
	.long	1080119705
	.long	2061584302
	.long	1077685780
	.long	343597384
	.long	1079089070
	.long	1889785610
	.long	1079237181
	.long	858993459
	.long	1079751475
	.long	2061584302
	.long	1076768276
	.long	1889785610
	.long	1078356541
	.long	-515396076
	.long	1077531770
	.long	343597384
	.long	1079175086
	.long	1889785610
	.long	1078479421
	.long	858993459
	.long	1079542579
	.long	-858993459
	.long	1079397580
	.long	-1374389535
	.long	1080289607
	.long	-858993459
	.long	1079356620
	.long	-687194767
	.long	1080133795
	.long	-171798692
	.long	1074355240
	.long	-1374389535
	.long	1078223175
	.long	-343597384
	.long	1079519313
	.long	-1546188227
	.long	1080235376
	.long	515396076
	.long	1077062533
	.long	-343597384
	.long	1078442065
	.long	-515396076
	.long	1079403642
	.long	515396076
	.long	1080222597
	.long	-1889785610
	.long	1078793666
	.long	-1030792151
	.long	1079757045
	.long	-343597384
	.long	1078392913
	.long	-343597384
	.long	1079322705
	.long	-1030792151
	.long	1079310581
	.long	-1202590843
	.long	1079911710
	.long	1546188227
	.long	1079100047
	.long	2061584302
	.long	1079856660
	.long	-1546188227
	.long	1078443376
	.long	1717986918
	.long	1079326310
	.long	1202590843
	.long	1076263649
	.long	1546188227
	.long	1078452879
	.long	858993459
	.long	1077130035
	.long	-1546188227
	.long	1078312304
	.long	515396076
	.long	1078619013
	.long	1717986918
	.long	1079211622
	.long	1374389535
	.long	1079234232
	.long	-1717986918
	.long	1079712153
	.long	858993459
	.long	1079231283
	.long	1030792151
	.long	1079908106
	.long	-1202590843
	.long	1076528414
	.long	-343597384
	.long	1077942353
	.long	-1374389535
	.long	1078550855
	.long	1717986918
	.long	1079342694
	.long	2061584302
	.long	1078513172
	.long	-1717986918
	.long	1079339417
	.long	687194767
	.long	1076694876
	.long	-858993459
	.long	1078258892
	.long	858993459
	.long	1079067443
	.long	-1889785610
	.long	1079899586
	.long	-1717986918
	.long	1075419545
	.long	1374389535
	.long	1078288056
	.long	515396076
	.long	1079327621
	.long	171798692
	.long	1079997399
	.long	1717986918
	.long	1079195238
	.long	1030792151
	.long	1080030986
	.long	-2061584302
	.long	1078465003
	.long	343597384
	.long	1079236526
	.long	-343597384
	.long	1079330897
	.long	-1889785610
	.long	1080223170
	.long	-1717986918
	.long	1078753689
	.long	-1202590843
	.long	1079469342
	.long	-1717986918
	.long	1079290265
	.long	-1546188227
	.long	1080055152
	.long	-858993459
	.long	1076055244
	.long	-1202590843
	.long	1077265694
	.long	-1717986918
	.long	1077238169
	.long	515396076
	.long	1078504325
	.long	343597384
	.long	1077331886
	.long	1546188227
	.long	1078297231
	.long	-687194767
	.long	1079431331
	.long	-1374389535
	.long	1080131911
	.long	1889785610
	.long	1079163453
	.long	-687194767
	.long	1079705763
	.long	-1889785610
	.long	1079285186
	.long	1717986918
	.long	1080100454
	.long	-1030792151
	.long	1076275445
	.long	0
	.long	1078247424
	.long	-1374389535
	.long	1078944071
	.long	-687194767
	.long	1079476387
	.long	858993459
	.long	1077162803
	.long	1374389535
	.long	1078042296
	.long	-515396076
	.long	1079530618
	.long	515396076
	.long	1080056709
	.long	-687194767
	.long	1077211299
	.long	-1717986918
	.long	1077983641
	.long	-1030792151
	.long	1077340405
	.long	-1717986918
	.long	1078671769
	.long	171798692
	.long	1079337943
	.long	-858993459
	.long	1080073420
	.long	687194767
	.long	1079050076
	.long	-1889785610
	.long	1079571906
	.long	687194767
	.long	1079500636
	.long	-1030792151
	.long	1080230133
	.long	-1717986918
	.long	1075091865
	.long	1202590843
	.long	1077902049
	.long	-1717986918
	.long	1078188441
	.long	1030792151
	.long	1079105290
	.long	687194767
	.long	1079398236
	.long	-2061584302
	.long	1080070635
	.long	-515396076
	.long	1077597306
	.long	0
	.long	1079005184
	.long	-515396076
	.long	1078654074
	.long	-687194767
	.long	1079312547
	.long	2061584302
	.long	1079475732
	.long	1889785610
	.long	1080259133
	.long	1889785610
	.long	1078864445
	.long	-1717986918
	.long	1079576985
	.long	1717986918
	.long	1079395942
	.long	1717986918
	.long	1080039014
	.long	171798692
	.long	1078125527
	.long	343597384
	.long	1078921134
	.long	515396076
	.long	1078029189
	.long	515396076
	.long	1079315333
	.long	-1546188227
	.long	1079283056
	.long	-343597384
	.long	1080092753
	.long	858993459
	.long	1077162803
	.long	1546188227
	.long	1077625487
	.long	1374389535
	.long	1077059256
	.long	1546188227
	.long	1077150351
	.long	1374389535
	.long	1078943416
	.long	171798692
	.long	1079960535
	.long	1889785610
	.long	1078135357
	.long	858993459
	.long	1079321395
	.long	343597384
	.long	1076250542
	.long	-2061584302
	.long	1077088747
	.long	-858993459
	.long	1079418060
	.long	343597384
	.long	1080192942
	.long	343597384
	.long	1074218926
	.long	-1717986918
	.long	1077631385
	.long	-2061584302
	.long	1078006251
	.long	-343597384
	.long	1079425105
	.long	1717986918
	.long	1077651046
	.long	171798692
	.long	1078895575
	.long	1546188227
	.long	1078985359
	.long	171798692
	.long	1079571415
	.long	1374389535
	.long	1079279288
	.long	-1889785610
	.long	1080174018
	.long	-171798692
	.long	1078369320
	.long	1030792151
	.long	1079453450
	.long	858993459
	.long	1078760243
	.long	1889785610
	.long	1079568957
	.long	515396076
	.long	1076358021
	.long	2061584302
	.long	1077718548
	.long	-171798692
	.long	1077861416
	.long	515396076
	.long	1078684549
	.long	1889785610
	.long	1078684221
	.long	-687194767
	.long	1079791779
	.long	-343597384
	.long	1079511121
	.long	1374389535
	.long	1080198840
	.long	1030792151
	.long	1076188938
	.long	-1717986918
	.long	1078507929
	.long	1717986918
	.long	1078077030
	.long	687194767
	.long	1079041884
	.long	-343597384
	.long	1079064657
	.long	-1546188227
	.long	1079872880
	.long	171798692
	.long	1079432151
	.long	343597384
	.long	1080102830
	.long	343597384
	.long	1078151086
	.long	1717986918
	.long	1079031398
	.long	-1717986918
	.long	1077205401
	.long	-1889785610
	.long	1078924738
	.long	-1546188227
	.long	1078795632
	.long	-343597384
	.long	1079167057
	.long	1889785610
	.long	1078938173
	.long	515396076
	.long	1079892869
	.long	1546188227
	.long	1075757711
	.long	-2061584302
	.long	1078088171
	.long	1374389535
	.long	1076862648
	.long	0
	.long	1078534144
	.long	-1717986918
	.long	1079339417
	.long	-1202590843
	.long	1080122654
	.long	687194767
	.long	1077317468
	.long	1202590843
	.long	1078770401
	.long	858993459
	.long	1077392179
	.long	1030792151
	.long	1078368010
	.long	1030792151
	.long	1079060234
	.long	858993459
	.long	1079677747
	.long	515396076
	.long	1075899269
	.long	343597384
	.long	1076610990
	.long	-1202590843
	.long	1079219486
	.long	687194767
	.long	1079910236
	.long	0
	.long	1078984704
	.long	687194767
	.long	1079607132
	.long	1202590843
	.long	1078000353
	.long	-1030792151
	.long	1079290101
	.long	-1717986918
	.long	1076959641
	.long	-1889785610
	.long	1078113730
	.long	-1546188227
	.long	1075985776
	.long	1202590843
	.long	1078696673
	.long	-1717986918
	.long	1079392665
	.long	-2061584302
	.long	1080105451
	.long	-1546188227
	.long	1074871664
	.long	-515396076
	.long	1077269626
	.long	343597384
	.long	1070679982
	.long	0
	.long	1078337536
	.long	-1374389535
	.long	1077969223
	.long	-1202590843
	.long	1078961438
	.long	-2061584302
	.long	1079423467
	.long	1546188227
	.long	1080220303
	.long	0
	.long	1077788672
	.long	-687194767
	.long	1078735011
	.long	1889785610
	.long	1078258237
	.long	-1717986918
	.long	1079208345
	.long	-515396076
	.long	1079563386
	.long	687194767
	.long	1080188764
	.long	515396076
	.long	1077193605
	.long	1546188227
	.long	1078239887
	.long	-1374389535
	.long	1077797191
	.long	-1202590843
	.long	1078998302
	.long	-515396076
	.long	1078916218
	.long	-1717986918
	.long	1079445913
	.long	-858993459
	.long	1077963980
	.long	0
	.long	1079058432
	.long	-1202590843
	.long	1076921630
	.long	-2061584302
	.long	1079046635
	.long	-171798692
	.long	1078459432
	.long	171798692
	.long	1079186391
	.long	1546188227
	.long	1079546511
	.long	343597384
	.long	1080104878
	.long	171798692
	.long	1078780887
	.long	1030792151
	.long	1079392010
	.long	343597384
	.long	1075464110
	.long	0
	.long	1078247424
	.long	-1889785610
	.long	1078777282
	.long	687194767
	.long	1079484252
	.long	-171798692
	.long	1079258152
	.long	-1202590843
	.long	1080177950
	.long	1202590843
	.long	1078950625
	.long	1546188227
	.long	1079382671
	.long	-515396076
	.long	1077417082
	.long	1546188227
	.long	1078805135
	.long	1546188227
	.long	1077969551
	.long	-343597384
	.long	1078917201
	.long	-1546188227
	.long	1078975856
	.long	1030792151
	.long	1079719690
	.long	0
	.long	1078525952
	.long	858993459
	.long	1079436083
	.long	-1374389535
	.long	1078272327
	.long	-1374389535
	.long	1079112007
	.long	343597384
	.long	1077561262
	.long	-343597384
	.long	1078417489
	.long	-1202590843
	.long	1079178526
	.long	-2061584302
	.long	1079722475
	.long	1889785610
	.long	1077955133
	.long	-1889785610
	.long	1079014850
	.long	-858993459
	.long	1079139532
	.long	-343597384
	.long	1079986257
	.long	-343597384
	.long	1076967505
	.long	-343597384
	.long	1078859857
	.long	515396076
	.long	1073343365
	.long	1717986918
	.long	1078339174
	.long	-515396076
	.long	1077974138
	.long	515396076
	.long	1078991749
	.long	-687194767
	.long	1078759587
	.long	687194767
	.long	1079365468
	.long	343597384
	.long	1070679982
	.long	1202590843
	.long	1077328609
	.long	-171798692
	.long	1079143464
	.long	-687194767
	.long	1079910563
	.long	1546188227
	.long	1078739599
	.long	-1374389535
	.long	1079689543
	.long	858993459
	.long	1079546675
	.long	-687194767
	.long	1080324259
	.long	1202590843
	.long	1079036641
	.long	858993459
	.long	1079554867
	.long	-1202590843
	.long	1079555358
	.long	0
	.long	1080209408
	.long	-687194767
	.long	1078251683
	.long	-1030792151
	.long	1079191797
	.long	2061584302
	.long	1075424788
	.long	-171798692
	.long	1077959720
	.long	-1030792151
	.long	1075259637
	.long	-858993459
	.long	1077365964
	.long	-1889785610
	.long	1077900738
	.long	343597384
	.long	1079019438
	.long	-2061584302
	.long	1079218667
	.long	515396076
	.long	1080019845
	.long	-343597384
	.long	1079375953
	.long	2061584302
	.long	1080086036
	.long	-171798692
	.long	1079176232
	.long	1717986918
	.long	1080204902
	.long	1202590843
	.long	1076132577
	.long	-1717986918
	.long	1077991833
	.long	515396076
	.long	1079319429
	.long	-858993459
	.long	1080036556
	.long	1374389535
	.long	1076960952
	.long	-1889785610
	.long	1078498754
	.long	-1374389535
	.long	1079050567
	.long	-2061584302
	.long	1079914987
	.long	-1030792151
	.long	1076947189
	.long	-1374389535
	.long	1078919495
	.long	-1717986918
	.long	1079003545
	.long	-171798692
	.long	1079770152
	.long	1202590843
	.long	1078590177
	.long	-1030792151
	.long	1079294197
	.long	-1374389535
	.long	1079185735
	.long	343597384
	.long	1079826350
	.long	687194767
	.long	1079086940
	.long	-2061584302
	.long	1079640555
	.long	-343597384
	.long	1079363665
	.long	-1889785610
	.long	1080090050
	.long	1717986918
	.long	1077831270
	.long	-1546188227
	.long	1078656368
	.long	-515396076
	.long	1075647610
	.long	-171798692
	.long	1078066216
	.long	0
	.long	1072168960
	.long	-1889785610
	.long	1077032386
	.long	-1030792151
	.long	1073490165
	.long	1202590843
	.long	1077361377
	.long	-343597384
	.long	1077934161
	.long	-687194767
	.long	1078898851
	.long	1889785610
	.long	1078159933
	.long	515396076
	.long	1079262085
	.long	-1717986918
	.long	1079028121
	.long	2061584302
	.long	1079959060
	.long	-343597384
	.long	1074837585
	.long	1546188227
	.long	1077854863
	.long	1030792151
	.long	1078261514
	.long	-1202590843
	.long	1079067934
	.long	-171798692
	.long	1078410280
	.long	-1374389535
	.long	1079411015
	.long	-1030792151
	.long	1079298293
	.long	-858993459
	.long	1080149196
	.long	515396076
	.long	1078750085
	.long	0
	.long	1079455744
	.long	687194767
	.long	1076334428
	.long	858993459
	.long	1078383411
	.long	-858993459
	.long	1079061708
	.long	-343597384
	.long	1079728209
	.long	1202590843
	.long	1079556833
	.long	-1202590843
	.long	1080278302
	.long	1889785610
	.long	1078348349
	.long	515396076
	.long	1079163781
	.long	858993459
	.long	1078326067
	.long	-515396076
	.long	1079346298
	.long	171798692
	.long	1076995031
	.long	-1546188227
	.long	1078656368
	.long	1889785610
	.long	1075644989
	.long	515396076
	.long	1078127493
	.long	1374389535
	.long	1077550776
	.long	-2061584302
	.long	1078481387
	.long	1202590843
	.long	1079360225
	.long	-171798692
	.long	1079782440
	.long	-1374389535
	.long	1079218503
	.long	-1202590843
	.long	1080077598
	.long	-1717986918
	.long	1078884761
	.long	1202590843
	.long	1079425761
	.long	1374389535
	.long	1079312056
	.long	-1202590843
	.long	1080091934
	.long	-1202590843
	.long	1076266270
	.long	343597384
	.long	1078380462
	.long	-1546188227
	.long	1079328112
	.long	-687194767
	.long	1080129699
	.long	-1202590843
	.long	1078854942
	.long	-858993459
	.long	1079459020
	.long	1546188227
	.long	1079337615
	.long	-343597384
	.long	1079842897
	.long	-687194767
	.long	1079156899
	.long	2061584302
	.long	1079905812
	.long	-1889785610
	.long	1078130114
	.long	1889785610
	.long	1079274045
	.long	343597384
	.long	1079097262
	.long	343597384
	.long	1079633838
	.long	-515396076
	.long	1077761146
	.long	171798692
	.long	1078731735
	.long	1889785610
	.long	1076169277
	.long	-515396076
	.long	1078588538
	.long	-858993459
	.long	1078676684
	.long	1202590843
	.long	1079331553
	.long	-687194767
	.long	1078603939
	.long	-2061584302
	.long	1079222763
	.long	1717986918
	.long	1078077030
	.long	2061584302
	.long	1078881812
	.long	-687194767
	.long	1079414947
	.long	1717986918
	.long	1080102502
	.long	171798692
	.long	1079153623
	.long	343597384
	.long	1079924654
	.long	2061584302
	.long	1079049748
	.long	858993459
	.long	1079677747
	.long	-1374389535
	.long	1079284039
	.long	-343597384
	.long	1080010833
	.long	0
	.long	1078239232
	.long	171798692
	.long	1079075799
	.long	1546188227
	.long	1073857167
	.long	171798692
	.long	1077437399
	.long	-858993459
	.long	1077873868
	.long	1374389535
	.long	1078828728
	.long	-515396076
	.long	1077302394
	.long	-515396076
	.long	1078998138
	.long	-2061584302
	.long	1078465003
	.long	-1030792151
	.long	1079609589
	.long	171798692
	.long	1078674391
	.long	-1717986918
	.long	1079359897
	.long	-1030792151
	.long	1077537013
	.long	-1374389535
	.long	1078894919
	.long	1202590843
	.long	1078082273
	.long	-858993459
	.long	1079061708
	.long	-687194767
	.long	1079247011
	.long	1374389535
	.long	1080065720
	.long	-2061584302
	.long	1078759915
	.long	515396076
	.long	1079192453
	.long	-343597384
	.long	1078884433
	.long	1030792151
	.long	1079473930
	.long	1717986918
	.long	1079260774
	.long	-171798692
	.long	1080091688
	.long	1717986918
	.long	1079395942
	.long	-1202590843
	.long	1080059166
	.long	0
	.long	1079365632
	.long	687194767
	.long	1080125276
	.long	-1030792151
	.long	1079417077
	.long	-1374389535
	.long	1080138055
	.long	-1374389535
	.long	1077911879
	.long	1889785610
	.long	1079118397
	.long	2061584302
	.long	1079225876
	.long	0
	.long	1080102912
	.long	1889785610
	.long	1077430845
	.long	1374389535
	.long	1079054008
	.long	0
	.long	1079336960
	.long	343597384
	.long	1080078254
	.long	-343597384
	.long	1078032465
	.long	858993459
	.long	1079096115
	.long	-1202590843
	.long	1079309598
	.long	1374389535
	.long	1080012472
	.long	1374389535
	.long	1077780152
	.long	687194767
	.long	1079205724
	.long	1030792151
	.long	1078515466
	.long	-1889785610
	.long	1079510466
	.long	858993459
	.long	1079444275
	.long	-1374389535
	.long	1080160583
	.long	1889785610
	.long	1079392829
	.long	-1030792151
	.long	1080195317
	.long	1717986918
	.long	1079285350
	.long	171798692
	.long	1079944151
	.long	515396076
	.long	1078995845
	.long	515396076
	.long	1079700357
	.long	343597384
	.long	1078953902
	.long	1030792151
	.long	1079756554
	.long	-1889785610
	.long	1079453122
	.long	-1717986918
	.long	1080211865
	.long	-687194767
	.long	1077440675
	.long	-171798692
	.long	1078320168
	.long	858993459
	.long	1079538483
	.long	-1030792151
	.long	1080326389
	.long	171798692
	.long	1078256599
	.long	1546188227
	.long	1079448207
	.long	1546188227
	.long	1074119311
	.long	1374389535
	.long	1077878456
	.long	-515396076
	.long	1078621306
	.long	-687194767
	.long	1079525539
	.long	-171798692
	.long	1079381032
	.long	2061584302
	.long	1080133140
	.long	1202590843
	.long	1077410529
	.long	515396076
	.long	1079077765
	.long	-1202590843
	.long	1078699294
	.long	1546188227
	.long	1079403151
	.long	171798692
	.long	1078625239
	.long	-1030792151
	.long	1079331061
	.long	-343597384
	.long	1077377105
	.long	515396076
	.long	1079196549
	.long	1374389535
	.long	1079152312
	.long	-687194767
	.long	1079799971
	.long	-1202590843
	.long	1079391518
	.long	-1374389535
	.long	1079959879
	.long	171798692
	.long	1078256599
	.long	1717986918
	.long	1079178854
	.long	-1030792151
	.long	1078348021
	.long	-2061584302
	.long	1079398891
	.long	-858993459
	.long	1073925324
	.long	1374389535
	.long	1078066872
	.long	-343597384
	.long	1079183441
	.long	-171798692
	.long	1079663656
	.long	-1546188227
	.long	1079324016
	.long	-1374389535
	.long	1080084807
	.long	-1717986918
	.long	1076173209
	.long	-171798692
	.long	1077632040
	.long	-858993459
	.long	1079565516
	.long	1546188227
	.long	1080251023
	.long	687194767
	.long	1075351388
	.long	1374389535
	.long	1078312632
	.long	-1717986918
	.long	1078974873
	.long	1030792151
	.long	1079637770
	.long	-687194767
	.long	1077047459
	.long	-1202590843
	.long	1078658334
	.long	515396076
	.long	1073605509
	.long	-687194767
	.long	1077899427
	.long	-858993459
	.long	1077316812
	.long	-171798692
	.long	1078967336
	.long	1030792151
	.long	1079285514
	.long	-343597384
	.long	1079912529
	.long	-1889785610
	.long	1079293378
	.long	2061584302
	.long	1079975444
	.long	-1546188227
	.long	1076641136
	.long	0
	.long	1078435840
	.long	-687194767
	.long	1079304355
	.long	-1374389535
	.long	1080154439
	.long	1546188227
	.long	1079517839
	.long	-1546188227
	.long	1080044912
	.long	0
	.long	1074790400
	.long	1374389535
	.long	1077485240
	.long	-1717986918
	.long	1076402585
	.long	-343597384
	.long	1078261841
	.long	-1889785610
	.long	1078867394
	.long	-687194767
	.long	1079558307
	.long	-1889785610
	.long	1078515138
	.long	-2061584302
	.long	1079443947
	.long	-343597384
	.long	1076901969
	.long	-1202590843
	.long	1078650142
	.long	1202590843
	.long	1079159521
	.long	1717986918
	.long	1080069734
	.long	343597384
	.long	1076348846
	.long	-343597384
	.long	1077704785
	.long	-858993459
	.long	1079188684
	.long	-171798692
	.long	1080032296
	.long	-1546188227
	.long	1078639984
	.long	-1030792151
	.long	1079355637
	.long	-1030792151
	.long	1079052533
	.long	-1546188227
	.long	1079778672
	.long	171798692
	.long	1079337943
	.long	-1717986918
	.long	1080117657
	.long	0
	.long	1078566912
	.long	858993459
	.long	1079374643
	.long	1202590843
	.long	1078000353
	.long	-1374389535
	.long	1078567239
	.long	-1546188227
	.long	1078582640
	.long	1717986918
	.long	1079252582
	.long	2061584302
	.long	1076145684
	.long	-687194767
	.long	1078169763
	.long	1717986918
	.long	1079019110
	.long	-1202590843
	.long	1079829790
	.long	2061584302
	.long	1078341140
	.long	-687194767
	.long	1079267491
	.long	171798692
	.long	1074963415
	.long	1374389535
	.long	1078451896
	.long	-1374389535
	.long	1079386439
	.long	515396076
	.long	1080083333
	.long	858993459
	.long	1076507443
	.long	-343597384
	.long	1078286417
	.long	-171798692
	.long	1075993640
	.long	-1889785610
	.long	1077867970
	.long	-1202590843
	.long	1077085470
	.long	515396076
	.long	1078250373
	.long	1717986918
	.long	1079232102
	.long	-2061584302
	.long	1080044011
	.long	1202590843
	.long	1077590753
	.long	-515396076
	.long	1078334586
	.long	-1889785610
	.long	1079072194
	.long	-171798692
	.long	1079843880
	.long	-1717986918
	.long	1078008217
	.long	1030792151
	.long	1079207690
	.long	515396076
	.long	1076095877
	.long	1889785610
	.long	1078217277
	.long	1546188227
	.long	1079050895
	.long	2061584302
	.long	1079864852
	.long	0
	.long	1079382016
	.long	-1546188227
	.long	1080124784
	.long	-1889785610
	.long	1078932930
	.long	-858993459
	.long	1079610572
	.long	858993459
	.long	1072902963
	.long	1546188227
	.long	1077346959
	.long	1374389535
	.long	1079045816
	.long	1202590843
	.long	1079728865
	.long	-687194767
	.long	1070428323
	.long	-1889785610
	.long	1076934082
	.long	1374389535
	.long	1077780152
	.long	-1889785610
	.long	1078957506
	.long	1717986918
	.long	1079510630
	.long	-1374389535
	.long	1080105287
	.long	-687194767
	.long	1072525475
	.long	1546188227
	.long	1077592719
	.long	0
	.long	1078460416
	.long	0
	.long	1079345152
	.long	687194767
	.long	1079340892
	.long	1030792151
	.long	1080186634
	.long	-1202590843
	.long	1078363422
	.long	858993459
	.long	1079300915
	.long	2061584302
	.long	1078537748
	.long	-171798692
	.long	1079303208
	.long	-1202590843
	.long	1078363422
	.long	687194767
	.long	1079205724
	.long	-2061584302
	.long	1076023787
	.long	-1030792151
	.long	1078364405
	.long	-1030792151
	.long	1079531765
	.long	-1374389535
	.long	1080131911
	.long	687194767
	.long	1079570268
	.long	-515396076
	.long	1080183930
	.long	858993459
	.long	1079395123
	.long	0
	.long	1079963648
	.long	-2061584302
	.long	1076187627
	.long	1889785610
	.long	1078045245
	.long	343597384
	.long	1079109550
	.long	-171798692
	.long	1079655464
	.long	687194767
	.long	1077448540
	.long	0
	.long	1078943744
	.long	-1202590843
	.long	1079498014
	.long	-687194767
	.long	1080152227
	.long	2061584302
	.long	1078119956
	.long	1374389535
	.long	1078910648
	.long	2061584302
	.long	1078390292
	.long	-2061584302
	.long	1079144939
	.long	1030792151
	.long	1079047946
	.long	687194767
	.long	1079652188
	.long	-1374389535
	.long	1077371207
	.long	858993459
	.long	1079034675
	.long	-1202590843
	.long	1078428958
	.long	-171798692
	.long	1079364648
	.long	-171798692
	.long	1075403816
	.long	-2061584302
	.long	1077727723
	.long	1374389535
	.long	1079144120
	.long	1717986918
	.long	1079912038
	.long	2061584302
	.long	1079270932
	.long	1030792151
	.long	1080037130
	.long	-1202590843
	.long	1077576990
	.long	-2061584302
	.long	1078628843
	.long	-1546188227
	.long	1074019696
	.long	-2061584302
	.long	1077170667
	.long	1030792151
	.long	1077729034
	.long	515396076
	.long	1078553477
	.long	-2061584302
	.long	1072189931
	.long	1717986918
	.long	1078257254
	.long	-1202590843
	.long	1078109470
	.long	1889785610
	.long	1078962749
	.long	515396076
	.long	1077324677
	.long	-1202590843
	.long	1079022878
	.long	1717986918
	.long	1078150758
	.long	171798692
	.long	1078666199
	.long	-1546188227
	.long	1078844784
	.long	-1889785610
	.long	1079547330
	.long	-1546188227
	.long	1077919088
	.long	687194767
	.long	1078964060
	.long	-687194767
	.long	1078849699
	.long	-1374389535
	.long	1079791943
	.long	-1202590843
	.long	1078527262
	.long	-1374389535
	.long	1079275847
	.long	1202590843
	.long	1078590177
	.long	1546188227
	.long	1079353999
	.long	858993459
	.long	1072378675
	.long	-858993459
	.long	1074580684
	.long	-343597384
	.long	1079339089
	.long	1202590843
	.long	1080167137
	.long	-858993459
	.long	1079553228
	.long	-1889785610
	.long	1080165826
	.long	-1546188227
	.long	1079192944
	.long	-687194767
	.long	1079931043
	.long	515396076
	.long	1071770501
	.long	343597384
	.long	1077348270
	.long	0
	.long	1078378496
	.long	-1374389535
	.long	1079288135
	.long	1030792151
	.long	1078384394
	.long	1374389535
	.long	1079393976
	.long	-858993459
	.long	1079340236
	.long	1889785610
	.long	1080037949
	.long	1202590843
	.long	1079016161
	.long	1546188227
	.long	1079952015
	.long	171798692
	.long	1078092759
	.long	1546188227
	.long	1079128719
	.long	687194767
	.long	1079570268
	.long	0
	.long	1080199168
	.long	-858993459
	.long	1077726412
	.long	687194767
	.long	1078480732
	.long	515396076
	.long	1079257989
	.long	-687194767
	.long	1080094883
	.long	0
	.long	1079263232
	.long	-2061584302
	.long	1080150507
	.long	343597384
	.long	1076955054
	.long	-171798692
	.long	1078148136
	.long	0
	.long	1078009856
	.long	515396076
	.long	1078840197
	.long	1030792151
	.long	1079166730
	.long	687194767
	.long	1079910236
	.long	1546188227
	.long	1079145103
	.long	-858993459
	.long	1079921868
	.long	1889785610
	.long	1076922941
	.long	1717986918
	.long	1078019686
	.long	1717986918
	.long	1077618278
	.long	1202590843
	.long	1078688481
	.long	-171798692
	.long	1079458856
	.long	343597384
	.long	1080127406
	.long	-1546188227
	.long	1076641136
	.long	1717986918
	.long	1078347366
	.long	1202590843
	.long	1079114465
	.long	-1546188227
	.long	1080094064
	.long	1546188227
	.long	1073857167
	.long	1030792151
	.long	1077950218
	.long	1030792151
	.long	1079453450
	.long	0
	.long	1080211456
	.long	515396076
	.long	1079430021
	.long	-1717986918
	.long	1080191385
	.long	171798692
	.long	1075946455
	.long	2061584302
	.long	1078062612
	.long	-515396076
	.long	1079088250
	.long	-343597384
	.long	1079806033
	.long	858993459
	.long	1079100211
	.long	858993459
	.long	1079730995
	.long	-858993459
	.long	1077021900
	.long	858993459
	.long	1078235955
	.long	1717986918
	.long	1077061222
	.long	515396076
	.long	1077832581
	.long	-343597384
	.long	1077786705
	.long	-1546188227
	.long	1079045488
	.long	-1889785610
	.long	1076786626
	.long	171798692
	.long	1078346711
	.long	171798692
	.long	1079096279
	.long	0
	.long	1079914496
	.long	1546188227
	.long	1077527183
	.long	-171798692
	.long	1079290920
	.long	-171798692
	.long	1078729768
	.long	-343597384
	.long	1079625809
	.long	1374389535
	.long	1077698232
	.long	-343597384
	.long	1078884433
	.long	-2061584302
	.long	1079071211
	.long	-515396076
	.long	1079698554
	.long	-1374389535
	.long	1072357703
	.long	-2061584302
	.long	1077678571
	.long	1374389535
	.long	1076944568
	.long	2061584302
	.long	1078423060
	.long	-1889785610
	.long	1075180994
	.long	515396076
	.long	1078037381
	.long	-171798692
	.long	1079016488
	.long	687194767
	.long	1080000348
	.long	-1202590843
	.long	1079125278
	.long	-1374389535
	.long	1079730503
	.long	1374389535
	.long	1076010680
	.long	-1030792151
	.long	1078110453
	.long	-2061584302
	.long	1078170091
	.long	-515396076
	.long	1079043194
	.long	-687194767
	.long	1078399139
	.long	343597384
	.long	1079240622
	.long	-343597384
	.long	1078179921
	.long	515396076
	.long	1079163781
	.long	1717986918
	.long	1076061798
	.long	1374389535
	.long	1077747384
	.long	515396076
	.long	1078594437
	.long	858993459
	.long	1079255859
	.long	-858993459
	.long	1078398156
	.long	343597384
	.long	1079281582
	.long	1030792151
	.long	1078294282
	.long	-1374389535
	.long	1079140679
	.long	1374389535
	.long	1077862072
	.long	-1889785610
	.long	1078752706
	.long	-2061584302
	.long	1074876907
	.long	171798692
	.long	1076798423
	.long	171798692
	.long	1077076951
	.long	1889785610
	.long	1078659645
	.long	1030792151
	.long	1079088906
	.long	-343597384
	.long	1079920721
	.long	-515396076
	.long	1077662842
	.long	-1030792151
	.long	1078593781
	.long	-1546188227
	.long	1075199344
	.long	2061584302
	.long	1077718548
	.long	1889785610
	.long	1079433789
	.long	171798692
	.long	1080202199
	.long	-1717986918
	.long	1076468121
	.long	-1546188227
	.long	1078263152
	.long	-343597384
	.long	1078745169
	.long	-515396076
	.long	1079669882
	.long	-687194767
	.long	1079124131
	.long	-515396076
	.long	1080063098
	.long	1546188227
	.long	1079194255
	.long	1889785610
	.long	1080076861
	.long	-858993459
	.long	1078226124
	.long	1030792151
	.long	1079174922
	.long	1202590843
	.long	1077983969
	.long	343597384
	.long	1079097262
	.long	-515396076
	.long	1078678650
	.long	-1030792151
	.long	1079384309
	.long	1546188227
	.long	1079345807
	.long	-515396076
	.long	1080104058
	.long	1202590843
	.long	1078987489
	.long	-343597384
	.long	1079789649
	.long	1030792151
	.long	1078892298
	.long	858993459
	.long	1079767859
	.long	-1030792151
	.long	1078741237
	.long	-687194767
	.long	1079509155
	.long	858993459
	.long	1076015923
	.long	0
	.long	1078198272
	.long	1889785610
	.long	1078872637
	.long	-1202590843
	.long	1079563550
	.long	1202590843
	.long	1079327457
	.long	-515396076
	.long	1079977082
	.long	-171798692
	.long	1078131752
	.long	-2061584302
	.long	1079112171
	.long	-1889785610
	.long	1077982658
	.long	515396076
	.long	1078619013
	.long	-343597384
	.long	1079494737
	.long	858993459
	.long	1080120115
	.long	1889785610
	.long	1077250621
	.long	1546188227
	.long	1078411919
	.long	-1889785610
	.long	1079342530
	.long	-1717986918
	.long	1080041881
	.long	1546188227
	.long	1075233423
	.long	0
	.long	1077510144
	.long	343597384
	.long	1078998958
	.long	-1717986918
	.long	1079814553
	.long	1202590843
	.long	1079044833
	.long	687194767
	.long	1079840604
	.long	1889785610
	.long	1079421501
	.long	-515396076
	.long	1080196218
	.long	-1717986918
	.long	1079237017
	.long	687194767
	.long	1080137564
	.long	687194767
	.long	1073647452
	.long	687194767
	.long	1077981020
	.long	343597384
	.long	1079007150
	.long	1717986918
	.long	1079744102
	.long	858993459
	.long	1078022963
	.long	687194767
	.long	1079218012
	.long	1030792151
	.long	1079006986
	.long	-171798692
	.long	1079618600
	.long	-1717986918
	.long	1075747225
	.long	1202590843
	.long	1078123233
	.long	-515396076
	.long	1078244474
	.long	515396076
	.long	1079307141
	.long	1030792151
	.long	1077335818
	.long	-1030792151
	.long	1078348021
	.long	-1889785610
	.long	1078392258
	.long	343597384
	.long	1079494574
	.long	515396076
	.long	1078086533
	.long	687194767
	.long	1079156572
	.long	171798692
	.long	1078330327
	.long	-687194767
	.long	1079210147
	.long	858993459
	.long	1078793011
	.long	-1202590843
	.long	1079661854
	.long	1546188227
	.long	1078780559
	.long	1546188227
	.long	1079661199
	.long	-1717986918
	.long	1078647193
	.long	-343597384
	.long	1079515217
	.long	171798692
	.long	1078166487
	.long	2061584302
	.long	1079250452
	.long	1030792151
	.long	1079174922
	.long	687194767
	.long	1080035164
	.long	-515396076
	.long	1074664570
	.long	1374389535
	.long	1077485240
	.long	-1030792151
	.long	1079548149
	.long	858993459
	.long	1080322867
	.long	1030792151
	.long	1078785802
	.long	858993459
	.long	1079759667
	.long	-1546188227
	.long	1079414128
	.long	1202590843
	.long	1079966433
	.long	-2061584302
	.long	1079435755
	.long	-1030792151
	.long	1080168693
	.long	-1374389535
	.long	1078042951
	.long	0
	.long	1079099392
	.long	0
	.long	1077510144
	.long	-1717986918
	.long	1078671769
	.long	-1202590843
	.long	1079194910
	.long	-171798692
	.long	1079831592
	.long	515396076
	.long	1079208837
	.long	-1889785610
	.long	1079752130
	.long	-1717986918
	.long	1077950873
	.long	1889785610
	.long	1078889021
	.long	171798692
	.long	1076601815
	.long	-858993459
	.long	1078455500
	.long	-343597384
	.long	1076983889
	.long	2061584302
	.long	1079066132
	.long	0
	.long	1077362688
	.long	-515396076
	.long	1078170746
	.local	_ZL8d_n_data
	.comm	_ZL8d_n_data,4,4
	.globl	n_data
	.align 4
	.type	n_data, @object
	.size	n_data, 4
n_data:
	.long	1000
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC3:
	.long	-8388608
	.long	1104006500
	.align 8
.LC4:
	.long	0
	.long	1076101120
	.align 8
.LC5:
	.long	-858993459
	.long	1073007820
	.align 8
.LC10:
	.long	1202590843
	.long	1065646817
	.align 8
.LC20:
	.long	0
	.long	1104006501
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:


#include <hip/hip_runtime.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <unistd.h>
#include <hip/hip_runtime_api.h>
#include <errno.h>
#include <unistd.h>

/*********************************************************************
To compile:
	nvcc -o aashish linear.cu -lm
To run:
	./aashish

Dr Kevan Buckley, University of Wolverhampton, 2018 
**********************************************************************/

typedef struct point_t {
  double x;
  double y;
} point_t;

int n_data = 1000;
__device__ int d_n_data = 1000;

// data of linear Regression

point_t data[] = {
  {77.52,111.16},{79.22,112.40},{72.15,118.44},{65.35,107.13},
  {77.17,122.11},{69.27,121.55},{68.41,102.39},{77.04,142.61},
  {65.28,109.43},{65.37,108.13},{82.08,144.07},{79.41,126.98},
  {85.32,120.36},{70.14,110.40},{73.30,127.07},{ 5.97,28.63},
  {80.49,123.26},{50.07,66.31},{56.02,107.73},{ 2.83,39.08},
  {68.54,123.97},{84.60,141.02},{20.86,38.32},{48.38,67.35},
  {56.57,94.10},{96.94,150.32},{69.81,113.25},{68.89,115.30},
  {46.76,60.28},{35.71,63.96},{63.70,113.86},{18.46,52.49},
  {48.48,83.58},{67.43,104.48},{81.34,146.11},{ 3.82,31.58},
  {12.85,37.14},{27.77,53.03},{94.36,149.10},{42.13,69.36},
  {78.35,134.01},{79.13,126.24},{14.33,50.01},{ 7.25,38.53},
  {92.05,146.99},{83.36,128.02},{50.18,96.34},{24.68,49.90},
  {85.16,122.33},{89.70,152.03},{86.76,140.41},{48.03,84.67},
  {75.57,116.22},{ 1.47,18.46},{80.11,129.09},{26.70,60.38},
  {89.25,146.50},{83.63,143.57},{84.54,145.00},{83.60,126.02},
  {34.41,71.97},{49.97,86.96},{45.47,66.06},{10.52,27.98},
  {79.23,143.58},{13.72,41.06},{14.52,47.18},{39.12,83.71},
  {24.08,42.18},{62.12,103.04},{25.68,51.91},{24.95,59.29},
  {29.45,81.68},{86.17,141.17},{ 4.71,41.81},{99.57,143.53},
  {82.09,123.12},{80.61,135.59},{69.88,123.64},{35.68,58.67},
  {56.28,94.81},{80.61,118.20},{55.45,95.69},{ 0.90,32.07},
  {19.45,40.02},{45.44,87.42},{54.10,88.99},{ 7.79,46.13},
  {70.78,136.58},{14.00,39.55},{77.44,117.50},{41.75,85.97},
  {41.13,81.01},{20.52,39.83},{47.83,91.97},{26.41,52.02},
  {32.09,71.52},{31.53,70.05},{29.75,60.78},{58.01,116.93},
  {14.31,27.87},{27.90,70.77},{98.57,156.98},{38.30,75.09},
  {46.99,85.40},{11.18,47.03},{39.33,76.67},{11.83,40.98},
  {85.97,142.88},{36.38,69.22},{82.51,127.25},{45.72,80.09},
  {60.22,114.65},{62.96,102.01},{85.78,132.10},{59.99,98.73},
  {79.48,118.37},{ 5.71,15.68},{76.29,129.40},{52.82,93.20},
  {27.03,67.46},{76.71,120.54},{52.74,99.66},{94.34,147.81},
  {26.73,42.36},{42.22,91.16},{16.38,25.64},{40.82,86.58},
  {43.43,102.28},{56.29,109.19},{87.00,125.70},{10.05,47.43},
  {86.82,137.87},{25.16,55.40},{34.03,60.92},{66.25,130.63},
  {91.44,137.46},{68.89,123.75},{94.88,145.16},{87.61,148.82},
  {77.70,148.02},{ 3.50,27.88},{18.62,55.41},{93.05,142.93},
  {95.51,156.15},{54.31,79.89},{34.03,62.93},{84.03,127.57},
  {92.75,148.48},{38.04,91.10},{41.45,92.28},{98.83,155.37},
  {66.18,105.42},{ 9.40,25.98},{52.68,91.78},{10.20,32.71},
  {31.96,67.68},{59.41,110.00},{10.78,35.01},{41.46,79.28},
  {42.35,68.84},{42.51,77.19},{43.82,88.14},{82.59,135.28},
  {18.09,32.51},{84.34,129.38},{59.59,91.75},{45.52,77.50},
  {43.05,79.65},{23.04,52.11},{64.19,106.30},{98.97,174.90},
  {71.36,121.96},{ 9.13,42.33},{88.50,143.88},{ 1.67,24.66},
  {40.93,92.19},{59.40,91.55},{68.98,119.01},{13.27,43.80},
  {22.08,36.17},{ 7.19,41.61},{14.24,43.80},{70.55,123.81},
  { 9.62,35.51},{13.57,27.03},{25.25,61.69},{20.56,32.96},
  {93.59,154.75},{11.94,37.32},{82.04,135.70},{88.50,122.58},
  {66.98,137.04},{53.67,98.56},{28.84,47.17},{50.21,96.36},
  {59.92,109.70},{47.92,92.12},{79.66,111.84},{89.42,153.62},
  {56.03,89.30},{31.56,62.10},{ 6.56,35.40},{23.96,45.25},
  {53.95,95.69},{16.29,46.77},{48.30,79.70},{62.40,94.58},
  {72.42,117.56},{10.56,36.41},{59.29,96.06},{40.46,82.43},
  {82.20,124.33},{49.20,94.03},{47.47,84.97},{53.33,77.55},
  {94.86,136.83},{ 5.62,34.47},{33.58,57.96},{74.92,116.21},
  {53.04,92.01},{99.16,157.45},{26.01,58.56},{62.03,114.51},
  {62.89,114.63},{ 5.39,26.40},{77.44,108.36},{74.53,115.37},
  {96.41,148.42},{66.35,101.12},{56.41,105.20},{82.07,128.32},
  {65.25,105.11},{55.43,94.37},{92.59,143.93},{67.82,119.85},
  {73.57,117.92},{88.90,152.16},{20.75,28.26},{33.71,91.55},
  {86.36,126.21},{41.52,84.56},{50.68,96.51},{62.29,104.52},
  {63.65,103.14},{30.77,49.46},{38.54,78.35},{66.80,105.95},
  {41.88,67.82},{63.68,116.77},{68.46,111.50},{ 4.35,19.71},
  { 0.72,37.59},{46.62,83.00},{12.47,37.35},{95.71,139.71},
  {50.33,94.83},{ 4.50,45.88},{ 6.01,22.70},{ 5.13,43.99},
  {17.33,50.26},{49.01,93.47},{22.02,49.99},{65.75,121.54},
  {44.57,73.37},{59.81,84.22},{62.10,95.50},{83.27,141.79},
  {51.07,74.11},{13.81,53.39},{56.92,108.09},{12.39,42.54},
  {60.42,105.30},{35.49,73.98},{57.93,93.68},{66.54,123.83},
  {74.00,117.37},{80.38,110.30},{41.23,68.43},{71.31,120.14},
  {27.71,82.20},{24.92,63.16},{62.28,95.31},{ 1.68,28.94},
  {46.42,83.37},{93.39,154.26},{22.97,64.60},{20.33,75.85},
  { 0.73,28.08},{96.22,150.56},{64.52,112.78},{91.89,139.96},
  {67.39,118.37},{52.75,99.27},{85.89,135.80},{32.96,61.55},
  {57.02,97.09},{67.59,112.74},{67.81,116.64},{36.59,73.44},
  {55.15,87.94},{40.73,98.64},{49.23,90.08},{17.18,33.49},
  {28.38,64.64},{97.13,136.69},{73.03,133.87},{87.21,133.02},
  {18.18,47.63},{12.57,37.10},{64.76,109.73},{ 9.75,29.04},
  {82.12,122.64},{91.46,131.91},{90.84,161.10},{ 6.84,40.35},
  {64.83,115.85},{16.52,41.08},{41.31,84.71},{80.05,135.91},
  {85.63,145.77},{92.20,136.55},{22.56,68.10},{43.94,80.47},
  {90.98,149.53},{88.48,140.59},{43.94,80.18},{63.03,110.36},
  {75.31,106.33},{86.03,143.80},{25.08,39.53},{62.38,79.06},
  {81.41,128.93},{63.26,101.87},{21.56,42.27},{79.55,126.08},
  {16.35,50.80},{78.20,141.32},{85.79,130.63},{90.41,151.95},
  {96.25,155.76},{27.77,52.00},{49.28,107.01},{ 1.40,30.10},
  {23.75,42.55},{92.63,165.88},{10.36,51.28},{50.78,88.73},
  {63.98,116.57},{92.83,164.68},{34.70,48.17},{27.49,74.40},
  {75.93,131.29},{10.21,41.22},{ 3.78,26.87},{86.22,145.92},
  { 0.72,21.55},{82.01,119.06},{24.85,49.25},{24.17,42.57},
  {48.38,72.87},{ 2.75,29.34},{46.52,85.10},{ 4.17,38.00},
  {18.60,43.57},{10.01,46.84},{18.56,45.86},{ 8.11,31.69},
  {26.92,53.01},{46.19,98.79},{22.32,54.22},{77.02,125.15},
  {24.30,49.02},{42.80,70.37},{30.94,73.44},{ 1.05,17.82},
  {69.00,124.85},{ 6.43, 9.62},{83.83,138.28},{29.43,76.73},
  {16.51,31.77},{94.75,140.16},{85.78,141.11},{87.10,137.03},
  {56.33,110.88},{74.82,127.71},{68.60,106.65},{62.33,107.47},
  {90.49,138.26},{80.22,123.50},{17.66,55.51},{40.87,77.92},
  {96.92,155.77},{24.36,50.70},{27.06,62.59},{50.41,97.24},
  {84.40,129.94},{25.57,54.69},{81.49,142.95},{80.61,117.50},
  {56.43,91.26},{67.83,109.04},{45.38,80.45},{21.89,44.76},
  {65.29,105.12},{34.83,86.38},{85.78,124.36},{50.41,81.53},
  {50.27,79.33},{57.30,97.96},{68.23,114.28},{82.46,131.61},
  {32.72,60.25},{83.32,138.25},{34.42,63.08},{39.90,81.74},
  {85.35,126.03},{95.80,149.79},{20.32,49.18},{50.55,72.14},
  {63.02,116.86},{59.13,108.30},{61.44,102.80},{46.19,86.38},
  {15.92,43.37},{40.00,84.80},{61.95,88.92},{54.67,100.75},
  { 4.29,36.26},{ 5.10,33.31},{ 3.50,40.45},{ 4.42, 8.68},
  {29.41,64.46},{ 7.70,19.82},{31.14,72.65},{61.28,96.56},
  {46.92,77.08},{65.99,104.39},{95.46,161.08},{27.53,49.22},
  {28.30,59.01},{15.52,57.93},{44.15,78.62},{49.91,100.10},
  {82.67,127.34},{81.82,127.23},{38.41,80.46},{57.28,106.81},
  {18.48,32.81},{34.13,66.41},{13.86,50.03},{21.59,56.45},
  {70.26,108.90},{16.63,37.35},{14.04,41.79},{91.76,152.34},
  {54.53,105.55},{36.12,74.01},{39.43,62.06},{32.52,66.84},
  { 1.78,40.27},{97.20,143.38},{16.32,33.57},{52.58,99.32},
  {20.00,52.72},{ 9.46,55.59},{47.48,82.58},{15.68,51.34},
  {36.16,75.22},{47.72,82.07},{ 9.69,39.10},{64.32,101.08},
  {84.57,160.17},{71.23,115.34},{26.92,63.79},{14.85,43.65},
  {37.46,80.06},{47.01,77.58},{41.51,78.77},{20.13,30.33},
  {75.55,139.90},{28.64,60.96},{29.30,69.45},{32.19,64.66},
  {28.36,72.15},{88.38,119.57},{15.28,39.54},{93.26,139.72},
  {11.51,53.71},{43.60,95.04},{45.60,78.14},{ 3.57,29.21},
  {90.12,136.05},{75.02,136.05},{60.73,100.82},{54.35,76.07},
  {12.42,37.29},{15.97,43.37},{62.72,101.78},{66.66,101.18},
  {31.13,63.84},{16.90,30.99},{32.49,46.71},{ 6.72,24.28},
  {81.29,137.57},{11.62,39.70},{37.27,80.20},{38.44,55.09},
  {26.22,46.68},{72.02,128.27},{93.57,141.10},{19.96,52.81},
  {95.29,140.70},{82.63,124.22},{21.49,65.14},{37.50,65.28},
  {36.33,41.88},{ 2.80,21.88},{53.83,91.65},{23.48,51.98},
  { 0.26,18.69},{ 9.78,38.06},{55.51,95.54},{26.11,59.50},
  {66.62,106.73},{29.15,65.64},{91.74,131.71},{44.07,76.21},
  {25.99,72.12},{54.49,114.81},{ 9.86,20.89},{97.67,156.29},
  {50.73,98.87},{43.00,71.73},{33.20,63.16},{96.08,129.94},
  {81.89,116.29},{48.48,97.10},{84.96,129.52},{29.89,77.43},
  {97.71,158.62},{ 7.82,26.07},{48.00,74.17},{22.98,28.29},
  { 7.78,29.81},{87.69,134.46},{66.96,110.43},{29.66,58.10},
  {59.16,94.51},{ 9.78,53.91},{23.26,73.97},{80.25,111.81},
  { 5.49,31.00},{51.45,88.27},{26.16,62.35},{15.33,21.70},
  {64.11,94.35},{13.60,58.55},{96.86,163.67},{53.38,101.79},
  {72.19,131.99},{35.30,78.84},{35.58,75.39},{ 5.29,28.83},
  {52.18,88.32},{29.15,58.47},{68.61,118.68},{ 9.03,39.02},
  {53.02,94.32},{ 4.19,20.16},{86.28,138.55},{28.18,70.37},
  {79.41,110.80},{15.09,44.83},{25.83,75.62},{48.58,98.05},
  {89.20,159.29},{86.70,140.27},{ 3.17,40.76},{96.63,152.67},
  {18.67,47.44},{89.57,151.11},{58.17,111.14},{45.94,84.63},
  {83.89,120.58},{71.04,117.22},{47.48,84.85},{11.24,47.77},
  {19.70,43.48},{52.84,77.85},{79.23,108.40},{79.05,120.36},
  {13.26,32.19},{50.76,85.85},{49.61,85.65},{14.53,41.85},
  {69.05,119.84},{ 6.40,42.74},{84.93,125.81},{76.85,127.86},
  {48.14,79.37},{85.13,151.18},{56.95,93.58},{82.65,130.67},
  { 9.65,21.77},{21.35,49.34},{22.78,43.02},{91.26,140.04},
  {74.91,108.01},{82.34,136.20},{11.33,41.50},{62.76,94.01},
  {20.20,35.24},{97.32,130.86},{20.94,33.45},{22.91,54.45},
  {85.56,132.90},{67.99,99.84},{95.49,152.03},{ 5.15,31.48},
  {39.70,71.36},{89.24,132.56},{26.83,65.25},{53.91,84.01},
  {93.97,155.57},{60.33,100.15},{89.10,128.70},{37.78,62.06},
  {34.84,84.18},{82.21,135.26},{20.20,27.26},{18.62,20.01},
  {62.74,123.56},{38.08,84.55},{11.14,19.07},{90.45,147.49},
  { 2.91,27.35},{34.14,90.88},{27.65,61.28},{64.04,99.81},
  {81.98,145.18},{45.22,92.61},{57.15,99.66},{11.96,28.68},
  {30.86,54.84},{54.83,113.26},{96.13,148.21},{10.67,49.45},
  {36.30,67.49},{68.88,118.21},{91.31,136.49},{38.56,66.85},
  {20.85,62.17},{58.23,75.13},{62.58,119.43},{ 7.69,36.64},
  {15.81,50.25},{85.65,138.91},{22.56,57.46},{23.70,45.18},
  {68.61,106.30},{ 8.46,13.89},{78.33,120.49},{64.00,101.99},
  {33.96,82.64},{17.10,37.42},{ 9.12,55.21},{88.90,136.81},
  { 4.31,21.83},{ 0.27,44.25},{33.01,63.29},{90.78,150.83},
  {29.75,56.38},{41.83,77.65},{99.32,146.98},{20.67,41.27},
  {29.88,64.83},{61.91,92.15},{32.85,68.50},{16.52,67.78},
  {47.97,76.31},{98.29,136.74},{57.78,88.86},{ 6.57,41.50},
  {57.67,94.49},{80.69,145.66},{62.96,88.29},{24.08,58.52},
  {33.02,61.94},{63.73,108.86},{50.00,91.55},{42.26,71.77},
  {26.28,46.69},{75.83,109.03},{32.58,65.84},{73.45,125.13},
  {17.22,60.19},{ 1.62,44.30},{33.16,64.43},{57.13,87.24},
  { 0.27,22.73},{73.69,120.51},{56.52,107.02},{98.30,163.52},
  {67.17,98.80},{98.83,149.50},{41.63,76.64},{ 6.42,32.72},
  { 5.79,23.30},{31.46,66.12},{78.28,127.18},{87.88,134.44},
  {75.69,148.95},{10.24,33.70},{84.43,128.40},{17.12,49.17},
  {68.02,120.78},{16.91,62.01},{65.15,111.94},{51.96,82.89},
  {76.27,115.37},{70.24,104.03},{87.13,134.93},{30.40,53.98},
  { 7.27,35.97},{ 0.75,18.21},{ 1.76,23.23},{31.97,61.38},
  {38.83,80.93},{66.65,123.47},{ 4.18,30.76},{41.93,69.08},
  {46.47,90.02},{83.14,142.15},{56.84,92.75},{11.78,45.65},
  {68.70,109.38},{98.92,157.91},{44.58,74.93},{43.90,86.07},
  {17.64,53.98},{ 7.26,37.84},{26.12,48.64},{86.92,112.69},
  {78.27,133.41},{60.95,90.92},{83.98,135.16},{11.26,45.56},
  {84.96,139.77},{60.04,92.95},{85.54,116.38},{74.51,120.22},
  {37.92,81.66},{70.87,103.62},{29.33,56.28},{10.52,51.91},
  {54.60,85.17},{52.38,78.53},{36.30,60.86},{90.26,136.45},
  {74.31,121.37},{67.97,106.30},{82.27,126.63},{41.25,69.56},
  { 2.22,24.39},{31.05,59.24},{22.33,64.82},{48.14,102.14},
  {54.53,86.90},{25.91,61.26},{36.46,68.70},{80.01,131.96},
  {57.14,76.68},{60.94,93.86},{80.85,135.13},{89.10,131.16},
  {87.25,139.23},{90.39,140.79},{31.63,72.16},{78.72,136.50},
  {24.29,68.23},{85.50,133.49},{34.94,70.80},{83.83,126.73},
  {29.62,77.49},{49.68,96.09},{92.05,143.54},{88.91,147.78},
  {82.35,122.56},{64.68,107.68},{63.06,111.11},{92.59,149.80},
  {24.44,43.72},{97.80,163.78},{41.78,92.29},{ 2.72,31.12},
  {52.91,97.01},{88.19,140.19},{23.98,69.68},{55.29,89.54},
  {53.03,85.14},{23.47,76.93},{74.23,113.76},{88.83,123.52},
  {41.78,75.85},{44.57,89.28},{ 2.35,35.99},{76.13,105.44},
  {84.71,134.29},{10.55,27.36},{99.45,154.58},{ 6.14,43.49},
  {63.70,103.86},{18.44,54.04},{ 1.87,31.44},{22.55,63.47},
  {82.36,120.63},{82.84,124.47},{14.12,47.25},{83.51,142.79},
  {96.54,129.42},{ 4.00,25.12},{12.30,41.94},{60.42,99.01},
  {49.67,92.03},{16.22,53.79},{74.67,132.45},{11.89,28.47},
  {76.45,127.94},{53.48,86.64},{68.14,112.46},{85.56,138.30},
  {51.25,87.80},{33.96,51.26},{51.73,80.35},{10.34,39.13},
  {66.10,115.58},{44.36,81.26},{ 4.66,47.74},{88.52,134.11},
  {13.10,42.69},{ 9.18,30.96},{19.02,41.59},{79.10,129.31},
  {26.73,44.16},{69.34,116.44},{34.20,77.61},{ 9.96,40.58},
  {68.04,117.72},{88.25,139.17},{62.42,102.20},{ 1.20,23.01},
  {67.73,109.42},{ 0.23,16.71},{29.62,63.17},{96.10,136.79},
  { 0.92,26.76},{48.00,86.00},{85.74,146.72},{45.04,83.30},
  {50.36,83.44},{45.04,77.49},{ 9.41,45.07},{97.39,140.04},
  {99.74,146.39},{89.05,123.75},{10.66,35.33},{71.62,104.94},
  {24.56,62.75},{95.33,142.52},{37.61,61.74},{45.86,73.78},
  {67.86,104.74},{23.38,67.05},{47.04,87.19},{ 6.34,28.82},
  {73.73,120.60},{81.47,128.47},{26.52,53.14},{ 2.53,20.32},
  {28.84,50.84},{ 0.76,41.80},{37.29,63.33},{22.67,66.33},
  {38.55,54.28},{59.73,98.34},{31.74,63.37},{59.88,113.27},
  {50.04,81.77},{51.96,86.54},{ 0.85, 3.60},{85.63,144.34},
  {98.70,144.18},{76.71,121.76},{ 0.56,23.03},{45.50,82.52},
  {45.68,88.98},{85.70,128.57},{65.92,123.04},{36.78,72.79},
  {99.74,148.25},{28.80,48.62},{80.68,135.52},{81.00,142.31},
  {17.03,38.47},{34.25,59.59},{75.11,120.49},{73.79,121.20},
  {16.54,34.55},{27.15,54.96},{92.94,139.49},{14.12,44.55},
  {71.92,135.42},{ 2.22,32.43},{92.61,149.75},{91.18,147.30},
  { 8.82,35.86},{70.32,114.13},{71.05,109.55},{18.05,41.15},
  {18.65,30.42},{29.72,67.71},{15.23,44.53},{70.81,120.75},
  {25.76,82.69},{56.22,103.13},{28.37,60.94},{69.28,107.57},
  { 0.84,28.07},{16.87,46.86},{ 5.49,35.09},{65.94,125.99},
  {72.58,109.52},{ 9.31,37.32},{39.14,67.57},{46.13,79.62},
  {39.44,74.93},{ 9.70,29.12},{52.09,80.55},{46.10,82.12},
  {42.93,73.52},{30.87,56.92},{ 4.33,15.32},{18.89,54.08},
  {70.36,121.13},{27.83,52.07},{ 5.56,28.68},{91.41,148.62},
  {12.80,41.98},{56.69,105.82},{72.51,131.64},{76.79,133.32},
  {40.85,75.61},{33.46,70.87},{54.66,88.39},{86.04,136.64},
  {64.17,113.13},{61.18,111.80},{56.57,96.01},{ 9.35,40.00},
  {60.58,99.33},{84.92,124.57},{37.97,71.78},{33.42,52.84},
  {95.13,138.60},{21.54,46.52},{85.84,129.05},{ 5.69,25.50},
  {64.87,114.65},{67.67,116.24},{90.66,147.89},{79.40,140.73},
  { 1.91,33.37},{65.37,110.35},{34.65,78.24},{65.36,102.69},
  { 7.65,37.71},{41.41,83.68},{22.84,44.57},{45.92,95.12},
  {36.59,74.49},{44.03,77.76},{58.15,105.33},{57.77,105.29},
  {53.70,96.38},{39.03,80.22},{75.61,128.23},{ 3.76,25.12},
  {98.39,163.35},{57.93,111.30},{90.21,123.92},{91.53,144.53},
  {35.26,71.00},{25.50,54.45},{76.83,115.69},{77.68,110.84},
  {32.45,61.08},{13.82,47.85},{17.47,68.97},{23.25,39.16}
};
double residual_error(double x, double y, double m, double c) {
  double e = (m * x) + c - y;
  return e * e;
}

__device__ double d_residual_error(double x, double y, double m, double c) {
  double e = (m * x) + c - y;
  return e * e;
}

double rms_error(double m, double c) {
  int i;
  double mean;
  double error_sum = 0;
  for(i=0; i<n_data; i++) {
	error_sum += residual_error(data[i].x, data[i].y, m, c);
  }
  
  mean = error_sum / n_data;
  return sqrt(mean);
}

__global__ void d_rms_error(double *m, double *c, double *error_sum_arr, point_t *d_data) {
	int i = threadIdx.x + blockIdx.x * blockDim.x;
		error_sum_arr[i] = d_residual_error(d_data[i].x, d_data[i].y, *m, *c);
}

// Used for calculating Time
int time_difference(struct timespec *start, struct timespec *finish, long long int *difference) {
  long long int ds =  finish->tv_sec - start->tv_sec; 
  long long int dn =  finish->tv_nsec - start->tv_nsec; 

  if(dn < 0 ) {
    ds--;
    dn += 1000000000; 
  } 
  *difference = ds * 1000000000 + dn;
  return !(*difference > 0);
}

int main() {
  int i;
  double bm = 1.3;
  double bc = 10;
  double be;
  double dm[8];
  double dc[8];
  double e[8];
  double step = 0.01;
  double best_error = 999999999;
  int best_error_i;
  int minimum_found = 0;
  
  double om[] = {0,1,1, 1, 0,-1,-1,-1};
  double oc[] = {1,1,0,-1,-1,-1, 0, 1};

	struct timespec start, finish;   
	long long int time_elapsed;
	clock_gettime(CLOCK_MONOTONIC, &start);

	hipError_t error;
	double *d_dm;
	double *d_dc;
	double *d_error_sum_arr;
	point_t *d_data;

  be = rms_error(bm, bc);

	error = hipMalloc(&d_dm, (sizeof(double) * 8));
 	if(error){
   		fprintf(stderr, "hipMalloc on d_dm returned %d %s\n", error, hipGetErrorString(error));
   		exit(1);
 	}
	
	error = hipMalloc(&d_dc, (sizeof(double) * 8));
 	if(error){
   		fprintf(stderr, "hipMalloc on d_dc returned %d %s\n", error, hipGetErrorString(error));
   		exit(1);
 	}
	
	error = hipMalloc(&d_error_sum_arr, (sizeof(double) * 1000));
 	if(error){
   		fprintf(stderr, "hipMalloc on d_error_sum_arr returned %d %s\n", error, hipGetErrorString(error));
   		exit(1);
 	}

	error = hipMalloc(&d_data, sizeof(data));
 	if(error){
   		fprintf(stderr, "hipMalloc on d_data returned %d %s\n", error, hipGetErrorString(error));
   		exit(1);
 	}

  while(!minimum_found) {
    for(i=0;i<8;i++) {
      dm[i] = bm + (om[i] * step);
      dc[i] = bc + (oc[i] * step);    
    }

  	error = hipMemcpy(d_dm, dm, (sizeof(double) * 8), hipMemcpyHostToDevice);  
  	if(error){
    	fprintf(stderr, "hipMemcpy to d_dm returned %d %s\n", error, hipGetErrorString(error));
  	}
	
  	error = hipMemcpy(d_dc, dc, (sizeof(double) * 8), hipMemcpyHostToDevice);  
  	if(error){
    	fprintf(stderr, "hipMemcpy to d_dc returned %d %s\n", error, hipGetErrorString(error));
  	}
	
  	error = hipMemcpy(d_data, data, sizeof(data), hipMemcpyHostToDevice);  
  	if(error){
    	fprintf(stderr, "hipMemcpy to d_data returned %d %s\n", error, hipGetErrorString(error));
  	}
	
    for(i=0;i<8;i++) {
			double h_error_sum_arr[1000];
			double error_sum_total;
			double error_sum_mean;
			d_rms_error <<<100,10>>>(&d_dm[i], &d_dc[i], d_error_sum_arr, d_data);
			hipDeviceSynchronize();
			error = hipMemcpy(&h_error_sum_arr, d_error_sum_arr, (sizeof(double) * 1000), hipMemcpyDeviceToHost);  
			if(error){
				fprintf(stderr, "hipMemcpy to error_sum returned %d %s\n", error, hipGetErrorString(error));
		  }
			for(int j=0; j<n_data; j++) {
    		error_sum_total += h_error_sum_arr[j];
  		}

			error_sum_mean = error_sum_total / n_data;
			e[i] = sqrt(error_sum_mean);

      if(e[i] < best_error) {
        best_error = e[i];
        best_error_i = i;
      }

			error_sum_total = 0;
    }


    if(best_error < be) {
      be = best_error;
      bm = dm[best_error_i];
      bc = dc[best_error_i];
    } else {
      minimum_found = 1;
    }
  }

	error = hipFree(d_dm);
	if(error){
		fprintf(stderr, "hipFree on d_dm returned %d %s\n", error,
	  	hipGetErrorString(error));
		exit(1);
	}
	
	error = hipFree(d_dc);
	if(error){
		fprintf(stderr, "hipFree on d_dc returned %d %s\n", error,
			hipGetErrorString(error));
		exit(1);
	}

	error = hipFree(d_data);
	if(error){
		fprintf(stderr, "hipFree on d_data returned %d %s\n", error,
	  	hipGetErrorString(error));
	 	exit(1);
	}
		
	error = hipFree(d_error_sum_arr);
	if(error){
		fprintf(stderr, "hipFree on d_error_sum_arr returned %d %s\n", error,
	  	hipGetErrorString(error));
	 	exit(1);
	}

	printf("minimum m,c is %lf,%lf with error %lf\n", bm, bc, be);
	clock_gettime(CLOCK_MONOTONIC, &finish);
	time_difference(&start, &finish, &time_elapsed);

  printf("Time elapsed was %lldns or %0.9lfs\n", time_elapsed, (time_elapsed/1.0e9));
	
  return 0;
}

	.text
	.file	"linear.hip"
	.globl	_Z14residual_errordddd          # -- Begin function _Z14residual_errordddd
	.type	_Z14residual_errordddd,@function
_Z14residual_errordddd:                 # @_Z14residual_errordddd
	.cfi_startproc
# %bb.0:
	mulsd	%xmm2, %xmm0
	addsd	%xmm3, %xmm0
	subsd	%xmm1, %xmm0
	mulsd	%xmm0, %xmm0
	retq
.Lfunc_end0:
	.size	_Z14residual_errordddd, .Lfunc_end0-_Z14residual_errordddd
	.cfi_endproc
                                        # -- End function
	.globl	_Z9rms_errordd                  # -- Begin function _Z9rms_errordd
	.type	_Z9rms_errordd,@function
_Z9rms_errordd:                         # @_Z9rms_errordd
	.cfi_startproc
# %bb.0:
	movapd	%xmm0, %xmm2
	movl	n_data(%rip), %eax
	xorpd	%xmm3, %xmm3
	xorpd	%xmm0, %xmm0
	testl	%eax, %eax
	jle	.LBB1_3
# %bb.1:                                # %.lr.ph.preheader
	movq	%rax, %rcx
	shlq	$4, %rcx
	xorl	%edx, %edx
.LBB1_2:                                # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movsd	data(%rdx), %xmm4               # xmm4 = mem[0],zero
	mulsd	%xmm2, %xmm4
	addsd	%xmm1, %xmm4
	subsd	data+8(%rdx), %xmm4
	mulsd	%xmm4, %xmm4
	addsd	%xmm4, %xmm0
	addq	$16, %rdx
	cmpq	%rdx, %rcx
	jne	.LBB1_2
.LBB1_3:                                # %._crit_edge
	xorps	%xmm1, %xmm1
	cvtsi2sd	%eax, %xmm1
	divsd	%xmm1, %xmm0
	ucomisd	%xmm3, %xmm0
	jb	sqrt                            # TAILCALL
# %bb.4:                                # %._crit_edge.split
	sqrtsd	%xmm0, %xmm0
	retq
.Lfunc_end1:
	.size	_Z9rms_errordd, .Lfunc_end1-_Z9rms_errordd
	.cfi_endproc
                                        # -- End function
	.globl	_Z26__device_stub__d_rms_errorPdS_S_P7point_t # -- Begin function _Z26__device_stub__d_rms_errorPdS_S_P7point_t
	.type	_Z26__device_stub__d_rms_errorPdS_S_P7point_t,@function
_Z26__device_stub__d_rms_errorPdS_S_P7point_t: # @_Z26__device_stub__d_rms_errorPdS_S_P7point_t
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	subq	$112, %rsp
	.cfi_def_cfa_offset 160
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	leaq	40(%rsp), %rax
	movq	%rdi, (%rax)
	leaq	32(%rsp), %rdi
	movq	%rsi, (%rdi)
	leaq	24(%rsp), %rsi
	movq	%rdx, (%rsi)
	leaq	16(%rsp), %rdx
	movq	%rcx, (%rdx)
	leaq	80(%rsp), %rbx
	movq	%rax, (%rbx)
	movq	%rdi, 8(%rbx)
	movq	%rsi, 16(%rbx)
	movq	%rdx, 24(%rbx)
	leaq	64(%rsp), %r14
	leaq	48(%rsp), %r15
	leaq	8(%rsp), %r12
	movq	%rsp, %r13
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%r12, %rdx
	movq	%r13, %rcx
	callq	__hipPopCallConfiguration
	movq	(%r14), %rsi
	movl	8(%r14), %edx
	movq	(%r15), %rcx
	movl	8(%r15), %r8d
	movl	$_Z11d_rms_errorPdS_S_P7point_t, %edi
	movq	%rbx, %r9
	pushq	(%r13)
	.cfi_adjust_cfa_offset 8
	pushq	(%r12)
	.cfi_adjust_cfa_offset 8
	callq	hipLaunchKernel
	addq	$128, %rsp
	.cfi_adjust_cfa_offset -128
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end2:
	.size	_Z26__device_stub__d_rms_errorPdS_S_P7point_t, .Lfunc_end2-_Z26__device_stub__d_rms_errorPdS_S_P7point_t
	.cfi_endproc
                                        # -- End function
	.globl	_Z15time_differenceP8timespecS0_Px # -- Begin function _Z15time_differenceP8timespecS0_Px
	.type	_Z15time_differenceP8timespecS0_Px,@function
_Z15time_differenceP8timespecS0_Px:     # @_Z15time_differenceP8timespecS0_Px
	.cfi_startproc
# %bb.0:
	movq	(%rsi), %rax
	subq	(%rdi), %rax
	movq	8(%rsi), %rcx
	subq	8(%rdi), %rcx
	leaq	1000000000(%rcx), %rsi
	movq	%rcx, %rdi
	sarq	$63, %rdi
	addq	%rax, %rdi
	testq	%rcx, %rcx
	cmovnsq	%rcx, %rsi
	imulq	$1000000000, %rdi, %rcx         # imm = 0x3B9ACA00
	xorl	%eax, %eax
	addq	%rsi, %rcx
	movq	%rcx, (%rdx)
	setle	%al
	retq
.Lfunc_end3:
	.size	_Z15time_differenceP8timespecS0_Px, .Lfunc_end3-_Z15time_differenceP8timespecS0_Px
	.cfi_endproc
                                        # -- End function
	.section	.rodata.cst8,"aM",@progbits,8
	.p2align	3, 0x0                          # -- Begin function main
.LCPI4_0:
	.quad	0x3ff4cccccccccccd              # double 1.3
.LCPI4_1:
	.quad	0x4024000000000000              # double 10
.LCPI4_2:
	.quad	0x41cdcd64ff800000              # double 999999999
.LCPI4_3:
	.quad	0x3f847ae147ae147b              # double 0.01
.LCPI4_4:
	.quad	0x41cdcd6500000000              # double 1.0E+9
.LCPI4_5:
	.quad	0x0000000000000000              # double 0
	.text
	.globl	main
	.type	main,@function
main:                                   # @main
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$8344, %rsp                     # imm = 0x2098
	.cfi_def_cfa_offset 8400
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	xorps	%xmm0, %xmm0
	movaps	%xmm0, 144(%rsp)
	movaps	%xmm0, 160(%rsp)
	movaps	%xmm0, 176(%rsp)
	movabsq	$4607182418800017408, %rax      # imm = 0x3FF0000000000000
	movq	%rax, 152(%rsp)
	movq	%rax, 160(%rsp)
	movq	%rax, 168(%rsp)
	movabsq	$-4616189618054758400, %rcx     # imm = 0xBFF0000000000000
	movq	%rcx, 184(%rsp)
	movq	%rcx, 192(%rsp)
	movq	%rcx, 200(%rsp)
	movaps	%xmm0, 96(%rsp)
	movaps	%xmm0, 112(%rsp)
	movaps	%xmm0, 128(%rsp)
	movq	%rax, 80(%rsp)
	movq	%rax, 88(%rsp)
	movq	%rcx, 104(%rsp)
	movq	%rcx, 112(%rsp)
	movq	%rcx, 120(%rsp)
	movq	%rax, 136(%rsp)
	leaq	64(%rsp), %rsi
	movl	$1, %edi
	callq	clock_gettime
	movsd	.LCPI4_0(%rip), %xmm0           # xmm0 = mem[0],zero
	movsd	.LCPI4_1(%rip), %xmm1           # xmm1 = mem[0],zero
	callq	_Z9rms_errordd
	movsd	%xmm0, 8(%rsp)                  # 8-byte Spill
	leaq	40(%rsp), %rdi
	movl	$64, %esi
	callq	hipMalloc
	testl	%eax, %eax
	jne	.LBB4_1
# %bb.3:
	leaq	32(%rsp), %rdi
	movl	$64, %esi
	callq	hipMalloc
	testl	%eax, %eax
	jne	.LBB4_4
# %bb.5:
	leaq	24(%rsp), %rdi
	movl	$8000, %esi                     # imm = 0x1F40
	callq	hipMalloc
	testl	%eax, %eax
	jne	.LBB4_6
# %bb.7:
	leaq	16(%rsp), %rdi
	movl	$16000, %esi                    # imm = 0x3E80
	callq	hipMalloc
	testl	%eax, %eax
	jne	.LBB4_40
# %bb.8:                                # %.preheader.preheader
	movsd	.LCPI4_2(%rip), %xmm0           # xmm0 = mem[0],zero
	movsd	%xmm0, (%rsp)                   # 8-byte Spill
	movabsq	$4294967306, %r14               # imm = 0x10000000A
	movsd	.LCPI4_3(%rip), %xmm3           # xmm3 = mem[0],zero
	leaq	90(%r14), %r12
	leaq	336(%rsp), %r13
                                        # implicit-def: $r15d
	movsd	.LCPI4_0(%rip), %xmm1           # xmm1 = mem[0],zero
	movsd	.LCPI4_1(%rip), %xmm2           # xmm2 = mem[0],zero
.LBB4_9:                                # %.preheader
                                        # =>This Loop Header: Depth=1
                                        #     Child Loop BB4_10 Depth 2
                                        #     Child Loop BB4_18 Depth 2
                                        #       Child Loop BB4_30 Depth 3
	xorl	%eax, %eax
.LBB4_10:                               #   Parent Loop BB4_9 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	movsd	144(%rsp,%rax,8), %xmm0         # xmm0 = mem[0],zero
	mulsd	%xmm3, %xmm0
	addsd	%xmm1, %xmm0
	movsd	%xmm0, 272(%rsp,%rax,8)
	movsd	80(%rsp,%rax,8), %xmm0          # xmm0 = mem[0],zero
	mulsd	%xmm3, %xmm0
	addsd	%xmm2, %xmm0
	movsd	%xmm0, 208(%rsp,%rax,8)
	incq	%rax
	cmpq	$8, %rax
	jne	.LBB4_10
# %bb.11:                               #   in Loop: Header=BB4_9 Depth=1
	movsd	%xmm2, 48(%rsp)                 # 8-byte Spill
	movsd	%xmm1, 56(%rsp)                 # 8-byte Spill
	movq	40(%rsp), %rdi
	movl	$64, %edx
	leaq	272(%rsp), %rsi
	movl	$1, %ecx
	callq	hipMemcpy
	testl	%eax, %eax
	jne	.LBB4_12
.LBB4_13:                               #   in Loop: Header=BB4_9 Depth=1
	movq	32(%rsp), %rdi
	movl	$64, %edx
	leaq	208(%rsp), %rsi
	movl	$1, %ecx
	callq	hipMemcpy
	testl	%eax, %eax
	jne	.LBB4_14
.LBB4_15:                               #   in Loop: Header=BB4_9 Depth=1
	movq	16(%rsp), %rdi
	movl	$data, %esi
	movl	$16000, %edx                    # imm = 0x3E80
	movl	$1, %ecx
	callq	hipMemcpy
	testl	%eax, %eax
	jne	.LBB4_16
.LBB4_17:                               # %.preheader149
                                        #   in Loop: Header=BB4_9 Depth=1
	xorl	%ebx, %ebx
.LBB4_18:                               #   Parent Loop BB4_9 Depth=1
                                        # =>  This Loop Header: Depth=2
                                        #       Child Loop BB4_30 Depth 3
	movq	%r12, %rdi
	movl	$1, %esi
	movq	%r14, %rdx
	movl	$1, %ecx
	xorl	%r8d, %r8d
	xorl	%r9d, %r9d
	callq	__hipPushCallConfiguration
	testl	%eax, %eax
	jne	.LBB4_20
# %bb.19:                               #   in Loop: Header=BB4_18 Depth=2
	leaq	(,%rbx,8), %rsi
	movq	40(%rsp), %rdi
	addq	%rsi, %rdi
	addq	32(%rsp), %rsi
	movq	24(%rsp), %rdx
	movq	16(%rsp), %rcx
	callq	_Z26__device_stub__d_rms_errorPdS_S_P7point_t
.LBB4_20:                               #   in Loop: Header=BB4_18 Depth=2
	callq	hipDeviceSynchronize
	movq	24(%rsp), %rsi
	movl	$8000, %edx                     # imm = 0x1F40
	movq	%r13, %rdi
	movl	$2, %ecx
	callq	hipMemcpy
	testl	%eax, %eax
	jne	.LBB4_21
.LBB4_22:                               #   in Loop: Header=BB4_18 Depth=2
	movl	n_data(%rip), %eax
	xorpd	%xmm0, %xmm0
	testl	%eax, %eax
	jle	.LBB4_23
# %bb.29:                               # %.lr.ph.preheader
                                        #   in Loop: Header=BB4_18 Depth=2
	xorl	%ecx, %ecx
.LBB4_30:                               # %.lr.ph
                                        #   Parent Loop BB4_9 Depth=1
                                        #     Parent Loop BB4_18 Depth=2
                                        # =>    This Inner Loop Header: Depth=3
	addsd	336(%rsp,%rcx,8), %xmm0
	incq	%rcx
	cmpq	%rcx, %rax
	jne	.LBB4_30
.LBB4_23:                               # %._crit_edge
                                        #   in Loop: Header=BB4_18 Depth=2
	xorps	%xmm1, %xmm1
	cvtsi2sd	%eax, %xmm1
	divsd	%xmm1, %xmm0
	ucomisd	.LCPI4_5(%rip), %xmm0
	jb	.LBB4_25
# %bb.24:                               #   in Loop: Header=BB4_18 Depth=2
	sqrtsd	%xmm0, %xmm0
	jmp	.LBB4_26
.LBB4_25:                               # %call.sqrt
                                        #   in Loop: Header=BB4_18 Depth=2
	callq	sqrt
.LBB4_26:                               # %._crit_edge.split
                                        #   in Loop: Header=BB4_18 Depth=2
	movsd	(%rsp), %xmm1                   # 8-byte Reload
                                        # xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	cmoval	%ebx, %r15d
	minsd	%xmm1, %xmm0
	incq	%rbx
	movsd	%xmm0, (%rsp)                   # 8-byte Spill
	cmpq	$8, %rbx
	jne	.LBB4_18
	jmp	.LBB4_27
.LBB4_21:                               #   in Loop: Header=BB4_18 Depth=2
	movl	%eax, %ebp
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.7, %esi
	movq	%r14, %rdi
	movabsq	$4294967306, %r14               # imm = 0x10000000A
	movl	%ebp, %edx
	movq	%rax, %rcx
	xorl	%eax, %eax
	callq	fprintf
	jmp	.LBB4_22
.LBB4_27:                               #   in Loop: Header=BB4_9 Depth=1
	movsd	8(%rsp), %xmm1                  # 8-byte Reload
                                        # xmm1 = mem[0],zero
	ucomisd	%xmm0, %xmm1
	movsd	.LCPI4_3(%rip), %xmm3           # xmm3 = mem[0],zero
	jbe	.LBB4_31
# %bb.28:                               #   in Loop: Header=BB4_9 Depth=1
	movslq	%r15d, %rax
	movsd	272(%rsp,%rax,8), %xmm1         # xmm1 = mem[0],zero
	movsd	208(%rsp,%rax,8), %xmm2         # xmm2 = mem[0],zero
	movsd	%xmm0, 8(%rsp)                  # 8-byte Spill
	movsd	%xmm0, (%rsp)                   # 8-byte Spill
	jmp	.LBB4_9
.LBB4_12:                               #   in Loop: Header=BB4_9 Depth=1
	movl	%eax, %ebp
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.4, %esi
	movq	%r14, %rdi
	movabsq	$4294967306, %r14               # imm = 0x10000000A
	movl	%ebp, %edx
	movq	%rax, %rcx
	xorl	%eax, %eax
	callq	fprintf
	jmp	.LBB4_13
.LBB4_14:                               #   in Loop: Header=BB4_9 Depth=1
	movl	%eax, %ebp
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.5, %esi
	movq	%r14, %rdi
	movabsq	$4294967306, %r14               # imm = 0x10000000A
	movl	%ebp, %edx
	movq	%rax, %rcx
	xorl	%eax, %eax
	callq	fprintf
	jmp	.LBB4_15
.LBB4_16:                               #   in Loop: Header=BB4_9 Depth=1
	movl	%eax, %ebp
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.6, %esi
	movq	%r14, %rdi
	movabsq	$4294967306, %r14               # imm = 0x10000000A
	movl	%ebp, %edx
	movq	%rax, %rcx
	xorl	%eax, %eax
	callq	fprintf
	jmp	.LBB4_17
.LBB4_31:
	movq	40(%rsp), %rdi
	callq	hipFree
	testl	%eax, %eax
	jne	.LBB4_32
# %bb.33:
	movq	32(%rsp), %rdi
	callq	hipFree
	testl	%eax, %eax
	jne	.LBB4_34
# %bb.35:
	movq	16(%rsp), %rdi
	callq	hipFree
	testl	%eax, %eax
	jne	.LBB4_36
# %bb.37:
	movq	24(%rsp), %rdi
	callq	hipFree
	testl	%eax, %eax
	jne	.LBB4_38
# %bb.39:
	movl	$.L.str.12, %edi
	movsd	56(%rsp), %xmm0                 # 8-byte Reload
                                        # xmm0 = mem[0],zero
	movsd	48(%rsp), %xmm1                 # 8-byte Reload
                                        # xmm1 = mem[0],zero
	movsd	8(%rsp), %xmm2                  # 8-byte Reload
                                        # xmm2 = mem[0],zero
	movb	$3, %al
	callq	printf
	leaq	336(%rsp), %rbx
	movl	$1, %edi
	movq	%rbx, %rsi
	callq	clock_gettime
	movq	(%rbx), %rax
	subq	64(%rsp), %rax
	movq	8(%rbx), %rcx
	subq	72(%rsp), %rcx
	leaq	1000000000(%rcx), %rdx
	movq	%rcx, %rsi
	sarq	$63, %rsi
	addq	%rax, %rsi
	testq	%rcx, %rcx
	cmovnsq	%rcx, %rdx
	imulq	$1000000000, %rsi, %rsi         # imm = 0x3B9ACA00
	addq	%rdx, %rsi
	xorps	%xmm0, %xmm0
	cvtsi2sd	%rsi, %xmm0
	divsd	.LCPI4_4(%rip), %xmm0
	movl	$.L.str.13, %edi
	movb	$1, %al
	callq	printf
	xorl	%eax, %eax
	addq	$8344, %rsp                     # imm = 0x2098
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB4_1:
	.cfi_def_cfa_offset 8400
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str, %esi
	jmp	.LBB4_2
.LBB4_4:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.1, %esi
	jmp	.LBB4_2
.LBB4_6:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.2, %esi
	jmp	.LBB4_2
.LBB4_40:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.3, %esi
	jmp	.LBB4_2
.LBB4_32:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.8, %esi
	jmp	.LBB4_2
.LBB4_34:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.9, %esi
	jmp	.LBB4_2
.LBB4_36:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.10, %esi
	jmp	.LBB4_2
.LBB4_38:
	movl	%eax, %ebx
	movq	stderr(%rip), %r14
	movl	%eax, %edi
	callq	hipGetErrorString
	movl	$.L.str.11, %esi
.LBB4_2:
	movq	%r14, %rdi
	movl	%ebx, %edx
	movq	%rax, %rcx
	xorl	%eax, %eax
	callq	fprintf
	movl	$1, %edi
	callq	exit
.Lfunc_end4:
	.size	main, .Lfunc_end4-main
	.cfi_endproc
                                        # -- End function
	.p2align	4, 0x90                         # -- Begin function __hip_module_ctor
	.type	__hip_module_ctor,@function
__hip_module_ctor:                      # @__hip_module_ctor
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	subq	$32, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -16
	movq	__hip_gpubin_handle(%rip), %rbx
	testq	%rbx, %rbx
	jne	.LBB5_2
# %bb.1:
	movl	$__hip_fatbin_wrapper, %edi
	callq	__hipRegisterFatBinary
	movq	%rax, %rbx
	movq	%rax, __hip_gpubin_handle(%rip)
.LBB5_2:
	xorps	%xmm0, %xmm0
	movups	%xmm0, 16(%rsp)
	movups	%xmm0, (%rsp)
	movl	$_Z11d_rms_errorPdS_S_P7point_t, %esi
	movl	$.L__unnamed_1, %edx
	movl	$.L__unnamed_1, %ecx
	movq	%rbx, %rdi
	movl	$-1, %r8d
	xorl	%r9d, %r9d
	callq	__hipRegisterFunction
	movl	$0, 8(%rsp)
	movl	$0, (%rsp)
	movl	$d_n_data, %esi
	movl	$.L__unnamed_2, %edx
	movl	$.L__unnamed_2, %ecx
	movl	$4, %r9d
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	callq	__hipRegisterVar
	movl	$__hip_module_dtor, %edi
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit                          # TAILCALL
.Lfunc_end5:
	.size	__hip_module_ctor, .Lfunc_end5-__hip_module_ctor
	.cfi_endproc
                                        # -- End function
	.p2align	4, 0x90                         # -- Begin function __hip_module_dtor
	.type	__hip_module_dtor,@function
__hip_module_dtor:                      # @__hip_module_dtor
	.cfi_startproc
# %bb.0:
	movq	__hip_gpubin_handle(%rip), %rdi
	testq	%rdi, %rdi
	je	.LBB6_2
# %bb.1:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__hipUnregisterFatBinary
	movq	$0, __hip_gpubin_handle(%rip)
	addq	$8, %rsp
	.cfi_def_cfa_offset 8
.LBB6_2:
	retq
.Lfunc_end6:
	.size	__hip_module_dtor, .Lfunc_end6-__hip_module_dtor
	.cfi_endproc
                                        # -- End function
	.type	n_data,@object                  # @n_data
	.data
	.globl	n_data
	.p2align	2, 0x0
n_data:
	.long	1000                            # 0x3e8
	.size	n_data, 4

	.type	d_n_data,@object                # @d_n_data
	.local	d_n_data
	.comm	d_n_data,4,4
	.type	data,@object                    # @data
	.globl	data
	.p2align	4, 0x0
data:
	.quad	0x40536147ae147ae1              # double 77.519999999999996
	.quad	0x405bca3d70a3d70a              # double 111.16
	.quad	0x4053ce147ae147ae              # double 79.219999999999999
	.quad	0x405c19999999999a              # double 112.40000000000001
	.quad	0x405209999999999a              # double 72.150000000000006
	.quad	0x405d9c28f5c28f5c              # double 118.44
	.quad	0x4050566666666666              # double 65.349999999999994
	.quad	0x405ac851eb851eb8              # double 107.13
	.quad	0x40534ae147ae147b              # double 77.170000000000001
	.quad	0x405e870a3d70a3d7              # double 122.11
	.quad	0x40515147ae147ae1              # double 69.269999999999996
	.quad	0x405e633333333333              # double 121.55
	.quad	0x40511a3d70a3d70a              # double 68.409999999999997
	.quad	0x405998f5c28f5c29              # double 102.39
	.quad	0x4053428f5c28f5c3              # double 77.040000000000006
	.quad	0x4061d3851eb851ec              # double 142.61000000000001
	.quad	0x405051eb851eb852              # double 65.280000000000001
	.quad	0x405b5b851eb851ec              # double 109.43000000000001
	.quad	0x405057ae147ae148              # double 65.370000000000005
	.quad	0x405b0851eb851eb8              # double 108.13
	.quad	0x4054851eb851eb85              # double 82.079999999999998
	.quad	0x4062023d70a3d70a              # double 144.06999999999999
	.quad	0x4053da3d70a3d70a              # double 79.409999999999997
	.quad	0x405fbeb851eb851f              # double 126.98
	.quad	0x4055547ae147ae14              # double 85.319999999999993
	.quad	0x405e170a3d70a3d7              # double 120.36
	.quad	0x405188f5c28f5c29              # double 70.140000000000001
	.quad	0x405b99999999999a              # double 110.40000000000001
	.quad	0x4052533333333333              # double 73.299999999999997
	.quad	0x405fc47ae147ae14              # double 127.06999999999999
	.quad	0x4017e147ae147ae1              # double 5.9699999999999998
	.quad	0x403ca147ae147ae1              # double 28.629999999999999
	.quad	0x40541f5c28f5c28f              # double 80.489999999999994
	.quad	0x405ed0a3d70a3d71              # double 123.26000000000001
	.quad	0x404908f5c28f5c29              # double 50.07
	.quad	0x405093d70a3d70a4              # double 66.310000000000002
	.quad	0x404c028f5c28f5c3              # double 56.020000000000003
	.quad	0x405aeeb851eb851f              # double 107.73
	.quad	0x4006a3d70a3d70a4              # double 2.8300000000000001
	.quad	0x40438a3d70a3d70a              # double 39.079999999999998
	.quad	0x4051228f5c28f5c3              # double 68.540000000000006
	.quad	0x405efe147ae147ae              # double 123.97
	.quad	0x4055266666666666              # double 84.599999999999994
	.quad	0x4061a0a3d70a3d71              # double 141.02000000000001
	.quad	0x4034dc28f5c28f5c              # double 20.859999999999999
	.quad	0x404328f5c28f5c29              # double 38.32
	.quad	0x404830a3d70a3d71              # double 48.380000000000003
	.quad	0x4050d66666666666              # double 67.349999999999994
	.quad	0x404c48f5c28f5c29              # double 56.57
	.quad	0x4057866666666666              # double 94.099999999999994
	.quad	0x40583c28f5c28f5c              # double 96.939999999999998
	.quad	0x4062ca3d70a3d70a              # double 150.31999999999999
	.quad	0x405173d70a3d70a4              # double 69.810000000000002
	.quad	0x405c500000000000              # double 113.25
	.quad	0x405138f5c28f5c29              # double 68.890000000000001
	.quad	0x405cd33333333333              # double 115.3
	.quad	0x40476147ae147ae1              # double 46.759999999999998
	.quad	0x404e23d70a3d70a4              # double 60.280000000000001
	.quad	0x4041dae147ae147b              # double 35.710000000000001
	.quad	0x404ffae147ae147b              # double 63.960000000000001
	.quad	0x404fd9999999999a              # double 63.700000000000003
	.quad	0x405c770a3d70a3d7              # double 113.86
	.quad	0x403275c28f5c28f6              # double 18.460000000000001
	.quad	0x404a3eb851eb851f              # double 52.490000000000002
	.quad	0x40483d70a3d70a3d              # double 48.479999999999997
	.quad	0x4054e51eb851eb85              # double 83.579999999999998
	.quad	0x4050db851eb851ec              # double 67.430000000000007
	.quad	0x405a1eb851eb851f              # double 104.48
	.quad	0x405455c28f5c28f6              # double 81.340000000000003
	.quad	0x406243851eb851ec              # double 146.11000000000001
	.quad	0x400e8f5c28f5c28f              # double 3.8199999999999998
	.quad	0x403f947ae147ae14              # double 31.579999999999998
	.quad	0x4029b33333333333              # double 12.85
	.quad	0x404291eb851eb852              # double 37.140000000000001
	.quad	0x403bc51eb851eb85              # double 27.77
	.quad	0x404a83d70a3d70a4              # double 53.030000000000001
	.quad	0x4057970a3d70a3d7              # double 94.359999999999999
	.quad	0x4062a33333333333              # double 149.09999999999999
	.quad	0x404510a3d70a3d71              # double 42.130000000000003
	.quad	0x4051570a3d70a3d7              # double 69.359999999999999
	.quad	0x4053966666666666              # double 78.349999999999994
	.quad	0x4060c051eb851eb8              # double 134.00999999999999
	.quad	0x4053c851eb851eb8              # double 79.129999999999995
	.quad	0x405f8f5c28f5c28f              # double 126.23999999999999
	.quad	0x402ca8f5c28f5c29              # double 14.33
	.quad	0x40490147ae147ae1              # double 50.009999999999998
	.quad	0x401d000000000000              # double 7.25
	.quad	0x404343d70a3d70a4              # double 38.530000000000001
	.quad	0x4057033333333333              # double 92.049999999999997
	.quad	0x40625fae147ae148              # double 146.99000000000001
	.quad	0x4054d70a3d70a3d7              # double 83.359999999999999
	.quad	0x406000a3d70a3d71              # double 128.02000000000001
	.quad	0x4049170a3d70a3d7              # double 50.18
	.quad	0x405815c28f5c28f6              # double 96.340000000000003
	.quad	0x4038ae147ae147ae              # double 24.68
	.quad	0x4048f33333333333              # double 49.899999999999999
	.quad	0x40554a3d70a3d70a              # double 85.159999999999997
	.quad	0x405e951eb851eb85              # double 122.33
	.quad	0x40566ccccccccccd              # double 89.700000000000002
	.quad	0x406300f5c28f5c29              # double 152.03
	.quad	0x4055b0a3d70a3d71              # double 86.760000000000005
	.quad	0x40618d1eb851eb85              # double 140.41
	.quad	0x404803d70a3d70a4              # double 48.030000000000001
	.quad	0x40552ae147ae147b              # double 84.670000000000001
	.quad	0x4052e47ae147ae14              # double 75.569999999999993
	.quad	0x405d0e147ae147ae              # double 116.22
	.quad	0x3ff7851eb851eb85              # double 1.47
	.quad	0x403275c28f5c28f6              # double 18.460000000000001
	.quad	0x4054070a3d70a3d7              # double 80.109999999999999
	.quad	0x406022e147ae147b              # double 129.09
	.quad	0x403ab33333333333              # double 26.699999999999999
	.quad	0x404e30a3d70a3d71              # double 60.380000000000003
	.quad	0x4056500000000000              # double 89.25
	.quad	0x4062500000000000              # double 146.5
	.quad	0x4054e851eb851eb8              # double 83.629999999999995
	.quad	0x4061f23d70a3d70a              # double 143.56999999999999
	.quad	0x4055228f5c28f5c3              # double 84.540000000000006
	.quad	0x4062200000000000              # double 145
	.quad	0x4054e66666666666              # double 83.599999999999994
	.quad	0x405f8147ae147ae1              # double 126.02
	.quad	0x4041347ae147ae14              # double 34.409999999999997
	.quad	0x4051fe147ae147ae              # double 71.969999999999999
	.quad	0x4048fc28f5c28f5c              # double 49.969999999999999
	.quad	0x4055bd70a3d70a3d              # double 86.959999999999993
	.quad	0x4046bc28f5c28f5c              # double 45.469999999999999
	.quad	0x405083d70a3d70a4              # double 66.060000000000002
	.quad	0x40250a3d70a3d70a              # double 10.52
	.quad	0x403bfae147ae147b              # double 27.98
	.quad	0x4053ceb851eb851f              # double 79.230000000000003
	.quad	0x4061f28f5c28f5c3              # double 143.58000000000001
	.quad	0x402b70a3d70a3d71              # double 13.720000000000001
	.quad	0x404487ae147ae148              # double 41.060000000000002
	.quad	0x402d0a3d70a3d70a              # double 14.52
	.quad	0x4047970a3d70a3d7              # double 47.18
	.quad	0x40438f5c28f5c28f              # double 39.119999999999997
	.quad	0x4054ed70a3d70a3d              # double 83.709999999999993
	.quad	0x4038147ae147ae14              # double 24.079999999999998
	.quad	0x4045170a3d70a3d7              # double 42.18
	.quad	0x404f0f5c28f5c28f              # double 62.119999999999997
	.quad	0x4059c28f5c28f5c3              # double 103.04000000000001
	.quad	0x4039ae147ae147ae              # double 25.68
	.quad	0x4049f47ae147ae14              # double 51.909999999999997
	.quad	0x4038f33333333333              # double 24.949999999999999
	.quad	0x404da51eb851eb85              # double 59.289999999999999
	.quad	0x403d733333333333              # double 29.449999999999999
	.quad	0x40546b851eb851ec              # double 81.680000000000007
	.quad	0x40558ae147ae147b              # double 86.170000000000001
	.quad	0x4061a570a3d70a3d              # double 141.16999999999999
	.quad	0x4012d70a3d70a3d7              # double 4.71
	.quad	0x4044e7ae147ae148              # double 41.810000000000002
	.quad	0x4058e47ae147ae14              # double 99.569999999999993
	.quad	0x4061f0f5c28f5c29              # double 143.53
	.quad	0x405485c28f5c28f6              # double 82.090000000000003
	.quad	0x405ec7ae147ae148              # double 123.12
	.quad	0x4054270a3d70a3d7              # double 80.609999999999999
	.quad	0x4060f2e147ae147b              # double 135.59
	.quad	0x40517851eb851eb8              # double 69.879999999999995
	.quad	0x405ee8f5c28f5c29              # double 123.64
	.quad	0x4041d70a3d70a3d7              # double 35.68
	.quad	0x404d55c28f5c28f6              # double 58.670000000000002
	.quad	0x404c23d70a3d70a4              # double 56.280000000000001
	.quad	0x4057b3d70a3d70a4              # double 94.810000000000002
	.quad	0x4054270a3d70a3d7              # double 80.609999999999999
	.quad	0x405d8ccccccccccd              # double 118.2
	.quad	0x404bb9999999999a              # double 55.450000000000003
	.quad	0x4057ec28f5c28f5c              # double 95.689999999999998
	.quad	0x3feccccccccccccd              # double 0.90000000000000002
	.quad	0x404008f5c28f5c29              # double 32.07
	.quad	0x4033733333333333              # double 19.449999999999999
	.quad	0x4044028f5c28f5c3              # double 40.020000000000003
	.quad	0x4046b851eb851eb8              # double 45.439999999999998
	.quad	0x4055dae147ae147b              # double 87.420000000000001
	.quad	0x404b0ccccccccccd              # double 54.100000000000001
	.quad	0x40563f5c28f5c28f              # double 88.989999999999994
	.quad	0x401f28f5c28f5c29              # double 7.79
	.quad	0x404710a3d70a3d71              # double 46.130000000000003
	.quad	0x4051b1eb851eb852              # double 70.780000000000001
	.quad	0x4061128f5c28f5c3              # double 136.58000000000001
	.quad	0x402c000000000000              # double 14
	.quad	0x4043c66666666666              # double 39.549999999999997
	.quad	0x40535c28f5c28f5c              # double 77.439999999999998
	.quad	0x405d600000000000              # double 117.5
	.quad	0x4044e00000000000              # double 41.75
	.quad	0x40557e147ae147ae              # double 85.969999999999999
	.quad	0x404490a3d70a3d71              # double 41.130000000000003
	.quad	0x405440a3d70a3d71              # double 81.010000000000005
	.quad	0x4034851eb851eb85              # double 20.52
	.quad	0x4043ea3d70a3d70a              # double 39.829999999999998
	.quad	0x4047ea3d70a3d70a              # double 47.829999999999998
	.quad	0x4056fe147ae147ae              # double 91.969999999999998
	.quad	0x403a68f5c28f5c29              # double 26.41
	.quad	0x404a028f5c28f5c3              # double 52.020000000000003
	.quad	0x40400b851eb851ec              # double 32.090000000000003
	.quad	0x4051e147ae147ae1              # double 71.519999999999996
	.quad	0x403f87ae147ae148              # double 31.530000000000001
	.quad	0x4051833333333333              # double 70.049999999999997
	.quad	0x403dc00000000000              # double 29.75
	.quad	0x404e63d70a3d70a4              # double 60.780000000000001
	.quad	0x404d0147ae147ae1              # double 58.009999999999998
	.quad	0x405d3b851eb851ec              # double 116.93000000000001
	.quad	0x402c9eb851eb851f              # double 14.31
	.quad	0x403bdeb851eb851f              # double 27.870000000000001
	.quad	0x403be66666666666              # double 27.899999999999999
	.quad	0x4051b147ae147ae1              # double 70.769999999999996
	.quad	0x4058a47ae147ae14              # double 98.569999999999993
	.quad	0x40639f5c28f5c28f              # double 156.97999999999999
	.quad	0x4043266666666666              # double 38.299999999999997
	.quad	0x4052c5c28f5c28f6              # double 75.090000000000003
	.quad	0x40477eb851eb851f              # double 46.990000000000002
	.quad	0x405559999999999a              # double 85.400000000000006
	.quad	0x40265c28f5c28f5c              # double 11.18
	.quad	0x404783d70a3d70a4              # double 47.030000000000001
	.quad	0x4043aa3d70a3d70a              # double 39.329999999999998
	.quad	0x40532ae147ae147b              # double 76.670000000000001
	.quad	0x4027a8f5c28f5c29              # double 11.83
	.quad	0x40447d70a3d70a3d              # double 40.979999999999997
	.quad	0x40557e147ae147ae              # double 85.969999999999999
	.quad	0x4061dc28f5c28f5c              # double 142.88
	.quad	0x404230a3d70a3d71              # double 36.380000000000003
	.quad	0x40514e147ae147ae              # double 69.219999999999999
	.quad	0x4054a0a3d70a3d71              # double 82.510000000000005
	.quad	0x405fd00000000000              # double 127.25
	.quad	0x4046dc28f5c28f5c              # double 45.719999999999999
	.quad	0x405405c28f5c28f6              # double 80.090000000000003
	.quad	0x404e1c28f5c28f5c              # double 60.219999999999999
	.quad	0x405ca9999999999a              # double 114.65000000000001
	.quad	0x404f7ae147ae147b              # double 62.960000000000001
	.quad	0x405980a3d70a3d71              # double 102.01000000000001
	.quad	0x405571eb851eb852              # double 85.780000000000001
	.quad	0x4060833333333333              # double 132.09999999999999
	.quad	0x404dfeb851eb851f              # double 59.990000000000002
	.quad	0x4058aeb851eb851f              # double 98.730000000000003
	.quad	0x4053deb851eb851f              # double 79.480000000000003
	.quad	0x405d97ae147ae148              # double 118.37
	.quad	0x4016d70a3d70a3d7              # double 5.71
	.quad	0x402f5c28f5c28f5c              # double 15.68
	.quad	0x4053128f5c28f5c3              # double 76.290000000000006
	.quad	0x40602ccccccccccd              # double 129.40000000000001
	.quad	0x404a68f5c28f5c29              # double 52.82
	.quad	0x40574ccccccccccd              # double 93.200000000000002
	.quad	0x403b07ae147ae148              # double 27.030000000000001
	.quad	0x4050dd70a3d70a3d              # double 67.459999999999994
	.quad	0x40532d70a3d70a3d              # double 76.709999999999993
	.quad	0x405e228f5c28f5c3              # double 120.54000000000001
	.quad	0x404a5eb851eb851f              # double 52.740000000000002
	.quad	0x4058ea3d70a3d70a              # double 99.659999999999996
	.quad	0x405795c28f5c28f6              # double 94.340000000000003
	.quad	0x406279eb851eb852              # double 147.81
	.quad	0x403abae147ae147b              # double 26.73
	.quad	0x40452e147ae147ae              # double 42.359999999999999
	.quad	0x40451c28f5c28f5c              # double 42.219999999999999
	.quad	0x4056ca3d70a3d70a              # double 91.159999999999997
	.quad	0x40306147ae147ae1              # double 16.379999999999999
	.quad	0x4039a3d70a3d70a4              # double 25.640000000000001
	.quad	0x404468f5c28f5c29              # double 40.82
	.quad	0x4055a51eb851eb85              # double 86.579999999999998
	.quad	0x4045b70a3d70a3d7              # double 43.43
	.quad	0x405991eb851eb852              # double 102.28
	.quad	0x404c251eb851eb85              # double 56.289999999999999
	.quad	0x405b4c28f5c28f5c              # double 109.19
	.quad	0x4055c00000000000              # double 87
	.quad	0x405f6ccccccccccd              # double 125.7
	.quad	0x402419999999999a              # double 10.050000000000001
	.quad	0x4047b70a3d70a3d7              # double 47.43
	.quad	0x4055b47ae147ae14              # double 86.819999999999993
	.quad	0x40613bd70a3d70a4              # double 137.87
	.quad	0x403928f5c28f5c29              # double 25.16
	.quad	0x404bb33333333333              # double 55.399999999999999
	.quad	0x404103d70a3d70a4              # double 34.030000000000001
	.quad	0x404e75c28f5c28f6              # double 60.920000000000002
	.quad	0x4050900000000000              # double 66.25
	.quad	0x40605428f5c28f5c              # double 130.63
	.quad	0x4056dc28f5c28f5c              # double 91.439999999999998
	.quad	0x40612eb851eb851f              # double 137.46000000000001
	.quad	0x405138f5c28f5c29              # double 68.890000000000001
	.quad	0x405ef00000000000              # double 123.75
	.quad	0x4057b851eb851eb8              # double 94.879999999999995
	.quad	0x4062251eb851eb85              # double 145.16
	.quad	0x4055e70a3d70a3d7              # double 87.609999999999999
	.quad	0x40629a3d70a3d70a              # double 148.81999999999999
	.quad	0x40536ccccccccccd              # double 77.700000000000002
	.quad	0x406280a3d70a3d71              # double 148.02000000000001
	.quad	0x400c000000000000              # double 3.5
	.quad	0x403be147ae147ae1              # double 27.879999999999999
	.quad	0x40329eb851eb851f              # double 18.620000000000001
	.quad	0x404bb47ae147ae14              # double 55.409999999999997
	.quad	0x4057433333333333              # double 93.049999999999997
	.quad	0x4061ddc28f5c28f6              # double 142.93000000000001
	.quad	0x4057e0a3d70a3d71              # double 95.510000000000005
	.quad	0x406384cccccccccd              # double 156.15000000000001
	.quad	0x404b27ae147ae148              # double 54.310000000000002
	.quad	0x4053f8f5c28f5c29              # double 79.89
	.quad	0x404103d70a3d70a4              # double 34.030000000000001
	.quad	0x404f770a3d70a3d7              # double 62.93
	.quad	0x405501eb851eb852              # double 84.030000000000001
	.quad	0x405fe47ae147ae14              # double 127.56999999999999
	.quad	0x4057300000000000              # double 92.75
	.quad	0x40628f5c28f5c28f              # double 148.47999999999999
	.quad	0x4043051eb851eb85              # double 38.039999999999999
	.quad	0x4056c66666666666              # double 91.099999999999994
	.quad	0x4044b9999999999a              # double 41.450000000000003
	.quad	0x405711eb851eb852              # double 92.280000000000001
	.quad	0x4058b51eb851eb85              # double 98.829999999999998
	.quad	0x40636bd70a3d70a4              # double 155.37
	.quad	0x40508b851eb851ec              # double 66.180000000000007
	.quad	0x405a5ae147ae147b              # double 105.42
	.quad	0x4022cccccccccccd              # double 9.4000000000000003
	.quad	0x4039fae147ae147b              # double 25.98
	.quad	0x404a570a3d70a3d7              # double 52.68
	.quad	0x4056f1eb851eb852              # double 91.780000000000001
	.quad	0x4024666666666666              # double 10.199999999999999
	.quad	0x40405ae147ae147b              # double 32.710000000000001
	.quad	0x403ff5c28f5c28f6              # double 31.960000000000001
	.quad	0x4050eb851eb851ec              # double 67.680000000000007
	.quad	0x404db47ae147ae14              # double 59.409999999999997
	.quad	0x405b800000000000              # double 110
	.quad	0x40258f5c28f5c28f              # double 10.779999999999999
	.quad	0x40418147ae147ae1              # double 35.009999999999998
	.quad	0x4044bae147ae147b              # double 41.460000000000001
	.quad	0x4053d1eb851eb852              # double 79.280000000000001
	.quad	0x40452ccccccccccd              # double 42.350000000000001
	.quad	0x405135c28f5c28f6              # double 68.840000000000003
	.quad	0x40454147ae147ae1              # double 42.509999999999998
	.quad	0x40534c28f5c28f5c              # double 77.189999999999998
	.quad	0x4045e8f5c28f5c29              # double 43.82
	.quad	0x405608f5c28f5c29              # double 88.14
	.quad	0x4054a5c28f5c28f6              # double 82.590000000000003
	.quad	0x4060e8f5c28f5c29              # double 135.28
	.quad	0x4032170a3d70a3d7              # double 18.09
	.quad	0x40404147ae147ae1              # double 32.509999999999998
	.quad	0x405515c28f5c28f6              # double 84.340000000000003
	.quad	0x40602c28f5c28f5c              # double 129.38
	.quad	0x404dcb851eb851ec              # double 59.590000000000003
	.quad	0x4056f00000000000              # double 91.75
	.quad	0x4046c28f5c28f5c3              # double 45.520000000000003
	.quad	0x4053600000000000              # double 77.5
	.quad	0x4045866666666666              # double 43.049999999999997
	.quad	0x4053e9999999999a              # double 79.650000000000006
	.quad	0x40370a3d70a3d70a              # double 23.039999999999999
	.quad	0x404a0e147ae147ae              # double 52.109999999999999
	.quad	0x40500c28f5c28f5c              # double 64.189999999999998
	.quad	0x405a933333333333              # double 106.3
	.quad	0x4058be147ae147ae              # double 98.969999999999998
	.quad	0x4065dccccccccccd              # double 174.90000000000001
	.quad	0x4051d70a3d70a3d7              # double 71.359999999999999
	.quad	0x405e7d70a3d70a3d              # double 121.95999999999999
	.quad	0x4022428f5c28f5c3              # double 9.1300000000000008
	.quad	0x40452a3d70a3d70a              # double 42.329999999999998
	.quad	0x4056200000000000              # double 88.5
	.quad	0x4061fc28f5c28f5c              # double 143.88
	.quad	0x3ffab851eb851eb8              # double 1.6699999999999999
	.quad	0x4038a8f5c28f5c29              # double 24.66
	.quad	0x4044770a3d70a3d7              # double 40.93
	.quad	0x40570c28f5c28f5c              # double 92.189999999999998
	.quad	0x404db33333333333              # double 59.399999999999999
	.quad	0x4056e33333333333              # double 91.549999999999997
	.quad	0x40513eb851eb851f              # double 68.980000000000004
	.quad	0x405dc0a3d70a3d71              # double 119.01000000000001
	.quad	0x402a8a3d70a3d70a              # double 13.27
	.quad	0x4045e66666666666              # double 43.799999999999997
	.quad	0x4036147ae147ae14              # double 22.079999999999998
	.quad	0x404215c28f5c28f6              # double 36.170000000000002
	.quad	0x401cc28f5c28f5c3              # double 7.1900000000000004
	.quad	0x4044ce147ae147ae              # double 41.609999999999999
	.quad	0x402c7ae147ae147b              # double 14.24
	.quad	0x4045e66666666666              # double 43.799999999999997
	.quad	0x4051a33333333333              # double 70.549999999999997
	.quad	0x405ef3d70a3d70a4              # double 123.81
	.quad	0x40233d70a3d70a3d              # double 9.6199999999999992
	.quad	0x4041c147ae147ae1              # double 35.509999999999998
	.quad	0x402b23d70a3d70a4              # double 13.57
	.quad	0x403b07ae147ae148              # double 27.030000000000001
	.quad	0x4039400000000000              # double 25.25
	.quad	0x404ed851eb851eb8              # double 61.689999999999998
	.quad	0x40348f5c28f5c28f              # double 20.559999999999999
	.quad	0x40407ae147ae147b              # double 32.960000000000001
	.quad	0x405765c28f5c28f6              # double 93.590000000000003
	.quad	0x4063580000000000              # double 154.75
	.quad	0x4027e147ae147ae1              # double 11.94
	.quad	0x4042a8f5c28f5c29              # double 37.32
	.quad	0x4054828f5c28f5c3              # double 82.040000000000006
	.quad	0x4060f66666666666              # double 135.69999999999999
	.quad	0x4056200000000000              # double 88.5
	.quad	0x405ea51eb851eb85              # double 122.58
	.quad	0x4050beb851eb851f              # double 66.980000000000004
	.quad	0x40612147ae147ae1              # double 137.03999999999999
	.quad	0x404ad5c28f5c28f6              # double 53.670000000000002
	.quad	0x4058a3d70a3d70a4              # double 98.560000000000002
	.quad	0x403cd70a3d70a3d7              # double 28.84
	.quad	0x404795c28f5c28f6              # double 47.170000000000002
	.quad	0x40491ae147ae147b              # double 50.210000000000001
	.quad	0x4058170a3d70a3d7              # double 96.359999999999999
	.quad	0x404df5c28f5c28f6              # double 59.920000000000002
	.quad	0x405b6ccccccccccd              # double 109.7
	.quad	0x4047f5c28f5c28f6              # double 47.920000000000002
	.quad	0x405707ae147ae148              # double 92.120000000000005
	.quad	0x4053ea3d70a3d70a              # double 79.659999999999997
	.quad	0x405bf5c28f5c28f6              # double 111.84
	.quad	0x40565ae147ae147b              # double 89.420000000000001
	.quad	0x406333d70a3d70a4              # double 153.62
	.quad	0x404c03d70a3d70a4              # double 56.030000000000001
	.quad	0x4056533333333333              # double 89.299999999999997
	.quad	0x403f8f5c28f5c28f              # double 31.559999999999999
	.quad	0x404f0ccccccccccd              # double 62.100000000000001
	.quad	0x401a3d70a3d70a3d              # double 6.5599999999999996
	.quad	0x4041b33333333333              # double 35.399999999999999
	.quad	0x4037f5c28f5c28f6              # double 23.960000000000001
	.quad	0x4046a00000000000              # double 45.25
	.quad	0x404af9999999999a              # double 53.950000000000003
	.quad	0x4057ec28f5c28f5c              # double 95.689999999999998
	.quad	0x40304a3d70a3d70a              # double 16.289999999999999
	.quad	0x4047628f5c28f5c3              # double 46.770000000000003
	.quad	0x4048266666666666              # double 48.299999999999997
	.quad	0x4053eccccccccccd              # double 79.700000000000002
	.quad	0x404f333333333333              # double 62.399999999999999
	.quad	0x4057a51eb851eb85              # double 94.579999999999998
	.quad	0x40521ae147ae147b              # double 72.420000000000002
	.quad	0x405d63d70a3d70a4              # double 117.56
	.quad	0x40251eb851eb851f              # double 10.56
	.quad	0x4042347ae147ae14              # double 36.409999999999997
	.quad	0x404da51eb851eb85              # double 59.289999999999999
	.quad	0x405803d70a3d70a4              # double 96.060000000000002
	.quad	0x40443ae147ae147b              # double 40.460000000000001
	.quad	0x40549b851eb851ec              # double 82.430000000000007
	.quad	0x40548ccccccccccd              # double 82.200000000000002
	.quad	0x405f151eb851eb85              # double 124.33
	.quad	0x404899999999999a              # double 49.200000000000003
	.quad	0x405781eb851eb852              # double 94.030000000000001
	.quad	0x4047bc28f5c28f5c              # double 47.469999999999999
	.quad	0x40553e147ae147ae              # double 84.969999999999999
	.quad	0x404aaa3d70a3d70a              # double 53.329999999999998
	.quad	0x4053633333333333              # double 77.549999999999997
	.quad	0x4057b70a3d70a3d7              # double 94.859999999999999
	.quad	0x40611a8f5c28f5c3              # double 136.83000000000001
	.quad	0x40167ae147ae147b              # double 5.6200000000000001
	.quad	0x40413c28f5c28f5c              # double 34.469999999999999
	.quad	0x4040ca3d70a3d70a              # double 33.579999999999998
	.quad	0x404cfae147ae147b              # double 57.960000000000001
	.quad	0x4052bae147ae147b              # double 74.920000000000001
	.quad	0x405d0d70a3d70a3d              # double 116.20999999999999
	.quad	0x404a851eb851eb85              # double 53.039999999999999
	.quad	0x405700a3d70a3d71              # double 92.010000000000005
	.quad	0x4058ca3d70a3d70a              # double 99.159999999999996
	.quad	0x4063ae6666666666              # double 157.44999999999999
	.quad	0x403a028f5c28f5c3              # double 26.010000000000002
	.quad	0x404d47ae147ae148              # double 58.560000000000002
	.quad	0x404f03d70a3d70a4              # double 62.030000000000001
	.quad	0x405ca0a3d70a3d71              # double 114.51000000000001
	.quad	0x404f71eb851eb852              # double 62.890000000000001
	.quad	0x405ca851eb851eb8              # double 114.63
	.quad	0x40158f5c28f5c28f              # double 5.3899999999999997
	.quad	0x403a666666666666              # double 26.399999999999999
	.quad	0x40535c28f5c28f5c              # double 77.439999999999998
	.quad	0x405b170a3d70a3d7              # double 108.36
	.quad	0x4052a1eb851eb852              # double 74.530000000000001
	.quad	0x405cd7ae147ae148              # double 115.37
	.quad	0x40581a3d70a3d70a              # double 96.409999999999996
	.quad	0x40628d70a3d70a3d              # double 148.41999999999999
	.quad	0x4050966666666666              # double 66.349999999999994
	.quad	0x405947ae147ae148              # double 101.12
	.quad	0x404c347ae147ae14              # double 56.409999999999997
	.quad	0x405a4ccccccccccd              # double 105.2
	.quad	0x4054847ae147ae14              # double 82.069999999999993
	.quad	0x40600a3d70a3d70a              # double 128.31999999999999
	.quad	0x4050500000000000              # double 65.25
	.quad	0x405a470a3d70a3d7              # double 105.11
	.quad	0x404bb70a3d70a3d7              # double 55.43
	.quad	0x405797ae147ae148              # double 94.370000000000005
	.quad	0x405725c28f5c28f6              # double 92.590000000000003
	.quad	0x4061fdc28f5c28f6              # double 143.93000000000001
	.quad	0x4050f47ae147ae14              # double 67.819999999999993
	.quad	0x405df66666666666              # double 119.84999999999999
	.quad	0x4052647ae147ae14              # double 73.569999999999993
	.quad	0x405d7ae147ae147b              # double 117.92
	.quad	0x405639999999999a              # double 88.900000000000006
	.quad	0x4063051eb851eb85              # double 152.16
	.quad	0x4034c00000000000              # double 20.75
	.quad	0x403c428f5c28f5c3              # double 28.260000000000002
	.quad	0x4040dae147ae147b              # double 33.710000000000001
	.quad	0x4056e33333333333              # double 91.549999999999997
	.quad	0x4055970a3d70a3d7              # double 86.359999999999999
	.quad	0x405f8d70a3d70a3d              # double 126.20999999999999
	.quad	0x4044c28f5c28f5c3              # double 41.520000000000003
	.quad	0x405523d70a3d70a4              # double 84.560000000000002
	.quad	0x4049570a3d70a3d7              # double 50.68
	.quad	0x405820a3d70a3d71              # double 96.510000000000005
	.quad	0x404f251eb851eb85              # double 62.289999999999999
	.quad	0x405a2147ae147ae1              # double 104.52
	.quad	0x404fd33333333333              # double 63.649999999999999
	.quad	0x4059c8f5c28f5c29              # double 103.14
	.quad	0x403ec51eb851eb85              # double 30.77
	.quad	0x4048bae147ae147b              # double 49.460000000000001
	.quad	0x4043451eb851eb85              # double 38.539999999999999
	.quad	0x4053966666666666              # double 78.349999999999994
	.quad	0x4050b33333333333              # double 66.799999999999997
	.quad	0x405a7ccccccccccd              # double 105.95
	.quad	0x4044f0a3d70a3d71              # double 41.880000000000003
	.quad	0x4050f47ae147ae14              # double 67.819999999999993
	.quad	0x404fd70a3d70a3d7              # double 63.68
	.quad	0x405d3147ae147ae1              # double 116.77
	.quad	0x40511d70a3d70a3d              # double 68.459999999999994
	.quad	0x405be00000000000              # double 111.5
	.quad	0x4011666666666666              # double 4.3499999999999996
	.quad	0x4033b5c28f5c28f6              # double 19.710000000000001
	.quad	0x3fe70a3d70a3d70a              # double 0.71999999999999997
	.quad	0x4042cb851eb851ec              # double 37.590000000000003
	.quad	0x40474f5c28f5c28f              # double 46.619999999999997
	.quad	0x4054c00000000000              # double 83
	.quad	0x4028f0a3d70a3d71              # double 12.470000000000001
	.quad	0x4042accccccccccd              # double 37.350000000000001
	.quad	0x4057ed70a3d70a3d              # double 95.709999999999993
	.quad	0x406176b851eb851f              # double 139.71000000000001
	.quad	0x40492a3d70a3d70a              # double 50.329999999999998
	.quad	0x4057b51eb851eb85              # double 94.829999999999998
	.quad	0x4012000000000000              # double 4.5
	.quad	0x4046f0a3d70a3d71              # double 45.880000000000003
	.quad	0x40180a3d70a3d70a              # double 6.0099999999999998
	.quad	0x4036b33333333333              # double 22.699999999999999
	.quad	0x4014851eb851eb85              # double 5.1299999999999999
	.quad	0x4045feb851eb851f              # double 43.990000000000002
	.quad	0x4031547ae147ae14              # double 17.329999999999998
	.quad	0x40492147ae147ae1              # double 50.259999999999998
	.quad	0x40488147ae147ae1              # double 49.009999999999998
	.quad	0x40575e147ae147ae              # double 93.469999999999998
	.quad	0x4036051eb851eb85              # double 22.02
	.quad	0x4048feb851eb851f              # double 49.990000000000002
	.quad	0x4050700000000000              # double 65.75
	.quad	0x405e628f5c28f5c3              # double 121.54000000000001
	.quad	0x404648f5c28f5c29              # double 44.57
	.quad	0x405257ae147ae148              # double 73.370000000000005
	.quad	0x404de7ae147ae148              # double 59.810000000000002
	.quad	0x40550e147ae147ae              # double 84.219999999999999
	.quad	0x404f0ccccccccccd              # double 62.100000000000001
	.quad	0x4057e00000000000              # double 95.5
	.quad	0x4054d147ae147ae1              # double 83.269999999999996
	.quad	0x4061b947ae147ae1              # double 141.78999999999999
	.quad	0x404988f5c28f5c29              # double 51.07
	.quad	0x4052870a3d70a3d7              # double 74.109999999999999
	.quad	0x402b9eb851eb851f              # double 13.81
	.quad	0x404ab1eb851eb852              # double 53.390000000000001
	.quad	0x404c75c28f5c28f6              # double 56.920000000000002
	.quad	0x405b05c28f5c28f6              # double 108.09
	.quad	0x4028c7ae147ae148              # double 12.390000000000001
	.quad	0x4045451eb851eb85              # double 42.539999999999999
	.quad	0x404e35c28f5c28f6              # double 60.420000000000002
	.quad	0x405a533333333333              # double 105.3
	.quad	0x4041beb851eb851f              # double 35.490000000000002
	.quad	0x40527eb851eb851f              # double 73.980000000000003
	.quad	0x404cf70a3d70a3d7              # double 57.93
	.quad	0x40576b851eb851ec              # double 93.680000000000007
	.quad	0x4050a28f5c28f5c3              # double 66.540000000000006
	.quad	0x405ef51eb851eb85              # double 123.83
	.quad	0x4052800000000000              # double 74
	.quad	0x405d57ae147ae148              # double 117.37
	.quad	0x40541851eb851eb8              # double 80.379999999999995
	.quad	0x405b933333333333              # double 110.3
	.quad	0x40449d70a3d70a3d              # double 41.229999999999997
	.quad	0x40511b851eb851ec              # double 68.430000000000007
	.quad	0x4051d3d70a3d70a4              # double 71.310000000000002
	.quad	0x405e08f5c28f5c29              # double 120.14
	.quad	0x403bb5c28f5c28f6              # double 27.710000000000001
	.quad	0x40548ccccccccccd              # double 82.200000000000002
	.quad	0x4038eb851eb851ec              # double 24.920000000000002
	.quad	0x404f947ae147ae14              # double 63.159999999999997
	.quad	0x404f23d70a3d70a4              # double 62.280000000000001
	.quad	0x4057d3d70a3d70a4              # double 95.310000000000002
	.quad	0x3ffae147ae147ae1              # double 1.6799999999999999
	.quad	0x403cf0a3d70a3d71              # double 28.940000000000001
	.quad	0x404735c28f5c28f6              # double 46.420000000000002
	.quad	0x4054d7ae147ae148              # double 83.370000000000005
	.quad	0x405758f5c28f5c29              # double 93.39
	.quad	0x40634851eb851eb8              # double 154.25999999999999
	.quad	0x4036f851eb851eb8              # double 22.969999999999999
	.quad	0x4050266666666666              # double 64.599999999999994
	.quad	0x4034547ae147ae14              # double 20.329999999999998
	.quad	0x4052f66666666666              # double 75.849999999999994
	.quad	0x3fe75c28f5c28f5c              # double 0.72999999999999998
	.quad	0x403c147ae147ae14              # double 28.079999999999998
	.quad	0x40580e147ae147ae              # double 96.219999999999998
	.quad	0x4062d1eb851eb852              # double 150.56
	.quad	0x40502147ae147ae1              # double 64.519999999999996
	.quad	0x405c31eb851eb852              # double 112.78
	.quad	0x4056f8f5c28f5c29              # double 91.89
	.quad	0x40617eb851eb851f              # double 139.96000000000001
	.quad	0x4050d8f5c28f5c29              # double 67.390000000000001
	.quad	0x405d97ae147ae148              # double 118.37
	.quad	0x404a600000000000              # double 52.75
	.quad	0x4058d147ae147ae1              # double 99.269999999999996
	.quad	0x405578f5c28f5c29              # double 85.89
	.quad	0x4060f9999999999a              # double 135.80000000000001
	.quad	0x40407ae147ae147b              # double 32.960000000000001
	.quad	0x404ec66666666666              # double 61.549999999999997
	.quad	0x404c828f5c28f5c3              # double 57.020000000000003
	.quad	0x405845c28f5c28f6              # double 97.090000000000003
	.quad	0x4050e5c28f5c28f6              # double 67.590000000000003
	.quad	0x405c2f5c28f5c28f              # double 112.73999999999999
	.quad	0x4050f3d70a3d70a4              # double 67.810000000000002
	.quad	0x405d28f5c28f5c29              # double 116.64
	.quad	0x40424b851eb851ec              # double 36.590000000000003
	.quad	0x40525c28f5c28f5c              # double 73.439999999999998
	.quad	0x404b933333333333              # double 55.149999999999999
	.quad	0x4055fc28f5c28f5c              # double 87.939999999999998
	.quad	0x40445d70a3d70a3d              # double 40.729999999999997
	.quad	0x4058a8f5c28f5c29              # double 98.64
	.quad	0x40489d70a3d70a3d              # double 49.229999999999997
	.quad	0x4056851eb851eb85              # double 90.079999999999998
	.quad	0x40312e147ae147ae              # double 17.18
	.quad	0x4040beb851eb851f              # double 33.490000000000002
	.quad	0x403c6147ae147ae1              # double 28.379999999999999
	.quad	0x405028f5c28f5c29              # double 64.640000000000001
	.quad	0x40584851eb851eb8              # double 97.129999999999995
	.quad	0x406116147ae147ae              # double 136.69
	.quad	0x405241eb851eb852              # double 73.030000000000001
	.quad	0x4060bbd70a3d70a4              # double 133.87
	.quad	0x4055cd70a3d70a3d              # double 87.209999999999993
	.quad	0x4060a0a3d70a3d71              # double 133.02000000000001
	.quad	0x40322e147ae147ae              # double 18.18
	.quad	0x4047d0a3d70a3d71              # double 47.630000000000003
	.quad	0x402923d70a3d70a4              # double 12.57
	.quad	0x40428ccccccccccd              # double 37.100000000000001
	.quad	0x405030a3d70a3d71              # double 64.760000000000005
	.quad	0x405b6eb851eb851f              # double 109.73
	.quad	0x4023800000000000              # double 9.75
	.quad	0x403d0a3d70a3d70a              # double 29.039999999999999
	.quad	0x405487ae147ae148              # double 82.120000000000005
	.quad	0x405ea8f5c28f5c29              # double 122.64
	.quad	0x4056dd70a3d70a3d              # double 91.459999999999993
	.quad	0x40607d1eb851eb85              # double 131.91
	.quad	0x4056b5c28f5c28f6              # double 90.840000000000003
	.quad	0x4064233333333333              # double 161.09999999999999
	.quad	0x401b5c28f5c28f5c              # double 6.8399999999999999
	.quad	0x40442ccccccccccd              # double 40.350000000000001
	.quad	0x4050351eb851eb85              # double 64.829999999999998
	.quad	0x405cf66666666666              # double 115.84999999999999
	.quad	0x4030851eb851eb85              # double 16.52
	.quad	0x40448a3d70a3d70a              # double 41.079999999999998
	.quad	0x4044a7ae147ae148              # double 41.310000000000002
	.quad	0x40552d70a3d70a3d              # double 84.709999999999993
	.quad	0x4054033333333333              # double 80.049999999999997
	.quad	0x4060fd1eb851eb85              # double 135.91
	.quad	0x40556851eb851eb8              # double 85.629999999999995
	.quad	0x406238a3d70a3d71              # double 145.77000000000001
	.quad	0x40570ccccccccccd              # double 92.200000000000002
	.quad	0x406111999999999a              # double 136.55000000000001
	.quad	0x40368f5c28f5c28f              # double 22.559999999999999
	.quad	0x4051066666666666              # double 68.099999999999994
	.quad	0x4045f851eb851eb8              # double 43.939999999999998
	.quad	0x40541e147ae147ae              # double 80.469999999999999
	.quad	0x4056beb851eb851f              # double 90.980000000000003
	.quad	0x4062b0f5c28f5c29              # double 149.53
	.quad	0x40561eb851eb851f              # double 88.480000000000003
	.quad	0x406192e147ae147b              # double 140.59
	.quad	0x4045f851eb851eb8              # double 43.939999999999998
	.quad	0x40540b851eb851ec              # double 80.180000000000007
	.quad	0x404f83d70a3d70a4              # double 63.030000000000001
	.quad	0x405b970a3d70a3d7              # double 110.36
	.quad	0x4052d3d70a3d70a4              # double 75.310000000000002
	.quad	0x405a951eb851eb85              # double 106.33
	.quad	0x405581eb851eb852              # double 86.030000000000001
	.quad	0x4061f9999999999a              # double 143.80000000000001
	.quad	0x4039147ae147ae14              # double 25.079999999999998
	.quad	0x4043c3d70a3d70a4              # double 39.530000000000001
	.quad	0x404f30a3d70a3d71              # double 62.380000000000003
	.quad	0x4053c3d70a3d70a4              # double 79.060000000000002
	.quad	0x40545a3d70a3d70a              # double 81.409999999999997
	.quad	0x40601dc28f5c28f6              # double 128.93000000000001
	.quad	0x404fa147ae147ae1              # double 63.259999999999998
	.quad	0x405977ae147ae148              # double 101.87
	.quad	0x40358f5c28f5c28f              # double 21.559999999999999
	.quad	0x4045228f5c28f5c3              # double 42.270000000000003
	.quad	0x4053e33333333333              # double 79.549999999999997
	.quad	0x405f851eb851eb85              # double 126.08
	.quad	0x403059999999999a              # double 16.350000000000001
	.quad	0x4049666666666666              # double 50.799999999999997
	.quad	0x40538ccccccccccd              # double 78.200000000000002
	.quad	0x4061aa3d70a3d70a              # double 141.31999999999999
	.quad	0x4055728f5c28f5c3              # double 85.790000000000006
	.quad	0x40605428f5c28f5c              # double 130.63
	.quad	0x40569a3d70a3d70a              # double 90.409999999999997
	.quad	0x4062fe6666666666              # double 151.94999999999999
	.quad	0x4058100000000000              # double 96.25
	.quad	0x40637851eb851eb8              # double 155.75999999999999
	.quad	0x403bc51eb851eb85              # double 27.77
	.quad	0x404a000000000000              # double 52
	.quad	0x4048a3d70a3d70a4              # double 49.280000000000001
	.quad	0x405ac0a3d70a3d71              # double 107.01000000000001
	.quad	0x3ff6666666666666              # double 1.3999999999999999
	.quad	0x403e19999999999a              # double 30.100000000000001
	.quad	0x4037c00000000000              # double 23.75
	.quad	0x4045466666666666              # double 42.549999999999997
	.quad	0x40572851eb851eb8              # double 92.629999999999995
	.quad	0x4064bc28f5c28f5c              # double 165.88
	.quad	0x4024b851eb851eb8              # double 10.359999999999999
	.quad	0x4049a3d70a3d70a4              # double 51.280000000000001
	.quad	0x404963d70a3d70a4              # double 50.780000000000001
	.quad	0x40562eb851eb851f              # double 88.730000000000003
	.quad	0x404ffd70a3d70a3d              # double 63.979999999999997
	.quad	0x405d247ae147ae14              # double 116.56999999999999
	.quad	0x4057351eb851eb85              # double 92.829999999999998
	.quad	0x406495c28f5c28f6              # double 164.68000000000001
	.quad	0x404159999999999a              # double 34.700000000000003
	.quad	0x404815c28f5c28f6              # double 48.170000000000002
	.quad	0x403b7d70a3d70a3d              # double 27.489999999999998
	.quad	0x405299999999999a              # double 74.400000000000006
	.quad	0x4052fb851eb851ec              # double 75.930000000000007
	.quad	0x40606947ae147ae1              # double 131.28999999999999
	.quad	0x40246b851eb851ec              # double 10.210000000000001
	.quad	0x40449c28f5c28f5c              # double 41.219999999999999
	.quad	0x400e3d70a3d70a3d              # double 3.7799999999999998
	.quad	0x403adeb851eb851f              # double 26.870000000000001
	.quad	0x40558e147ae147ae              # double 86.219999999999999
	.quad	0x40623d70a3d70a3d              # double 145.91999999999999
	.quad	0x3fe70a3d70a3d70a              # double 0.71999999999999997
	.quad	0x40358ccccccccccd              # double 21.550000000000001
	.quad	0x405480a3d70a3d71              # double 82.010000000000005
	.quad	0x405dc3d70a3d70a4              # double 119.06
	.quad	0x4038d9999999999a              # double 24.850000000000001
	.quad	0x4048a00000000000              # double 49.25
	.quad	0x40382b851eb851ec              # double 24.170000000000002
	.quad	0x404548f5c28f5c29              # double 42.57
	.quad	0x404830a3d70a3d71              # double 48.380000000000003
	.quad	0x405237ae147ae148              # double 72.870000000000005
	.quad	0x4006000000000000              # double 2.75
	.quad	0x403d570a3d70a3d7              # double 29.34
	.quad	0x4047428f5c28f5c3              # double 46.520000000000003
	.quad	0x4055466666666666              # double 85.099999999999994
	.quad	0x4010ae147ae147ae              # double 4.1699999999999999
	.quad	0x4043000000000000              # double 38
	.quad	0x403299999999999a              # double 18.600000000000001
	.quad	0x4045c8f5c28f5c29              # double 43.57
	.quad	0x4024051eb851eb85              # double 10.01
	.quad	0x40476b851eb851ec              # double 46.840000000000003
	.quad	0x40328f5c28f5c28f              # double 18.559999999999999
	.quad	0x4046ee147ae147ae              # double 45.859999999999999
	.quad	0x40203851eb851eb8              # double 8.1099999999999994
	.quad	0x403fb0a3d70a3d71              # double 31.690000000000001
	.quad	0x403aeb851eb851ec              # double 26.920000000000002
	.quad	0x404a8147ae147ae1              # double 53.009999999999998
	.quad	0x40471851eb851eb8              # double 46.189999999999998
	.quad	0x4058b28f5c28f5c3              # double 98.790000000000006
	.quad	0x403651eb851eb852              # double 22.32
	.quad	0x404b1c28f5c28f5c              # double 54.219999999999999
	.quad	0x40534147ae147ae1              # double 77.019999999999996
	.quad	0x405f49999999999a              # double 125.15000000000001
	.quad	0x40384ccccccccccd              # double 24.300000000000001
	.quad	0x4048828f5c28f5c3              # double 49.020000000000003
	.quad	0x4045666666666666              # double 42.799999999999997
	.quad	0x405197ae147ae148              # double 70.370000000000005
	.quad	0x403ef0a3d70a3d71              # double 30.940000000000001
	.quad	0x40525c28f5c28f5c              # double 73.439999999999998
	.quad	0x3ff0cccccccccccd              # double 1.05
	.quad	0x4031d1eb851eb852              # double 17.82
	.quad	0x4051400000000000              # double 69
	.quad	0x405f366666666666              # double 124.84999999999999
	.quad	0x4019b851eb851eb8              # double 6.4299999999999997
	.quad	0x40233d70a3d70a3d              # double 9.6199999999999992
	.quad	0x4054f51eb851eb85              # double 83.829999999999998
	.quad	0x406148f5c28f5c29              # double 138.28
	.quad	0x403d6e147ae147ae              # double 29.43
	.quad	0x40532eb851eb851f              # double 76.730000000000003
	.quad	0x4030828f5c28f5c3              # double 16.510000000000002
	.quad	0x403fc51eb851eb85              # double 31.77
	.quad	0x4057b00000000000              # double 94.75
	.quad	0x4061851eb851eb85              # double 140.16
	.quad	0x405571eb851eb852              # double 85.780000000000001
	.quad	0x4061a3851eb851ec              # double 141.11000000000001
	.quad	0x4055c66666666666              # double 87.099999999999994
	.quad	0x406120f5c28f5c29              # double 137.03
	.quad	0x404c2a3d70a3d70a              # double 56.329999999999998
	.quad	0x405bb851eb851eb8              # double 110.88
	.quad	0x4052b47ae147ae14              # double 74.819999999999993
	.quad	0x405fed70a3d70a3d              # double 127.70999999999999
	.quad	0x4051266666666666              # double 68.599999999999994
	.quad	0x405aa9999999999a              # double 106.65000000000001
	.quad	0x404f2a3d70a3d70a              # double 62.329999999999998
	.quad	0x405ade147ae147ae              # double 107.47
	.quad	0x40569f5c28f5c28f              # double 90.489999999999994
	.quad	0x40614851eb851eb8              # double 138.25999999999999
	.quad	0x40540e147ae147ae              # double 80.219999999999999
	.quad	0x405ee00000000000              # double 123.5
	.quad	0x4031a8f5c28f5c29              # double 17.66
	.quad	0x404bc147ae147ae1              # double 55.509999999999998
	.quad	0x40446f5c28f5c28f              # double 40.869999999999997
	.quad	0x40537ae147ae147b              # double 77.920000000000001
	.quad	0x40583ae147ae147b              # double 96.920000000000001
	.quad	0x406378a3d70a3d71              # double 155.77000000000001
	.quad	0x40385c28f5c28f5c              # double 24.359999999999999
	.quad	0x404959999999999a              # double 50.700000000000003
	.quad	0x403b0f5c28f5c28f              # double 27.059999999999999
	.quad	0x404f4b851eb851ec              # double 62.590000000000003
	.quad	0x4049347ae147ae14              # double 50.409999999999997
	.quad	0x40584f5c28f5c28f              # double 97.239999999999994
	.quad	0x405519999999999a              # double 84.400000000000006
	.quad	0x40603e147ae147ae              # double 129.94
	.quad	0x403991eb851eb852              # double 25.57
	.quad	0x404b5851eb851eb8              # double 54.689999999999998
	.quad	0x40545f5c28f5c28f              # double 81.489999999999994
	.quad	0x4061de6666666666              # double 142.94999999999999
	.quad	0x4054270a3d70a3d7              # double 80.609999999999999
	.quad	0x405d600000000000              # double 117.5
	.quad	0x404c370a3d70a3d7              # double 56.43
	.quad	0x4056d0a3d70a3d71              # double 91.260000000000005
	.quad	0x4050f51eb851eb85              # double 67.829999999999998
	.quad	0x405b428f5c28f5c3              # double 109.04000000000001
	.quad	0x4046b0a3d70a3d71              # double 45.380000000000003
	.quad	0x40541ccccccccccd              # double 80.450000000000002
	.quad	0x4035e3d70a3d70a4              # double 21.890000000000001
	.quad	0x40466147ae147ae1              # double 44.759999999999998
	.quad	0x4050528f5c28f5c3              # double 65.290000000000006
	.quad	0x405a47ae147ae148              # double 105.12
	.quad	0x40416a3d70a3d70a              # double 34.829999999999998
	.quad	0x40559851eb851eb8              # double 86.379999999999995
	.quad	0x405571eb851eb852              # double 85.780000000000001
	.quad	0x405f170a3d70a3d7              # double 124.36
	.quad	0x4049347ae147ae14              # double 50.409999999999997
	.quad	0x405461eb851eb852              # double 81.530000000000001
	.quad	0x4049228f5c28f5c3              # double 50.270000000000003
	.quad	0x4053d51eb851eb85              # double 79.329999999999998
	.quad	0x404ca66666666666              # double 57.299999999999997
	.quad	0x40587d70a3d70a3d              # double 97.959999999999993
	.quad	0x40510eb851eb851f              # double 68.230000000000004
	.quad	0x405c91eb851eb852              # double 114.28
	.quad	0x40549d70a3d70a3d              # double 82.459999999999993
	.quad	0x406073851eb851ec              # double 131.61000000000001
	.quad	0x40405c28f5c28f5c              # double 32.719999999999999
	.quad	0x404e200000000000              # double 60.25
	.quad	0x4054d47ae147ae14              # double 83.319999999999993
	.quad	0x4061480000000000              # double 138.25
	.quad	0x404135c28f5c28f6              # double 34.420000000000002
	.quad	0x404f8a3d70a3d70a              # double 63.079999999999998
	.quad	0x4043f33333333333              # double 39.899999999999999
	.quad	0x40546f5c28f5c28f              # double 81.739999999999994
	.quad	0x4055566666666666              # double 85.349999999999994
	.quad	0x405f81eb851eb852              # double 126.03
	.quad	0x4057f33333333333              # double 95.799999999999997
	.quad	0x4062b947ae147ae1              # double 149.78999999999999
	.quad	0x403451eb851eb852              # double 20.32
	.quad	0x4048970a3d70a3d7              # double 49.18
	.quad	0x4049466666666666              # double 50.549999999999997
	.quad	0x405208f5c28f5c29              # double 72.140000000000001
	.quad	0x404f828f5c28f5c3              # double 63.020000000000003
	.quad	0x405d370a3d70a3d7              # double 116.86
	.quad	0x404d90a3d70a3d71              # double 59.130000000000003
	.quad	0x405b133333333333              # double 108.3
	.quad	0x404eb851eb851eb8              # double 61.439999999999998
	.quad	0x4059b33333333333              # double 102.8
	.quad	0x40471851eb851eb8              # double 46.189999999999998
	.quad	0x40559851eb851eb8              # double 86.379999999999995
	.quad	0x402fd70a3d70a3d7              # double 15.92
	.quad	0x4045af5c28f5c28f              # double 43.369999999999997
	.quad	0x4044000000000000              # double 40
	.quad	0x4055333333333333              # double 84.799999999999997
	.quad	0x404ef9999999999a              # double 61.950000000000003
	.quad	0x40563ae147ae147b              # double 88.920000000000001
	.quad	0x404b55c28f5c28f6              # double 54.670000000000002
	.quad	0x4059300000000000              # double 100.75
	.quad	0x401128f5c28f5c29              # double 4.29
	.quad	0x40422147ae147ae1              # double 36.259999999999998
	.quad	0x4014666666666666              # double 5.0999999999999996
	.quad	0x4040a7ae147ae148              # double 33.310000000000002
	.quad	0x400c000000000000              # double 3.5
	.quad	0x404439999999999a              # double 40.450000000000003
	.quad	0x4011ae147ae147ae              # double 4.4199999999999999
	.quad	0x40215c28f5c28f5c              # double 8.6799999999999997
	.quad	0x403d68f5c28f5c29              # double 29.41
	.quad	0x40501d70a3d70a3d              # double 64.459999999999994
	.quad	0x401ecccccccccccd              # double 7.7000000000000001
	.quad	0x4033d1eb851eb852              # double 19.82
	.quad	0x403f23d70a3d70a4              # double 31.140000000000001
	.quad	0x405229999999999a              # double 72.650000000000006
	.quad	0x404ea3d70a3d70a4              # double 61.280000000000001
	.quad	0x405823d70a3d70a4              # double 96.560000000000002
	.quad	0x404775c28f5c28f6              # double 46.920000000000002
	.quad	0x4053451eb851eb85              # double 77.079999999999998
	.quad	0x40507f5c28f5c28f              # double 65.989999999999995
	.quad	0x405a18f5c28f5c29              # double 104.39
	.quad	0x4057dd70a3d70a3d              # double 95.459999999999993
	.quad	0x4064228f5c28f5c3              # double 161.08000000000001
	.quad	0x403b87ae147ae148              # double 27.530000000000001
	.quad	0x40489c28f5c28f5c              # double 49.219999999999999
	.quad	0x403c4ccccccccccd              # double 28.300000000000001
	.quad	0x404d8147ae147ae1              # double 59.009999999999998
	.quad	0x402f0a3d70a3d70a              # double 15.52
	.quad	0x404cf70a3d70a3d7              # double 57.93
	.quad	0x4046133333333333              # double 44.149999999999999
	.quad	0x4053a7ae147ae148              # double 78.620000000000005
	.quad	0x4048f47ae147ae14              # double 49.909999999999997
	.quad	0x4059066666666666              # double 100.09999999999999
	.quad	0x4054aae147ae147b              # double 82.670000000000001
	.quad	0x405fd5c28f5c28f6              # double 127.34
	.quad	0x4054747ae147ae14              # double 81.819999999999993
	.quad	0x405fceb851eb851f              # double 127.23
	.quad	0x4043347ae147ae14              # double 38.409999999999997
	.quad	0x40541d70a3d70a3d              # double 80.459999999999993
	.quad	0x404ca3d70a3d70a4              # double 57.280000000000001
	.quad	0x405ab3d70a3d70a4              # double 106.81
	.quad	0x40327ae147ae147b              # double 18.48
	.quad	0x404067ae147ae148              # double 32.810000000000002
	.quad	0x404110a3d70a3d71              # double 34.130000000000003
	.quad	0x40509a3d70a3d70a              # double 66.409999999999997
	.quad	0x402bb851eb851eb8              # double 13.859999999999999
	.quad	0x404903d70a3d70a4              # double 50.030000000000001
	.quad	0x4035970a3d70a3d7              # double 21.59
	.quad	0x404c39999999999a              # double 56.450000000000003
	.quad	0x405190a3d70a3d71              # double 70.260000000000005
	.quad	0x405b39999999999a              # double 108.90000000000001
	.quad	0x4030a147ae147ae1              # double 16.629999999999999
	.quad	0x4042accccccccccd              # double 37.350000000000001
	.quad	0x402c147ae147ae14              # double 14.039999999999999
	.quad	0x4044e51eb851eb85              # double 41.789999999999999
	.quad	0x4056f0a3d70a3d71              # double 91.760000000000005
	.quad	0x40630ae147ae147b              # double 152.34
	.quad	0x404b43d70a3d70a4              # double 54.530000000000001
	.quad	0x405a633333333333              # double 105.55
	.quad	0x40420f5c28f5c28f              # double 36.119999999999997
	.quad	0x405280a3d70a3d71              # double 74.010000000000005
	.quad	0x4043b70a3d70a3d7              # double 39.43
	.quad	0x404f07ae147ae148              # double 62.060000000000002
	.quad	0x4040428f5c28f5c3              # double 32.520000000000003
	.quad	0x4050b5c28f5c28f6              # double 66.840000000000003
	.quad	0x3ffc7ae147ae147b              # double 1.78
	.quad	0x4044228f5c28f5c3              # double 40.270000000000003
	.quad	0x40584ccccccccccd              # double 97.200000000000002
	.quad	0x4061ec28f5c28f5c              # double 143.38
	.quad	0x403051eb851eb852              # double 16.32
	.quad	0x4040c8f5c28f5c29              # double 33.57
	.quad	0x404a4a3d70a3d70a              # double 52.579999999999998
	.quad	0x4058d47ae147ae14              # double 99.319999999999993
	.quad	0x4034000000000000              # double 20
	.quad	0x404a5c28f5c28f5c              # double 52.719999999999999
	.quad	0x4022eb851eb851ec              # double 9.4600000000000008
	.quad	0x404bcb851eb851ec              # double 55.590000000000003
	.quad	0x4047bd70a3d70a3d              # double 47.479999999999997
	.quad	0x4054a51eb851eb85              # double 82.579999999999998
	.quad	0x402f5c28f5c28f5c              # double 15.68
	.quad	0x4049ab851eb851ec              # double 51.340000000000003
	.quad	0x4042147ae147ae14              # double 36.159999999999997
	.quad	0x4052ce147ae147ae              # double 75.219999999999999
	.quad	0x4047dc28f5c28f5c              # double 47.719999999999999
	.quad	0x4054847ae147ae14              # double 82.069999999999993
	.quad	0x40236147ae147ae1              # double 9.6899999999999995
	.quad	0x40438ccccccccccd              # double 39.100000000000001
	.quad	0x4050147ae147ae14              # double 64.319999999999993
	.quad	0x4059451eb851eb85              # double 101.08
	.quad	0x4055247ae147ae14              # double 84.569999999999993
	.quad	0x40640570a3d70a3d              # double 160.16999999999999
	.quad	0x4051ceb851eb851f              # double 71.230000000000004
	.quad	0x405cd5c28f5c28f6              # double 115.34
	.quad	0x403aeb851eb851ec              # double 26.920000000000002
	.quad	0x404fe51eb851eb85              # double 63.789999999999999
	.quad	0x402db33333333333              # double 14.85
	.quad	0x4045d33333333333              # double 43.649999999999999
	.quad	0x4042bae147ae147b              # double 37.460000000000001
	.quad	0x405403d70a3d70a4              # double 80.060000000000002
	.quad	0x40478147ae147ae1              # double 47.009999999999998
	.quad	0x4053651eb851eb85              # double 77.579999999999998
	.quad	0x4044c147ae147ae1              # double 41.509999999999998
	.quad	0x4053b147ae147ae1              # double 78.769999999999996
	.quad	0x40342147ae147ae1              # double 20.129999999999999
	.quad	0x403e547ae147ae14              # double 30.329999999999998
	.quad	0x4052e33333333333              # double 75.549999999999997
	.quad	0x40617ccccccccccd              # double 139.90000000000001
	.quad	0x403ca3d70a3d70a4              # double 28.640000000000001
	.quad	0x404e7ae147ae147b              # double 60.960000000000001
	.quad	0x403d4ccccccccccd              # double 29.300000000000001
	.quad	0x40515ccccccccccd              # double 69.450000000000003
	.quad	0x40401851eb851eb8              # double 32.189999999999998
	.quad	0x40502a3d70a3d70a              # double 64.659999999999997
	.quad	0x403c5c28f5c28f5c              # double 28.359999999999999
	.quad	0x405209999999999a              # double 72.150000000000006
	.quad	0x40561851eb851eb8              # double 88.379999999999995
	.quad	0x405de47ae147ae14              # double 119.56999999999999
	.quad	0x402e8f5c28f5c28f              # double 15.279999999999999
	.quad	0x4043c51eb851eb85              # double 39.539999999999999
	.quad	0x405750a3d70a3d71              # double 93.260000000000005
	.quad	0x4061770a3d70a3d7              # double 139.72
	.quad	0x4027051eb851eb85              # double 11.51
	.quad	0x404adae147ae147b              # double 53.710000000000001
	.quad	0x4045cccccccccccd              # double 43.600000000000001
	.quad	0x4057c28f5c28f5c3              # double 95.040000000000006
	.quad	0x4046cccccccccccd              # double 45.600000000000001
	.quad	0x405388f5c28f5c29              # double 78.14
	.quad	0x400c8f5c28f5c28f              # double 3.5699999999999998
	.quad	0x403d35c28f5c28f6              # double 29.210000000000001
	.quad	0x405687ae147ae148              # double 90.120000000000005
	.quad	0x406101999999999a              # double 136.05000000000001
	.quad	0x4052c147ae147ae1              # double 75.019999999999996
	.quad	0x406101999999999a              # double 136.05000000000001
	.quad	0x404e5d70a3d70a3d              # double 60.729999999999997
	.quad	0x4059347ae147ae14              # double 100.81999999999999
	.quad	0x404b2ccccccccccd              # double 54.350000000000001
	.quad	0x4053047ae147ae14              # double 76.069999999999993
	.quad	0x4028d70a3d70a3d7              # double 12.42
	.quad	0x4042a51eb851eb85              # double 37.289999999999999
	.quad	0x402ff0a3d70a3d71              # double 15.970000000000001
	.quad	0x4045af5c28f5c28f              # double 43.369999999999997
	.quad	0x404f5c28f5c28f5c              # double 62.719999999999999
	.quad	0x405971eb851eb852              # double 101.78
	.quad	0x4050aa3d70a3d70a              # double 66.659999999999997
	.quad	0x40594b851eb851ec              # double 101.18000000000001
	.quad	0x403f2147ae147ae1              # double 31.129999999999999
	.quad	0x404feb851eb851ec              # double 63.840000000000003
	.quad	0x4030e66666666666              # double 16.899999999999999
	.quad	0x403efd70a3d70a3d              # double 30.989999999999998
	.quad	0x40403eb851eb851f              # double 32.490000000000002
	.quad	0x40475ae147ae147b              # double 46.710000000000001
	.quad	0x401ae147ae147ae1              # double 6.7199999999999998
	.quad	0x403847ae147ae148              # double 24.280000000000001
	.quad	0x4054528f5c28f5c3              # double 81.290000000000006
	.quad	0x4061323d70a3d70a              # double 137.56999999999999
	.quad	0x40273d70a3d70a3d              # double 11.619999999999999
	.quad	0x4043d9999999999a              # double 39.700000000000003
	.quad	0x4042a28f5c28f5c3              # double 37.270000000000003
	.quad	0x40540ccccccccccd              # double 80.200000000000002
	.quad	0x40433851eb851eb8              # double 38.439999999999998
	.quad	0x404b8b851eb851ec              # double 55.090000000000003
	.quad	0x403a3851eb851eb8              # double 26.219999999999999
	.quad	0x4047570a3d70a3d7              # double 46.68
	.quad	0x40520147ae147ae1              # double 72.019999999999996
	.quad	0x406008a3d70a3d71              # double 128.27000000000001
	.quad	0x4057647ae147ae14              # double 93.569999999999993
	.quad	0x4061a33333333333              # double 141.09999999999999
	.quad	0x4033f5c28f5c28f6              # double 19.960000000000001
	.quad	0x404a67ae147ae148              # double 52.810000000000002
	.quad	0x4057d28f5c28f5c3              # double 95.290000000000006
	.quad	0x4061966666666666              # double 140.69999999999999
	.quad	0x4054a851eb851eb8              # double 82.629999999999995
	.quad	0x405f0e147ae147ae              # double 124.22
	.quad	0x40357d70a3d70a3d              # double 21.489999999999998
	.quad	0x405048f5c28f5c29              # double 65.140000000000001
	.quad	0x4042c00000000000              # double 37.5
	.quad	0x405051eb851eb852              # double 65.280000000000001
	.quad	0x40422a3d70a3d70a              # double 36.329999999999998
	.quad	0x4044f0a3d70a3d71              # double 41.880000000000003
	.quad	0x4006666666666666              # double 2.7999999999999998
	.quad	0x4035e147ae147ae1              # double 21.879999999999999
	.quad	0x404aea3d70a3d70a              # double 53.829999999999998
	.quad	0x4056e9999999999a              # double 91.650000000000005
	.quad	0x40377ae147ae147b              # double 23.48
	.quad	0x4049fd70a3d70a3d              # double 51.979999999999997
	.quad	0x3fd0a3d70a3d70a4              # double 0.26000000000000001
	.quad	0x4032b0a3d70a3d71              # double 18.690000000000001
	.quad	0x40238f5c28f5c28f              # double 9.7799999999999993
	.quad	0x404307ae147ae148              # double 38.060000000000002
	.quad	0x404bc147ae147ae1              # double 55.509999999999998
	.quad	0x4057e28f5c28f5c3              # double 95.540000000000006
	.quad	0x403a1c28f5c28f5c              # double 26.109999999999999
	.quad	0x404dc00000000000              # double 59.5
	.quad	0x4050a7ae147ae148              # double 66.620000000000005
	.quad	0x405aaeb851eb851f              # double 106.73
	.quad	0x403d266666666666              # double 29.149999999999999
	.quad	0x405068f5c28f5c29              # double 65.640000000000001
	.quad	0x4056ef5c28f5c28f              # double 91.739999999999994
	.quad	0x406076b851eb851f              # double 131.71000000000001
	.quad	0x404608f5c28f5c29              # double 44.07
	.quad	0x40530d70a3d70a3d              # double 76.209999999999993
	.quad	0x4039fd70a3d70a3d              # double 25.989999999999998
	.quad	0x405207ae147ae148              # double 72.120000000000005
	.quad	0x404b3eb851eb851f              # double 54.490000000000002
	.quad	0x405cb3d70a3d70a4              # double 114.81
	.quad	0x4023b851eb851eb8              # double 9.8599999999999994
	.quad	0x4034e3d70a3d70a4              # double 20.890000000000001
	.quad	0x40586ae147ae147b              # double 97.670000000000001
	.quad	0x40638947ae147ae1              # double 156.28999999999999
	.quad	0x40495d70a3d70a3d              # double 50.729999999999997
	.quad	0x4058b7ae147ae148              # double 98.870000000000005
	.quad	0x4045800000000000              # double 43
	.quad	0x4051eeb851eb851f              # double 71.730000000000004
	.quad	0x404099999999999a              # double 33.200000000000003
	.quad	0x404f947ae147ae14              # double 63.159999999999997
	.quad	0x4058051eb851eb85              # double 96.079999999999998
	.quad	0x40603e147ae147ae              # double 129.94
	.quad	0x405478f5c28f5c29              # double 81.89
	.quad	0x405d128f5c28f5c3              # double 116.29000000000001
	.quad	0x40483d70a3d70a3d              # double 48.479999999999997
	.quad	0x4058466666666666              # double 97.099999999999994
	.quad	0x40553d70a3d70a3d              # double 84.959999999999993
	.quad	0x406030a3d70a3d71              # double 129.52000000000001
	.quad	0x403de3d70a3d70a4              # double 29.890000000000001
	.quad	0x40535b851eb851ec              # double 77.430000000000007
	.quad	0x40586d70a3d70a3d              # double 97.709999999999993
	.quad	0x4063d3d70a3d70a4              # double 158.62
	.quad	0x401f47ae147ae148              # double 7.8200000000000002
	.quad	0x403a11eb851eb852              # double 26.07
	.quad	0x4048000000000000              # double 48
	.quad	0x40528ae147ae147b              # double 74.170000000000001
	.quad	0x4036fae147ae147b              # double 22.98
	.quad	0x403c4a3d70a3d70a              # double 28.289999999999999
	.quad	0x401f1eb851eb851f              # double 7.7800000000000002
	.quad	0x403dcf5c28f5c28f              # double 29.809999999999999
	.quad	0x4055ec28f5c28f5c              # double 87.689999999999998
	.quad	0x4060ceb851eb851f              # double 134.46000000000001
	.quad	0x4050bd70a3d70a3d              # double 66.959999999999994
	.quad	0x405b9b851eb851ec              # double 110.43000000000001
	.quad	0x403da8f5c28f5c29              # double 29.66
	.quad	0x404d0ccccccccccd              # double 58.100000000000001
	.quad	0x404d947ae147ae14              # double 59.159999999999997
	.quad	0x4057a0a3d70a3d71              # double 94.510000000000005
	.quad	0x40238f5c28f5c28f              # double 9.7799999999999993
	.quad	0x404af47ae147ae14              # double 53.909999999999997
	.quad	0x4037428f5c28f5c3              # double 23.260000000000002
	.quad	0x40527e147ae147ae              # double 73.969999999999999
	.quad	0x4054100000000000              # double 80.25
	.quad	0x405bf3d70a3d70a4              # double 111.81
	.quad	0x4015f5c28f5c28f6              # double 5.4900000000000002
	.quad	0x403f000000000000              # double 31
	.quad	0x4049b9999999999a              # double 51.450000000000003
	.quad	0x40561147ae147ae1              # double 88.269999999999996
	.quad	0x403a28f5c28f5c29              # double 26.16
	.quad	0x404f2ccccccccccd              # double 62.350000000000001
	.quad	0x402ea8f5c28f5c29              # double 15.33
	.quad	0x4035b33333333333              # double 21.699999999999999
	.quad	0x4050070a3d70a3d7              # double 64.109999999999999
	.quad	0x4057966666666666              # double 94.349999999999994
	.quad	0x402b333333333333              # double 13.6
	.quad	0x404d466666666666              # double 58.549999999999997
	.quad	0x4058370a3d70a3d7              # double 96.859999999999999
	.quad	0x40647570a3d70a3d              # double 163.66999999999999
	.quad	0x404ab0a3d70a3d71              # double 53.380000000000003
	.quad	0x4059728f5c28f5c3              # double 101.79000000000001
	.quad	0x40520c28f5c28f5c              # double 72.189999999999998
	.quad	0x40607fae147ae148              # double 131.99000000000001
	.quad	0x4041a66666666666              # double 35.299999999999997
	.quad	0x4053b5c28f5c28f6              # double 78.840000000000003
	.quad	0x4041ca3d70a3d70a              # double 35.579999999999998
	.quad	0x4052d8f5c28f5c29              # double 75.39
	.quad	0x401528f5c28f5c29              # double 5.29
	.quad	0x403cd47ae147ae14              # double 28.829999999999998
	.quad	0x404a170a3d70a3d7              # double 52.18
	.quad	0x4056147ae147ae14              # double 88.319999999999993
	.quad	0x403d266666666666              # double 29.149999999999999
	.quad	0x404d3c28f5c28f5c              # double 58.469999999999999
	.quad	0x4051270a3d70a3d7              # double 68.609999999999999
	.quad	0x405dab851eb851ec              # double 118.68000000000001
	.quad	0x40220f5c28f5c28f              # double 9.0299999999999994
	.quad	0x4043828f5c28f5c3              # double 39.020000000000003
	.quad	0x404a828f5c28f5c3              # double 53.020000000000003
	.quad	0x4057947ae147ae14              # double 94.319999999999993
	.quad	0x4010c28f5c28f5c3              # double 4.1900000000000004
	.quad	0x403428f5c28f5c29              # double 20.16
	.quad	0x405591eb851eb852              # double 86.280000000000001
	.quad	0x406151999999999a              # double 138.55000000000001
	.quad	0x403c2e147ae147ae              # double 28.18
	.quad	0x405197ae147ae148              # double 70.370000000000005
	.quad	0x4053da3d70a3d70a              # double 79.409999999999997
	.quad	0x405bb33333333333              # double 110.8
	.quad	0x402e2e147ae147ae              # double 15.09
	.quad	0x40466a3d70a3d70a              # double 44.829999999999998
	.quad	0x4039d47ae147ae14              # double 25.829999999999998
	.quad	0x4052e7ae147ae148              # double 75.620000000000005
	.quad	0x40484a3d70a3d70a              # double 48.579999999999998
	.quad	0x4058833333333333              # double 98.049999999999997
	.quad	0x40564ccccccccccd              # double 89.200000000000002
	.quad	0x4063e947ae147ae1              # double 159.28999999999999
	.quad	0x4055accccccccccd              # double 86.700000000000002
	.quad	0x406188a3d70a3d71              # double 140.27000000000001
	.quad	0x40095c28f5c28f5c              # double 3.1699999999999999
	.quad	0x40446147ae147ae1              # double 40.759999999999998
	.quad	0x40582851eb851eb8              # double 96.629999999999995
	.quad	0x40631570a3d70a3d              # double 152.66999999999999
	.quad	0x4032ab851eb851ec              # double 18.670000000000002
	.quad	0x4047b851eb851eb8              # double 47.439999999999998
	.quad	0x4056647ae147ae14              # double 89.569999999999993
	.quad	0x4062e3851eb851ec              # double 151.11000000000001
	.quad	0x404d15c28f5c28f6              # double 58.170000000000002
	.quad	0x405bc8f5c28f5c29              # double 111.14
	.quad	0x4046f851eb851eb8              # double 45.939999999999998
	.quad	0x40552851eb851eb8              # double 84.629999999999995
	.quad	0x4054f8f5c28f5c29              # double 83.89
	.quad	0x405e251eb851eb85              # double 120.58
	.quad	0x4051c28f5c28f5c3              # double 71.040000000000006
	.quad	0x405d4e147ae147ae              # double 117.22
	.quad	0x4047bd70a3d70a3d              # double 47.479999999999997
	.quad	0x4055366666666666              # double 84.849999999999994
	.quad	0x40267ae147ae147b              # double 11.24
	.quad	0x4047e28f5c28f5c3              # double 47.770000000000003
	.quad	0x4033b33333333333              # double 19.699999999999999
	.quad	0x4045bd70a3d70a3d              # double 43.479999999999997
	.quad	0x404a6b851eb851ec              # double 52.840000000000003
	.quad	0x4053766666666666              # double 77.849999999999994
	.quad	0x4053ceb851eb851f              # double 79.230000000000003
	.quad	0x405b19999999999a              # double 108.40000000000001
	.quad	0x4053c33333333333              # double 79.049999999999997
	.quad	0x405e170a3d70a3d7              # double 120.36
	.quad	0x402a851eb851eb85              # double 13.26
	.quad	0x40401851eb851eb8              # double 32.189999999999998
	.quad	0x40496147ae147ae1              # double 50.759999999999998
	.quad	0x4055766666666666              # double 85.849999999999994
	.quad	0x4048ce147ae147ae              # double 49.609999999999999
	.quad	0x405569999999999a              # double 85.650000000000006
	.quad	0x402d0f5c28f5c28f              # double 14.529999999999999
	.quad	0x4044eccccccccccd              # double 41.850000000000001
	.quad	0x4051433333333333              # double 69.049999999999997
	.quad	0x405df5c28f5c28f6              # double 119.84
	.quad	0x401999999999999a              # double 6.4000000000000004
	.quad	0x40455eb851eb851f              # double 42.740000000000002
	.quad	0x40553b851eb851ec              # double 84.930000000000007
	.quad	0x405f73d70a3d70a4              # double 125.81
	.quad	0x4053366666666666              # double 76.849999999999994
	.quad	0x405ff70a3d70a3d7              # double 127.86
	.quad	0x404811eb851eb852              # double 48.140000000000001
	.quad	0x4053d7ae147ae148              # double 79.370000000000005
	.quad	0x40554851eb851eb8              # double 85.129999999999995
	.quad	0x4062e5c28f5c28f6              # double 151.18000000000001
	.quad	0x404c79999999999a              # double 56.950000000000003
	.quad	0x4057651eb851eb85              # double 93.579999999999998
	.quad	0x4054a9999999999a              # double 82.650000000000006
	.quad	0x40605570a3d70a3d              # double 130.66999999999999
	.quad	0x40234ccccccccccd              # double 9.6500000000000003
	.quad	0x4035c51eb851eb85              # double 21.77
	.quad	0x403559999999999a              # double 21.350000000000001
	.quad	0x4048ab851eb851ec              # double 49.340000000000003
	.quad	0x4036c7ae147ae148              # double 22.780000000000001
	.quad	0x4045828f5c28f5c3              # double 43.020000000000003
	.quad	0x4056d0a3d70a3d71              # double 91.260000000000005
	.quad	0x40618147ae147ae1              # double 140.03999999999999
	.quad	0x4052ba3d70a3d70a              # double 74.909999999999997
	.quad	0x405b00a3d70a3d71              # double 108.01000000000001
	.quad	0x405495c28f5c28f6              # double 82.340000000000003
	.quad	0x4061066666666666              # double 136.19999999999999
	.quad	0x4026a8f5c28f5c29              # double 11.33
	.quad	0x4044c00000000000              # double 41.5
	.quad	0x404f6147ae147ae1              # double 62.759999999999998
	.quad	0x405780a3d70a3d71              # double 94.010000000000005
	.quad	0x4034333333333333              # double 20.199999999999999
	.quad	0x40419eb851eb851f              # double 35.240000000000002
	.quad	0x4058547ae147ae14              # double 97.319999999999993
	.quad	0x40605b851eb851ec              # double 130.86000000000001
	.quad	0x4034f0a3d70a3d71              # double 20.940000000000001
	.quad	0x4040b9999999999a              # double 33.450000000000003
	.quad	0x4036e8f5c28f5c29              # double 22.91
	.quad	0x404b39999999999a              # double 54.450000000000003
	.quad	0x405563d70a3d70a4              # double 85.560000000000002
	.quad	0x40609ccccccccccd              # double 132.90000000000001
	.quad	0x4050ff5c28f5c28f              # double 67.989999999999995
	.quad	0x4058f5c28f5c28f6              # double 99.840000000000003
	.quad	0x4057df5c28f5c28f              # double 95.489999999999994
	.quad	0x406300f5c28f5c29              # double 152.03
	.quad	0x401499999999999a              # double 5.1500000000000004
	.quad	0x403f7ae147ae147b              # double 31.48
	.quad	0x4043d9999999999a              # double 39.700000000000003
	.quad	0x4051d70a3d70a3d7              # double 71.359999999999999
	.quad	0x40564f5c28f5c28f              # double 89.239999999999994
	.quad	0x406091eb851eb852              # double 132.56
	.quad	0x403ad47ae147ae14              # double 26.829999999999998
	.quad	0x4050500000000000              # double 65.25
	.quad	0x404af47ae147ae14              # double 53.909999999999997
	.quad	0x405500a3d70a3d71              # double 84.010000000000005
	.quad	0x40577e147ae147ae              # double 93.969999999999998
	.quad	0x4063723d70a3d70a              # double 155.56999999999999
	.quad	0x404e2a3d70a3d70a              # double 60.329999999999998
	.quad	0x405909999999999a              # double 100.15000000000001
	.quad	0x4056466666666666              # double 89.099999999999994
	.quad	0x4060166666666666              # double 128.69999999999999
	.quad	0x4042e3d70a3d70a4              # double 37.780000000000001
	.quad	0x404f07ae147ae148              # double 62.060000000000002
	.quad	0x40416b851eb851ec              # double 34.840000000000003
	.quad	0x40550b851eb851ec              # double 84.180000000000007
	.quad	0x40548d70a3d70a3d              # double 82.209999999999993
	.quad	0x4060e851eb851eb8              # double 135.25999999999999
	.quad	0x4034333333333333              # double 20.199999999999999
	.quad	0x403b428f5c28f5c3              # double 27.260000000000002
	.quad	0x40329eb851eb851f              # double 18.620000000000001
	.quad	0x4034028f5c28f5c3              # double 20.010000000000002
	.quad	0x404f5eb851eb851f              # double 62.740000000000002
	.quad	0x405ee3d70a3d70a4              # double 123.56
	.quad	0x40430a3d70a3d70a              # double 38.079999999999998
	.quad	0x4055233333333333              # double 84.549999999999997
	.quad	0x402647ae147ae148              # double 11.140000000000001
	.quad	0x403311eb851eb852              # double 19.07
	.quad	0x40569ccccccccccd              # double 90.450000000000002
	.quad	0x40626fae147ae148              # double 147.49000000000001
	.quad	0x400747ae147ae148              # double 2.9100000000000001
	.quad	0x403b59999999999a              # double 27.350000000000001
	.quad	0x404111eb851eb852              # double 34.140000000000001
	.quad	0x4056b851eb851eb8              # double 90.879999999999995
	.quad	0x403ba66666666666              # double 27.649999999999999
	.quad	0x404ea3d70a3d70a4              # double 61.280000000000001
	.quad	0x4050028f5c28f5c3              # double 64.040000000000006
	.quad	0x4058f3d70a3d70a4              # double 99.810000000000002
	.quad	0x40547eb851eb851f              # double 81.980000000000003
	.quad	0x406225c28f5c28f6              # double 145.18000000000001
	.quad	0x40469c28f5c28f5c              # double 45.219999999999999
	.quad	0x4057270a3d70a3d7              # double 92.609999999999999
	.quad	0x404c933333333333              # double 57.149999999999999
	.quad	0x4058ea3d70a3d70a              # double 99.659999999999996
	.quad	0x4027eb851eb851ec              # double 11.960000000000001
	.quad	0x403cae147ae147ae              # double 28.68
	.quad	0x403edc28f5c28f5c              # double 30.859999999999999
	.quad	0x404b6b851eb851ec              # double 54.840000000000003
	.quad	0x404b6a3d70a3d70a              # double 54.829999999999998
	.quad	0x405c50a3d70a3d71              # double 113.26000000000001
	.quad	0x40580851eb851eb8              # double 96.129999999999995
	.quad	0x406286b851eb851f              # double 148.21000000000001
	.quad	0x4025570a3d70a3d7              # double 10.67
	.quad	0x4048b9999999999a              # double 49.450000000000003
	.quad	0x4042266666666666              # double 36.299999999999997
	.quad	0x4050df5c28f5c28f              # double 67.489999999999995
	.quad	0x40513851eb851eb8              # double 68.879999999999995
	.quad	0x405d8d70a3d70a3d              # double 118.20999999999999
	.quad	0x4056d3d70a3d70a4              # double 91.310000000000002
	.quad	0x40610fae147ae148              # double 136.49000000000001
	.quad	0x404347ae147ae148              # double 38.560000000000002
	.quad	0x4050b66666666666              # double 66.849999999999994
	.quad	0x4034d9999999999a              # double 20.850000000000001
	.quad	0x404f15c28f5c28f6              # double 62.170000000000002
	.quad	0x404d1d70a3d70a3d              # double 58.229999999999997
	.quad	0x4052c851eb851eb8              # double 75.129999999999995
	.quad	0x404f4a3d70a3d70a              # double 62.579999999999998
	.quad	0x405ddb851eb851ec              # double 119.43000000000001
	.quad	0x401ec28f5c28f5c3              # double 7.6900000000000003
	.quad	0x404251eb851eb852              # double 36.640000000000001
	.quad	0x402f9eb851eb851f              # double 15.81
	.quad	0x4049200000000000              # double 50.25
	.quad	0x405569999999999a              # double 85.650000000000006
	.quad	0x40615d1eb851eb85              # double 138.91
	.quad	0x40368f5c28f5c28f              # double 22.559999999999999
	.quad	0x404cbae147ae147b              # double 57.460000000000001
	.quad	0x4037b33333333333              # double 23.699999999999999
	.quad	0x4046970a3d70a3d7              # double 45.18
	.quad	0x4051270a3d70a3d7              # double 68.609999999999999
	.quad	0x405a933333333333              # double 106.3
	.quad	0x4020eb851eb851ec              # double 8.4600000000000008
	.quad	0x402bc7ae147ae148              # double 13.890000000000001
	.quad	0x4053951eb851eb85              # double 78.329999999999998
	.quad	0x405e1f5c28f5c28f              # double 120.48999999999999
	.quad	0x4050000000000000              # double 64
	.quad	0x40597f5c28f5c28f              # double 101.98999999999999
	.quad	0x4040fae147ae147b              # double 33.960000000000001
	.quad	0x4054a8f5c28f5c29              # double 82.64
	.quad	0x403119999999999a              # double 17.100000000000001
	.quad	0x4042b5c28f5c28f6              # double 37.420000000000002
	.quad	0x40223d70a3d70a3d              # double 9.1199999999999992
	.quad	0x404b9ae147ae147b              # double 55.210000000000001
	.quad	0x405639999999999a              # double 88.900000000000006
	.quad	0x406119eb851eb852              # double 136.81
	.quad	0x40113d70a3d70a3d              # double 4.3099999999999996
	.quad	0x4035d47ae147ae14              # double 21.829999999999998
	.quad	0x3fd147ae147ae148              # double 0.27000000000000002
	.quad	0x4046200000000000              # double 44.25
	.quad	0x40408147ae147ae1              # double 33.009999999999998
	.quad	0x404fa51eb851eb85              # double 63.289999999999999
	.quad	0x4056b1eb851eb852              # double 90.780000000000001
	.quad	0x4062da8f5c28f5c3              # double 150.83000000000001
	.quad	0x403dc00000000000              # double 29.75
	.quad	0x404c30a3d70a3d71              # double 56.380000000000003
	.quad	0x4044ea3d70a3d70a              # double 41.829999999999998
	.quad	0x405369999999999a              # double 77.650000000000006
	.quad	0x4058d47ae147ae14              # double 99.319999999999993
	.quad	0x40625f5c28f5c28f              # double 146.97999999999999
	.quad	0x4034ab851eb851ec              # double 20.670000000000002
	.quad	0x4044a28f5c28f5c3              # double 41.270000000000003
	.quad	0x403de147ae147ae1              # double 29.879999999999999
	.quad	0x4050351eb851eb85              # double 64.829999999999998
	.quad	0x404ef47ae147ae14              # double 61.909999999999997
	.quad	0x405709999999999a              # double 92.150000000000005
	.quad	0x40406ccccccccccd              # double 32.850000000000001
	.quad	0x4051200000000000              # double 68.5
	.quad	0x4030851eb851eb85              # double 16.52
	.quad	0x4050f1eb851eb852              # double 67.780000000000001
	.quad	0x4047fc28f5c28f5c              # double 47.969999999999999
	.quad	0x405313d70a3d70a4              # double 76.310000000000002
	.quad	0x4058928f5c28f5c3              # double 98.290000000000006
	.quad	0x406117ae147ae148              # double 136.74000000000001
	.quad	0x404ce3d70a3d70a4              # double 57.780000000000001
	.quad	0x4056370a3d70a3d7              # double 88.859999999999999
	.quad	0x401a47ae147ae148              # double 6.5700000000000003
	.quad	0x4044c00000000000              # double 41.5
	.quad	0x404cd5c28f5c28f6              # double 57.670000000000002
	.quad	0x40579f5c28f5c28f              # double 94.489999999999994
	.quad	0x40542c28f5c28f5c              # double 80.689999999999998
	.quad	0x4062351eb851eb85              # double 145.66
	.quad	0x404f7ae147ae147b              # double 62.960000000000001
	.quad	0x4056128f5c28f5c3              # double 88.290000000000006
	.quad	0x4038147ae147ae14              # double 24.079999999999998
	.quad	0x404d428f5c28f5c3              # double 58.520000000000003
	.quad	0x4040828f5c28f5c3              # double 33.020000000000003
	.quad	0x404ef851eb851eb8              # double 61.939999999999998
	.quad	0x404fdd70a3d70a3d              # double 63.729999999999997
	.quad	0x405b370a3d70a3d7              # double 108.86
	.quad	0x4049000000000000              # double 50
	.quad	0x4056e33333333333              # double 91.549999999999997
	.quad	0x40452147ae147ae1              # double 42.259999999999998
	.quad	0x4051f147ae147ae1              # double 71.769999999999996
	.quad	0x403a47ae147ae148              # double 26.280000000000001
	.quad	0x40475851eb851eb8              # double 46.689999999999998
	.quad	0x4052f51eb851eb85              # double 75.829999999999998
	.quad	0x405b41eb851eb852              # double 109.03
	.quad	0x40404a3d70a3d70a              # double 32.579999999999998
	.quad	0x405075c28f5c28f6              # double 65.840000000000003
	.quad	0x40525ccccccccccd              # double 73.450000000000002
	.quad	0x405f4851eb851eb8              # double 125.13
	.quad	0x40313851eb851eb8              # double 17.219999999999999
	.quad	0x404e1851eb851eb8              # double 60.189999999999998
	.quad	0x3ff9eb851eb851ec              # double 1.6200000000000001
	.quad	0x4046266666666666              # double 44.299999999999997
	.quad	0x4040947ae147ae14              # double 33.159999999999997
	.quad	0x40501b851eb851ec              # double 64.430000000000007
	.quad	0x404c90a3d70a3d71              # double 57.130000000000003
	.quad	0x4055cf5c28f5c28f              # double 87.239999999999994
	.quad	0x3fd147ae147ae148              # double 0.27000000000000002
	.quad	0x4036bae147ae147b              # double 22.73
	.quad	0x40526c28f5c28f5c              # double 73.689999999999998
	.quad	0x405e20a3d70a3d71              # double 120.51000000000001
	.quad	0x404c428f5c28f5c3              # double 56.520000000000003
	.quad	0x405ac147ae147ae1              # double 107.02
	.quad	0x4058933333333333              # double 98.299999999999997
	.quad	0x406470a3d70a3d71              # double 163.52000000000001
	.quad	0x4050cae147ae147b              # double 67.170000000000002
	.quad	0x4058b33333333333              # double 98.799999999999997
	.quad	0x4058b51eb851eb85              # double 98.829999999999998
	.quad	0x4062b00000000000              # double 149.5
	.quad	0x4044d0a3d70a3d71              # double 41.630000000000003
	.quad	0x405328f5c28f5c29              # double 76.64
	.quad	0x4019ae147ae147ae              # double 6.4199999999999999
	.quad	0x40405c28f5c28f5c              # double 32.719999999999999
	.quad	0x401728f5c28f5c29              # double 5.79
	.quad	0x40374ccccccccccd              # double 23.300000000000001
	.quad	0x403f75c28f5c28f6              # double 31.460000000000001
	.quad	0x405087ae147ae148              # double 66.120000000000005
	.quad	0x405391eb851eb852              # double 78.280000000000001
	.quad	0x405fcb851eb851ec              # double 127.18000000000001
	.quad	0x4055f851eb851eb8              # double 87.879999999999995
	.quad	0x4060ce147ae147ae              # double 134.44
	.quad	0x4052ec28f5c28f5c              # double 75.689999999999998
	.quad	0x40629e6666666666              # double 148.94999999999999
	.quad	0x40247ae147ae147b              # double 10.24
	.quad	0x4040d9999999999a              # double 33.700000000000003
	.quad	0x40551b851eb851ec              # double 84.430000000000007
	.quad	0x40600ccccccccccd              # double 128.40000000000001
	.quad	0x40311eb851eb851f              # double 17.120000000000001
	.quad	0x404895c28f5c28f6              # double 49.170000000000002
	.quad	0x40510147ae147ae1              # double 68.019999999999996
	.quad	0x405e31eb851eb852              # double 120.78
	.quad	0x4030e8f5c28f5c29              # double 16.91
	.quad	0x404f0147ae147ae1              # double 62.009999999999998
	.quad	0x405049999999999a              # double 65.150000000000006
	.quad	0x405bfc28f5c28f5c              # double 111.94
	.quad	0x4049fae147ae147b              # double 51.960000000000001
	.quad	0x4054b8f5c28f5c29              # double 82.89
	.quad	0x40531147ae147ae1              # double 76.269999999999996
	.quad	0x405cd7ae147ae148              # double 115.37
	.quad	0x40518f5c28f5c28f              # double 70.239999999999995
	.quad	0x405a01eb851eb852              # double 104.03
	.quad	0x4055c851eb851eb8              # double 87.129999999999995
	.quad	0x4060ddc28f5c28f6              # double 134.93000000000001
	.quad	0x403e666666666666              # double 30.399999999999999
	.quad	0x404afd70a3d70a3d              # double 53.979999999999997
	.quad	0x401d147ae147ae14              # double 7.2699999999999996
	.quad	0x4041fc28f5c28f5c              # double 35.969999999999999
	.quad	0x3fe8000000000000              # double 0.75
	.quad	0x403235c28f5c28f6              # double 18.210000000000001
	.quad	0x3ffc28f5c28f5c29              # double 1.76
	.quad	0x40373ae147ae147b              # double 23.23
	.quad	0x403ff851eb851eb8              # double 31.969999999999999
	.quad	0x404eb0a3d70a3d71              # double 61.380000000000003
	.quad	0x40436a3d70a3d70a              # double 38.829999999999998
	.quad	0x40543b851eb851ec              # double 80.930000000000007
	.quad	0x4050a9999999999a              # double 66.650000000000006
	.quad	0x405ede147ae147ae              # double 123.47
	.quad	0x4010b851eb851eb8              # double 4.1799999999999997
	.quad	0x403ec28f5c28f5c3              # double 30.760000000000002
	.quad	0x4044f70a3d70a3d7              # double 41.93
	.quad	0x4051451eb851eb85              # double 69.079999999999998
	.quad	0x40473c28f5c28f5c              # double 46.469999999999999
	.quad	0x40568147ae147ae1              # double 90.019999999999996
	.quad	0x4054c8f5c28f5c29              # double 83.14
	.quad	0x4061c4cccccccccd              # double 142.15000000000001
	.quad	0x404c6b851eb851ec              # double 56.840000000000003
	.quad	0x4057300000000000              # double 92.75
	.quad	0x40278f5c28f5c28f              # double 11.779999999999999
	.quad	0x4046d33333333333              # double 45.649999999999999
	.quad	0x40512ccccccccccd              # double 68.700000000000003
	.quad	0x405b5851eb851eb8              # double 109.38
	.quad	0x4058bae147ae147b              # double 98.920000000000001
	.quad	0x4063bd1eb851eb85              # double 157.91
	.quad	0x40464a3d70a3d70a              # double 44.579999999999998
	.quad	0x4052bb851eb851ec              # double 74.930000000000007
	.quad	0x4045f33333333333              # double 43.899999999999999
	.quad	0x4055847ae147ae14              # double 86.069999999999993
	.quad	0x4031a3d70a3d70a4              # double 17.640000000000001
	.quad	0x404afd70a3d70a3d              # double 53.979999999999997
	.quad	0x401d0a3d70a3d70a              # double 7.2599999999999998
	.quad	0x4042eb851eb851ec              # double 37.840000000000003
	.quad	0x403a1eb851eb851f              # double 26.120000000000001
	.quad	0x404851eb851eb852              # double 48.640000000000001
	.quad	0x4055bae147ae147b              # double 86.920000000000001
	.quad	0x405c2c28f5c28f5c              # double 112.69
	.quad	0x40539147ae147ae1              # double 78.269999999999996
	.quad	0x4060ad1eb851eb85              # double 133.41
	.quad	0x404e79999999999a              # double 60.950000000000003
	.quad	0x4056bae147ae147b              # double 90.920000000000001
	.quad	0x4054feb851eb851f              # double 83.980000000000003
	.quad	0x4060e51eb851eb85              # double 135.16
	.quad	0x4026851eb851eb85              # double 11.26
	.quad	0x4046c7ae147ae148              # double 45.560000000000002
	.quad	0x40553d70a3d70a3d              # double 84.959999999999993
	.quad	0x406178a3d70a3d71              # double 139.77000000000001
	.quad	0x404e051eb851eb85              # double 60.039999999999999
	.quad	0x40573ccccccccccd              # double 92.950000000000002
	.quad	0x4055628f5c28f5c3              # double 85.540000000000006
	.quad	0x405d1851eb851eb8              # double 116.38
	.quad	0x4052a0a3d70a3d71              # double 74.510000000000005
	.quad	0x405e0e147ae147ae              # double 120.22
	.quad	0x4042f5c28f5c28f6              # double 37.920000000000002
	.quad	0x40546a3d70a3d70a              # double 81.659999999999997
	.quad	0x4051b7ae147ae148              # double 70.870000000000005
	.quad	0x4059e7ae147ae148              # double 103.62
	.quad	0x403d547ae147ae14              # double 29.329999999999998
	.quad	0x404c23d70a3d70a4              # double 56.280000000000001
	.quad	0x40250a3d70a3d70a              # double 10.52
	.quad	0x4049f47ae147ae14              # double 51.909999999999997
	.quad	0x404b4ccccccccccd              # double 54.600000000000001
	.quad	0x40554ae147ae147b              # double 85.170000000000001
	.quad	0x404a30a3d70a3d71              # double 52.380000000000003
	.quad	0x4053a1eb851eb852              # double 78.530000000000001
	.quad	0x4042266666666666              # double 36.299999999999997
	.quad	0x404e6e147ae147ae              # double 60.859999999999999
	.quad	0x405690a3d70a3d71              # double 90.260000000000005
	.quad	0x40610e6666666666              # double 136.44999999999999
	.quad	0x405293d70a3d70a4              # double 74.310000000000002
	.quad	0x405e57ae147ae148              # double 121.37
	.quad	0x4050fe147ae147ae              # double 67.969999999999999
	.quad	0x405a933333333333              # double 106.3
	.quad	0x40549147ae147ae1              # double 82.269999999999996
	.quad	0x405fa851eb851eb8              # double 126.63
	.quad	0x4044a00000000000              # double 41.25
	.quad	0x405163d70a3d70a4              # double 69.560000000000002
	.quad	0x4001c28f5c28f5c3              # double 2.2200000000000002
	.quad	0x403863d70a3d70a4              # double 24.390000000000001
	.quad	0x403f0ccccccccccd              # double 31.050000000000001
	.quad	0x404d9eb851eb851f              # double 59.240000000000002
	.quad	0x4036547ae147ae14              # double 22.329999999999998
	.quad	0x4050347ae147ae14              # double 64.819999999999993
	.quad	0x404811eb851eb852              # double 48.140000000000001
	.quad	0x405988f5c28f5c29              # double 102.14
	.quad	0x404b43d70a3d70a4              # double 54.530000000000001
	.quad	0x4055b9999999999a              # double 86.900000000000006
	.quad	0x4039e8f5c28f5c29              # double 25.91
	.quad	0x404ea147ae147ae1              # double 61.259999999999998
	.quad	0x40423ae147ae147b              # double 36.460000000000001
	.quad	0x40512ccccccccccd              # double 68.700000000000003
	.quad	0x405400a3d70a3d71              # double 80.010000000000005
	.quad	0x40607eb851eb851f              # double 131.96000000000001
	.quad	0x404c91eb851eb852              # double 57.140000000000001
	.quad	0x40532b851eb851ec              # double 76.680000000000007
	.quad	0x404e7851eb851eb8              # double 60.939999999999998
	.quad	0x4057770a3d70a3d7              # double 93.859999999999999
	.quad	0x4054366666666666              # double 80.849999999999994
	.quad	0x4060e428f5c28f5c              # double 135.13
	.quad	0x4056466666666666              # double 89.099999999999994
	.quad	0x4060651eb851eb85              # double 131.16
	.quad	0x4055d00000000000              # double 87.25
	.quad	0x4061675c28f5c28f              # double 139.22999999999999
	.quad	0x405698f5c28f5c29              # double 90.39
	.quad	0x40619947ae147ae1              # double 140.78999999999999
	.quad	0x403fa147ae147ae1              # double 31.629999999999999
	.quad	0x40520a3d70a3d70a              # double 72.159999999999997
	.quad	0x4053ae147ae147ae              # double 78.719999999999999
	.quad	0x4061100000000000              # double 136.5
	.quad	0x40384a3d70a3d70a              # double 24.289999999999999
	.quad	0x40510eb851eb851f              # double 68.230000000000004
	.quad	0x4055600000000000              # double 85.5
	.quad	0x4060afae147ae148              # double 133.49000000000001
	.quad	0x40417851eb851eb8              # double 34.939999999999998
	.quad	0x4051b33333333333              # double 70.799999999999997
	.quad	0x4054f51eb851eb85              # double 83.829999999999998
	.quad	0x405faeb851eb851f              # double 126.73
	.quad	0x403d9eb851eb851f              # double 29.620000000000001
	.quad	0x40535f5c28f5c28f              # double 77.489999999999994
	.quad	0x4048d70a3d70a3d7              # double 49.68
	.quad	0x405805c28f5c28f6              # double 96.090000000000003
	.quad	0x4057033333333333              # double 92.049999999999997
	.quad	0x4061f147ae147ae1              # double 143.53999999999999
	.quad	0x40563a3d70a3d70a              # double 88.909999999999997
	.quad	0x406278f5c28f5c29              # double 147.78
	.quad	0x4054966666666666              # double 82.349999999999994
	.quad	0x405ea3d70a3d70a4              # double 122.56
	.quad	0x40502b851eb851ec              # double 64.680000000000007
	.quad	0x405aeb851eb851ec              # double 107.68000000000001
	.quad	0x404f87ae147ae148              # double 63.060000000000002
	.quad	0x405bc70a3d70a3d7              # double 111.11
	.quad	0x405725c28f5c28f6              # double 92.590000000000003
	.quad	0x4062b9999999999a              # double 149.80000000000001
	.quad	0x403870a3d70a3d71              # double 24.440000000000001
	.quad	0x4045dc28f5c28f5c              # double 43.719999999999999
	.quad	0x4058733333333333              # double 97.799999999999997
	.quad	0x406478f5c28f5c29              # double 163.78
	.quad	0x4044e3d70a3d70a4              # double 41.780000000000001
	.quad	0x4057128f5c28f5c3              # double 92.290000000000006
	.quad	0x4005c28f5c28f5c3              # double 2.7200000000000002
	.quad	0x403f1eb851eb851f              # double 31.120000000000001
	.quad	0x404a747ae147ae14              # double 52.909999999999997
	.quad	0x405840a3d70a3d71              # double 97.010000000000005
	.quad	0x40560c28f5c28f5c              # double 88.189999999999998
	.quad	0x406186147ae147ae              # double 140.19
	.quad	0x4037fae147ae147b              # double 23.98
	.quad	0x40516b851eb851ec              # double 69.680000000000007
	.quad	0x404ba51eb851eb85              # double 55.289999999999999
	.quad	0x4056628f5c28f5c3              # double 89.540000000000006
	.quad	0x404a83d70a3d70a4              # double 53.030000000000001
	.quad	0x405548f5c28f5c29              # double 85.14
	.quad	0x40377851eb851eb8              # double 23.469999999999999
	.quad	0x40533b851eb851ec              # double 76.930000000000007
	.quad	0x40528eb851eb851f              # double 74.230000000000003
	.quad	0x405c70a3d70a3d71              # double 113.76000000000001
	.quad	0x4056351eb851eb85              # double 88.829999999999998
	.quad	0x405ee147ae147ae1              # double 123.52
	.quad	0x4044e3d70a3d70a4              # double 41.780000000000001
	.quad	0x4052f66666666666              # double 75.849999999999994
	.quad	0x404648f5c28f5c29              # double 44.57
	.quad	0x405651eb851eb852              # double 89.280000000000001
	.quad	0x4002cccccccccccd              # double 2.3500000000000001
	.quad	0x4041feb851eb851f              # double 35.990000000000002
	.quad	0x40530851eb851eb8              # double 76.129999999999995
	.quad	0x405a5c28f5c28f5c              # double 105.44
	.quad	0x40552d70a3d70a3d              # double 84.709999999999993
	.quad	0x4060c947ae147ae1              # double 134.28999999999999
	.quad	0x402519999999999a              # double 10.550000000000001
	.quad	0x403b5c28f5c28f5c              # double 27.359999999999999
	.quad	0x4058dccccccccccd              # double 99.450000000000002
	.quad	0x4063528f5c28f5c3              # double 154.58000000000001
	.quad	0x40188f5c28f5c28f              # double 6.1399999999999997
	.quad	0x4045beb851eb851f              # double 43.490000000000002
	.quad	0x404fd9999999999a              # double 63.700000000000003
	.quad	0x4059f70a3d70a3d7              # double 103.86
	.quad	0x403270a3d70a3d71              # double 18.440000000000001
	.quad	0x404b051eb851eb85              # double 54.039999999999999
	.quad	0x3ffdeb851eb851ec              # double 1.8700000000000001
	.quad	0x403f70a3d70a3d71              # double 31.440000000000001
	.quad	0x40368ccccccccccd              # double 22.550000000000001
	.quad	0x404fbc28f5c28f5c              # double 63.469999999999999
	.quad	0x4054970a3d70a3d7              # double 82.359999999999999
	.quad	0x405e2851eb851eb8              # double 120.63
	.quad	0x4054b5c28f5c28f6              # double 82.840000000000003
	.quad	0x405f1e147ae147ae              # double 124.47
	.quad	0x402c3d70a3d70a3d              # double 14.119999999999999
	.quad	0x4047a00000000000              # double 47.25
	.quad	0x4054e0a3d70a3d71              # double 83.510000000000005
	.quad	0x4061d947ae147ae1              # double 142.78999999999999
	.quad	0x4058228f5c28f5c3              # double 96.540000000000006
	.quad	0x40602d70a3d70a3d              # double 129.41999999999999
	.quad	0x4010000000000000              # double 4
	.quad	0x40391eb851eb851f              # double 25.120000000000001
	.quad	0x402899999999999a              # double 12.300000000000001
	.quad	0x4044f851eb851eb8              # double 41.939999999999998
	.quad	0x404e35c28f5c28f6              # double 60.420000000000002
	.quad	0x4058c0a3d70a3d71              # double 99.010000000000005
	.quad	0x4048d5c28f5c28f6              # double 49.670000000000002
	.quad	0x405701eb851eb852              # double 92.030000000000001
	.quad	0x40303851eb851eb8              # double 16.219999999999999
	.quad	0x404ae51eb851eb85              # double 53.789999999999999
	.quad	0x4052aae147ae147b              # double 74.670000000000001
	.quad	0x40608e6666666666              # double 132.44999999999999
	.quad	0x4027c7ae147ae148              # double 11.890000000000001
	.quad	0x403c7851eb851eb8              # double 28.469999999999999
	.quad	0x40531ccccccccccd              # double 76.450000000000002
	.quad	0x405ffc28f5c28f5c              # double 127.94
	.quad	0x404abd70a3d70a3d              # double 53.479999999999997
	.quad	0x4055a8f5c28f5c29              # double 86.64
	.quad	0x405108f5c28f5c29              # double 68.140000000000001
	.quad	0x405c1d70a3d70a3d              # double 112.45999999999999
	.quad	0x405563d70a3d70a4              # double 85.560000000000002
	.quad	0x406149999999999a              # double 138.30000000000001
	.quad	0x4049a00000000000              # double 51.25
	.quad	0x4055f33333333333              # double 87.799999999999997
	.quad	0x4040fae147ae147b              # double 33.960000000000001
	.quad	0x4049a147ae147ae1              # double 51.259999999999998
	.quad	0x4049dd70a3d70a3d              # double 51.729999999999997
	.quad	0x4054166666666666              # double 80.349999999999994
	.quad	0x4024ae147ae147ae              # double 10.34
	.quad	0x404390a3d70a3d71              # double 39.130000000000003
	.quad	0x4050866666666666              # double 66.099999999999994
	.quad	0x405ce51eb851eb85              # double 115.58
	.quad	0x40462e147ae147ae              # double 44.359999999999999
	.quad	0x405450a3d70a3d71              # double 81.260000000000005
	.quad	0x4012a3d70a3d70a4              # double 4.6600000000000001
	.quad	0x4047deb851eb851f              # double 47.740000000000002
	.quad	0x40562147ae147ae1              # double 88.519999999999996
	.quad	0x4060c3851eb851ec              # double 134.11000000000001
	.quad	0x402a333333333333              # double 13.1
	.quad	0x40455851eb851eb8              # double 42.689999999999998
	.quad	0x40225c28f5c28f5c              # double 9.1799999999999997
	.quad	0x403ef5c28f5c28f6              # double 30.960000000000001
	.quad	0x4033051eb851eb85              # double 19.02
	.quad	0x4044cb851eb851ec              # double 41.590000000000003
	.quad	0x4053c66666666666              # double 79.099999999999994
	.quad	0x406029eb851eb852              # double 129.31
	.quad	0x403abae147ae147b              # double 26.73
	.quad	0x4046147ae147ae14              # double 44.159999999999997
	.quad	0x405155c28f5c28f6              # double 69.340000000000003
	.quad	0x405d1c28f5c28f5c              # double 116.44
	.quad	0x404119999999999a              # double 34.200000000000003
	.quad	0x4053670a3d70a3d7              # double 77.609999999999999
	.quad	0x4023eb851eb851ec              # double 9.9600000000000008
	.quad	0x40444a3d70a3d70a              # double 40.579999999999998
	.quad	0x4051028f5c28f5c3              # double 68.040000000000006
	.quad	0x405d6e147ae147ae              # double 117.72
	.quad	0x4056100000000000              # double 88.25
	.quad	0x40616570a3d70a3d              # double 139.16999999999999
	.quad	0x404f35c28f5c28f6              # double 62.420000000000002
	.quad	0x40598ccccccccccd              # double 102.2
	.quad	0x3ff3333333333333              # double 1.2
	.quad	0x4037028f5c28f5c3              # double 23.010000000000002
	.quad	0x4050eeb851eb851f              # double 67.730000000000004
	.quad	0x405b5ae147ae147b              # double 109.42
	.quad	0x3fcd70a3d70a3d71              # double 0.23000000000000001
	.quad	0x4030b5c28f5c28f6              # double 16.710000000000001
	.quad	0x403d9eb851eb851f              # double 29.620000000000001
	.quad	0x404f95c28f5c28f6              # double 63.170000000000002
	.quad	0x4058066666666666              # double 96.099999999999994
	.quad	0x40611947ae147ae1              # double 136.78999999999999
	.quad	0x3fed70a3d70a3d71              # double 0.92000000000000004
	.quad	0x403ac28f5c28f5c3              # double 26.760000000000002
	.quad	0x4048000000000000              # double 48
	.quad	0x4055800000000000              # double 86
	.quad	0x40556f5c28f5c28f              # double 85.739999999999994
	.quad	0x4062570a3d70a3d7              # double 146.72
	.quad	0x4046851eb851eb85              # double 45.039999999999999
	.quad	0x4054d33333333333              # double 83.299999999999997
	.quad	0x40492e147ae147ae              # double 50.359999999999999
	.quad	0x4054dc28f5c28f5c              # double 83.439999999999998
	.quad	0x4046851eb851eb85              # double 45.039999999999999
	.quad	0x40535f5c28f5c28f              # double 77.489999999999994
	.quad	0x4022d1eb851eb852              # double 9.4100000000000001
	.quad	0x404688f5c28f5c29              # double 45.07
	.quad	0x405858f5c28f5c29              # double 97.39
	.quad	0x40618147ae147ae1              # double 140.03999999999999
	.quad	0x4058ef5c28f5c28f              # double 99.739999999999994
	.quad	0x40624c7ae147ae14              # double 146.38999999999999
	.quad	0x4056433333333333              # double 89.049999999999997
	.quad	0x405ef00000000000              # double 123.75
	.quad	0x402551eb851eb852              # double 10.66
	.quad	0x4041aa3d70a3d70a              # double 35.329999999999998
	.quad	0x4051e7ae147ae148              # double 71.620000000000005
	.quad	0x405a3c28f5c28f5c              # double 104.94
	.quad	0x40388f5c28f5c28f              # double 24.559999999999999
	.quad	0x404f600000000000              # double 62.75
	.quad	0x4057d51eb851eb85              # double 95.329999999999998
	.quad	0x4061d0a3d70a3d71              # double 142.52000000000001
	.quad	0x4042ce147ae147ae              # double 37.609999999999999
	.quad	0x404edeb851eb851f              # double 61.740000000000002
	.quad	0x4046ee147ae147ae              # double 45.859999999999999
	.quad	0x405271eb851eb852              # double 73.780000000000001
	.quad	0x4050f70a3d70a3d7              # double 67.859999999999999
	.quad	0x405a2f5c28f5c28f              # double 104.73999999999999
	.quad	0x40376147ae147ae1              # double 23.379999999999999
	.quad	0x4050c33333333333              # double 67.049999999999997
	.quad	0x4047851eb851eb85              # double 47.039999999999999
	.quad	0x4055cc28f5c28f5c              # double 87.189999999999998
	.quad	0x40195c28f5c28f5c              # double 6.3399999999999999
	.quad	0x403cd1eb851eb852              # double 28.82
	.quad	0x40526eb851eb851f              # double 73.730000000000003
	.quad	0x405e266666666666              # double 120.59999999999999
	.quad	0x40545e147ae147ae              # double 81.469999999999999
	.quad	0x40600f0a3d70a3d7              # double 128.47
	.quad	0x403a851eb851eb85              # double 26.52
	.quad	0x404a91eb851eb852              # double 53.140000000000001
	.quad	0x40043d70a3d70a3d              # double 2.5299999999999998
	.quad	0x403451eb851eb852              # double 20.32
	.quad	0x403cd70a3d70a3d7              # double 28.84
	.quad	0x40496b851eb851ec              # double 50.840000000000003
	.quad	0x3fe851eb851eb852              # double 0.76000000000000001
	.quad	0x4044e66666666666              # double 41.799999999999997
	.quad	0x4042a51eb851eb85              # double 37.289999999999999
	.quad	0x404faa3d70a3d70a              # double 63.329999999999998
	.quad	0x4036ab851eb851ec              # double 22.670000000000002
	.quad	0x4050951eb851eb85              # double 66.329999999999998
	.quad	0x4043466666666666              # double 38.549999999999997
	.quad	0x404b23d70a3d70a4              # double 54.280000000000001
	.quad	0x404ddd70a3d70a3d              # double 59.729999999999997
	.quad	0x405895c28f5c28f6              # double 98.340000000000003
	.quad	0x403fbd70a3d70a3d              # double 31.739999999999998
	.quad	0x404faf5c28f5c28f              # double 63.369999999999997
	.quad	0x404df0a3d70a3d71              # double 59.880000000000003
	.quad	0x405c5147ae147ae1              # double 113.27
	.quad	0x4049051eb851eb85              # double 50.039999999999999
	.quad	0x40547147ae147ae1              # double 81.769999999999996
	.quad	0x4049fae147ae147b              # double 51.960000000000001
	.quad	0x4055a28f5c28f5c3              # double 86.540000000000006
	.quad	0x3feb333333333333              # double 0.84999999999999998
	.quad	0x400ccccccccccccd              # double 3.6000000000000001
	.quad	0x40556851eb851eb8              # double 85.629999999999995
	.quad	0x40620ae147ae147b              # double 144.34
	.quad	0x4058accccccccccd              # double 98.700000000000002
	.quad	0x406205c28f5c28f6              # double 144.18000000000001
	.quad	0x40532d70a3d70a3d              # double 76.709999999999993
	.quad	0x405e70a3d70a3d71              # double 121.76000000000001
	.quad	0x3fe1eb851eb851ec              # double 0.56000000000000005
	.quad	0x403707ae147ae148              # double 23.030000000000001
	.quad	0x4046c00000000000              # double 45.5
	.quad	0x4054a147ae147ae1              # double 82.519999999999996
	.quad	0x4046d70a3d70a3d7              # double 45.68
	.quad	0x40563eb851eb851f              # double 88.980000000000003
	.quad	0x40556ccccccccccd              # double 85.700000000000002
	.quad	0x4060123d70a3d70a              # double 128.56999999999999
	.quad	0x40507ae147ae147b              # double 65.920000000000002
	.quad	0x405ec28f5c28f5c3              # double 123.04000000000001
	.quad	0x404263d70a3d70a4              # double 36.780000000000001
	.quad	0x4052328f5c28f5c3              # double 72.790000000000006
	.quad	0x4058ef5c28f5c28f              # double 99.739999999999994
	.quad	0x4062880000000000              # double 148.25
	.quad	0x403ccccccccccccd              # double 28.800000000000001
	.quad	0x40484f5c28f5c28f              # double 48.619999999999997
	.quad	0x40542b851eb851ec              # double 80.680000000000007
	.quad	0x4060f0a3d70a3d71              # double 135.52000000000001
	.quad	0x4054400000000000              # double 81
	.quad	0x4061c9eb851eb852              # double 142.31
	.quad	0x403107ae147ae148              # double 17.030000000000001
	.quad	0x40433c28f5c28f5c              # double 38.469999999999999
	.quad	0x4041200000000000              # double 34.25
	.quad	0x404dcb851eb851ec              # double 59.590000000000003
	.quad	0x4052c70a3d70a3d7              # double 75.109999999999999
	.quad	0x405e1f5c28f5c28f              # double 120.48999999999999
	.quad	0x4052728f5c28f5c3              # double 73.790000000000006
	.quad	0x405e4ccccccccccd              # double 121.2
	.quad	0x40308a3d70a3d70a              # double 16.539999999999999
	.quad	0x4041466666666666              # double 34.549999999999997
	.quad	0x403b266666666666              # double 27.149999999999999
	.quad	0x404b7ae147ae147b              # double 54.960000000000001
	.quad	0x40573c28f5c28f5c              # double 92.939999999999998
	.quad	0x40616fae147ae148              # double 139.49000000000001
	.quad	0x402c3d70a3d70a3d              # double 14.119999999999999
	.quad	0x4046466666666666              # double 44.549999999999997
	.quad	0x4051fae147ae147b              # double 71.920000000000002
	.quad	0x4060ed70a3d70a3d              # double 135.41999999999999
	.quad	0x4001c28f5c28f5c3              # double 2.2200000000000002
	.quad	0x4040370a3d70a3d7              # double 32.43
	.quad	0x4057270a3d70a3d7              # double 92.609999999999999
	.quad	0x4062b80000000000              # double 149.75
	.quad	0x4056cb851eb851ec              # double 91.180000000000007
	.quad	0x406269999999999a              # double 147.30000000000001
	.quad	0x4021a3d70a3d70a4              # double 8.8200000000000002
	.quad	0x4041ee147ae147ae              # double 35.859999999999999
	.quad	0x4051947ae147ae14              # double 70.319999999999993
	.quad	0x405c8851eb851eb8              # double 114.13
	.quad	0x4051c33333333333              # double 71.049999999999997
	.quad	0x405b633333333333              # double 109.55
	.quad	0x40320ccccccccccd              # double 18.050000000000001
	.quad	0x4044933333333333              # double 41.149999999999999
	.quad	0x4032a66666666666              # double 18.649999999999999
	.quad	0x403e6b851eb851ec              # double 30.420000000000002
	.quad	0x403db851eb851eb8              # double 29.719999999999999
	.quad	0x4050ed70a3d70a3d              # double 67.709999999999994
	.quad	0x402e75c28f5c28f6              # double 15.23
	.quad	0x404643d70a3d70a4              # double 44.530000000000001
	.quad	0x4051b3d70a3d70a4              # double 70.810000000000002
	.quad	0x405e300000000000              # double 120.75
	.quad	0x4039c28f5c28f5c3              # double 25.760000000000002
	.quad	0x4054ac28f5c28f5c              # double 82.689999999999998
	.quad	0x404c1c28f5c28f5c              # double 56.219999999999999
	.quad	0x4059c851eb851eb8              # double 103.13
	.quad	0x403c5eb851eb851f              # double 28.370000000000001
	.quad	0x404e7851eb851eb8              # double 60.939999999999998
	.quad	0x405151eb851eb852              # double 69.280000000000001
	.quad	0x405ae47ae147ae14              # double 107.56999999999999
	.quad	0x3feae147ae147ae1              # double 0.83999999999999997
	.quad	0x403c11eb851eb852              # double 28.07
	.quad	0x4030deb851eb851f              # double 16.870000000000001
	.quad	0x40476e147ae147ae              # double 46.859999999999999
	.quad	0x4015f5c28f5c28f6              # double 5.4900000000000002
	.quad	0x40418b851eb851ec              # double 35.090000000000003
	.quad	0x40507c28f5c28f5c              # double 65.939999999999998
	.quad	0x405f7f5c28f5c28f              # double 125.98999999999999
	.quad	0x4052251eb851eb85              # double 72.579999999999998
	.quad	0x405b6147ae147ae1              # double 109.52
	.quad	0x40229eb851eb851f              # double 9.3100000000000005
	.quad	0x4042a8f5c28f5c29              # double 37.32
	.quad	0x404391eb851eb852              # double 39.140000000000001
	.quad	0x4050e47ae147ae14              # double 67.569999999999993
	.quad	0x404710a3d70a3d71              # double 46.130000000000003
	.quad	0x4053e7ae147ae148              # double 79.620000000000005
	.quad	0x4043b851eb851eb8              # double 39.439999999999998
	.quad	0x4052bb851eb851ec              # double 74.930000000000007
	.quad	0x4023666666666666              # double 9.6999999999999993
	.quad	0x403d1eb851eb851f              # double 29.120000000000001
	.quad	0x404a0b851eb851ec              # double 52.090000000000003
	.quad	0x4054233333333333              # double 80.549999999999997
	.quad	0x40470ccccccccccd              # double 46.100000000000001
	.quad	0x405487ae147ae148              # double 82.120000000000005
	.quad	0x4045770a3d70a3d7              # double 42.93
	.quad	0x40526147ae147ae1              # double 73.519999999999996
	.quad	0x403edeb851eb851f              # double 30.870000000000001
	.quad	0x404c75c28f5c28f6              # double 56.920000000000002
	.quad	0x401151eb851eb852              # double 4.3300000000000001
	.quad	0x402ea3d70a3d70a4              # double 15.32
	.quad	0x4032e3d70a3d70a4              # double 18.890000000000001
	.quad	0x404b0a3d70a3d70a              # double 54.079999999999998
	.quad	0x4051970a3d70a3d7              # double 70.359999999999999
	.quad	0x405e4851eb851eb8              # double 121.13
	.quad	0x403bd47ae147ae14              # double 27.829999999999998
	.quad	0x404a08f5c28f5c29              # double 52.07
	.quad	0x40163d70a3d70a3d              # double 5.5599999999999996
	.quad	0x403cae147ae147ae              # double 28.68
	.quad	0x4056da3d70a3d70a              # double 91.409999999999996
	.quad	0x406293d70a3d70a4              # double 148.62
	.quad	0x402999999999999a              # double 12.800000000000001
	.quad	0x4044fd70a3d70a3d              # double 41.979999999999997
	.quad	0x404c5851eb851eb8              # double 56.689999999999998
	.quad	0x405a747ae147ae14              # double 105.81999999999999
	.quad	0x405220a3d70a3d71              # double 72.510000000000005
	.quad	0x4060747ae147ae14              # double 131.63999999999999
	.quad	0x4053328f5c28f5c3              # double 76.790000000000006
	.quad	0x4060aa3d70a3d70a              # double 133.31999999999999
	.quad	0x40446ccccccccccd              # double 40.850000000000001
	.quad	0x4052e70a3d70a3d7              # double 75.609999999999999
	.quad	0x4040bae147ae147b              # double 33.460000000000001
	.quad	0x4051b7ae147ae148              # double 70.870000000000005
	.quad	0x404b547ae147ae14              # double 54.659999999999997
	.quad	0x405618f5c28f5c29              # double 88.39
	.quad	0x4055828f5c28f5c3              # double 86.040000000000006
	.quad	0x4061147ae147ae14              # double 136.63999999999999
	.quad	0x40500ae147ae147b              # double 64.170000000000002
	.quad	0x405c4851eb851eb8              # double 113.13
	.quad	0x404e970a3d70a3d7              # double 61.18
	.quad	0x405bf33333333333              # double 111.8
	.quad	0x404c48f5c28f5c29              # double 56.57
	.quad	0x405800a3d70a3d71              # double 96.010000000000005
	.quad	0x4022b33333333333              # double 9.3499999999999996
	.quad	0x4044000000000000              # double 40
	.quad	0x404e4a3d70a3d70a              # double 60.579999999999998
	.quad	0x4058d51eb851eb85              # double 99.329999999999998
	.quad	0x40553ae147ae147b              # double 84.920000000000001
	.quad	0x405f247ae147ae14              # double 124.56999999999999
	.quad	0x4042fc28f5c28f5c              # double 37.969999999999999
	.quad	0x4051f1eb851eb852              # double 71.780000000000001
	.quad	0x4040b5c28f5c28f6              # double 33.420000000000002
	.quad	0x404a6b851eb851ec              # double 52.840000000000003
	.quad	0x4057c851eb851eb8              # double 95.129999999999995
	.quad	0x4061533333333333              # double 138.59999999999999
	.quad	0x40358a3d70a3d70a              # double 21.539999999999999
	.quad	0x4047428f5c28f5c3              # double 46.520000000000003
	.quad	0x405575c28f5c28f6              # double 85.840000000000003
	.quad	0x406021999999999a              # double 129.05000000000001
	.quad	0x4016c28f5c28f5c3              # double 5.6900000000000004
	.quad	0x4039800000000000              # double 25.5
	.quad	0x405037ae147ae148              # double 64.870000000000005
	.quad	0x405ca9999999999a              # double 114.65000000000001
	.quad	0x4050eae147ae147b              # double 67.670000000000002
	.quad	0x405d0f5c28f5c28f              # double 116.23999999999999
	.quad	0x4056aa3d70a3d70a              # double 90.659999999999997
	.quad	0x40627c7ae147ae14              # double 147.88999999999999
	.quad	0x4053d9999999999a              # double 79.400000000000006
	.quad	0x4061975c28f5c28f              # double 140.72999999999999
	.quad	0x3ffe8f5c28f5c28f              # double 1.9099999999999999
	.quad	0x4040af5c28f5c28f              # double 33.369999999999997
	.quad	0x405057ae147ae148              # double 65.370000000000005
	.quad	0x405b966666666666              # double 110.34999999999999
	.quad	0x4041533333333333              # double 34.649999999999999
	.quad	0x40538f5c28f5c28f              # double 78.239999999999994
	.quad	0x4050570a3d70a3d7              # double 65.359999999999999
	.quad	0x4059ac28f5c28f5c              # double 102.69
	.quad	0x401e99999999999a              # double 7.6500000000000004
	.quad	0x4042dae147ae147b              # double 37.710000000000001
	.quad	0x4044b47ae147ae14              # double 41.409999999999997
	.quad	0x4054eb851eb851ec              # double 83.680000000000007
	.quad	0x4036d70a3d70a3d7              # double 22.84
	.quad	0x404648f5c28f5c29              # double 44.57
	.quad	0x4046f5c28f5c28f6              # double 45.920000000000002
	.quad	0x4057c7ae147ae148              # double 95.120000000000005
	.quad	0x40424b851eb851ec              # double 36.590000000000003
	.quad	0x40529f5c28f5c28f              # double 74.489999999999994
	.quad	0x404603d70a3d70a4              # double 44.030000000000001
	.quad	0x405370a3d70a3d71              # double 77.760000000000005
	.quad	0x404d133333333333              # double 58.149999999999999
	.quad	0x405a551eb851eb85              # double 105.33
	.quad	0x404ce28f5c28f5c3              # double 57.770000000000003
	.quad	0x405a528f5c28f5c3              # double 105.29000000000001
	.quad	0x404ad9999999999a              # double 53.700000000000003
	.quad	0x40581851eb851eb8              # double 96.379999999999995
	.quad	0x404383d70a3d70a4              # double 39.030000000000001
	.quad	0x40540e147ae147ae              # double 80.219999999999999
	.quad	0x4052e70a3d70a3d7              # double 75.609999999999999
	.quad	0x4060075c28f5c28f              # double 128.22999999999999
	.quad	0x400e147ae147ae14              # double 3.7599999999999998
	.quad	0x40391eb851eb851f              # double 25.120000000000001
	.quad	0x405898f5c28f5c29              # double 98.39
	.quad	0x40646b3333333333              # double 163.34999999999999
	.quad	0x404cf70a3d70a3d7              # double 57.93
	.quad	0x405bd33333333333              # double 111.3
	.quad	0x40568d70a3d70a3d              # double 90.209999999999993
	.quad	0x405efae147ae147b              # double 123.92
	.quad	0x4056e1eb851eb852              # double 91.530000000000001
	.quad	0x406210f5c28f5c29              # double 144.53
	.quad	0x4041a147ae147ae1              # double 35.259999999999998
	.quad	0x4051c00000000000              # double 71
	.quad	0x4039800000000000              # double 25.5
	.quad	0x404b39999999999a              # double 54.450000000000003
	.quad	0x4053351eb851eb85              # double 76.829999999999998
	.quad	0x405cec28f5c28f5c              # double 115.69
	.quad	0x40536b851eb851ec              # double 77.680000000000007
	.quad	0x405bb5c28f5c28f6              # double 110.84
	.quad	0x404039999999999a              # double 32.450000000000003
	.quad	0x404e8a3d70a3d70a              # double 61.079999999999998
	.quad	0x402ba3d70a3d70a4              # double 13.82
	.quad	0x4047eccccccccccd              # double 47.850000000000001
	.quad	0x40317851eb851eb8              # double 17.469999999999999
	.quad	0x40513e147ae147ae              # double 68.969999999999999
	.quad	0x4037400000000000              # double 23.25
	.quad	0x4043947ae147ae14              # double 39.159999999999997
	.size	data, 16000

	.type	_Z11d_rms_errorPdS_S_P7point_t,@object # @_Z11d_rms_errorPdS_S_P7point_t
	.section	.rodata,"a",@progbits
	.globl	_Z11d_rms_errorPdS_S_P7point_t
	.p2align	3, 0x0
_Z11d_rms_errorPdS_S_P7point_t:
	.quad	_Z26__device_stub__d_rms_errorPdS_S_P7point_t
	.size	_Z11d_rms_errorPdS_S_P7point_t, 8

	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"hipMalloc on d_dm returned %d %s\n"
	.size	.L.str, 34

	.type	.L.str.1,@object                # @.str.1
.L.str.1:
	.asciz	"hipMalloc on d_dc returned %d %s\n"
	.size	.L.str.1, 34

	.type	.L.str.2,@object                # @.str.2
.L.str.2:
	.asciz	"hipMalloc on d_error_sum_arr returned %d %s\n"
	.size	.L.str.2, 45

	.type	.L.str.3,@object                # @.str.3
.L.str.3:
	.asciz	"hipMalloc on d_data returned %d %s\n"
	.size	.L.str.3, 36

	.type	.L.str.4,@object                # @.str.4
.L.str.4:
	.asciz	"hipMemcpy to d_dm returned %d %s\n"
	.size	.L.str.4, 34

	.type	.L.str.5,@object                # @.str.5
.L.str.5:
	.asciz	"hipMemcpy to d_dc returned %d %s\n"
	.size	.L.str.5, 34

	.type	.L.str.6,@object                # @.str.6
.L.str.6:
	.asciz	"hipMemcpy to d_data returned %d %s\n"
	.size	.L.str.6, 36

	.type	.L.str.7,@object                # @.str.7
.L.str.7:
	.asciz	"hipMemcpy to error_sum returned %d %s\n"
	.size	.L.str.7, 39

	.type	.L.str.8,@object                # @.str.8
.L.str.8:
	.asciz	"hipFree on d_dm returned %d %s\n"
	.size	.L.str.8, 32

	.type	.L.str.9,@object                # @.str.9
.L.str.9:
	.asciz	"hipFree on d_dc returned %d %s\n"
	.size	.L.str.9, 32

	.type	.L.str.10,@object               # @.str.10
.L.str.10:
	.asciz	"hipFree on d_data returned %d %s\n"
	.size	.L.str.10, 34

	.type	.L.str.11,@object               # @.str.11
.L.str.11:
	.asciz	"hipFree on d_error_sum_arr returned %d %s\n"
	.size	.L.str.11, 43

	.type	.L.str.12,@object               # @.str.12
.L.str.12:
	.asciz	"minimum m,c is %lf,%lf with error %lf\n"
	.size	.L.str.12, 39

	.type	.L.str.13,@object               # @.str.13
.L.str.13:
	.asciz	"Time elapsed was %lldns or %0.9lfs\n"
	.size	.L.str.13, 36

	.type	.L__unnamed_1,@object           # @0
.L__unnamed_1:
	.asciz	"_Z11d_rms_errorPdS_S_P7point_t"
	.size	.L__unnamed_1, 31

	.type	.L__unnamed_2,@object           # @1
.L__unnamed_2:
	.asciz	"d_n_data"
	.size	.L__unnamed_2, 9

	.type	__hip_fatbin_wrapper,@object    # @__hip_fatbin_wrapper
	.section	.hipFatBinSegment,"a",@progbits
	.p2align	3, 0x0
__hip_fatbin_wrapper:
	.long	1212764230                      # 0x48495046
	.long	1                               # 0x1
	.quad	__hip_fatbin
	.quad	0
	.size	__hip_fatbin_wrapper, 24

	.type	__hip_gpubin_handle,@object     # @__hip_gpubin_handle
	.local	__hip_gpubin_handle
	.comm	__hip_gpubin_handle,8,8
	.section	.init_array,"aw",@init_array
	.p2align	3, 0x0
	.quad	__hip_module_ctor
	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym _Z26__device_stub__d_rms_errorPdS_S_P7point_t
	.addrsig_sym __hip_module_ctor
	.addrsig_sym __hip_module_dtor
	.addrsig_sym d_n_data
	.addrsig_sym data
	.addrsig_sym _Z11d_rms_errorPdS_S_P7point_t
	.addrsig_sym __hip_fatbin
	.addrsig_sym __hip_fatbin_wrapper
	.addrsig_sym __hip_cuid_

	.text
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.protected	_Z11d_rms_errorPdS_S_P7point_t ; -- Begin function _Z11d_rms_errorPdS_S_P7point_t
	.globl	_Z11d_rms_errorPdS_S_P7point_t
	.p2align	8
	.type	_Z11d_rms_errorPdS_S_P7point_t,@function
_Z11d_rms_errorPdS_S_P7point_t:         ; @_Z11d_rms_errorPdS_S_P7point_t
; %bb.0:
	s_clause 0x1
	s_load_b32 s8, s[0:1], 0x2c
	s_load_b256 s[0:7], s[0:1], 0x0
	s_waitcnt lgkmcnt(0)
	s_and_b32 s8, s8, 0xffff
	s_delay_alu instid0(SALU_CYCLE_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_mad_u64_u32 v[4:5], null, s15, s8, v[0:1]
	v_ashrrev_i32_e32 v5, 31, v4
	s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1)
	v_lshlrev_b64 v[0:1], 4, v[4:5]
	v_add_co_u32 v0, vcc_lo, s6, v0
	s_delay_alu instid0(VALU_DEP_2)
	v_add_co_ci_u32_e32 v1, vcc_lo, s7, v1, vcc_lo
	global_load_b128 v[0:3], v[0:1], off
	s_load_b64 s[0:1], s[0:1], 0x0
	s_load_b64 s[2:3], s[2:3], 0x0
	s_waitcnt vmcnt(0) lgkmcnt(0)
	v_fma_f64 v[0:1], v[0:1], s[0:1], s[2:3]
	s_delay_alu instid0(VALU_DEP_1) | instskip(SKIP_1) | instid1(VALU_DEP_1)
	v_add_f64 v[0:1], v[0:1], -v[2:3]
	v_lshlrev_b64 v[2:3], 3, v[4:5]
	v_add_co_u32 v2, vcc_lo, s4, v2
	s_delay_alu instid0(VALU_DEP_2) | instskip(NEXT) | instid1(VALU_DEP_4)
	v_add_co_ci_u32_e32 v3, vcc_lo, s5, v3, vcc_lo
	v_mul_f64 v[0:1], v[0:1], v[0:1]
	global_store_b64 v[2:3], v[0:1], off
	s_nop 0
	s_sendmsg sendmsg(MSG_DEALLOC_VGPRS)
	s_endpgm
	.section	.rodata,"a",@progbits
	.p2align	6, 0x0
	.amdhsa_kernel _Z11d_rms_errorPdS_S_P7point_t
		.amdhsa_group_segment_fixed_size 0
		.amdhsa_private_segment_fixed_size 0
		.amdhsa_kernarg_size 288
		.amdhsa_user_sgpr_count 15
		.amdhsa_user_sgpr_dispatch_ptr 0
		.amdhsa_user_sgpr_queue_ptr 0
		.amdhsa_user_sgpr_kernarg_segment_ptr 1
		.amdhsa_user_sgpr_dispatch_id 0
		.amdhsa_user_sgpr_private_segment_size 0
		.amdhsa_wavefront_size32 1
		.amdhsa_uses_dynamic_stack 0
		.amdhsa_enable_private_segment 0
		.amdhsa_system_sgpr_workgroup_id_x 1
		.amdhsa_system_sgpr_workgroup_id_y 0
		.amdhsa_system_sgpr_workgroup_id_z 0
		.amdhsa_system_sgpr_workgroup_info 0
		.amdhsa_system_vgpr_workitem_id 0
		.amdhsa_next_free_vgpr 6
		.amdhsa_next_free_sgpr 16
		.amdhsa_float_round_mode_32 0
		.amdhsa_float_round_mode_16_64 0
		.amdhsa_float_denorm_mode_32 3
		.amdhsa_float_denorm_mode_16_64 3
		.amdhsa_dx10_clamp 1
		.amdhsa_ieee_mode 1
		.amdhsa_fp16_overflow 0
		.amdhsa_workgroup_processor_mode 1
		.amdhsa_memory_ordered 1
		.amdhsa_forward_progress 0
		.amdhsa_shared_vgpr_count 0
		.amdhsa_exception_fp_ieee_invalid_op 0
		.amdhsa_exception_fp_denorm_src 0
		.amdhsa_exception_fp_ieee_div_zero 0
		.amdhsa_exception_fp_ieee_overflow 0
		.amdhsa_exception_fp_ieee_underflow 0
		.amdhsa_exception_fp_ieee_inexact 0
		.amdhsa_exception_int_div_zero 0
	.end_amdhsa_kernel
	.text
.Lfunc_end0:
	.size	_Z11d_rms_errorPdS_S_P7point_t, .Lfunc_end0-_Z11d_rms_errorPdS_S_P7point_t
                                        ; -- End function
	.section	.AMDGPU.csdata,"",@progbits
; Kernel info:
; codeLenInByte = 176
; NumSgprs: 18
; NumVgprs: 6
; ScratchSize: 0
; MemoryBound: 0
; FloatMode: 240
; IeeeMode: 1
; LDSByteSize: 0 bytes/workgroup (compile time only)
; SGPRBlocks: 2
; VGPRBlocks: 0
; NumSGPRsForWavesPerEU: 18
; NumVGPRsForWavesPerEU: 6
; Occupancy: 16
; WaveLimiterHint : 0
; COMPUTE_PGM_RSRC2:SCRATCH_EN: 0
; COMPUTE_PGM_RSRC2:USER_SGPR: 15
; COMPUTE_PGM_RSRC2:TRAP_HANDLER: 0
; COMPUTE_PGM_RSRC2:TGID_X_EN: 1
; COMPUTE_PGM_RSRC2:TGID_Y_EN: 0
; COMPUTE_PGM_RSRC2:TGID_Z_EN: 0
; COMPUTE_PGM_RSRC2:TIDIG_COMP_CNT: 0
	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.protected	d_n_data                ; @d_n_data
	.type	d_n_data,@object
	.data
	.globl	d_n_data
	.p2align	2, 0x0
d_n_data:
	.long	1000                            ; 0x3e8
	.size	d_n_data, 4

	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgpu_metadata
---
amdhsa.kernels:
  - .args:
      - .address_space:  global
        .offset:         0
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         8
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         16
        .size:           8
        .value_kind:     global_buffer
      - .address_space:  global
        .offset:         24
        .size:           8
        .value_kind:     global_buffer
      - .offset:         32
        .size:           4
        .value_kind:     hidden_block_count_x
      - .offset:         36
        .size:           4
        .value_kind:     hidden_block_count_y
      - .offset:         40
        .size:           4
        .value_kind:     hidden_block_count_z
      - .offset:         44
        .size:           2
        .value_kind:     hidden_group_size_x
      - .offset:         46
        .size:           2
        .value_kind:     hidden_group_size_y
      - .offset:         48
        .size:           2
        .value_kind:     hidden_group_size_z
      - .offset:         50
        .size:           2
        .value_kind:     hidden_remainder_x
      - .offset:         52
        .size:           2
        .value_kind:     hidden_remainder_y
      - .offset:         54
        .size:           2
        .value_kind:     hidden_remainder_z
      - .offset:         72
        .size:           8
        .value_kind:     hidden_global_offset_x
      - .offset:         80
        .size:           8
        .value_kind:     hidden_global_offset_y
      - .offset:         88
        .size:           8
        .value_kind:     hidden_global_offset_z
      - .offset:         96
        .size:           2
        .value_kind:     hidden_grid_dims
    .group_segment_fixed_size: 0
    .kernarg_segment_align: 8
    .kernarg_segment_size: 288
    .language:       OpenCL C
    .language_version:
      - 2
      - 0
    .max_flat_workgroup_size: 1024
    .name:           _Z11d_rms_errorPdS_S_P7point_t
    .private_segment_fixed_size: 0
    .sgpr_count:     18
    .sgpr_spill_count: 0
    .symbol:         _Z11d_rms_errorPdS_S_P7point_t.kd
    .uniform_work_group_size: 1
    .uses_dynamic_stack: false
    .vgpr_count:     6
    .vgpr_spill_count: 0
    .wavefront_size: 32
    .workgroup_processor_mode: 1
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
