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


/******************************************************************************
 * This program takes an initial estimate of m and c and finds the associated
 * rms error. It is then as a base to generate and evaluate 8 new estimates,
 * which are steps in different directions in m-c space. The best estimate is
 * then used as the base for another iteration of "generate and evaluate". This
 * continues until none of the new estimates are better than the base. This is
 * a gradient search for a minimum in mc-space.
 *
 * To compile:
 *   nvcc -o culinear culinear.cu -lm
 *
 * To run:
 *   ./culinear
 *
 * 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;

point_t data[] = {
  {83.12,144.47},{65.27,114.80},{65.17,89.01},{68.57,122.90},
  {77.57,136.93},{79.84,146.56},{84.42,123.51},{65.34,106.22},
  {82.20,120.33},{65.35,142.11},{24.06,53.94},{35.61,87.53},
  { 2.02,22.75},{44.01,89.41},{85.58,141.52},{54.14,88.90},
  {35.94,84.11},{22.86,45.76},{75.88,111.25},{54.49,105.83},
  {94.65,139.29},{74.97,140.29},{46.31,94.00},{48.12,108.88},
  {99.29,146.97},{86.76,135.87},{70.11,120.41},{ 5.01,35.32},
  {84.56,147.46},{ 0.19,39.41},{13.16,49.52},{34.11,93.57},
  {78.99,108.24},{38.38,81.59},{79.20,115.25},{84.38,146.00},
  {92.49,166.93},{19.70,61.69},{23.14,82.49},{13.97,44.80},
  { 2.30,51.01},{15.33,34.49},{64.82,106.29},{39.99,76.65},
  {85.93,162.61},{95.23,172.35},{11.05,60.11},{53.84,106.95},
  {71.11,135.65},{33.67,88.76},{ 2.41,41.07},{52.19,108.83},
  {30.21,57.75},{69.24,132.80},{96.44,157.86},{87.85,133.87},
  {15.51,56.56},{53.81,106.32},{50.03,77.59},{77.05,136.93},
  {37.29,81.30},{41.74,95.49},{53.91,109.94},{41.20,67.23},
  {76.87,124.78},{39.99,82.29},{21.12,55.37},{34.62,65.13},
  {20.91,51.88},{76.70,118.05},{ 4.76,45.66},{ 2.29,26.88},
  {27.19,59.89},{ 6.82,36.36},{32.36,78.26},{48.72,99.14},
  {80.55,127.01},{91.69,150.94},{ 9.68,29.41},{90.74,165.08},
  {35.58,70.65},{90.86,166.10},{99.52,157.98},{15.66,47.55},
  {45.23,88.34},{63.46,112.27},{64.21,115.27},{86.10,146.87},
  {72.98,119.38},{31.78,67.38},{73.97,135.76},{24.43,70.15},
  {74.86,135.38},{18.98,50.05},{49.32,106.88},{93.39,154.91},
  { 1.29,39.63},{10.92,61.03},{35.04,64.55},{57.66,111.38},
  {42.04,96.64},{ 8.79,40.02},{92.43,147.28},{49.08,85.76},
  {30.62,85.66},{51.41,97.98},{88.25,141.92},{27.07,61.14},
  {34.88,83.12},{90.82,151.63},{55.07,106.28},{25.73,62.03},
  {34.53,63.56},{ 6.61,34.03},{15.62,50.85},{15.32,67.76},
  {69.03,114.54},{32.46,56.91},{69.37,123.90},{10.78,57.26},
  {10.53,31.37},{53.23,109.49},{ 7.26,44.18},{15.90,63.21},
  { 8.53,36.85},{57.16,109.43},{80.74,122.57},{ 7.25,44.88},
  {87.53,144.92},{90.70,165.27},{61.17,108.23},{53.14,111.23},
  {94.75,138.45},{ 7.60,42.08},{18.83,76.22},{13.48,71.77},
  { 0.66,39.45},{35.94,87.05},{88.24,169.85},{22.00,70.26},
  {93.97,144.15},{93.09,164.94},{41.88,90.98},{35.68,63.90},
  {93.69,160.24},{22.20,53.28},{79.69,118.82},{27.57,57.90},
  {24.98,72.67},{86.50,133.90},{40.28,86.21},{14.60,48.01},
  {72.54,139.19},{55.30,79.54},{ 3.81,33.25},{ 5.68,53.66},
  {17.39,44.50},{82.43,123.95},{26.21,57.88},{50.93,102.91},
  {41.54,78.81},{36.41,65.17},{39.67,84.96},{74.19,130.02},
  {79.23,147.24},{ 5.43,43.11},{59.04,92.40},{ 4.77,21.65},
  {62.12,113.31},{80.55,133.55},{42.32,75.65},{83.01,131.90},
  {39.06,88.34},{98.75,175.85},{31.87,62.41},{58.73,96.47},
  {10.18,53.65},{12.05,47.02},{77.15,116.12},{17.71,57.77},
  {82.98,134.75},{18.11,37.59},{32.30,74.54},{81.96,143.75},
  {11.77,47.90},{24.43,78.01},{60.70,116.42},{72.05,123.46},
  {42.29,75.74},{ 9.64,53.11},{ 3.20,41.20},{75.68,127.51},
  { 7.67,38.82},{ 9.55,45.92},{ 6.22,55.99},{15.01,53.21},
  { 2.50,17.99},{30.97,64.75},{15.92,58.06},{39.77,79.31},
  {30.30,80.76},{75.71,133.13},{18.68,54.70},{14.33,48.80},
  {65.29,112.12},{85.98,156.29},{68.20,115.16},{76.18,127.58},
  {12.05,52.54},{ 1.45,26.32},{51.07,91.58},{70.45,131.48},
  {46.34,110.44},{86.40,140.67},{62.22,107.05},{39.48,96.73},
  {59.28,114.38},{85.33,140.73},{21.85,63.28},{55.32,96.88},
  {54.90,99.09},{81.45,134.43},{94.99,152.75},{60.61,91.15},
  {85.61,132.87},{54.72,105.30},{ 9.85,37.72},{85.74,133.99},
  {30.19,79.45},{87.18,142.65},{27.50,68.06},{48.21,81.13},
  {89.60,139.38},{20.45,61.03},{60.56,101.17},{88.41,139.78},
  {84.60,146.42},{25.34,45.91},{32.69,104.43},{13.63,53.03},
  {80.26,124.62},{97.15,147.49},{99.16,177.78},{81.31,127.71},
  {88.58,136.47},{24.77,59.82},{96.93,160.71},{51.92,102.46},
  {27.33,67.99},{92.40,156.65},{87.22,135.40},{ 8.66,33.01},
  {79.02,137.74},{92.16,158.93},{70.14,117.38},{31.39,83.34},
  {98.54,150.47},{81.39,145.14},{32.19,90.89},{49.53,82.60},
  {83.19,147.94},{65.68,121.26},{19.73,73.98},{19.26,39.84},
  {68.81,127.82},{21.93,64.48},{22.98,67.44},{ 8.19,35.21},
  {83.08,134.02},{69.30,124.24},{19.40,46.96},{64.13,120.93},
  {61.91,118.90},{31.92,72.59},{97.06,157.02},{69.68,131.99},
  {64.02,120.20},{86.75,141.47},{48.62,98.35},{62.34,118.54},
  {23.10,73.71},{ 3.22,24.94},{47.03,98.28},{86.10,129.82},
  {17.62,41.43},{20.60,62.70},{25.56,79.02},{98.74,168.44},
  {25.25,68.33},{ 0.26,17.74},{73.72,125.70},{62.70,101.61},
  {86.10,144.15},{ 7.59,38.21},{65.71,118.18},{57.83,104.28},
  {48.00,91.86},{59.53,110.64},{75.08,131.55},{66.96,113.45},
  {23.44,41.93},{ 7.22,33.51},{22.13,70.49},{20.24,70.87},
  {36.57,59.85},{22.89,50.80},{88.83,128.03},{54.08,109.80},
  {20.87,65.63},{80.15,132.14},{91.71,142.11},{12.37,46.56},
  {31.09,82.71},{ 9.54,28.65},{16.74,44.18},{37.07,73.24},
  { 1.67,41.10},{ 0.29,12.09},{34.05,80.10},{64.07,112.30},
  {64.66,110.15},{21.74,62.28},{74.39,129.73},{53.67,90.13},
  {75.14,147.83},{42.98,82.02},{66.29,121.10},{57.34,102.40},
  {96.75,152.13},{13.36,48.35},{21.05,73.53},{81.77,135.48},
  {88.21,171.75},{51.53,98.91},{21.88,63.71},{89.27,145.47},
  {67.70,125.26},{72.69,126.45},{27.77,58.71},{69.38,115.18},
  { 2.59,19.50},{93.93,149.24},{ 4.84,44.09},{19.21,43.14},
  {10.58,38.47},{41.51,82.49},{88.02,148.21},{55.22,114.17},
  {12.69,79.85},{91.81,160.45},{99.68,162.60},{62.74,103.63},
  {10.21,47.93},{ 5.21,28.37},{89.57,148.01},{28.42,54.46},
  {61.03,88.74},{73.04,120.93},{71.30,131.03},{ 6.42,27.57},
  {82.06,114.82},{50.07,89.66},{76.06,137.34},{69.25,116.77},
  {72.62,110.20},{ 8.88,48.25},{24.03,73.68},{52.59,102.23},
  {84.77,139.15},{96.75,154.31},{70.15,122.87},{93.18,166.62},
  { 6.17,58.46},{92.22,158.34},{74.61,131.25},{67.46,119.20},
  {22.98,57.20},{37.45,86.95},{ 1.97,39.59},{48.29,116.20},
  {52.60,109.07},{24.17,56.13},{58.56,116.56},{32.87,65.50},
  { 0.34,43.67},{87.72,142.21},{37.41,62.88},{64.08,127.92},
  {42.54,79.79},{35.53,88.48},{ 2.57,23.24},{77.80,122.09},
  { 4.19,35.89},{11.53,28.55},{62.03,82.21},{55.15,93.33},
  {63.96,120.79},{73.17,129.77},{57.12,113.60},{32.89,92.86},
  {27.89,70.41},{39.21,74.83},{77.58,129.76},{77.44,149.05},
  { 2.87,10.13},{11.11,44.31},{77.46,144.46},{45.30,100.95},
  { 4.69,30.94},{89.47,157.53},{ 7.61,44.77},{23.09,74.16},
  {91.49,156.06},{11.20,52.40},{21.47,77.05},{86.58,141.10},
  {24.07,57.57},{76.46,137.23},{84.23,120.97},{96.42,157.37},
  {98.02,155.25},{99.42,159.62},{12.67,68.56},{36.27,92.72},
  {16.08,50.55},{29.05,58.27},{24.65,58.31},{22.59,71.18},
  {54.34,115.03},{44.53,96.50},{50.73,109.29},{10.75,45.32},
  {62.06,126.81},{12.61,62.62},{21.94,50.52},{86.83,160.25},
  { 9.03,51.65},{73.37,127.89},{54.41,107.85},{95.96,172.35},
  {69.67,130.26},{48.73,103.54},{62.30,113.08},{19.39,78.51},
  {77.40,124.44},{ 1.63,34.05},{90.02,152.89},{64.47,110.81},
  {47.10,103.92},{64.92,116.32},{42.67,73.30},{48.06,76.96},
  {35.45,65.22},{98.35,158.55},{17.10,60.38},{29.75,70.75},
  {85.75,135.77},{48.27,88.32},{42.05,73.57},{88.04,146.92},
  { 9.72,34.51},{66.61,120.50},{52.60,91.06},{78.80,127.29},
  {11.69,48.24},{ 2.59,39.39},{84.26,130.65},{10.82,43.81},
  {97.33,173.24},{95.78,157.66},{51.35,81.72},{83.75,136.31},
  {72.98,114.92},{70.67,120.19},{90.19,147.54},{39.23,71.88},
  {35.17,78.15},{84.31,136.47},{ 4.96,37.06},{13.96,55.78},
  {51.70,107.90},{48.21,98.95},{90.61,142.67},{ 4.39,50.63},
  {76.09,120.85},{72.86,132.97},{69.73,118.54},{60.33,93.71},
  { 5.07,42.46},{20.73,60.27},{42.45,89.87},{80.47,166.56},
  {16.49,68.34},{97.12,153.22},{19.75,50.44},{75.75,121.87},
  {16.84,69.99},{16.59,56.79},{22.78,65.78},{78.48,135.35},
  {70.14,122.63},{39.36,74.32},{21.60,75.60},{66.51,101.96},
  {62.88,107.89},{50.24,88.20},{60.77,106.24},{86.21,148.74},
  { 9.38,44.95},{87.93,141.50},{13.25,49.13},{50.99,106.87},
  {84.74,145.24},{91.76,140.41},{81.99,130.91},{58.39,94.20},
  {84.02,153.63},{55.36,92.79},{ 2.69,36.03},{65.84,115.04},
  {52.09,98.57},{16.14,46.02},{18.37,39.39},{49.37,96.53},
  {43.87,80.59},{80.77,130.01},{45.87,98.61},{10.53,37.07},
  {46.18,93.03},{24.75,71.96},{85.19,138.24},{66.97,129.60},
  { 2.19,44.38},{68.15,89.75},{60.75,117.13},{15.45,62.88},
  {59.82,93.68},{14.43,51.77},{46.38,75.94},{86.99,133.36},
  {80.16,115.98},{71.51,113.22},{ 8.43,45.23},{36.84,81.44},
  {99.22,143.60},{26.46,59.92},{92.97,161.39},{81.44,120.67},
  { 4.33,31.81},{81.67,130.81},{34.26,76.67},{76.71,150.31},
  {77.99,131.09},{45.96,90.46},{25.87,59.28},{51.79,104.69},
  {14.95,41.47},{22.07,67.88},{84.04,152.63},{63.10,114.30},
  {94.30,147.86},{56.55,108.74},{ 8.29,55.81},{30.76,84.68},
  {68.20,133.71},{ 3.29,50.95},{89.16,145.76},{31.10,67.81},
  { 0.88,41.80},{ 7.31,39.34},{51.82,103.09},{13.69,35.21},
  {54.12,109.39},{41.60,79.94},{44.78,91.74},{ 0.83,42.82},
  {88.24,138.49},{62.16,110.68},{ 7.00,25.60},{80.07,157.43},
  {19.82,51.33},{11.07,53.28},{77.57,133.32},{94.77,146.08},
  {19.43,67.02},{99.17,165.99},{32.86,70.06},{75.29,142.96},
  {37.18,96.22},{37.29,112.25},{84.78,143.59},{93.33,138.44},
  {74.44,121.57},{19.51,51.21},{82.81,123.17},{14.24,68.89},
  { 3.64,29.43},{18.79,56.15},{97.75,161.17},{71.42,119.80},
  { 5.68,42.40},{65.07,120.59},{53.09,109.96},{64.88,117.08},
  {64.22,114.47},{22.87,69.56},{26.46,54.11},{38.98,79.57},
  {89.71,145.31},{50.80,98.09},{50.17,95.25},{22.41,62.02},
  {38.83,81.99},{ 4.82,22.56},{15.01,52.96},{41.12,76.82},
  { 5.14,35.46},{40.40,78.76},{76.89,122.53},{99.60,164.21},
  {17.56,69.70},{15.47,67.74},{79.33,143.39},{61.38,106.24},
  {77.09,145.58},{22.38,57.87},{77.00,146.86},{85.47,139.32},
  {78.29,125.77},{56.09,113.82},{29.85,57.95},{68.02,114.98},
  {99.80,152.56},{56.13,99.68},{50.87,96.14},{70.92,118.34},
  {18.13,52.54},{ 9.65,52.74},{21.14,64.53},{ 5.85,35.25},
  { 3.90,35.84},{57.70,113.74},{32.65,79.44},{30.78,57.23},
  {15.93,47.90},{94.54,158.57},{15.99,48.42},{54.03,97.67},
  {94.56,145.55},{48.42,92.14},{33.50,75.93},{75.31,134.44},
  { 7.53,33.84},{48.48,81.91},{62.78,135.05},{22.56,62.72},
  {31.12,58.49},{30.90,48.51},{48.27,107.01},{29.57,56.55},
  {31.84,67.56},{63.07,115.38},{96.22,146.90},{75.96,125.90},
  {78.48,132.71},{ 4.47,19.69},{56.83,94.99},{90.74,136.22},
  {18.37,45.45},{43.37,88.50},{75.13,127.54},{91.84,139.83},
  {66.99,114.37},{35.62,97.15},{14.32,40.17},{35.62,77.26},
  {98.70,157.47},{14.60,46.19},{27.33,82.11},{15.48,46.49},
  {82.71,139.29},{17.78,59.32},{37.39,90.82},{29.65,66.51},
  {14.27,48.09},{38.27,74.89},{69.32,120.78},{ 3.72,41.25},
  { 6.44,62.75},{29.18,70.64},{46.02,71.57},{57.14,115.12},
  {45.49,85.00},{38.75,82.52},{58.52,107.65},{54.88,99.55},
  {71.98,123.01},{37.71,68.39},{43.32,82.62},{79.11,142.63},
  {34.48,81.63},{73.53,130.77},{10.70,50.84},{23.54,68.26},
  {63.75,124.89},{ 4.50,31.46},{55.35,99.71},{ 2.26, 1.63},
  {65.48,121.04},{65.51,130.58},{74.76,130.05},{61.96,113.45},
  {22.75,76.09},{12.11,56.20},{60.19,102.29},{27.93,78.04},
  {14.21,40.49},{80.85,130.02},{98.75,163.54},{39.58,101.41},
  {75.84,132.72},{ 2.21,14.08},{22.68,65.37},{81.91,138.57},
  {71.29,114.89},{90.83,164.22},{94.44,151.59},{82.04,131.07},
  {13.66,63.96},{48.38,87.90},{46.38,87.25},{22.28,63.31},
  { 2.87,32.37},{10.02,58.24},{49.16,100.16},{86.62,135.56},
  {39.26,90.93},{78.34,133.91},{82.53,139.45},{59.77,112.37},
  {70.98,130.76},{66.60,114.24},{35.82,90.20},{30.53,71.96},
  {69.51,139.87},{94.56,173.33},{21.42,59.83},{58.70,111.28},
  {37.44,94.48},{31.15,63.11},{23.53,63.70},{ 5.11,63.57},
  {55.81,123.51},{15.80,42.37},{83.53,149.47},{80.35,153.86},
  {37.73,102.20},{95.31,133.18},{97.78,155.11},{59.12,116.15},
  {10.35,41.60},{65.22,107.71},{54.83,108.60},{91.01,151.20},
  {78.63,147.74},{51.16,110.76},{70.28,106.57},{70.08,129.60},
  {47.41,99.55},{ 0.52,21.99},{54.85,94.95},{93.87,153.82},
  {40.84,67.40},{57.23,116.36},{76.08,140.72},{62.88,107.11},
  {23.52,58.75},{86.76,141.34},{76.61,131.49},{69.97,129.62},
  { 6.16,24.48},{61.86,114.65},{30.69,88.16},{89.57,147.12},
  {42.47,86.94},{29.92,69.93},{36.03,83.92},{90.74,139.60},
  {32.22,73.11},{10.79,57.18},{28.87,59.02},{47.85,109.31},
  {44.50,87.53},{10.85,44.35},{45.82,85.17},{43.53,93.85},
  {57.17,103.94},{86.07,142.47},{97.68,151.83},{85.74,147.44},
  { 4.78,35.45},{97.96,154.43},{99.31,154.34},{ 6.00,45.64},
  {56.05,115.48},{24.98,66.31},{86.32,152.64},{ 1.08,40.11},
  {42.92,80.64},{79.59,132.72},{71.87,107.43},{19.35,47.20},
  {38.09,92.45},{18.94,60.66},{30.15,60.80},{19.43,53.20},
  {63.91,129.49},{54.38,113.42},{42.06,91.30},{ 1.98,41.20},
  { 5.47,23.84},{84.77,133.67},{ 4.93,38.23},{84.19,147.77},
  {38.91,67.06},{25.87,60.48},{62.61,110.60},{28.58,84.46},
  {92.31,152.06},{61.23,92.60},{82.96,125.80},{15.59,59.43},
  {34.88,70.07},{13.29,35.70},{30.92,61.47},{93.31,141.05},
  {68.91,126.91},{26.63,59.73},{37.41,72.67},{15.63,44.98},
  {27.66,76.55},{99.90,164.33},{87.52,144.03},{ 4.42,29.79},
  {30.91,59.24},{ 6.37,47.74},{78.59,133.51},{50.65,94.09},
  {69.79,136.05},{60.30,120.16},{53.64,109.72},{ 9.80,62.05},
  {84.72,134.75},{90.92,131.16},{70.20,126.34},{19.16,45.57},
  {52.85,98.88},{69.27,123.71},{99.94,161.32},{92.46,161.95},
  {94.75,159.49},{72.82,126.08},{92.27,145.98},{ 5.93,28.08},
  {33.26,72.26},{ 2.12,39.38},{12.99,47.88},{57.53,112.68},
  {46.70,94.90},{81.13,126.83},{12.80,69.03},{30.96,68.96},
  {24.18,59.11},{ 2.27,41.30},{49.74,82.50},{62.55,126.09},
  {48.84,95.14},{72.25,120.77},{ 3.22,24.46},{99.21,167.11},
  {87.37,133.05},{82.33,144.86},{95.53,163.89},{94.11,145.19},
  {13.11,35.64},{59.44,116.19},{24.27,62.07},{91.53,145.26},
  {46.43,82.98},{99.89,151.74},{66.41,102.58},{56.46,114.65},
  {62.68,99.59},{77.05,132.15},{47.38,81.81},{64.85,107.58},
  {91.24,145.20},{65.69,126.13},{66.98,136.61},{ 4.95,29.94},
  {75.39,156.04},{ 7.55,35.93},{29.83,62.85},{91.79,140.73},
  {66.56,129.57},{36.16,67.39},{41.25,86.72},{94.82,156.68},
  {24.15,66.85},{44.28,97.11},{31.82,69.41},{13.75,53.07},
  {81.76,135.27},{23.72,77.94},{24.53,53.47},{23.66,67.62},
  {21.90,56.35},{31.58,75.84},{31.28,70.78},{42.78,78.57},
  {12.46,42.74},{74.68,148.57},{ 2.58,19.05},{91.39,147.46},
  {56.50,121.13},{21.06,54.11},{27.09,57.00},{46.82,87.12},
  {45.76,90.04},{85.87,149.19},{40.52,84.52},{72.24,118.46},
  { 3.34,27.96},{24.68,51.90},{45.54,98.75},{ 9.05,54.03},
  {84.14,127.96},{73.69,129.22},{22.43,56.43},{20.47,67.18},
  {21.36,81.39},{88.61,147.49},{88.78,126.41},{36.54,90.18},
  {23.39,47.90},{16.16,53.46},{34.88,76.16},{75.58,140.32},
  {33.45,88.12},{89.01,142.71},{46.57,96.54},{25.00,56.85},
  {99.78,171.85},{82.58,152.64},{13.94,52.87},{46.61,112.56},
  {64.76,116.36},{31.86,63.96},{69.61,120.21},{53.72,100.82},
  {81.88,142.33},{29.39,66.57},{86.67,143.51},{ 4.13,31.53},
  {22.34,58.49},{64.54,116.47},{68.08,129.02},{34.02,98.04},
  {55.23,104.11},{19.59,64.50},{84.85,156.51},{94.41,142.74},
  {12.49,49.71},{27.81,63.84},{53.94,107.71},{92.25,147.58},
  {87.89,148.18},{21.02,69.44},{57.05,97.23},{48.46,94.85},
  { 3.81,37.26},{89.90,156.01},{57.31,88.22},{78.39,140.66},
  {77.93,149.82},{23.15,62.96},{25.77,55.58},{74.11,141.26},
  {21.31,64.10},{46.04,79.80},{65.78,117.56},{41.04,79.20},
  {94.38,143.18},{81.52,133.84},{86.12,146.57},{39.38,85.36},
  {63.01,110.79},{42.25,92.03},{48.83,86.99},{19.09,65.04}
};

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);
}
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;


//Device variables
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);
  }

//Allocate memory for d_dc
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);
  }

//Allocate memory for d_data
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);    
    }

//Copy memory for dm to d_dm
  error = cudaMemcpy(d_dm, dm, (sizeof(double) * 8), cudaMemcpyHostToDevice);  
  if(error){
    fprintf(stderr, "cudaMemcpy to d_dm returned %d %s\n", error,
      cudaGetErrorString(error));
  }

//Copy memory for dc to d_dc
  error = cudaMemcpy(d_dc, dc, (sizeof(double) * 8), cudaMemcpyHostToDevice);  
  if(error){
    fprintf(stderr, "cudaMemcpy to d_dc returned %d %s\n", error,
      cudaGetErrorString(error));
  }

//Copy memory for data to d_data
  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++) {

//Host variable storing the array returned from the kernel function.
double h_error_sum_arr[1000];

//Stores the total sum of the values from the error sum array.
double error_sum_total;

//Stores the mean of the total sum of the error sums.
double error_sum_mean;

//Call the rms_error function using 100 blocks and 10 threads.
d_rms_error <<<100,10>>>(&d_dm[i], &d_dc[i], d_error_sum_arr, d_data);
cudaThreadSynchronize();




//Copy memory for d_error_sum_arr
 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));
 }

//Loop through the error sum array returned from the kernel function
for(int j=0; j<n_data; j++) {
//Add each error sum to the error sum total.
    error_sum_total += h_error_sum_arr[j];
  }

//Calculate the mean for the error sum.
error_sum_mean = error_sum_total / n_data;

//Calculate the square root for the error sum mean.
e[i] = sqrt(error_sum_mean);


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

//Reset the error sum total.
error_sum_total = 0;
    }

    //printf("best m,c is %lf,%lf with error %lf in direction %d\n",
      //dm[best_error_i], dc[best_error_i], best_error, best_error_i);

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

  }

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

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

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

//Free memory for d_error_sum_arr
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);

//Get the system time after we have run the linear regression function.
clock_gettime(CLOCK_MONOTONIC, &finish);

//Calculate the time spent between the start time and end time.
  time_difference(&start, &finish, &time_elapsed);

//Output the time spent running the program.
  printf("Time elapsed was %lldns or %0.9lfs\n", time_elapsed,
         (time_elapsed/1.0e9));

  return 0;
}

	.file	"tmpxft_0037a0f6_00000000-6_culinear.cudafe1.cpp"
	.text
#APP

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB2034:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE2034:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.globl	_Z14residual_errordddd
	.type	_Z14residual_errordddd, @function
_Z14residual_errordddd:
.LFB2027:
	.cfi_startproc
	endbr64
	mulsd	%xmm0, %xmm2
	addsd	%xmm3, %xmm2
	subsd	%xmm1, %xmm2
	movaps	%xmm2, %xmm0
	mulsd	%xmm2, %xmm0
	ret
	.cfi_endproc
.LFE2027:
	.size	_Z14residual_errordddd, .-_Z14residual_errordddd
	.globl	_Z16d_residual_errordddd
	.type	_Z16d_residual_errordddd, @function
_Z16d_residual_errordddd:
.LFB2028:
	.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
.LFE2028:
	.size	_Z16d_residual_errordddd, .-_Z16d_residual_errordddd
	.globl	_Z9rms_errordd
	.type	_Z9rms_errordd, @function
_Z9rms_errordd:
.LFB2029:
	.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
.LFE2029:
	.size	_Z9rms_errordd, .-_Z9rms_errordd
	.globl	_Z15time_differenceP8timespecS0_Px
	.type	_Z15time_differenceP8timespecS0_Px, @function
_Z15time_differenceP8timespecS0_Px:
.LFB2030:
	.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
.LFE2030:
	.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:
.LFB2056:
	.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
.LFE2056:
	.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:
.LFB2057:
	.cfi_startproc
	endbr64
	jmp	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.cfi_endproc
.LFE2057:
	.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:
.LFB2031:
	.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
.LFE2031:
	.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:
.LFB2059:
	.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
.LFE2059:
	.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	343597384
	.long	1079297966
	.long	1030792151
	.long	1080168202
	.long	-1374389535
	.long	1079005511
	.long	858993459
	.long	1079817011
	.long	1202590843
	.long	1079003873
	.long	-687194767
	.long	1079394467
	.long	-515396076
	.long	1079059578
	.long	-1717986918
	.long	1079949721
	.long	-515396076
	.long	1079207034
	.long	-1889785610
	.long	1080106434
	.long	-1889785610
	.long	1079244226
	.long	-2061584302
	.long	1080185323
	.long	1202590843
	.long	1079319265
	.long	-687194767
	.long	1079959715
	.long	-1889785610
	.long	1079006658
	.long	2061584302
	.long	1079676436
	.long	-858993459
	.long	1079282892
	.long	-1202590843
	.long	1079907614
	.long	1717986918
	.long	1079006822
	.long	515396076
	.long	1080148869
	.long	687194767
	.long	1077415772
	.long	-343597384
	.long	1078655057
	.long	2061584302
	.long	1078054420
	.long	-2061584302
	.long	1079370219
	.long	-1030792151
	.long	1073752309
	.long	0
	.long	1077329920
	.long	-1374389535
	.long	1078329671
	.long	1889785610
	.long	1079401021
	.long	-1202590843
	.long	1079338270
	.long	-687194767
	.long	1080144035
	.long	-2061584302
	.long	1078661611
	.long	-1717986918
	.long	1079392665
	.long	-343597384
	.long	1078065233
	.long	1030792151
	.long	1079314186
	.long	-171798692
	.long	1077337128
	.long	-1374389535
	.long	1078387015
	.long	-343597384
	.long	1079179345
	.long	0
	.long	1079758848
	.long	1374389535
	.long	1078673080
	.long	-1202590843
	.long	1079670046
	.long	-1717986918
	.long	1079486873
	.long	-1374389535
	.long	1080125767
	.long	2061584302
	.long	1079164436
	.long	-1374389535
	.long	1080133959
	.long	343597384
	.long	1078405038
	.long	0
	.long	1079476224
	.long	687194767
	.long	1078464348
	.long	-343597384
	.long	1079720017
	.long	1546188227
	.long	1079562895
	.long	1030792151
	.long	1080188682
	.long	-687194767
	.long	1079357603
	.long	171798692
	.long	1080097751
	.long	1030792151
	.long	1079084810
	.long	1889785610
	.long	1079908925
	.long	1889785610
	.long	1075055165
	.long	-1030792151
	.long	1078044917
	.long	171798692
	.long	1079321559
	.long	1374389535
	.long	1080192696
	.long	-2061584302
	.long	1070092779
	.long	-515396076
	.long	1078178938
	.long	-2061584302
	.long	1076515307
	.long	1546188227
	.long	1078510223
	.long	2061584302
	.long	1078005268
	.long	-515396076
	.long	1079469178
	.long	687194767
	.long	1079230300
	.long	687194767
	.long	1079709532
	.long	-687194767
	.long	1078145187
	.long	-1889785610
	.long	1079272898
	.long	-858993459
	.long	1079233740
	.long	0
	.long	1079824384
	.long	-343597384
	.long	1079318609
	.long	0
	.long	1080180736
	.long	687194767
	.long	1079451484
	.long	-1889785610
	.long	1080352194
	.long	858993459
	.long	1077130035
	.long	-343597384
	.long	1078909009
	.long	171798692
	.long	1077355479
	.long	687194767
	.long	1079287644
	.long	-687194767
	.long	1076621475
	.long	1717986918
	.long	1078355558
	.long	1717986918
	.long	1073899110
	.long	-1374389535
	.long	1078559047
	.long	-1030792151
	.long	1076799733
	.long	1374389535
	.long	1078017720
	.long	-515396076
	.long	1078998138
	.long	1546188227
	.long	1079677583
	.long	1374389535
	.long	1078197944
	.long	-1717986918
	.long	1079191961
	.long	515396076
	.long	1079344005
	.long	515396076
	.long	1080316805
	.long	1374389535
	.long	1079496376
	.long	858993459
	.long	1080396595
	.long	-1717986918
	.long	1076238745
	.long	2061584302
	.long	1078857236
	.long	515396076
	.long	1078651781
	.long	-858993459
	.long	1079688396
	.long	1030792151
	.long	1079101194
	.long	-858993459
	.long	1080095948
	.long	-1889785610
	.long	1077990850
	.long	-687194767
	.long	1079390371
	.long	343597384
	.long	1073956782
	.long	-1030792151
	.long	1078233333
	.long	-343597384
	.long	1078597713
	.long	-1202590843
	.long	1079719198
	.long	-1889785610
	.long	1077818818
	.long	0
	.long	1078779904
	.long	687194767
	.long	1079070556
	.long	-1717986918
	.long	1080072601
	.long	-171798692
	.long	1079516200
	.long	515396076
	.long	1080277893
	.long	1717986918
	.long	1079375462
	.long	171798692
	.long	1080081367
	.long	-1202590843
	.long	1076823326
	.long	343597384
	.long	1078740910
	.long	343597384
	.long	1078650798
	.long	-515396076
	.long	1079678074
	.long	171798692
	.long	1078526935
	.long	-1889785610
	.long	1079207362
	.long	858993459
	.long	1079198515
	.long	-1889785610
	.long	1080106434
	.long	-1202590843
	.long	1078109470
	.long	858993459
	.long	1079268147
	.long	1374389535
	.long	1078255288
	.long	687194767
	.long	1079500636
	.long	-515396076
	.long	1078654074
	.long	-171798692
	.long	1079737384
	.long	-1717986918
	.long	1078237593
	.long	1374389535
	.long	1079037624
	.long	343597384
	.long	1079195566
	.long	-2061584302
	.long	1079980523
	.long	1374389535
	.long	1078197944
	.long	1546188227
	.long	1079284367
	.long	1374389535
	.long	1077223096
	.long	687194767
	.long	1078701916
	.long	687194767
	.long	1078021980
	.long	-343597384
	.long	1079003217
	.long	-1030792151
	.long	1077209333
	.long	-687194767
	.long	1078587555
	.long	-858993459
	.long	1079192780
	.long	858993459
	.long	1079870259
	.long	1889785610
	.long	1074989629
	.long	-515396076
	.long	1078383738
	.long	-2061584302
	.long	1073893867
	.long	-1374389535
	.long	1077600583
	.long	-687194767
	.long	1077620899
	.long	-2061584302
	.long	1078850027
	.long	343597384
	.long	1075529646
	.long	2061584302
	.long	1078078996
	.long	2061584302
	.long	1077947924
	.long	-687194767
	.long	1079218339
	.long	-171798692
	.long	1078484008
	.long	-1030792151
	.long	1079560437
	.long	858993459
	.long	1079255859
	.long	-687194767
	.long	1080017059
	.long	-171798692
	.long	1079438376
	.long	2061584302
	.long	1080221204
	.long	-171798692
	.long	1076059176
	.long	-1030792151
	.long	1077766389
	.long	687194767
	.long	1079422812
	.long	1546188227
	.long	1080337039
	.long	1889785610
	.long	1078053437
	.long	-1717986918
	.long	1079093657
	.long	1030792151
	.long	1079424778
	.long	858993459
	.long	1080345395
	.long	-1374389535
	.long	1079566663
	.long	687194767
	.long	1080278876
	.long	-2061584302
	.long	1076842987
	.long	1717986918
	.long	1078445670
	.long	-1546188227
	.long	1078369648
	.long	-1889785610
	.long	1079383490
	.long	1202590843
	.long	1078967009
	.long	-1374389535
	.long	1079775559
	.long	-1546188227
	.long	1078988144
	.long	-1374389535
	.long	1079824711
	.long	1717986918
	.long	1079346790
	.long	171798692
	.long	1080187863
	.long	1374389535
	.long	1079131832
	.long	-343597384
	.long	1079892049
	.long	343597384
	.long	1077921710
	.long	-343597384
	.long	1079040081
	.long	2061584302
	.long	1079148052
	.long	-343597384
	.long	1080096849
	.long	2061584302
	.long	1077440020
	.long	-1717986918
	.long	1079085465
	.long	1030792151
	.long	1079162634
	.long	-171798692
	.long	1080093736
	.long	1202590843
	.long	1077082849
	.long	1717986918
	.long	1078527590
	.long	-1030792151
	.long	1078503669
	.long	-343597384
	.long	1079687249
	.long	-1030792151
	.long	1079466229
	.long	-1202590843
	.long	1080253726
	.long	171798692
	.long	1072997335
	.long	-687194767
	.long	1078186147
	.long	1030792151
	.long	1076221706
	.long	171798692
	.long	1078887383
	.long	-1202590843
	.long	1078035742
	.long	858993459
	.long	1078993715
	.long	-515396076
	.long	1078776954
	.long	-343597384
	.long	1079760977
	.long	-1202590843
	.long	1078265118
	.long	-1030792151
	.long	1079519477
	.long	-515396076
	.long	1075942522
	.long	1546188227
	.long	1078198927
	.long	515396076
	.long	1079450501
	.long	-1030792151
	.long	1080191221
	.long	1889785610
	.long	1078495805
	.long	-687194767
	.long	1079341219
	.long	1374389535
	.long	1077845688
	.long	1889785610
	.long	1079339581
	.long	-515396076
	.long	1078572154
	.long	1374389535
	.long	1079541432
	.long	0
	.long	1079382016
	.long	-1546188227
	.long	1080147312
	.long	-2061584302
	.long	1077613035
	.long	-2061584302
	.long	1078890987
	.long	-687194767
	.long	1078030499
	.long	343597384
	.long	1079297966
	.long	-515396076
	.long	1079424122
	.long	-171798692
	.long	1080226856
	.long	-1030792151
	.long	1078692085
	.long	-2061584302
	.long	1079677419
	.long	1202590843
	.long	1077525217
	.long	171798692
	.long	1078920151
	.long	171798692
	.long	1078019031
	.long	343597384
	.long	1078970286
	.long	-687194767
	.long	1075474595
	.long	171798692
	.long	1078002647
	.long	-1546188227
	.long	1076837744
	.long	-858993459
	.long	1078553804
	.long	171798692
	.long	1076798423
	.long	-687194767
	.long	1079046307
	.long	-2061584302
	.long	1079067115
	.long	1546188227
	.long	1079812751
	.long	1202590843
	.long	1077951201
	.long	-515396076
	.long	1078752378
	.long	343597384
	.long	1079072686
	.long	-1717986918
	.long	1079966105
	.long	687194767
	.long	1076203356
	.long	-1374389535
	.long	1078763847
	.long	687194767
	.long	1076170588
	.long	1374389535
	.long	1077894840
	.long	-1546188227
	.long	1078631792
	.long	687194767
	.long	1079730012
	.long	1889785610
	.long	1075644989
	.long	1030792151
	.long	1078335242
	.long	-858993459
	.long	1076874444
	.long	1202590843
	.long	1078958817
	.long	687194767
	.long	1075908444
	.long	-858993459
	.long	1078095052
	.long	-515396076
	.long	1078760570
	.long	515396076
	.long	1079729029
	.long	687194767
	.long	1079258972
	.long	-515396076
	.long	1079944314
	.long	0
	.long	1075642368
	.long	-687194767
	.long	1078358179
	.long	-2061584302
	.long	1079370219
	.long	-1546188227
	.long	1080171888
	.long	-858993459
	.long	1079422156
	.long	-687194767
	.long	1080338595
	.long	-1889785610
	.long	1078891970
	.long	1374389535
	.long	1079709368
	.long	-2061584302
	.long	1078628843
	.long	1374389535
	.long	1079758520
	.long	0
	.long	1079488512
	.long	1717986918
	.long	1080118886
	.long	1717986918
	.long	1075734118
	.long	1889785610
	.long	1078266429
	.long	-515396076
	.long	1077073018
	.long	2061584302
	.long	1079184916
	.long	-1889785610
	.long	1076557250
	.long	-1374389535
	.long	1079112007
	.long	1374389535
	.long	1071980216
	.long	-1717986918
	.long	1078180249
	.long	-343597384
	.long	1078065233
	.long	858993459
	.long	1079362355
	.long	687194767
	.long	1079381852
	.long	858993459
	.long	1080376115
	.long	0
	.long	1077280768
	.long	-687194767
	.long	1079087267
	.long	2061584302
	.long	1079475732
	.long	-858993459
	.long	1080165580
	.long	-1889785610
	.long	1079461314
	.long	2061584302
	.long	1080335892
	.long	-687194767
	.long	1078259875
	.long	1374389535
	.long	1079426744
	.long	1030792151
	.long	1078056714
	.long	858993459
	.long	1078981427
	.long	-171798692
	.long	1079471144
	.long	343597384
	.long	1080297390
	.long	858993459
	.long	1077293875
	.long	171798692
	.long	1078633431
	.long	-171798692
	.long	1079241768
	.long	-515396076
	.long	1079882874
	.long	-2061584302
	.long	1077645803
	.long	858993459
	.long	1078784819
	.long	1202590843
	.long	1077476065
	.long	1202590843
	.long	1079126753
	.long	0
	.long	1079353344
	.long	-858993459
	.long	1080081612
	.long	171798692
	.long	1078207447
	.long	-1546188227
	.long	1079348592
	.long	858993459
	.long	1076704051
	.long	-1374389535
	.long	1078460743
	.long	1546188227
	.long	1079124623
	.long	2061584302
	.long	1080124948
	.long	1717986918
	.long	1078699622
	.long	1546188227
	.long	1079239311
	.long	1202590843
	.long	1074690785
	.long	0
	.long	1077977088
	.long	-343597384
	.long	1075230801
	.long	-515396076
	.long	1078645882
	.long	171798692
	.long	1076978647
	.long	0
	.long	1078345728
	.long	515396076
	.long	1079286661
	.long	-858993459
	.long	1079966924
	.long	-1889785610
	.long	1077556674
	.long	-687194767
	.long	1078784163
	.long	1030792151
	.long	1078556426
	.long	1889785610
	.long	1079622205
	.long	-1202590843
	.long	1078248734
	.long	171798692
	.long	1079227351
	.long	-515396076
	.long	1078080634
	.long	1202590843
	.long	1079003873
	.long	-1889785610
	.long	1078187458
	.long	-1546188227
	.long	1079328112
	.long	-171798692
	.long	1079151656
	.long	-687194767
	.long	1080049827
	.long	1374389535
	.long	1079234232
	.long	343597384
	.long	1080190894
	.long	-343597384
	.long	1075165265
	.long	2061584302
	.long	1078300180
	.long	-1202590843
	.long	1078822174
	.long	-1717986918
	.long	1079450009
	.long	-515396076
	.long	1074992250
	.long	1717986918
	.long	1077257830
	.long	687194767
	.long	1078923100
	.long	171798692
	.long	1079792599
	.long	858993459
	.long	1079255859
	.long	-1717986918
	.long	1080078745
	.long	-1030792151
	.long	1078274293
	.long	-1717986918
	.long	1079175577
	.long	-687194767
	.long	1079296163
	.long	-858993459
	.long	1080065228
	.long	343597384
	.long	1078167470
	.long	-1889785610
	.long	1079383490
	.long	0
	.long	1079554048
	.long	858993459
	.long	1080425267
	.long	1374389535
	.long	1077927608
	.long	-515396076
	.long	1078932602
	.long	-1546188227
	.long	1078812016
	.long	2061584302
	.long	1079516692
	.long	-171798692
	.long	1076124712
	.long	858993459
	.long	1078645555
	.long	-1717986918
	.long	1076369817
	.long	1546188227
	.long	1078428303
	.long	-1717986918
	.long	1079200153
	.long	343597384
	.long	1079838638
	.long	-1889785610
	.long	1076999618
	.long	1546188227
	.long	1078780559
	.long	1374389535
	.long	1079295672
	.long	0
	.long	1080088576
	.long	-171798692
	.long	1077025832
	.long	515396076
	.long	1078119301
	.long	1717986918
	.long	1077945958
	.long	1546188227
	.long	1079157391
	.long	-1546188227
	.long	1079278960
	.long	0
	.long	1080162304
	.long	1889785610
	.long	1076333117
	.long	858993459
	.long	1078457139
	.long	2061584302
	.long	1077440020
	.long	-687194767
	.long	1079214243
	.long	-1717986918
	.long	1078876569
	.long	1202590843
	.long	1079843553
	.long	858993459
	.long	1079116595
	.long	-1546188227
	.long	1079958896
	.long	-1202590843
	.long	1078273310
	.long	687194767
	.long	1079177052
	.long	343597384
	.long	1076053934
	.long	2061584302
	.long	1078627860
	.long	-1717986918
	.long	1074370969
	.long	-1717986918
	.long	1078237593
	.long	515396076
	.long	1079176069
	.long	-687194767
	.long	1080025251
	.long	2061584302
	.long	1075752468
	.long	-1030792151
	.long	1078159605
	.long	-1717986918
	.long	1076042137
	.long	-1889785610
	.long	1078392258
	.long	-1374389535
	.long	1075372359
	.long	1374389535
	.long	1078722232
	.long	-1202590843
	.long	1076757790
	.long	1202590843
	.long	1078631137
	.long	0
	.long	1074003968
	.long	-1546188227
	.long	1077017968
	.long	-343597384
	.long	1077868625
	.long	0
	.long	1078996992
	.long	1030792151
	.long	1076877066
	.long	343597384
	.long	1078790062
	.long	1546188227
	.long	1078190735
	.long	171798692
	.long	1079235543
	.long	-858993459
	.long	1077824716
	.long	-687194767
	.long	1079259299
	.long	-1546188227
	.long	1079176560
	.long	-171798692
	.long	1080075304
	.long	2061584302
	.long	1077063188
	.long	-1717986918
	.long	1078679961
	.long	-1030792151
	.long	1076668661
	.long	1717986918
	.long	1078486630
	.long	1546188227
	.long	1079005839
	.long	343597384
	.long	1079773102
	.long	1374389535
	.long	1079344824
	.long	-1374389535
	.long	1080265031
	.long	-858993459
	.long	1079053516
	.long	1889785610
	.long	1079822909
	.long	515396076
	.long	1079184261
	.long	-1202590843
	.long	1080026398
	.long	-1717986918
	.long	1076369817
	.long	-1202590843
	.long	1078609182
	.long	858993459
	.long	1073165107
	.long	-2061584302
	.long	1077563883
	.long	-1030792151
	.long	1078561013
	.long	-1202590843
	.long	1079436574
	.long	-858993459
	.long	1079090380
	.long	687194767
	.long	1080061788
	.long	515396076
	.long	1078406021
	.long	-171798692
	.long	1079745576
	.long	-1717986918
	.long	1079351705
	.long	-1546188227
	.long	1080137072
	.long	-171798692
	.long	1078926376
	.long	858993459
	.long	1079690035
	.long	-1546188227
	.long	1078181232
	.long	1374389535
	.long	1079520952
	.long	171798692
	.long	1078830039
	.long	-343597384
	.long	1079810129
	.long	-1202590843
	.long	1079334174
	.long	687194767
	.long	1080137564
	.long	-1717986918
	.long	1077270937
	.long	171798692
	.long	1078961111
	.long	-1030792151
	.long	1078700277
	.long	-343597384
	.long	1079523409
	.long	858993459
	.long	1078686515
	.long	-1889785610
	.long	1079559618
	.long	-858993459
	.long	1079270604
	.long	-1889785610
	.long	1080085954
	.long	687194767
	.long	1079492444
	.long	0
	.long	1080236032
	.long	2061584302
	.long	1078873620
	.long	-1717986918
	.long	1079429529
	.long	1030792151
	.long	1079338762
	.long	171798692
	.long	1080073175
	.long	-171798692
	.long	1078680616
	.long	858993459
	.long	1079661363
	.long	858993459
	.long	1076081459
	.long	-171798692
	.long	1078123560
	.long	687194767
	.long	1079340892
	.long	343597384
	.long	1080082350
	.long	-687194767
	.long	1077817507
	.long	-858993459
	.long	1079237836
	.long	515396076
	.long	1079364485
	.long	-858993459
	.long	1080153292
	.long	0
	.long	1077641216
	.long	171798692
	.long	1079051223
	.long	1202590843
	.long	1078467297
	.long	-343597384
	.long	1079265361
	.long	1717986918
	.long	1079404134
	.long	-171798692
	.long	1080126504
	.long	858993459
	.long	1077179187
	.long	171798692
	.long	1078887383
	.long	343597384
	.long	1078871982
	.long	1202590843
	.long	1079593697
	.long	1889785610
	.long	1079384637
	.long	-1030792151
	.long	1080129781
	.long	1717986918
	.long	1079322214
	.long	-1546188227
	.long	1080184176
	.long	1030792151
	.long	1077499658
	.long	-515396076
	.long	1078391930
	.long	-343597384
	.long	1077958737
	.long	515396076
	.long	1079647109
	.long	1546188227
	.long	1076576911
	.long	171798692
	.long	1078625239
	.long	-687194767
	.long	1079251107
	.long	343597384
	.long	1079977902
	.long	-1717986918
	.long	1079527833
	.long	343597384
	.long	1080192942
	.long	1889785610
	.long	1079560765
	.long	-1030792151
	.long	1080441077
	.long	171798692
	.long	1079268311
	.long	-1546188227
	.long	1080028528
	.long	-1202590843
	.long	1079387422
	.long	1030792151
	.long	1080102666
	.long	-1202590843
	.long	1077462302
	.long	-1030792151
	.long	1078847733
	.long	515396076
	.long	1079524229
	.long	1374389535
	.long	1080301240
	.long	-1889785610
	.long	1078588866
	.long	-1546188227
	.long	1079614832
	.long	-515396076
	.long	1077630074
	.long	687194767
	.long	1079050076
	.long	-1717986918
	.long	1079450009
	.long	-858993459
	.long	1080267980
	.long	2061584302
	.long	1079365140
	.long	-858993459
	.long	1080093900
	.long	-2061584302
	.long	1075925483
	.long	-1374389535
	.long	1077969223
	.long	-1374389535
	.long	1079230791
	.long	343597384
	.long	1080113070
	.long	1889785610
	.long	1079446077
	.long	-1889785610
	.long	1080286658
	.long	-1030792151
	.long	1079085301
	.long	-343597384
	.long	1079859281
	.long	171798692
	.long	1077896151
	.long	-1889785610
	.long	1079301570
	.long	1546188227
	.long	1079550607
	.long	1030792151
	.long	1080217354
	.long	-1030792151
	.long	1079269621
	.long	-515396076
	.long	1080173690
	.long	-343597384
	.long	1077942353
	.long	-1030792151
	.long	1079425269
	.long	171798692
	.long	1078510551
	.long	1717986918
	.long	1079289446
	.long	-171798692
	.long	1079299112
	.long	2061584302
	.long	1080196628
	.long	515396076
	.long	1079012229
	.long	-687194767
	.long	1079922851
	.long	1202590843
	.long	1077132001
	.long	1374389535
	.long	1079148216
	.long	1546188227
	.long	1077101199
	.long	515396076
	.long	1078193029
	.long	171798692
	.long	1079063511
	.long	-515396076
	.long	1080030330
	.long	2061584302
	.long	1077276180
	.long	1374389535
	.long	1078992568
	.long	1202590843
	.long	1077344993
	.long	-171798692
	.long	1079041064
	.long	-1374389535
	.long	1075863879
	.long	1202590843
	.long	1078041313
	.long	-1202590843
	.long	1079297310
	.long	-687194767
	.long	1080082595
	.long	858993459
	.long	1079071539
	.long	687194767
	.long	1079971676
	.long	1717986918
	.long	1077110374
	.long	1202590843
	.long	1078426337
	.long	-343597384
	.long	1078986833
	.long	515396076
	.long	1079917445
	.long	-515396076
	.long	1078916218
	.long	-1717986918
	.long	1079884185
	.long	515396076
	.long	1077930885
	.long	-1889785610
	.long	1079125442
	.long	171798692
	.long	1079526359
	.long	-687194767
	.long	1080271011
	.long	515396076
	.long	1079077765
	.long	343597384
	.long	1080065966
	.long	-1374389535
	.long	1078985031
	.long	-858993459
	.long	1079905484
	.long	0
	.long	1079357440
	.long	1030792151
	.long	1080143626
	.long	687194767
	.long	1078480732
	.long	1717986918
	.long	1079547494
	.long	515396076
	.long	1078930309
	.long	1546188227
	.long	1079878287
	.long	-1717986918
	.long	1077352857
	.long	-1546188227
	.long	1079143792
	.long	1546188227
	.long	1074381455
	.long	-687194767
	.long	1077473443
	.long	171798692
	.long	1078428631
	.long	-2061584302
	.long	1079546347
	.long	1717986918
	.long	1079346790
	.long	1889785610
	.long	1080048189
	.long	1374389535
	.long	1076993720
	.long	1030792151
	.long	1078245130
	.long	-1717986918
	.long	1077189017
	.long	-1717986918
	.long	1078942105
	.long	687194767
	.long	1077514076
	.long	-1374389535
	.long	1079230791
	.long	687194767
	.long	1079553884
	.long	2061584302
	.long	1080364564
	.long	0
	.long	1077493760
	.long	-1202590843
	.long	1079055646
	.long	171798692
	.long	1070638039
	.long	-1546188227
	.long	1077001584
	.long	2061584302
	.long	1079143956
	.long	-858993459
	.long	1079995596
	.long	-1717986918
	.long	1078942105
	.long	1030792151
	.long	1079600906
	.long	1717986918
	.long	1079346790
	.long	-858993459
	.long	1080165580
	.long	-171798692
	.long	1075731496
	.long	1202590843
	.long	1078139617
	.long	-1546188227
	.long	1079012720
	.long	515396076
	.long	1079872389
	.long	1889785610
	.long	1078782525
	.long	-2061584302
	.long	1079644651
	.long	0
	.long	1078460416
	.long	1030792151
	.long	1079441162
	.long	171798692
	.long	1078838231
	.long	-1030792151
	.long	1079748853
	.long	-1202590843
	.long	1079166238
	.long	-1717986918
	.long	1080062361
	.long	-1546188227
	.long	1079033200
	.long	-858993459
	.long	1079794892
	.long	-687194767
	.long	1077375139
	.long	1030792151
	.long	1078261514
	.long	-1374389535
	.long	1075634503
	.long	-1374389535
	.long	1077985607
	.long	-1374389535
	.long	1077289287
	.long	687194767
	.long	1079091036
	.long	-1546188227
	.long	1077165424
	.long	343597384
	.long	1079097262
	.long	-1030792151
	.long	1078085877
	.long	-858993459
	.long	1078848716
	.long	171798692
	.long	1077339095
	.long	1717986918
	.long	1078552166
	.long	-1202590843
	.long	1079391518
	.long	-1030792151
	.long	1080033525
	.long	1889785610
	.long	1078659645
	.long	858993459
	.long	1079735091
	.long	1374389535
	.long	1077206712
	.long	-343597384
	.long	1079011409
	.long	-1717986918
	.long	1079249305
	.long	-515396076
	.long	1080067194
	.long	-1546188227
	.long	1079438704
	.long	515396076
	.long	1080148869
	.long	-1546188227
	.long	1076411760
	.long	343597384
	.long	1078413230
	.long	1030792151
	.long	1077876490
	.long	-1546188227
	.long	1079291248
	.long	-515396076
	.long	1076040826
	.long	1717986918
	.long	1077716582
	.long	-1546188227
	.long	1076936048
	.long	1030792151
	.long	1078335242
	.long	-1030792151
	.long	1078102261
	.long	687194767
	.long	1079136092
	.long	-343597384
	.long	1073395793
	.long	-858993459
	.long	1078234316
	.long	687194767
	.long	1070763868
	.long	2061584302
	.long	1076375060
	.long	1717986918
	.long	1078003302
	.long	1717986918
	.long	1079248486
	.long	-515396076
	.long	1078985850
	.long	858993459
	.long	1079776051
	.long	1889785610
	.long	1078995517
	.long	-1717986918
	.long	1079740825
	.long	-1546188227
	.long	1077263728
	.long	171798692
	.long	1078928343
	.long	-1030792151
	.long	1079154933
	.long	687194767
	.long	1080047452
	.long	-1889785610
	.long	1078646210
	.long	-343597384
	.long	1079412817
	.long	-1030792151
	.long	1079167221
	.long	1546188227
	.long	1080195727
	.long	-1546188227
	.long	1078295920
	.long	-1374389535
	.long	1079279943
	.long	1546188227
	.long	1079022223
	.long	1717986918
	.long	1079920230
	.long	515396076
	.long	1078766469
	.long	-1717986918
	.long	1079613849
	.long	0
	.long	1079521280
	.long	-171798692
	.long	1080230952
	.long	-343597384
	.long	1076541521
	.long	-858993459
	.long	1078471884
	.long	-858993459
	.long	1077218508
	.long	-2061584302
	.long	1079140843
	.long	-1374389535
	.long	1079275847
	.long	687194767
	.long	1080094556
	.long	-1546188227
	.long	1079381360
	.long	0
	.long	1080391680
	.long	171798692
	.long	1078576087
	.long	1889785610
	.long	1079556669
	.long	-1374389535
	.long	1077272903
	.long	1202590843
	.long	1078975201
	.long	-1374389535
	.long	1079398727
	.long	1030792151
	.long	1080176394
	.long	-858993459
	.long	1079045324
	.long	-687194767
	.long	1079988387
	.long	-171798692
	.long	1079127080
	.long	-858993459
	.long	1080007884
	.long	-1202590843
	.long	1077658910
	.long	1202590843
	.long	1078811361
	.long	-343597384
	.long	1079072849
	.long	515396076
	.long	1079823237
	.long	-343597384
	.long	1074051153
	.long	0
	.long	1077116928
	.long	515396076
	.long	1079475077
	.long	343597384
	.long	1080207278
	.long	-171798692
	.long	1075010600
	.long	515396076
	.long	1078332293
	.long	-1889785610
	.long	1077097922
	.long	-2061584302
	.long	1078301163
	.long	-1030792151
	.long	1076177141
	.long	-171798692
	.long	1078148136
	.long	-1374389535
	.long	1078247751
	.long	687194767
	.long	1079287644
	.long	-1374389535
	.long	1079378247
	.long	1374389535
	.long	1080198840
	.long	-171798692
	.long	1078697000
	.long	1202590843
	.long	1079806689
	.long	-1374389535
	.long	1076453703
	.long	1717986918
	.long	1079244390
	.long	171798692
	.long	1079440343
	.long	1717986918
	.long	1080299110
	.long	515396076
	.long	1079569285
	.long	858993459
	.long	1080316723
	.long	1374389535
	.long	1078943416
	.long	-343597384
	.long	1079634001
	.long	515396076
	.long	1076128645
	.long	1030792151
	.long	1078458122
	.long	1030792151
	.long	1075107594
	.long	1374389535
	.long	1077698232
	.long	-515396076
	.long	1079403642
	.long	-343597384
	.long	1080197201
	.long	515396076
	.long	1077701509
	.long	1202590843
	.long	1078672097
	.long	171798692
	.long	1078887383
	.long	687194767
	.long	1079390044
	.long	1546188227
	.long	1079132815
	.long	515396076
	.long	1079917445
	.long	858993459
	.long	1079104307
	.long	-1030792151
	.long	1080058101
	.long	2061584302
	.long	1075424788
	.long	-2061584302
	.long	1077645803
	.long	171798692
	.long	1079280599
	.long	-515396076
	.long	1079817338
	.long	-1030792151
	.long	1078528245
	.long	1889785610
	.long	1079405117
	.long	171798692
	.long	1079182295
	.long	1202590843
	.long	1080109793
	.long	0
	.long	1079070720
	.long	-1374389535
	.long	1079849287
	.long	343597384
	.long	1079125934
	.long	-858993459
	.long	1079741644
	.long	1546188227
	.long	1075954319
	.long	0
	.long	1078468608
	.long	343597384
	.long	1077413806
	.long	515396076
	.long	1079143301
	.long	515396076
	.long	1078610821
	.long	1374389535
	.long	1079611064
	.long	-1374389535
	.long	1079324999
	.long	-858993459
	.long	1080124620
	.long	0
	.long	1079521280
	.long	-2061584302
	.long	1080248811
	.long	-1717986918
	.long	1079085465
	.long	343597384
	.long	1079949230
	.long	515396076
	.long	1079462789
	.long	171798692
	.long	1080349655
	.long	2061584302
	.long	1075359252
	.long	1202590843
	.long	1078803169
	.long	2061584302
	.long	1079447060
	.long	1202590843
	.long	1080281825
	.long	1030792151
	.long	1079158538
	.long	0
	.long	1080059904
	.long	-1546188227
	.long	1079041392
	.long	-858993459
	.long	1079889100
	.long	1202590843
	.long	1077344993
	.long	-1717986918
	.long	1078761881
	.long	-1717986918
	.long	1078114713
	.long	-858993459
	.long	1079360716
	.long	-1202590843
	.long	1073710366
	.long	515396076
	.long	1078184837
	.long	-1202590843
	.long	1078469918
	.long	-858993459
	.long	1079839948
	.long	-858993459
	.long	1078611148
	.long	-515396076
	.long	1079723130
	.long	515396076
	.long	1077422981
	.long	-687194767
	.long	1078726819
	.long	343597384
	.long	1078806446
	.long	171798692
	.long	1079845847
	.long	687194767
	.long	1077964636
	.long	0
	.long	1079009280
	.long	1546188227
	.long	1070973583
	.long	-1889785610
	.long	1078318530
	.long	2061584302
	.long	1079373332
	.long	1374389535
	.long	1080149688
	.long	-515396076
	.long	1078113402
	.long	-687194767
	.long	1078948003
	.long	-1202590843
	.long	1078986014
	.long	1202590843
	.long	1080031969
	.long	-1202590843
	.long	1078281502
	.long	1546188227
	.long	1079243407
	.long	171798692
	.long	1078051799
	.long	1374389535
	.long	1079385784
	.long	687194767
	.long	1074040668
	.long	-1546188227
	.long	1077362032
	.long	858993459
	.long	1079210803
	.long	-1889785610
	.long	1079936450
	.long	1546188227
	.long	1074840207
	.long	-2061584302
	.long	1078063595
	.long	687194767
	.long	1076301660
	.long	-858993459
	.long	1077710028
	.long	171798692
	.long	1078920151
	.long	-1546188227
	.long	1079283056
	.long	858993459
	.long	1078694707
	.long	-1202590843
	.long	1079465246
	.long	1202590843
	.long	1078983393
	.long	1546188227
	.long	1079915151
	.long	1202590843
	.long	1079134945
	.long	-687194767
	.long	1080047779
	.long	687194767
	.long	1078759260
	.long	1717986918
	.long	1079797350
	.long	-2061584302
	.long	1077965291
	.long	1030792151
	.long	1079457546
	.long	171798692
	.long	1077666775
	.long	1889785610
	.long	1079089725
	.long	1202590843
	.long	1078172385
	.long	-1202590843
	.long	1079162142
	.long	-1202590843
	.long	1079207198
	.long	-343597384
	.long	1080047697
	.long	-171798692
	.long	1079204904
	.long	-1717986918
	.long	1080205721
	.long	-1889785610
	.long	1074197954
	.long	1546188227
	.long	1076118159
	.long	-343597384
	.long	1076246609
	.long	343597384
	.long	1078339502
	.long	-1546188227
	.long	1079205232
	.long	1374389535
	.long	1080168120
	.long	1717986918
	.long	1078371942
	.long	-858993459
	.long	1079590092
	.long	1546188227
	.long	1074971279
	.long	-687194767
	.long	1077866659
	.long	2061584302
	.long	1079402004
	.long	-1030792151
	.long	1080275189
	.long	-687194767
	.long	1075736739
	.long	1546188227
	.long	1078354575
	.long	1030792151
	.long	1077352202
	.long	1889785610
	.long	1079151165
	.long	687194767
	.long	1079435100
	.long	-2061584302
	.long	1080263147
	.long	1717986918
	.long	1076258406
	.long	858993459
	.long	1078604595
	.long	-343597384
	.long	1077246033
	.long	858993459
	.long	1079198515
	.long	-1202590843
	.long	1079354654
	.long	858993459
	.long	1080140595
	.long	-2061584302
	.long	1077416427
	.long	-1030792151
	.long	1078774005
	.long	-1546188227
	.long	1079188848
	.long	687194767
	.long	1080108892
	.long	1374389535
	.long	1079316152
	.long	2061584302
	.long	1079918100
	.long	1202590843
	.long	1079515873
	.long	171798692
	.long	1080273879
	.long	-1374389535
	.long	1079542087
	.long	0
	.long	1080256512
	.long	1202590843
	.long	1079565025
	.long	171798692
	.long	1080292311
	.long	1030792151
	.long	1076451082
	.long	171798692
	.long	1079059415
	.long	1546188227
	.long	1078076047
	.long	2061584302
	.long	1079455252
	.long	-515396076
	.long	1076892794
	.long	1717986918
	.long	1078543974
	.long	-858993459
	.long	1077742796
	.long	1546188227
	.long	1078796943
	.long	1717986918
	.long	1077454438
	.long	343597384
	.long	1078798254
	.long	1030792151
	.long	1077319434
	.long	515396076
	.long	1079102341
	.long	515396076
	.long	1078668165
	.long	-2061584302
	.long	1079820779
	.long	171798692
	.long	1078346711
	.long	0
	.long	1079517184
	.long	-1546188227
	.long	1078549872
	.long	1546188227
	.long	1079726735
	.long	0
	.long	1076199424
	.long	-1030792151
	.long	1078372597
	.long	343597384
	.long	1078921134
	.long	171798692
	.long	1080013783
	.long	-343597384
	.long	1076443217
	.long	687194767
	.long	1078939484
	.long	-687194767
	.long	1077276835
	.long	1546188227
	.long	1078542991
	.long	-1202590843
	.long	1079358750
	.long	0
	.long	1080297472
	.long	687194767
	.long	1075973980
	.long	858993459
	.long	1078580019
	.long	343597384
	.long	1079138222
	.long	-1030792151
	.long	1080031477
	.long	-515396076
	.long	1078670458
	.long	1717986918
	.long	1079703142
	.long	-1546188227
	.long	1079508336
	.long	858993459
	.long	1080396595
	.long	1202590843
	.long	1079077601
	.long	-343597384
	.long	1080051793
	.long	-1546188227
	.long	1078484336
	.long	1546188227
	.long	1079632527
	.long	1717986918
	.long	1078928998
	.long	-1202590843
	.long	1079788830
	.long	171798692
	.long	1077109719
	.long	-687194767
	.long	1079222435
	.long	-1717986918
	.long	1079204249
	.long	-171798692
	.long	1079974952
	.long	-515396076
	.long	1073353850
	.long	1717986918
	.long	1078003302
	.long	-1374389535
	.long	1079411015
	.long	-515396076
	.long	1080237178
	.long	2061584302
	.long	1078992404
	.long	171798692
	.long	1079751639
	.long	-858993459
	.long	1078430924
	.long	1202590843
	.long	1079638753
	.long	1202590843
	.long	1078999777
	.long	-515396076
	.long	1079841914
	.long	-1889785610
	.long	1078285762
	.long	858993459
	.long	1079137075
	.long	343597384
	.long	1078462382
	.long	-1546188227
	.long	1079197040
	.long	-1717986918
	.long	1078049177
	.long	2061584302
	.long	1079004692
	.long	1717986918
	.long	1079547494
	.long	-1717986918
	.long	1080283545
	.long	-1717986918
	.long	1076959641
	.long	-687194767
	.long	1078866083
	.long	0
	.long	1077788672
	.long	0
	.long	1079095296
	.long	0
	.long	1079341056
	.long	-687194767
	.long	1080096931
	.long	1546188227
	.long	1078469263
	.long	-515396076
	.long	1079383162
	.long	1717986918
	.long	1078265446
	.long	-515396076
	.long	1079141498
	.long	1546188227
	.long	1079378575
	.long	-1546188227
	.long	1080188272
	.long	-687194767
	.long	1076064419
	.long	-1374389535
	.long	1078018375
	.long	1030792151
	.long	1079027466
	.long	0
	.long	1079910400
	.long	-858993459
	.long	1078611148
	.long	171798692
	.long	1079428055
	.long	858993459
	.long	1079227187
	.long	1546188227
	.long	1080021647
	.long	-1374389535
	.long	1076322631
	.long	1374389535
	.long	1078468280
	.long	-343597384
	.long	1074051153
	.long	-2061584302
	.long	1078178283
	.long	-687194767
	.long	1079316643
	.long	-858993459
	.long	1080054988
	.long	171798692
	.long	1076208599
	.long	343597384
	.long	1078323118
	.long	-1202590843
	.long	1079530782
	.long	343597384
	.long	1080403886
	.long	-2061584302
	.long	1079505387
	.long	-1202590843
	.long	1080276254
	.long	-858993459
	.long	1078570188
	.long	2061584302
	.long	1079275028
	.long	0
	.long	1079308288
	.long	-2061584302
	.long	1080101355
	.long	1374389535
	.long	1079131832
	.long	1202590843
	.long	1079818977
	.long	1202590843
	.long	1079093985
	.long	-171798692
	.long	1079905320
	.long	-171798692
	.long	1079413800
	.long	-1374389535
	.long	1080193351
	.long	-1546188227
	.long	1078173040
	.long	-343597384
	.long	1079113809
	.long	-1889785610
	.long	1078040002
	.long	-1717986918
	.long	1079216537
	.long	171798692
	.long	1079317463
	.long	1030792151
	.long	1080102666
	.long	1030792151
	.long	1075042058
	.long	343597384
	.long	1078101934
	.long	515396076
	.long	1076620165
	.long	171798692
	.long	1078715351
	.long	-1717986918
	.long	1078581657
	.long	-1717986918
	.long	1079703961
	.long	1202590843
	.long	1078467297
	.long	-858993459
	.long	1079557324
	.long	1030792151
	.long	1079420682
	.long	-1546188227
	.long	1080153456
	.long	687194767
	.long	1074892636
	.long	-687194767
	.long	1078546595
	.long	-1889785610
	.long	1079182786
	.long	1717986918
	.long	1079916134
	.long	1030792151
	.long	1079129866
	.long	1030792151
	.long	1080073994
	.long	1374389535
	.long	1079078584
	.long	1546188227
	.long	1079878287
	.long	1889785610
	.long	1078864445
	.long	-1546188227
	.long	1079471472
	.long	343597384
	.long	1075070894
	.long	1202590843
	.long	1078278881
	.long	1202590843
	.long	1077197537
	.long	1546188227
	.long	1078862479
	.long	-1717986918
	.long	1078278553
	.long	343597384
	.long	1079408558
	.long	2061584302
	.long	1079254548
	.long	-2061584302
	.long	1080349163
	.long	-1546188227
	.long	1076919664
	.long	-1889785610
	.long	1079055810
	.long	343597384
	.long	1079527342
	.long	1030792151
	.long	1080239882
	.long	0
	.long	1077133312
	.long	-343597384
	.long	1078540369
	.long	0
	.long	1079177216
	.long	343597384
	.long	1079932846
	.long	1030792151
	.long	1076942602
	.long	687194767
	.long	1079082844
	.long	1030792151
	.long	1076926218
	.long	-1202590843
	.long	1078748446
	.long	343597384
	.long	1077331886
	.long	-2061584302
	.long	1079013867
	.long	1374389535
	.long	1079221944
	.long	858993459
	.long	1080093491
	.long	-1030792151
	.long	1079085301
	.long	-343597384
	.long	1079945297
	.long	2061584302
	.long	1078177300
	.long	-515396076
	.long	1079153786
	.long	-1717986918
	.long	1077254553
	.long	1717986918
	.long	1079174758
	.long	-687194767
	.long	1079025827
	.long	-1546188227
	.long	1079606640
	.long	-687194767
	.long	1078948003
	.long	-1030792151
	.long	1079703797
	.long	1374389535
	.long	1078533816
	.long	-858993459
	.long	1079381196
	.long	1546188227
	.long	1078878863
	.long	687194767
	.long	1079676764
	.long	-1546188227
	.long	1079348592
	.long	343597384
	.long	1080203182
	.long	1546188227
	.long	1076019855
	.long	-1717986918
	.long	1078360473
	.long	515396076
	.long	1079376773
	.long	0
	.long	1080143872
	.long	0
	.long	1076527104
	.long	-687194767
	.long	1078497443
	.long	1374389535
	.long	1078558392
	.long	343597384
	.long	1079687086
	.long	687194767
	.long	1079324508
	.long	343597384
	.long	1080174510
	.long	-687194767
	.long	1079439523
	.long	-1202590843
	.long	1080134942
	.long	687194767
	.long	1079279452
	.long	-1202590843
	.long	1080057118
	.long	-2061584302
	.long	1078800875
	.long	-858993459
	.long	1079479500
	.long	-1374389535
	.long	1079312711
	.long	-171798692
	.long	1080243240
	.long	2061584302
	.long	1078701588
	.long	1546188227
	.long	1079456399
	.long	-1202590843
	.long	1074103582
	.long	171798692
	.long	1078068183
	.long	-1889785610
	.long	1079014850
	.long	1546188227
	.long	1079820943
	.long	515396076
	.long	1078594437
	.long	-515396076
	.long	1079551098
	.long	171798692
	.long	1076896727
	.long	1546188227
	.long	1078395535
	.long	1374389535
	.long	1077042872
	.long	-2061584302
	.long	1078178283
	.long	687194767
	.long	1078505308
	.long	-2061584302
	.long	1079517675
	.long	687194767
	.long	1078325084
	.long	-1889785610
	.long	1079256514
	.long	-1374389535
	.long	1079259463
	.long	-343597384
	.long	1080049745
	.long	687194767
	.long	1078390620
	.long	1030792151
	.long	1079551754
	.long	687194767
	.long	1076170588
	.long	-1030792151
	.long	1078102261
	.long	1030792151
	.long	1078400778
	.long	-2061584302
	.long	1079460331
	.long	0
	.long	1077460992
	.long	-1546188227
	.long	1079115120
	.long	-171798692
	.long	1079331880
	.long	343597384
	.long	1080117166
	.long	2061584302
	.long	1079033364
	.long	858993459
	.long	1080046387
	.long	-1202590843
	.long	1073841438
	.long	-687194767
	.long	1078341795
	.long	-1717986918
	.long	1079052697
	.long	0
	.long	1079406592
	.long	0
	.long	1078878208
	.long	-343597384
	.long	1079855185
	.long	1717986918
	.long	1076815462
	.long	-687194767
	.long	1078948003
	.long	-1030792151
	.long	1078847733
	.long	515396076
	.long	1079470981
	.long	-171798692
	.long	1076681768
	.long	1546188227
	.long	1078583951
	.long	-687194767
	.long	1078407331
	.long	-171798692
	.long	1079180328
	.long	687194767
	.long	1079361372
	.long	515396076
	.long	1080077189
	.long	1889785610
	.long	1079249469
	.long	1374389535
	.long	1079836344
	.long	-687194767
	.long	1079107747
	.long	2061584302
	.long	1079791124
	.long	-171798692
	.long	1075895336
	.long	-1546188227
	.long	1078369648
	.long	515396076
	.long	1078094725
	.long	-171798692
	.long	1079270440
	.long	2061584302
	.long	1079561748
	.long	858993459
	.long	1080161075
	.long	-1889785610
	.long	1077573058
	.long	-1889785610
	.long	1078851010
	.long	2061584302
	.long	1079459348
	.long	-515396076
	.long	1080306810
	.long	-171798692
	.long	1079270440
	.long	1202590843
	.long	1079913185
	.long	-2061584302
	.long	1074876907
	.long	687194767
	.long	1077923676
	.long	1202590843
	.long	1079274209
	.long	-2061584302
	.long	1080056299
	.long	-1374389535
	.long	1078010183
	.long	1202590843
	.long	1079192289
	.long	-1546188227
	.long	1079192944
	.long	-2061584302
	.long	1080216043
	.long	687194767
	.long	1079213916
	.long	1202590843
	.long	1080058593
	.long	1202590843
	.long	1078393569
	.long	-1546188227
	.long	1079418224
	.long	1374389535
	.long	1077534392
	.long	171798692
	.long	1078830039
	.long	-1202590843
	.long	1078584606
	.long	-171798692
	.long	1079651368
	.long	1717986918
	.long	1076749926
	.long	-171798692
	.long	1078246440
	.long	-2061584302
	.long	1077285355
	.long	-343597384
	.long	1079048273
	.long	1546188227
	.long	1079313039
	.long	-171798692
	.long	1080235048
	.long	-858993459
	.long	1078955212
	.long	858993459
	.long	1079808819
	.long	858993459
	.long	1079481139
	.long	515396076
	.long	1080195973
	.long	1717986918
	.long	1078740582
	.long	687194767
	.long	1079717724
	.long	-515396076
	.long	1075876986
	.long	343597384
	.long	1078716334
	.long	1546188227
	.long	1077854863
	.long	515396076
	.long	1079323525
	.long	-858993459
	.long	1079053516
	.long	1374389535
	.long	1080080056
	.long	-2061584302
	.long	1074418155
	.long	-1717986918
	.long	1078557081
	.long	1889785610
	.long	1079396925
	.long	-343597384
	.long	1080178769
	.long	-1717986918
	.long	1077877145
	.long	171798692
	.long	1079047127
	.long	-1030792151
	.long	1072441589
	.long	1717986918
	.long	1078257254
	.long	-1546188227
	.long	1075658096
	.long	515396076
	.long	1078176645
	.long	-1030792151
	.long	1078585589
	.long	-1889785610
	.long	1079625154
	.long	-1374389535
	.long	1076584775
	.long	1202590843
	.long	1078041313
	.long	687194767
	.long	1078660956
	.long	-1030792151
	.long	1079728373
	.long	-858993459
	.long	1078250700
	.long	-171798692
	.long	1079245864
	.long	171798692
	.long	1078354903
	.long	687194767
	.long	1079439196
	.long	687194767
	.long	1072336732
	.long	-1030792151
	.long	1078290677
	.long	687194767
	.long	1079381852
	.long	343597384
	.long	1080119214
	.long	-515396076
	.long	1078924410
	.long	515396076
	.long	1079749509
	.long	0
	.long	1075576832
	.long	-1717986918
	.long	1077516697
	.long	-515396076
	.long	1079247994
	.long	-1889785610
	.long	1080274370
	.long	-2061584302
	.long	1077137899
	.long	1889785610
	.long	1078569533
	.long	171798692
	.long	1076241367
	.long	171798692
	.long	1078633431
	.long	-515396076
	.long	1079207034
	.long	1889785610
	.long	1080076861
	.long	-1374389535
	.long	1079488839
	.long	1546188227
	.long	1080181391
	.long	2061584302
	.long	1077112340
	.long	-1374389535
	.long	1079034183
	.long	1202590843
	.long	1079560929
	.long	343597384
	.long	1080344494
	.long	2061584302
	.long	1077964308
	.long	171798692
	.long	1079083991
	.long	1546188227
	.long	1079169679
	.long	1374389535
	.long	1080155832
	.long	1030792151
	.long	1078105866
	.long	2061584302
	.long	1079512596
	.long	-1202590843
	.long	1078109470
	.long	0
	.long	1079775232
	.long	-2061584302
	.long	1079325163
	.long	1202590843
	.long	1080160993
	.long	-1202590843
	.long	1079465246
	.long	2061584302
	.long	1080118804
	.long	-171798692
	.long	1079155752
	.long	-515396076
	.long	1079927930
	.long	1546188227
	.long	1077117583
	.long	1202590843
	.long	1078565601
	.long	171798692
	.long	1079292887
	.long	1202590843
	.long	1079954145
	.long	1202590843
	.long	1076656865
	.long	-1030792151
	.long	1079064821
	.long	1374389535
	.long	1074601656
	.long	2061584302
	.long	1077767700
	.long	1889785610
	.long	1077070397
	.long	858993459
	.long	1078727475
	.long	0
	.long	1079537664
	.long	-1546188227
	.long	1080305008
	.long	1202590843
	.long	1079106273
	.long	858993459
	.long	1079898931
	.long	-343597384
	.long	1075230801
	.long	858993459
	.long	1078276915
	.long	-515396076
	.long	1079002234
	.long	-1889785610
	.long	1079911874
	.long	515396076
	.long	1078627205
	.long	-1546188227
	.long	1079737712
	.long	-343597384
	.long	1078999121
	.long	-1202590843
	.long	1079854366
	.long	2061584302
	.long	1078988308
	.long	2061584302
	.long	1079811604
	.long	1374389535
	.long	1077337784
	.long	171798692
	.long	1079075799
	.long	-1889785610
	.long	1077573058
	.long	2061584302
	.long	1078660628
	.long	-1546188227
	.long	1078164848
	.long	-515396076
	.long	1079239802
	.long	-1546188227
	.long	1079405936
	.long	-2061584302
	.long	1080175083
	.long	1717986918
	.long	1078552166
	.long	-1889785610
	.long	1079543234
	.long	-1889785610
	.long	1078531522
	.long	0
	.long	1079496704
	.long	-1030792151
	.long	1077307637
	.long	1546188227
	.long	1078919823
	.long	1889785610
	.long	1078159933
	.long	687194767
	.long	1079279452
	.long	343597384
	.long	1075005358
	.long	687194767
	.long	1077317468
	.long	-1202590843
	.long	1076757790
	.long	1202590843
	.long	1078622945
	.long	687194767
	.long	1078234972
	.long	-515396076
	.long	1079194746
	.long	687194767
	.long	1075089244
	.long	1202590843
	.long	1078049505
	.long	858993459
	.long	1078211379
	.long	-687194767
	.long	1079226531
	.long	-1030792151
	.long	1079195893
	.long	-2061584302
	.long	1079943659
	.long	1717986918
	.long	1079567974
	.long	1374389535
	.long	1080329912
	.long	687194767
	.long	1076989788
	.long	-858993459
	.long	1079078092
	.long	-687194767
	.long	1076818083
	.long	687194767
	.long	1079045980
	.long	-1202590843
	.long	1079235870
	.long	-515396076
	.long	1080159354
	.long	-687194767
	.long	1078898851
	.long	687194767
	.long	1079676764
	.long	-1889785610
	.long	1079199170
	.long	1546188227
	.long	1080177295
	.long	-1374389535
	.long	1077305671
	.long	687194767
	.long	1078783836
	.long	0
	.long	1079197696
	.long	515396076
	.long	1080187781
	.long	2061584302
	.long	1079336468
	.long	1889785610
	.long	1080126013
	.long	1546188227
	.long	1079218831
	.long	-1374389535
	.long	1079996743
	.long	515396076
	.long	1078725509
	.long	-515396076
	.long	1079800954
	.long	-1717986918
	.long	1077795225
	.long	-1717986918
	.long	1078786457
	.long	-1374389535
	.long	1079050567
	.long	1374389535
	.long	1079819960
	.long	858993459
	.long	1079571251
	.long	-2061584302
	.long	1080234475
	.long	-687194767
	.long	1078726819
	.long	515396076
	.long	1079569285
	.long	687194767
	.long	1078554460
	.long	-1030792151
	.long	1079511285
	.long	1202590843
	.long	1079098081
	.long	-1889785610
	.long	1079875010
	.long	-1374389535
	.long	1077027143
	.long	-1202590843
	.long	1078609182
	.long	-858993459
	.long	1076055244
	.long	1374389535
	.long	1078615736
	.long	171798692
	.long	1077224407
	.long	-2061584302
	.long	1078993387
	.long	1717986918
	.long	1075275366
	.long	0
	.long	1078042624
	.long	858993459
	.long	1074737971
	.long	515396076
	.long	1078061957
	.long	-1717986918
	.long	1078778265
	.long	687194767
	.long	1079799644
	.long	858993459
	.long	1077957427
	.long	-171798692
	.long	1079237672
	.long	343597384
	.long	1077856174
	.long	-1546188227
	.long	1078762864
	.long	-171798692
	.long	1076878376
	.long	858993459
	.long	1078457139
	.long	1546188227
	.long	1079485071
	.long	1889785610
	.long	1080283709
	.long	1202590843
	.long	1076886241
	.long	-1889785610
	.long	1078474178
	.long	171798692
	.long	1078658007
	.long	1202590843
	.long	1079536353
	.long	171798692
	.long	1079485399
	.long	-1717986918
	.long	1080177049
	.long	-1889785610
	.long	1078474178
	.long	-1030792151
	.long	1079445749
	.long	0
	.long	1077985280
	.long	515396076
	.long	1079180165
	.long	171798692
	.long	1079170007
	.long	2061584302
	.long	1080086036
	.long	1374389535
	.long	1075715768
	.long	515396076
	.long	1077996421
	.long	-1546188227
	.long	1078476144
	.long	1889785610
	.long	1079278141
	.long	171798692
	.long	1078944727
	.long	-1717986918
	.long	1080091033
	.long	687194767
	.long	1077317468
	.long	-171798692
	.long	1078942760
	.long	1374389535
	.long	1077878456
	.long	1374389535
	.long	1078804152
	.long	1717986918
	.long	1077864038
	.long	-1374389535
	.long	1078477127
	.long	1546188227
	.long	1078469263
	.long	-687194767
	.long	1079689379
	.long	-2061584302
	.long	1077776875
	.long	1717986918
	.long	1078740582
	.long	1030792151
	.long	1077925642
	.long	171798692
	.long	1079043031
	.long	-1030792151
	.long	1078954229
	.long	-343597384
	.long	1079826513
	.long	2061584302
	.long	1079512596
	.long	-858993459
	.long	1080188108
	.long	-1546188227
	.long	1079180656
	.long	-1717986918
	.long	1079998873
	.long	1374389535
	.long	1079221944
	.long	1374389535
	.long	1080071864
	.long	-1374389535
	.long	1074913607
	.long	-687194767
	.long	1077129379
	.long	1889785610
	.long	1078749757
	.long	687194767
	.long	1079492444
	.long	687194767
	.long	1079422812
	.long	1030792151
	.long	1080100618
	.long	1374389535
	.long	1077042872
	.long	-1717986918
	.long	1078376857
	.long	687194767
	.long	1078308700
	.long	0
	.long	1079386112
	.long	-343597384
	.long	1079167057
	.long	1546188227
	.long	1080025743
	.long	-1889785610
	.long	1079440834
	.long	1546188227
	.long	1080130191
	.long	687194767
	.long	1079033692
	.long	343597384
	.long	1079809966
	.long	687194767
	.long	1078054748
	.long	-1717986918
	.long	1079527833
	.long	171798692
	.long	1076667351
	.long	-1889785610
	.long	1078203842
	.long	687194767
	.long	1078054748
	.long	-687194767
	.long	1079201955
	.long	-858993459
	.long	1079553228
	.long	1030792151
	.long	1080274698
	.long	858993459
	.long	1076704051
	.long	-343597384
	.long	1078401105
	.long	-515396076
	.long	1077630074
	.long	1030792151
	.long	1079281418
	.long	-1889785610
	.long	1076819394
	.long	1374389535
	.long	1078410936
	.long	-1546188227
	.long	1079291248
	.long	-1374389535
	.long	1080125767
	.long	343597384
	.long	1077004206
	.long	-1030792151
	.long	1078831349
	.long	-2061584302
	.long	1078112747
	.long	-515396076
	.long	1079424122
	.long	1717986918
	.long	1077782118
	.long	-687194767
	.long	1079025827
	.long	1889785610
	.long	1076660797
	.long	515396076
	.long	1078463365
	.long	1546188227
	.long	1078141583
	.long	-1030792151
	.long	1079163125
	.long	-515396076
	.long	1079071866
	.long	-2061584302
	.long	1079914987
	.long	1546188227
	.long	1074643599
	.long	0
	.long	1078239232
	.long	1546188227
	.long	1075430031
	.long	0
	.long	1078943744
	.long	2061584302
	.long	1077751316
	.long	-1030792151
	.long	1079093493
	.long	1546188227
	.long	1078395535
	.long	-515396076
	.long	1079108730
	.long	-2061584302
	.long	1078759915
	.long	343597384
	.long	1079822254
	.long	1374389535
	.long	1078378168
	.long	0
	.long	1079328768
	.long	0
	.long	1078157312
	.long	-1374389535
	.long	1079288135
	.long	1546188227
	.long	1078805135
	.long	-1717986918
	.long	1079699865
	.long	-687194767
	.long	1078685859
	.long	858993459
	.long	1079567155
	.long	1374389535
	.long	1079115448
	.long	-687194767
	.long	1079951523
	.long	1202590843
	.long	1078123233
	.long	-1030792151
	.long	1079056629
	.long	-1030792151
	.long	1078307061
	.long	343597384
	.long	1079289774
	.long	1030792151
	.long	1079232266
	.long	-171798692
	.long	1080153128
	.long	-1546188227
	.long	1078017392
	.long	-343597384
	.long	1079273553
	.long	-2061584302
	.long	1079140843
	.long	-687194767
	.long	1080055971
	.long	1717986918
	.long	1076192870
	.long	515396076
	.long	1078553477
	.long	1889785610
	.long	1077381693
	.long	-687194767
	.long	1079054499
	.long	0
	.long	1078976512
	.long	-1030792151
	.long	1079982325
	.long	0
	.long	1074921472
	.long	-1889785610
	.long	1077900738
	.long	-858993459
	.long	1078701260
	.long	-1546188227
	.long	1079569776
	.long	-515396076
	.long	1073878138
	.long	-515396076
	.long	1073353850
	.long	1374389535
	.long	1079008952
	.long	1546188227
	.long	1079919247
	.long	-687194767
	.long	1079009443
	.long	1546188227
	.long	1080054415
	.long	-687194767
	.long	1079160995
	.long	-1717986918
	.long	1080050073
	.long	1202590843
	.long	1078917857
	.long	-858993459
	.long	1079794892
	.long	0
	.long	1077329920
	.long	-1889785610
	.long	1079182786
	.long	-343597384
	.long	1076377681
	.long	-1717986918
	.long	1078729113
	.long	-343597384
	.long	1078859857
	.long	1546188227
	.long	1079612047
	.long	2061584302
	.long	1077669396
	.long	1546188227
	.long	1079214735
	.long	515396076
	.long	1076652933
	.long	1374389535
	.long	1078214328
	.long	1717986918
	.long	1079260774
	.long	-687194767
	.long	1080049827
	.long	0
	.long	1079554048
	.long	-1374389535
	.long	1080324423
	.long	1889785610
	.long	1078184509
	.long	1889785610
	.long	1079597629
	.long	-1889785610
	.long	1079178690
	.long	1030792151
	.long	1080071946
	.long	2061584302
	.long	1073851924
	.long	-1030792151
	.long	1076635893
	.long	2061584302
	.long	1077325332
	.long	343597384
	.long	1079007150
	.long	1889785610
	.long	1079278141
	.long	1889785610
	.long	1080119869
	.long	1546188227
	.long	1079104143
	.long	-1030792151
	.long	1079818485
	.long	-1202590843
	.long	1079424286
	.long	1030792151
	.long	1080329994
	.long	-171798692
	.long	1079483432
	.long	1202590843
	.long	1080226529
	.long	1546188227
	.long	1079280271
	.long	1889785610
	.long	1080058429
	.long	-2061584302
	.long	1076580843
	.long	1202590843
	.long	1078983393
	.long	-687194767
	.long	1078472867
	.long	-1717986918
	.long	1079376281
	.long	-687194767
	.long	1078407331
	.long	0
	.long	1079365632
	.long	343597384
	.long	1077299118
	.long	343597384
	.long	1078962094
	.long	-1889785610
	.long	1074197954
	.long	687194767
	.long	1077948252
	.long	1889785610
	.long	1076103741
	.long	1374389535
	.long	1078795960
	.long	-515396076
	.long	1078498426
	.long	1889785610
	.long	1079577149
	.long	343597384
	.long	1079355310
	.long	-2061584302
	.long	1080095211
	.long	-1374389535
	.long	1078174023
	.long	515396076
	.long	1079425925
	.long	-1889785610
	.long	1079219650
	.long	-1202590843
	.long	1080081694
	.long	-2061584302
	.long	1079288299
	.long	1717986918
	.long	1080127078
	.long	1546188227
	.long	1078846095
	.long	343597384
	.long	1079777198
	.long	1374389535
	.long	1079099064
	.long	-343597384
	.long	1080055889
	.long	1717986918
	.long	1079027302
	.long	687194767
	.long	1079807836
	.long	-1030792151
	.long	1078061301
	.long	-858993459
	.long	1079413964
	.long	343597384
	.long	1077839790
	.long	-1546188227
	.long	1079115120
	.long	-687194767
	.long	1079074979
	.long	171798692
	.long	1080130519
	.long	171798692
	.long	1079485399
	.long	1546188227
	.long	1080404623
	.long	515396076
	.long	1077242757
	.long	1889785610
	.long	1078848061
	.long	-1717986918
	.long	1078811033
	.long	-2061584302
	.long	1079759339
	.long	-343597384
	.long	1078114385
	.long	1374389535
	.long	1079484088
	.long	1717986918
	.long	1077880422
	.long	2061584302
	.long	1078955540
	.long	343597384
	.long	1077381038
	.long	-1717986918
	.long	1078974873
	.long	-687194767
	.long	1075081379
	.long	-1030792151
	.long	1078970613
	.long	343597384
	.long	1078716334
	.long	-687194767
	.long	1079959715
	.long	-1717986918
	.long	1076861337
	.long	687194767
	.long	1078275932
	.long	-2061584302
	.long	1079304683
	.long	1030792151
	.long	1080209162
	.long	1717986918
	.long	1079252582
	.long	515396076
	.long	1080245125
	.long	-1546188227
	.long	1078123888
	.long	-858993459
	.long	1079610572
	.long	171798692
	.long	1079497687
	.long	-1889785610
	.long	1080075714
	.long	-2061584302
	.long	1079538155
	.long	515396076
	.long	1080255365
	.long	687194767
	.long	1078824796
	.long	-1717986918
	.long	1079839129
	.long	858993459
	.long	1076146995
	.long	-858993459
	.long	1078250700
	.long	2061584302
	.long	1079004692
	.long	-1546188227
	.long	1079700848
	.long	1889785610
	.long	1078684221
	.long	1717986918
	.long	1079715430
	.long	-687194767
	.long	1079427235
	.long	1717986918
	.long	1080223334
	.long	-343597384
	.long	1079224401
	.long	343597384
	.long	1080194990
	.long	-515396076
	.long	1078563962
	.long	-687194767
	.long	1079750819
	.long	-2061584302
	.long	1079087595
	.long	-515396076
	.long	1079682170
	.long	-1202590843
	.long	1079084318
	.long	858993459
	.long	1080046387
	.long	-515396076
	.long	1078441082
	.long	858993459
	.long	1079567155
	.long	171798692
	.long	1071686615
	.long	-1546188227
	.long	1077280112
	.long	-858993459
	.long	1078684876
	.long	-858993459
	.long	1079491788
	.long	343597384
	.long	1079474094
	.long	1889785610
	.long	1080244797
	.long	515396076
	.long	1078225797
	.long	-1717986918
	.long	1079040409
	.long	-1546188227
	.long	1078762864
	.long	1030792151
	.long	1079842570
	.long	-1202590843
	.long	1079182622
	.long	1030792151
	.long	1080137482
	.long	-687194767
	.long	1078948003
	.long	1030792151
	.long	1079691018
	.long	-1202590843
	.long	1077380382
	.long	0
	.long	1078812672
	.long	-687194767
	.long	1079357603
	.long	1202590843
	.long	1080142561
	.long	1030792151
	.long	1079191306
	.long	343597384
	.long	1080061870
	.long	2061584302
	.long	1079082516
	.long	171798692
	.long	1080046551
	.long	171798692
	.long	1075356631
	.long	1202590843
	.long	1077443297
	.long	2061584302
	.long	1078914580
	.long	-1717986918
	.long	1079814553
	.long	-687194767
	.long	1077850275
	.long	1889785610
	.long	1079380541
	.long	-515396076
	.long	1079403642
	.long	171798692
	.long	1080189911
	.long	-171798692
	.long	1078279208
	.long	-171798692
	.long	1079360552
	.long	515396076
	.long	1077799813
	.long	515396076
	.long	1079081861
	.long	171798692
	.long	1078068183
	.long	1202590843
	.long	1079311073
	.long	687194767
	.long	1079422812
	.long	858993459
	.long	1080128307
	.long	-171798692
	.long	1077943336
	.long	1030792151
	.long	1079133962
	.long	-515396076
	.long	1076204666
	.long	1030792151
	.long	1078761226
	.long	1374389535
	.long	1077731000
	.long	1546188227
	.long	1078821519
	.long	-858993459
	.long	1078455500
	.long	171798692
	.long	1079727063
	.long	0
	.long	1078345728
	.long	-2061584302
	.long	1079370219
	.long	858993459
	.long	1076212531
	.long	-858993459
	.long	1078340812
	.long	-1030792151
	.long	1078388981
	.long	1202590843
	.long	1079331553
	.long	171798692
	.long	1078313943
	.long	1717986918
	.long	1079473766
	.long	-1889785610
	.long	1078760898
	.long	-171798692
	.long	1079639080
	.long	-515396076
	.long	1079346298
	.long	1030792151
	.long	1080151818
	.long	515396076
	.long	1079536517
	.long	1546188227
	.long	1080228495
	.long	687194767
	.long	1079340892
	.long	2061584302
	.long	1080192532
	.long	1374389535
	.long	1074994872
	.long	-1717986918
	.long	1078049177
	.long	-1546188227
	.long	1079541104
	.long	-1889785610
	.long	1080249794
	.long	171798692
	.long	1079563223
	.long	1202590843
	.long	1080249057
	.long	0
	.long	1075314688
	.long	-2061584302
	.long	1078383083
	.long	1717986918
	.long	1078724198
	.long	1374389535
	.long	1079828152
	.long	1202590843
	.long	1077476065
	.long	171798692
	.long	1079022551
	.long	-515396076
	.long	1079350394
	.long	-515396076
	.long	1080235130
	.long	343597384
	.long	1072777134
	.long	2061584302
	.long	1078201876
	.long	-1889785610
	.long	1078293954
	.long	-1030792151
	.long	1079257333
	.long	-1889785610
	.long	1079240130
	.long	1030792151
	.long	1080071946
	.long	343597384
	.long	1079113646
	.long	515396076
	.long	1079696261
	.long	-1717986918
	.long	1077107097
	.long	-1717986918
	.long	1078434201
	.long	515396076
	.long	1078135685
	.long	-858993459
	.long	1079450828
	.long	-687194767
	.long	1077080227
	.long	-515396076
	.long	1078875258
	.long	1717986918
	.long	1077814886
	.long	1717986918
	.long	1078879846
	.long	2061584302
	.long	1077112340
	.long	-1717986918
	.long	1078630809
	.long	-515396076
	.long	1078981754
	.long	343597384
	.long	1080045486
	.long	-687194767
	.long	1078669475
	.long	1202590843
	.long	1079794401
	.long	343597384
	.long	1078265774
	.long	858993459
	.long	1079431987
	.long	2061584302
	.long	1073720852
	.long	-1717986918
	.long	1078237593
	.long	-1374389535
	.long	1075175751
	.long	1030792151
	.long	1077401354
	.long	-1374389535
	.long	1079324999
	.long	-1546188227
	.long	1080079728
	.long	-343597384
	.long	1075034193
	.long	-1546188227
	.long	1078140272
	.long	-171798692
	.long	1079315496
	.long	-687194767
	.long	1080195235
	.long	-515396076
	.long	1078162554
	.long	171798692
	.long	1079034839
	.long	1374389535
	.long	1077534392
	.long	-1546188227
	.long	1078869360
	.long	2061584302
	.long	1078939156
	.long	1717986918
	.long	1079748198
	.long	-515396076
	.long	1077711994
	.long	-1546188227
	.long	1079319920
	.long	171798692
	.long	1079448535
	.long	-2061584302
	.long	1080230379
	.long	-1546188227
	.long	1078893936
	.long	1717986918
	.long	1079453286
	.long	-1546188227
	.long	1079295344
	.long	858993459
	.long	1079997235
	.long	2061584302
	.long	1076833812
	.long	1030792151
	.long	1078834954
	.long	-687194767
	.long	1078030499
	.long	-515396076
	.long	1079084154
	.long	-515396076
	.long	1076532346
	.long	-1717986918
	.long	1078057369
	.long	515396076
	.long	1077865349
	.long	-171798692
	.long	1078901800
	.long	171798692
	.long	1079464919
	.long	-1717986918
	.long	1080140185
	.long	1889785610
	.long	1079065149
	.long	1889785610
	.long	1080015421
	.long	-1374389535
	.long	1077584199
	.long	-1546188227
	.long	1078844784
	.long	-515396076
	.long	1078113402
	.long	1202590843
	.long	1079126753
	.long	1546188227
	.long	1076839055
	.long	-1546188227
	.long	1078361456
	.long	-1030792151
	.long	1077651701
	.long	858993459
	.long	1079190323
	.long	-1717986918
	.long	1079572889
	.long	1546188227
	.long	1080330895
	.long	-1374389535
	.long	1079370055
	.long	-1030792151
	.long	1080164597
	.long	2061584302
	.long	1074900500
	.long	1889785610
	.long	1077791293
	.long	-1030792151
	.long	1077864693
	.long	1374389535
	.long	1078828728
	.long	1202590843
	.long	1075411681
	.long	1374389535
	.long	1078451896
	.long	-1889785610
	.long	1079223746
	.long	-343597384
	.long	1080078417
	.long	858993459
	.long	1078547251
	.long	-1889785610
	.long	1079477698
	.long	1546188227
	.long	1079079567
	.long	-1717986918
	.long	1080099225
	.long	1717986918
	.long	1078863462
	.long	1889785610
	.long	1079904829
	.long	-2061584302
	.long	1078645227
	.long	2061584302
	.long	1079733780
	.long	-1717986918
	.long	1076074905
	.long	1717986918
	.long	1078920806
	.long	2061584302
	.long	1079324180
	.long	0
	.long	1080088576
	.long	1202590843
	.long	1079425761
	.long	-1202590843
	.long	1080059166
	.long	-858993459
	.long	1079086284
	.long	-1889785610
	.long	1080006082
	.long	-1030792151
	.long	1077094645
	.long	-1030792151
	.long	1078380789
	.long	-858993459
	.long	1078619340
	.long	-343597384
	.long	1079556177
	.long	-1374389535
	.long	1079071047
	.long	-1546188227
	.long	1079962992
	.long	-171798692
	.long	1079573544
	.long	1889785610
	.long	1080306237
	.long	-1546188227
	.long	1079450992
	.long	1717986918
	.long	1080311398
	.long	0
	.long	1079488512
	.long	343597384
	.long	1080291246
	.long	-515396076
	.long	1079129210
	.long	-1202590843
	.long	1080001822
	.long	-1374389535
	.long	1079447879
	.long	687194767
	.long	1080180572
	.long	-343597384
	.long	1075296337
	.long	-515396076
	.long	1077679226
	.long	-1374389535
	.long	1077977415
	.long	-687194767
	.long	1079120035
	.long	-1889785610
	.long	1073804738
	.long	-687194767
	.long	1078177955
	.long	1202590843
	.long	1076493025
	.long	-687194767
	.long	1078456483
	.long	171798692
	.long	1078772695
	.long	515396076
	.long	1079782277
	.long	-1717986918
	.long	1078417817
	.long	-1717986918
	.long	1079490969
	.long	-343597384
	.long	1079265361
	.long	-1202590843
	.long	1080014110
	.long	-1717986918
	.long	1076468121
	.long	-2061584302
	.long	1079067115
	.long	-1889785610
	.long	1077867970
	.long	-1546188227
	.long	1079065968
	.long	2061584302
	.long	1077423636
	.long	2061584302
	.long	1078824468
	.long	-1030792151
	.long	1073883381
	.long	1717986918
	.long	1078240870
	.long	1374389535
	.long	1078517432
	.long	0
	.long	1079287808
	.long	1717986918
	.long	1078937190
	.long	-1889785610
	.long	1080001986
	.long	515396076
	.long	1078487941
	.long	-1030792151
	.long	1079494901
	.long	0
	.long	1079119872
	.long	-1374389535
	.long	1079914823
	.long	1546188227
	.long	1074381455
	.long	-1889785610
	.long	1077441986
	.long	-1546188227
	.long	1079561584
	.long	515396076
	.long	1080353669
	.long	343597384
	.long	1079367598
	.long	-1717986918
	.long	1080074649
	.long	-1202590843
	.long	1079285022
	.long	515396076
	.long	1080171397
	.long	-2061584302
	.long	1079501291
	.long	-515396076
	.long	1080327290
	.long	1030792151
	.long	1079478026
	.long	2061584302
	.long	1080174100
	.long	-343597384
	.long	1076508753
	.long	-2061584302
	.long	1078055403
	.long	-343597384
	.long	1078835281
	.long	-171798692
	.long	1079839784
	.long	-1202590843
	.long	1077429534
	.long	-1030792151
	.long	1078921461
	.long	-2061584302
	.long	1079435755
	.long	-343597384
	.long	1080174673
	.long	1030792151
	.long	1078408970
	.long	1374389535
	.long	1079295672
	.long	-1030792151
	.long	1079572725
	.long	343597384
	.long	1080227758
	.long	1889785610
	.long	1079024189
	.long	-1202590843
	.long	1079616798
	.long	1202590843
	.long	1078737633
	.long	-1717986918
	.long	1079814553
	.long	1030792151
	.long	1078941450
	.long	-1889785610
	.long	1079567810
	.long	858993459
	.long	1079198515
	.long	-858993459
	.long	1080067276
	.long	-687194767
	.long	1078440099
	.long	171798692
	.long	1079276503
	.long	1717986918
	.long	1078998630
	.long	-1202590843
	.long	1079698718
	.long	687194767
	.long	1079431004
	.long	1717986918
	.long	1080174182
	.long	-171798692
	.long	1079012392
	.long	-343597384
	.long	1080002641
	.long	1374389535
	.long	1079033528
	.long	515396076
	.long	1080103813
	.long	-858993459
	.long	1075039436
	.long	-687194767
	.long	1077801123
	.long	-1030792151
	.long	1079171317
	.long	-1374389535
	.long	1080262983
	.long	858993459
	.long	1075721011
	.long	1030792151
	.long	1078064906
	.long	-515396076
	.long	1077793914
	.long	-858993459
	.long	1078947020
	.long	1546188227
	.long	1079440015
	.long	687194767
	.long	1080137564
	.long	171798692
	.long	1079026647
	.long	1889785610
	.long	1080046141
	.long	-515396076
	.long	1078072442
	.long	-1030792151
	.long	1079040245
	.long	0
	.long	1078239232
	.long	2061584302
	.long	1079356948
	.long	-515396076
	.long	1079489658
	.long	-1889785610
	.long	1080268226
	.long	1717986918
	.long	1077421670
	.long	1717986918
	.long	1079031398
	.long	171798692
	.long	1078338519
	.long	1030792151
	.long	1079527178
	.long	-2061584302
	.long	1077924331
	.long	1889785610
	.long	1079073341
	.long	0
	.long	1076592640
	.long	-1030792151
	.long	1078626549
	.long	-687194767
	.long	1079275683
	.long	-687194767
	.long	1080092835
	.long	-343597384
	.long	1077393489
	.long	-171798692
	.long	1079213096
	.long	343597384
	.long	1077446574
	.long	-171798692
	.long	1078639656
	.long	-1030792151
	.long	1077389557
	.long	343597384
	.long	1079044014
	.long	1717986918
	.long	1077274214
	.long	-858993459
	.long	1078734028
	.long	-515396076
	.long	1077908602
	.long	-1889785610
	.long	1079178690
	.long	343597384
	.long	1077888942
	.long	-2061584302
	.long	1079095787
	.long	171798692
	.long	1078289367
	.long	-515396076
	.long	1079223418
	.long	515396076
	.long	1076423557
	.long	1374389535
	.long	1078288056
	.long	515396076
	.long	1079159685
	.long	1889785610
	.long	1080201789
	.long	171798692
	.long	1074045911
	.long	-858993459
	.long	1077087436
	.long	-1030792151
	.long	1079433461
	.long	1374389535
	.long	1080192696
	.long	0
	.long	1078738944
	.long	-343597384
	.long	1079920721
	.long	687194767
	.long	1077219164
	.long	2061584302
	.long	1078660628
	.long	1030792151
	.long	1077614346
	.long	0
	.long	1078755328
	.long	-1030792151
	.long	1078421749
	.long	343597384
	.long	1079363502
	.long	-1374389535
	.long	1078387015
	.long	1546188227
	.long	1079411343
	.long	343597384
	.long	1079343022
	.long	2061584302
	.long	1080206868
	.long	1546188227
	.long	1078215311
	.long	-1374389535
	.long	1079320903
	.long	687194767
	.long	1079119708
	.long	-1546188227
	.long	1079876976
	.long	-343597384
	.long	1074444369
	.long	-1889785610
	.long	1077671362
	.long	2061584302
	.long	1077456404
	.long	858993459
	.long	1078588211
	.long	-1202590843
	.long	1078379806
	.long	0
	.long	1079554048
	.long	-1717986918
	.long	1075976601
	.long	171798692
	.long	1078658007
	.long	-1030792151
	.long	1079314677
	.long	-1546188227
	.long	1080032624
	.long	-171798692
	.long	1079143464
	.long	1030792151
	.long	1080043274
	.long	2061584302
	.long	1077308948
	.long	1030792151
	.long	1078736650
	.long	-343597384
	.long	1077180497
	.long	515396076
	.long	1079036805
	.long	-171798692
	.long	1077238824
	.long	-1030792151
	.long	1079269621
	.long	1030792151
	.long	1079387914
	.long	343597384
	.long	1080192942
	.long	-2061584302
	.long	1079390699
	.long	1889785610
	.long	1080007229
	.long	-1202590843
	.long	1078084894
	.long	515396076
	.long	1079413637
	.long	171798692
	.long	1077371863
	.long	858993459
	.long	1078457139
	.long	-1030792151
	.long	1076898037
	.long	1202590843
	.long	1078639329
	.long	-687194767
	.long	1078030499
	.long	1889785610
	.long	1079183933
	.long	-1202590843
	.long	1079174430
	.long	1889785610
	.long	1080134205
	.long	-1717986918
	.long	1077983641
	.long	343597384
	.long	1079379886
	.long	-687194767
	.long	1079394467
	.long	1374389535
	.long	1080153784
	.long	-1030792151
	.long	1078413557
	.long	1546188227
	.long	1079517839
	.long	0
	.long	1077477376
	.long	-858993459
	.long	1078750412
	.long	-2061584302
	.long	1079570923
	.long	858993459
	.long	1080392499
	.long	-1202590843
	.long	1079289118
	.long	-515396076
	.long	1080235130
	.long	-1374389535
	.long	1076617543
	.long	687194767
	.long	1078619996
	.long	2061584302
	.long	1078414868
	.long	171798692
	.long	1079780311
	.long	-687194767
	.long	1078997155
	.long	1030792151
	.long	1079842570
	.long	-171798692
	.long	1077926952
	.long	1202590843
	.long	1078983393
	.long	1030792151
	.long	1079076618
	.long	-1546188227
	.long	1079905648
	.long	-171798692
	.long	1078647848
	.long	-515396076
	.long	1079587962
	.long	-343597384
	.long	1079277649
	.long	1546188227
	.long	1080150671
	.long	171798692
	.long	1077765079
	.long	-515396076
	.long	1079026810
	.long	1202590843
	.long	1079356129
	.long	-343597384
	.long	1080160337
	.long	-1202590843
	.long	1074824478
	.long	343597384
	.long	1077905326
	.long	1030792151
	.long	1077303050
	.long	1374389535
	.long	1078804152
	.long	1546188227
	.long	1078993551
	.long	2061584302
	.long	1079844372
	.long	-1202590843
	.long	1079051550
	.long	-687194767
	.long	1080041635
	.long	1546188227
	.long	1078002319
	.long	1546188227
	.long	1079542415
	.long	-1546188227
	.long	1078697328
	.long	1030792151
	.long	1079641866
	.long	1030792151
	.long	1077122826
	.long	0
	.long	1078992896
	.long	1717986918
	.long	1079326310
	.long	-343597384
	.long	1080266833
	.long	1889785610
	.long	1079482941
	.long	343597384
	.long	1080154030
	.long	1202590843
	.long	1076427489
	.long	1202590843
	.long	1078516449
	.long	687194767
	.long	1077661532
	.long	515396076
	.long	1078979461
	.long	-343597384
	.long	1078655057
	.long	-1546188227
	.long	1079700848
	.long	0
	.long	1079447552
	.long	1546188227
	.long	1080193679
	.long	-1030792151
	.long	1079376117
	.long	-1889785610
	.long	1080198594
	.long	-1202590843
	.long	1077216542
	.long	-171798692
	.long	1079073832
	.long	1717986918
	.long	1078756966
	.long	1374389535
	.long	1079529144
	.long	1202590843
	.long	1078475489
	.long	1717986918
	.long	1079490150
	.long	1202590843
	.long	1074690785
	.long	-1374389535
	.long	1078108487
	.long	-1717986918
	.long	1079409049
	.long	-343597384
	.long	1080262737
	.long	343597384
	.long	1078765486
	.long	2061584302
	.long	1079381524
	.long	-1030792151
	.long	1079220469
	.long	-1202590843
	.long	1080136990
	.long	515396076
	.long	1079212933
	.long	1889785610
	.long	1080212029
	.long	1717986918
	.long	1077356134
	.long	1202590843
	.long	1078950625
	.long	-1202590843
	.long	1077527838
	.long	1889785610
	.long	1078708797
	.long	1030792151
	.long	1079150346
	.long	-343597384
	.long	1080141905
	.long	687194767
	.long	1077235548
	.long	1717986918
	.long	1078986342
	.long	-1202590843
	.long	1078396190
	.long	858993459
	.long	1079243571
	.long	-2061584302
	.long	1079013867
	.long	171798692
	.long	1079862231
	.long	-1202590843
	.long	1078232350
	.long	-858993459
	.long	1079233740
	.long	-343597384
	.long	1079482449
	.long	-1889785610
	.long	1080157634
	.long	-1374389535
	.long	1079271751
	.long	1202590843
	.long	1080081121
	.long	343597384
	.long	1079347118
	.long	1889785610
	.long	1080185405
	.long	-687194767
	.long	1078177955
	.long	1030792151
	.long	1079334666
	.long	-1374389535
	.long	1078952263
	.long	1546188227
	.long	1079751311
	.long	0
	.long	1078272000
	.long	-2061584302
	.long	1079443947
	.long	1889785610
	.long	1078487613
	.long	687194767
	.long	1079361372
	.long	1030792151
	.long	1077090058
	.long	1546188227
	.long	1079001743
	.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 <hip/hip_runtime_api.h>
#include <time.h>
#include <errno.h>


/******************************************************************************
 * This program takes an initial estimate of m and c and finds the associated
 * rms error. It is then as a base to generate and evaluate 8 new estimates,
 * which are steps in different directions in m-c space. The best estimate is
 * then used as the base for another iteration of "generate and evaluate". This
 * continues until none of the new estimates are better than the base. This is
 * a gradient search for a minimum in mc-space.
 *
 * To compile:
 *   nvcc -o culinear culinear.cu -lm
 *
 * To run:
 *   ./culinear
 *
 * 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;

point_t data[] = {
  {83.12,144.47},{65.27,114.80},{65.17,89.01},{68.57,122.90},
  {77.57,136.93},{79.84,146.56},{84.42,123.51},{65.34,106.22},
  {82.20,120.33},{65.35,142.11},{24.06,53.94},{35.61,87.53},
  { 2.02,22.75},{44.01,89.41},{85.58,141.52},{54.14,88.90},
  {35.94,84.11},{22.86,45.76},{75.88,111.25},{54.49,105.83},
  {94.65,139.29},{74.97,140.29},{46.31,94.00},{48.12,108.88},
  {99.29,146.97},{86.76,135.87},{70.11,120.41},{ 5.01,35.32},
  {84.56,147.46},{ 0.19,39.41},{13.16,49.52},{34.11,93.57},
  {78.99,108.24},{38.38,81.59},{79.20,115.25},{84.38,146.00},
  {92.49,166.93},{19.70,61.69},{23.14,82.49},{13.97,44.80},
  { 2.30,51.01},{15.33,34.49},{64.82,106.29},{39.99,76.65},
  {85.93,162.61},{95.23,172.35},{11.05,60.11},{53.84,106.95},
  {71.11,135.65},{33.67,88.76},{ 2.41,41.07},{52.19,108.83},
  {30.21,57.75},{69.24,132.80},{96.44,157.86},{87.85,133.87},
  {15.51,56.56},{53.81,106.32},{50.03,77.59},{77.05,136.93},
  {37.29,81.30},{41.74,95.49},{53.91,109.94},{41.20,67.23},
  {76.87,124.78},{39.99,82.29},{21.12,55.37},{34.62,65.13},
  {20.91,51.88},{76.70,118.05},{ 4.76,45.66},{ 2.29,26.88},
  {27.19,59.89},{ 6.82,36.36},{32.36,78.26},{48.72,99.14},
  {80.55,127.01},{91.69,150.94},{ 9.68,29.41},{90.74,165.08},
  {35.58,70.65},{90.86,166.10},{99.52,157.98},{15.66,47.55},
  {45.23,88.34},{63.46,112.27},{64.21,115.27},{86.10,146.87},
  {72.98,119.38},{31.78,67.38},{73.97,135.76},{24.43,70.15},
  {74.86,135.38},{18.98,50.05},{49.32,106.88},{93.39,154.91},
  { 1.29,39.63},{10.92,61.03},{35.04,64.55},{57.66,111.38},
  {42.04,96.64},{ 8.79,40.02},{92.43,147.28},{49.08,85.76},
  {30.62,85.66},{51.41,97.98},{88.25,141.92},{27.07,61.14},
  {34.88,83.12},{90.82,151.63},{55.07,106.28},{25.73,62.03},
  {34.53,63.56},{ 6.61,34.03},{15.62,50.85},{15.32,67.76},
  {69.03,114.54},{32.46,56.91},{69.37,123.90},{10.78,57.26},
  {10.53,31.37},{53.23,109.49},{ 7.26,44.18},{15.90,63.21},
  { 8.53,36.85},{57.16,109.43},{80.74,122.57},{ 7.25,44.88},
  {87.53,144.92},{90.70,165.27},{61.17,108.23},{53.14,111.23},
  {94.75,138.45},{ 7.60,42.08},{18.83,76.22},{13.48,71.77},
  { 0.66,39.45},{35.94,87.05},{88.24,169.85},{22.00,70.26},
  {93.97,144.15},{93.09,164.94},{41.88,90.98},{35.68,63.90},
  {93.69,160.24},{22.20,53.28},{79.69,118.82},{27.57,57.90},
  {24.98,72.67},{86.50,133.90},{40.28,86.21},{14.60,48.01},
  {72.54,139.19},{55.30,79.54},{ 3.81,33.25},{ 5.68,53.66},
  {17.39,44.50},{82.43,123.95},{26.21,57.88},{50.93,102.91},
  {41.54,78.81},{36.41,65.17},{39.67,84.96},{74.19,130.02},
  {79.23,147.24},{ 5.43,43.11},{59.04,92.40},{ 4.77,21.65},
  {62.12,113.31},{80.55,133.55},{42.32,75.65},{83.01,131.90},
  {39.06,88.34},{98.75,175.85},{31.87,62.41},{58.73,96.47},
  {10.18,53.65},{12.05,47.02},{77.15,116.12},{17.71,57.77},
  {82.98,134.75},{18.11,37.59},{32.30,74.54},{81.96,143.75},
  {11.77,47.90},{24.43,78.01},{60.70,116.42},{72.05,123.46},
  {42.29,75.74},{ 9.64,53.11},{ 3.20,41.20},{75.68,127.51},
  { 7.67,38.82},{ 9.55,45.92},{ 6.22,55.99},{15.01,53.21},
  { 2.50,17.99},{30.97,64.75},{15.92,58.06},{39.77,79.31},
  {30.30,80.76},{75.71,133.13},{18.68,54.70},{14.33,48.80},
  {65.29,112.12},{85.98,156.29},{68.20,115.16},{76.18,127.58},
  {12.05,52.54},{ 1.45,26.32},{51.07,91.58},{70.45,131.48},
  {46.34,110.44},{86.40,140.67},{62.22,107.05},{39.48,96.73},
  {59.28,114.38},{85.33,140.73},{21.85,63.28},{55.32,96.88},
  {54.90,99.09},{81.45,134.43},{94.99,152.75},{60.61,91.15},
  {85.61,132.87},{54.72,105.30},{ 9.85,37.72},{85.74,133.99},
  {30.19,79.45},{87.18,142.65},{27.50,68.06},{48.21,81.13},
  {89.60,139.38},{20.45,61.03},{60.56,101.17},{88.41,139.78},
  {84.60,146.42},{25.34,45.91},{32.69,104.43},{13.63,53.03},
  {80.26,124.62},{97.15,147.49},{99.16,177.78},{81.31,127.71},
  {88.58,136.47},{24.77,59.82},{96.93,160.71},{51.92,102.46},
  {27.33,67.99},{92.40,156.65},{87.22,135.40},{ 8.66,33.01},
  {79.02,137.74},{92.16,158.93},{70.14,117.38},{31.39,83.34},
  {98.54,150.47},{81.39,145.14},{32.19,90.89},{49.53,82.60},
  {83.19,147.94},{65.68,121.26},{19.73,73.98},{19.26,39.84},
  {68.81,127.82},{21.93,64.48},{22.98,67.44},{ 8.19,35.21},
  {83.08,134.02},{69.30,124.24},{19.40,46.96},{64.13,120.93},
  {61.91,118.90},{31.92,72.59},{97.06,157.02},{69.68,131.99},
  {64.02,120.20},{86.75,141.47},{48.62,98.35},{62.34,118.54},
  {23.10,73.71},{ 3.22,24.94},{47.03,98.28},{86.10,129.82},
  {17.62,41.43},{20.60,62.70},{25.56,79.02},{98.74,168.44},
  {25.25,68.33},{ 0.26,17.74},{73.72,125.70},{62.70,101.61},
  {86.10,144.15},{ 7.59,38.21},{65.71,118.18},{57.83,104.28},
  {48.00,91.86},{59.53,110.64},{75.08,131.55},{66.96,113.45},
  {23.44,41.93},{ 7.22,33.51},{22.13,70.49},{20.24,70.87},
  {36.57,59.85},{22.89,50.80},{88.83,128.03},{54.08,109.80},
  {20.87,65.63},{80.15,132.14},{91.71,142.11},{12.37,46.56},
  {31.09,82.71},{ 9.54,28.65},{16.74,44.18},{37.07,73.24},
  { 1.67,41.10},{ 0.29,12.09},{34.05,80.10},{64.07,112.30},
  {64.66,110.15},{21.74,62.28},{74.39,129.73},{53.67,90.13},
  {75.14,147.83},{42.98,82.02},{66.29,121.10},{57.34,102.40},
  {96.75,152.13},{13.36,48.35},{21.05,73.53},{81.77,135.48},
  {88.21,171.75},{51.53,98.91},{21.88,63.71},{89.27,145.47},
  {67.70,125.26},{72.69,126.45},{27.77,58.71},{69.38,115.18},
  { 2.59,19.50},{93.93,149.24},{ 4.84,44.09},{19.21,43.14},
  {10.58,38.47},{41.51,82.49},{88.02,148.21},{55.22,114.17},
  {12.69,79.85},{91.81,160.45},{99.68,162.60},{62.74,103.63},
  {10.21,47.93},{ 5.21,28.37},{89.57,148.01},{28.42,54.46},
  {61.03,88.74},{73.04,120.93},{71.30,131.03},{ 6.42,27.57},
  {82.06,114.82},{50.07,89.66},{76.06,137.34},{69.25,116.77},
  {72.62,110.20},{ 8.88,48.25},{24.03,73.68},{52.59,102.23},
  {84.77,139.15},{96.75,154.31},{70.15,122.87},{93.18,166.62},
  { 6.17,58.46},{92.22,158.34},{74.61,131.25},{67.46,119.20},
  {22.98,57.20},{37.45,86.95},{ 1.97,39.59},{48.29,116.20},
  {52.60,109.07},{24.17,56.13},{58.56,116.56},{32.87,65.50},
  { 0.34,43.67},{87.72,142.21},{37.41,62.88},{64.08,127.92},
  {42.54,79.79},{35.53,88.48},{ 2.57,23.24},{77.80,122.09},
  { 4.19,35.89},{11.53,28.55},{62.03,82.21},{55.15,93.33},
  {63.96,120.79},{73.17,129.77},{57.12,113.60},{32.89,92.86},
  {27.89,70.41},{39.21,74.83},{77.58,129.76},{77.44,149.05},
  { 2.87,10.13},{11.11,44.31},{77.46,144.46},{45.30,100.95},
  { 4.69,30.94},{89.47,157.53},{ 7.61,44.77},{23.09,74.16},
  {91.49,156.06},{11.20,52.40},{21.47,77.05},{86.58,141.10},
  {24.07,57.57},{76.46,137.23},{84.23,120.97},{96.42,157.37},
  {98.02,155.25},{99.42,159.62},{12.67,68.56},{36.27,92.72},
  {16.08,50.55},{29.05,58.27},{24.65,58.31},{22.59,71.18},
  {54.34,115.03},{44.53,96.50},{50.73,109.29},{10.75,45.32},
  {62.06,126.81},{12.61,62.62},{21.94,50.52},{86.83,160.25},
  { 9.03,51.65},{73.37,127.89},{54.41,107.85},{95.96,172.35},
  {69.67,130.26},{48.73,103.54},{62.30,113.08},{19.39,78.51},
  {77.40,124.44},{ 1.63,34.05},{90.02,152.89},{64.47,110.81},
  {47.10,103.92},{64.92,116.32},{42.67,73.30},{48.06,76.96},
  {35.45,65.22},{98.35,158.55},{17.10,60.38},{29.75,70.75},
  {85.75,135.77},{48.27,88.32},{42.05,73.57},{88.04,146.92},
  { 9.72,34.51},{66.61,120.50},{52.60,91.06},{78.80,127.29},
  {11.69,48.24},{ 2.59,39.39},{84.26,130.65},{10.82,43.81},
  {97.33,173.24},{95.78,157.66},{51.35,81.72},{83.75,136.31},
  {72.98,114.92},{70.67,120.19},{90.19,147.54},{39.23,71.88},
  {35.17,78.15},{84.31,136.47},{ 4.96,37.06},{13.96,55.78},
  {51.70,107.90},{48.21,98.95},{90.61,142.67},{ 4.39,50.63},
  {76.09,120.85},{72.86,132.97},{69.73,118.54},{60.33,93.71},
  { 5.07,42.46},{20.73,60.27},{42.45,89.87},{80.47,166.56},
  {16.49,68.34},{97.12,153.22},{19.75,50.44},{75.75,121.87},
  {16.84,69.99},{16.59,56.79},{22.78,65.78},{78.48,135.35},
  {70.14,122.63},{39.36,74.32},{21.60,75.60},{66.51,101.96},
  {62.88,107.89},{50.24,88.20},{60.77,106.24},{86.21,148.74},
  { 9.38,44.95},{87.93,141.50},{13.25,49.13},{50.99,106.87},
  {84.74,145.24},{91.76,140.41},{81.99,130.91},{58.39,94.20},
  {84.02,153.63},{55.36,92.79},{ 2.69,36.03},{65.84,115.04},
  {52.09,98.57},{16.14,46.02},{18.37,39.39},{49.37,96.53},
  {43.87,80.59},{80.77,130.01},{45.87,98.61},{10.53,37.07},
  {46.18,93.03},{24.75,71.96},{85.19,138.24},{66.97,129.60},
  { 2.19,44.38},{68.15,89.75},{60.75,117.13},{15.45,62.88},
  {59.82,93.68},{14.43,51.77},{46.38,75.94},{86.99,133.36},
  {80.16,115.98},{71.51,113.22},{ 8.43,45.23},{36.84,81.44},
  {99.22,143.60},{26.46,59.92},{92.97,161.39},{81.44,120.67},
  { 4.33,31.81},{81.67,130.81},{34.26,76.67},{76.71,150.31},
  {77.99,131.09},{45.96,90.46},{25.87,59.28},{51.79,104.69},
  {14.95,41.47},{22.07,67.88},{84.04,152.63},{63.10,114.30},
  {94.30,147.86},{56.55,108.74},{ 8.29,55.81},{30.76,84.68},
  {68.20,133.71},{ 3.29,50.95},{89.16,145.76},{31.10,67.81},
  { 0.88,41.80},{ 7.31,39.34},{51.82,103.09},{13.69,35.21},
  {54.12,109.39},{41.60,79.94},{44.78,91.74},{ 0.83,42.82},
  {88.24,138.49},{62.16,110.68},{ 7.00,25.60},{80.07,157.43},
  {19.82,51.33},{11.07,53.28},{77.57,133.32},{94.77,146.08},
  {19.43,67.02},{99.17,165.99},{32.86,70.06},{75.29,142.96},
  {37.18,96.22},{37.29,112.25},{84.78,143.59},{93.33,138.44},
  {74.44,121.57},{19.51,51.21},{82.81,123.17},{14.24,68.89},
  { 3.64,29.43},{18.79,56.15},{97.75,161.17},{71.42,119.80},
  { 5.68,42.40},{65.07,120.59},{53.09,109.96},{64.88,117.08},
  {64.22,114.47},{22.87,69.56},{26.46,54.11},{38.98,79.57},
  {89.71,145.31},{50.80,98.09},{50.17,95.25},{22.41,62.02},
  {38.83,81.99},{ 4.82,22.56},{15.01,52.96},{41.12,76.82},
  { 5.14,35.46},{40.40,78.76},{76.89,122.53},{99.60,164.21},
  {17.56,69.70},{15.47,67.74},{79.33,143.39},{61.38,106.24},
  {77.09,145.58},{22.38,57.87},{77.00,146.86},{85.47,139.32},
  {78.29,125.77},{56.09,113.82},{29.85,57.95},{68.02,114.98},
  {99.80,152.56},{56.13,99.68},{50.87,96.14},{70.92,118.34},
  {18.13,52.54},{ 9.65,52.74},{21.14,64.53},{ 5.85,35.25},
  { 3.90,35.84},{57.70,113.74},{32.65,79.44},{30.78,57.23},
  {15.93,47.90},{94.54,158.57},{15.99,48.42},{54.03,97.67},
  {94.56,145.55},{48.42,92.14},{33.50,75.93},{75.31,134.44},
  { 7.53,33.84},{48.48,81.91},{62.78,135.05},{22.56,62.72},
  {31.12,58.49},{30.90,48.51},{48.27,107.01},{29.57,56.55},
  {31.84,67.56},{63.07,115.38},{96.22,146.90},{75.96,125.90},
  {78.48,132.71},{ 4.47,19.69},{56.83,94.99},{90.74,136.22},
  {18.37,45.45},{43.37,88.50},{75.13,127.54},{91.84,139.83},
  {66.99,114.37},{35.62,97.15},{14.32,40.17},{35.62,77.26},
  {98.70,157.47},{14.60,46.19},{27.33,82.11},{15.48,46.49},
  {82.71,139.29},{17.78,59.32},{37.39,90.82},{29.65,66.51},
  {14.27,48.09},{38.27,74.89},{69.32,120.78},{ 3.72,41.25},
  { 6.44,62.75},{29.18,70.64},{46.02,71.57},{57.14,115.12},
  {45.49,85.00},{38.75,82.52},{58.52,107.65},{54.88,99.55},
  {71.98,123.01},{37.71,68.39},{43.32,82.62},{79.11,142.63},
  {34.48,81.63},{73.53,130.77},{10.70,50.84},{23.54,68.26},
  {63.75,124.89},{ 4.50,31.46},{55.35,99.71},{ 2.26, 1.63},
  {65.48,121.04},{65.51,130.58},{74.76,130.05},{61.96,113.45},
  {22.75,76.09},{12.11,56.20},{60.19,102.29},{27.93,78.04},
  {14.21,40.49},{80.85,130.02},{98.75,163.54},{39.58,101.41},
  {75.84,132.72},{ 2.21,14.08},{22.68,65.37},{81.91,138.57},
  {71.29,114.89},{90.83,164.22},{94.44,151.59},{82.04,131.07},
  {13.66,63.96},{48.38,87.90},{46.38,87.25},{22.28,63.31},
  { 2.87,32.37},{10.02,58.24},{49.16,100.16},{86.62,135.56},
  {39.26,90.93},{78.34,133.91},{82.53,139.45},{59.77,112.37},
  {70.98,130.76},{66.60,114.24},{35.82,90.20},{30.53,71.96},
  {69.51,139.87},{94.56,173.33},{21.42,59.83},{58.70,111.28},
  {37.44,94.48},{31.15,63.11},{23.53,63.70},{ 5.11,63.57},
  {55.81,123.51},{15.80,42.37},{83.53,149.47},{80.35,153.86},
  {37.73,102.20},{95.31,133.18},{97.78,155.11},{59.12,116.15},
  {10.35,41.60},{65.22,107.71},{54.83,108.60},{91.01,151.20},
  {78.63,147.74},{51.16,110.76},{70.28,106.57},{70.08,129.60},
  {47.41,99.55},{ 0.52,21.99},{54.85,94.95},{93.87,153.82},
  {40.84,67.40},{57.23,116.36},{76.08,140.72},{62.88,107.11},
  {23.52,58.75},{86.76,141.34},{76.61,131.49},{69.97,129.62},
  { 6.16,24.48},{61.86,114.65},{30.69,88.16},{89.57,147.12},
  {42.47,86.94},{29.92,69.93},{36.03,83.92},{90.74,139.60},
  {32.22,73.11},{10.79,57.18},{28.87,59.02},{47.85,109.31},
  {44.50,87.53},{10.85,44.35},{45.82,85.17},{43.53,93.85},
  {57.17,103.94},{86.07,142.47},{97.68,151.83},{85.74,147.44},
  { 4.78,35.45},{97.96,154.43},{99.31,154.34},{ 6.00,45.64},
  {56.05,115.48},{24.98,66.31},{86.32,152.64},{ 1.08,40.11},
  {42.92,80.64},{79.59,132.72},{71.87,107.43},{19.35,47.20},
  {38.09,92.45},{18.94,60.66},{30.15,60.80},{19.43,53.20},
  {63.91,129.49},{54.38,113.42},{42.06,91.30},{ 1.98,41.20},
  { 5.47,23.84},{84.77,133.67},{ 4.93,38.23},{84.19,147.77},
  {38.91,67.06},{25.87,60.48},{62.61,110.60},{28.58,84.46},
  {92.31,152.06},{61.23,92.60},{82.96,125.80},{15.59,59.43},
  {34.88,70.07},{13.29,35.70},{30.92,61.47},{93.31,141.05},
  {68.91,126.91},{26.63,59.73},{37.41,72.67},{15.63,44.98},
  {27.66,76.55},{99.90,164.33},{87.52,144.03},{ 4.42,29.79},
  {30.91,59.24},{ 6.37,47.74},{78.59,133.51},{50.65,94.09},
  {69.79,136.05},{60.30,120.16},{53.64,109.72},{ 9.80,62.05},
  {84.72,134.75},{90.92,131.16},{70.20,126.34},{19.16,45.57},
  {52.85,98.88},{69.27,123.71},{99.94,161.32},{92.46,161.95},
  {94.75,159.49},{72.82,126.08},{92.27,145.98},{ 5.93,28.08},
  {33.26,72.26},{ 2.12,39.38},{12.99,47.88},{57.53,112.68},
  {46.70,94.90},{81.13,126.83},{12.80,69.03},{30.96,68.96},
  {24.18,59.11},{ 2.27,41.30},{49.74,82.50},{62.55,126.09},
  {48.84,95.14},{72.25,120.77},{ 3.22,24.46},{99.21,167.11},
  {87.37,133.05},{82.33,144.86},{95.53,163.89},{94.11,145.19},
  {13.11,35.64},{59.44,116.19},{24.27,62.07},{91.53,145.26},
  {46.43,82.98},{99.89,151.74},{66.41,102.58},{56.46,114.65},
  {62.68,99.59},{77.05,132.15},{47.38,81.81},{64.85,107.58},
  {91.24,145.20},{65.69,126.13},{66.98,136.61},{ 4.95,29.94},
  {75.39,156.04},{ 7.55,35.93},{29.83,62.85},{91.79,140.73},
  {66.56,129.57},{36.16,67.39},{41.25,86.72},{94.82,156.68},
  {24.15,66.85},{44.28,97.11},{31.82,69.41},{13.75,53.07},
  {81.76,135.27},{23.72,77.94},{24.53,53.47},{23.66,67.62},
  {21.90,56.35},{31.58,75.84},{31.28,70.78},{42.78,78.57},
  {12.46,42.74},{74.68,148.57},{ 2.58,19.05},{91.39,147.46},
  {56.50,121.13},{21.06,54.11},{27.09,57.00},{46.82,87.12},
  {45.76,90.04},{85.87,149.19},{40.52,84.52},{72.24,118.46},
  { 3.34,27.96},{24.68,51.90},{45.54,98.75},{ 9.05,54.03},
  {84.14,127.96},{73.69,129.22},{22.43,56.43},{20.47,67.18},
  {21.36,81.39},{88.61,147.49},{88.78,126.41},{36.54,90.18},
  {23.39,47.90},{16.16,53.46},{34.88,76.16},{75.58,140.32},
  {33.45,88.12},{89.01,142.71},{46.57,96.54},{25.00,56.85},
  {99.78,171.85},{82.58,152.64},{13.94,52.87},{46.61,112.56},
  {64.76,116.36},{31.86,63.96},{69.61,120.21},{53.72,100.82},
  {81.88,142.33},{29.39,66.57},{86.67,143.51},{ 4.13,31.53},
  {22.34,58.49},{64.54,116.47},{68.08,129.02},{34.02,98.04},
  {55.23,104.11},{19.59,64.50},{84.85,156.51},{94.41,142.74},
  {12.49,49.71},{27.81,63.84},{53.94,107.71},{92.25,147.58},
  {87.89,148.18},{21.02,69.44},{57.05,97.23},{48.46,94.85},
  { 3.81,37.26},{89.90,156.01},{57.31,88.22},{78.39,140.66},
  {77.93,149.82},{23.15,62.96},{25.77,55.58},{74.11,141.26},
  {21.31,64.10},{46.04,79.80},{65.78,117.56},{41.04,79.20},
  {94.38,143.18},{81.52,133.84},{86.12,146.57},{39.38,85.36},
  {63.01,110.79},{42.25,92.03},{48.83,86.99},{19.09,65.04}
};

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);
}
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;


//Device variables
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);
  }

//Allocate memory for d_dc
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);
  }

//Allocate memory for d_data
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);    
    }

//Copy memory for dm to d_dm
  error = hipMemcpy(d_dm, dm, (sizeof(double) * 8), hipMemcpyHostToDevice);  
  if(error){
    fprintf(stderr, "hipMemcpy to d_dm returned %d %s\n", error,
      hipGetErrorString(error));
  }

//Copy memory for dc to d_dc
  error = hipMemcpy(d_dc, dc, (sizeof(double) * 8), hipMemcpyHostToDevice);  
  if(error){
    fprintf(stderr, "hipMemcpy to d_dc returned %d %s\n", error,
      hipGetErrorString(error));
  }

//Copy memory for data to d_data
  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++) {

//Host variable storing the array returned from the kernel function.
double h_error_sum_arr[1000];

//Stores the total sum of the values from the error sum array.
double error_sum_total;

//Stores the mean of the total sum of the error sums.
double error_sum_mean;

//Call the rms_error function using 100 blocks and 10 threads.
d_rms_error <<<100,10>>>(&d_dm[i], &d_dc[i], d_error_sum_arr, d_data);
hipDeviceSynchronize();




//Copy memory for d_error_sum_arr
 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));
 }

//Loop through the error sum array returned from the kernel function
for(int j=0; j<n_data; j++) {
//Add each error sum to the error sum total.
    error_sum_total += h_error_sum_arr[j];
  }

//Calculate the mean for the error sum.
error_sum_mean = error_sum_total / n_data;

//Calculate the square root for the error sum mean.
e[i] = sqrt(error_sum_mean);


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

//Reset the error sum total.
error_sum_total = 0;
    }

    //printf("best m,c is %lf,%lf with error %lf in direction %d\n",
      //dm[best_error_i], dc[best_error_i], best_error, best_error_i);

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

  }

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

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

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

//Free memory for d_error_sum_arr
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);

//Get the system time after we have run the linear regression function.
clock_gettime(CLOCK_MONOTONIC, &finish);

//Calculate the time spent between the start time and end time.
  time_difference(&start, &finish, &time_elapsed);

//Output the time spent running the program.
  printf("Time elapsed was %lldns or %0.9lfs\n", time_elapsed,
         (time_elapsed/1.0e9));

  return 0;
}

	.text
	.file	"culinear.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	0x4054c7ae147ae148              # double 83.120000000000005
	.quad	0x40620f0a3d70a3d7              # double 144.47
	.quad	0x40505147ae147ae1              # double 65.269999999999996
	.quad	0x405cb33333333333              # double 114.8
	.quad	0x40504ae147ae147b              # double 65.170000000000002
	.quad	0x405640a3d70a3d71              # double 89.010000000000005
	.quad	0x4051247ae147ae14              # double 68.569999999999993
	.quad	0x405eb9999999999a              # double 122.90000000000001
	.quad	0x4053647ae147ae14              # double 77.569999999999993
	.quad	0x40611dc28f5c28f6              # double 136.93000000000001
	.quad	0x4053f5c28f5c28f6              # double 79.840000000000003
	.quad	0x406251eb851eb852              # double 146.56
	.quad	0x40551ae147ae147b              # double 84.420000000000001
	.quad	0x405ee0a3d70a3d71              # double 123.51000000000001
	.quad	0x405055c28f5c28f6              # double 65.340000000000003
	.quad	0x405a8e147ae147ae              # double 106.22
	.quad	0x40548ccccccccccd              # double 82.200000000000002
	.quad	0x405e151eb851eb85              # double 120.33
	.quad	0x4050566666666666              # double 65.349999999999994
	.quad	0x4061c3851eb851ec              # double 142.11000000000001
	.quad	0x40380f5c28f5c28f              # double 24.059999999999999
	.quad	0x404af851eb851eb8              # double 53.939999999999998
	.quad	0x4041ce147ae147ae              # double 35.609999999999999
	.quad	0x4055e1eb851eb852              # double 87.530000000000001
	.quad	0x400028f5c28f5c29              # double 2.02
	.quad	0x4036c00000000000              # double 22.75
	.quad	0x40460147ae147ae1              # double 44.009999999999998
	.quad	0x40565a3d70a3d70a              # double 89.409999999999997
	.quad	0x4055651eb851eb85              # double 85.579999999999998
	.quad	0x4061b0a3d70a3d71              # double 141.52000000000001
	.quad	0x404b11eb851eb852              # double 54.140000000000001
	.quad	0x405639999999999a              # double 88.900000000000006
	.quad	0x4041f851eb851eb8              # double 35.939999999999998
	.quad	0x4055070a3d70a3d7              # double 84.109999999999999
	.quad	0x4036dc28f5c28f5c              # double 22.859999999999999
	.quad	0x4046e147ae147ae1              # double 45.759999999999998
	.quad	0x4052f851eb851eb8              # double 75.879999999999995
	.quad	0x405bd00000000000              # double 111.25
	.quad	0x404b3eb851eb851f              # double 54.490000000000002
	.quad	0x405a751eb851eb85              # double 105.83
	.quad	0x4057a9999999999a              # double 94.650000000000005
	.quad	0x40616947ae147ae1              # double 139.28999999999999
	.quad	0x4052be147ae147ae              # double 74.969999999999999
	.quad	0x40618947ae147ae1              # double 140.28999999999999
	.quad	0x404727ae147ae148              # double 46.310000000000002
	.quad	0x4057800000000000              # double 94
	.quad	0x40480f5c28f5c28f              # double 48.119999999999997
	.quad	0x405b3851eb851eb8              # double 108.88
	.quad	0x4058d28f5c28f5c3              # double 99.290000000000006
	.quad	0x40625f0a3d70a3d7              # double 146.97
	.quad	0x4055b0a3d70a3d71              # double 86.760000000000005
	.quad	0x4060fbd70a3d70a4              # double 135.87
	.quad	0x4051870a3d70a3d7              # double 70.109999999999999
	.quad	0x405e1a3d70a3d70a              # double 120.41
	.quad	0x40140a3d70a3d70a              # double 5.0099999999999998
	.quad	0x4041a8f5c28f5c29              # double 35.32
	.quad	0x405523d70a3d70a4              # double 84.560000000000002
	.quad	0x40626eb851eb851f              # double 147.46000000000001
	.quad	0x3fc851eb851eb852              # double 0.19
	.quad	0x4043b47ae147ae14              # double 39.409999999999997
	.quad	0x402a51eb851eb852              # double 13.16
	.quad	0x4048c28f5c28f5c3              # double 49.520000000000003
	.quad	0x40410e147ae147ae              # double 34.109999999999999
	.quad	0x4057647ae147ae14              # double 93.569999999999993
	.quad	0x4053bf5c28f5c28f              # double 78.989999999999994
	.quad	0x405b0f5c28f5c28f              # double 108.23999999999999
	.quad	0x404330a3d70a3d71              # double 38.380000000000003
	.quad	0x405465c28f5c28f6              # double 81.590000000000003
	.quad	0x4053cccccccccccd              # double 79.200000000000002
	.quad	0x405cd00000000000              # double 115.25
	.quad	0x40551851eb851eb8              # double 84.379999999999995
	.quad	0x4062400000000000              # double 146
	.quad	0x40571f5c28f5c28f              # double 92.489999999999994
	.quad	0x4064ddc28f5c28f6              # double 166.93000000000001
	.quad	0x4033b33333333333              # double 19.699999999999999
	.quad	0x404ed851eb851eb8              # double 61.689999999999998
	.quad	0x403723d70a3d70a4              # double 23.140000000000001
	.quad	0x40549f5c28f5c28f              # double 82.489999999999994
	.quad	0x402bf0a3d70a3d71              # double 13.970000000000001
	.quad	0x4046666666666666              # double 44.799999999999997
	.quad	0x4002666666666666              # double 2.2999999999999998
	.quad	0x40498147ae147ae1              # double 51.009999999999998
	.quad	0x402ea8f5c28f5c29              # double 15.33
	.quad	0x40413eb851eb851f              # double 34.490000000000002
	.quad	0x4050347ae147ae14              # double 64.819999999999993
	.quad	0x405a928f5c28f5c3              # double 106.29000000000001
	.quad	0x4043feb851eb851f              # double 39.990000000000002
	.quad	0x405329999999999a              # double 76.650000000000006
	.quad	0x40557b851eb851ec              # double 85.930000000000007
	.quad	0x406453851eb851ec              # double 162.61000000000001
	.quad	0x4057ceb851eb851f              # double 95.230000000000003
	.quad	0x40658b3333333333              # double 172.34999999999999
	.quad	0x402619999999999a              # double 11.050000000000001
	.quad	0x404e0e147ae147ae              # double 60.109999999999999
	.quad	0x404aeb851eb851ec              # double 53.840000000000003
	.quad	0x405abccccccccccd              # double 106.95
	.quad	0x4051c70a3d70a3d7              # double 71.109999999999999
	.quad	0x4060f4cccccccccd              # double 135.65000000000001
	.quad	0x4040d5c28f5c28f6              # double 33.670000000000002
	.quad	0x405630a3d70a3d71              # double 88.760000000000005
	.quad	0x400347ae147ae148              # double 2.4100000000000001
	.quad	0x404488f5c28f5c29              # double 41.07
	.quad	0x404a1851eb851eb8              # double 52.189999999999998
	.quad	0x405b351eb851eb85              # double 108.83
	.quad	0x403e35c28f5c28f6              # double 30.210000000000001
	.quad	0x404ce00000000000              # double 57.75
	.quad	0x40514f5c28f5c28f              # double 69.239999999999995
	.quad	0x406099999999999a              # double 132.80000000000001
	.quad	0x40581c28f5c28f5c              # double 96.439999999999998
	.quad	0x4063bb851eb851ec              # double 157.86000000000001
	.quad	0x4055f66666666666              # double 87.849999999999994
	.quad	0x4060bbd70a3d70a4              # double 133.87
	.quad	0x402f051eb851eb85              # double 15.51
	.quad	0x404c47ae147ae148              # double 56.560000000000002
	.quad	0x404ae7ae147ae148              # double 53.810000000000002
	.quad	0x405a947ae147ae14              # double 106.31999999999999
	.quad	0x404903d70a3d70a4              # double 50.030000000000001
	.quad	0x405365c28f5c28f6              # double 77.590000000000003
	.quad	0x4053433333333333              # double 77.049999999999997
	.quad	0x40611dc28f5c28f6              # double 136.93000000000001
	.quad	0x4042a51eb851eb85              # double 37.289999999999999
	.quad	0x4054533333333333              # double 81.299999999999997
	.quad	0x4044deb851eb851f              # double 41.740000000000002
	.quad	0x4057df5c28f5c28f              # double 95.489999999999994
	.quad	0x404af47ae147ae14              # double 53.909999999999997
	.quad	0x405b7c28f5c28f5c              # double 109.94
	.quad	0x404499999999999a              # double 41.200000000000003
	.quad	0x4050ceb851eb851f              # double 67.230000000000004
	.quad	0x405337ae147ae148              # double 76.870000000000005
	.quad	0x405f31eb851eb852              # double 124.78
	.quad	0x4043feb851eb851f              # double 39.990000000000002
	.quad	0x4054928f5c28f5c3              # double 82.290000000000006
	.quad	0x40351eb851eb851f              # double 21.120000000000001
	.quad	0x404baf5c28f5c28f              # double 55.369999999999997
	.quad	0x40414f5c28f5c28f              # double 34.619999999999997
	.quad	0x40504851eb851eb8              # double 65.129999999999995
	.quad	0x4034e8f5c28f5c29              # double 20.91
	.quad	0x4049f0a3d70a3d71              # double 51.880000000000003
	.quad	0x40532ccccccccccd              # double 76.700000000000002
	.quad	0x405d833333333333              # double 118.05
	.quad	0x40130a3d70a3d70a              # double 4.7599999999999998
	.quad	0x4046d47ae147ae14              # double 45.659999999999997
	.quad	0x400251eb851eb852              # double 2.29
	.quad	0x403ae147ae147ae1              # double 26.879999999999999
	.quad	0x403b30a3d70a3d71              # double 27.190000000000001
	.quad	0x404df1eb851eb852              # double 59.890000000000001
	.quad	0x401b47ae147ae148              # double 6.8200000000000003
	.quad	0x40422e147ae147ae              # double 36.359999999999999
	.quad	0x40402e147ae147ae              # double 32.359999999999999
	.quad	0x405390a3d70a3d71              # double 78.260000000000005
	.quad	0x40485c28f5c28f5c              # double 48.719999999999999
	.quad	0x4058c8f5c28f5c29              # double 99.14
	.quad	0x4054233333333333              # double 80.549999999999997
	.quad	0x405fc0a3d70a3d71              # double 127.01000000000001
	.quad	0x4056ec28f5c28f5c              # double 91.689999999999998
	.quad	0x4062de147ae147ae              # double 150.94
	.quad	0x40235c28f5c28f5c              # double 9.6799999999999997
	.quad	0x403d68f5c28f5c29              # double 29.41
	.quad	0x4056af5c28f5c28f              # double 90.739999999999994
	.quad	0x4064a28f5c28f5c3              # double 165.08000000000001
	.quad	0x4041ca3d70a3d70a              # double 35.579999999999998
	.quad	0x4051a9999999999a              # double 70.650000000000006
	.quad	0x4056b70a3d70a3d7              # double 90.859999999999999
	.quad	0x4064c33333333333              # double 166.09999999999999
	.quad	0x4058e147ae147ae1              # double 99.519999999999996
	.quad	0x4063bf5c28f5c28f              # double 157.97999999999999
	.quad	0x402f51eb851eb852              # double 15.66
	.quad	0x4047c66666666666              # double 47.549999999999997
	.quad	0x40469d70a3d70a3d              # double 45.229999999999997
	.quad	0x405615c28f5c28f6              # double 88.340000000000003
	.quad	0x404fbae147ae147b              # double 63.460000000000001
	.quad	0x405c1147ae147ae1              # double 112.27
	.quad	0x40500d70a3d70a3d              # double 64.209999999999994
	.quad	0x405cd147ae147ae1              # double 115.27
	.quad	0x4055866666666666              # double 86.099999999999994
	.quad	0x40625bd70a3d70a4              # double 146.87
	.quad	0x40523eb851eb851f              # double 72.980000000000004
	.quad	0x405dd851eb851eb8              # double 119.38
	.quad	0x403fc7ae147ae148              # double 31.780000000000001
	.quad	0x4050d851eb851eb8              # double 67.379999999999995
	.quad	0x40527e147ae147ae              # double 73.969999999999999
	.quad	0x4060f851eb851eb8              # double 135.75999999999999
	.quad	0x40386e147ae147ae              # double 24.43
	.quad	0x405189999999999a              # double 70.150000000000006
	.quad	0x4052b70a3d70a3d7              # double 74.859999999999999
	.quad	0x4060ec28f5c28f5c              # double 135.38
	.quad	0x4032fae147ae147b              # double 18.98
	.quad	0x4049066666666666              # double 50.049999999999997
	.quad	0x4048a8f5c28f5c29              # double 49.32
	.quad	0x405ab851eb851eb8              # double 106.88
	.quad	0x405758f5c28f5c29              # double 93.39
	.quad	0x40635d1eb851eb85              # double 154.91
	.quad	0x3ff4a3d70a3d70a4              # double 1.29
	.quad	0x4043d0a3d70a3d71              # double 39.630000000000003
	.quad	0x4025d70a3d70a3d7              # double 10.92
	.quad	0x404e83d70a3d70a4              # double 61.030000000000001
	.quad	0x4041851eb851eb85              # double 35.039999999999999
	.quad	0x4050233333333333              # double 64.549999999999997
	.quad	0x404cd47ae147ae14              # double 57.659999999999997
	.quad	0x405bd851eb851eb8              # double 111.38
	.quad	0x4045051eb851eb85              # double 42.039999999999999
	.quad	0x405828f5c28f5c29              # double 96.64
	.quad	0x4021947ae147ae14              # double 8.7899999999999991
	.quad	0x4044028f5c28f5c3              # double 40.020000000000003
	.quad	0x40571b851eb851ec              # double 92.430000000000007
	.quad	0x406268f5c28f5c29              # double 147.28
	.quad	0x40488a3d70a3d70a              # double 49.079999999999998
	.quad	0x405570a3d70a3d71              # double 85.760000000000005
	.quad	0x403e9eb851eb851f              # double 30.620000000000001
	.quad	0x40556a3d70a3d70a              # double 85.659999999999997
	.quad	0x4049b47ae147ae14              # double 51.409999999999997
	.quad	0x40587eb851eb851f              # double 97.980000000000003
	.quad	0x4056100000000000              # double 88.25
	.quad	0x4061bd70a3d70a3d              # double 141.91999999999999
	.quad	0x403b11eb851eb852              # double 27.07
	.quad	0x404e91eb851eb852              # double 61.140000000000001
	.quad	0x404170a3d70a3d71              # double 34.880000000000003
	.quad	0x4054c7ae147ae148              # double 83.120000000000005
	.quad	0x4056b47ae147ae14              # double 90.819999999999993
	.quad	0x4062f428f5c28f5c              # double 151.63
	.quad	0x404b88f5c28f5c29              # double 55.07
	.quad	0x405a91eb851eb852              # double 106.28
	.quad	0x4039bae147ae147b              # double 25.73
	.quad	0x404f03d70a3d70a4              # double 62.030000000000001
	.quad	0x404143d70a3d70a4              # double 34.530000000000001
	.quad	0x404fc7ae147ae148              # double 63.560000000000002
	.quad	0x401a70a3d70a3d71              # double 6.6100000000000003
	.quad	0x404103d70a3d70a4              # double 34.030000000000001
	.quad	0x402f3d70a3d70a3d              # double 15.619999999999999
	.quad	0x40496ccccccccccd              # double 50.850000000000001
	.quad	0x402ea3d70a3d70a4              # double 15.32
	.quad	0x4050f0a3d70a3d71              # double 67.760000000000005
	.quad	0x405141eb851eb852              # double 69.030000000000001
	.quad	0x405ca28f5c28f5c3              # double 114.54000000000001
	.quad	0x40403ae147ae147b              # double 32.460000000000001
	.quad	0x404c747ae147ae14              # double 56.909999999999997
	.quad	0x405157ae147ae148              # double 69.370000000000005
	.quad	0x405ef9999999999a              # double 123.90000000000001
	.quad	0x40258f5c28f5c28f              # double 10.779999999999999
	.quad	0x404ca147ae147ae1              # double 57.259999999999998
	.quad	0x40250f5c28f5c28f              # double 10.529999999999999
	.quad	0x403f5eb851eb851f              # double 31.370000000000001
	.quad	0x404a9d70a3d70a3d              # double 53.229999999999997
	.quad	0x405b5f5c28f5c28f              # double 109.48999999999999
	.quad	0x401d0a3d70a3d70a              # double 7.2599999999999998
	.quad	0x4046170a3d70a3d7              # double 44.18
	.quad	0x402fcccccccccccd              # double 15.9
	.quad	0x404f9ae147ae147b              # double 63.210000000000001
	.quad	0x40210f5c28f5c28f              # double 8.5299999999999994
	.quad	0x40426ccccccccccd              # double 36.850000000000001
	.quad	0x404c947ae147ae14              # double 57.159999999999997
	.quad	0x405b5b851eb851ec              # double 109.43000000000001
	.quad	0x40542f5c28f5c28f              # double 80.739999999999994
	.quad	0x405ea47ae147ae14              # double 122.56999999999999
	.quad	0x401d000000000000              # double 7.25
	.quad	0x404670a3d70a3d71              # double 44.880000000000003
	.quad	0x4055e1eb851eb852              # double 87.530000000000001
	.quad	0x40621d70a3d70a3d              # double 144.91999999999999
	.quad	0x4056accccccccccd              # double 90.700000000000002
	.quad	0x4064a8a3d70a3d71              # double 165.27000000000001
	.quad	0x404e95c28f5c28f6              # double 61.170000000000002
	.quad	0x405b0eb851eb851f              # double 108.23
	.quad	0x404a91eb851eb852              # double 53.140000000000001
	.quad	0x405bceb851eb851f              # double 111.23
	.quad	0x4057b00000000000              # double 94.75
	.quad	0x40614e6666666666              # double 138.44999999999999
	.quad	0x401e666666666666              # double 7.5999999999999996
	.quad	0x40450a3d70a3d70a              # double 42.079999999999998
	.quad	0x4032d47ae147ae14              # double 18.829999999999998
	.quad	0x40530e147ae147ae              # double 76.219999999999999
	.quad	0x402af5c28f5c28f6              # double 13.48
	.quad	0x4051f147ae147ae1              # double 71.769999999999996
	.quad	0x3fe51eb851eb851f              # double 0.66000000000000003
	.quad	0x4043b9999999999a              # double 39.450000000000003
	.quad	0x4041f851eb851eb8              # double 35.939999999999998
	.quad	0x4055c33333333333              # double 87.049999999999997
	.quad	0x40560f5c28f5c28f              # double 88.239999999999994
	.quad	0x40653b3333333333              # double 169.84999999999999
	.quad	0x4036000000000000              # double 22
	.quad	0x405190a3d70a3d71              # double 70.260000000000005
	.quad	0x40577e147ae147ae              # double 93.969999999999998
	.quad	0x406204cccccccccd              # double 144.15000000000001
	.quad	0x405745c28f5c28f6              # double 93.090000000000003
	.quad	0x40649e147ae147ae              # double 164.94
	.quad	0x4044f0a3d70a3d71              # double 41.880000000000003
	.quad	0x4056beb851eb851f              # double 90.980000000000003
	.quad	0x4041d70a3d70a3d7              # double 35.68
	.quad	0x404ff33333333333              # double 63.899999999999999
	.quad	0x40576c28f5c28f5c              # double 93.689999999999998
	.quad	0x406407ae147ae148              # double 160.24000000000001
	.quad	0x4036333333333333              # double 22.199999999999999
	.quad	0x404aa3d70a3d70a4              # double 53.280000000000001
	.quad	0x4053ec28f5c28f5c              # double 79.689999999999998
	.quad	0x405db47ae147ae14              # double 118.81999999999999
	.quad	0x403b91eb851eb852              # double 27.57
	.quad	0x404cf33333333333              # double 57.899999999999999
	.quad	0x4038fae147ae147b              # double 24.98
	.quad	0x40522ae147ae147b              # double 72.670000000000002
	.quad	0x4055a00000000000              # double 86.5
	.quad	0x4060bccccccccccd              # double 133.90000000000001
	.quad	0x404423d70a3d70a4              # double 40.280000000000001
	.quad	0x40558d70a3d70a3d              # double 86.209999999999993
	.quad	0x402d333333333333              # double 14.6
	.quad	0x40480147ae147ae1              # double 48.009999999999998
	.quad	0x4052228f5c28f5c3              # double 72.540000000000006
	.quad	0x406166147ae147ae              # double 139.19
	.quad	0x404ba66666666666              # double 55.299999999999997
	.quad	0x4053e28f5c28f5c3              # double 79.540000000000006
	.quad	0x400e7ae147ae147b              # double 3.8100000000000001
	.quad	0x4040a00000000000              # double 33.25
	.quad	0x4016b851eb851eb8              # double 5.6799999999999997
	.quad	0x404ad47ae147ae14              # double 53.659999999999997
	.quad	0x403163d70a3d70a4              # double 17.390000000000001
	.quad	0x4046400000000000              # double 44.5
	.quad	0x40549b851eb851ec              # double 82.430000000000007
	.quad	0x405efccccccccccd              # double 123.95
	.quad	0x403a35c28f5c28f6              # double 26.210000000000001
	.quad	0x404cf0a3d70a3d71              # double 57.880000000000003
	.quad	0x4049770a3d70a3d7              # double 50.93
	.quad	0x4059ba3d70a3d70a              # double 102.91
	.quad	0x4044c51eb851eb85              # double 41.539999999999999
	.quad	0x4053b3d70a3d70a4              # double 78.810000000000002
	.quad	0x4042347ae147ae14              # double 36.409999999999997
	.quad	0x40504ae147ae147b              # double 65.170000000000002
	.quad	0x4043d5c28f5c28f6              # double 39.670000000000002
	.quad	0x40553d70a3d70a3d              # double 84.959999999999993
	.quad	0x40528c28f5c28f5c              # double 74.189999999999998
	.quad	0x406040a3d70a3d71              # double 130.02000000000001
	.quad	0x4053ceb851eb851f              # double 79.230000000000003
	.quad	0x406267ae147ae148              # double 147.24000000000001
	.quad	0x4015b851eb851eb8              # double 5.4299999999999997
	.quad	0x40458e147ae147ae              # double 43.109999999999999
	.quad	0x404d851eb851eb85              # double 59.039999999999999
	.quad	0x405719999999999a              # double 92.400000000000005
	.quad	0x4013147ae147ae14              # double 4.7699999999999996
	.quad	0x4035a66666666666              # double 21.649999999999999
	.quad	0x404f0f5c28f5c28f              # double 62.119999999999997
	.quad	0x405c53d70a3d70a4              # double 113.31
	.quad	0x4054233333333333              # double 80.549999999999997
	.quad	0x4060b1999999999a              # double 133.55000000000001
	.quad	0x404528f5c28f5c29              # double 42.32
	.quad	0x4052e9999999999a              # double 75.650000000000006
	.quad	0x4054c0a3d70a3d71              # double 83.010000000000005
	.quad	0x40607ccccccccccd              # double 131.90000000000001
	.quad	0x404387ae147ae148              # double 39.060000000000002
	.quad	0x405615c28f5c28f6              # double 88.340000000000003
	.quad	0x4058b00000000000              # double 98.75
	.quad	0x4065fb3333333333              # double 175.84999999999999
	.quad	0x403fdeb851eb851f              # double 31.870000000000001
	.quad	0x404f347ae147ae14              # double 62.409999999999997
	.quad	0x404d5d70a3d70a3d              # double 58.729999999999997
	.quad	0x40581e147ae147ae              # double 96.469999999999998
	.quad	0x40245c28f5c28f5c              # double 10.18
	.quad	0x404ad33333333333              # double 53.649999999999999
	.quad	0x402819999999999a              # double 12.050000000000001
	.quad	0x4047828f5c28f5c3              # double 47.020000000000003
	.quad	0x405349999999999a              # double 77.150000000000006
	.quad	0x405d07ae147ae148              # double 116.12
	.quad	0x4031b5c28f5c28f6              # double 17.710000000000001
	.quad	0x404ce28f5c28f5c3              # double 57.770000000000003
	.quad	0x4054beb851eb851f              # double 82.980000000000003
	.quad	0x4060d80000000000              # double 134.75
	.quad	0x40321c28f5c28f5c              # double 18.109999999999999
	.quad	0x4042cb851eb851ec              # double 37.590000000000003
	.quad	0x4040266666666666              # double 32.299999999999997
	.quad	0x4052a28f5c28f5c3              # double 74.540000000000006
	.quad	0x40547d70a3d70a3d              # double 81.959999999999993
	.quad	0x4061f80000000000              # double 143.75
	.quad	0x40278a3d70a3d70a              # double 11.77
	.quad	0x4047f33333333333              # double 47.899999999999999
	.quad	0x40386e147ae147ae              # double 24.43
	.quad	0x405380a3d70a3d71              # double 78.010000000000005
	.quad	0x404e59999999999a              # double 60.700000000000003
	.quad	0x405d1ae147ae147b              # double 116.42
	.quad	0x4052033333333333              # double 72.049999999999997
	.quad	0x405edd70a3d70a3d              # double 123.45999999999999
	.quad	0x4045251eb851eb85              # double 42.289999999999999
	.quad	0x4052ef5c28f5c28f              # double 75.739999999999994
	.quad	0x402347ae147ae148              # double 9.6400000000000005
	.quad	0x404a8e147ae147ae              # double 53.109999999999999
	.quad	0x400999999999999a              # double 3.2000000000000002
	.quad	0x404499999999999a              # double 41.200000000000003
	.quad	0x4052eb851eb851ec              # double 75.680000000000007
	.quad	0x405fe0a3d70a3d71              # double 127.51000000000001
	.quad	0x401eae147ae147ae              # double 7.6699999999999999
	.quad	0x404368f5c28f5c29              # double 38.82
	.quad	0x402319999999999a              # double 9.5500000000000007
	.quad	0x4046f5c28f5c28f6              # double 45.920000000000002
	.quad	0x4018e147ae147ae1              # double 6.2199999999999998
	.quad	0x404bfeb851eb851f              # double 55.990000000000002
	.quad	0x402e051eb851eb85              # double 15.01
	.quad	0x404a9ae147ae147b              # double 53.210000000000001
	.quad	0x4004000000000000              # double 2.5
	.quad	0x4031fd70a3d70a3d              # double 17.989999999999998
	.quad	0x403ef851eb851eb8              # double 30.969999999999999
	.quad	0x4050300000000000              # double 64.75
	.quad	0x402fd70a3d70a3d7              # double 15.92
	.quad	0x404d07ae147ae148              # double 58.060000000000002
	.quad	0x4043e28f5c28f5c3              # double 39.770000000000003
	.quad	0x4053d3d70a3d70a4              # double 79.310000000000002
	.quad	0x403e4ccccccccccd              # double 30.300000000000001
	.quad	0x405430a3d70a3d71              # double 80.760000000000005
	.quad	0x4052ed70a3d70a3d              # double 75.709999999999993
	.quad	0x4060a428f5c28f5c              # double 133.13
	.quad	0x4032ae147ae147ae              # double 18.68
	.quad	0x404b59999999999a              # double 54.700000000000003
	.quad	0x402ca8f5c28f5c29              # double 14.33
	.quad	0x4048666666666666              # double 48.799999999999997
	.quad	0x4050528f5c28f5c3              # double 65.290000000000006
	.quad	0x405c07ae147ae148              # double 112.12
	.quad	0x40557eb851eb851f              # double 85.980000000000003
	.quad	0x40638947ae147ae1              # double 156.28999999999999
	.quad	0x40510ccccccccccd              # double 68.200000000000003
	.quad	0x405cca3d70a3d70a              # double 115.16
	.quad	0x40530b851eb851ec              # double 76.180000000000007
	.quad	0x405fe51eb851eb85              # double 127.58
	.quad	0x402819999999999a              # double 12.050000000000001
	.quad	0x404a451eb851eb85              # double 52.539999999999999
	.quad	0x3ff7333333333333              # double 1.45
	.quad	0x403a51eb851eb852              # double 26.32
	.quad	0x404988f5c28f5c29              # double 51.07
	.quad	0x4056e51eb851eb85              # double 91.579999999999998
	.quad	0x40519ccccccccccd              # double 70.450000000000003
	.quad	0x40606f5c28f5c28f              # double 131.47999999999999
	.quad	0x40472b851eb851ec              # double 46.340000000000003
	.quad	0x405b9c28f5c28f5c              # double 110.44
	.quad	0x405599999999999a              # double 86.400000000000006
	.quad	0x40619570a3d70a3d              # double 140.66999999999999
	.quad	0x404f1c28f5c28f5c              # double 62.219999999999999
	.quad	0x405ac33333333333              # double 107.05
	.quad	0x4043bd70a3d70a3d              # double 39.479999999999997
	.quad	0x40582eb851eb851f              # double 96.730000000000003
	.quad	0x404da3d70a3d70a4              # double 59.280000000000001
	.quad	0x405c9851eb851eb8              # double 114.38
	.quad	0x4055551eb851eb85              # double 85.329999999999998
	.quad	0x4061975c28f5c28f              # double 140.72999999999999
	.quad	0x4035d9999999999a              # double 21.850000000000001
	.quad	0x404fa3d70a3d70a4              # double 63.280000000000001
	.quad	0x404ba8f5c28f5c29              # double 55.32
	.quad	0x40583851eb851eb8              # double 96.879999999999995
	.quad	0x404b733333333333              # double 54.899999999999999
	.quad	0x4058c5c28f5c28f6              # double 99.090000000000003
	.quad	0x40545ccccccccccd              # double 81.450000000000002
	.quad	0x4060cdc28f5c28f6              # double 134.43000000000001
	.quad	0x4057bf5c28f5c28f              # double 94.989999999999994
	.quad	0x4063180000000000              # double 152.75
	.quad	0x404e4e147ae147ae              # double 60.609999999999999
	.quad	0x4056c9999999999a              # double 91.150000000000006
	.quad	0x4055670a3d70a3d7              # double 85.609999999999999
	.quad	0x40609bd70a3d70a4              # double 132.87
	.quad	0x404b5c28f5c28f5c              # double 54.719999999999999
	.quad	0x405a533333333333              # double 105.3
	.quad	0x4023b33333333333              # double 9.8499999999999996
	.quad	0x4042dc28f5c28f5c              # double 37.719999999999999
	.quad	0x40556f5c28f5c28f              # double 85.739999999999994
	.quad	0x4060bfae147ae148              # double 133.99000000000001
	.quad	0x403e30a3d70a3d71              # double 30.190000000000001
	.quad	0x4053dccccccccccd              # double 79.450000000000002
	.quad	0x4055cb851eb851ec              # double 87.180000000000007
	.quad	0x4061d4cccccccccd              # double 142.65000000000001
	.quad	0x403b800000000000              # double 27.5
	.quad	0x405103d70a3d70a4              # double 68.060000000000002
	.quad	0x40481ae147ae147b              # double 48.210000000000001
	.quad	0x40544851eb851eb8              # double 81.129999999999995
	.quad	0x4056666666666666              # double 89.599999999999994
	.quad	0x40616c28f5c28f5c              # double 139.38
	.quad	0x4034733333333333              # double 20.449999999999999
	.quad	0x404e83d70a3d70a4              # double 61.030000000000001
	.quad	0x404e47ae147ae148              # double 60.560000000000002
	.quad	0x40594ae147ae147b              # double 101.17
	.quad	0x40561a3d70a3d70a              # double 88.409999999999997
	.quad	0x406178f5c28f5c29              # double 139.78
	.quad	0x4055266666666666              # double 84.599999999999994
	.quad	0x40624d70a3d70a3d              # double 146.41999999999999
	.quad	0x4039570a3d70a3d7              # double 25.34
	.quad	0x4046f47ae147ae14              # double 45.909999999999997
	.quad	0x40405851eb851eb8              # double 32.689999999999998
	.quad	0x405a1b851eb851ec              # double 104.43000000000001
	.quad	0x402b428f5c28f5c3              # double 13.630000000000001
	.quad	0x404a83d70a3d70a4              # double 53.030000000000001
	.quad	0x405410a3d70a3d71              # double 80.260000000000005
	.quad	0x405f27ae147ae148              # double 124.62
	.quad	0x405849999999999a              # double 97.150000000000005
	.quad	0x40626fae147ae148              # double 147.49000000000001
	.quad	0x4058ca3d70a3d70a              # double 99.159999999999996
	.quad	0x406638f5c28f5c29              # double 177.78
	.quad	0x405453d70a3d70a4              # double 81.310000000000002
	.quad	0x405fed70a3d70a3d              # double 127.70999999999999
	.quad	0x4056251eb851eb85              # double 88.579999999999998
	.quad	0x40610f0a3d70a3d7              # double 136.47
	.quad	0x4038c51eb851eb85              # double 24.77
	.quad	0x404de8f5c28f5c29              # double 59.82
	.quad	0x40583b851eb851ec              # double 96.930000000000007
	.quad	0x406416b851eb851f              # double 160.71000000000001
	.quad	0x4049f5c28f5c28f6              # double 51.920000000000002
	.quad	0x40599d70a3d70a3d              # double 102.45999999999999
	.quad	0x403b547ae147ae14              # double 27.329999999999998
	.quad	0x4050ff5c28f5c28f              # double 67.989999999999995
	.quad	0x405719999999999a              # double 92.400000000000005
	.quad	0x406394cccccccccd              # double 156.65000000000001
	.quad	0x4055ce147ae147ae              # double 87.219999999999999
	.quad	0x4060eccccccccccd              # double 135.40000000000001
	.quad	0x402151eb851eb852              # double 8.6600000000000001
	.quad	0x40408147ae147ae1              # double 33.009999999999998
	.quad	0x4053c147ae147ae1              # double 79.019999999999996
	.quad	0x406137ae147ae148              # double 137.74000000000001
	.quad	0x40570a3d70a3d70a              # double 92.159999999999996
	.quad	0x4063ddc28f5c28f6              # double 158.93000000000001
	.quad	0x405188f5c28f5c29              # double 70.140000000000001
	.quad	0x405d5851eb851eb8              # double 117.38
	.quad	0x403f63d70a3d70a4              # double 31.390000000000001
	.quad	0x4054d5c28f5c28f6              # double 83.340000000000003
	.quad	0x4058a28f5c28f5c3              # double 98.540000000000006
	.quad	0x4062cf0a3d70a3d7              # double 150.47
	.quad	0x405458f5c28f5c29              # double 81.39
	.quad	0x4062247ae147ae14              # double 145.13999999999999
	.quad	0x40401851eb851eb8              # double 32.189999999999998
	.quad	0x4056b8f5c28f5c29              # double 90.89
	.quad	0x4048c3d70a3d70a4              # double 49.530000000000001
	.quad	0x4054a66666666666              # double 82.599999999999994
	.quad	0x4054cc28f5c28f5c              # double 83.189999999999998
	.quad	0x40627e147ae147ae              # double 147.94
	.quad	0x40506b851eb851ec              # double 65.680000000000007
	.quad	0x405e50a3d70a3d71              # double 121.26000000000001
	.quad	0x4033bae147ae147b              # double 19.73
	.quad	0x40527eb851eb851f              # double 73.980000000000003
	.quad	0x4033428f5c28f5c3              # double 19.260000000000002
	.quad	0x4043eb851eb851ec              # double 39.840000000000003
	.quad	0x405133d70a3d70a4              # double 68.810000000000002
	.quad	0x405ff47ae147ae14              # double 127.81999999999999
	.quad	0x4035ee147ae147ae              # double 21.93
	.quad	0x40501eb851eb851f              # double 64.480000000000004
	.quad	0x4036fae147ae147b              # double 22.98
	.quad	0x4050dc28f5c28f5c              # double 67.439999999999998
	.quad	0x40206147ae147ae1              # double 8.1899999999999995
	.quad	0x40419ae147ae147b              # double 35.210000000000001
	.quad	0x4054c51eb851eb85              # double 83.079999999999998
	.quad	0x4060c0a3d70a3d71              # double 134.02000000000001
	.quad	0x4051533333333333              # double 69.299999999999997
	.quad	0x405f0f5c28f5c28f              # double 124.23999999999999
	.quad	0x4033666666666666              # double 19.399999999999999
	.quad	0x40477ae147ae147b              # double 46.960000000000001
	.quad	0x40500851eb851eb8              # double 64.129999999999995
	.quad	0x405e3b851eb851ec              # double 120.93000000000001
	.quad	0x404ef47ae147ae14              # double 61.909999999999997
	.quad	0x405db9999999999a              # double 118.90000000000001
	.quad	0x403feb851eb851ec              # double 31.920000000000002
	.quad	0x405225c28f5c28f6              # double 72.590000000000003
	.quad	0x405843d70a3d70a4              # double 97.060000000000002
	.quad	0x4063a0a3d70a3d71              # double 157.02000000000001
	.quad	0x40516b851eb851ec              # double 69.680000000000007
	.quad	0x40607fae147ae148              # double 131.99000000000001
	.quad	0x40500147ae147ae1              # double 64.019999999999996
	.quad	0x405e0ccccccccccd              # double 120.2
	.quad	0x4055b00000000000              # double 86.75
	.quad	0x4061af0a3d70a3d7              # double 141.47
	.quad	0x40484f5c28f5c28f              # double 48.619999999999997
	.quad	0x4058966666666666              # double 98.349999999999994
	.quad	0x404f2b851eb851ec              # double 62.340000000000003
	.quad	0x405da28f5c28f5c3              # double 118.54000000000001
	.quad	0x403719999999999a              # double 23.100000000000001
	.quad	0x40526d70a3d70a3d              # double 73.709999999999993
	.quad	0x4009c28f5c28f5c3              # double 3.2200000000000002
	.quad	0x4038f0a3d70a3d71              # double 24.940000000000001
	.quad	0x404783d70a3d70a4              # double 47.030000000000001
	.quad	0x405891eb851eb852              # double 98.280000000000001
	.quad	0x4055866666666666              # double 86.099999999999994
	.quad	0x40603a3d70a3d70a              # double 129.81999999999999
	.quad	0x40319eb851eb851f              # double 17.620000000000001
	.quad	0x4044b70a3d70a3d7              # double 41.43
	.quad	0x403499999999999a              # double 20.600000000000001
	.quad	0x404f59999999999a              # double 62.700000000000003
	.quad	0x40398f5c28f5c28f              # double 25.559999999999999
	.quad	0x4053c147ae147ae1              # double 79.019999999999996
	.quad	0x4058af5c28f5c28f              # double 98.739999999999994
	.quad	0x40650e147ae147ae              # double 168.44
	.quad	0x4039400000000000              # double 25.25
	.quad	0x4051151eb851eb85              # double 68.329999999999998
	.quad	0x3fd0a3d70a3d70a4              # double 0.26000000000000001
	.quad	0x4031bd70a3d70a3d              # double 17.739999999999998
	.quad	0x40526e147ae147ae              # double 73.719999999999999
	.quad	0x405f6ccccccccccd              # double 125.7
	.quad	0x404f59999999999a              # double 62.700000000000003
	.quad	0x4059670a3d70a3d7              # double 101.61
	.quad	0x4055866666666666              # double 86.099999999999994
	.quad	0x406204cccccccccd              # double 144.15000000000001
	.quad	0x401e5c28f5c28f5c              # double 7.5899999999999999
	.quad	0x40431ae147ae147b              # double 38.210000000000001
	.quad	0x40506d70a3d70a3d              # double 65.709999999999994
	.quad	0x405d8b851eb851ec              # double 118.18000000000001
	.quad	0x404cea3d70a3d70a              # double 57.829999999999998
	.quad	0x405a11eb851eb852              # double 104.28
	.quad	0x4048000000000000              # double 48
	.quad	0x4056f70a3d70a3d7              # double 91.859999999999999
	.quad	0x404dc3d70a3d70a4              # double 59.530000000000001
	.quad	0x405ba8f5c28f5c29              # double 110.64
	.quad	0x4052c51eb851eb85              # double 75.079999999999998
	.quad	0x406071999999999a              # double 131.55000000000001
	.quad	0x4050bd70a3d70a3d              # double 66.959999999999994
	.quad	0x405c5ccccccccccd              # double 113.45
	.quad	0x403770a3d70a3d71              # double 23.440000000000001
	.quad	0x4044f70a3d70a3d7              # double 41.93
	.quad	0x401ce147ae147ae1              # double 7.2199999999999998
	.quad	0x4040c147ae147ae1              # double 33.509999999999998
	.quad	0x40362147ae147ae1              # double 22.129999999999999
	.quad	0x40519f5c28f5c28f              # double 70.489999999999995
	.quad	0x40343d70a3d70a3d              # double 20.239999999999998
	.quad	0x4051b7ae147ae148              # double 70.870000000000005
	.quad	0x404248f5c28f5c29              # double 36.57
	.quad	0x404deccccccccccd              # double 59.850000000000001
	.quad	0x4036e3d70a3d70a4              # double 22.890000000000001
	.quad	0x4049666666666666              # double 50.799999999999997
	.quad	0x4056351eb851eb85              # double 88.829999999999998
	.quad	0x406000f5c28f5c29              # double 128.03
	.quad	0x404b0a3d70a3d70a              # double 54.079999999999998
	.quad	0x405b733333333333              # double 109.8
	.quad	0x4034deb851eb851f              # double 20.870000000000001
	.quad	0x40506851eb851eb8              # double 65.629999999999995
	.quad	0x405409999999999a              # double 80.150000000000006
	.quad	0x4060847ae147ae14              # double 132.13999999999999
	.quad	0x4056ed70a3d70a3d              # double 91.709999999999993
	.quad	0x4061c3851eb851ec              # double 142.11000000000001
	.quad	0x4028bd70a3d70a3d              # double 12.369999999999999
	.quad	0x404747ae147ae148              # double 46.560000000000002
	.quad	0x403f170a3d70a3d7              # double 31.09
	.quad	0x4054ad70a3d70a3d              # double 82.709999999999993
	.quad	0x4023147ae147ae14              # double 9.5399999999999991
	.quad	0x403ca66666666666              # double 28.649999999999999
	.quad	0x4030bd70a3d70a3d              # double 16.739999999999998
	.quad	0x4046170a3d70a3d7              # double 44.18
	.quad	0x404288f5c28f5c29              # double 37.07
	.quad	0x40524f5c28f5c28f              # double 73.239999999999994
	.quad	0x3ffab851eb851eb8              # double 1.6699999999999999
	.quad	0x40448ccccccccccd              # double 41.100000000000001
	.quad	0x3fd28f5c28f5c28f              # double 0.28999999999999998
	.quad	0x40282e147ae147ae              # double 12.09
	.quad	0x4041066666666666              # double 34.049999999999997
	.quad	0x4054066666666666              # double 80.099999999999994
	.quad	0x4050047ae147ae14              # double 64.069999999999993
	.quad	0x405c133333333333              # double 112.3
	.quad	0x40502a3d70a3d70a              # double 64.659999999999997
	.quad	0x405b89999999999a              # double 110.15000000000001
	.quad	0x4035bd70a3d70a3d              # double 21.739999999999998
	.quad	0x404f23d70a3d70a4              # double 62.280000000000001
	.quad	0x405298f5c28f5c29              # double 74.39
	.quad	0x4060375c28f5c28f              # double 129.72999999999999
	.quad	0x404ad5c28f5c28f6              # double 53.670000000000002
	.quad	0x40568851eb851eb8              # double 90.129999999999995
	.quad	0x4052c8f5c28f5c29              # double 75.14
	.quad	0x40627a8f5c28f5c3              # double 147.83000000000001
	.quad	0x40457d70a3d70a3d              # double 42.979999999999997
	.quad	0x40548147ae147ae1              # double 82.019999999999996
	.quad	0x4050928f5c28f5c3              # double 66.290000000000006
	.quad	0x405e466666666666              # double 121.09999999999999
	.quad	0x404cab851eb851ec              # double 57.340000000000003
	.quad	0x405999999999999a              # double 102.40000000000001
	.quad	0x4058300000000000              # double 96.75
	.quad	0x40630428f5c28f5c              # double 152.13
	.quad	0x402ab851eb851eb8              # double 13.359999999999999
	.quad	0x40482ccccccccccd              # double 48.350000000000001
	.quad	0x40350ccccccccccd              # double 21.050000000000001
	.quad	0x405261eb851eb852              # double 73.530000000000001
	.quad	0x40547147ae147ae1              # double 81.769999999999996
	.quad	0x4060ef5c28f5c28f              # double 135.47999999999999
	.quad	0x40560d70a3d70a3d              # double 88.209999999999993
	.quad	0x4065780000000000              # double 171.75
	.quad	0x4049c3d70a3d70a4              # double 51.530000000000001
	.quad	0x4058ba3d70a3d70a              # double 98.909999999999996
	.quad	0x4035e147ae147ae1              # double 21.879999999999999
	.quad	0x404fdae147ae147b              # double 63.710000000000001
	.quad	0x40565147ae147ae1              # double 89.269999999999996
	.quad	0x40622f0a3d70a3d7              # double 145.47
	.quad	0x4050eccccccccccd              # double 67.700000000000003
	.quad	0x405f50a3d70a3d71              # double 125.26000000000001
	.quad	0x40522c28f5c28f5c              # double 72.689999999999998
	.quad	0x405f9ccccccccccd              # double 126.45
	.quad	0x403bc51eb851eb85              # double 27.77
	.quad	0x404d5ae147ae147b              # double 58.710000000000001
	.quad	0x40515851eb851eb8              # double 69.379999999999995
	.quad	0x405ccb851eb851ec              # double 115.18000000000001
	.quad	0x4004b851eb851eb8              # double 2.5899999999999999
	.quad	0x4033800000000000              # double 19.5
	.quad	0x40577b851eb851ec              # double 93.930000000000007
	.quad	0x4062a7ae147ae148              # double 149.24000000000001
	.quad	0x40135c28f5c28f5c              # double 4.8399999999999999
	.quad	0x40460b851eb851ec              # double 44.090000000000003
	.quad	0x403335c28f5c28f6              # double 19.210000000000001
	.quad	0x404591eb851eb852              # double 43.140000000000001
	.quad	0x402528f5c28f5c29              # double 10.58
	.quad	0x40433c28f5c28f5c              # double 38.469999999999999
	.quad	0x4044c147ae147ae1              # double 41.509999999999998
	.quad	0x40549f5c28f5c28f              # double 82.489999999999994
	.quad	0x40560147ae147ae1              # double 88.019999999999996
	.quad	0x406286b851eb851f              # double 148.21000000000001
	.quad	0x404b9c28f5c28f5c              # double 55.219999999999999
	.quad	0x405c8ae147ae147b              # double 114.17
	.quad	0x40296147ae147ae1              # double 12.69
	.quad	0x4053f66666666666              # double 79.849999999999994
	.quad	0x4056f3d70a3d70a4              # double 91.810000000000002
	.quad	0x40640e6666666666              # double 160.44999999999999
	.quad	0x4058eb851eb851ec              # double 99.680000000000007
	.quad	0x4064533333333333              # double 162.59999999999999
	.quad	0x404f5eb851eb851f              # double 62.740000000000002
	.quad	0x4059e851eb851eb8              # double 103.63
	.quad	0x40246b851eb851ec              # double 10.210000000000001
	.quad	0x4047f70a3d70a3d7              # double 47.93
	.quad	0x4014d70a3d70a3d7              # double 5.21
	.quad	0x403c5eb851eb851f              # double 28.370000000000001
	.quad	0x4056647ae147ae14              # double 89.569999999999993
	.quad	0x40628051eb851eb8              # double 148.00999999999999
	.quad	0x403c6b851eb851ec              # double 28.420000000000002
	.quad	0x404b3ae147ae147b              # double 54.460000000000001
	.quad	0x404e83d70a3d70a4              # double 61.030000000000001
	.quad	0x40562f5c28f5c28f              # double 88.739999999999994
	.quad	0x4052428f5c28f5c3              # double 73.040000000000006
	.quad	0x405e3b851eb851ec              # double 120.93000000000001
	.quad	0x4051d33333333333              # double 71.299999999999997
	.quad	0x406060f5c28f5c29              # double 131.03
	.quad	0x4019ae147ae147ae              # double 6.4199999999999999
	.quad	0x403b91eb851eb852              # double 27.57
	.quad	0x405483d70a3d70a4              # double 82.060000000000002
	.quad	0x405cb47ae147ae14              # double 114.81999999999999
	.quad	0x404908f5c28f5c29              # double 50.07
	.quad	0x40566a3d70a3d70a              # double 89.659999999999997
	.quad	0x405303d70a3d70a4              # double 76.060000000000002
	.quad	0x40612ae147ae147b              # double 137.34
	.quad	0x4051500000000000              # double 69.25
	.quad	0x405d3147ae147ae1              # double 116.77
	.quad	0x405227ae147ae148              # double 72.620000000000005
	.quad	0x405b8ccccccccccd              # double 110.2
	.quad	0x4021c28f5c28f5c3              # double 8.8800000000000008
	.quad	0x4048200000000000              # double 48.25
	.quad	0x403807ae147ae148              # double 24.030000000000001
	.quad	0x40526b851eb851ec              # double 73.680000000000007
	.quad	0x404a4b851eb851ec              # double 52.590000000000003
	.quad	0x40598eb851eb851f              # double 102.23
	.quad	0x40553147ae147ae1              # double 84.769999999999996
	.quad	0x406164cccccccccd              # double 139.15000000000001
	.quad	0x4058300000000000              # double 96.75
	.quad	0x406349eb851eb852              # double 154.31
	.quad	0x405189999999999a              # double 70.150000000000006
	.quad	0x405eb7ae147ae148              # double 122.87
	.quad	0x40574b851eb851ec              # double 93.180000000000007
	.quad	0x4064d3d70a3d70a4              # double 166.62
	.quad	0x4018ae147ae147ae              # double 6.1699999999999999
	.quad	0x404d3ae147ae147b              # double 58.460000000000001
	.quad	0x40570e147ae147ae              # double 92.219999999999998
	.quad	0x4063cae147ae147b              # double 158.34
	.quad	0x4052a70a3d70a3d7              # double 74.609999999999999
	.quad	0x4060680000000000              # double 131.25
	.quad	0x4050dd70a3d70a3d              # double 67.459999999999994
	.quad	0x405dcccccccccccd              # double 119.2
	.quad	0x4036fae147ae147b              # double 22.98
	.quad	0x404c99999999999a              # double 57.200000000000003
	.quad	0x4042b9999999999a              # double 37.450000000000003
	.quad	0x4055bccccccccccd              # double 86.950000000000002
	.quad	0x3fff851eb851eb85              # double 1.97
	.quad	0x4043cb851eb851ec              # double 39.590000000000003
	.quad	0x4048251eb851eb85              # double 48.289999999999999
	.quad	0x405d0ccccccccccd              # double 116.2
	.quad	0x404a4ccccccccccd              # double 52.600000000000001
	.quad	0x405b447ae147ae14              # double 109.06999999999999
	.quad	0x40382b851eb851ec              # double 24.170000000000002
	.quad	0x404c10a3d70a3d71              # double 56.130000000000003
	.quad	0x404d47ae147ae148              # double 58.560000000000002
	.quad	0x405d23d70a3d70a4              # double 116.56
	.quad	0x40406f5c28f5c28f              # double 32.869999999999997
	.quad	0x4050600000000000              # double 65.5
	.quad	0x3fd5c28f5c28f5c3              # double 0.34000000000000002
	.quad	0x4045d5c28f5c28f6              # double 43.670000000000002
	.quad	0x4055ee147ae147ae              # double 87.719999999999999
	.quad	0x4061c6b851eb851f              # double 142.21000000000001
	.quad	0x4042b47ae147ae14              # double 37.409999999999997
	.quad	0x404f70a3d70a3d71              # double 62.880000000000003
	.quad	0x4050051eb851eb85              # double 64.079999999999998
	.quad	0x405ffae147ae147b              # double 127.92
	.quad	0x4045451eb851eb85              # double 42.539999999999999
	.quad	0x4053f28f5c28f5c3              # double 79.790000000000006
	.quad	0x4041c3d70a3d70a4              # double 35.530000000000001
	.quad	0x40561eb851eb851f              # double 88.480000000000003
	.quad	0x40048f5c28f5c28f              # double 2.5699999999999998
	.quad	0x40373d70a3d70a3d              # double 23.239999999999998
	.quad	0x4053733333333333              # double 77.799999999999997
	.quad	0x405e85c28f5c28f6              # double 122.09
	.quad	0x4010c28f5c28f5c3              # double 4.1900000000000004
	.quad	0x4041f1eb851eb852              # double 35.890000000000001
	.quad	0x40270f5c28f5c28f              # double 11.529999999999999
	.quad	0x403c8ccccccccccd              # double 28.550000000000001
	.quad	0x404f03d70a3d70a4              # double 62.030000000000001
	.quad	0x40548d70a3d70a3d              # double 82.209999999999993
	.quad	0x404b933333333333              # double 55.149999999999999
	.quad	0x4057551eb851eb85              # double 93.329999999999998
	.quad	0x404ffae147ae147b              # double 63.960000000000001
	.quad	0x405e328f5c28f5c3              # double 120.79000000000001
	.quad	0x40524ae147ae147b              # double 73.170000000000001
	.quad	0x406038a3d70a3d71              # double 129.77000000000001
	.quad	0x404c8f5c28f5c28f              # double 57.119999999999997
	.quad	0x405c666666666666              # double 113.59999999999999
	.quad	0x404071eb851eb852              # double 32.890000000000001
	.quad	0x4057370a3d70a3d7              # double 92.859999999999999
	.quad	0x403be3d70a3d70a4              # double 27.890000000000001
	.quad	0x40519a3d70a3d70a              # double 70.409999999999997
	.quad	0x40439ae147ae147b              # double 39.210000000000001
	.quad	0x4052b51eb851eb85              # double 74.829999999999998
	.quad	0x4053651eb851eb85              # double 77.579999999999998
	.quad	0x40603851eb851eb8              # double 129.75999999999999
	.quad	0x40535c28f5c28f5c              # double 77.439999999999998
	.quad	0x4062a1999999999a              # double 149.05000000000001
	.quad	0x4006f5c28f5c28f6              # double 2.8700000000000001
	.quad	0x4024428f5c28f5c3              # double 10.130000000000001
	.quad	0x40263851eb851eb8              # double 11.109999999999999
	.quad	0x404627ae147ae148              # double 44.310000000000002
	.quad	0x40535d70a3d70a3d              # double 77.459999999999993
	.quad	0x40620eb851eb851f              # double 144.46000000000001
	.quad	0x4046a66666666666              # double 45.299999999999997
	.quad	0x40593ccccccccccd              # double 100.95
	.quad	0x4012c28f5c28f5c3              # double 4.6900000000000004
	.quad	0x403ef0a3d70a3d71              # double 30.940000000000001
	.quad	0x40565e147ae147ae              # double 89.469999999999999
	.quad	0x4063b0f5c28f5c29              # double 157.53
	.quad	0x401e70a3d70a3d71              # double 7.6100000000000003
	.quad	0x4046628f5c28f5c3              # double 44.770000000000003
	.quad	0x4037170a3d70a3d7              # double 23.09
	.quad	0x40528a3d70a3d70a              # double 74.159999999999997
	.quad	0x4056df5c28f5c28f              # double 91.489999999999994
	.quad	0x406381eb851eb852              # double 156.06
	.quad	0x4026666666666666              # double 11.199999999999999
	.quad	0x404a333333333333              # double 52.399999999999999
	.quad	0x40357851eb851eb8              # double 21.469999999999999
	.quad	0x4053433333333333              # double 77.049999999999997
	.quad	0x4055a51eb851eb85              # double 86.579999999999998
	.quad	0x4061a33333333333              # double 141.09999999999999
	.quad	0x403811eb851eb852              # double 24.07
	.quad	0x404cc8f5c28f5c29              # double 57.57
	.quad	0x40531d70a3d70a3d              # double 76.459999999999993
	.quad	0x4061275c28f5c28f              # double 137.22999999999999
	.quad	0x40550eb851eb851f              # double 84.230000000000003
	.quad	0x405e3e147ae147ae              # double 120.97
	.quad	0x40581ae147ae147b              # double 96.420000000000001
	.quad	0x4063abd70a3d70a4              # double 157.37
	.quad	0x40588147ae147ae1              # double 98.019999999999996
	.quad	0x4063680000000000              # double 155.25
	.quad	0x4058dae147ae147b              # double 99.420000000000001
	.quad	0x4063f3d70a3d70a4              # double 159.62
	.quad	0x4029570a3d70a3d7              # double 12.67
	.quad	0x405123d70a3d70a4              # double 68.560000000000002
	.quad	0x4042228f5c28f5c3              # double 36.270000000000003
	.quad	0x40572e147ae147ae              # double 92.719999999999998
	.quad	0x4030147ae147ae14              # double 16.079999999999998
	.quad	0x4049466666666666              # double 50.549999999999997
	.quad	0x403d0ccccccccccd              # double 29.050000000000001
	.quad	0x404d228f5c28f5c3              # double 58.270000000000003
	.quad	0x4038a66666666666              # double 24.649999999999999
	.quad	0x404d27ae147ae148              # double 58.310000000000002
	.quad	0x4036970a3d70a3d7              # double 22.59
	.quad	0x4051cb851eb851ec              # double 71.180000000000007
	.quad	0x404b2b851eb851ec              # double 54.340000000000003
	.quad	0x405cc1eb851eb852              # double 115.03
	.quad	0x404643d70a3d70a4              # double 44.530000000000001
	.quad	0x4058200000000000              # double 96.5
	.quad	0x40495d70a3d70a3d              # double 50.729999999999997
	.quad	0x405b528f5c28f5c3              # double 109.29000000000001
	.quad	0x4025800000000000              # double 10.75
	.quad	0x4046a8f5c28f5c29              # double 45.32
	.quad	0x404f07ae147ae148              # double 62.060000000000002
	.quad	0x405fb3d70a3d70a4              # double 126.81
	.quad	0x40293851eb851eb8              # double 12.609999999999999
	.quad	0x404f4f5c28f5c28f              # double 62.619999999999997
	.quad	0x4035f0a3d70a3d71              # double 21.940000000000001
	.quad	0x4049428f5c28f5c3              # double 50.520000000000003
	.quad	0x4055b51eb851eb85              # double 86.829999999999998
	.quad	0x4064080000000000              # double 160.25
	.quad	0x40220f5c28f5c28f              # double 9.0299999999999994
	.quad	0x4049d33333333333              # double 51.649999999999999
	.quad	0x405257ae147ae148              # double 73.370000000000005
	.quad	0x405ff8f5c28f5c29              # double 127.89
	.quad	0x404b347ae147ae14              # double 54.409999999999997
	.quad	0x405af66666666666              # double 107.84999999999999
	.quad	0x4057fd70a3d70a3d              # double 95.959999999999993
	.quad	0x40658b3333333333              # double 172.34999999999999
	.quad	0x40516ae147ae147b              # double 69.670000000000002
	.quad	0x40604851eb851eb8              # double 130.25999999999999
	.quad	0x40485d70a3d70a3d              # double 48.729999999999997
	.quad	0x4059e28f5c28f5c3              # double 103.54000000000001
	.quad	0x404f266666666666              # double 62.299999999999997
	.quad	0x405c451eb851eb85              # double 113.08
	.quad	0x403363d70a3d70a4              # double 19.390000000000001
	.quad	0x4053a0a3d70a3d71              # double 78.510000000000005
	.quad	0x405359999999999a              # double 77.400000000000006
	.quad	0x405f1c28f5c28f5c              # double 124.44
	.quad	0x3ffa147ae147ae14              # double 1.6299999999999999
	.quad	0x4041066666666666              # double 34.049999999999997
	.quad	0x40568147ae147ae1              # double 90.019999999999996
	.quad	0x40631c7ae147ae14              # double 152.88999999999999
	.quad	0x40501e147ae147ae              # double 64.469999999999999
	.quad	0x405bb3d70a3d70a4              # double 110.81
	.quad	0x40478ccccccccccd              # double 47.100000000000001
	.quad	0x4059fae147ae147b              # double 103.92
	.quad	0x40503ae147ae147b              # double 64.920000000000002
	.quad	0x405d147ae147ae14              # double 116.31999999999999
	.quad	0x404555c28f5c28f6              # double 42.670000000000002
	.quad	0x4052533333333333              # double 73.299999999999997
	.quad	0x404807ae147ae148              # double 48.060000000000002
	.quad	0x40533d70a3d70a3d              # double 76.959999999999993
	.quad	0x4041b9999999999a              # double 35.450000000000003
	.quad	0x40504e147ae147ae              # double 65.219999999999999
	.quad	0x4058966666666666              # double 98.349999999999994
	.quad	0x4063d1999999999a              # double 158.55000000000001
	.quad	0x403119999999999a              # double 17.100000000000001
	.quad	0x404e30a3d70a3d71              # double 60.380000000000003
	.quad	0x403dc00000000000              # double 29.75
	.quad	0x4051b00000000000              # double 70.75
	.quad	0x4055700000000000              # double 85.75
	.quad	0x4060f8a3d70a3d71              # double 135.77000000000001
	.quad	0x4048228f5c28f5c3              # double 48.270000000000003
	.quad	0x4056147ae147ae14              # double 88.319999999999993
	.quad	0x4045066666666666              # double 42.049999999999997
	.quad	0x4052647ae147ae14              # double 73.569999999999993
	.quad	0x4056028f5c28f5c3              # double 88.040000000000006
	.quad	0x40625d70a3d70a3d              # double 146.91999999999999
	.quad	0x402370a3d70a3d71              # double 9.7200000000000006
	.quad	0x40414147ae147ae1              # double 34.509999999999998
	.quad	0x4050a70a3d70a3d7              # double 66.609999999999999
	.quad	0x405e200000000000              # double 120.5
	.quad	0x404a4ccccccccccd              # double 52.600000000000001
	.quad	0x4056c3d70a3d70a4              # double 91.060000000000002
	.quad	0x4053b33333333333              # double 78.799999999999997
	.quad	0x405fd28f5c28f5c3              # double 127.29000000000001
	.quad	0x40276147ae147ae1              # double 11.69
	.quad	0x40481eb851eb851f              # double 48.240000000000002
	.quad	0x4004b851eb851eb8              # double 2.5899999999999999
	.quad	0x4043b1eb851eb852              # double 39.390000000000001
	.quad	0x405510a3d70a3d71              # double 84.260000000000005
	.quad	0x406054cccccccccd              # double 130.65000000000001
	.quad	0x4025a3d70a3d70a4              # double 10.82
	.quad	0x4045e7ae147ae148              # double 43.810000000000002
	.quad	0x4058551eb851eb85              # double 97.329999999999998
	.quad	0x4065a7ae147ae148              # double 173.24000000000001
	.quad	0x4057f1eb851eb852              # double 95.780000000000001
	.quad	0x4063b51eb851eb85              # double 157.66
	.quad	0x4049accccccccccd              # double 51.350000000000001
	.quad	0x40546e147ae147ae              # double 81.719999999999999
	.quad	0x4054f00000000000              # double 83.75
	.quad	0x406109eb851eb852              # double 136.31
	.quad	0x40523eb851eb851f              # double 72.980000000000004
	.quad	0x405cbae147ae147b              # double 114.92
	.quad	0x4051aae147ae147b              # double 70.670000000000002
	.quad	0x405e0c28f5c28f5c              # double 120.19
	.quad	0x40568c28f5c28f5c              # double 90.189999999999998
	.quad	0x40627147ae147ae1              # double 147.53999999999999
	.quad	0x40439d70a3d70a3d              # double 39.229999999999997
	.quad	0x4051f851eb851eb8              # double 71.879999999999995
	.quad	0x404195c28f5c28f6              # double 35.170000000000002
	.quad	0x405389999999999a              # double 78.150000000000006
	.quad	0x405513d70a3d70a4              # double 84.310000000000002
	.quad	0x40610f0a3d70a3d7              # double 136.47
	.quad	0x4013d70a3d70a3d7              # double 4.96
	.quad	0x404287ae147ae148              # double 37.060000000000002
	.quad	0x402beb851eb851ec              # double 13.960000000000001
	.quad	0x404be3d70a3d70a4              # double 55.780000000000001
	.quad	0x4049d9999999999a              # double 51.700000000000003
	.quad	0x405af9999999999a              # double 107.90000000000001
	.quad	0x40481ae147ae147b              # double 48.210000000000001
	.quad	0x4058bccccccccccd              # double 98.950000000000002
	.quad	0x4056a70a3d70a3d7              # double 90.609999999999999
	.quad	0x4061d570a3d70a3d              # double 142.66999999999999
	.quad	0x40118f5c28f5c28f              # double 4.3899999999999997
	.quad	0x404950a3d70a3d71              # double 50.630000000000003
	.quad	0x405305c28f5c28f6              # double 76.090000000000003
	.quad	0x405e366666666666              # double 120.84999999999999
	.quad	0x4052370a3d70a3d7              # double 72.859999999999999
	.quad	0x40609f0a3d70a3d7              # double 132.97
	.quad	0x40516eb851eb851f              # double 69.730000000000004
	.quad	0x405da28f5c28f5c3              # double 118.54000000000001
	.quad	0x404e2a3d70a3d70a              # double 60.329999999999998
	.quad	0x40576d70a3d70a3d              # double 93.709999999999993
	.quad	0x401447ae147ae148              # double 5.0700000000000003
	.quad	0x40453ae147ae147b              # double 42.460000000000001
	.quad	0x4034bae147ae147b              # double 20.73
	.quad	0x404e228f5c28f5c3              # double 60.270000000000003
	.quad	0x404539999999999a              # double 42.450000000000003
	.quad	0x405677ae147ae148              # double 89.870000000000005
	.quad	0x40541e147ae147ae              # double 80.469999999999999
	.quad	0x4064d1eb851eb852              # double 166.56
	.quad	0x40307d70a3d70a3d              # double 16.489999999999998
	.quad	0x405115c28f5c28f6              # double 68.340000000000003
	.quad	0x405847ae147ae148              # double 97.120000000000005
	.quad	0x4063270a3d70a3d7              # double 153.22
	.quad	0x4033c00000000000              # double 19.75
	.quad	0x40493851eb851eb8              # double 50.439999999999998
	.quad	0x4052f00000000000              # double 75.75
	.quad	0x405e77ae147ae148              # double 121.87
	.quad	0x4030d70a3d70a3d7              # double 16.84
	.quad	0x40517f5c28f5c28f              # double 69.989999999999995
	.quad	0x4030970a3d70a3d7              # double 16.59
	.quad	0x404c651eb851eb85              # double 56.789999999999999
	.quad	0x4036c7ae147ae148              # double 22.780000000000001
	.quad	0x405071eb851eb852              # double 65.780000000000001
	.quad	0x40539eb851eb851f              # double 78.480000000000003
	.quad	0x4060eb3333333333              # double 135.34999999999999
	.quad	0x405188f5c28f5c29              # double 70.140000000000001
	.quad	0x405ea851eb851eb8              # double 122.63
	.quad	0x4043ae147ae147ae              # double 39.359999999999999
	.quad	0x4052947ae147ae14              # double 74.319999999999993
	.quad	0x403599999999999a              # double 21.600000000000001
	.quad	0x4052e66666666666              # double 75.599999999999994
	.quad	0x4050a0a3d70a3d71              # double 66.510000000000005
	.quad	0x40597d70a3d70a3d              # double 101.95999999999999
	.quad	0x404f70a3d70a3d71              # double 62.880000000000003
	.quad	0x405af8f5c28f5c29              # double 107.89
	.quad	0x40491eb851eb851f              # double 50.240000000000002
	.quad	0x40560ccccccccccd              # double 88.200000000000002
	.quad	0x404e628f5c28f5c3              # double 60.770000000000003
	.quad	0x405a8f5c28f5c28f              # double 106.23999999999999
	.quad	0x40558d70a3d70a3d              # double 86.209999999999993
	.quad	0x406297ae147ae148              # double 148.74000000000001
	.quad	0x4022c28f5c28f5c3              # double 9.3800000000000007
	.quad	0x404679999999999a              # double 44.950000000000003
	.quad	0x4055fb851eb851ec              # double 87.930000000000007
	.quad	0x4061b00000000000              # double 141.5
	.quad	0x402a800000000000              # double 13.25
	.quad	0x404890a3d70a3d71              # double 49.130000000000003
	.quad	0x40497eb851eb851f              # double 50.990000000000002
	.quad	0x405ab7ae147ae148              # double 106.87
	.quad	0x40552f5c28f5c28f              # double 84.739999999999994
	.quad	0x406227ae147ae148              # double 145.24000000000001
	.quad	0x4056f0a3d70a3d71              # double 91.760000000000005
	.quad	0x40618d1eb851eb85              # double 140.41
	.quad	0x40547f5c28f5c28f              # double 81.989999999999994
	.quad	0x40605d1eb851eb85              # double 130.91
	.quad	0x404d31eb851eb852              # double 58.390000000000001
	.quad	0x40578ccccccccccd              # double 94.200000000000002
	.quad	0x40550147ae147ae1              # double 84.019999999999996
	.quad	0x40633428f5c28f5c              # double 153.63
	.quad	0x404bae147ae147ae              # double 55.359999999999999
	.quad	0x4057328f5c28f5c3              # double 92.790000000000006
	.quad	0x4005851eb851eb85              # double 2.6899999999999999
	.quad	0x404203d70a3d70a4              # double 36.030000000000001
	.quad	0x405075c28f5c28f6              # double 65.840000000000003
	.quad	0x405cc28f5c28f5c3              # double 115.04000000000001
	.quad	0x404a0b851eb851ec              # double 52.090000000000003
	.quad	0x4058a47ae147ae14              # double 98.569999999999993
	.quad	0x403023d70a3d70a4              # double 16.140000000000001
	.quad	0x4047028f5c28f5c3              # double 46.020000000000003
	.quad	0x40325eb851eb851f              # double 18.370000000000001
	.quad	0x4043b1eb851eb852              # double 39.390000000000001
	.quad	0x4048af5c28f5c28f              # double 49.369999999999997
	.quad	0x405821eb851eb852              # double 96.530000000000001
	.quad	0x4045ef5c28f5c28f              # double 43.869999999999997
	.quad	0x405425c28f5c28f6              # double 80.590000000000003
	.quad	0x40543147ae147ae1              # double 80.769999999999996
	.quad	0x40604051eb851eb8              # double 130.00999999999999
	.quad	0x4046ef5c28f5c28f              # double 45.869999999999997
	.quad	0x4058a70a3d70a3d7              # double 98.609999999999999
	.quad	0x40250f5c28f5c28f              # double 10.529999999999999
	.quad	0x404288f5c28f5c29              # double 37.07
	.quad	0x4047170a3d70a3d7              # double 46.18
	.quad	0x405741eb851eb852              # double 93.030000000000001
	.quad	0x4038c00000000000              # double 24.75
	.quad	0x4051fd70a3d70a3d              # double 71.959999999999994
	.quad	0x40554c28f5c28f5c              # double 85.189999999999998
	.quad	0x406147ae147ae148              # double 138.24000000000001
	.quad	0x4050be147ae147ae              # double 66.969999999999999
	.quad	0x4060333333333333              # double 129.59999999999999
	.quad	0x4001851eb851eb85              # double 2.1899999999999999
	.quad	0x404630a3d70a3d71              # double 44.380000000000003
	.quad	0x405109999999999a              # double 68.150000000000006
	.quad	0x4056700000000000              # double 89.75
	.quad	0x404e600000000000              # double 60.75
	.quad	0x405d4851eb851eb8              # double 117.13
	.quad	0x402ee66666666666              # double 15.449999999999999
	.quad	0x404f70a3d70a3d71              # double 62.880000000000003
	.quad	0x404de8f5c28f5c29              # double 59.82
	.quad	0x40576b851eb851ec              # double 93.680000000000007
	.quad	0x402cdc28f5c28f5c              # double 14.43
	.quad	0x4049e28f5c28f5c3              # double 51.770000000000003
	.quad	0x404730a3d70a3d71              # double 46.380000000000003
	.quad	0x4052fc28f5c28f5c              # double 75.939999999999998
	.quad	0x4055bf5c28f5c28f              # double 86.989999999999994
	.quad	0x4060ab851eb851ec              # double 133.36000000000001
	.quad	0x40540a3d70a3d70a              # double 80.159999999999997
	.quad	0x405cfeb851eb851f              # double 115.98
	.quad	0x4051e0a3d70a3d71              # double 71.510000000000005
	.quad	0x405c4e147ae147ae              # double 113.22
	.quad	0x4020dc28f5c28f5c              # double 8.4299999999999997
	.quad	0x40469d70a3d70a3d              # double 45.229999999999997
	.quad	0x40426b851eb851ec              # double 36.840000000000003
	.quad	0x40545c28f5c28f5c              # double 81.439999999999998
	.quad	0x4058ce147ae147ae              # double 99.219999999999998
	.quad	0x4061f33333333333              # double 143.59999999999999
	.quad	0x403a75c28f5c28f6              # double 26.460000000000001
	.quad	0x404df5c28f5c28f6              # double 59.920000000000002
	.quad	0x40573e147ae147ae              # double 92.969999999999998
	.quad	0x40642c7ae147ae14              # double 161.38999999999999
	.quad	0x40545c28f5c28f5c              # double 81.439999999999998
	.quad	0x405e2ae147ae147b              # double 120.67
	.quad	0x401151eb851eb852              # double 4.3300000000000001
	.quad	0x403fcf5c28f5c28f              # double 31.809999999999999
	.quad	0x40546ae147ae147b              # double 81.670000000000001
	.quad	0x406059eb851eb852              # double 130.81
	.quad	0x40412147ae147ae1              # double 34.259999999999998
	.quad	0x40532ae147ae147b              # double 76.670000000000001
	.quad	0x40532d70a3d70a3d              # double 76.709999999999993
	.quad	0x4062c9eb851eb852              # double 150.31
	.quad	0x40537f5c28f5c28f              # double 77.989999999999994
	.quad	0x406062e147ae147b              # double 131.09
	.quad	0x4046fae147ae147b              # double 45.960000000000001
	.quad	0x40569d70a3d70a3d              # double 90.459999999999993
	.quad	0x4039deb851eb851f              # double 25.870000000000001
	.quad	0x404da3d70a3d70a4              # double 59.280000000000001
	.quad	0x4049e51eb851eb85              # double 51.789999999999999
	.quad	0x405a2c28f5c28f5c              # double 104.69
	.quad	0x402de66666666666              # double 14.949999999999999
	.quad	0x4044bc28f5c28f5c              # double 41.469999999999999
	.quad	0x403611eb851eb852              # double 22.07
	.quad	0x4050f851eb851eb8              # double 67.879999999999995
	.quad	0x4055028f5c28f5c3              # double 84.040000000000006
	.quad	0x40631428f5c28f5c              # double 152.63
	.quad	0x404f8ccccccccccd              # double 63.100000000000001
	.quad	0x405c933333333333              # double 114.3
	.quad	0x4057933333333333              # double 94.299999999999997
	.quad	0x40627b851eb851ec              # double 147.86000000000001
	.quad	0x404c466666666666              # double 56.549999999999997
	.quad	0x405b2f5c28f5c28f              # double 108.73999999999999
	.quad	0x4020947ae147ae14              # double 8.2899999999999991
	.quad	0x404be7ae147ae148              # double 55.810000000000002
	.quad	0x403ec28f5c28f5c3              # double 30.760000000000002
	.quad	0x40552b851eb851ec              # double 84.680000000000007
	.quad	0x40510ccccccccccd              # double 68.200000000000003
	.quad	0x4060b6b851eb851f              # double 133.71000000000001
	.quad	0x400a51eb851eb852              # double 3.29
	.quad	0x404979999999999a              # double 50.950000000000003
	.quad	0x40564a3d70a3d70a              # double 89.159999999999997
	.quad	0x40623851eb851eb8              # double 145.75999999999999
	.quad	0x403f19999999999a              # double 31.100000000000001
	.quad	0x4050f3d70a3d70a4              # double 67.810000000000002
	.quad	0x3fec28f5c28f5c29              # double 0.88
	.quad	0x4044e66666666666              # double 41.799999999999997
	.quad	0x401d3d70a3d70a3d              # double 7.3099999999999996
	.quad	0x4043ab851eb851ec              # double 39.340000000000003
	.quad	0x4049e8f5c28f5c29              # double 51.82
	.quad	0x4059c5c28f5c28f6              # double 103.09
	.quad	0x402b6147ae147ae1              # double 13.69
	.quad	0x40419ae147ae147b              # double 35.210000000000001
	.quad	0x404b0f5c28f5c28f              # double 54.119999999999997
	.quad	0x405b58f5c28f5c29              # double 109.39
	.quad	0x4044cccccccccccd              # double 41.600000000000001
	.quad	0x4053fc28f5c28f5c              # double 79.939999999999998
	.quad	0x404663d70a3d70a4              # double 44.780000000000001
	.quad	0x4056ef5c28f5c28f              # double 91.739999999999994
	.quad	0x3fea8f5c28f5c28f              # double 0.82999999999999996
	.quad	0x404568f5c28f5c29              # double 42.82
	.quad	0x40560f5c28f5c28f              # double 88.239999999999994
	.quad	0x40614fae147ae148              # double 138.49000000000001
	.quad	0x404f147ae147ae14              # double 62.159999999999997
	.quad	0x405bab851eb851ec              # double 110.68000000000001
	.quad	0x401c000000000000              # double 7
	.quad	0x403999999999999a              # double 25.600000000000001
	.quad	0x4054047ae147ae14              # double 80.069999999999993
	.quad	0x4063adc28f5c28f6              # double 157.43000000000001
	.quad	0x4033d1eb851eb852              # double 19.82
	.quad	0x4049aa3d70a3d70a              # double 51.329999999999998
	.quad	0x402623d70a3d70a4              # double 11.07
	.quad	0x404aa3d70a3d70a4              # double 53.280000000000001
	.quad	0x4053647ae147ae14              # double 77.569999999999993
	.quad	0x4060aa3d70a3d70a              # double 133.31999999999999
	.quad	0x4057b147ae147ae1              # double 94.769999999999996
	.quad	0x4062428f5c28f5c3              # double 146.08000000000001
	.quad	0x40336e147ae147ae              # double 19.43
	.quad	0x4050c147ae147ae1              # double 67.019999999999996
	.quad	0x4058cae147ae147b              # double 99.170000000000001
	.quad	0x4064bfae147ae148              # double 165.99000000000001
	.quad	0x40406e147ae147ae              # double 32.859999999999999
	.quad	0x405183d70a3d70a4              # double 70.060000000000002
	.quad	0x4052d28f5c28f5c3              # double 75.290000000000006
	.quad	0x4061deb851eb851f              # double 142.96000000000001
	.quad	0x4042970a3d70a3d7              # double 37.18
	.quad	0x40580e147ae147ae              # double 96.219999999999998
	.quad	0x4042a51eb851eb85              # double 37.289999999999999
	.quad	0x405c100000000000              # double 112.25
	.quad	0x405531eb851eb852              # double 84.780000000000001
	.quad	0x4061f2e147ae147b              # double 143.59
	.quad	0x4057551eb851eb85              # double 93.329999999999998
	.quad	0x40614e147ae147ae              # double 138.44
	.quad	0x40529c28f5c28f5c              # double 74.439999999999998
	.quad	0x405e647ae147ae14              # double 121.56999999999999
	.quad	0x4033828f5c28f5c3              # double 19.510000000000002
	.quad	0x40499ae147ae147b              # double 51.210000000000001
	.quad	0x4054b3d70a3d70a4              # double 82.810000000000002
	.quad	0x405ecae147ae147b              # double 123.17
	.quad	0x402c7ae147ae147b              # double 14.24
	.quad	0x405138f5c28f5c29              # double 68.890000000000001
	.quad	0x400d1eb851eb851f              # double 3.6400000000000001
	.quad	0x403d6e147ae147ae              # double 29.43
	.quad	0x4032ca3d70a3d70a              # double 18.789999999999999
	.quad	0x404c133333333333              # double 56.149999999999999
	.quad	0x4058700000000000              # double 97.75
	.quad	0x40642570a3d70a3d              # double 161.16999999999999
	.quad	0x4051dae147ae147b              # double 71.420000000000002
	.quad	0x405df33333333333              # double 119.8
	.quad	0x4016b851eb851eb8              # double 5.6799999999999997
	.quad	0x4045333333333333              # double 42.399999999999999
	.quad	0x4050447ae147ae14              # double 65.069999999999993
	.quad	0x405e25c28f5c28f6              # double 120.59
	.quad	0x404a8b851eb851ec              # double 53.090000000000003
	.quad	0x405b7d70a3d70a3d              # double 109.95999999999999
	.quad	0x40503851eb851eb8              # double 64.879999999999995
	.quad	0x405d451eb851eb85              # double 117.08
	.quad	0x40500e147ae147ae              # double 64.219999999999999
	.quad	0x405c9e147ae147ae              # double 114.47
	.quad	0x4036deb851eb851f              # double 22.870000000000001
	.quad	0x405163d70a3d70a4              # double 69.560000000000002
	.quad	0x403a75c28f5c28f6              # double 26.460000000000001
	.quad	0x404b0e147ae147ae              # double 54.109999999999999
	.quad	0x40437d70a3d70a3d              # double 38.979999999999997
	.quad	0x4053e47ae147ae14              # double 79.569999999999993
	.quad	0x40566d70a3d70a3d              # double 89.709999999999993
	.quad	0x406229eb851eb852              # double 145.31
	.quad	0x4049666666666666              # double 50.799999999999997
	.quad	0x405885c28f5c28f6              # double 98.090000000000003
	.quad	0x404915c28f5c28f6              # double 50.170000000000002
	.quad	0x4057d00000000000              # double 95.25
	.quad	0x403668f5c28f5c29              # double 22.41
	.quad	0x404f028f5c28f5c3              # double 62.020000000000003
	.quad	0x40436a3d70a3d70a              # double 38.829999999999998
	.quad	0x40547f5c28f5c28f              # double 81.989999999999994
	.quad	0x401347ae147ae148              # double 4.8200000000000003
	.quad	0x40368f5c28f5c28f              # double 22.559999999999999
	.quad	0x402e051eb851eb85              # double 15.01
	.quad	0x404a7ae147ae147b              # double 52.960000000000001
	.quad	0x40448f5c28f5c28f              # double 41.119999999999997
	.quad	0x4053347ae147ae14              # double 76.819999999999993
	.quad	0x40148f5c28f5c28f              # double 5.1399999999999997
	.quad	0x4041bae147ae147b              # double 35.460000000000001
	.quad	0x4044333333333333              # double 40.399999999999999
	.quad	0x4053b0a3d70a3d71              # double 78.760000000000005
	.quad	0x405338f5c28f5c29              # double 76.89
	.quad	0x405ea1eb851eb852              # double 122.53
	.quad	0x4058e66666666666              # double 99.599999999999994
	.quad	0x406486b851eb851f              # double 164.21000000000001
	.quad	0x40318f5c28f5c28f              # double 17.559999999999999
	.quad	0x40516ccccccccccd              # double 69.700000000000003
	.quad	0x402ef0a3d70a3d71              # double 15.470000000000001
	.quad	0x4050ef5c28f5c28f              # double 67.739999999999995
	.quad	0x4053d51eb851eb85              # double 79.329999999999998
	.quad	0x4061ec7ae147ae14              # double 143.38999999999999
	.quad	0x404eb0a3d70a3d71              # double 61.380000000000003
	.quad	0x405a8f5c28f5c28f              # double 106.23999999999999
	.quad	0x405345c28f5c28f6              # double 77.090000000000003
	.quad	0x4062328f5c28f5c3              # double 145.58000000000001
	.quad	0x40366147ae147ae1              # double 22.379999999999999
	.quad	0x404cef5c28f5c28f              # double 57.869999999999997
	.quad	0x4053400000000000              # double 77
	.quad	0x40625b851eb851ec              # double 146.86000000000001
	.quad	0x40555e147ae147ae              # double 85.469999999999999
	.quad	0x40616a3d70a3d70a              # double 139.31999999999999
	.quad	0x4053928f5c28f5c3              # double 78.290000000000006
	.quad	0x405f7147ae147ae1              # double 125.77
	.quad	0x404c0b851eb851ec              # double 56.090000000000003
	.quad	0x405c747ae147ae14              # double 113.81999999999999
	.quad	0x403dd9999999999a              # double 29.850000000000001
	.quad	0x404cf9999999999a              # double 57.950000000000003
	.quad	0x40510147ae147ae1              # double 68.019999999999996
	.quad	0x405cbeb851eb851f              # double 114.98
	.quad	0x4058f33333333333              # double 99.799999999999997
	.quad	0x406311eb851eb852              # double 152.56
	.quad	0x404c10a3d70a3d71              # double 56.130000000000003
	.quad	0x4058eb851eb851ec              # double 99.680000000000007
	.quad	0x40496f5c28f5c28f              # double 50.869999999999997
	.quad	0x405808f5c28f5c29              # double 96.14
	.quad	0x4051bae147ae147b              # double 70.920000000000002
	.quad	0x405d95c28f5c28f6              # double 118.34
	.quad	0x40322147ae147ae1              # double 18.129999999999999
	.quad	0x404a451eb851eb85              # double 52.539999999999999
	.quad	0x40234ccccccccccd              # double 9.6500000000000003
	.quad	0x404a5eb851eb851f              # double 52.740000000000002
	.quad	0x403523d70a3d70a4              # double 21.140000000000001
	.quad	0x405021eb851eb852              # double 64.530000000000001
	.quad	0x4017666666666666              # double 5.8499999999999996
	.quad	0x4041a00000000000              # double 35.25
	.quad	0x400f333333333333              # double 3.8999999999999999
	.quad	0x4041eb851eb851ec              # double 35.840000000000003
	.quad	0x404cd9999999999a              # double 57.700000000000003
	.quad	0x405c6f5c28f5c28f              # double 113.73999999999999
	.quad	0x4040533333333333              # double 32.649999999999999
	.quad	0x4053dc28f5c28f5c              # double 79.439999999999998
	.quad	0x403ec7ae147ae148              # double 30.780000000000001
	.quad	0x404c9d70a3d70a3d              # double 57.229999999999997
	.quad	0x402fdc28f5c28f5c              # double 15.93
	.quad	0x4047f33333333333              # double 47.899999999999999
	.quad	0x4057a28f5c28f5c3              # double 94.540000000000006
	.quad	0x4063d23d70a3d70a              # double 158.56999999999999
	.quad	0x402ffae147ae147b              # double 15.99
	.quad	0x404835c28f5c28f6              # double 48.420000000000002
	.quad	0x404b03d70a3d70a4              # double 54.030000000000001
	.quad	0x40586ae147ae147b              # double 97.670000000000001
	.quad	0x4057a3d70a3d70a4              # double 94.560000000000002
	.quad	0x406231999999999a              # double 145.55000000000001
	.quad	0x404835c28f5c28f6              # double 48.420000000000002
	.quad	0x405708f5c28f5c29              # double 92.14
	.quad	0x4040c00000000000              # double 33.5
	.quad	0x4052fb851eb851ec              # double 75.930000000000007
	.quad	0x4052d3d70a3d70a4              # double 75.310000000000002
	.quad	0x4060ce147ae147ae              # double 134.44
	.quad	0x401e1eb851eb851f              # double 7.5300000000000002
	.quad	0x4040eb851eb851ec              # double 33.840000000000003
	.quad	0x40483d70a3d70a3d              # double 48.479999999999997
	.quad	0x40547a3d70a3d70a              # double 81.909999999999997
	.quad	0x404f63d70a3d70a4              # double 62.780000000000001
	.quad	0x4060e1999999999a              # double 135.05000000000001
	.quad	0x40368f5c28f5c28f              # double 22.559999999999999
	.quad	0x404f5c28f5c28f5c              # double 62.719999999999999
	.quad	0x403f1eb851eb851f              # double 31.120000000000001
	.quad	0x404d3eb851eb851f              # double 58.490000000000002
	.quad	0x403ee66666666666              # double 30.899999999999999
	.quad	0x40484147ae147ae1              # double 48.509999999999998
	.quad	0x4048228f5c28f5c3              # double 48.270000000000003
	.quad	0x405ac0a3d70a3d71              # double 107.01000000000001
	.quad	0x403d91eb851eb852              # double 29.57
	.quad	0x404c466666666666              # double 56.549999999999997
	.quad	0x403fd70a3d70a3d7              # double 31.84
	.quad	0x4050e3d70a3d70a4              # double 67.560000000000002
	.quad	0x404f88f5c28f5c29              # double 63.07
	.quad	0x405cd851eb851eb8              # double 115.38
	.quad	0x40580e147ae147ae              # double 96.219999999999998
	.quad	0x40625ccccccccccd              # double 146.90000000000001
	.quad	0x4052fd70a3d70a3d              # double 75.959999999999993
	.quad	0x405f79999999999a              # double 125.90000000000001
	.quad	0x40539eb851eb851f              # double 78.480000000000003
	.quad	0x406096b851eb851f              # double 132.71000000000001
	.quad	0x4011e147ae147ae1              # double 4.4699999999999998
	.quad	0x4033b0a3d70a3d71              # double 19.690000000000001
	.quad	0x404c6a3d70a3d70a              # double 56.829999999999998
	.quad	0x4057bf5c28f5c28f              # double 94.989999999999994
	.quad	0x4056af5c28f5c28f              # double 90.739999999999994
	.quad	0x4061070a3d70a3d7              # double 136.22
	.quad	0x40325eb851eb851f              # double 18.370000000000001
	.quad	0x4046b9999999999a              # double 45.450000000000003
	.quad	0x4045af5c28f5c28f              # double 43.369999999999997
	.quad	0x4056200000000000              # double 88.5
	.quad	0x4052c851eb851eb8              # double 75.129999999999995
	.quad	0x405fe28f5c28f5c3              # double 127.54000000000001
	.quad	0x4056f5c28f5c28f6              # double 91.840000000000003
	.quad	0x40617a8f5c28f5c3              # double 139.83000000000001
	.quad	0x4050bf5c28f5c28f              # double 66.989999999999995
	.quad	0x405c97ae147ae148              # double 114.37
	.quad	0x4041cf5c28f5c28f              # double 35.619999999999997
	.quad	0x405849999999999a              # double 97.150000000000005
	.quad	0x402ca3d70a3d70a4              # double 14.32
	.quad	0x404415c28f5c28f6              # double 40.170000000000002
	.quad	0x4041cf5c28f5c28f              # double 35.619999999999997
	.quad	0x405350a3d70a3d71              # double 77.260000000000005
	.quad	0x4058accccccccccd              # double 98.700000000000002
	.quad	0x4063af0a3d70a3d7              # double 157.47
	.quad	0x402d333333333333              # double 14.6
	.quad	0x40471851eb851eb8              # double 46.189999999999998
	.quad	0x403b547ae147ae14              # double 27.329999999999998
	.quad	0x4054870a3d70a3d7              # double 82.109999999999999
	.quad	0x402ef5c28f5c28f6              # double 15.48
	.quad	0x40473eb851eb851f              # double 46.490000000000002
	.quad	0x4054ad70a3d70a3d              # double 82.709999999999993
	.quad	0x40616947ae147ae1              # double 139.28999999999999
	.quad	0x4031c7ae147ae148              # double 17.780000000000001
	.quad	0x404da8f5c28f5c29              # double 59.32
	.quad	0x4042b1eb851eb852              # double 37.390000000000001
	.quad	0x4056b47ae147ae14              # double 90.819999999999993
	.quad	0x403da66666666666              # double 29.649999999999999
	.quad	0x4050a0a3d70a3d71              # double 66.510000000000005
	.quad	0x402c8a3d70a3d70a              # double 14.27
	.quad	0x40480b851eb851ec              # double 48.090000000000003
	.quad	0x4043228f5c28f5c3              # double 38.270000000000003
	.quad	0x4052b8f5c28f5c29              # double 74.89
	.quad	0x4051547ae147ae14              # double 69.319999999999993
	.quad	0x405e31eb851eb852              # double 120.78
	.quad	0x400dc28f5c28f5c3              # double 3.7200000000000002
	.quad	0x4044a00000000000              # double 41.25
	.quad	0x4019c28f5c28f5c3              # double 6.4400000000000004
	.quad	0x404f600000000000              # double 62.75
	.quad	0x403d2e147ae147ae              # double 29.18
	.quad	0x4051a8f5c28f5c29              # double 70.640000000000001
	.quad	0x4047028f5c28f5c3              # double 46.020000000000003
	.quad	0x4051e47ae147ae14              # double 71.569999999999993
	.quad	0x404c91eb851eb852              # double 57.140000000000001
	.quad	0x405cc7ae147ae148              # double 115.12
	.quad	0x4046beb851eb851f              # double 45.490000000000002
	.quad	0x4055400000000000              # double 85
	.quad	0x4043600000000000              # double 38.75
	.quad	0x4054a147ae147ae1              # double 82.519999999999996
	.quad	0x404d428f5c28f5c3              # double 58.520000000000003
	.quad	0x405ae9999999999a              # double 107.65000000000001
	.quad	0x404b70a3d70a3d71              # double 54.880000000000003
	.quad	0x4058e33333333333              # double 99.549999999999997
	.quad	0x4051feb851eb851f              # double 71.980000000000004
	.quad	0x405ec0a3d70a3d71              # double 123.01000000000001
	.quad	0x4042dae147ae147b              # double 37.710000000000001
	.quad	0x405118f5c28f5c29              # double 68.390000000000001
	.quad	0x4045a8f5c28f5c29              # double 43.32
	.quad	0x4054a7ae147ae148              # double 82.620000000000005
	.quad	0x4053c70a3d70a3d7              # double 79.109999999999999
	.quad	0x4061d428f5c28f5c              # double 142.63
	.quad	0x40413d70a3d70a3d              # double 34.479999999999997
	.quad	0x40546851eb851eb8              # double 81.629999999999995
	.quad	0x405261eb851eb852              # double 73.530000000000001
	.quad	0x406058a3d70a3d71              # double 130.77000000000001
	.quad	0x4025666666666666              # double 10.699999999999999
	.quad	0x40496b851eb851ec              # double 50.840000000000003
	.quad	0x40378a3d70a3d70a              # double 23.539999999999999
	.quad	0x405110a3d70a3d71              # double 68.260000000000005
	.quad	0x404fe00000000000              # double 63.75
	.quad	0x405f38f5c28f5c29              # double 124.89
	.quad	0x4012000000000000              # double 4.5
	.quad	0x403f75c28f5c28f6              # double 31.460000000000001
	.quad	0x404baccccccccccd              # double 55.350000000000001
	.quad	0x4058ed70a3d70a3d              # double 99.709999999999993
	.quad	0x4002147ae147ae14              # double 2.2599999999999998
	.quad	0x3ffa147ae147ae14              # double 1.6299999999999999
	.quad	0x40505eb851eb851f              # double 65.480000000000004
	.quad	0x405e428f5c28f5c3              # double 121.04000000000001
	.quad	0x405060a3d70a3d71              # double 65.510000000000005
	.quad	0x4060528f5c28f5c3              # double 130.58000000000001
	.quad	0x4052b0a3d70a3d71              # double 74.760000000000005
	.quad	0x406041999999999a              # double 130.05000000000001
	.quad	0x404efae147ae147b              # double 61.960000000000001
	.quad	0x405c5ccccccccccd              # double 113.45
	.quad	0x4036c00000000000              # double 22.75
	.quad	0x405305c28f5c28f6              # double 76.090000000000003
	.quad	0x40283851eb851eb8              # double 12.109999999999999
	.quad	0x404c19999999999a              # double 56.200000000000003
	.quad	0x404e1851eb851eb8              # double 60.189999999999998
	.quad	0x4059928f5c28f5c3              # double 102.29000000000001
	.quad	0x403bee147ae147ae              # double 27.93
	.quad	0x4053828f5c28f5c3              # double 78.040000000000006
	.quad	0x402c6b851eb851ec              # double 14.210000000000001
	.quad	0x40443eb851eb851f              # double 40.490000000000002
	.quad	0x4054366666666666              # double 80.849999999999994
	.quad	0x406040a3d70a3d71              # double 130.02000000000001
	.quad	0x4058b00000000000              # double 98.75
	.quad	0x40647147ae147ae1              # double 163.53999999999999
	.quad	0x4043ca3d70a3d70a              # double 39.579999999999998
	.quad	0x40595a3d70a3d70a              # double 101.41
	.quad	0x4052f5c28f5c28f6              # double 75.840000000000003
	.quad	0x4060970a3d70a3d7              # double 132.72
	.quad	0x4001ae147ae147ae              # double 2.21
	.quad	0x402c28f5c28f5c29              # double 14.08
	.quad	0x4036ae147ae147ae              # double 22.68
	.quad	0x405057ae147ae148              # double 65.370000000000005
	.quad	0x40547a3d70a3d70a              # double 81.909999999999997
	.quad	0x4061523d70a3d70a              # double 138.56999999999999
	.quad	0x4051d28f5c28f5c3              # double 71.290000000000006
	.quad	0x405cb8f5c28f5c29              # double 114.89
	.quad	0x4056b51eb851eb85              # double 90.829999999999998
	.quad	0x4064870a3d70a3d7              # double 164.22
	.quad	0x40579c28f5c28f5c              # double 94.439999999999998
	.quad	0x4062f2e147ae147b              # double 151.59
	.quad	0x4054828f5c28f5c3              # double 82.040000000000006
	.quad	0x4060623d70a3d70a              # double 131.06999999999999
	.quad	0x402b51eb851eb852              # double 13.66
	.quad	0x404ffae147ae147b              # double 63.960000000000001
	.quad	0x404830a3d70a3d71              # double 48.380000000000003
	.quad	0x4055f9999999999a              # double 87.900000000000006
	.quad	0x404730a3d70a3d71              # double 46.380000000000003
	.quad	0x4055d00000000000              # double 87.25
	.quad	0x403647ae147ae148              # double 22.280000000000001
	.quad	0x404fa7ae147ae148              # double 63.310000000000002
	.quad	0x4006f5c28f5c28f6              # double 2.8700000000000001
	.quad	0x40402f5c28f5c28f              # double 32.369999999999997
	.quad	0x40240a3d70a3d70a              # double 10.02
	.quad	0x404d1eb851eb851f              # double 58.240000000000002
	.quad	0x4048947ae147ae14              # double 49.159999999999997
	.quad	0x40590a3d70a3d70a              # double 100.16
	.quad	0x4055a7ae147ae148              # double 86.620000000000005
	.quad	0x4060f1eb851eb852              # double 135.56
	.quad	0x4043a147ae147ae1              # double 39.259999999999998
	.quad	0x4056bb851eb851ec              # double 90.930000000000007
	.quad	0x405395c28f5c28f6              # double 78.340000000000003
	.quad	0x4060bd1eb851eb85              # double 133.91
	.quad	0x4054a1eb851eb852              # double 82.530000000000001
	.quad	0x40616e6666666666              # double 139.44999999999999
	.quad	0x404de28f5c28f5c3              # double 59.770000000000003
	.quad	0x405c17ae147ae148              # double 112.37
	.quad	0x4051beb851eb851f              # double 70.980000000000004
	.quad	0x40605851eb851eb8              # double 130.75999999999999
	.quad	0x4050a66666666666              # double 66.599999999999994
	.quad	0x405c8f5c28f5c28f              # double 114.23999999999999
	.quad	0x4041e8f5c28f5c29              # double 35.82
	.quad	0x40568ccccccccccd              # double 90.200000000000002
	.quad	0x403e87ae147ae148              # double 30.530000000000001
	.quad	0x4051fd70a3d70a3d              # double 71.959999999999994
	.quad	0x405160a3d70a3d71              # double 69.510000000000005
	.quad	0x40617bd70a3d70a4              # double 139.87
	.quad	0x4057a3d70a3d70a4              # double 94.560000000000002
	.quad	0x4065aa8f5c28f5c3              # double 173.33000000000001
	.quad	0x40356b851eb851ec              # double 21.420000000000002
	.quad	0x404dea3d70a3d70a              # double 59.829999999999998
	.quad	0x404d59999999999a              # double 58.700000000000003
	.quad	0x405bd1eb851eb852              # double 111.28
	.quad	0x4042b851eb851eb8              # double 37.439999999999998
	.quad	0x40579eb851eb851f              # double 94.480000000000003
	.quad	0x403f266666666666              # double 31.149999999999999
	.quad	0x404f8e147ae147ae              # double 63.109999999999999
	.quad	0x403787ae147ae148              # double 23.530000000000001
	.quad	0x404fd9999999999a              # double 63.700000000000003
	.quad	0x401470a3d70a3d71              # double 5.1100000000000003
	.quad	0x404fc8f5c28f5c29              # double 63.57
	.quad	0x404be7ae147ae148              # double 55.810000000000002
	.quad	0x405ee0a3d70a3d71              # double 123.51000000000001
	.quad	0x402f99999999999a              # double 15.800000000000001
	.quad	0x40452f5c28f5c28f              # double 42.369999999999997
	.quad	0x4054e1eb851eb852              # double 83.530000000000001
	.quad	0x4062af0a3d70a3d7              # double 149.47
	.quad	0x4054166666666666              # double 80.349999999999994
	.quad	0x40633b851eb851ec              # double 153.86000000000001
	.quad	0x4042dd70a3d70a3d              # double 37.729999999999997
	.quad	0x40598ccccccccccd              # double 102.2
	.quad	0x4057d3d70a3d70a4              # double 95.310000000000002
	.quad	0x4060a5c28f5c28f6              # double 133.18000000000001
	.quad	0x405871eb851eb852              # double 97.780000000000001
	.quad	0x406363851eb851ec              # double 155.11000000000001
	.quad	0x404d8f5c28f5c28f              # double 59.119999999999997
	.quad	0x405d09999999999a              # double 116.15000000000001
	.quad	0x4024b33333333333              # double 10.35
	.quad	0x4044cccccccccccd              # double 41.600000000000001
	.quad	0x40504e147ae147ae              # double 65.219999999999999
	.quad	0x405aed70a3d70a3d              # double 107.70999999999999
	.quad	0x404b6a3d70a3d70a              # double 54.829999999999998
	.quad	0x405b266666666666              # double 108.59999999999999
	.quad	0x4056c0a3d70a3d71              # double 91.010000000000005
	.quad	0x4062e66666666666              # double 151.19999999999999
	.quad	0x4053a851eb851eb8              # double 78.629999999999995
	.quad	0x406277ae147ae148              # double 147.74000000000001
	.quad	0x4049947ae147ae14              # double 51.159999999999997
	.quad	0x405bb0a3d70a3d71              # double 110.76000000000001
	.quad	0x405191eb851eb852              # double 70.280000000000001
	.quad	0x405aa47ae147ae14              # double 106.56999999999999
	.quad	0x4051851eb851eb85              # double 70.079999999999998
	.quad	0x4060333333333333              # double 129.59999999999999
	.quad	0x4047b47ae147ae14              # double 47.409999999999997
	.quad	0x4058e33333333333              # double 99.549999999999997
	.quad	0x3fe0a3d70a3d70a4              # double 0.52000000000000002
	.quad	0x4035fd70a3d70a3d              # double 21.989999999999998
	.quad	0x404b6ccccccccccd              # double 54.850000000000001
	.quad	0x4057bccccccccccd              # double 94.950000000000002
	.quad	0x405777ae147ae148              # double 93.870000000000005
	.quad	0x40633a3d70a3d70a              # double 153.81999999999999
	.quad	0x40446b851eb851ec              # double 40.840000000000003
	.quad	0x4050d9999999999a              # double 67.400000000000006
	.quad	0x404c9d70a3d70a3d              # double 57.229999999999997
	.quad	0x405d170a3d70a3d7              # double 116.36
	.quad	0x4053051eb851eb85              # double 76.079999999999998
	.quad	0x4061970a3d70a3d7              # double 140.72
	.quad	0x404f70a3d70a3d71              # double 62.880000000000003
	.quad	0x405ac70a3d70a3d7              # double 107.11
	.quad	0x4037851eb851eb85              # double 23.52
	.quad	0x404d600000000000              # double 58.75
	.quad	0x4055b0a3d70a3d71              # double 86.760000000000005
	.quad	0x4061aae147ae147b              # double 141.34
	.quad	0x4053270a3d70a3d7              # double 76.609999999999999
	.quad	0x40606fae147ae148              # double 131.49000000000001
	.quad	0x40517e147ae147ae              # double 69.969999999999999
	.quad	0x406033d70a3d70a4              # double 129.62
	.quad	0x4018a3d70a3d70a4              # double 6.1600000000000001
	.quad	0x40387ae147ae147b              # double 24.48
	.quad	0x404eee147ae147ae              # double 61.859999999999999
	.quad	0x405ca9999999999a              # double 114.65000000000001
	.quad	0x403eb0a3d70a3d71              # double 30.690000000000001
	.quad	0x40560a3d70a3d70a              # double 88.159999999999997
	.quad	0x4056647ae147ae14              # double 89.569999999999993
	.quad	0x406263d70a3d70a4              # double 147.12
	.quad	0x40453c28f5c28f5c              # double 42.469999999999999
	.quad	0x4055bc28f5c28f5c              # double 86.939999999999998
	.quad	0x403deb851eb851ec              # double 29.920000000000002
	.quad	0x40517b851eb851ec              # double 69.930000000000007
	.quad	0x404203d70a3d70a4              # double 36.030000000000001
	.quad	0x4054fae147ae147b              # double 83.920000000000001
	.quad	0x4056af5c28f5c28f              # double 90.739999999999994
	.quad	0x4061733333333333              # double 139.59999999999999
	.quad	0x40401c28f5c28f5c              # double 32.219999999999999
	.quad	0x4052470a3d70a3d7              # double 73.109999999999999
	.quad	0x4025947ae147ae14              # double 10.789999999999999
	.quad	0x404c970a3d70a3d7              # double 57.18
	.quad	0x403cdeb851eb851f              # double 28.870000000000001
	.quad	0x404d828f5c28f5c3              # double 59.020000000000003
	.quad	0x4047eccccccccccd              # double 47.850000000000001
	.quad	0x405b53d70a3d70a4              # double 109.31
	.quad	0x4046400000000000              # double 44.5
	.quad	0x4055e1eb851eb852              # double 87.530000000000001
	.quad	0x4025b33333333333              # double 10.85
	.quad	0x40462ccccccccccd              # double 44.350000000000001
	.quad	0x4046e8f5c28f5c29              # double 45.82
	.quad	0x40554ae147ae147b              # double 85.170000000000001
	.quad	0x4045c3d70a3d70a4              # double 43.530000000000001
	.quad	0x4057766666666666              # double 93.849999999999994
	.quad	0x404c95c28f5c28f6              # double 57.170000000000002
	.quad	0x4059fc28f5c28f5c              # double 103.94
	.quad	0x4055847ae147ae14              # double 86.069999999999993
	.quad	0x4061cf0a3d70a3d7              # double 142.47
	.quad	0x40586b851eb851ec              # double 97.680000000000007
	.quad	0x4062fa8f5c28f5c3              # double 151.83000000000001
	.quad	0x40556f5c28f5c28f              # double 85.739999999999994
	.quad	0x40626e147ae147ae              # double 147.44
	.quad	0x40131eb851eb851f              # double 4.7800000000000002
	.quad	0x4041b9999999999a              # double 35.450000000000003
	.quad	0x40587d70a3d70a3d              # double 97.959999999999993
	.quad	0x40634dc28f5c28f6              # double 154.43000000000001
	.quad	0x4058d3d70a3d70a4              # double 99.310000000000002
	.quad	0x40634ae147ae147b              # double 154.34
	.quad	0x4018000000000000              # double 6
	.quad	0x4046d1eb851eb852              # double 45.640000000000001
	.quad	0x404c066666666666              # double 56.049999999999997
	.quad	0x405cdeb851eb851f              # double 115.48
	.quad	0x4038fae147ae147b              # double 24.98
	.quad	0x405093d70a3d70a4              # double 66.310000000000002
	.quad	0x4055947ae147ae14              # double 86.319999999999993
	.quad	0x4063147ae147ae14              # double 152.63999999999999
	.quad	0x3ff147ae147ae148              # double 1.0800000000000001
	.quad	0x40440e147ae147ae              # double 40.109999999999999
	.quad	0x404575c28f5c28f6              # double 42.920000000000002
	.quad	0x405428f5c28f5c29              # double 80.64
	.quad	0x4053e5c28f5c28f6              # double 79.590000000000003
	.quad	0x4060970a3d70a3d7              # double 132.72
	.quad	0x4051f7ae147ae148              # double 71.870000000000005
	.quad	0x405adb851eb851ec              # double 107.43000000000001
	.quad	0x403359999999999a              # double 19.350000000000001
	.quad	0x404799999999999a              # double 47.200000000000003
	.quad	0x40430b851eb851ec              # double 38.090000000000003
	.quad	0x40571ccccccccccd              # double 92.450000000000002
	.quad	0x4032f0a3d70a3d71              # double 18.940000000000001
	.quad	0x404e547ae147ae14              # double 60.659999999999997
	.quad	0x403e266666666666              # double 30.149999999999999
	.quad	0x404e666666666666              # double 60.799999999999997
	.quad	0x40336e147ae147ae              # double 19.43
	.quad	0x404a99999999999a              # double 53.200000000000003
	.quad	0x404ff47ae147ae14              # double 63.909999999999997
	.quad	0x40602fae147ae148              # double 129.49000000000001
	.quad	0x404b30a3d70a3d71              # double 54.380000000000003
	.quad	0x405c5ae147ae147b              # double 113.42
	.quad	0x404507ae147ae148              # double 42.060000000000002
	.quad	0x4056d33333333333              # double 91.299999999999997
	.quad	0x3fffae147ae147ae              # double 1.98
	.quad	0x404499999999999a              # double 41.200000000000003
	.quad	0x4015e147ae147ae1              # double 5.4699999999999998
	.quad	0x4037d70a3d70a3d7              # double 23.84
	.quad	0x40553147ae147ae1              # double 84.769999999999996
	.quad	0x4060b570a3d70a3d              # double 133.66999999999999
	.quad	0x4013b851eb851eb8              # double 4.9299999999999997
	.quad	0x40431d70a3d70a3d              # double 38.229999999999997
	.quad	0x40550c28f5c28f5c              # double 84.189999999999998
	.quad	0x406278a3d70a3d71              # double 147.77000000000001
	.quad	0x4043747ae147ae14              # double 38.909999999999997
	.quad	0x4050c3d70a3d70a4              # double 67.060000000000002
	.quad	0x4039deb851eb851f              # double 25.870000000000001
	.quad	0x404e3d70a3d70a3d              # double 60.479999999999997
	.quad	0x404f4e147ae147ae              # double 62.609999999999999
	.quad	0x405ba66666666666              # double 110.59999999999999
	.quad	0x403c947ae147ae14              # double 28.579999999999998
	.quad	0x40551d70a3d70a3d              # double 84.459999999999993
	.quad	0x405713d70a3d70a4              # double 92.310000000000002
	.quad	0x406301eb851eb852              # double 152.06
	.quad	0x404e9d70a3d70a3d              # double 61.229999999999997
	.quad	0x4057266666666666              # double 92.599999999999994
	.quad	0x4054bd70a3d70a3d              # double 82.959999999999993
	.quad	0x405f733333333333              # double 125.8
	.quad	0x402f2e147ae147ae              # double 15.59
	.quad	0x404db70a3d70a3d7              # double 59.43
	.quad	0x404170a3d70a3d71              # double 34.880000000000003
	.quad	0x4051847ae147ae14              # double 70.069999999999993
	.quad	0x402a947ae147ae14              # double 13.289999999999999
	.quad	0x4041d9999999999a              # double 35.700000000000003
	.quad	0x403eeb851eb851ec              # double 30.920000000000002
	.quad	0x404ebc28f5c28f5c              # double 61.469999999999999
	.quad	0x405753d70a3d70a4              # double 93.310000000000002
	.quad	0x4061a1999999999a              # double 141.05000000000001
	.quad	0x40513a3d70a3d70a              # double 68.909999999999997
	.quad	0x405fba3d70a3d70a              # double 126.91
	.quad	0x403aa147ae147ae1              # double 26.629999999999999
	.quad	0x404ddd70a3d70a3d              # double 59.729999999999997
	.quad	0x4042b47ae147ae14              # double 37.409999999999997
	.quad	0x40522ae147ae147b              # double 72.670000000000002
	.quad	0x402f428f5c28f5c3              # double 15.630000000000001
	.quad	0x40467d70a3d70a3d              # double 44.979999999999997
	.quad	0x403ba8f5c28f5c29              # double 27.66
	.quad	0x4053233333333333              # double 76.549999999999997
	.quad	0x4058f9999999999a              # double 99.900000000000005
	.quad	0x40648a8f5c28f5c3              # double 164.33000000000001
	.quad	0x4055e147ae147ae1              # double 87.519999999999996
	.quad	0x406200f5c28f5c29              # double 144.03
	.quad	0x4011ae147ae147ae              # double 4.4199999999999999
	.quad	0x403dca3d70a3d70a              # double 29.789999999999999
	.quad	0x403ee8f5c28f5c29              # double 30.91
	.quad	0x404d9eb851eb851f              # double 59.240000000000002
	.quad	0x40197ae147ae147b              # double 6.3700000000000001
	.quad	0x4047deb851eb851f              # double 47.740000000000002
	.quad	0x4053a5c28f5c28f6              # double 78.590000000000003
	.quad	0x4060b051eb851eb8              # double 133.50999999999999
	.quad	0x4049533333333333              # double 50.649999999999999
	.quad	0x405785c28f5c28f6              # double 94.090000000000003
	.quad	0x4051728f5c28f5c3              # double 69.790000000000006
	.quad	0x406101999999999a              # double 136.05000000000001
	.quad	0x404e266666666666              # double 60.299999999999997
	.quad	0x405e0a3d70a3d70a              # double 120.16
	.quad	0x404ad1eb851eb852              # double 53.640000000000001
	.quad	0x405b6e147ae147ae              # double 109.72
	.quad	0x402399999999999a              # double 9.8000000000000007
	.quad	0x404f066666666666              # double 62.049999999999997
	.quad	0x40552e147ae147ae              # double 84.719999999999999
	.quad	0x4060d80000000000              # double 134.75
	.quad	0x4056bae147ae147b              # double 90.920000000000001
	.quad	0x4060651eb851eb85              # double 131.16
	.quad	0x40518ccccccccccd              # double 70.200000000000003
	.quad	0x405f95c28f5c28f6              # double 126.34
	.quad	0x403328f5c28f5c29              # double 19.16
	.quad	0x4046c8f5c28f5c29              # double 45.57
	.quad	0x404a6ccccccccccd              # double 52.850000000000001
	.quad	0x4058b851eb851eb8              # double 98.879999999999995
	.quad	0x40515147ae147ae1              # double 69.269999999999996
	.quad	0x405eed70a3d70a3d              # double 123.70999999999999
	.quad	0x4058fc28f5c28f5c              # double 99.939999999999998
	.quad	0x40642a3d70a3d70a              # double 161.31999999999999
	.quad	0x40571d70a3d70a3d              # double 92.459999999999993
	.quad	0x40643e6666666666              # double 161.94999999999999
	.quad	0x4057b00000000000              # double 94.75
	.quad	0x4063efae147ae148              # double 159.49000000000001
	.quad	0x4052347ae147ae14              # double 72.819999999999993
	.quad	0x405f851eb851eb85              # double 126.08
	.quad	0x40571147ae147ae1              # double 92.269999999999996
	.quad	0x40623f5c28f5c28f              # double 145.97999999999999
	.quad	0x4017b851eb851eb8              # double 5.9299999999999997
	.quad	0x403c147ae147ae14              # double 28.079999999999998
	.quad	0x4040a147ae147ae1              # double 33.259999999999998
	.quad	0x405210a3d70a3d71              # double 72.260000000000005
	.quad	0x4000f5c28f5c28f6              # double 2.1200000000000001
	.quad	0x4043b0a3d70a3d71              # double 39.380000000000003
	.quad	0x4029fae147ae147b              # double 12.99
	.quad	0x4047f0a3d70a3d71              # double 47.880000000000003
	.quad	0x404cc3d70a3d70a4              # double 57.530000000000001
	.quad	0x405c2b851eb851ec              # double 112.68000000000001
	.quad	0x404759999999999a              # double 46.700000000000003
	.quad	0x4057b9999999999a              # double 94.900000000000005
	.quad	0x40544851eb851eb8              # double 81.129999999999995
	.quad	0x405fb51eb851eb85              # double 126.83
	.quad	0x402999999999999a              # double 12.800000000000001
	.quad	0x405141eb851eb852              # double 69.030000000000001
	.quad	0x403ef5c28f5c28f6              # double 30.960000000000001
	.quad	0x40513d70a3d70a3d              # double 68.959999999999994
	.quad	0x40382e147ae147ae              # double 24.18
	.quad	0x404d8e147ae147ae              # double 59.109999999999999
	.quad	0x400228f5c28f5c29              # double 2.27
	.quad	0x4044a66666666666              # double 41.299999999999997
	.quad	0x4048deb851eb851f              # double 49.740000000000002
	.quad	0x4054a00000000000              # double 82.5
	.quad	0x404f466666666666              # double 62.549999999999997
	.quad	0x405f85c28f5c28f6              # double 126.09
	.quad	0x40486b851eb851ec              # double 48.840000000000003
	.quad	0x4057c8f5c28f5c29              # double 95.14
	.quad	0x4052100000000000              # double 72.25
	.quad	0x405e3147ae147ae1              # double 120.77
	.quad	0x4009c28f5c28f5c3              # double 3.2200000000000002
	.quad	0x403875c28f5c28f6              # double 24.460000000000001
	.quad	0x4058cd70a3d70a3d              # double 99.209999999999993
	.quad	0x4064e3851eb851ec              # double 167.11000000000001
	.quad	0x4055d7ae147ae148              # double 87.370000000000005
	.quad	0x4060a1999999999a              # double 133.05000000000001
	.quad	0x4054951eb851eb85              # double 82.329999999999998
	.quad	0x40621b851eb851ec              # double 144.86000000000001
	.quad	0x4057e1eb851eb852              # double 95.530000000000001
	.quad	0x40647c7ae147ae14              # double 163.88999999999999
	.quad	0x4057870a3d70a3d7              # double 94.109999999999999
	.quad	0x406226147ae147ae              # double 145.19
	.quad	0x402a3851eb851eb8              # double 13.109999999999999
	.quad	0x4041d1eb851eb852              # double 35.640000000000001
	.quad	0x404db851eb851eb8              # double 59.439999999999998
	.quad	0x405d0c28f5c28f5c              # double 116.19
	.quad	0x4038451eb851eb85              # double 24.27
	.quad	0x404f08f5c28f5c29              # double 62.07
	.quad	0x4056e1eb851eb852              # double 91.530000000000001
	.quad	0x40622851eb851eb8              # double 145.25999999999999
	.quad	0x4047370a3d70a3d7              # double 46.43
	.quad	0x4054beb851eb851f              # double 82.980000000000003
	.quad	0x4058f8f5c28f5c29              # double 99.89
	.quad	0x4062f7ae147ae148              # double 151.74000000000001
	.quad	0x40509a3d70a3d70a              # double 66.409999999999997
	.quad	0x4059a51eb851eb85              # double 102.58
	.quad	0x404c3ae147ae147b              # double 56.460000000000001
	.quad	0x405ca9999999999a              # double 114.65000000000001
	.quad	0x404f570a3d70a3d7              # double 62.68
	.quad	0x4058e5c28f5c28f6              # double 99.590000000000003
	.quad	0x4053433333333333              # double 77.049999999999997
	.quad	0x406084cccccccccd              # double 132.15000000000001
	.quad	0x4047b0a3d70a3d71              # double 47.380000000000003
	.quad	0x405473d70a3d70a4              # double 81.810000000000002
	.quad	0x4050366666666666              # double 64.849999999999994
	.quad	0x405ae51eb851eb85              # double 107.58
	.quad	0x4056cf5c28f5c28f              # double 91.239999999999994
	.quad	0x4062266666666666              # double 145.19999999999999
	.quad	0x40506c28f5c28f5c              # double 65.689999999999998
	.quad	0x405f8851eb851eb8              # double 126.13
	.quad	0x4050beb851eb851f              # double 66.980000000000004
	.quad	0x406113851eb851ec              # double 136.61000000000001
	.quad	0x4013cccccccccccd              # double 4.9500000000000002
	.quad	0x403df0a3d70a3d71              # double 29.940000000000001
	.quad	0x4052d8f5c28f5c29              # double 75.39
	.quad	0x40638147ae147ae1              # double 156.03999999999999
	.quad	0x401e333333333333              # double 7.5499999999999998
	.quad	0x4041f70a3d70a3d7              # double 35.93
	.quad	0x403dd47ae147ae14              # double 29.829999999999998
	.quad	0x404f6ccccccccccd              # double 62.850000000000001
	.quad	0x4056f28f5c28f5c3              # double 91.790000000000006
	.quad	0x4061975c28f5c28f              # double 140.72999999999999
	.quad	0x4050a3d70a3d70a4              # double 66.560000000000002
	.quad	0x4060323d70a3d70a              # double 129.56999999999999
	.quad	0x4042147ae147ae14              # double 36.159999999999997
	.quad	0x4050d8f5c28f5c29              # double 67.390000000000001
	.quad	0x4044a00000000000              # double 41.25
	.quad	0x4055ae147ae147ae              # double 86.719999999999999
	.quad	0x4057b47ae147ae14              # double 94.819999999999993
	.quad	0x406395c28f5c28f6              # double 156.68000000000001
	.quad	0x4038266666666666              # double 24.149999999999999
	.quad	0x4050b66666666666              # double 66.849999999999994
	.quad	0x404623d70a3d70a4              # double 44.280000000000001
	.quad	0x4058470a3d70a3d7              # double 97.109999999999999
	.quad	0x403fd1eb851eb852              # double 31.82
	.quad	0x40515a3d70a3d70a              # double 69.409999999999997
	.quad	0x402b800000000000              # double 13.75
	.quad	0x404a88f5c28f5c29              # double 53.07
	.quad	0x405470a3d70a3d71              # double 81.760000000000005
	.quad	0x4060e8a3d70a3d71              # double 135.27000000000001
	.quad	0x4037b851eb851eb8              # double 23.719999999999999
	.quad	0x40537c28f5c28f5c              # double 77.939999999999998
	.quad	0x403887ae147ae148              # double 24.530000000000001
	.quad	0x404abc28f5c28f5c              # double 53.469999999999999
	.quad	0x4037a8f5c28f5c29              # double 23.66
	.quad	0x4050e7ae147ae148              # double 67.620000000000005
	.quad	0x4035e66666666666              # double 21.899999999999999
	.quad	0x404c2ccccccccccd              # double 56.350000000000001
	.quad	0x403f947ae147ae14              # double 31.579999999999998
	.quad	0x4052f5c28f5c28f6              # double 75.840000000000003
	.quad	0x403f47ae147ae148              # double 31.280000000000001
	.quad	0x4051b1eb851eb852              # double 70.780000000000001
	.quad	0x404563d70a3d70a4              # double 42.780000000000001
	.quad	0x4053a47ae147ae14              # double 78.569999999999993
	.quad	0x4028eb851eb851ec              # double 12.460000000000001
	.quad	0x40455eb851eb851f              # double 42.740000000000002
	.quad	0x4052ab851eb851ec              # double 74.680000000000007
	.quad	0x4062923d70a3d70a              # double 148.56999999999999
	.quad	0x4004a3d70a3d70a4              # double 2.5800000000000001
	.quad	0x40330ccccccccccd              # double 19.050000000000001
	.quad	0x4056d8f5c28f5c29              # double 91.39
	.quad	0x40626eb851eb851f              # double 147.46000000000001
	.quad	0x404c400000000000              # double 56.5
	.quad	0x405e4851eb851eb8              # double 121.13
	.quad	0x40350f5c28f5c28f              # double 21.059999999999999
	.quad	0x404b0e147ae147ae              # double 54.109999999999999
	.quad	0x403b170a3d70a3d7              # double 27.09
	.quad	0x404c800000000000              # double 57
	.quad	0x404768f5c28f5c29              # double 46.82
	.quad	0x4055c7ae147ae148              # double 87.120000000000005
	.quad	0x4046e147ae147ae1              # double 45.759999999999998
	.quad	0x4056828f5c28f5c3              # double 90.040000000000006
	.quad	0x405577ae147ae148              # double 85.870000000000005
	.quad	0x4062a6147ae147ae              # double 149.19
	.quad	0x4044428f5c28f5c3              # double 40.520000000000003
	.quad	0x40552147ae147ae1              # double 84.519999999999996
	.quad	0x40520f5c28f5c28f              # double 72.239999999999995
	.quad	0x405d9d70a3d70a3d              # double 118.45999999999999
	.quad	0x400ab851eb851eb8              # double 3.3399999999999999
	.quad	0x403bf5c28f5c28f6              # double 27.960000000000001
	.quad	0x4038ae147ae147ae              # double 24.68
	.quad	0x4049f33333333333              # double 51.899999999999999
	.quad	0x4046c51eb851eb85              # double 45.539999999999999
	.quad	0x4058b00000000000              # double 98.75
	.quad	0x402219999999999a              # double 9.0500000000000007
	.quad	0x404b03d70a3d70a4              # double 54.030000000000001
	.quad	0x405508f5c28f5c29              # double 84.14
	.quad	0x405ffd70a3d70a3d              # double 127.95999999999999
	.quad	0x40526c28f5c28f5c              # double 73.689999999999998
	.quad	0x4060270a3d70a3d7              # double 129.22
	.quad	0x40366e147ae147ae              # double 22.43
	.quad	0x404c370a3d70a3d7              # double 56.43
	.quad	0x40347851eb851eb8              # double 20.469999999999999
	.quad	0x4050cb851eb851ec              # double 67.180000000000007
	.quad	0x40355c28f5c28f5c              # double 21.359999999999999
	.quad	0x405458f5c28f5c29              # double 81.39
	.quad	0x4056270a3d70a3d7              # double 88.609999999999999
	.quad	0x40626fae147ae148              # double 147.49000000000001
	.quad	0x405631eb851eb852              # double 88.780000000000001
	.quad	0x405f9a3d70a3d70a              # double 126.41
	.quad	0x4042451eb851eb85              # double 36.539999999999999
	.quad	0x40568b851eb851ec              # double 90.180000000000007
	.quad	0x403763d70a3d70a4              # double 23.390000000000001
	.quad	0x4047f33333333333              # double 47.899999999999999
	.quad	0x403028f5c28f5c29              # double 16.16
	.quad	0x404abae147ae147b              # double 53.460000000000001
	.quad	0x404170a3d70a3d71              # double 34.880000000000003
	.quad	0x40530a3d70a3d70a              # double 76.159999999999997
	.quad	0x4052e51eb851eb85              # double 75.579999999999998
	.quad	0x40618a3d70a3d70a              # double 140.31999999999999
	.quad	0x4040b9999999999a              # double 33.450000000000003
	.quad	0x405607ae147ae148              # double 88.120000000000005
	.quad	0x405640a3d70a3d71              # double 89.010000000000005
	.quad	0x4061d6b851eb851f              # double 142.71000000000001
	.quad	0x404748f5c28f5c29              # double 46.57
	.quad	0x4058228f5c28f5c3              # double 96.540000000000006
	.quad	0x4039000000000000              # double 25
	.quad	0x404c6ccccccccccd              # double 56.850000000000001
	.quad	0x4058f1eb851eb852              # double 99.780000000000001
	.quad	0x40657b3333333333              # double 171.84999999999999
	.quad	0x4054a51eb851eb85              # double 82.579999999999998
	.quad	0x4063147ae147ae14              # double 152.63999999999999
	.quad	0x402be147ae147ae1              # double 13.94
	.quad	0x404a6f5c28f5c28f              # double 52.869999999999997
	.quad	0x40474e147ae147ae              # double 46.609999999999999
	.quad	0x405c23d70a3d70a4              # double 112.56
	.quad	0x405030a3d70a3d71              # double 64.760000000000005
	.quad	0x405d170a3d70a3d7              # double 116.36
	.quad	0x403fdc28f5c28f5c              # double 31.859999999999999
	.quad	0x404ffae147ae147b              # double 63.960000000000001
	.quad	0x4051670a3d70a3d7              # double 69.609999999999999
	.quad	0x405e0d70a3d70a3d              # double 120.20999999999999
	.quad	0x404adc28f5c28f5c              # double 53.719999999999999
	.quad	0x4059347ae147ae14              # double 100.81999999999999
	.quad	0x40547851eb851eb8              # double 81.879999999999995
	.quad	0x4061ca8f5c28f5c3              # double 142.33000000000001
	.quad	0x403d63d70a3d70a4              # double 29.390000000000001
	.quad	0x4050a47ae147ae14              # double 66.569999999999993
	.quad	0x4055aae147ae147b              # double 86.670000000000001
	.quad	0x4061f051eb851eb8              # double 143.50999999999999
	.quad	0x4010851eb851eb85              # double 4.1299999999999999
	.quad	0x403f87ae147ae148              # double 31.530000000000001
	.quad	0x4036570a3d70a3d7              # double 22.34
	.quad	0x404d3eb851eb851f              # double 58.490000000000002
	.quad	0x4050228f5c28f5c3              # double 64.540000000000006
	.quad	0x405d1e147ae147ae              # double 116.47
	.quad	0x4051051eb851eb85              # double 68.079999999999998
	.quad	0x406020a3d70a3d71              # double 129.02000000000001
	.quad	0x4041028f5c28f5c3              # double 34.020000000000003
	.quad	0x4058828f5c28f5c3              # double 98.040000000000006
	.quad	0x404b9d70a3d70a3d              # double 55.229999999999997
	.quad	0x405a070a3d70a3d7              # double 104.11
	.quad	0x4033970a3d70a3d7              # double 19.59
	.quad	0x4050200000000000              # double 64.5
	.quad	0x4055366666666666              # double 84.849999999999994
	.quad	0x40639051eb851eb8              # double 156.50999999999999
	.quad	0x40579a3d70a3d70a              # double 94.409999999999996
	.quad	0x4061d7ae147ae148              # double 142.74000000000001
	.quad	0x4028fae147ae147b              # double 12.49
	.quad	0x4048dae147ae147b              # double 49.710000000000001
	.quad	0x403bcf5c28f5c28f              # double 27.809999999999999
	.quad	0x404feb851eb851ec              # double 63.840000000000003
	.quad	0x404af851eb851eb8              # double 53.939999999999998
	.quad	0x405aed70a3d70a3d              # double 107.70999999999999
	.quad	0x4057100000000000              # double 92.25
	.quad	0x4062728f5c28f5c3              # double 147.58000000000001
	.quad	0x4055f8f5c28f5c29              # double 87.89
	.quad	0x406285c28f5c28f6              # double 148.18000000000001
	.quad	0x4035051eb851eb85              # double 21.02
	.quad	0x40515c28f5c28f5c              # double 69.439999999999998
	.quad	0x404c866666666666              # double 57.049999999999997
	.quad	0x40584eb851eb851f              # double 97.230000000000003
	.quad	0x40483ae147ae147b              # double 48.460000000000001
	.quad	0x4057b66666666666              # double 94.849999999999994
	.quad	0x400e7ae147ae147b              # double 3.8100000000000001
	.quad	0x4042a147ae147ae1              # double 37.259999999999998
	.quad	0x405679999999999a              # double 89.900000000000006
	.quad	0x40638051eb851eb8              # double 156.00999999999999
	.quad	0x404ca7ae147ae148              # double 57.310000000000002
	.quad	0x40560e147ae147ae              # double 88.219999999999999
	.quad	0x405398f5c28f5c29              # double 78.39
	.quad	0x4061951eb851eb85              # double 140.66
	.quad	0x40537b851eb851ec              # double 77.930000000000007
	.quad	0x4062ba3d70a3d70a              # double 149.81999999999999
	.quad	0x4037266666666666              # double 23.149999999999999
	.quad	0x404f7ae147ae147b              # double 62.960000000000001
	.quad	0x4039c51eb851eb85              # double 25.77
	.quad	0x404bca3d70a3d70a              # double 55.579999999999998
	.quad	0x4052870a3d70a3d7              # double 74.109999999999999
	.quad	0x4061a851eb851eb8              # double 141.25999999999999
	.quad	0x40354f5c28f5c28f              # double 21.309999999999999
	.quad	0x4050066666666666              # double 64.099999999999994
	.quad	0x4047051eb851eb85              # double 46.039999999999999
	.quad	0x4053f33333333333              # double 79.799999999999997
	.quad	0x405071eb851eb852              # double 65.780000000000001
	.quad	0x405d63d70a3d70a4              # double 117.56
	.quad	0x4044851eb851eb85              # double 41.039999999999999
	.quad	0x4053cccccccccccd              # double 79.200000000000002
	.quad	0x40579851eb851eb8              # double 94.379999999999995
	.quad	0x4061e5c28f5c28f6              # double 143.18000000000001
	.quad	0x40546147ae147ae1              # double 81.519999999999996
	.quad	0x4060bae147ae147b              # double 133.84
	.quad	0x405587ae147ae148              # double 86.120000000000005
	.quad	0x4062523d70a3d70a              # double 146.56999999999999
	.quad	0x4043b0a3d70a3d71              # double 39.380000000000003
	.quad	0x4055570a3d70a3d7              # double 85.359999999999999
	.quad	0x404f8147ae147ae1              # double 63.009999999999998
	.quad	0x405bb28f5c28f5c3              # double 110.79000000000001
	.quad	0x4045200000000000              # double 42.25
	.quad	0x405701eb851eb852              # double 92.030000000000001
	.quad	0x40486a3d70a3d70a              # double 48.829999999999998
	.quad	0x4055bf5c28f5c28f              # double 86.989999999999994
	.quad	0x4033170a3d70a3d7              # double 19.09
	.quad	0x4050428f5c28f5c3              # double 65.040000000000006
	.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
