#include <stdio.h>
#include <math.h>
#include <time.h>
#include <unistd.h>
#include <cuda_runtime_api.h>
#include <errno.h>
#include <unistd.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 cuda_linear_regression CUDA_linear_regression.c -lm
*
* To run:
* ./cuda_linear_regression
*
* 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; //device varialble
//date set
point_t data[] = {{84.00,158.34},{65.52,110.67},{85.91,134.11},{77.48,136.09},
  {73.17,136.16},{67.40,109.20},{75.49,126.90},{77.85,114.67},
  {79.25,148.06},{78.31,121.73},{68.11,123.17},{65.98,119.55},
  {76.17,132.26},{ 2.64,38.33},{96.38,166.85},{86.14,132.68},
  {61.54,96.82},{37.72,98.07},{37.70,80.81},{32.28,100.04},
  { 3.66,23.94},{ 7.46,52.84},{36.23,95.31},{22.34,69.48},
  {71.96,115.66},{86.47,138.88},{92.92,145.82},{38.48,82.46},
  {44.20,93.62},{21.05,49.35},{11.86,34.11},{46.37,98.83},
  {91.10,151.02},{49.67,99.71},{93.18,154.70},{29.36,74.06},
  {98.23,161.21},{11.48,37.38},{76.14,134.55},{12.82,42.87},
  {41.65,73.14},{90.87,150.57},{20.07,60.27},{16.50,52.54},
  {13.34,34.29},{84.40,135.44},{11.52,59.82},{29.37,47.39},
  {98.77,186.38},{37.76,90.20},{70.76,120.68},{76.53,124.45},
  {53.19,83.32},{43.38,84.37},{24.17,54.39},{34.73,75.47},
  {48.74,88.61},{90.41,137.16},{71.67,116.42},{33.52,73.32},
  {89.07,151.04},{99.62,157.57},{ 6.06,23.75},{ 9.88,41.48},
  {37.40,88.12},{ 4.90,28.21},{59.65,93.58},{89.26,144.30},
  {80.12,125.86},{55.68,109.87},{ 6.63,29.82},{42.01,82.57},
  {28.50,58.62},{96.34,151.98},{58.48,86.73},{ 9.21,49.93},
  {45.26,91.89},{61.45,129.42},{64.16,122.85},{50.16,110.61},
  {69.15,117.41},{ 5.71,48.77},{94.65,155.24},{53.12,94.42},
  {16.94,63.60},{14.17,54.90},{51.54,115.01},{39.22,79.28},
  {39.61,78.46},{54.97,119.51},{11.59,36.63},{89.21,153.74},
  {72.09,134.94},{65.94,108.67},{25.24,83.47},{46.42,97.83},
  {92.01,150.73},{37.99,76.21},{89.04,142.25},{64.33,112.96},
  {53.37,106.10},{95.53,165.26},{38.36,91.04},{93.05,143.28},
  {28.64,68.65},{44.62,95.02},{45.09,77.05},{19.75,43.50},
  {20.91,56.67},{54.75,98.18},{58.10,104.92},{76.92,112.29},
  {95.54,134.70},{18.37,60.01},{34.41,64.02},{73.88,115.06},
  { 3.12,29.78},{87.83,139.28},{51.24,100.70},{59.09,93.30},
  {17.73,37.79},{53.24,125.19},{55.98,95.18},{93.57,161.31},
  {94.19,156.54},{17.23,61.67},{84.72,126.89},{94.21,173.37},
  {14.36,50.76},{86.73,164.40},{11.46,50.63},{82.37,140.06},
  {91.47,149.02},{78.43,139.81},{69.13,110.30},{55.18,98.69},
  {77.04,133.84},{89.54,152.12},{41.97,92.78},{33.30,54.63},
  {67.24,120.88},{99.28,167.60},{15.72,44.70},{ 1.99,30.69},
  {22.75,63.59},{ 7.67,35.46},{33.63,78.13},{ 4.18,34.79},
  {53.87,85.32},{50.78,116.87},{59.50,110.24},{86.30,128.04},
  { 1.58,32.38},{60.74,115.04},{41.74,80.26},{47.25,87.04},
  { 6.48,48.05},{ 5.38,40.66},{44.37,96.63},{52.09,106.49},
  { 2.53,20.15},{29.92,75.21},{64.13,113.18},{49.87,94.77},
  {89.10,139.11},{64.31,122.49},{77.49,151.19},{47.76,92.00},
  {35.10,84.27},{59.01,94.03},{30.72,66.91},{ 0.73,31.64},
  {87.23,139.17},{93.71,143.40},{99.09,150.61},{49.24,86.30},
  {70.06,123.48},{94.79,161.15},{65.53,110.62},{73.07,120.91},
  {58.64,109.98},{93.06,153.11},{10.33,52.32},{53.66,99.87},
  {79.93,131.72},{92.47,149.34},{81.26,134.04},{77.69,122.75},
  { 0.21,37.82},{ 5.74,33.36},{92.38,139.73},{11.65,57.39},
  {75.26,145.81},{92.63,139.34},{73.34,147.14},{54.49,105.57},
  {25.16,57.99},{15.96,57.13},{61.03,104.92},{49.06,91.20},
  {46.50,78.47},{83.35,139.36},{75.69,107.74},{45.22,91.87},
  { 3.46,47.84},{90.17,155.25},{40.70,58.46},{42.82,97.35},
  {49.34,98.41},{89.89,141.81},{42.76,84.78},{34.67,77.38},
  {58.32,101.54},{14.00,39.47},{85.53,144.41},{ 0.20,38.28},
  {86.50,126.17},{35.04,66.41},{48.45,101.50},{83.83,137.62},
  {67.53,105.84},{ 8.18,36.42},{53.77,95.88},{73.79,129.29},
  {53.20,93.60},{65.37,111.30},{97.78,167.73},{22.98,55.09},
  {81.18,141.58},{37.60,92.48},{84.76,143.11},{22.76,73.08},
  {82.74,116.98},{ 6.27,53.39},{34.87,71.66},{75.19,131.80},
  {92.31,152.15},{86.41,132.70},{97.91,134.42},{23.91,64.29},
  {39.02,83.92},{55.23,119.47},{22.70,69.44},{68.05,116.09},
  {60.05,110.20},{43.42,94.91},{ 5.76,40.19},{ 0.85,27.11},
  {25.87,54.31},{96.94,146.88},{26.27,72.95},{10.94,45.38},
  {64.67,120.45},{11.09,66.59},{26.46,72.91},{18.58,52.41},
  {80.97,134.00},{ 0.34,27.83},{33.13,69.96},{49.90,91.22},
  {18.80,64.32},{35.91,80.24},{28.45,49.05},{64.01,119.04},
  { 4.57,17.02},{93.16,157.23},{78.53,132.43},{50.60,97.10},
  {24.82,50.38},{ 4.84,48.13},{75.03,125.77},{75.72,138.80},
  {52.51,114.45},{30.78,72.74},{18.85,45.55},{10.56,49.41},
  { 6.21,50.39},{ 8.24,48.12},{98.61,155.04},{65.17,127.86},
  {73.79,127.93},{ 4.28,29.56},{96.11,151.45},{65.64,115.43},
  {19.96,40.75},{54.15,107.88},{73.22,121.27},{31.92,62.21},
  {92.49,137.93},{46.31,96.16},{24.55,67.97},{49.05,91.91},
  {55.62,111.54},{81.51,151.15},{30.35,70.93},{88.44,146.56},
  {48.89,97.29},{10.97,35.94},{14.82,56.32},{69.65,117.12},
  {30.65,85.34},{92.16,146.37},{16.71,71.71},{66.67,131.21},
  {37.11,74.31},{59.68,110.52},{77.14,127.68},{39.95,79.67},
  {22.52,91.67},{10.03,45.65},{31.57,75.72},{65.36,128.53},
  {83.86,140.56},{41.54,85.30},{ 6.38,30.93},{69.65,122.81},
  { 7.27,44.05},{94.53,149.93},{42.97,95.82},{31.21,65.74},
  {56.21,100.24},{ 3.36,35.37},{38.60,82.21},{ 5.89,46.30},
  {57.19,105.13},{24.70,62.79},{19.06,46.81},{ 0.03,40.45},
  {53.27,98.31},{63.51,94.80},{60.00,117.85},{55.89,115.68},
  {47.68,98.74},{ 6.75,49.35},{25.37,36.75},{ 6.02,27.97},
  {32.83,70.94},{24.08,59.55},{ 1.50,41.37},{20.14,34.03},
  {29.57,72.67},{67.45,129.74},{10.37,71.88},{ 4.00,28.25},
  {70.58,121.73},{73.06,147.21},{ 3.18,31.23},{39.72,87.12},
  {48.37,95.58},{87.89,148.28},{ 1.38,39.73},{74.67,123.62},
  {23.09,85.06},{45.85,83.61},{70.08,120.59},{50.54,127.10},
  {18.68,46.70},{25.34,75.71},{36.59,82.03},{74.06,136.39},
  {77.69,119.75},{40.72,86.70},{ 2.10,39.85},{70.21,110.13},
  {57.12,98.18},{95.81,168.67},{ 1.89,28.48},{80.47,151.77},
  {58.85,110.02},{97.94,150.44},{94.39,148.61},{57.84,102.75},
  {74.49,133.19},{54.75,103.82},{35.22,94.57},{75.75,136.10},
  {50.83,93.11},{63.46,90.88},{43.93,98.46},{96.07,153.80},
  {73.81,137.75},{42.06,85.80},{25.23,69.96},{88.47,133.44},
  {36.88,84.25},{59.81,106.92},{17.34,65.65},{ 3.38,37.52},
  {66.07,130.98},{83.69,133.52},{97.61,141.32},{ 5.25,37.57},
  { 3.65,26.65},{88.36,166.35},{92.12,134.00},{17.96,69.00},
  {80.70,126.96},{99.18,157.12},{31.73,77.47},{43.01,99.71},
  {40.38,88.63},{70.91,125.87},{80.45,153.99},{57.17,113.12},
  {76.32,133.62},{73.71,134.36},{26.86,51.30},{39.58,83.32},
  {74.78,129.83},{57.47,98.73},{41.74,87.85},{56.88,103.05},
  {30.25,80.40},{10.57,55.26},{97.60,151.00},{93.22,149.95},
  { 0.46,23.10},{58.64,106.75},{99.59,158.87},{32.30,74.35},
  {38.16,80.61},{42.23,96.81},{67.36,118.92},{47.78,90.29},
  {53.16,112.75},{27.65,49.70},{30.00,56.75},{48.80,117.42},
  {12.52,47.70},{29.98,63.12},{43.86,89.89},{99.69,171.58},
  {40.14,79.46},{54.06,121.93},{91.20,147.36},{11.64,43.11},
  {36.83,96.61},{15.05,42.61},{19.69,71.98},{31.61,75.89},
  {25.20,90.34},{85.54,120.51},{52.87,88.38},{72.88,120.51},
  {74.91,115.52},{25.60,48.79},{79.13,131.98},{16.82,58.28},
  {17.84,48.08},{52.58,108.19},{50.31,94.38},{81.58,124.00},
  {83.06,146.52},{70.99,129.95},{33.61,69.02},{52.77,113.22},
  {22.94,60.25},{16.16,41.73},{32.61,74.22},{32.95,59.85},
  {76.76,135.04},{79.95,136.48},{25.45,60.50},{81.66,142.89},
  {45.57,98.11},{98.68,157.32},{33.40,92.64},{56.66,105.69},
  {34.55,67.90},{65.58,116.61},{79.54,132.70},{13.55,49.96},
  {49.60,92.00},{75.55,143.09},{94.16,145.02},{68.01,123.94},
  {11.48,42.98},{ 7.76,56.04},{56.28,118.42},{ 6.09,57.31},
  {98.90,179.15},{26.95,84.92},{ 8.52,25.64},{63.05,126.16},
  {39.72,94.83},{94.54,159.75},{67.46,123.28},{68.85,138.76},
  {46.96,83.67},{67.54,101.95},{23.17,61.79},{29.49,76.26},
  {58.17,111.80},{53.25,97.62},{37.89,74.59},{ 7.60,29.16},
  {60.72,103.03},{30.80,78.51},{14.13,34.68},{38.44,79.92},
  {59.12,111.86},{17.24,56.59},{89.12,133.28},{19.85,60.88},
  {90.45,151.93},{82.77,132.73},{34.02,76.70},{54.54,105.19},
  {65.08,123.75},{69.80,115.13},{95.30,156.69},{17.66,70.39},
  {25.18,82.85},{ 6.02,43.58},{12.61,40.23},{34.32,81.89},
  {67.40,100.75},{ 7.81,34.52},{ 7.03,36.08},{22.67,59.09},
  {93.01,150.36},{87.02,164.77},{32.20,74.13},{54.87,103.10},
  {58.37,135.91},{62.51,96.38},{45.32,89.16},{39.40,80.36},
  {12.45,68.04},{61.43,131.19},{59.25,103.13},{26.71,74.65},
  {61.25,110.85},{53.78,97.09},{57.75,114.27},{29.38,59.90},
  {18.36,71.14},{69.96,118.11},{14.56,39.27},{19.89,40.98},
  {68.55,130.17},{ 7.50,47.37},{35.98,101.38},{17.22,43.45},
  {76.31,127.73},{ 3.16,47.85},{93.16,152.57},{36.04,77.38},
  {60.95,118.72},{ 2.53,27.86},{78.06,137.18},{34.06,71.82},
  {83.47,149.39},{43.94,84.91},{82.45,154.13},{70.65,125.11},
  {25.67,64.86},{ 3.34,31.20},{15.95,58.76},{82.08,133.76},
  {94.85,157.96},{20.05,54.70},{ 3.44,40.93},{40.08,77.92},
  {43.31,79.23},{66.15,117.30},{84.56,137.10},{27.33,78.17},
  {16.18,46.85},{54.56,94.42},{32.63,78.15},{54.25,118.13},
  {90.63,165.79},{57.19,98.26},{46.83,82.83},{ 4.02,24.60},
  {66.12,115.96},{71.95,97.79},{52.13,103.65},{31.29,75.26},
  {55.91,100.66},{73.56,127.91},{74.57,133.72},{14.54,55.51},
  {35.91,76.04},{71.79,112.40},{ 3.52,32.63},{99.48,162.94},
  { 6.95,26.59},{75.82,121.54},{10.08,46.44},{45.52,91.13},
  { 1.68,30.79},{89.95,118.34},{34.84,77.63},{82.45,150.87},
  {42.78,63.15},{94.05,152.35},{61.19,104.44},{54.42,104.51},
  { 9.39,44.61},{ 6.90,39.55},{75.00,125.36},{71.30,129.59},
  {58.25,97.29},{90.61,147.99},{31.75,67.79},{85.80,137.70},
  {79.15,139.56},{44.24,79.90},{81.04,137.23},{65.21,106.73},
  {11.01,57.70},{33.41,84.03},{ 5.62,19.26},{77.21,143.88},
  {99.40,162.13},{92.80,146.34},{77.65,128.09},{86.21,138.32},
  {92.32,158.09},{79.31,150.60},{45.31,91.34},{13.30,45.91},
  {91.10,145.10},{94.55,148.44},{90.81,162.01},{98.98,170.98},
  { 5.68,57.45},{10.28,46.14},{13.53,44.62},{52.10,93.46},
  {98.73,164.39},{65.57,117.52},{63.85,112.29},{ 5.96,48.16},
  { 8.27,25.85},{14.11,51.72},{87.32,139.79},{ 7.19,36.04},
  {36.11,87.96},{79.40,134.60},{79.73,146.13},{69.33,120.83},
  {24.96,70.50},{12.89,34.58},{69.45,98.30},{86.02,147.84},
  {12.77,47.45},{22.82,76.20},{88.41,150.31},{30.70,72.59},
  {43.43,90.49},{25.14,51.00},{51.61,94.30},{61.68,132.43},
  {19.55,53.26},{61.03,108.01},{24.35,65.91},{34.89,88.15},
  {64.10,104.38},{67.04,133.73},{ 8.14,37.24},{11.35,43.91},
  {11.79,46.13},{ 3.91,29.22},{37.60,97.66},{70.40,123.36},
  {58.04,122.64},{49.69,93.67},{92.56,162.20},{96.15,157.63},
  {23.97,73.66},{84.56,145.39},{61.80,94.78},{55.92,133.05},
  {30.56,73.72},{ 4.70,31.81},{64.33,113.26},{50.51,95.26},
  {47.10,94.95},{10.32,38.87},{67.75,120.60},{23.91,75.57},
  {21.39,61.62},{96.89,147.19},{67.14,123.16},{16.08,61.14},
  {93.28,139.31},{50.74,98.09},{37.71,86.95},{78.59,137.61},
  {63.89,106.58},{31.69,82.45},{58.08,112.38},{43.16,94.01},
  {11.39,25.42},{66.16,112.32},{96.03,152.01},{42.55,83.11},
  {32.32,65.15},{23.02,47.10},{29.21,61.35},{16.54,58.56},
  {48.28,100.58},{18.08,46.23},{25.86,59.73},{78.52,127.28},
  { 9.95,50.65},{28.39,64.12},{56.10,87.61},{43.22,93.14},
  {42.76,89.45},{98.29,159.63},{97.34,177.78},{ 4.27,55.23},
  {47.01,105.57},{59.86,114.37},{18.95,51.11},{41.52,84.33},
  {62.96,108.18},{27.79,55.86},{16.39,65.66},{66.18,105.45},
  {34.86,94.94},{28.47,69.45},{97.67,167.37},{75.86,104.33},
  {25.01,74.40},{46.96,87.54},{92.52,129.85},{29.78,73.72},
  {85.72,139.37},{83.89,126.76},{59.14,115.78},{46.85,97.38},
  { 6.19,34.32},{11.63,23.31},{11.63,44.46},{22.84,56.76},
  {12.00,50.78},{62.84,100.45},{81.42,131.72},{90.47,143.37},
  {29.93,88.90},{77.40,122.09},{93.82,145.35},{47.75,96.19},
  {21.14,70.74},{97.46,148.02},{12.72,36.39},{49.97,83.79},
  {97.95,162.70},{90.86,153.60},{63.85,117.19},{ 4.58,30.40},
  {60.56,119.74},{53.52,110.35},{30.87,64.20},{ 6.80,49.32},
  {73.95,124.06},{ 6.10,58.73},{22.38,69.13},{60.70,112.49},
  {60.85,85.34},{88.28,163.12},{53.88,98.87},{11.25,27.58},
  {61.39,111.48},{50.19,101.48},{47.54,105.73},{36.68,74.67},
  {16.93,37.98},{63.31,104.97},{98.08,146.59},{20.30,65.51},
  {66.90,115.71},{ 3.46,26.89},{75.90,129.36},{ 6.60,56.60},
  {58.83,111.03},{69.25,129.30},{76.03,114.70},{62.91,118.23},
  {96.98,154.55},{21.79,63.43},{82.03,146.15},{25.64,53.97},
  {79.89,145.81},{39.61,84.38},{46.54,88.11},{63.57,98.17},
  {78.91,134.57},{92.78,165.65},{88.14,156.37},{ 0.33,35.73},
  {51.07,80.06},{37.70,69.07},{76.62,125.56},{74.47,121.16},
  {47.03,88.43},{46.70,96.04},{25.41,63.87},{68.35,116.96},
  {71.34,120.03},{16.20,49.28},{11.01,49.88},{95.77,162.43},
  {28.71,77.99},{46.92,73.65},{62.38,104.31},{86.01,128.55},
  {65.86,113.60},{57.63,121.48},{74.36,125.46},{ 1.08,39.77},
  { 8.21,41.65},{13.79,48.62},{83.45,141.43},{15.74,38.94},
  {19.63,71.50},{99.25,151.24},{50.00,90.16},{81.22,122.70},
  {24.58,46.44},{51.88,85.53},{55.71,84.04},{ 5.93,32.59},
  {74.94,134.09},{92.76,149.10},{46.09,101.09},{36.43,94.08},
  { 8.41,38.29},{68.17,99.20},{34.42,85.90},{80.43,138.29},
  {48.74,88.09},{56.61,116.21},{27.16,80.41},{96.04,143.67},
  {41.60,88.71},{56.43,96.06},{99.67,159.49},{ 7.93,25.69},
  {95.21,156.97},{42.55,69.14},{10.74,28.43},{51.32,97.30},
  {44.89,83.67},{ 7.40,44.96},{ 1.16,42.00},{ 5.30,37.14},
  {96.77,152.72},{ 5.98,40.00},{60.23,122.22},{37.87,84.62},
  {42.33,78.24},{18.89,37.62},{26.30,51.55},{ 5.60,42.60},
  {32.57,75.79},{94.80,149.64},{98.93,156.85},{ 8.20,41.74},
  {38.60,87.55},{88.03,144.13},{28.03,53.93},{26.09,89.76},
  {29.84,72.65},{85.36,132.48},{26.97,76.70},{35.26,76.30},
  {25.85,70.80},{77.97,127.49},{71.01,138.54},{10.94,49.91},
  {31.24,71.77},{ 7.53,44.95},{ 1.52,28.59},{19.27,43.30},
  {14.91,45.06},{96.42,156.47},{66.39,126.02},{68.99,112.91},
  {18.85,62.58},{32.55,100.92},{33.59,86.01},{58.03,97.94},
  {35.86,75.80},{31.33,93.37},{93.26,153.90},{15.52,42.25},
  { 2.75,40.88},{14.25,56.34},{11.34,55.07},{ 1.06,29.82},
  {19.47,46.71},{68.39,95.41},{39.15,67.12},{27.81,65.03},
  {33.96,68.72},{29.79,83.58},{ 9.85,47.36},{49.47,115.24},
  { 1.24,29.63},{22.96,60.85},{37.50,66.51},{46.51,96.74},
  {34.64,72.15},{82.11,143.60},{88.97,152.44},{91.71,145.13},
  {13.42,62.70},{56.31,108.49},{26.71,74.17},{52.99,92.39},
  {15.94,42.04},{ 1.25,24.40},{70.62,126.08},{88.17,143.68},
  { 7.38,48.95},{50.62,99.33},{43.91,86.82},{ 0.57,26.36},
  {27.98,82.27},{38.45,69.65},{11.30,40.94},{45.25,84.73},
  {23.87,68.58},{25.37,72.12},{60.34,119.79},{42.59,100.13},
  {12.92,41.13},{22.43,55.83},{97.86,168.21},{15.57,53.63},
  {26.44,66.90},{99.83,149.10},{83.71,118.45},{69.42,125.64},
  {55.85,107.20},{58.00,110.89},{66.97,119.44},{47.25,93.49},
  {49.27,106.34},{81.80,147.14},{84.71,137.74},{29.70,61.42},
  {71.42,105.56},{68.87,128.05},{46.67,91.29},{65.32,132.59},
  {48.76,85.75},{94.55,153.38},{21.41,42.63},{52.33,92.98},
  {10.89,38.87},{21.31,52.97},{52.06,85.39},{17.92,50.67},
  {73.13,126.80},{65.01,131.31},{37.48,85.60},{62.95,110.14},
  {63.03,105.04},{10.10,51.57},{55.89,97.16},{16.20,67.89},
  {14.11,38.98},{34.82,80.05},{43.53,87.53},{81.52,149.98},
  {65.19,127.61},{13.80,43.24},{62.56,95.92},{32.09,68.79},
  {24.35,52.32},{ 8.52,40.70},{83.94,140.84},{76.46,117.49},
  { 9.96,43.44},{90.95,133.38},{29.78,70.77},{15.32,39.57},
  {80.51,130.61},{73.15,117.93},{10.85,52.82},{67.84,108.04},
  {84.76,131.77},{37.11,74.72},{59.02,110.81},{83.26,138.42},
  {44.73,104.58},{95.54,150.49},{60.96,85.42},{70.72,110.25},
  {38.20,77.21},{80.19,123.35},{23.75,56.10},{36.83,91.49}
};

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;
}
//error calc func
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 func
__global__ void d_rms_error(double *m, double *c, double *error_sum_arr, point_t *d_data) {
/*
Calculate the current index by using:
- The thread id
- The block id
- The number of threads per block
*/
int i = threadIdx.x + blockIdx.x * blockDim.x;
//sum error stored in array
error_sum_arr[i] = d_residual_error(d_data[i].x, d_data[i].y, *m, *c);
}
//time difffernce
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);
}
//main funcation
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};
//time start
struct timespec start, finish;
long long int time_elapsed;
clock_gettime(CLOCK_MONOTONIC, &start);
cudaError_t error;
//variables for device func
double *d_dm;
double *d_dc;
double *d_error_sum_arr;
point_t *d_data;
be = rms_error(bm, bc);
//allocating memory in device using CUDA malloc
error = cudaMalloc(&d_dm, (sizeof(double) * 8));
if(error){
fprintf(stderr, "cudaMalloc on d_dm returned %d %s\n", error,
cudaGetErrorString(error));
exit(1);
}
//allocating memory in device using CUDA malloc
error = cudaMalloc(&d_dc, (sizeof(double) * 8));
if(error){
fprintf(stderr, "cudaMalloc on d_dc returned %d %s\n", error,
cudaGetErrorString(error));
exit(1);
}
//allocating memory for d_error_sum_arr
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);
}
//allocating 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);
}
//copying memory host ti device
error = cudaMemcpy(d_dm, dm, (sizeof(double) * 8), cudaMemcpyHostToDevice);
if(error){
fprintf(stderr, "cudaMemcpy to d_dm returned %d %s\n", error,
cudaGetErrorString(error));
}
//copying memory host to device
error = cudaMemcpy(d_dc, dc, (sizeof(double) * 8), cudaMemcpyHostToDevice);
if(error){
fprintf(stderr, "cudaMemcpy to d_dc returned %d %s\n", error,
cudaGetErrorString(error));
}
//copying memory host to device
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;
}
}
//clearing memory
error = cudaFree(d_dm);
if(error){
fprintf(stderr, "cudaFree on d_dm returned %d %s\n", error,
cudaGetErrorString(error));
exit(1);
}
error = cudaFree(d_dc);
if(error){
fprintf(stderr, "cudaFree on d_dc returned %d %s\n", error,
cudaGetErrorString(error));
exit(1);
}
error = cudaFree(d_data);
if(error){
fprintf(stderr, "cudaFree on d_data returned %d %s\n", error,
cudaGetErrorString(error));
exit(1);
}
error = cudaFree(d_error_sum_arr);
if(error){
fprintf(stderr, "cudaFree on d_error_sum_arr returned %d %s\n", error,
cudaGetErrorString(error));
exit(1);
}
//freee memory complete
printf("minimum m,c is %lf,%lf with error %lf\n", bm, bc, be);
//geting time after printing m c with error
clock_gettime(CLOCK_MONOTONIC, &finish);
time_difference(&start, &finish, &time_elapsed);
printf("Time elapsed was %lldns or %0.9lfs\n", time_elapsed,
(time_elapsed/1.0e9));
return 0;
}



	.file	"tmpxft_002fe859_00000000-6_linearcuda.cudafe1.cpp"
	.text
#APP

#NO_APP
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB2047:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE2047:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.globl	_Z14residual_errordddd
	.type	_Z14residual_errordddd, @function
_Z14residual_errordddd:
.LFB2040:
	.cfi_startproc
	endbr64
	mulsd	%xmm0, %xmm2
	addsd	%xmm3, %xmm2
	subsd	%xmm1, %xmm2
	movaps	%xmm2, %xmm0
	mulsd	%xmm2, %xmm0
	ret
	.cfi_endproc
.LFE2040:
	.size	_Z14residual_errordddd, .-_Z14residual_errordddd
	.globl	_Z16d_residual_errordddd
	.type	_Z16d_residual_errordddd, @function
_Z16d_residual_errordddd:
.LFB2041:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	popq	%rax
	.cfi_def_cfa_offset 8
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movl	$1, 12(%rsp)
	movl	12(%rsp), %edi
	call	exit@PLT
	.cfi_endproc
.LFE2041:
	.size	_Z16d_residual_errordddd, .-_Z16d_residual_errordddd
	.globl	_Z9rms_errordd
	.type	_Z9rms_errordd, @function
_Z9rms_errordd:
.LFB2042:
	.cfi_startproc
	endbr64
	movl	n_data(%rip), %ecx
	leaq	data(%rip), %rax
	xorps	%xmm3, %xmm3
	xorl	%edx, %edx
.L6:
	cmpl	%edx, %ecx
	jle	.L9
	movsd	(%rax), %xmm2
	incl	%edx
	addq	$16, %rax
	mulsd	%xmm0, %xmm2
	addsd	%xmm1, %xmm2
	subsd	-8(%rax), %xmm2
	mulsd	%xmm2, %xmm2
	addsd	%xmm2, %xmm3
	jmp	.L6
.L9:
	cvtsi2sdl	%ecx, %xmm0
	divsd	%xmm0, %xmm3
	movaps	%xmm3, %xmm0
	jmp	sqrt@PLT
	.cfi_endproc
.LFE2042:
	.size	_Z9rms_errordd, .-_Z9rms_errordd
	.globl	_Z15time_differenceP8timespecS0_Px
	.type	_Z15time_differenceP8timespecS0_Px, @function
_Z15time_differenceP8timespecS0_Px:
.LFB2043:
	.cfi_startproc
	endbr64
	movq	(%rsi), %rax
	movq	8(%rsi), %rcx
	subq	(%rdi), %rax
	subq	8(%rdi), %rcx
	jns	.L11
	decq	%rax
	addq	$1000000000, %rcx
.L11:
	imulq	$1000000000, %rax, %rax
	addq	%rcx, %rax
	testq	%rax, %rax
	movq	%rax, (%rdx)
	setle	%al
	movzbl	%al, %eax
	ret
	.cfi_endproc
.LFE2043:
	.size	_Z15time_differenceP8timespecS0_Px, .-_Z15time_differenceP8timespecS0_Px
	.globl	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.type	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t, @function
_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t:
.LFB2069:
	.cfi_startproc
	endbr64
	subq	$152, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 24(%rsp)
	leaq	56(%rsp), %rdi
	movq	%rsi, 16(%rsp)
	leaq	68(%rsp), %rsi
	movq	%rdx, 8(%rsp)
	leaq	40(%rsp), %rdx
	movq	%rcx, (%rsp)
	leaq	48(%rsp), %rcx
	movq	%fs:40, %rax
	movq	%rax, 136(%rsp)
	xorl	%eax, %eax
	leaq	24(%rsp), %rax
	movl	$1, 64(%rsp)
	movq	%rax, 104(%rsp)
	leaq	16(%rsp), %rax
	movq	%rax, 112(%rsp)
	leaq	8(%rsp), %rax
	movq	%rax, 120(%rsp)
	movq	%rsp, %rax
	movq	%rax, 128(%rsp)
	movabsq	$4294967297, %rax
	movq	%rax, 56(%rsp)
	movq	%rax, 68(%rsp)
	movl	$1, 76(%rsp)
	call	__cudaPopCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L12
	pushq	48(%rsp)
	.cfi_def_cfa_offset 168
	leaq	_Z11d_rms_errorPdS_S_P7point_t(%rip), %rdi
	pushq	48(%rsp)
	.cfi_def_cfa_offset 176
	movq	84(%rsp), %rcx
	movl	92(%rsp), %r8d
	movq	72(%rsp), %rsi
	movl	80(%rsp), %edx
	leaq	120(%rsp), %r9
	call	cudaLaunchKernel@PLT
	popq	%rax
	.cfi_def_cfa_offset 168
	popq	%rdx
	.cfi_def_cfa_offset 160
.L12:
	movq	136(%rsp), %rax
	subq	%fs:40, %rax
	je	.L14
	call	__stack_chk_fail@PLT
.L14:
	addq	$152, %rsp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2069:
	.size	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t, .-_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.globl	_Z11d_rms_errorPdS_S_P7point_t
	.type	_Z11d_rms_errorPdS_S_P7point_t, @function
_Z11d_rms_errorPdS_S_P7point_t:
.LFB2070:
	.cfi_startproc
	endbr64
	jmp	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
	.cfi_endproc
.LFE2070:
	.size	_Z11d_rms_errorPdS_S_P7point_t, .-_Z11d_rms_errorPdS_S_P7point_t
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC6:
	.string	"cudaMalloc on d_dm returned %d %s\n"
.LC7:
	.string	"cudaMalloc on d_dc returned %d %s\n"
.LC8:
	.string	"cudaMalloc on d_error_sum_arr returned %d %s\n"
.LC9:
	.string	"cudaMalloc on d_data returned %d %s\n"
.LC11:
	.string	"cudaMemcpy to d_dm returned %d %s\n"
.LC12:
	.string	"cudaMemcpy to d_dc returned %d %s\n"
.LC13:
	.string	"cudaMemcpy to d_data returned %d %s\n"
.LC14:
	.string	"cudaMemcpy to error_sum returned %d %s\n"
.LC15:
	.string	"cudaFree on d_dm returned %d %s\n"
.LC16:
	.string	"cudaFree on d_dc returned %d %s\n"
.LC17:
	.string	"cudaFree on d_data returned %d %s\n"
.LC18:
	.string	"cudaFree on d_error_sum_arr returned %d %s\n"
.LC19:
	.string	"minimum m,c is %lf,%lf with error %lf\n"
.LC21:
	.string	"Time elapsed was %lldns or %0.9lfs\n"
	.section	.rodata
	.align 32
.LC0:
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.align 32
.LC1:
	.long	0
	.long	1072693248
	.long	0
	.long	1072693248
	.long	0
	.long	0
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.long	0
	.long	-1074790400
	.long	0
	.long	0
	.long	0
	.long	1072693248
	.section	.text.startup,"ax",@progbits
	.globl	main
	.type	main, @function
main:
.LFB2044:
	.cfi_startproc
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$4096, %rsp
	.cfi_def_cfa_offset 4152
	orq	$0, (%rsp)
	subq	$4096, %rsp
	.cfi_def_cfa_offset 8248
	orq	$0, (%rsp)
	subq	$216, %rsp
	.cfi_def_cfa_offset 8464
	leaq	.LC0(%rip), %rsi
	movl	$16, %ecx
	movq	%fs:40, %rax
	movq	%rax, 8392(%rsp)
	xorl	%eax, %eax
	leaq	104(%rsp), %rax
	leaq	264(%rsp), %rdi
	rep movsl
	leaq	328(%rsp), %rdi
	leaq	.LC1(%rip), %rsi
	movl	$16, %ecx
	rep movsl
	movq	%rax, %rsi
	movl	$1, %edi
	movq	%rax, 32(%rsp)
	call	clock_gettime@PLT
	movsd	.LC4(%rip), %xmm1
	movsd	.LC5(%rip), %xmm0
	call	_Z9rms_errordd
	leaq	56(%rsp), %rdi
	movl	$64, %esi
	movsd	%xmm0, 8(%rsp)
	call	cudaMalloc@PLT
	testl	%eax, %eax
	je	.L18
	movl	%eax, %edi
	movl	%eax, %ebx
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC6(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L18:
	leaq	64(%rsp), %rdi
	movl	$64, %esi
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L19
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC7(%rip), %rdx
	movq	%rax, %r8
.L59:
	movq	stderr(%rip), %rdi
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
	movl	$1, %edi
	call	exit@PLT
.L19:
	leaq	72(%rsp), %rdi
	movl	$8000, %esi
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L20
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC8(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L20:
	leaq	80(%rsp), %rdi
	movl	$16000, %esi
	call	cudaMalloc@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L40
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC9(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L40:
	movq	.LC4(%rip), %rax
	movsd	.LC3(%rip), %xmm6
	leaq	264(%rsp), %r14
	leaq	328(%rsp), %r15
	movq	%rax, 24(%rsp)
	movq	.LC5(%rip), %rax
	movsd	%xmm6, (%rsp)
	movq	%rax, 16(%rsp)
.L21:
	xorl	%eax, %eax
	leaq	200(%rsp), %rbx
.L22:
	movsd	.LC10(%rip), %xmm0
	mulsd	(%r14,%rax), %xmm0
	leaq	136(%rsp), %rsi
	addsd	16(%rsp), %xmm0
	movsd	%xmm0, 136(%rsp,%rax)
	movsd	.LC10(%rip), %xmm0
	mulsd	(%r15,%rax), %xmm0
	addq	$8, %rax
	addsd	24(%rsp), %xmm0
	movsd	%xmm0, -8(%rax,%rbx)
	cmpq	$64, %rax
	jne	.L22
	movq	56(%rsp), %rdi
	movl	$1, %ecx
	movl	$64, %edx
	call	cudaMemcpy@PLT
	movl	%eax, %r12d
	testl	%eax, %eax
	je	.L23
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movq	stderr(%rip), %rdi
	movl	%r12d, %ecx
	leaq	.LC11(%rip), %rdx
	movq	%rax, %r8
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L23:
	movq	64(%rsp), %rdi
	movq	%rbx, %rsi
	movl	$1, %ecx
	movl	$64, %edx
	call	cudaMemcpy@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L24
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movq	stderr(%rip), %rdi
	movl	%ebx, %ecx
	leaq	.LC12(%rip), %rdx
	movq	%rax, %r8
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L24:
	movq	80(%rsp), %rdi
	movl	$1, %ecx
	movl	$16000, %edx
	leaq	data(%rip), %rsi
	call	cudaMemcpy@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L25
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movq	stderr(%rip), %rdi
	movl	%ebx, %ecx
	leaq	.LC13(%rip), %rdx
	movq	%rax, %r8
	movl	$2, %esi
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L25:
	movabsq	$4294967306, %r12
	xorl	%ebx, %ebx
.L32:
	movl	$1073741849, %edi
	xorl	%r9d, %r9d
	xorl	%r8d, %r8d
	movq	%r12, %rdx
	salq	$2, %rdi
	movl	$1, %ecx
	movl	$1, %esi
	movq	%r12, 120(%rsp)
	movl	$1, 128(%rsp)
	movq	%rdi, 88(%rsp)
	movl	$1, 96(%rsp)
	call	__cudaPushCallConfiguration@PLT
	testl	%eax, %eax
	jne	.L26
	movq	64(%rsp), %rsi
	leaq	0(,%rbx,8), %rdi
	movq	80(%rsp), %rcx
	movq	72(%rsp), %rdx
	addq	%rdi, %rsi
	addq	56(%rsp), %rdi
	call	_Z44__device_stub__Z11d_rms_errorPdS_S_P7point_tPdS_S_P7point_t
.L26:
	call	cudaThreadSynchronize@PLT
	movq	72(%rsp), %rsi
	movl	$2, %ecx
	leaq	392(%rsp), %r13
	movl	$8000, %edx
	movq	%r13, %rdi
	call	cudaMemcpy@PLT
	testl	%eax, %eax
	je	.L27
	movl	%eax, %edi
	movl	%eax, 44(%rsp)
	call	cudaGetErrorString@PLT
	movl	44(%rsp), %ecx
	movl	$2, %esi
	movq	stderr(%rip), %rdi
	movq	%rax, %r8
	leaq	.LC14(%rip), %rdx
	xorl	%eax, %eax
	call	__fprintf_chk@PLT
.L27:
	movl	n_data(%rip), %edx
	xorl	%eax, %eax
	xorps	%xmm0, %xmm0
.L28:
	cmpl	%eax, %edx
	jle	.L60
	addsd	0(%r13,%rax,8), %xmm0
	incq	%rax
	jmp	.L28
.L60:
	cvtsi2sdl	%edx, %xmm1
	divsd	%xmm1, %xmm0
	call	sqrt@PLT
	movsd	(%rsp), %xmm5
	comisd	%xmm0, %xmm5
	minsd	%xmm5, %xmm0
	cmova	%ebx, %ebp
	incq	%rbx
	movsd	%xmm0, (%rsp)
	cmpq	$8, %rbx
	jne	.L32
	movsd	8(%rsp), %xmm7
	comisd	%xmm0, %xmm7
	jbe	.L57
	movslq	%ebp, %rax
	movsd	%xmm0, 8(%rsp)
	movsd	136(%rsp,%rax,8), %xmm3
	movsd	200(%rsp,%rax,8), %xmm4
	movsd	%xmm3, 16(%rsp)
	movsd	%xmm4, 24(%rsp)
	jmp	.L21
.L57:
	movq	56(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L35
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC15(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L35:
	movq	64(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L36
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC16(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L36:
	movq	80(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L37
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC17(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L37:
	movq	72(%rsp), %rdi
	call	cudaFree@PLT
	movl	%eax, %ebx
	testl	%eax, %eax
	je	.L38
	movl	%eax, %edi
	call	cudaGetErrorString@PLT
	movl	%ebx, %ecx
	leaq	.LC18(%rip), %rdx
	movq	%rax, %r8
	jmp	.L59
.L38:
	movsd	16(%rsp), %xmm0
	movsd	8(%rsp), %xmm2
	movb	$3, %al
	leaq	.LC19(%rip), %rsi
	movsd	24(%rsp), %xmm1
	movl	$2, %edi
	leaq	120(%rsp), %rbx
	call	__printf_chk@PLT
	movq	%rbx, %rsi
	movl	$1, %edi
	call	clock_gettime@PLT
	movq	32(%rsp), %rdi
	leaq	88(%rsp), %rdx
	movq	%rbx, %rsi
	call	_Z15time_differenceP8timespecS0_Px
	movq	88(%rsp), %rdx
	leaq	.LC21(%rip), %rsi
	movb	$1, %al
	movl	$2, %edi
	cvtsi2sdq	%rdx, %xmm0
	divsd	.LC20(%rip), %xmm0
	call	__printf_chk@PLT
	movq	8392(%rsp), %rax
	subq	%fs:40, %rax
	je	.L39
	call	__stack_chk_fail@PLT
.L39:
	addq	$8408, %rsp
	.cfi_def_cfa_offset 56
	xorl	%eax, %eax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE2044:
	.size	main, .-main
	.section	.rodata.str1.1
.LC24:
	.string	"_Z11d_rms_errorPdS_S_P7point_t"
.LC25:
	.string	"d_n_data"
	.section	.text.startup
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB2072:
	.cfi_startproc
	endbr64
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset 3, -16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	pushq	$0
	.cfi_def_cfa_offset 24
	xorl	%r9d, %r9d
	orl	$-1, %r8d
	pushq	$0
	.cfi_def_cfa_offset 32
	leaq	.LC24(%rip), %rdx
	movq	%rax, %rdi
	movq	%rax, %rbx
	pushq	$0
	.cfi_def_cfa_offset 40
	movq	%rdx, %rcx
	leaq	_Z11d_rms_errorPdS_S_P7point_t(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 48
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFunction@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 16
	movq	%rbx, %rdi
	xorl	%r8d, %r8d
	pushq	$0
	.cfi_def_cfa_offset 24
	leaq	.LC25(%rip), %rdx
	movl	$4, %r9d
	leaq	_ZL8d_n_data(%rip), %rsi
	pushq	$0
	.cfi_def_cfa_offset 32
	movq	%rdx, %rcx
	call	__cudaRegisterVar@PLT
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rdx
	.cfi_def_cfa_offset 16
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rbx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE2072:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.globl	data
	.data
	.align 32
	.type	data, @object
	.size	data, 16000
data:
	.long	0
	.long	1079312384
	.long	1202590843
	.long	1080281825
	.long	-1374389535
	.long	1079009607
	.long	1202590843
	.long	1079749345
	.long	1889785610
	.long	1079343677
	.long	515396076
	.long	1080083333
	.long	1374389535
	.long	1079205560
	.long	1202590843
	.long	1080099553
	.long	1202590843
	.long	1079134945
	.long	-1202590843
	.long	1080100126
	.long	-1717986918
	.long	1079040409
	.long	-858993459
	.long	1079725260
	.long	687194767
	.long	1079172956
	.long	-1717986918
	.long	1080015257
	.long	1717986918
	.long	1079211622
	.long	1202590843
	.long	1079814881
	.long	0
	.long	1079234560
	.long	-2061584302
	.long	1080197611
	.long	171798692
	.long	1079219159
	.long	1374389535
	.long	1079930552
	.long	1030792151
	.long	1079052042
	.long	1202590843
	.long	1079954145
	.long	1374389535
	.long	1079017144
	.long	858993459
	.long	1079894835
	.long	1202590843
	.long	1079184097
	.long	-343597384
	.long	1080068177
	.long	1374389535
	.long	1074077368
	.long	1889785610
	.long	1078143549
	.long	-343597384
	.long	1079515217
	.long	858993459
	.long	1080351539
	.long	-1030792151
	.long	1079347445
	.long	-1889785610
	.long	1080071618
	.long	-1202590843
	.long	1078904094
	.long	-515396076
	.long	1079522426
	.long	-171798692
	.long	1078123560
	.long	-515396076
	.long	1079542906
	.long	-1717986918
	.long	1078122905
	.long	171798692
	.long	1079260119
	.long	171798692
	.long	1077945303
	.long	1546188227
	.long	1079575183
	.long	343597384
	.long	1074612142
	.long	-687194767
	.long	1077407907
	.long	1030792151
	.long	1075697418
	.long	515396076
	.long	1078619013
	.long	-1546188227
	.long	1078074736
	.long	171798692
	.long	1079497687
	.long	1030792151
	.long	1077303050
	.long	1374389535
	.long	1079074488
	.long	-1546188227
	.long	1079115120
	.long	1889785610
	.long	1079831101
	.long	2061584302
	.long	1079352852
	.long	-171798692
	.long	1080122408
	.long	1202590843
	.long	1079458529
	.long	1889785610
	.long	1080179261
	.long	-1546188227
	.long	1078148464
	.long	-1546188227
	.long	1079287152
	.long	-1717986918
	.long	1078335897
	.long	343597384
	.long	1079469998
	.long	-858993459
	.long	1077218508
	.long	-858993459
	.long	1078504652
	.long	-343597384
	.long	1076344913
	.long	2061584302
	.long	1078005268
	.long	687194767
	.long	1078407004
	.long	-1202590843
	.long	1079555358
	.long	1717986918
	.long	1079428710
	.long	-687194767
	.long	1080221859
	.long	-1889785610
	.long	1078515138
	.long	-1546188227
	.long	1079569776
	.long	515396076
	.long	1079462789
	.long	1717986918
	.long	1080252006
	.long	-171798692
	.long	1077763112
	.long	171798692
	.long	1079149527
	.long	1374389535
	.long	1079545528
	.long	1374389535
	.long	1080305336
	.long	-1889785610
	.long	1076295106
	.long	-687194767
	.long	1078112419
	.long	-1030792151
	.long	1079183605
	.long	-1717986918
	.long	1080086937
	.long	171798692
	.long	1076470743
	.long	687194767
	.long	1078292316
	.long	858993459
	.long	1078252339
	.long	-1030792151
	.long	1079134453
	.long	343597384
	.long	1079424942
	.long	1889785610
	.long	1080218173
	.long	-2061584302
	.long	1077154283
	.long	1546188227
	.long	1078862479
	.long	0
	.long	1076920320
	.long	-1202590843
	.long	1078609182
	.long	2061584302
	.long	1076538900
	.long	-1202590843
	.long	1078011166
	.long	-1717986918
	.long	1079318937
	.long	2061584302
	.long	1080094228
	.long	1889785610
	.long	1076300349
	.long	-1030792151
	.long	1078847733
	.long	1374389535
	.long	1077763768
	.long	-2061584302
	.long	1078440427
	.long	-1374389535
	.long	1079554375
	.long	-171798692
	.long	1080511528
	.long	-1374389535
	.long	1078124871
	.long	-858993459
	.long	1079413964
	.long	-687194767
	.long	1079095459
	.long	515396076
	.long	1079913349
	.long	-2061584302
	.long	1079189995
	.long	-858993459
	.long	1079975116
	.long	-343597384
	.long	1078630481
	.long	-515396076
	.long	1079301242
	.long	-687194767
	.long	1078309027
	.long	343597384
	.long	1079318446
	.long	515396076
	.long	1077422981
	.long	-2061584302
	.long	1078669803
	.long	-1546188227
	.long	1078025584
	.long	2061584302
	.long	1079172628
	.long	1374389535
	.long	1078484664
	.long	1030792151
	.long	1079387914
	.long	1889785610
	.long	1079417405
	.long	-1202590843
	.long	1080108318
	.long	1202590843
	.long	1079110369
	.long	1202590843
	.long	1079843553
	.long	1546188227
	.long	1077985935
	.long	-515396076
	.long	1079137402
	.long	-515396076
	.long	1079395450
	.long	-1374389535
	.long	1080222023
	.long	343597384
	.long	1079568302
	.long	1889785610
	.long	1080275517
	.long	-1546188227
	.long	1075330416
	.long	0
	.long	1077395456
	.long	1546188227
	.long	1076085391
	.long	-1546188227
	.long	1078246768
	.long	858993459
	.long	1078113075
	.long	343597384
	.long	1079379886
	.long	-1717986918
	.long	1075026329
	.long	-1889785610
	.long	1077687746
	.long	858993459
	.long	1078842163
	.long	-1202590843
	.long	1079469342
	.long	-687194767
	.long	1079398563
	.long	-1717986918
	.long	1080166809
	.long	343597384
	.long	1079248814
	.long	1030792151
	.long	1079998218
	.long	1030792151
	.long	1078712074
	.long	343597384
	.long	1079736238
	.long	-1202590843
	.long	1075479838
	.long	-2061584302
	.long	1077793259
	.long	-1374389535
	.long	1078264135
	.long	-515396076
	.long	1079288954
	.long	0
	.long	1077706752
	.long	687194767
	.long	1078808412
	.long	-1889785610
	.long	1079514562
	.long	687194767
	.long	1080229724
	.long	-1546188227
	.long	1078803824
	.long	1374389535
	.long	1079357112
	.long	515396076
	.long	1075997573
	.long	1030792151
	.long	1078523658
	.long	-1374389535
	.long	1078370631
	.long	-1030792151
	.long	1079441653
	.long	-1717986918
	.long	1078901145
	.long	-1546188227
	.long	1080044912
	.long	1889785610
	.long	1078987325
	.long	1717986918
	.long	1079948902
	.long	-515396076
	.long	1078531194
	.long	1030792151
	.long	1079748362
	.long	-1717986918
	.long	1079069081
	.long	1889785610
	.long	1079859773
	.long	1030792151
	.long	1075238666
	.long	1546188227
	.long	1078485647
	.long	-1717986918
	.long	1079486873
	.long	343597384
	.long	1080256430
	.long	687194767
	.long	1078628188
	.long	1202590843
	.long	1079483105
	.long	-687194767
	.long	1076949155
	.long	-858993459
	.long	1078971596
	.long	1030792151
	.long	1076647690
	.long	858993459
	.long	1078686515
	.long	-1202590843
	.long	1078576414
	.long	-687194767
	.long	1079820451
	.long	-171798692
	.long	1078172712
	.long	-2061584302
	.long	1079235051
	.long	2061584302
	.long	1078185492
	.long	-1546188227
	.long	1079221616
	.long	-171798692
	.long	1078688808
	.long	-687194767
	.long	1079894179
	.long	2061584302
	.long	1076309524
	.long	-687194767
	.long	1078087843
	.long	-1546188227
	.long	1079397744
	.long	343597384
	.long	1080244142
	.long	-1889785610
	.long	1079117250
	.long	2061584302
	.long	1080090132
	.long	-171798692
	.long	1079016488
	.long	1202590843
	.long	1079716577
	.long	-1546188227
	.long	1077493104
	.long	2061584302
	.long	1079303700
	.long	-1889785610
	.long	1078408642
	.long	-1202590843
	.long	1079538974
	.long	-687194767
	.long	1079443619
	.long	687194767
	.long	1080219484
	.long	1374389535
	.long	1078132408
	.long	-1546188227
	.long	1079184752
	.long	1546188227
	.long	1079394959
	.long	0
	.long	1080150016
	.long	-1202590843
	.long	1078990110
	.long	-1546188227
	.long	1079786864
	.long	687194767
	.long	1078636380
	.long	1717986918
	.long	1079674470
	.long	-2061584302
	.long	1079501291
	.long	-343597384
	.long	1080338513
	.long	2061584302
	.long	1078144532
	.long	1546188227
	.long	1079427727
	.long	858993459
	.long	1079460659
	.long	-1030792151
	.long	1080158453
	.long	171798692
	.long	1077715927
	.long	-1717986918
	.long	1079060889
	.long	687194767
	.long	1078349660
	.long	-1374389535
	.long	1079492935
	.long	515396076
	.long	1078365061
	.long	858993459
	.long	1079198515
	.long	0
	.long	1077133312
	.long	0
	.long	1078312960
	.long	-1030792151
	.long	1077209333
	.long	-1889785610
	.long	1078744514
	.long	0
	.long	1078681600
	.long	515396076
	.long	1079544709
	.long	-858993459
	.long	1078791372
	.long	1202590843
	.long	1079655137
	.long	1202590843
	.long	1079196385
	.long	1546188227
	.long	1079775887
	.long	1546188227
	.long	1079501455
	.long	1717986918
	.long	1080088166
	.long	1374389535
	.long	1077042872
	.long	-1374389535
	.long	1078853959
	.long	-515396076
	.long	1078015098
	.long	-1374389535
	.long	1078985031
	.long	-343597384
	.long	1079146577
	.long	171798692
	.long	1079821271
	.long	-1889785610
	.long	1074329026
	.long	343597384
	.long	1077790638
	.long	-1202590843
	.long	1079375134
	.long	-1030792151
	.long	1080125685
	.long	1374389535
	.long	1078566584
	.long	-858993459
	.long	1079585996
	.long	515396076
	.long	1078823813
	.long	858993459
	.long	1079464755
	.long	1202590843
	.long	1077000929
	.long	-1202590843
	.long	1078125854
	.long	1374389535
	.long	1078632120
	.long	-171798692
	.long	1079987240
	.long	-1546188227
	.long	1078721904
	.long	515396076
	.long	1079495557
	.long	-515396076
	.long	1079469178
	.long	-2061584302
	.long	1080306155
	.long	-171798692
	.long	1079479336
	.long	-1374389535
	.long	1080267079
	.long	1202590843
	.long	1076968161
	.long	-1889785610
	.long	1078908354
	.long	2061584302
	.long	1079324180
	.long	-1030792151
	.long	1080015093
	.long	-1546188227
	.long	1079479664
	.long	171798692
	.long	1080404951
	.long	-343597384
	.long	1076672593
	.long	-1374389535
	.long	1078550855
	.long	1374389535
	.long	1079357112
	.long	-858993459
	.long	1080331468
	.long	515396076
	.long	1076292485
	.long	-687194767
	.long	1078546595
	.long	343597384
	.long	1079285678
	.long	-2061584302
	.long	1080132075
	.long	2061584302
	.long	1079434772
	.long	-687194767
	.long	1080205475
	.long	515396076
	.long	1079221125
	.long	-2061584302
	.long	1080130027
	.long	-343597384
	.long	1079068753
	.long	858993459
	.long	1079743283
	.long	1030792151
	.long	1078695690
	.long	-171798692
	.long	1079553064
	.long	1546188227
	.long	1079198351
	.long	1202590843
	.long	1080081121
	.long	1546188227
	.long	1079403151
	.long	171798692
	.long	1080230871
	.long	-171798692
	.long	1078262824
	.long	-2061584302
	.long	1079456235
	.long	1717986918
	.long	1077978726
	.long	-687194767
	.long	1078677667
	.long	687194767
	.long	1079037788
	.long	-343597384
	.long	1079916625
	.long	-2061584302
	.long	1079562731
	.long	858993459
	.long	1080357683
	.long	-687194767
	.long	1076850851
	.long	-1717986918
	.long	1078352281
	.long	1030792151
	.long	1073731338
	.long	-687194767
	.long	1077850275
	.long	0
	.long	1077329920
	.long	515396076
	.long	1078971269
	.long	2061584302
	.long	1075752468
	.long	1202590843
	.long	1078049505
	.long	-687194767
	.long	1077989539
	.long	-343597384
	.long	1079216209
	.long	-343597384
	.long	1074837585
	.long	-1202590843
	.long	1078027550
	.long	687194767
	.long	1078652764
	.long	-515396076
	.long	1079334010
	.long	171798692
	.long	1078551511
	.long	343597384
	.long	1079850926
	.long	0
	.long	1078837248
	.long	687194767
	.long	1079742300
	.long	858993459
	.long	1079350067
	.long	-1374389535
	.long	1080033607
	.long	343597384
	.long	1073301422
	.long	-687194767
	.long	1077948579
	.long	1374389535
	.long	1078877880
	.long	1546188227
	.long	1079820943
	.long	1374389535
	.long	1078255288
	.long	-687194767
	.long	1079251107
	.long	0
	.long	1078435840
	.long	1546188227
	.long	1079362191
	.long	515396076
	.long	1075440517
	.long	1717986918
	.long	1078462054
	.long	-1202590843
	.long	1075152158
	.long	-515396076
	.long	1078219898
	.long	687194767
	.long	1078341468
	.long	-343597384
	.long	1079519313
	.long	515396076
	.long	1078594437
	.long	687194767
	.long	1079680860
	.long	-1546188227
	.long	1074019696
	.long	1717986918
	.long	1077159526
	.long	515396076
	.long	1077799813
	.long	-1546188227
	.long	1079168368
	.long	-343597384
	.long	1078986833
	.long	515396076
	.long	1079790469
	.long	687194767
	.long	1078521692
	.long	-1374389535
	.long	1079488839
	.long	1717986918
	.long	1079395942
	.long	515396076
	.long	1080124293
	.long	171798692
	.long	1078989783
	.long	687194767
	.long	1079943004
	.long	687194767
	.long	1079205724
	.long	2061584302
	.long	1080223252
	.long	-1374389535
	.long	1078452551
	.long	0
	.long	1079443456
	.long	-858993459
	.long	1078037708
	.long	-1374389535
	.long	1079316807
	.long	-1374389535
	.long	1078821191
	.long	-2061584302
	.long	1079476715
	.long	-343597384
	.long	1077852241
	.long	1889785610
	.long	1079032381
	.long	-171798692
	.long	1072127016
	.long	171798692
	.long	1077912535
	.long	1374389535
	.long	1079365304
	.long	-1546188227
	.long	1080124784
	.long	-1546188227
	.long	1079471472
	.long	-858993459
	.long	1080159436
	.long	-1889785610
	.long	1079559618
	.long	515396076
	.long	1080218501
	.long	1374389535
	.long	1078501048
	.long	858993459
	.long	1079350067
	.long	171798692
	.long	1079083991
	.long	1374389535
	.long	1079959224
	.long	1546188227
	.long	1079489167
	.long	-858993459
	.long	1080304844
	.long	-2061584302
	.long	1079009771
	.long	343597384
	.long	1079748526
	.long	-515396076
	.long	1079133306
	.long	1889785610
	.long	1079917117
	.long	-2061584302
	.long	1078809067
	.long	1374389535
	.long	1079738040
	.long	171798692
	.long	1079460823
	.long	515396076
	.long	1080238981
	.long	-1030792151
	.long	1076144373
	.long	-1030792151
	.long	1078601973
	.long	-515396076
	.long	1078645882
	.long	343597384
	.long	1079572398
	.long	515396076
	.long	1079245701
	.long	1030792151
	.long	1080063754
	.long	2061584302
	.long	1079451156
	.long	1202590843
	.long	1080208097
	.long	-687194767
	.long	1079267491
	.long	-1374389535
	.long	1080082759
	.long	-171798692
	.long	1079209000
	.long	0
	.long	1079947264
	.long	-1374389535
	.long	1070260551
	.long	-1030792151
	.long	1078126837
	.long	-1889785610
	.long	1075246530
	.long	2061584302
	.long	1077980692
	.long	-343597384
	.long	1079449681
	.long	687194767
	.long	1080129372
	.long	-858993459
	.long	1076317388
	.long	-2061584302
	.long	1078768107
	.long	-687194767
	.long	1079169187
	.long	-2061584302
	.long	1080179179
	.long	-343597384
	.long	1079453777
	.long	1202590843
	.long	1080126177
	.long	-1889785610
	.long	1079137730
	.long	-515396076
	.long	1080190074
	.long	1374389535
	.long	1078673080
	.long	-515396076
	.long	1079665786
	.long	-1030792151
	.long	1077487861
	.long	1374389535
	.long	1078787768
	.long	515396076
	.long	1076882309
	.long	-687194767
	.long	1078759587
	.long	171798692
	.long	1078887383
	.long	1202590843
	.long	1079655137
	.long	343597384
	.long	1078495150
	.long	-858993459
	.long	1079430348
	.long	0
	.long	1078411264
	.long	2061584302
	.long	1079221780
	.long	1717986918
	.long	1079301734
	.long	515396076
	.long	1080126341
	.long	-171798692
	.long	1079176232
	.long	687194767
	.long	1079701340
	.long	-171798692
	.long	1078369320
	.long	343597384
	.long	1079441326
	.long	2061584302
	.long	1074507284
	.long	515396076
	.long	1078455173
	.long	1202590843
	.long	1079413473
	.long	0
	.long	1080256512
	.long	-1717986918
	.long	1078221209
	.long	1202590843
	.long	1078803169
	.long	-1030792151
	.long	1078290677
	.long	1717986918
	.long	1079531110
	.long	515396076
	.long	1078504325
	.long	1889785610
	.long	1079548477
	.long	-1030792151
	.long	1079408885
	.long	-2061584302
	.long	1080146411
	.long	-1374389535
	.long	1078288711
	.long	-2061584302
	.long	1079325163
	.long	-1889785610
	.long	1078023618
	.long	-343597384
	.long	1079203921
	.long	-1030792151
	.long	1078798581
	.long	1546188227
	.long	1079599759
	.long	0
	.long	1076625408
	.long	-171798692
	.long	1078180904
	.long	-2061584302
	.long	1079337451
	.long	-1202590843
	.long	1080167710
	.long	-1717986918
	.long	1070176665
	.long	171798692
	.long	1078141911
	.long	0
	.long	1079353344
	.long	1202590843
	.long	1080003297
	.long	-1202590843
	.long	1078035742
	.long	1889785610
	.long	1079024189
	.long	-1717986918
	.long	1078475161
	.long	0
	.long	1079599104
	.long	-1202590843
	.long	1079309598
	.long	171798692
	.long	1080112087
	.long	-2061584302
	.long	1079042539
	.long	-1889785610
	.long	1079670210
	.long	-171798692
	.long	1075862568
	.long	-1889785610
	.long	1078080962
	.long	1546188227
	.long	1078649487
	.long	-343597384
	.long	1079507025
	.long	1546188227
	.long	1079145103
	.long	-1374389535
	.long	1080043847
	.long	-1717986918
	.long	1078630809
	.long	1717986918
	.long	1079469670
	.long	343597384
	.long	1079007150
	.long	858993459
	.long	1079759667
	.long	-2061584302
	.long	1079538155
	.long	687194767
	.long	1080358748
	.long	1202590843
	.long	1077344993
	.long	515396076
	.long	1078692741
	.long	515396076
	.long	1079266181
	.long	1546188227
	.long	1080144527
	.long	-858993459
	.long	1078119628
	.long	1374389535
	.long	1079451320
	.long	-687194767
	.long	1079324835
	.long	515396076
	.long	1080157061
	.long	1546188227
	.long	1077330575
	.long	-1202590843
	.long	1079133470
	.long	687194767
	.long	1079291740
	.long	1374389535
	.long	1079852728
	.long	-515396076
	.long	1075385466
	.long	-2061584302
	.long	1078637035
	.long	687194767
	.long	1078030172
	.long	1889785610
	.long	1079110205
	.long	-171798692
	.long	1079168040
	.long	-1717986918
	.long	1080064409
	.long	171798692
	.long	1079448535
	.long	-858993459
	.long	1080231116
	.long	1889785610
	.long	1079351869
	.long	1717986918
	.long	1080071782
	.long	1889785610
	.long	1079540285
	.long	-1546188227
	.long	1080085872
	.long	-1030792151
	.long	1077405941
	.long	1546188227
	.long	1078989455
	.long	1546188227
	.long	1078166159
	.long	1202590843
	.long	1079311073
	.long	-1546188227
	.long	1078697328
	.long	2061584302
	.long	1079893524
	.long	858993459
	.long	1077326643
	.long	-171798692
	.long	1079073832
	.long	858993459
	.long	1079051059
	.long	-1889785610
	.long	1079838146
	.long	1717986918
	.long	1078855270
	.long	-858993459
	.long	1079741644
	.long	-1889785610
	.long	1078310338
	.long	1889785610
	.long	1079491133
	.long	1889785610
	.long	1075251773
	.long	-343597384
	.long	1078204497
	.long	858993459
	.long	1072378675
	.long	-171798692
	.long	1077615656
	.long	1374389535
	.long	1077534392
	.long	343597384
	.long	1078667182
	.long	-171798692
	.long	1079524392
	.long	-171798692
	.long	1080187944
	.long	-1202590843
	.long	1077560606
	.long	-858993459
	.long	1079131340
	.long	-1374389535
	.long	1076224327
	.long	-687194767
	.long	1078374563
	.long	1202590843
	.long	1078995681
	.long	-858993459
	.long	1079909580
	.long	2061584302
	.long	1076243988
	.long	-1889785610
	.long	1079027138
	.long	-1889785610
	.long	1077573058
	.long	1889785610
	.long	1079130685
	.long	-515396076
	.long	1077056634
	.long	-515396076
	.long	1078604922
	.long	2061584302
	.long	1079262740
	.long	0
	.long	1080082432
	.long	1546188227
	.long	1070973583
	.long	-515396076
	.long	1077662842
	.long	-687194767
	.long	1077973155
	.long	-1546188227
	.long	1079082352
	.long	858993459
	.long	1078522675
	.long	2061584302
	.long	1079430676
	.long	-858993459
	.long	1077071052
	.long	-515396076
	.long	1078989946
	.long	-515396076
	.long	1078064250
	.long	687194767
	.long	1079250780
	.long	858993459
	.long	1077703475
	.long	1717986918
	.long	1078494822
	.long	-687194767
	.long	1078984867
	.long	1546188227
	.long	1079886479
	.long	343597384
	.long	1074939822
	.long	-1202590843
	.long	1076954398
	.long	1889785610
	.long	1079462461
	.long	687194767
	.long	1080272732
	.long	-2061584302
	.long	1079222763
	.long	-1889785610
	.long	1080069570
	.long	-858993459
	.long	1078545612
	.long	1717986918
	.long	1079527014
	.long	-2061584302
	.long	1077465579
	.long	-687194767
	.long	1078538403
	.long	-171798692
	.long	1075010600
	.long	-687194767
	.long	1078464675
	.long	-2061584302
	.long	1079165419
	.long	-1374389535
	.long	1079996743
	.long	2061584302
	.long	1079176724
	.long	-1717986918
	.long	1080121753
	.long	-1374389535
	.long	1078608199
	.long	-858993459
	.long	1079811276
	.long	343597384
	.long	1077856174
	.long	687194767
	.long	1079127900
	.long	-1717986918
	.long	1077074329
	.long	1717986918
	.long	1078380134
	.long	1374389535
	.long	1076174520
	.long	-515396076
	.long	1078506618
	.long	1030792151
	.long	1075369738
	.long	-2061584302
	.long	1078538731
	.long	1202590843
	.long	1075870433
	.long	687194767
	.long	1078464348
	.long	1030792151
	.long	1079551754
	.long	-1374389535
	.long	1080254791
	.long	1202590843
	.long	1079003873
	.long	1030792151
	.long	1080030986
	.long	1546188227
	.long	1079145103
	.long	515396076
	.long	1080032133
	.long	1374389535
	.long	1074863800
	.long	687194767
	.long	1077776220
	.long	1030792151
	.long	1079510794
	.long	1717986918
	.long	1080225382
	.long	-1030792151
	.long	1079011573
	.long	515396076
	.long	1079827333
	.long	-1889785610
	.long	1077147074
	.long	0
	.long	1078222848
	.long	858993459
	.long	1078661939
	.long	-343597384
	.long	1079703633
	.long	2061584302
	.long	1079135764
	.long	-1374389535
	.long	1079923015
	.long	515396076
	.long	1077930885
	.long	1202590843
	.long	1078926049
	.long	687194767
	.long	1079451484
	.long	-1889785610
	.long	1080114626
	.long	343597384
	.long	1078405038
	.long	1889785610
	.long	1079511613
	.long	-858993459
	.long	1077447884
	.long	2061584302
	.long	1079049748
	.long	1717986918
	.long	1078494822
	.long	1889785610
	.long	1079441981
	.long	687194767
	.long	1078710108
	.long	1546188227
	.long	1079763599
	.long	-687194767
	.long	1079271587
	.long	-858993459
	.long	1080222924
	.long	-1717986918
	.long	1077827993
	.long	515396076
	.long	1079098245
	.long	-171798692
	.long	1079385128
	.long	-2061584302
	.long	1080185323
	.long	-2061584302
	.long	1078489579
	.long	1546188227
	.long	1079530127
	.long	-687194767
	.long	1076228259
	.long	-343597384
	.long	1078065233
	.long	171798692
	.long	1076732887
	.long	-1030792151
	.long	1078733045
	.long	-1717986918
	.long	1079077273
	.long	343597384
	.long	1079855022
	.long	1717986918
	.long	1077847654
	.long	-1889785610
	.long	1079334338
	.long	1889785610
	.long	1079446077
	.long	171798692
	.long	1080183767
	.long	-1889785610
	.long	1076934082
	.long	-1546188227
	.long	1079111024
	.long	1202590843
	.long	1079028449
	.long	1374389535
	.long	1080059576
	.long	2061584302
	.long	1078103572
	.long	171798692
	.long	1079153623
	.long	1030792151
	.long	1078843146
	.long	-1374389535
	.long	1079746887
	.long	-1030792151
	.long	1079199989
	.long	515396076
	.long	1080028037
	.long	-1717986918
	.long	1078196633
	.long	1202590843
	.long	1079241441
	.long	-1202590843
	.long	1077314846
	.long	1202590843
	.long	1079438049
	.long	687194767
	.long	1076105052
	.long	858993459
	.long	1078383411
	.long	-2061584302
	.long	1077907947
	.long	2061584302
	.long	1079176724
	.long	1030792151
	.long	1079006986
	.long	-1030792151
	.long	1080037621
	.long	1030792151
	.long	1079310090
	.long	-2061584302
	.long	1080136171
	.long	-1202590843
	.long	1078248734
	.long	858993459
	.long	1079333683
	.long	-1202590843
	.long	1075414302
	.long	2061584302
	.long	1077866004
	.long	-1717986918
	.long	1079077273
	.long	171798692
	.long	1079948247
	.long	-515396076
	.long	1075647610
	.long	1717986918
	.long	1078330982
	.long	-2061584302
	.long	1079484907
	.long	-1889785610
	.long	1080212930
	.long	-171798692
	.long	1078295592
	.long	-515396076
	.long	1079506042
	.long	-1889785610
	.long	1077884354
	.long	687194767
	.long	1079013212
	.long	1202590843
	.long	1078729441
	.long	687194767
	.long	1079578460
	.long	-1374389535
	.long	1074454855
	.long	687194767
	.long	1078046556
	.long	-858993459
	.long	1078152396
	.long	-1546188227
	.long	1079283056
	.long	687194767
	.long	1075285852
	.long	1717986918
	.long	1078404710
	.long	-343597384
	.long	1078761553
	.long	-343597384
	.long	1079658577
	.long	858993459
	.long	1077457715
	.long	-1202590843
	.long	1078945054
	.long	687194767
	.long	1077088092
	.long	343597384
	.long	1078421422
	.long	-343597384
	.long	1067366481
	.long	-1717986918
	.long	1078213017
	.long	1546188227
	.long	1078633103
	.long	171798692
	.long	1079546839
	.long	-1374389535
	.long	1078968647
	.long	858993459
	.long	1079489331
	.long	0
	.long	1078853632
	.long	1717986918
	.long	1079866982
	.long	-2061584302
	.long	1078718955
	.long	515396076
	.long	1079831429
	.long	1030792151
	.long	1078449930
	.long	687194767
	.long	1079553884
	.long	0
	.long	1075511296
	.long	-858993459
	.long	1078504652
	.long	1374389535
	.long	1077501624
	.long	0
	.long	1078091776
	.long	-515396076
	.long	1075319930
	.long	-343597384
	.long	1077672017
	.long	1889785610
	.long	1077963325
	.long	-171798692
	.long	1079098408
	.long	-515396076
	.long	1077417082
	.long	1717986918
	.long	1078838886
	.long	0
	.long	1073217536
	.long	687194767
	.long	1078243164
	.long	171798692
	.long	1077158871
	.long	171798692
	.long	1078002647
	.long	-2061584302
	.long	1077776875
	.long	1202590843
	.long	1079126753
	.long	-858993459
	.long	1079041228
	.long	343597384
	.long	1080047534
	.long	-1546188227
	.long	1076149616
	.long	-343597384
	.long	1079113809
	.long	0
	.long	1074790400
	.long	0
	.long	1077690368
	.long	-1202590843
	.long	1079092510
	.long	1374389535
	.long	1079930552
	.long	171798692
	.long	1079133143
	.long	1374389535
	.long	1080190648
	.long	-687194767
	.long	1074360483
	.long	1202590843
	.long	1077885665
	.long	-171798692
	.long	1078189096
	.long	343597384
	.long	1079363502
	.long	687194767
	.long	1078472540
	.long	-1202590843
	.long	1079502110
	.long	-1030792151
	.long	1079376117
	.long	-1030792151
	.long	1080199413
	.long	-515396076
	.long	1073091706
	.long	-1546188227
	.long	1078189424
	.long	1202590843
	.long	1079159521
	.long	343597384
	.long	1079961518
	.long	1030792151
	.long	1077352202
	.long	171798692
	.long	1079329751
	.long	-858993459
	.long	1078389964
	.long	1030792151
	.long	1079305994
	.long	-1202590843
	.long	1079084318
	.long	-1889785610
	.long	1079911874
	.long	-1202590843
	.long	1078543646
	.long	1717986918
	.long	1080018534
	.long	2061584302
	.long	1077063188
	.long	-1717986918
	.long	1078417817
	.long	1030792151
	.long	1077499658
	.long	-1546188227
	.long	1079176560
	.long	515396076
	.long	1078086533
	.long	-2061584302
	.long	1079280107
	.long	171798692
	.long	1079149527
	.long	-515396076
	.long	1080102010
	.long	-171798692
	.long	1079209000
	.long	0
	.long	1079898112
	.long	-171798692
	.long	1078221864
	.long	-858993459
	.long	1079356620
	.long	-858993459
	.long	1073794252
	.long	-858993459
	.long	1078193356
	.long	-1546188227
	.long	1079086448
	.long	-343597384
	.long	1079740497
	.long	687194767
	.long	1078759260
	.long	515396076
	.long	1079544709
	.long	171798692
	.long	1079505879
	.long	-1546188227
	.long	1080366448
	.long	-1546188227
	.long	1073626480
	.long	1202590843
	.long	1077705441
	.long	2061584302
	.long	1079254548
	.long	-687194767
	.long	1080228003
	.long	-858993459
	.long	1078815948
	.long	-1374389535
	.long	1079738695
	.long	-171798692
	.long	1079540776
	.long	2061584302
	.long	1080217108
	.long	-1030792151
	.long	1079482613
	.long	515396076
	.long	1080202117
	.long	515396076
	.long	1078782853
	.long	0
	.long	1079619584
	.long	687194767
	.long	1079156572
	.long	2061584302
	.long	1080075796
	.long	0
	.long	1078681600
	.long	-515396076
	.long	1079637114
	.long	-171798692
	.long	1078041640
	.long	-515396076
	.long	1079485562
	.long	0
	.long	1079177216
	.long	858993459
	.long	1080099635
	.long	1889785610
	.long	1078553149
	.long	1030792151
	.long	1079461642
	.long	1202590843
	.long	1078967009
	.long	-343597384
	.long	1079425105
	.long	1030792151
	.long	1078327050
	.long	-1546188227
	.long	1079549296
	.long	-515396076
	.long	1079510138
	.long	-1717986918
	.long	1080244633
	.long	171798692
	.long	1079145431
	.long	0
	.long	1080113152
	.long	343597384
	.long	1078265774
	.long	858993459
	.long	1079341875
	.long	1202590843
	.long	1077492449
	.long	-1546188227
	.long	1079082352
	.long	2061584302
	.long	1079385620
	.long	2061584302
	.long	1080077844
	.long	-687194767
	.long	1078096035
	.long	0
	.long	1079316480
	.long	343597384
	.long	1078847406
	.long	1202590843
	.long	1079687905
	.long	1030792151
	.long	1076975370
	.long	-1717986918
	.long	1079011737
	.long	1889785610
	.long	1074465341
	.long	1546188227
	.long	1078117007
	.long	-515396076
	.long	1079018618
	.long	687194767
	.long	1080057692
	.long	-171798692
	.long	1079307304
	.long	-687194767
	.long	1080078499
	.long	1030792151
	.long	1079535370
	.long	1889785610
	.long	1080142397
	.long	0
	.long	1075118080
	.long	-1030792151
	.long	1078118645
	.long	858993459
	.long	1074606899
	.long	1717986918
	.long	1077585510
	.long	1030792151
	.long	1079383818
	.long	858993459
	.long	1080347443
	.long	343597384
	.long	1079445422
	.long	0
	.long	1080082432
	.long	-1889785610
	.long	1077016002
	.long	0
	.long	1079066624
	.long	-858993459
	.long	1079258316
	.long	-1546188227
	.long	1080016240
	.long	515396076
	.long	1079561093
	.long	171798692
	.long	1080271831
	.long	1202590843
	.long	1077918433
	.long	2061584302
	.long	1079205396
	.long	-1374389535
	.long	1078296903
	.long	-1546188227
	.long	1079569776
	.long	-687194767
	.long	1078210723
	.long	-343597384
	.long	1079388241
	.long	1889785610
	.long	1079097917
	.long	343597384
	.long	1079998382
	.long	-858993459
	.long	1079254220
	.long	343597384
	.long	1080246190
	.long	-1889785610
	.long	1078760898
	.long	343597384
	.long	1079789486
	.long	-515396076
	.long	1079186554
	.long	171798692
	.long	1080079319
	.long	-1546188227
	.long	1079143792
	.long	515396076
	.long	1080085381
	.long	-171798692
	.long	1077599272
	.long	1717986918
	.long	1078568550
	.long	1889785610
	.long	1078184509
	.long	-515396076
	.long	1079301242
	.long	-2061584302
	.long	1079161323
	.long	1546188227
	.long	1080048271
	.long	-171798692
	.long	1078770728
	.long	1374389535
	.long	1079553720
	.long	1374389535
	.long	1078255288
	.long	1717986918
	.long	1079375462
	.long	-687194767
	.long	1078751395
	.long	858993459
	.long	1079624499
	.long	0
	.long	1077821440
	.long	-1717986918
	.long	1079253401
	.long	171798692
	.long	1076175831
	.long	-1374389535
	.long	1078698311
	.long	1717986918
	.long	1079535206
	.long	0
	.long	1080221696
	.long	2061584302
	.long	1079463444
	.long	1717986918
	.long	1080213094
	.long	-687194767
	.long	1071476899
	.long	-1717986918
	.long	1077352857
	.long	-2061584302
	.long	1078809067
	.long	0
	.long	1079685120
	.long	-1889785610
	.long	1079567810
	.long	171798692
	.long	1080286167
	.long	1717986918
	.long	1077945958
	.long	1717986918
	.long	1079154278
	.long	-515396076
	.long	1078137978
	.long	1030792151
	.long	1079256842
	.long	-1546188227
	.long	1078271344
	.long	171798692
	.long	1079522263
	.long	1030792151
	.long	1079039754
	.long	1202590843
	.long	1079884513
	.long	171798692
	.long	1078453207
	.long	1546188227
	.long	1079415439
	.long	-515396076
	.long	1078629498
	.long	0
	.long	1079783424
	.long	1717986918
	.long	1077651046
	.long	-1717986918
	.long	1078516121
	.long	0
	.long	1077805056
	.long	0
	.long	1078747136
	.long	1717986918
	.long	1078486630
	.long	1202590843
	.long	1079859937
	.long	1889785610
	.long	1076431421
	.long	-1717986918
	.long	1078450585
	.long	1202590843
	.long	1077803745
	.long	687194767
	.long	1078955868
	.long	2061584302
	.long	1078324756
	.long	-1030792151
	.long	1079408885
	.long	-171798692
	.long	1079569448
	.long	1546188227
	.long	1080390287
	.long	-2061584302
	.long	1078202859
	.long	-1546188227
	.long	1079238000
	.long	343597384
	.long	1078658990
	.long	515396076
	.long	1079933829
	.long	-858993459
	.long	1079430348
	.long	515396076
	.long	1080191877
	.long	343597384
	.long	1076316078
	.long	2061584302
	.long	1078300180
	.long	1889785610
	.long	1078094397
	.long	1030792151
	.long	1079518986
	.long	-1717986918
	.long	1076763033
	.long	2061584302
	.long	1078283796
	.long	-687194767
	.long	1077129379
	.long	1374389535
	.long	1079115448
	.long	-171798692
	.long	1077910568
	.long	-1030792151
	.long	1079179509
	.long	858993459
	.long	1077490483
	.long	-1889785610
	.long	1079416258
	.long	1546188227
	.long	1079337615
	.long	-687194767
	.long	1079910563
	.long	687194767
	.long	1078619996
	.long	-343597384
	.long	1079384145
	.long	-343597384
	.long	1079130193
	.long	-687194767
	.long	1079910563
	.long	1889785610
	.long	1079163453
	.long	-1374389535
	.long	1079828807
	.long	-1717986918
	.long	1077516697
	.long	-1202590843
	.long	1078486302
	.long	-343597384
	.long	1079232593
	.long	687194767
	.long	1080065884
	.long	-2061584302
	.long	1076941291
	.long	171798692
	.long	1078797271
	.long	1030792151
	.long	1077008138
	.long	1889785610
	.long	1078463037
	.long	1889785610
	.long	1078610493
	.long	-171798692
	.long	1079708712
	.long	343597384
	.long	1078536110
	.long	-343597384
	.long	1079482449
	.long	-1202590843
	.long	1079272734
	.long	0
	.long	1079967744
	.long	171798692
	.long	1079296983
	.long	-687194767
	.long	1080184995
	.long	687194767
	.long	1079099228
	.long	1717986918
	.long	1080049254
	.long	2061584302
	.long	1077988884
	.long	-1374389535
	.long	1079066951
	.long	1546188227
	.long	1078616719
	.long	2061584302
	.long	1079791124
	.long	-687194767
	.long	1077342371
	.long	0
	.long	1078861824
	.long	-1030792151
	.long	1076898037
	.long	-1546188227
	.long	1078254960
	.long	2061584302
	.long	1077956116
	.long	2061584302
	.long	1079152148
	.long	-1717986918
	.long	1077967257
	.long	-858993459
	.long	1078848716
	.long	-687194767
	.long	1079193763
	.long	-1374389535
	.long	1080090951
	.long	-858993459
	.long	1079246028
	.long	687194767
	.long	1080102748
	.long	858993459
	.long	1077506867
	.long	0
	.long	1078870016
	.long	1889785610
	.long	1079274045
	.long	-515396076
	.long	1080155258
	.long	-1030792151
	.long	1078380789
	.long	1030792151
	.long	1079543562
	.long	515396076
	.long	1079552901
	.long	1889785610
	.long	1080273469
	.long	858993459
	.long	1077982003
	.long	-1030792151
	.long	1079453941
	.long	-515396076
	.long	1078744186
	.long	-171798692
	.long	1079667752
	.long	1717986918
	.long	1078019686
	.long	-1717986918
	.long	1079048601
	.long	-1202590843
	.long	1079010590
	.long	1030792151
	.long	1079846666
	.long	1546188227
	.long	1079239311
	.long	1717986918
	.long	1080071782
	.long	-1717986918
	.long	1076566425
	.long	1202590843
	.long	1078524641
	.long	-858993459
	.long	1078512844
	.long	0
	.long	1079443456
	.long	858993459
	.long	1079173939
	.long	1202590843
	.long	1080156897
	.long	1889785610
	.long	1079478845
	.long	-687194767
	.long	1080172707
	.long	-687194767
	.long	1079050403
	.long	-171798692
	.long	1079966760
	.long	-1889785610
	.long	1076295106
	.long	-1546188227
	.long	1078295920
	.long	1889785610
	.long	1075776061
	.long	-1202590843
	.long	1078723870
	.long	171798692
	.long	1078731735
	.long	1202590843
	.long	1079876321
	.long	-171798692
	.long	1075338280
	.long	343597384
	.long	1078765486
	.long	-1717986918
	.long	1079556505
	.long	-858993459
	.long	1080452300
	.long	858993459
	.long	1077605171
	.long	1202590843
	.long	1079327457
	.long	1889785610
	.long	1075907133
	.long	171798692
	.long	1077519319
	.long	1717986918
	.long	1078953574
	.long	1889785610
	.long	1080003133
	.long	-171798692
	.long	1078189096
	.long	-1202590843
	.long	1079489822
	.long	1546188227
	.long	1079485071
	.long	0
	.long	1080293376
	.long	-1546188227
	.long	1079041392
	.long	-2061584302
	.long	1079955947
	.long	1717986918
	.long	1079064166
	.long	-343597384
	.long	1080121425
	.long	1202590843
	.long	1078426337
	.long	1202590843
	.long	1079306977
	.long	1546188227
	.long	1079042703
	.long	-858993459
	.long	1079606476
	.long	515396076
	.long	1077357445
	.long	-1202590843
	.long	1078912286
	.long	-1546188227
	.long	1077771632
	.long	-687194767
	.long	1079185571
	.long	-1889785610
	.long	1078793666
	.long	858993459
	.long	1079767859
	.long	0
	.long	1078632448
	.long	343597384
	.long	1079535534
	.long	-2061584302
	.long	1078129131
	.long	-1889785610
	.long	1079158210
	.long	1717986918
	.long	1075734118
	.long	-1030792151
	.long	1077750005
	.long	-171798692
	.long	1078877224
	.long	-2061584302
	.long	1079624171
	.long	-858993459
	.long	1077857484
	.long	-687194767
	.long	1079222435
	.long	1546188227
	.long	1076642447
	.long	1030792151
	.long	1078023946
	.long	-343597384
	.long	1078147153
	.long	1202590843
	.long	1079245537
	.long	687194767
	.long	1078824796
	.long	1030792151
	.long	1079768842
	.long	-1546188227
	.long	1076968816
	.long	515396076
	.long	1078741893
	.long	343597384
	.long	1079396270
	.long	-1030792151
	.long	1080076533
	.long	-1717986918
	.long	1077139865
	.long	-687194767
	.long	1078882467
	.long	-858993459
	.long	1079418060
	.long	-1889785610
	.long	1080229314
	.long	-1374389535
	.long	1079292231
	.long	687194767
	.long	1080072028
	.long	1546188227
	.long	1078002319
	.long	-858993459
	.long	1079192780
	.long	-1202590843
	.long	1078674718
	.long	-171798692
	.long	1079659560
	.long	-1202590843
	.long	1079002398
	.long	0
	.long	1079963648
	.long	858993459
	.long	1079079731
	.long	-343597384
	.long	1079822417
	.long	858993459
	.long	1079497523
	.long	2061584302
	.long	1080268308
	.long	-1030792151
	.long	1076996341
	.long	-1030792151
	.long	1079089397
	.long	2061584302
	.long	1077489172
	.long	1717986918
	.long	1079293542
	.long	-515396076
	.long	1075319930
	.long	1889785610
	.long	1078315581
	.long	-343597384
	.long	1076443217
	.long	-1546188227
	.long	1078205808
	.long	-1030792151
	.long	1078012149
	.long	-1030792151
	.long	1079277813
	.long	-1717986918
	.long	1079040409
	.long	0
	.long	1079586816
	.long	-1546188227
	.long	1075789168
	.long	1546188227
	.long	1078018703
	.long	1374389535
	.long	1075584696
	.long	1889785610
	.long	1078069821
	.long	515396076
	.long	1077324677
	.long	515396076
	.long	1078823813
	.long	-687194767
	.long	1079460003
	.long	515396076
	.long	1080216453
	.long	-1374389535
	.long	1079361863
	.long	-687194767
	.long	1080334499
	.long	-1717986918
	.long	1077942681
	.long	-343597384
	.long	1079150673
	.long	687194767
	.long	1078685532
	.long	1717986918
	.long	1079625318
	.long	687194767
	.long	1078800220
	.long	-1202590843
	.long	1080098078
	.long	-1374389535
	.long	1078935879
	.long	-343597384
	.long	1079515217
	.long	-1030792151
	.long	1078372597
	.long	1889785610
	.long	1079396925
	.long	858993459
	.long	1078178611
	.long	1030792151
	.long	1079252746
	.long	1717986918
	.long	1076422246
	.long	1546188227
	.long	1079050895
	.long	1030792151
	.long	1078900490
	.long	2061584302
	.long	1080059412
	.long	0
	.long	1078829056
	.long	-343597384
	.long	1079625809
	.long	-1889785610
	.long	1077589442
	.long	-1717986918
	.long	1079159193
	.long	0
	.long	1078894592
	.long	1717986918
	.long	1079752294
	.long	171798692
	.long	1078649815
	.long	-1889785610
	.long	1079526850
	.long	0
	.long	1078779904
	.long	-1374389535
	.long	1079808327
	.long	-1374389535
	.long	1077764423
	.long	858993459
	.long	1078850355
	.long	-171798692
	.long	1077042216
	.long	-1030792151
	.long	1079101685
	.long	-1546188227
	.long	1079082352
	.long	1030792151
	.long	1079871242
	.long	1374389535
	.long	1076698808
	.long	1546188227
	.long	1078174351
	.long	171798692
	.long	1077142487
	.long	-1546188227
	.long	1078230384
	.long	858993459
	.long	1079059251
	.long	-1546188227
	.long	1080051056
	.long	0
	.long	1075707904
	.long	687194767
	.long	1078439772
	.long	-1546188227
	.long	1078066544
	.long	-343597384
	.long	1079597137
	.long	-343597384
	.long	1076967505
	.long	-1717986918
	.long	1078311321
	.long	171798692
	.long	1079186391
	.long	1374389535
	.long	1080028856
	.long	343597384
	.long	1074349998
	.long	-858993459
	.long	1078455500
	.long	1889785610
	.long	1079462461
	.long	1889785610
	.long	1080234557
	.long	-1202590843
	.long	1078068510
	.long	-343597384
	.long	1079203921
	.long	-1717986918
	.long	1078884761
	.long	2061584302
	.long	1079881236
	.long	-1546188227
	.long	1074019696
	.long	-171798692
	.long	1077664808
	.long	171798692
	.long	1079215063
	.long	-1889785610
	.long	1080108482
	.long	343597384
	.long	1078003630
	.long	-515396076
	.long	1079112826
	.long	2061584302
	.long	1079303700
	.long	-515396076
	.long	1080208506
	.long	-343597384
	.long	1078327377
	.long	1889785610
	.long	1079327293
	.long	-858993459
	.long	1079286988
	.long	-171798692
	.long	1080247336
	.long	-1717986918
	.long	1079093657
	.long	1030792151
	.long	1079985930
	.long	515396076
	.long	1077521285
	.long	1030792151
	.long	1078998794
	.long	-343597384
	.long	1074444369
	.long	858993459
	.long	1077883699
	.long	1717986918
	.long	1076880998
	.long	-1374389535
	.long	1078812999
	.long	-1202590843
	.long	1079280926
	.long	-343597384
	.long	1080080465
	.long	1717986918
	.long	1079490150
	.long	1374389535
	.long	1080278712
	.long	-858993459
	.long	1077152972
	.long	-1717986918
	.long	1078679961
	.long	-1202590843
	.long	1074496798
	.long	1030792151
	.long	1078228746
	.long	1889785610
	.long	1078200893
	.long	1202590843
	.long	1079212769
	.long	343597384
	.long	1078306734
	.long	1374389535
	.long	1079234232
	.long	-1717986918
	.long	1079019929
	.long	858993459
	.long	1079857971
	.long	171798692
	.long	1079321559
	.long	858993459
	.long	1080107827
	.long	-515396076
	.long	1077630074
	.long	1202590843
	.long	1079216865
	.long	2061584302
	.long	1076899348
	.long	-858993459
	.long	1078422732
	.long	343597384
	.long	1078675374
	.long	1202590843
	.long	1079483105
	.long	-687194767
	.long	1077956771
	.long	-1717986918
	.long	1079216537
	.long	0
	.long	1078665216
	.long	-343597384
	.long	1079871569
	.long	-343597384
	.long	1079421009
	.long	-1374389535
	.long	1080342855
	.long	-343597384
	.long	1078761553
	.long	-687194767
	.long	1079546019
	.long	1889785610
	.long	1078422077
	.long	-1202590843
	.long	1079293214
	.long	-515396076
	.long	1074795642
	.long	-1717986918
	.long	1077451161
	.long	343597384
	.long	1079019438
	.long	-1546188227
	.long	1079836016
	.long	-858993459
	.long	1079114956
	.long	1546188227
	.long	1079538319
	.long	-687194767
	.long	1078595747
	.long	-1717986918
	.long	1079634329
	.long	1889785610
	.long	1077889597
	.long	-687194767
	.long	1079169187
	.long	-515396076
	.long	1078719610
	.long	1889785610
	.long	1079585341
	.long	171798692
	.long	1079141335
	.long	1889785610
	.long	1080031805
	.long	-515396076
	.long	1079157882
	.long	1030792151
	.long	1080080138
	.long	-515396076
	.long	1076696186
	.long	-1374389535
	.long	1078706503
	.long	-515396076
	.long	1078064250
	.long	1546188227
	.long	1079181967
	.long	1546188227
	.long	1079112335
	.long	-1717986918
	.long	1079777689
	.long	-1030792151
	.long	1074538741
	.long	-687194767
	.long	1077956771
	.long	1374389535
	.long	1079566008
	.long	2061584302
	.long	1080319508
	.long	-858993459
	.long	1075563724
	.long	1030792151
	.long	1077581578
	.long	-515396076
	.long	1079178362
	.long	1546188227
	.long	1079927439
	.long	-1030792151
	.long	1076111605
	.long	-343597384
	.long	1078409297
	.long	1546188227
	.long	1078379151
	.long	-343597384
	.long	1079429201
	.long	-1374389535
	.long	1073406279
	.long	1889785610
	.long	1077856829
	.long	-858993459
	.long	1079409868
	.long	-1889785610
	.long	1079875010
	.long	515396076
	.long	1078029189
	.long	-343597384
	.long	1079208017
	.long	-858993459
	.long	1079286988
	.long	171798692
	.long	1080220631
	.long	171798692
	.long	1078289367
	.long	858993459
	.long	1078956851
	.long	858993459
	.long	1079477043
	.long	858993459
	.long	1080232755
	.long	-343597384
	.long	1078892625
	.long	-171798692
	.long	1079647272
	.long	-1889785610
	.long	1078670786
	.long	-687194767
	.long	1079648419
	.long	343597384
	.long	1076021166
	.long	2061584302
	.long	1078349332
	.long	-1717986918
	.long	1075550617
	.long	1717986918
	.long	1078183526
	.long	0
	.long	1079164928
	.long	1030792151
	.long	1079990026
	.long	858993459
	.long	1079104307
	.long	1202590843
	.long	1080046305
	.long	0
	.long	1078796288
	.long	1546188227
	.long	1079530127
	.long	1030792151
	.long	1079420682
	.long	343597384
	.long	1080197038
	.long	0
	.long	1077919744
	.long	1546188227
	.long	1079046799
	.long	858993459
	.long	1079341875
	.long	1717986918
	.long	1080112742
	.long	-1717986918
	.long	1079232921
	.long	-2061584302
	.long	1080127979
	.long	1374389535
	.long	1078337208
	.long	-1717986918
	.long	1079245209
	.long	1546188227
	.long	1079263887
	.long	687194767
	.long	1080108892
	.long	-1546188227
	.long	1079004528
	.long	1374389535
	.long	1079684792
	.long	-1202590843
	.long	1076233502
	.long	-1717986918
	.long	1078778265
	.long	-515396076
	.long	1077982330
	.long	-2061584302
	.long	1079312875
	.long	1202590843
	.long	1075215073
	.long	1546188227
	.long	1077101199
	.long	-1546188227
	.long	1079201136
	.long	-171798692
	.long	1080163368
	.long	-1717986918
	.long	1079564697
	.long	-171798692
	.long	1080312872
	.long	858993459
	.long	1079456563
	.long	1202590843
	.long	1080183521
	.long	-1717986918
	.long	1079208345
	.long	1202590843
	.long	1080034017
	.long	-1546188227
	.long	1079348592
	.long	1889785610
	.long	1080117821
	.long	-515396076
	.long	1079448698
	.long	1202590843
	.long	1080279777
	.long	171798692
	.long	1079235543
	.long	858993459
	.long	1080218419
	.long	343597384
	.long	1078372270
	.long	-1889785610
	.long	1079432642
	.long	-1717986918
	.long	1076533657
	.long	-515396076
	.long	1078391930
	.long	1717986918
	.long	1079428710
	.long	858993459
	.long	1080173363
	.long	858993459
	.long	1079485235
	.long	2061584302
	.long	1080200724
	.long	171798692
	.long	1079423959
	.long	-343597384
	.long	1080311889
	.long	1374389535
	.long	1079557816
	.long	687194767
	.long	1080385372
	.long	-343597384
	.long	1075230801
	.long	-1717986918
	.long	1078770073
	.long	687194767
	.long	1076137820
	.long	-2061584302
	.long	1078399467
	.long	687194767
	.long	1076563804
	.long	687194767
	.long	1078349660
	.long	-858993459
	.long	1078594764
	.long	-1546188227
	.long	1079467376
	.long	1374389535
	.long	1079553720
	.long	-515396076
	.long	1080331386
	.long	-515396076
	.long	1079010426
	.long	-1374389535
	.long	1079861575
	.long	-858993459
	.long	1078979788
	.long	1546188227
	.long	1079775887
	.long	1030792151
	.long	1075304202
	.long	-515396076
	.long	1078465658
	.long	1889785610
	.long	1075874365
	.long	-1717986918
	.long	1077533081
	.long	-343597384
	.long	1076639825
	.long	-171798692
	.long	1078582312
	.long	-515396076
	.long	1079366778
	.long	-1374389535
	.long	1080129863
	.long	1546188227
	.long	1075626639
	.long	-1202590843
	.long	1078068510
	.long	2061584302
	.long	1078070804
	.long	-1546188227
	.long	1079377264
	.long	-1717986918
	.long	1079237017
	.long	858993459
	.long	1080087347
	.long	1374389535
	.long	1079242424
	.long	-171798692
	.long	1080181800
	.long	-1202590843
	.long	1079072030
	.long	-1202590843
	.long	1079915806
	.long	-1889785610
	.long	1077474754
	.long	0
	.long	1079091200
	.long	343597384
	.long	1076479918
	.long	1889785610
	.long	1078020669
	.long	-858993459
	.long	1079073996
	.long	858993459
	.long	1079546675
	.long	-1374389535
	.long	1079345479
	.long	1202590843
	.long	1080195809
	.long	1889785610
	.long	1076464189
	.long	-1717986918
	.long	1078442393
	.long	-2061584302
	.long	1077334507
	.long	-858993459
	.long	1079184588
	.long	1889785610
	.long	1079384637
	.long	-2061584302
	.long	1080216043
	.long	858993459
	.long	1077850931
	.long	-1889785610
	.long	1079125442
	.long	1030792151
	.long	1078310666
	.long	687194767
	.long	1079418716
	.long	171798692
	.long	1077486551
	.long	0
	.long	1078558720
	.long	2061584302
	.long	1078578708
	.long	858993459
	.long	1079481139
	.long	1030792151
	.long	1078908682
	.long	-1889785610
	.long	1080069570
	.long	-858993459
	.long	1077120204
	.long	-1374389535
	.long	1078632775
	.long	171798692
	.long	1078887383
	.long	-687194767
	.long	1079705763
	.long	-1717986918
	.long	1077434777
	.long	1889785610
	.long	1079015997
	.long	-2061584302
	.long	1078030827
	.long	-1717986918
	.long	1079380377
	.long	1717986918
	.long	1078986342
	.long	-343597384
	.long	1079646289
	.long	1546188227
	.long	1079034511
	.long	687194767
	.long	1080080220
	.long	343597384
	.long	1075857326
	.long	1374389535
	.long	1078107832
	.long	858993459
	.long	1076278067
	.long	-515396076
	.long	1078326394
	.long	-515396076
	.long	1076335738
	.long	-687194767
	.long	1078399139
	.long	343597384
	.long	1074743214
	.long	-343597384
	.long	1077753937
	.long	-858993459
	.long	1078119628
	.long	1889785610
	.long	1079536189
	.long	-1717986918
	.long	1079089561
	.long	1030792151
	.long	1079957258
	.long	-1202590843
	.long	1078789406
	.long	-1030792151
	.long	1079945461
	.long	-343597384
	.long	1078515793
	.long	1202590843
	.long	1079470817
	.long	171798692
	.long	1079452631
	.long	1717986918
	.long	1080313446
	.long	-1717986918
	.long	1079511449
	.long	-171798692
	.long	1080276008
	.long	-343597384
	.long	1077409873
	.long	1889785610
	.long	1079142973
	.long	171798692
	.long	1079321559
	.long	-515396076
	.long	1080175738
	.long	1717986918
	.long	1078912614
	.long	-2061584302
	.long	1079489003
	.long	-1889785610
	.long	1078719938
	.long	-1717986918
	.long	1080074649
	.long	687194767
	.long	1077841756
	.long	2061584302
	.long	1079143956
	.long	-858993459
	.long	1074973900
	.long	687194767
	.long	1077923676
	.long	-1202590843
	.long	1078990110
	.long	-687194767
	.long	1079791779
	.long	-1374389535
	.long	1078542663
	.long	-687194767
	.long	1079496867
	.long	-858993459
	.long	1078430924
	.long	-858993459
	.long	1079491788
	.long	171798692
	.long	1076143063
	.long	687194767
	.long	1078161244
	.long	0
	.long	1079046144
	.long	1717986918
	.long	1079912038
	.long	-1030792151
	.long	1077405941
	.long	-515396076
	.long	1079174266
	.long	171798692
	.long	1077240791
	.long	687194767
	.long	1078906716
	.long	-1030792151
	.long	1079523573
	.long	2061584302
	.long	1080190484
	.long	-1030792151
	.long	1079036149
	.long	1889785610
	.long	1079953981
	.long	-515396076
	.long	1076892794
	.long	-2061584302
	.long	1078890987
	.long	-2061584302
	.long	1079464427
	.long	-2061584302
	.long	1080125931
	.long	1374389535
	.long	1078550200
	.long	-1889785610
	.long	1079543234
	.long	1202590843
	.long	1078123233
	.long	-858993459
	.long	1079360716
	.long	-1889785610
	.long	1079223746
	.long	515396076
	.long	1080112005
	.long	-2061584302
	.long	1078981099
	.long	-1202590843
	.long	1079682334
	.long	-687194767
	.long	1077915811
	.long	-858993459
	.long	1079286988
	.long	1889785610
	.long	1078790717
	.long	-343597384
	.long	1079777361
	.long	-515396076
	.long	1078301818
	.long	-687194767
	.long	1079476387
	.long	343597384
	.long	1076283310
	.long	515396076
	.long	1077504901
	.long	1889785610
	.long	1079020093
	.long	-515396076
	.long	1079776378
	.long	-2061584302
	.long	1079509483
	.long	-343597384
	.long	1080229969
	.long	1717986918
	.long	1078281830
	.long	1030792151
	.long	1079297802
	.long	-1030792151
	.long	1077946613
	.long	-1717986918
	.long	1079003545
	.long	-1202590843
	.long	1077347614
	.long	-858993459
	.long	1078430924
	.long	-1889785610
	.long	1077753282
	.long	-858993459
	.long	1078897868
	.long	1889785610
	.long	1076922941
	.long	343597384
	.long	1078806446
	.long	171798692
	.long	1078469591
	.long	-1202590843
	.long	1079584030
	.long	-515396076
	.long	1077023866
	.long	-1546188227
	.long	1078402416
	.long	-171798692
	.long	1077533736
	.long	-1546188227
	.long	1078844784
	.long	-1374389535
	.long	1079222599
	.long	-2061584302
	.long	1080021483
	.long	1717986918
	.long	1076094566
	.long	858993459
	.long	1078547251
	.long	171798692
	.long	1077699543
	.long	343597384
	.long	1078986670
	.long	-858993459
	.long	1078725836
	.long	1030792151
	.long	1079371530
	.long	-171798692
	.long	1078303784
	.long	-1030792151
	.long	1079462133
	.long	-1374389535
	.long	1078288711
	.long	-858993459
	.long	1079401676
	.long	1546188227
	.long	1079546511
	.long	-171798692
	.long	1080292392
	.long	-1889785610
	.long	1079530946
	.long	-1030792151
	.long	1080441077
	.long	-515396076
	.long	1074861178
	.long	-1546188227
	.long	1078697328
	.long	-1374389535
	.long	1078427975
	.long	-515396076
	.long	1079665786
	.long	2061584302
	.long	1078849044
	.long	343597384
	.long	1079809966
	.long	858993459
	.long	1077080883
	.long	2061584302
	.long	1078562324
	.long	1546188227
	.long	1078248079
	.long	-1202590843
	.long	1079317790
	.long	1202590843
	.long	1078950625
	.long	515396076
	.long	1079708549
	.long	1889785610
	.long	1077660221
	.long	2061584302
	.long	1078717972
	.long	171798692
	.long	1076913111
	.long	1889785610
	.long	1079011901
	.long	515396076
	.long	1079020421
	.long	-858993459
	.long	1079663820
	.long	2061584302
	.long	1078029844
	.long	-171798692
	.long	1079491624
	.long	-343597384
	.long	1077704785
	.long	-858993459
	.long	1079073996
	.long	1202590843
	.long	1079536353
	.long	171798692
	.long	1080355799
	.long	1030792151
	.long	1079179018
	.long	-1202590843
	.long	1079645470
	.long	1546188227
	.long	1077478031
	.long	-1717986918
	.long	1079155097
	.long	1202590843
	.long	1078426337
	.long	1546188227
	.long	1079370383
	.long	-1374389535
	.long	1079451975
	.long	858993459
	.long	1080048435
	.long	343597384
	.long	1077790638
	.long	2061584302
	.long	1079143956
	.long	2061584302
	.long	1079340564
	.long	171798692
	.long	1080126423
	.long	-1030792151
	.long	1079310581
	.long	-687194767
	.long	1080012963
	.long	-2061584302
	.long	1078825451
	.long	-2061584302
	.long	1079833067
	.long	-858993459
	.long	1078422732
	.long	-343597384
	.long	1079531601
	.long	1546188227
	.long	1075364495
	.long	-1030792151
	.long	1078012149
	.long	1546188227
	.long	1076314767
	.long	687194767
	.long	1077366620
	.long	1546188227
	.long	1076314767
	.long	1202590843
	.long	1078344417
	.long	1030792151
	.long	1077335818
	.long	-1374389535
	.long	1078747463
	.long	0
	.long	1076363264
	.long	171798692
	.long	1078551511
	.long	515396076
	.long	1078946693
	.long	-858993459
	.long	1079581900
	.long	1202590843
	.long	1079270113
	.long	1030792151
	.long	1080063754
	.long	2061584302
	.long	1079418388
	.long	171798692
	.long	1080159191
	.long	2061584302
	.long	1077800468
	.long	-1717986918
	.long	1079392665
	.long	-1717986918
	.long	1079204249
	.long	-1889785610
	.long	1079936450
	.long	-515396076
	.long	1079473274
	.long	858993459
	.long	1080175411
	.long	0
	.long	1078452224
	.long	-171798692
	.long	1079512104
	.long	171798692
	.long	1077224407
	.long	687194767
	.long	1079095132
	.long	-1546188227
	.long	1079532912
	.long	-687194767
	.long	1080197283
	.long	-687194767
	.long	1076457635
	.long	-2061584302
	.long	1078079979
	.long	-171798692
	.long	1078524968
	.long	1546188227
	.long	1079308943
	.long	-858993459
	.long	1079540940
	.long	1717986918
	.long	1080317542
	.long	1030792151
	.long	1079424778
	.long	858993459
	.long	1080242995
	.long	-858993459
	.long	1078979788
	.long	-171798692
	.long	1079856168
	.long	-2061584302
	.long	1074942443
	.long	1717986918
	.long	1077831270
	.long	343597384
	.long	1078871982
	.long	687194767
	.long	1079897948
	.long	1546188227
	.long	1078641295
	.long	1717986918
	.long	1079744102
	.long	1374389535
	.long	1077862072
	.long	-858993459
	.long	1078987980
	.long	858993459
	.long	1075524403
	.long	-1030792151
	.long	1078503669
	.long	-858993459
	.long	1079147724
	.long	171798692
	.long	1079968727
	.long	1717986918
	.long	1075340902
	.long	-1546188227
	.long	1078812016
	.long	-1374389535
	.long	1077305671
	.long	-343597384
	.long	1079068753
	.long	-1717986918
	.long	1078876569
	.long	687194767
	.long	1079779164
	.long	-858993459
	.long	1078881484
	.long	-1889785610
	.long	1079334338
	.long	-2061584302
	.long	1079382507
	.long	171798692
	.long	1080320983
	.long	-687194767
	.long	1078653091
	.long	343597384
	.long	1079556014
	.long	0
	.long	1076264960
	.long	-515396076
	.long	1077646458
	.long	-2061584302
	.long	1078899179
	.long	1374389535
	.long	1079762616
	.long	-343597384
	.long	1078532177
	.long	1374389535
	.long	1079598776
	.long	-1202590843
	.long	1078445342
	.long	1374389535
	.long	1079668408
	.long	1030792151
	.long	1078089482
	.long	1202590843
	.long	1079159521
	.long	2061584302
	.long	1076948500
	.long	-1546188227
	.long	1078132080
	.long	343597384
	.long	1078962094
	.long	2061584302
	.long	1079655956
	.long	-1202590843
	.long	1079543070
	.long	1202590843
	.long	1080185569
	.long	-858993459
	.long	1077169356
	.long	-687194767
	.long	1079009443
	.long	-1717986918
	.long	1079032217
	.long	-1546188227
	.long	1079831920
	.long	2061584302
	.long	1074507284
	.long	171798692
	.long	1077601239
	.long	-1717986918
	.long	1079179673
	.long	515396076
	.long	1080044421
	.long	1717986918
	.long	1075471974
	.long	-858993459
	.long	1078742220
	.long	1889785610
	.long	1078815293
	.long	-2061584302
	.long	1079755243
	.long	0
	.long	1079070720
	.long	-1717986918
	.long	1080043929
	.long	-2061584302
	.long	1079181803
	.long	-858993459
	.long	1079815372
	.long	-515396076
	.long	1078948986
	.long	1374389535
	.long	1079873208
	.long	1374389535
	.long	1079525048
	.long	-1717986918
	.long	1080250777
	.long	1889785610
	.long	1077267005
	.long	1030792151
	.long	1078966026
	.long	-2061584302
	.long	1079280107
	.long	-858993459
	.long	1080181964
	.long	171798692
	.long	1077519319
	.long	-171798692
	.long	1078656040
	.long	-1030792151
	.long	1079245045
	.long	-2061584302
	.long	1080179179
	.long	2061584302
	.long	1078185492
	.long	-343597384
	.long	1079318609
	.long	-1202590843
	.long	1078412574
	.long	1030792151
	.long	1079379722
	.long	-1030792151
	.long	1078970613
	.long	1202590843
	.long	1079544545
	.long	1889785610
	.long	1079228989
	.long	1889785610
	.long	1080087101
	.long	-2061584302
	.long	1079456235
	.long	-858993459
	.long	1080341708
	.long	-1030792151
	.long	1079380213
	.long	171798692
	.long	1080265687
	.long	1374389535
	.long	1070931640
	.long	-1546188227
	.long	1078058352
	.long	-1030792151
	.long	1078561013
	.long	171798692
	.long	1079247831
	.long	-1717986918
	.long	1078122905
	.long	-515396076
	.long	1079067770
	.long	343597384
	.long	1079191470
	.long	171798692
	.long	1079993303
	.long	2061584302
	.long	1079156244
	.long	1889785610
	.long	1079921213
	.long	171798692
	.long	1078428631
	.long	515396076
	.long	1079384965
	.long	-1717986918
	.long	1078417817
	.long	1546188227
	.long	1079509647
	.long	-1030792151
	.long	1077504245
	.long	687194767
	.long	1078980444
	.long	1717986918
	.long	1079055974
	.long	-1546188227
	.long	1079852400
	.long	-1889785610
	.long	1079104962
	.long	-2061584302
	.long	1079902699
	.long	858993459
	.long	1076900659
	.long	171798692
	.long	1078502359
	.long	-1202590843
	.long	1076233502
	.long	-687194767
	.long	1078522019
	.long	-1374389535
	.long	1079505223
	.long	-1889785610
	.long	1080315330
	.long	-1889785610
	.long	1077720514
	.long	687194767
	.long	1079213916
	.long	-1889785610
	.long	1078425026
	.long	-1717986918
	.long	1079142809
	.long	-687194767
	.long	1078931619
	.long	171798692
	.long	1079645143
	.long	-687194767
	.long	1079345315
	.long	-1717986918
	.long	1080037785
	.long	1030792151
	.long	1079015178
	.long	1717986918
	.long	1079797350
	.long	-687194767
	.long	1078775971
	.long	1374389535
	.long	1079926456
	.long	1030792151
	.long	1079154442
	.long	-1546188227
	.long	1079991664
	.long	343597384
	.long	1072777134
	.long	1546188227
	.long	1078190735
	.long	515396076
	.long	1075866501
	.long	858993459
	.long	1078252339
	.long	-515396076
	.long	1076597882
	.long	687194767
	.long	1078480732
	.long	-858993459
	.long	1079303372
	.long	-1889785610
	.long	1080143298
	.long	1202590843
	.long	1076853473
	.long	-343597384
	.long	1078163537
	.long	-1374389535
	.long	1077125447
	.long	0
	.long	1079107584
	.long	0
	.long	1079562240
	.long	343597384
	.long	1080223662
	.long	0
	.long	1078525952
	.long	1889785610
	.long	1079413309
	.long	2061584302
	.long	1079266836
	.long	-858993459
	.long	1079946444
	.long	-515396076
	.long	1077449850
	.long	-343597384
	.long	1078409297
	.long	-687194767
	.long	1078587555
	.long	-2061584302
	.long	1079337451
	.long	1202590843
	.long	1078713057
	.long	1546188227
	.long	1079313039
	.long	-343597384
	.long	1075296337
	.long	515396076
	.long	1077955461
	.long	-171798692
	.long	1079163944
	.long	1202590843
	.long	1080083169
	.long	-687194767
	.long	1079455907
	.long	858993459
	.long	1080206131
	.long	515396076
	.long	1078397829
	.long	-1889785610
	.long	1079592386
	.long	1030792151
	.long	1078081290
	.long	-1202590843
	.long	1079477534
	.long	-2061584302
	.long	1075892715
	.long	-1202590843
	.long	1078142238
	.long	1202590843
	.long	1079053025
	.long	-858993459
	.long	1079561420
	.long	-1889785610
	.long	1078015426
	.long	-1717986918
	.long	1079343513
	.long	515396076
	.long	1079253893
	.long	-1374389535
	.long	1080117575
	.long	1374389535
	.long	1078484664
	.long	-1889785610
	.long	1079379394
	.long	2061584302
	.long	1078742548
	.long	-1546188227
	.long	1079840112
	.long	-1030792151
	.long	1077618933
	.long	1889785610
	.long	1079253565
	.long	1546188227
	.long	1079509647
	.long	-1546188227
	.long	1080161648
	.long	-858993459
	.long	1078250700
	.long	-1546188227
	.long	1079389552
	.long	1030792151
	.long	1078736650
	.long	171798692
	.long	1079509975
	.long	1202590843
	.long	1079569121
	.long	343597384
	.long	1080291246
	.long	-343597384
	.long	1075820625
	.long	-687194767
	.long	1077522595
	.long	-1546188227
	.long	1079496048
	.long	1030792151
	.long	1080270602
	.long	1717986918
	.long	1078281830
	.long	-1030792151
	.long	1079068917
	.long	1202590843
	.long	1076198113
	.long	2061584302
	.long	1077702164
	.long	-1030792151
	.long	1078569205
	.long	858993459
	.long	1079530291
	.long	-2061584302
	.long	1078358507
	.long	1202590843
	.long	1079306977
	.long	-1717986918
	.long	1075681689
	.long	1202590843
	.long	1078360801
	.long	687194767
	.long	1072861020
	.long	0
	.long	1078263808
	.long	858993459
	.long	1075131187
	.long	-2061584302
	.long	1078104555
	.long	-1374389535
	.long	1079521607
	.long	1030792151
	.long	1080235786
	.long	515396076
	.long	1075309445
	.long	0
	.long	1078198272
	.long	-1546188227
	.long	1078861168
	.long	2061584302
	.long	1079938580
	.long	687194767
	.long	1078128476
	.long	343597384
	.long	1079322542
	.long	1889785610
	.long	1078274621
	.long	687194767
	.long	1079218012
	.long	171798692
	.long	1077076951
	.long	687194767
	.long	1078120284
	.long	-858993459
	.long	1077562572
	.long	1717986918
	.long	1078576742
	.long	1717986918
	.long	1075209830
	.long	-858993459
	.long	1078283468
	.long	-1030792151
	.long	1077954805
	.long	1546188227
	.long	1079177871
	.long	858993459
	.long	1079489331
	.long	-515396076
	.long	1080210554
	.long	515396076
	.long	1079556997
	.long	858993459
	.long	1080269619
	.long	1717986918
	.long	1075865190
	.long	1374389535
	.long	1078255288
	.long	-858993459
	.long	1078152396
	.long	858993459
	.long	1079370547
	.long	-2061584302
	.long	1079378411
	.long	-171798692
	.long	1080165416
	.long	343597384
	.long	1077675950
	.long	1030792151
	.long	1078654730
	.long	1030792151
	.long	1077548810
	.long	-687194767
	.long	1079406755
	.long	1030792151
	.long	1077794570
	.long	-1717986918
	.long	1079126425
	.long	1030792151
	.long	1079334666
	.long	687194767
	.long	1080069980
	.long	-343597384
	.long	1077606481
	.long	-858993459
	.long	1079192780
	.long	-1374389535
	.long	1078042951
	.long	858993459
	.long	1079186227
	.long	-1717986918
	.long	1077533081
	.long	858993459
	.long	1079096115
	.long	2061584302
	.long	1079213588
	.long	687194767
	.long	1080024924
	.long	-687194767
	.long	1079099555
	.long	-1374389535
	.long	1080119623
	.long	-1374389535
	.long	1076224327
	.long	-515396076
	.long	1078523002
	.long	-1546188227
	.long	1077886320
	.long	-1374389535
	.long	1079112007
	.long	1374389535
	.long	1075715768
	.long	-1717986918
	.long	1078360473
	.long	-2061584302
	.long	1073238507
	.long	1030792151
	.long	1077712650
	.long	-1202590843
	.long	1077101854
	.long	1717986918
	.long	1078306406
	.long	-2061584302
	.long	1076744683
	.long	343597384
	.long	1078364078
	.long	1202590843
	.long	1079515873
	.long	1030792151
	.long	1080266506
	.long	-1030792151
	.long	1079023861
	.long	-1374389535
	.long	1080000839
	.long	687194767
	.long	1079066460
	.long	1889785610
	.long	1079786045
	.long	-1717986918
	.long	1077074329
	.long	1889785610
	.long	1078938173
	.long	1717986918
	.long	1077954150
	.long	1202590843
	.long	1079589601
	.long	515396076
	.long	1077988229
	.long	-687194767
	.long	1079345315
	.long	171798692
	.long	1078789079
	.long	-171798692
	.long	1079540776
	.long	2061584302
	.long	1078062612
	.long	858993459
	.long	1079178035
	.long	-515396076
	.long	1077892218
	.long	343597384
	.long	1079465902
	.long	-687194767
	.long	1079464099
	.long	-858993459
	.long	1080245452
	.long	1889785610
	.long	1076824637
	.long	0
	.long	1078272000
	.long	0
	.long	1074135040
	.long	-687194767
	.long	1078227107
	.long	0
	.long	1076658176
	.long	515396076
	.long	1078733701
	.long	2061584302
	.long	1076276756
	.long	-1030792151
	.long	1078692085
	.long	-1889785610
	.long	1072756162
	.long	-2061584302
	.long	1077793259
	.long	-343597384
	.long	1077114961
	.long	1202590843
	.long	1078418145
	.long	-1030792151
	.long	1079056629
	.long	1889785610
	.long	1079499325
	.long	858993459
	.long	1078170419
	.long	343597384
	.long	1079035822
	.long	687194767
	.long	1077661532
	.long	-2061584302
	.long	1079001579
	.long	1202590843
	.long	1078000353
	.long	2061584302
	.long	1079062036
	.long	1889785610
	.long	1077791293
	.long	-1202590843
	.long	1079305502
	.long	858993459
	.long	1076081459
	.long	2061584302
	.long	1078439444
	.long	-171798692
	.long	1078508584
	.long	687194767
	.long	1079824220
	.long	1030792151
	.long	1072944906
	.long	-1374389535
	.long	1077780807
	.long	-1889785610
	.long	1077343682
	.long	-858993459
	.long	1078881484
	.long	0
	.long	1078116352
	.long	-687194767
	.long	1079025827
	.long	-1374389535
	.long	1078411591
	.long	687194767
	.long	1079521116
	.long	-2061584302
	.long	1078022635
	.long	-1717986918
	.long	1079118233
	.long	1030792151
	.long	1079281418
	.long	858993459
	.long	1080161075
	.long	2061584302
	.long	1079393812
	.long	2061584302
	.long	1080233492
	.long	-1546188227
	.long	1079438704
	.long	-171798692
	.long	1080173608
	.long	1030792151
	.long	1076549386
	.long	-1717986918
	.long	1078942105
	.long	343597384
	.long	1078732718
	.long	687194767
	.long	1079713628
	.long	-1889785610
	.long	1077589442
	.long	1202590843
	.long	1079151329
	.long	1374389535
	.long	1078623928
	.long	-1030792151
	.long	1079449845
	.long	-1374389535
	.long	1076879687
	.long	-1202590843
	.long	1078265118
	.long	0
	.long	1072955392
	.long	1717986918
	.long	1077438054
	.long	343597384
	.long	1079093166
	.long	-1202590843
	.long	1080001822
	.long	1202590843
	.long	1079380705
	.long	-1889785610
	.long	1080161730
	.long	-1202590843
	.long	1075676446
	.long	-1717986918
	.long	1078491545
	.long	687194767
	.long	1078546268
	.long	-1202590843
	.long	1079563550
	.long	-515396076
	.long	1078326394
	.long	-515396076
	.long	1079358586
	.long	-1546188227
	.long	1071791472
	.long	-171798692
	.long	1077566504
	.long	1202590843
	.long	1077672673
	.long	-1374389535
	.long	1079284039
	.long	-1717986918
	.long	1078147481
	.long	-1717986918
	.long	1079077273
	.long	-1717986918
	.long	1076271513
	.long	-343597384
	.long	1078229073
	.long	0
	.long	1078370304
	.long	1374389535
	.long	1079324344
	.long	1374389535
	.long	1077403320
	.long	-1202590843
	.long	1079059742
	.long	1374389535
	.long	1077501624
	.long	343597384
	.long	1079117742
	.long	515396076
	.long	1078864773
	.long	1546188227
	.long	1079898767
	.long	515396076
	.long	1078283141
	.long	-343597384
	.long	1079576657
	.long	1030792151
	.long	1076483850
	.long	-687194767
	.long	1078235299
	.long	2061584302
	.long	1077308948
	.long	1889785610
	.long	1078716989
	.long	1030792151
	.long	1079539466
	.long	1374389535
	.long	1080362680
	.long	171798692
	.long	1076831191
	.long	-687194767
	.long	1078644899
	.long	-687194767
	.long	1077571747
	.long	-1717986918
	.long	1079032217
	.long	-1202590843
	.long	1079571742
	.long	858993459
	.long	1080206131
	.long	-1546188227
	.long	1079307632
	.long	-858993459
	.long	1079876812
	.long	1202590843
	.long	1079073505
	.long	-1030792151
	.long	1079994613
	.long	-858993459
	.long	1078717644
	.long	-858993459
	.long	1079692492
	.long	0
	.long	1078788096
	.long	-1030792151
	.long	1079752949
	.long	2061584302
	.long	1079033364
	.long	-171798692
	.long	1079893032
	.long	0
	.long	1078435840
	.long	687194767
	.long	1079467868
	.long	1546188227
	.long	1078502031
	.long	-1889785610
	.long	1079678402
	.long	858993459
	.long	1079276339
	.long	-515396076
	.long	1080190074
	.long	-1546188227
	.long	1079324016
	.long	343597384
	.long	1080113070
	.long	858993459
	.long	1077785395
	.long	-1889785610
	.long	1078900162
	.long	1202590843
	.long	1079106273
	.long	171798692
	.long	1079665623
	.long	343597384
	.long	1079064494
	.long	-1717986918
	.long	1080033689
	.long	-1889785610
	.long	1078416834
	.long	1546188227
	.long	1079431823
	.long	-515396076
	.long	1079006330
	.long	1202590843
	.long	1080070881
	.long	-1374389535
	.long	1078485319
	.long	0
	.long	1079341056
	.long	858993459
	.long	1079485235
	.long	-171798692
	.long	1080241192
	.long	-1030792151
	.long	1077242101
	.long	-687194767
	.long	1078284451
	.long	1889785610
	.long	1078602301
	.long	1374389535
	.long	1079459512
	.long	343597384
	.long	1076217774
	.long	687194767
	.long	1078161244
	.long	687194767
	.long	1077235548
	.long	-171798692
	.long	1078623272
	.long	343597384
	.long	1078593454
	.long	-1030792151
	.long	1079335157
	.long	515396076
	.long	1077013381
	.long	-1889785610
	.long	1078547906
	.long	-343597384
	.long	1079134289
	.long	858993459
	.long	1080013619
	.long	-687194767
	.long	1079001251
	.long	-2061584302
	.long	1080060395
	.long	-1546188227
	.long	1078115696
	.long	1717986918
	.long	1079338598
	.long	-1717986918
	.long	1078950297
	.long	-1030792151
	.long	1079740661
	.long	171798692
	.long	1078952919
	.long	1546188227
	.long	1079657103
	.long	858993459
	.long	1076114227
	.long	-1030792151
	.long	1078577397
	.long	-2061584302
	.long	1078718955
	.long	1889785610
	.long	1079527997
	.long	858993459
	.long	1076900659
	.long	-1030792151
	.long	1079048437
	.long	-343597384
	.long	1076639825
	.long	-1546188227
	.long	1078164848
	.long	-1030792151
	.long	1078028533
	.long	858993459
	.long	1079247667
	.long	171798692
	.long	1078313943
	.long	-2061584302
	.long	1079370219
	.long	-1374389535
	.long	1079271751
	.long	687194767
	.long	1080213340
	.long	-171798692
	.long	1079004200
	.long	1030792151
	.long	1080026890
	.long	-1717986918
	.long	1076599193
	.long	1374389535
	.long	1078304440
	.long	343597384
	.long	1078937518
	.long	1202590843
	.long	1079507681
	.long	515396076
	.long	1077939077
	.long	1546188227
	.long	1079063183
	.long	-1717986918
	.long	1077434777
	.long	-1030792151
	.long	1078601973
	.long	1889785610
	.long	1075907133
	.long	-1717986918
	.long	1078221209
	.long	-171798692
	.long	1079311400
	.long	1202590843
	.long	1080138465
	.long	-1546188227
	.long	1079188848
	.long	687194767
	.long	1079861084
	.long	515396076
	.long	1076095877
	.long	-343597384
	.long	1078310993
	.long	-858993459
	.long	1079426252
	.long	-171798692
	.long	1080077352
	.long	343597384
	.long	1077790638
	.long	-1374389535
	.long	1079095623
	.long	171798692
	.long	1076798423
	.long	-1030792151
	.long	1078184181
	.long	-687194767
	.long	1079255203
	.long	515396076
	.long	1080054661
	.long	-1717986918
	.long	1079134617
	.long	515396076
	.long	1079868293
	.long	858993459
	.long	1076212531
	.long	-1030792151
	.long	1078618357
	.long	-1889785610
	.long	1079047618
	.long	1546188227
	.long	1079706255
	.long	-687194767
	.long	1079324835
	.long	-687194767
	.long	1080064163
	.long	2061584302
	.long	1078103572
	.long	2061584302
	.long	1079160340
	.long	1546188227
	.long	1078821519
	.long	171798692
	.long	1079751639
	.long	-687194767
	.long	1079300259
	.long	-1546188227
	.long	1080118640
	.long	-1546188227
	.long	1078353264
	.long	-1202590843
	.long	1079649566
	.long	1546188227
	.long	1079501455
	.long	343597384
	.long	1080217518
	.long	1202590843
	.long	1078885089
	.long	1202590843
	.long	1079335649
	.long	2061584302
	.long	1079094804
	.long	0
	.long	1079742464
	.long	-1717986918
	.long	1078139289
	.long	-1546188227
	.long	1079201136
	.long	-171798692
	.long	1079249960
	.long	1717986918
	.long	1079957094
	.long	0
	.long	1077395456
	.long	-858993459
	.long	1078725836
	.long	1889785610
	.long	1078094397
	.long	687194767
	.long	1079435100
	.local	_ZL8d_n_data
	.comm	_ZL8d_n_data,4,4
	.globl	n_data
	.align 4
	.type	n_data, @object
	.size	n_data, 4
n_data:
	.long	1000
	.section	.rodata.cst8,"aM",@progbits,8
	.align 8
.LC3:
	.long	-8388608
	.long	1104006500
	.align 8
.LC4:
	.long	0
	.long	1076101120
	.align 8
.LC5:
	.long	-858993459
	.long	1073007820
	.align 8
.LC10:
	.long	1202590843
	.long	1065646817
	.align 8
.LC20:
	.long	0
	.long	1104006501
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:


#include <hip/hip_runtime.h>
#include <stdio.h>
#include <math.h>
#include <time.h>
#include <unistd.h>
#include <hip/hip_runtime_api.h>
#include <errno.h>
#include <unistd.h>
/******************************************************************************
* 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 cuda_linear_regression CUDA_linear_regression.c -lm
*
* To run:
* ./cuda_linear_regression
*
* 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; //device varialble
//date set
point_t data[] = {{84.00,158.34},{65.52,110.67},{85.91,134.11},{77.48,136.09},
  {73.17,136.16},{67.40,109.20},{75.49,126.90},{77.85,114.67},
  {79.25,148.06},{78.31,121.73},{68.11,123.17},{65.98,119.55},
  {76.17,132.26},{ 2.64,38.33},{96.38,166.85},{86.14,132.68},
  {61.54,96.82},{37.72,98.07},{37.70,80.81},{32.28,100.04},
  { 3.66,23.94},{ 7.46,52.84},{36.23,95.31},{22.34,69.48},
  {71.96,115.66},{86.47,138.88},{92.92,145.82},{38.48,82.46},
  {44.20,93.62},{21.05,49.35},{11.86,34.11},{46.37,98.83},
  {91.10,151.02},{49.67,99.71},{93.18,154.70},{29.36,74.06},
  {98.23,161.21},{11.48,37.38},{76.14,134.55},{12.82,42.87},
  {41.65,73.14},{90.87,150.57},{20.07,60.27},{16.50,52.54},
  {13.34,34.29},{84.40,135.44},{11.52,59.82},{29.37,47.39},
  {98.77,186.38},{37.76,90.20},{70.76,120.68},{76.53,124.45},
  {53.19,83.32},{43.38,84.37},{24.17,54.39},{34.73,75.47},
  {48.74,88.61},{90.41,137.16},{71.67,116.42},{33.52,73.32},
  {89.07,151.04},{99.62,157.57},{ 6.06,23.75},{ 9.88,41.48},
  {37.40,88.12},{ 4.90,28.21},{59.65,93.58},{89.26,144.30},
  {80.12,125.86},{55.68,109.87},{ 6.63,29.82},{42.01,82.57},
  {28.50,58.62},{96.34,151.98},{58.48,86.73},{ 9.21,49.93},
  {45.26,91.89},{61.45,129.42},{64.16,122.85},{50.16,110.61},
  {69.15,117.41},{ 5.71,48.77},{94.65,155.24},{53.12,94.42},
  {16.94,63.60},{14.17,54.90},{51.54,115.01},{39.22,79.28},
  {39.61,78.46},{54.97,119.51},{11.59,36.63},{89.21,153.74},
  {72.09,134.94},{65.94,108.67},{25.24,83.47},{46.42,97.83},
  {92.01,150.73},{37.99,76.21},{89.04,142.25},{64.33,112.96},
  {53.37,106.10},{95.53,165.26},{38.36,91.04},{93.05,143.28},
  {28.64,68.65},{44.62,95.02},{45.09,77.05},{19.75,43.50},
  {20.91,56.67},{54.75,98.18},{58.10,104.92},{76.92,112.29},
  {95.54,134.70},{18.37,60.01},{34.41,64.02},{73.88,115.06},
  { 3.12,29.78},{87.83,139.28},{51.24,100.70},{59.09,93.30},
  {17.73,37.79},{53.24,125.19},{55.98,95.18},{93.57,161.31},
  {94.19,156.54},{17.23,61.67},{84.72,126.89},{94.21,173.37},
  {14.36,50.76},{86.73,164.40},{11.46,50.63},{82.37,140.06},
  {91.47,149.02},{78.43,139.81},{69.13,110.30},{55.18,98.69},
  {77.04,133.84},{89.54,152.12},{41.97,92.78},{33.30,54.63},
  {67.24,120.88},{99.28,167.60},{15.72,44.70},{ 1.99,30.69},
  {22.75,63.59},{ 7.67,35.46},{33.63,78.13},{ 4.18,34.79},
  {53.87,85.32},{50.78,116.87},{59.50,110.24},{86.30,128.04},
  { 1.58,32.38},{60.74,115.04},{41.74,80.26},{47.25,87.04},
  { 6.48,48.05},{ 5.38,40.66},{44.37,96.63},{52.09,106.49},
  { 2.53,20.15},{29.92,75.21},{64.13,113.18},{49.87,94.77},
  {89.10,139.11},{64.31,122.49},{77.49,151.19},{47.76,92.00},
  {35.10,84.27},{59.01,94.03},{30.72,66.91},{ 0.73,31.64},
  {87.23,139.17},{93.71,143.40},{99.09,150.61},{49.24,86.30},
  {70.06,123.48},{94.79,161.15},{65.53,110.62},{73.07,120.91},
  {58.64,109.98},{93.06,153.11},{10.33,52.32},{53.66,99.87},
  {79.93,131.72},{92.47,149.34},{81.26,134.04},{77.69,122.75},
  { 0.21,37.82},{ 5.74,33.36},{92.38,139.73},{11.65,57.39},
  {75.26,145.81},{92.63,139.34},{73.34,147.14},{54.49,105.57},
  {25.16,57.99},{15.96,57.13},{61.03,104.92},{49.06,91.20},
  {46.50,78.47},{83.35,139.36},{75.69,107.74},{45.22,91.87},
  { 3.46,47.84},{90.17,155.25},{40.70,58.46},{42.82,97.35},
  {49.34,98.41},{89.89,141.81},{42.76,84.78},{34.67,77.38},
  {58.32,101.54},{14.00,39.47},{85.53,144.41},{ 0.20,38.28},
  {86.50,126.17},{35.04,66.41},{48.45,101.50},{83.83,137.62},
  {67.53,105.84},{ 8.18,36.42},{53.77,95.88},{73.79,129.29},
  {53.20,93.60},{65.37,111.30},{97.78,167.73},{22.98,55.09},
  {81.18,141.58},{37.60,92.48},{84.76,143.11},{22.76,73.08},
  {82.74,116.98},{ 6.27,53.39},{34.87,71.66},{75.19,131.80},
  {92.31,152.15},{86.41,132.70},{97.91,134.42},{23.91,64.29},
  {39.02,83.92},{55.23,119.47},{22.70,69.44},{68.05,116.09},
  {60.05,110.20},{43.42,94.91},{ 5.76,40.19},{ 0.85,27.11},
  {25.87,54.31},{96.94,146.88},{26.27,72.95},{10.94,45.38},
  {64.67,120.45},{11.09,66.59},{26.46,72.91},{18.58,52.41},
  {80.97,134.00},{ 0.34,27.83},{33.13,69.96},{49.90,91.22},
  {18.80,64.32},{35.91,80.24},{28.45,49.05},{64.01,119.04},
  { 4.57,17.02},{93.16,157.23},{78.53,132.43},{50.60,97.10},
  {24.82,50.38},{ 4.84,48.13},{75.03,125.77},{75.72,138.80},
  {52.51,114.45},{30.78,72.74},{18.85,45.55},{10.56,49.41},
  { 6.21,50.39},{ 8.24,48.12},{98.61,155.04},{65.17,127.86},
  {73.79,127.93},{ 4.28,29.56},{96.11,151.45},{65.64,115.43},
  {19.96,40.75},{54.15,107.88},{73.22,121.27},{31.92,62.21},
  {92.49,137.93},{46.31,96.16},{24.55,67.97},{49.05,91.91},
  {55.62,111.54},{81.51,151.15},{30.35,70.93},{88.44,146.56},
  {48.89,97.29},{10.97,35.94},{14.82,56.32},{69.65,117.12},
  {30.65,85.34},{92.16,146.37},{16.71,71.71},{66.67,131.21},
  {37.11,74.31},{59.68,110.52},{77.14,127.68},{39.95,79.67},
  {22.52,91.67},{10.03,45.65},{31.57,75.72},{65.36,128.53},
  {83.86,140.56},{41.54,85.30},{ 6.38,30.93},{69.65,122.81},
  { 7.27,44.05},{94.53,149.93},{42.97,95.82},{31.21,65.74},
  {56.21,100.24},{ 3.36,35.37},{38.60,82.21},{ 5.89,46.30},
  {57.19,105.13},{24.70,62.79},{19.06,46.81},{ 0.03,40.45},
  {53.27,98.31},{63.51,94.80},{60.00,117.85},{55.89,115.68},
  {47.68,98.74},{ 6.75,49.35},{25.37,36.75},{ 6.02,27.97},
  {32.83,70.94},{24.08,59.55},{ 1.50,41.37},{20.14,34.03},
  {29.57,72.67},{67.45,129.74},{10.37,71.88},{ 4.00,28.25},
  {70.58,121.73},{73.06,147.21},{ 3.18,31.23},{39.72,87.12},
  {48.37,95.58},{87.89,148.28},{ 1.38,39.73},{74.67,123.62},
  {23.09,85.06},{45.85,83.61},{70.08,120.59},{50.54,127.10},
  {18.68,46.70},{25.34,75.71},{36.59,82.03},{74.06,136.39},
  {77.69,119.75},{40.72,86.70},{ 2.10,39.85},{70.21,110.13},
  {57.12,98.18},{95.81,168.67},{ 1.89,28.48},{80.47,151.77},
  {58.85,110.02},{97.94,150.44},{94.39,148.61},{57.84,102.75},
  {74.49,133.19},{54.75,103.82},{35.22,94.57},{75.75,136.10},
  {50.83,93.11},{63.46,90.88},{43.93,98.46},{96.07,153.80},
  {73.81,137.75},{42.06,85.80},{25.23,69.96},{88.47,133.44},
  {36.88,84.25},{59.81,106.92},{17.34,65.65},{ 3.38,37.52},
  {66.07,130.98},{83.69,133.52},{97.61,141.32},{ 5.25,37.57},
  { 3.65,26.65},{88.36,166.35},{92.12,134.00},{17.96,69.00},
  {80.70,126.96},{99.18,157.12},{31.73,77.47},{43.01,99.71},
  {40.38,88.63},{70.91,125.87},{80.45,153.99},{57.17,113.12},
  {76.32,133.62},{73.71,134.36},{26.86,51.30},{39.58,83.32},
  {74.78,129.83},{57.47,98.73},{41.74,87.85},{56.88,103.05},
  {30.25,80.40},{10.57,55.26},{97.60,151.00},{93.22,149.95},
  { 0.46,23.10},{58.64,106.75},{99.59,158.87},{32.30,74.35},
  {38.16,80.61},{42.23,96.81},{67.36,118.92},{47.78,90.29},
  {53.16,112.75},{27.65,49.70},{30.00,56.75},{48.80,117.42},
  {12.52,47.70},{29.98,63.12},{43.86,89.89},{99.69,171.58},
  {40.14,79.46},{54.06,121.93},{91.20,147.36},{11.64,43.11},
  {36.83,96.61},{15.05,42.61},{19.69,71.98},{31.61,75.89},
  {25.20,90.34},{85.54,120.51},{52.87,88.38},{72.88,120.51},
  {74.91,115.52},{25.60,48.79},{79.13,131.98},{16.82,58.28},
  {17.84,48.08},{52.58,108.19},{50.31,94.38},{81.58,124.00},
  {83.06,146.52},{70.99,129.95},{33.61,69.02},{52.77,113.22},
  {22.94,60.25},{16.16,41.73},{32.61,74.22},{32.95,59.85},
  {76.76,135.04},{79.95,136.48},{25.45,60.50},{81.66,142.89},
  {45.57,98.11},{98.68,157.32},{33.40,92.64},{56.66,105.69},
  {34.55,67.90},{65.58,116.61},{79.54,132.70},{13.55,49.96},
  {49.60,92.00},{75.55,143.09},{94.16,145.02},{68.01,123.94},
  {11.48,42.98},{ 7.76,56.04},{56.28,118.42},{ 6.09,57.31},
  {98.90,179.15},{26.95,84.92},{ 8.52,25.64},{63.05,126.16},
  {39.72,94.83},{94.54,159.75},{67.46,123.28},{68.85,138.76},
  {46.96,83.67},{67.54,101.95},{23.17,61.79},{29.49,76.26},
  {58.17,111.80},{53.25,97.62},{37.89,74.59},{ 7.60,29.16},
  {60.72,103.03},{30.80,78.51},{14.13,34.68},{38.44,79.92},
  {59.12,111.86},{17.24,56.59},{89.12,133.28},{19.85,60.88},
  {90.45,151.93},{82.77,132.73},{34.02,76.70},{54.54,105.19},
  {65.08,123.75},{69.80,115.13},{95.30,156.69},{17.66,70.39},
  {25.18,82.85},{ 6.02,43.58},{12.61,40.23},{34.32,81.89},
  {67.40,100.75},{ 7.81,34.52},{ 7.03,36.08},{22.67,59.09},
  {93.01,150.36},{87.02,164.77},{32.20,74.13},{54.87,103.10},
  {58.37,135.91},{62.51,96.38},{45.32,89.16},{39.40,80.36},
  {12.45,68.04},{61.43,131.19},{59.25,103.13},{26.71,74.65},
  {61.25,110.85},{53.78,97.09},{57.75,114.27},{29.38,59.90},
  {18.36,71.14},{69.96,118.11},{14.56,39.27},{19.89,40.98},
  {68.55,130.17},{ 7.50,47.37},{35.98,101.38},{17.22,43.45},
  {76.31,127.73},{ 3.16,47.85},{93.16,152.57},{36.04,77.38},
  {60.95,118.72},{ 2.53,27.86},{78.06,137.18},{34.06,71.82},
  {83.47,149.39},{43.94,84.91},{82.45,154.13},{70.65,125.11},
  {25.67,64.86},{ 3.34,31.20},{15.95,58.76},{82.08,133.76},
  {94.85,157.96},{20.05,54.70},{ 3.44,40.93},{40.08,77.92},
  {43.31,79.23},{66.15,117.30},{84.56,137.10},{27.33,78.17},
  {16.18,46.85},{54.56,94.42},{32.63,78.15},{54.25,118.13},
  {90.63,165.79},{57.19,98.26},{46.83,82.83},{ 4.02,24.60},
  {66.12,115.96},{71.95,97.79},{52.13,103.65},{31.29,75.26},
  {55.91,100.66},{73.56,127.91},{74.57,133.72},{14.54,55.51},
  {35.91,76.04},{71.79,112.40},{ 3.52,32.63},{99.48,162.94},
  { 6.95,26.59},{75.82,121.54},{10.08,46.44},{45.52,91.13},
  { 1.68,30.79},{89.95,118.34},{34.84,77.63},{82.45,150.87},
  {42.78,63.15},{94.05,152.35},{61.19,104.44},{54.42,104.51},
  { 9.39,44.61},{ 6.90,39.55},{75.00,125.36},{71.30,129.59},
  {58.25,97.29},{90.61,147.99},{31.75,67.79},{85.80,137.70},
  {79.15,139.56},{44.24,79.90},{81.04,137.23},{65.21,106.73},
  {11.01,57.70},{33.41,84.03},{ 5.62,19.26},{77.21,143.88},
  {99.40,162.13},{92.80,146.34},{77.65,128.09},{86.21,138.32},
  {92.32,158.09},{79.31,150.60},{45.31,91.34},{13.30,45.91},
  {91.10,145.10},{94.55,148.44},{90.81,162.01},{98.98,170.98},
  { 5.68,57.45},{10.28,46.14},{13.53,44.62},{52.10,93.46},
  {98.73,164.39},{65.57,117.52},{63.85,112.29},{ 5.96,48.16},
  { 8.27,25.85},{14.11,51.72},{87.32,139.79},{ 7.19,36.04},
  {36.11,87.96},{79.40,134.60},{79.73,146.13},{69.33,120.83},
  {24.96,70.50},{12.89,34.58},{69.45,98.30},{86.02,147.84},
  {12.77,47.45},{22.82,76.20},{88.41,150.31},{30.70,72.59},
  {43.43,90.49},{25.14,51.00},{51.61,94.30},{61.68,132.43},
  {19.55,53.26},{61.03,108.01},{24.35,65.91},{34.89,88.15},
  {64.10,104.38},{67.04,133.73},{ 8.14,37.24},{11.35,43.91},
  {11.79,46.13},{ 3.91,29.22},{37.60,97.66},{70.40,123.36},
  {58.04,122.64},{49.69,93.67},{92.56,162.20},{96.15,157.63},
  {23.97,73.66},{84.56,145.39},{61.80,94.78},{55.92,133.05},
  {30.56,73.72},{ 4.70,31.81},{64.33,113.26},{50.51,95.26},
  {47.10,94.95},{10.32,38.87},{67.75,120.60},{23.91,75.57},
  {21.39,61.62},{96.89,147.19},{67.14,123.16},{16.08,61.14},
  {93.28,139.31},{50.74,98.09},{37.71,86.95},{78.59,137.61},
  {63.89,106.58},{31.69,82.45},{58.08,112.38},{43.16,94.01},
  {11.39,25.42},{66.16,112.32},{96.03,152.01},{42.55,83.11},
  {32.32,65.15},{23.02,47.10},{29.21,61.35},{16.54,58.56},
  {48.28,100.58},{18.08,46.23},{25.86,59.73},{78.52,127.28},
  { 9.95,50.65},{28.39,64.12},{56.10,87.61},{43.22,93.14},
  {42.76,89.45},{98.29,159.63},{97.34,177.78},{ 4.27,55.23},
  {47.01,105.57},{59.86,114.37},{18.95,51.11},{41.52,84.33},
  {62.96,108.18},{27.79,55.86},{16.39,65.66},{66.18,105.45},
  {34.86,94.94},{28.47,69.45},{97.67,167.37},{75.86,104.33},
  {25.01,74.40},{46.96,87.54},{92.52,129.85},{29.78,73.72},
  {85.72,139.37},{83.89,126.76},{59.14,115.78},{46.85,97.38},
  { 6.19,34.32},{11.63,23.31},{11.63,44.46},{22.84,56.76},
  {12.00,50.78},{62.84,100.45},{81.42,131.72},{90.47,143.37},
  {29.93,88.90},{77.40,122.09},{93.82,145.35},{47.75,96.19},
  {21.14,70.74},{97.46,148.02},{12.72,36.39},{49.97,83.79},
  {97.95,162.70},{90.86,153.60},{63.85,117.19},{ 4.58,30.40},
  {60.56,119.74},{53.52,110.35},{30.87,64.20},{ 6.80,49.32},
  {73.95,124.06},{ 6.10,58.73},{22.38,69.13},{60.70,112.49},
  {60.85,85.34},{88.28,163.12},{53.88,98.87},{11.25,27.58},
  {61.39,111.48},{50.19,101.48},{47.54,105.73},{36.68,74.67},
  {16.93,37.98},{63.31,104.97},{98.08,146.59},{20.30,65.51},
  {66.90,115.71},{ 3.46,26.89},{75.90,129.36},{ 6.60,56.60},
  {58.83,111.03},{69.25,129.30},{76.03,114.70},{62.91,118.23},
  {96.98,154.55},{21.79,63.43},{82.03,146.15},{25.64,53.97},
  {79.89,145.81},{39.61,84.38},{46.54,88.11},{63.57,98.17},
  {78.91,134.57},{92.78,165.65},{88.14,156.37},{ 0.33,35.73},
  {51.07,80.06},{37.70,69.07},{76.62,125.56},{74.47,121.16},
  {47.03,88.43},{46.70,96.04},{25.41,63.87},{68.35,116.96},
  {71.34,120.03},{16.20,49.28},{11.01,49.88},{95.77,162.43},
  {28.71,77.99},{46.92,73.65},{62.38,104.31},{86.01,128.55},
  {65.86,113.60},{57.63,121.48},{74.36,125.46},{ 1.08,39.77},
  { 8.21,41.65},{13.79,48.62},{83.45,141.43},{15.74,38.94},
  {19.63,71.50},{99.25,151.24},{50.00,90.16},{81.22,122.70},
  {24.58,46.44},{51.88,85.53},{55.71,84.04},{ 5.93,32.59},
  {74.94,134.09},{92.76,149.10},{46.09,101.09},{36.43,94.08},
  { 8.41,38.29},{68.17,99.20},{34.42,85.90},{80.43,138.29},
  {48.74,88.09},{56.61,116.21},{27.16,80.41},{96.04,143.67},
  {41.60,88.71},{56.43,96.06},{99.67,159.49},{ 7.93,25.69},
  {95.21,156.97},{42.55,69.14},{10.74,28.43},{51.32,97.30},
  {44.89,83.67},{ 7.40,44.96},{ 1.16,42.00},{ 5.30,37.14},
  {96.77,152.72},{ 5.98,40.00},{60.23,122.22},{37.87,84.62},
  {42.33,78.24},{18.89,37.62},{26.30,51.55},{ 5.60,42.60},
  {32.57,75.79},{94.80,149.64},{98.93,156.85},{ 8.20,41.74},
  {38.60,87.55},{88.03,144.13},{28.03,53.93},{26.09,89.76},
  {29.84,72.65},{85.36,132.48},{26.97,76.70},{35.26,76.30},
  {25.85,70.80},{77.97,127.49},{71.01,138.54},{10.94,49.91},
  {31.24,71.77},{ 7.53,44.95},{ 1.52,28.59},{19.27,43.30},
  {14.91,45.06},{96.42,156.47},{66.39,126.02},{68.99,112.91},
  {18.85,62.58},{32.55,100.92},{33.59,86.01},{58.03,97.94},
  {35.86,75.80},{31.33,93.37},{93.26,153.90},{15.52,42.25},
  { 2.75,40.88},{14.25,56.34},{11.34,55.07},{ 1.06,29.82},
  {19.47,46.71},{68.39,95.41},{39.15,67.12},{27.81,65.03},
  {33.96,68.72},{29.79,83.58},{ 9.85,47.36},{49.47,115.24},
  { 1.24,29.63},{22.96,60.85},{37.50,66.51},{46.51,96.74},
  {34.64,72.15},{82.11,143.60},{88.97,152.44},{91.71,145.13},
  {13.42,62.70},{56.31,108.49},{26.71,74.17},{52.99,92.39},
  {15.94,42.04},{ 1.25,24.40},{70.62,126.08},{88.17,143.68},
  { 7.38,48.95},{50.62,99.33},{43.91,86.82},{ 0.57,26.36},
  {27.98,82.27},{38.45,69.65},{11.30,40.94},{45.25,84.73},
  {23.87,68.58},{25.37,72.12},{60.34,119.79},{42.59,100.13},
  {12.92,41.13},{22.43,55.83},{97.86,168.21},{15.57,53.63},
  {26.44,66.90},{99.83,149.10},{83.71,118.45},{69.42,125.64},
  {55.85,107.20},{58.00,110.89},{66.97,119.44},{47.25,93.49},
  {49.27,106.34},{81.80,147.14},{84.71,137.74},{29.70,61.42},
  {71.42,105.56},{68.87,128.05},{46.67,91.29},{65.32,132.59},
  {48.76,85.75},{94.55,153.38},{21.41,42.63},{52.33,92.98},
  {10.89,38.87},{21.31,52.97},{52.06,85.39},{17.92,50.67},
  {73.13,126.80},{65.01,131.31},{37.48,85.60},{62.95,110.14},
  {63.03,105.04},{10.10,51.57},{55.89,97.16},{16.20,67.89},
  {14.11,38.98},{34.82,80.05},{43.53,87.53},{81.52,149.98},
  {65.19,127.61},{13.80,43.24},{62.56,95.92},{32.09,68.79},
  {24.35,52.32},{ 8.52,40.70},{83.94,140.84},{76.46,117.49},
  { 9.96,43.44},{90.95,133.38},{29.78,70.77},{15.32,39.57},
  {80.51,130.61},{73.15,117.93},{10.85,52.82},{67.84,108.04},
  {84.76,131.77},{37.11,74.72},{59.02,110.81},{83.26,138.42},
  {44.73,104.58},{95.54,150.49},{60.96,85.42},{70.72,110.25},
  {38.20,77.21},{80.19,123.35},{23.75,56.10},{36.83,91.49}
};

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;
}
//error calc func
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 func
__global__ void d_rms_error(double *m, double *c, double *error_sum_arr, point_t *d_data) {
/*
Calculate the current index by using:
- The thread id
- The block id
- The number of threads per block
*/
int i = threadIdx.x + blockIdx.x * blockDim.x;
//sum error stored in array
error_sum_arr[i] = d_residual_error(d_data[i].x, d_data[i].y, *m, *c);
}
//time difffernce
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);
}
//main funcation
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};
//time start
struct timespec start, finish;
long long int time_elapsed;
clock_gettime(CLOCK_MONOTONIC, &start);
hipError_t error;
//variables for device func
double *d_dm;
double *d_dc;
double *d_error_sum_arr;
point_t *d_data;
be = rms_error(bm, bc);
//allocating memory in device using CUDA malloc
error = hipMalloc(&d_dm, (sizeof(double) * 8));
if(error){
fprintf(stderr, "hipMalloc on d_dm returned %d %s\n", error,
hipGetErrorString(error));
exit(1);
}
//allocating memory in device using CUDA malloc
error = hipMalloc(&d_dc, (sizeof(double) * 8));
if(error){
fprintf(stderr, "hipMalloc on d_dc returned %d %s\n", error,
hipGetErrorString(error));
exit(1);
}
//allocating memory for d_error_sum_arr
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);
}
//allocating 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);
}
//copying memory host ti device
error = hipMemcpy(d_dm, dm, (sizeof(double) * 8), hipMemcpyHostToDevice);
if(error){
fprintf(stderr, "hipMemcpy to d_dm returned %d %s\n", error,
hipGetErrorString(error));
}
//copying memory host to device
error = hipMemcpy(d_dc, dc, (sizeof(double) * 8), hipMemcpyHostToDevice);
if(error){
fprintf(stderr, "hipMemcpy to d_dc returned %d %s\n", error,
hipGetErrorString(error));
}
//copying memory host to device
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;
}
}
//clearing memory
error = hipFree(d_dm);
if(error){
fprintf(stderr, "hipFree on d_dm returned %d %s\n", error,
hipGetErrorString(error));
exit(1);
}
error = hipFree(d_dc);
if(error){
fprintf(stderr, "hipFree on d_dc returned %d %s\n", error,
hipGetErrorString(error));
exit(1);
}
error = hipFree(d_data);
if(error){
fprintf(stderr, "hipFree on d_data returned %d %s\n", error,
hipGetErrorString(error));
exit(1);
}
error = hipFree(d_error_sum_arr);
if(error){
fprintf(stderr, "hipFree on d_error_sum_arr returned %d %s\n", error,
hipGetErrorString(error));
exit(1);
}
//freee memory complete
printf("minimum m,c is %lf,%lf with error %lf\n", bm, bc, be);
//geting time after printing m c with error
clock_gettime(CLOCK_MONOTONIC, &finish);
time_difference(&start, &finish, &time_elapsed);
printf("Time elapsed was %lldns or %0.9lfs\n", time_elapsed,
(time_elapsed/1.0e9));
return 0;
}



	.text
	.file	"linearcuda.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	0x4055000000000000              # double 84
	.quad	0x4063cae147ae147b              # double 158.34
	.quad	0x40506147ae147ae1              # double 65.519999999999996
	.quad	0x405baae147ae147b              # double 110.67
	.quad	0x40557a3d70a3d70a              # double 85.909999999999997
	.quad	0x4060c3851eb851ec              # double 134.11000000000001
	.quad	0x40535eb851eb851f              # double 77.480000000000003
	.quad	0x406102e147ae147b              # double 136.09
	.quad	0x40524ae147ae147b              # double 73.170000000000001
	.quad	0x4061051eb851eb85              # double 136.16
	.quad	0x4050d9999999999a              # double 67.400000000000006
	.quad	0x405b4ccccccccccd              # double 109.2
	.quad	0x4052df5c28f5c28f              # double 75.489999999999994
	.quad	0x405fb9999999999a              # double 126.90000000000001
	.quad	0x4053766666666666              # double 77.849999999999994
	.quad	0x405caae147ae147b              # double 114.67
	.quad	0x4053d00000000000              # double 79.25
	.quad	0x406281eb851eb852              # double 148.06
	.quad	0x405393d70a3d70a4              # double 78.310000000000002
	.quad	0x405e6eb851eb851f              # double 121.73
	.quad	0x4051070a3d70a3d7              # double 68.109999999999999
	.quad	0x405ecae147ae147b              # double 123.17
	.quad	0x40507eb851eb851f              # double 65.980000000000004
	.quad	0x405de33333333333              # double 119.55
	.quad	0x40530ae147ae147b              # double 76.170000000000001
	.quad	0x40608851eb851eb8              # double 132.25999999999999
	.quad	0x40051eb851eb851f              # double 2.6400000000000001
	.quad	0x40432a3d70a3d70a              # double 38.329999999999998
	.quad	0x40581851eb851eb8              # double 96.379999999999995
	.quad	0x4064db3333333333              # double 166.84999999999999
	.quad	0x405588f5c28f5c29              # double 86.14
	.quad	0x406095c28f5c28f6              # double 132.68000000000001
	.quad	0x404ec51eb851eb85              # double 61.539999999999999
	.quad	0x4058347ae147ae14              # double 96.819999999999993
	.quad	0x4042dc28f5c28f5c              # double 37.719999999999999
	.quad	0x4058847ae147ae14              # double 98.069999999999993
	.quad	0x4042d9999999999a              # double 37.700000000000003
	.quad	0x405433d70a3d70a4              # double 80.810000000000002
	.quad	0x404023d70a3d70a4              # double 32.280000000000001
	.quad	0x4059028f5c28f5c3              # double 100.04000000000001
	.quad	0x400d47ae147ae148              # double 3.6600000000000001
	.quad	0x4037f0a3d70a3d71              # double 23.940000000000001
	.quad	0x401dd70a3d70a3d7              # double 7.46
	.quad	0x404a6b851eb851ec              # double 52.840000000000003
	.quad	0x40421d70a3d70a3d              # double 36.229999999999997
	.quad	0x4057d3d70a3d70a4              # double 95.310000000000002
	.quad	0x4036570a3d70a3d7              # double 22.34
	.quad	0x40515eb851eb851f              # double 69.480000000000004
	.quad	0x4051fd70a3d70a3d              # double 71.959999999999994
	.quad	0x405cea3d70a3d70a              # double 115.66
	.quad	0x40559e147ae147ae              # double 86.469999999999999
	.quad	0x40615c28f5c28f5c              # double 138.88
	.quad	0x40573ae147ae147b              # double 92.920000000000001
	.quad	0x40623a3d70a3d70a              # double 145.81999999999999
	.quad	0x40433d70a3d70a3d              # double 38.479999999999997
	.quad	0x40549d70a3d70a3d              # double 82.459999999999993
	.quad	0x404619999999999a              # double 44.200000000000003
	.quad	0x405767ae147ae148              # double 93.620000000000005
	.quad	0x40350ccccccccccd              # double 21.050000000000001
	.quad	0x4048accccccccccd              # double 49.350000000000001
	.quad	0x4027b851eb851eb8              # double 11.859999999999999
	.quad	0x40410e147ae147ae              # double 34.109999999999999
	.quad	0x40472f5c28f5c28f              # double 46.369999999999997
	.quad	0x4058b51eb851eb85              # double 98.829999999999998
	.quad	0x4056c66666666666              # double 91.099999999999994
	.quad	0x4062e0a3d70a3d71              # double 151.02000000000001
	.quad	0x4048d5c28f5c28f6              # double 49.670000000000002
	.quad	0x4058ed70a3d70a3d              # double 99.709999999999993
	.quad	0x40574b851eb851ec              # double 93.180000000000007
	.quad	0x4063566666666666              # double 154.69999999999999
	.quad	0x403d5c28f5c28f5c              # double 29.359999999999999
	.quad	0x405283d70a3d70a4              # double 74.060000000000002
	.quad	0x40588eb851eb851f              # double 98.230000000000003
	.quad	0x406426b851eb851f              # double 161.21000000000001
	.quad	0x4026f5c28f5c28f6              # double 11.48
	.quad	0x4042b0a3d70a3d71              # double 37.380000000000003
	.quad	0x405308f5c28f5c29              # double 76.14
	.quad	0x4060d1999999999a              # double 134.55000000000001
	.quad	0x4029a3d70a3d70a4              # double 12.82
	.quad	0x40456f5c28f5c28f              # double 42.869999999999997
	.quad	0x4044d33333333333              # double 41.649999999999999
	.quad	0x405248f5c28f5c29              # double 73.14
	.quad	0x4056b7ae147ae148              # double 90.870000000000005
	.quad	0x4062d23d70a3d70a              # double 150.56999999999999
	.quad	0x403411eb851eb852              # double 20.07
	.quad	0x404e228f5c28f5c3              # double 60.270000000000003
	.quad	0x4030800000000000              # double 16.5
	.quad	0x404a451eb851eb85              # double 52.539999999999999
	.quad	0x402aae147ae147ae              # double 13.34
	.quad	0x4041251eb851eb85              # double 34.289999999999999
	.quad	0x405519999999999a              # double 84.400000000000006
	.quad	0x4060ee147ae147ae              # double 135.44
	.quad	0x40270a3d70a3d70a              # double 11.52
	.quad	0x404de8f5c28f5c29              # double 59.82
	.quad	0x403d5eb851eb851f              # double 29.370000000000001
	.quad	0x4047b1eb851eb852              # double 47.390000000000001
	.quad	0x4058b147ae147ae1              # double 98.769999999999996
	.quad	0x40674c28f5c28f5c              # double 186.38
	.quad	0x4042e147ae147ae1              # double 37.759999999999998
	.quad	0x40568ccccccccccd              # double 90.200000000000002
	.quad	0x4051b0a3d70a3d71              # double 70.760000000000005
	.quad	0x405e2b851eb851ec              # double 120.68000000000001
	.quad	0x405321eb851eb852              # double 76.530000000000001
	.quad	0x405f1ccccccccccd              # double 124.45
	.quad	0x404a9851eb851eb8              # double 53.189999999999998
	.quad	0x4054d47ae147ae14              # double 83.319999999999993
	.quad	0x4045b0a3d70a3d71              # double 43.380000000000003
	.quad	0x405517ae147ae148              # double 84.370000000000005
	.quad	0x40382b851eb851ec              # double 24.170000000000002
	.quad	0x404b31eb851eb852              # double 54.390000000000001
	.quad	0x40415d70a3d70a3d              # double 34.729999999999997
	.quad	0x4052de147ae147ae              # double 75.469999999999999
	.quad	0x40485eb851eb851f              # double 48.740000000000002
	.quad	0x4056270a3d70a3d7              # double 88.609999999999999
	.quad	0x40569a3d70a3d70a              # double 90.409999999999997
	.quad	0x4061251eb851eb85              # double 137.16
	.quad	0x4051eae147ae147b              # double 71.670000000000002
	.quad	0x405d1ae147ae147b              # double 116.42
	.quad	0x4040c28f5c28f5c3              # double 33.520000000000003
	.quad	0x4052547ae147ae14              # double 73.319999999999993
	.quad	0x4056447ae147ae14              # double 89.069999999999993
	.quad	0x4062e147ae147ae1              # double 151.03999999999999
	.quad	0x4058e7ae147ae148              # double 99.620000000000005
	.quad	0x4063b23d70a3d70a              # double 157.56999999999999
	.quad	0x40183d70a3d70a3d              # double 6.0599999999999996
	.quad	0x4037c00000000000              # double 23.75
	.quad	0x4023c28f5c28f5c3              # double 9.8800000000000007
	.quad	0x4044bd70a3d70a3d              # double 41.479999999999997
	.quad	0x4042b33333333333              # double 37.399999999999999
	.quad	0x405607ae147ae148              # double 88.120000000000005
	.quad	0x401399999999999a              # double 4.9000000000000004
	.quad	0x403c35c28f5c28f6              # double 28.210000000000001
	.quad	0x404dd33333333333              # double 59.649999999999999
	.quad	0x4057651eb851eb85              # double 93.579999999999998
	.quad	0x405650a3d70a3d71              # double 89.260000000000005
	.quad	0x406209999999999a              # double 144.30000000000001
	.quad	0x405407ae147ae148              # double 80.120000000000005
	.quad	0x405f770a3d70a3d7              # double 125.86
	.quad	0x404bd70a3d70a3d7              # double 55.68
	.quad	0x405b77ae147ae148              # double 109.87
	.quad	0x401a851eb851eb85              # double 6.6299999999999999
	.quad	0x403dd1eb851eb852              # double 29.82
	.quad	0x40450147ae147ae1              # double 42.009999999999998
	.quad	0x4054a47ae147ae14              # double 82.569999999999993
	.quad	0x403c800000000000              # double 28.5
	.quad	0x404d4f5c28f5c28f              # double 58.619999999999997
	.quad	0x405815c28f5c28f6              # double 96.340000000000003
	.quad	0x4062ff5c28f5c28f              # double 151.97999999999999
	.quad	0x404d3d70a3d70a3d              # double 58.479999999999997
	.quad	0x4055aeb851eb851f              # double 86.730000000000003
	.quad	0x40226b851eb851ec              # double 9.2100000000000008
	.quad	0x4048f70a3d70a3d7              # double 49.93
	.quad	0x4046a147ae147ae1              # double 45.259999999999998
	.quad	0x4056f8f5c28f5c29              # double 91.89
	.quad	0x404eb9999999999a              # double 61.450000000000003
	.quad	0x40602d70a3d70a3d              # double 129.41999999999999
	.quad	0x40500a3d70a3d70a              # double 64.159999999999997
	.quad	0x405eb66666666666              # double 122.84999999999999
	.quad	0x4049147ae147ae14              # double 50.159999999999997
	.quad	0x405ba70a3d70a3d7              # double 110.61
	.quad	0x405149999999999a              # double 69.150000000000006
	.quad	0x405d5a3d70a3d70a              # double 117.41
	.quad	0x4016d70a3d70a3d7              # double 5.71
	.quad	0x4048628f5c28f5c3              # double 48.770000000000003
	.quad	0x4057a9999999999a              # double 94.650000000000005
	.quad	0x406367ae147ae148              # double 155.24000000000001
	.quad	0x404a8f5c28f5c28f              # double 53.119999999999997
	.quad	0x40579ae147ae147b              # double 94.420000000000001
	.quad	0x4030f0a3d70a3d71              # double 16.940000000000001
	.quad	0x404fcccccccccccd              # double 63.600000000000001
	.quad	0x402c570a3d70a3d7              # double 14.17
	.quad	0x404b733333333333              # double 54.899999999999999
	.quad	0x4049c51eb851eb85              # double 51.539999999999999
	.quad	0x405cc0a3d70a3d71              # double 115.01000000000001
	.quad	0x40439c28f5c28f5c              # double 39.219999999999999
	.quad	0x4053d1eb851eb852              # double 79.280000000000001
	.quad	0x4043ce147ae147ae              # double 39.609999999999999
	.quad	0x40539d70a3d70a3d              # double 78.459999999999993
	.quad	0x404b7c28f5c28f5c              # double 54.969999999999999
	.quad	0x405de0a3d70a3d71              # double 119.51000000000001
	.quad	0x40272e147ae147ae              # double 11.59
	.quad	0x404250a3d70a3d71              # double 36.630000000000003
	.quad	0x40564d70a3d70a3d              # double 89.209999999999993
	.quad	0x406337ae147ae148              # double 153.74000000000001
	.quad	0x405205c28f5c28f6              # double 72.090000000000003
	.quad	0x4060de147ae147ae              # double 134.94
	.quad	0x40507c28f5c28f5c              # double 65.939999999999998
	.quad	0x405b2ae147ae147b              # double 108.67
	.quad	0x40393d70a3d70a3d              # double 25.239999999999998
	.quad	0x4054de147ae147ae              # double 83.469999999999999
	.quad	0x404735c28f5c28f6              # double 46.420000000000002
	.quad	0x4058751eb851eb85              # double 97.829999999999998
	.quad	0x405700a3d70a3d71              # double 92.010000000000005
	.quad	0x4062d75c28f5c28f              # double 150.72999999999999
	.quad	0x4042feb851eb851f              # double 37.990000000000002
	.quad	0x40530d70a3d70a3d              # double 76.209999999999993
	.quad	0x4056428f5c28f5c3              # double 89.040000000000006
	.quad	0x4061c80000000000              # double 142.25
	.quad	0x4050151eb851eb85              # double 64.329999999999998
	.quad	0x405c3d70a3d70a3d              # double 112.95999999999999
	.quad	0x404aaf5c28f5c28f              # double 53.369999999999997
	.quad	0x405a866666666666              # double 106.09999999999999
	.quad	0x4057e1eb851eb852              # double 95.530000000000001
	.quad	0x4064a851eb851eb8              # double 165.25999999999999
	.quad	0x40432e147ae147ae              # double 38.359999999999999
	.quad	0x4056c28f5c28f5c3              # double 91.040000000000006
	.quad	0x4057433333333333              # double 93.049999999999997
	.quad	0x4061e8f5c28f5c29              # double 143.28
	.quad	0x403ca3d70a3d70a4              # double 28.640000000000001
	.quad	0x405129999999999a              # double 68.650000000000006
	.quad	0x40464f5c28f5c28f              # double 44.619999999999997
	.quad	0x4057c147ae147ae1              # double 95.019999999999996
	.quad	0x40468b851eb851ec              # double 45.090000000000003
	.quad	0x4053433333333333              # double 77.049999999999997
	.quad	0x4033c00000000000              # double 19.75
	.quad	0x4045c00000000000              # double 43.5
	.quad	0x4034e8f5c28f5c29              # double 20.91
	.quad	0x404c55c28f5c28f6              # double 56.670000000000002
	.quad	0x404b600000000000              # double 54.75
	.quad	0x40588b851eb851ec              # double 98.180000000000007
	.quad	0x404d0ccccccccccd              # double 58.100000000000001
	.quad	0x405a3ae147ae147b              # double 104.92
	.quad	0x40533ae147ae147b              # double 76.920000000000001
	.quad	0x405c128f5c28f5c3              # double 112.29000000000001
	.quad	0x4057e28f5c28f5c3              # double 95.540000000000006
	.quad	0x4060d66666666666              # double 134.69999999999999
	.quad	0x40325eb851eb851f              # double 18.370000000000001
	.quad	0x404e0147ae147ae1              # double 60.009999999999998
	.quad	0x4041347ae147ae14              # double 34.409999999999997
	.quad	0x40500147ae147ae1              # double 64.019999999999996
	.quad	0x40527851eb851eb8              # double 73.879999999999995
	.quad	0x405cc3d70a3d70a4              # double 115.06
	.quad	0x4008f5c28f5c28f6              # double 3.1200000000000001
	.quad	0x403dc7ae147ae148              # double 29.780000000000001
	.quad	0x4055f51eb851eb85              # double 87.829999999999998
	.quad	0x406168f5c28f5c29              # double 139.28
	.quad	0x40499eb851eb851f              # double 51.240000000000002
	.quad	0x40592ccccccccccd              # double 100.7
	.quad	0x404d8b851eb851ec              # double 59.090000000000003
	.quad	0x4057533333333333              # double 93.299999999999997
	.quad	0x4031bae147ae147b              # double 17.73
	.quad	0x4042e51eb851eb85              # double 37.789999999999999
	.quad	0x404a9eb851eb851f              # double 53.240000000000002
	.quad	0x405f4c28f5c28f5c              # double 125.19
	.quad	0x404bfd70a3d70a3d              # double 55.979999999999997
	.quad	0x4057cb851eb851ec              # double 95.180000000000007
	.quad	0x4057647ae147ae14              # double 93.569999999999993
	.quad	0x406429eb851eb852              # double 161.31
	.quad	0x40578c28f5c28f5c              # double 94.189999999999998
	.quad	0x40639147ae147ae1              # double 156.53999999999999
	.quad	0x40313ae147ae147b              # double 17.23
	.quad	0x404ed5c28f5c28f6              # double 61.670000000000002
	.quad	0x40552e147ae147ae              # double 84.719999999999999
	.quad	0x405fb8f5c28f5c29              # double 126.89
	.quad	0x40578d70a3d70a3d              # double 94.209999999999993
	.quad	0x4065abd70a3d70a4              # double 173.37
	.quad	0x402cb851eb851eb8              # double 14.359999999999999
	.quad	0x40496147ae147ae1              # double 50.759999999999998
	.quad	0x4055aeb851eb851f              # double 86.730000000000003
	.quad	0x40648ccccccccccd              # double 164.40000000000001
	.quad	0x4026eb851eb851ec              # double 11.460000000000001
	.quad	0x404950a3d70a3d71              # double 50.630000000000003
	.quad	0x405497ae147ae148              # double 82.370000000000005
	.quad	0x406181eb851eb852              # double 140.06
	.quad	0x4056de147ae147ae              # double 91.469999999999998
	.quad	0x4062a0a3d70a3d71              # double 149.02000000000001
	.quad	0x40539b851eb851ec              # double 78.430000000000007
	.quad	0x406179eb851eb852              # double 139.81
	.quad	0x40514851eb851eb8              # double 69.129999999999995
	.quad	0x405b933333333333              # double 110.3
	.quad	0x404b970a3d70a3d7              # double 55.18
	.quad	0x4058ac28f5c28f5c              # double 98.689999999999998
	.quad	0x4053428f5c28f5c3              # double 77.040000000000006
	.quad	0x4060bae147ae147b              # double 133.84
	.quad	0x4056628f5c28f5c3              # double 89.540000000000006
	.quad	0x406303d70a3d70a4              # double 152.12
	.quad	0x4044fc28f5c28f5c              # double 41.969999999999999
	.quad	0x405731eb851eb852              # double 92.780000000000001
	.quad	0x4040a66666666666              # double 33.299999999999997
	.quad	0x404b50a3d70a3d71              # double 54.630000000000003
	.quad	0x4050cf5c28f5c28f              # double 67.239999999999995
	.quad	0x405e3851eb851eb8              # double 120.88
	.quad	0x4058d1eb851eb852              # double 99.280000000000001
	.quad	0x4064f33333333333              # double 167.59999999999999
	.quad	0x402f70a3d70a3d71              # double 15.720000000000001
	.quad	0x404659999999999a              # double 44.700000000000003
	.quad	0x3fffd70a3d70a3d7              # double 1.99
	.quad	0x403eb0a3d70a3d71              # double 30.690000000000001
	.quad	0x4036c00000000000              # double 22.75
	.quad	0x404fcb851eb851ec              # double 63.590000000000003
	.quad	0x401eae147ae147ae              # double 7.6699999999999999
	.quad	0x4041bae147ae147b              # double 35.460000000000001
	.quad	0x4040d0a3d70a3d71              # double 33.630000000000003
	.quad	0x40538851eb851eb8              # double 78.129999999999995
	.quad	0x4010b851eb851eb8              # double 4.1799999999999997
	.quad	0x4041651eb851eb85              # double 34.789999999999999
	.quad	0x404aef5c28f5c28f              # double 53.869999999999997
	.quad	0x4055547ae147ae14              # double 85.319999999999993
	.quad	0x404963d70a3d70a4              # double 50.780000000000001
	.quad	0x405d37ae147ae148              # double 116.87
	.quad	0x404dc00000000000              # double 59.5
	.quad	0x405b8f5c28f5c28f              # double 110.23999999999999
	.quad	0x4055933333333333              # double 86.299999999999997
	.quad	0x40600147ae147ae1              # double 128.03999999999999
	.quad	0x3ff947ae147ae148              # double 1.5800000000000001
	.quad	0x404030a3d70a3d71              # double 32.380000000000003
	.quad	0x404e5eb851eb851f              # double 60.740000000000002
	.quad	0x405cc28f5c28f5c3              # double 115.04000000000001
	.quad	0x4044deb851eb851f              # double 41.740000000000002
	.quad	0x405410a3d70a3d71              # double 80.260000000000005
	.quad	0x4047a00000000000              # double 47.25
	.quad	0x4055c28f5c28f5c3              # double 87.040000000000006
	.quad	0x4019eb851eb851ec              # double 6.4800000000000004
	.quad	0x4048066666666666              # double 48.049999999999997
	.quad	0x4015851eb851eb85              # double 5.3799999999999999
	.quad	0x4044547ae147ae14              # double 40.659999999999997
	.quad	0x40462f5c28f5c28f              # double 44.369999999999997
	.quad	0x40582851eb851eb8              # double 96.629999999999995
	.quad	0x404a0b851eb851ec              # double 52.090000000000003
	.quad	0x405a9f5c28f5c28f              # double 106.48999999999999
	.quad	0x40043d70a3d70a3d              # double 2.5299999999999998
	.quad	0x4034266666666666              # double 20.149999999999999
	.quad	0x403deb851eb851ec              # double 29.920000000000002
	.quad	0x4052cd70a3d70a3d              # double 75.209999999999993
	.quad	0x40500851eb851eb8              # double 64.129999999999995
	.quad	0x405c4b851eb851ec              # double 113.18000000000001
	.quad	0x4048ef5c28f5c28f              # double 49.869999999999997
	.quad	0x4057b147ae147ae1              # double 94.769999999999996
	.quad	0x4056466666666666              # double 89.099999999999994
	.quad	0x406163851eb851ec              # double 139.11000000000001
	.quad	0x405013d70a3d70a4              # double 64.310000000000002
	.quad	0x405e9f5c28f5c28f              # double 122.48999999999999
	.quad	0x40535f5c28f5c28f              # double 77.489999999999994
	.quad	0x4062e6147ae147ae              # double 151.19
	.quad	0x4047e147ae147ae1              # double 47.759999999999998
	.quad	0x4057000000000000              # double 92
	.quad	0x40418ccccccccccd              # double 35.100000000000001
	.quad	0x40551147ae147ae1              # double 84.269999999999996
	.quad	0x404d8147ae147ae1              # double 59.009999999999998
	.quad	0x405781eb851eb852              # double 94.030000000000001
	.quad	0x403eb851eb851eb8              # double 30.719999999999999
	.quad	0x4050ba3d70a3d70a              # double 66.909999999999997
	.quad	0x3fe75c28f5c28f5c              # double 0.72999999999999998
	.quad	0x403fa3d70a3d70a4              # double 31.640000000000001
	.quad	0x4055ceb851eb851f              # double 87.230000000000003
	.quad	0x40616570a3d70a3d              # double 139.16999999999999
	.quad	0x40576d70a3d70a3d              # double 93.709999999999993
	.quad	0x4061eccccccccccd              # double 143.40000000000001
	.quad	0x4058c5c28f5c28f6              # double 99.090000000000003
	.quad	0x4062d3851eb851ec              # double 150.61000000000001
	.quad	0x40489eb851eb851f              # double 49.240000000000002
	.quad	0x4055933333333333              # double 86.299999999999997
	.quad	0x405183d70a3d70a4              # double 70.060000000000002
	.quad	0x405edeb851eb851f              # double 123.48
	.quad	0x4057b28f5c28f5c3              # double 94.790000000000006
	.quad	0x406424cccccccccd              # double 161.15000000000001
	.quad	0x405061eb851eb852              # double 65.530000000000001
	.quad	0x405ba7ae147ae148              # double 110.62
	.quad	0x4052447ae147ae14              # double 73.069999999999993
	.quad	0x405e3a3d70a3d70a              # double 120.91
	.quad	0x404d51eb851eb852              # double 58.640000000000001
	.quad	0x405b7eb851eb851f              # double 109.98
	.quad	0x405743d70a3d70a4              # double 93.060000000000002
	.quad	0x406323851eb851ec              # double 153.11000000000001
	.quad	0x4024a8f5c28f5c29              # double 10.33
	.quad	0x404a28f5c28f5c29              # double 52.32
	.quad	0x404ad47ae147ae14              # double 53.659999999999997
	.quad	0x4058f7ae147ae148              # double 99.870000000000005
	.quad	0x4053fb851eb851ec              # double 79.930000000000007
	.quad	0x4060770a3d70a3d7              # double 131.72
	.quad	0x40571e147ae147ae              # double 92.469999999999998
	.quad	0x4062aae147ae147b              # double 149.34
	.quad	0x405450a3d70a3d71              # double 81.260000000000005
	.quad	0x4060c147ae147ae1              # double 134.03999999999999
	.quad	0x40536c28f5c28f5c              # double 77.689999999999998
	.quad	0x405eb00000000000              # double 122.75
	.quad	0x3fcae147ae147ae1              # double 0.20999999999999999
	.quad	0x4042e8f5c28f5c29              # double 37.82
	.quad	0x4016f5c28f5c28f6              # double 5.7400000000000002
	.quad	0x4040ae147ae147ae              # double 33.359999999999999
	.quad	0x40571851eb851eb8              # double 92.379999999999995
	.quad	0x4061775c28f5c28f              # double 139.72999999999999
	.quad	0x40274ccccccccccd              # double 11.65
	.quad	0x404cb1eb851eb852              # double 57.390000000000001
	.quad	0x4052d0a3d70a3d71              # double 75.260000000000005
	.quad	0x406239eb851eb852              # double 145.81
	.quad	0x40572851eb851eb8              # double 92.629999999999995
	.quad	0x40616ae147ae147b              # double 139.34
	.quad	0x405255c28f5c28f6              # double 73.340000000000003
	.quad	0x4062647ae147ae14              # double 147.13999999999999
	.quad	0x404b3eb851eb851f              # double 54.490000000000002
	.quad	0x405a647ae147ae14              # double 105.56999999999999
	.quad	0x403928f5c28f5c29              # double 25.16
	.quad	0x404cfeb851eb851f              # double 57.990000000000002
	.quad	0x402feb851eb851ec              # double 15.960000000000001
	.quad	0x404c90a3d70a3d71              # double 57.130000000000003
	.quad	0x404e83d70a3d70a4              # double 61.030000000000001
	.quad	0x405a3ae147ae147b              # double 104.92
	.quad	0x404887ae147ae148              # double 49.060000000000002
	.quad	0x4056cccccccccccd              # double 91.200000000000002
	.quad	0x4047400000000000              # double 46.5
	.quad	0x40539e147ae147ae              # double 78.469999999999999
	.quad	0x4054d66666666666              # double 83.349999999999994
	.quad	0x40616b851eb851ec              # double 139.36000000000001
	.quad	0x4052ec28f5c28f5c              # double 75.689999999999998
	.quad	0x405aef5c28f5c28f              # double 107.73999999999999
	.quad	0x40469c28f5c28f5c              # double 45.219999999999999
	.quad	0x4056f7ae147ae148              # double 91.870000000000005
	.quad	0x400bae147ae147ae              # double 3.46
	.quad	0x4047eb851eb851ec              # double 47.840000000000003
	.quad	0x40568ae147ae147b              # double 90.170000000000001
	.quad	0x4063680000000000              # double 155.25
	.quad	0x404459999999999a              # double 40.700000000000003
	.quad	0x404d3ae147ae147b              # double 58.460000000000001
	.quad	0x404568f5c28f5c29              # double 42.82
	.quad	0x4058566666666666              # double 97.349999999999994
	.quad	0x4048ab851eb851ec              # double 49.340000000000003
	.quad	0x40589a3d70a3d70a              # double 98.409999999999996
	.quad	0x405678f5c28f5c29              # double 89.89
	.quad	0x4061b9eb851eb852              # double 141.81
	.quad	0x40456147ae147ae1              # double 42.759999999999998
	.quad	0x405531eb851eb852              # double 84.780000000000001
	.quad	0x404155c28f5c28f6              # double 34.670000000000002
	.quad	0x40535851eb851eb8              # double 77.379999999999995
	.quad	0x404d28f5c28f5c29              # double 58.32
	.quad	0x4059628f5c28f5c3              # double 101.54000000000001
	.quad	0x402c000000000000              # double 14
	.quad	0x4043bc28f5c28f5c              # double 39.469999999999999
	.quad	0x405561eb851eb852              # double 85.530000000000001
	.quad	0x40620d1eb851eb85              # double 144.41
	.quad	0x3fc999999999999a              # double 0.20000000000000001
	.quad	0x404323d70a3d70a4              # double 38.280000000000001
	.quad	0x4055a00000000000              # double 86.5
	.quad	0x405f8ae147ae147b              # double 126.17
	.quad	0x4041851eb851eb85              # double 35.039999999999999
	.quad	0x40509a3d70a3d70a              # double 66.409999999999997
	.quad	0x404839999999999a              # double 48.450000000000003
	.quad	0x4059600000000000              # double 101.5
	.quad	0x4054f51eb851eb85              # double 83.829999999999998
	.quad	0x406133d70a3d70a4              # double 137.62
	.quad	0x4050e1eb851eb852              # double 67.530000000000001
	.quad	0x405a75c28f5c28f6              # double 105.84
	.quad	0x40205c28f5c28f5c              # double 8.1799999999999997
	.quad	0x404235c28f5c28f6              # double 36.420000000000002
	.quad	0x404ae28f5c28f5c3              # double 53.770000000000003
	.quad	0x4057f851eb851eb8              # double 95.879999999999995
	.quad	0x4052728f5c28f5c3              # double 73.790000000000006
	.quad	0x40602947ae147ae1              # double 129.28999999999999
	.quad	0x404a99999999999a              # double 53.200000000000003
	.quad	0x4057666666666666              # double 93.599999999999994
	.quad	0x405057ae147ae148              # double 65.370000000000005
	.quad	0x405bd33333333333              # double 111.3
	.quad	0x405871eb851eb852              # double 97.780000000000001
	.quad	0x4064f75c28f5c28f              # double 167.72999999999999
	.quad	0x4036fae147ae147b              # double 22.98
	.quad	0x404b8b851eb851ec              # double 55.090000000000003
	.quad	0x40544b851eb851ec              # double 81.180000000000007
	.quad	0x4061b28f5c28f5c3              # double 141.58000000000001
	.quad	0x4042cccccccccccd              # double 37.600000000000001
	.quad	0x40571eb851eb851f              # double 92.480000000000003
	.quad	0x405530a3d70a3d71              # double 84.760000000000005
	.quad	0x4061e3851eb851ec              # double 143.11000000000001
	.quad	0x4036c28f5c28f5c3              # double 22.760000000000002
	.quad	0x4052451eb851eb85              # double 73.079999999999998
	.quad	0x4054af5c28f5c28f              # double 82.739999999999994
	.quad	0x405d3eb851eb851f              # double 116.98
	.quad	0x4019147ae147ae14              # double 6.2699999999999996
	.quad	0x404ab1eb851eb852              # double 53.390000000000001
	.quad	0x40416f5c28f5c28f              # double 34.869999999999997
	.quad	0x4051ea3d70a3d70a              # double 71.659999999999997
	.quad	0x4052cc28f5c28f5c              # double 75.189999999999998
	.quad	0x406079999999999a              # double 131.80000000000001
	.quad	0x405713d70a3d70a4              # double 92.310000000000002
	.quad	0x406304cccccccccd              # double 152.15000000000001
	.quad	0x40559a3d70a3d70a              # double 86.409999999999997
	.quad	0x4060966666666666              # double 132.69999999999999
	.quad	0x40587a3d70a3d70a              # double 97.909999999999996
	.quad	0x4060cd70a3d70a3d              # double 134.41999999999999
	.quad	0x4037e8f5c28f5c29              # double 23.91
	.quad	0x4050128f5c28f5c3              # double 64.290000000000006
	.quad	0x4043828f5c28f5c3              # double 39.020000000000003
	.quad	0x4054fae147ae147b              # double 83.920000000000001
	.quad	0x404b9d70a3d70a3d              # double 55.229999999999997
	.quad	0x405dde147ae147ae              # double 119.47
	.quad	0x4036b33333333333              # double 22.699999999999999
	.quad	0x40515c28f5c28f5c              # double 69.439999999999998
	.quad	0x4051033333333333              # double 68.049999999999997
	.quad	0x405d05c28f5c28f6              # double 116.09
	.quad	0x404e066666666666              # double 60.049999999999997
	.quad	0x405b8ccccccccccd              # double 110.2
	.quad	0x4045b5c28f5c28f6              # double 43.420000000000002
	.quad	0x4057ba3d70a3d70a              # double 94.909999999999996
	.quad	0x40170a3d70a3d70a              # double 5.7599999999999998
	.quad	0x40441851eb851eb8              # double 40.189999999999998
	.quad	0x3feb333333333333              # double 0.84999999999999998
	.quad	0x403b1c28f5c28f5c              # double 27.109999999999999
	.quad	0x4039deb851eb851f              # double 25.870000000000001
	.quad	0x404b27ae147ae148              # double 54.310000000000002
	.quad	0x40583c28f5c28f5c              # double 96.939999999999998
	.quad	0x40625c28f5c28f5c              # double 146.88
	.quad	0x403a451eb851eb85              # double 26.27
	.quad	0x40523ccccccccccd              # double 72.950000000000003
	.quad	0x4025e147ae147ae1              # double 10.94
	.quad	0x4046b0a3d70a3d71              # double 45.380000000000003
	.quad	0x40502ae147ae147b              # double 64.670000000000002
	.quad	0x405e1ccccccccccd              # double 120.45
	.quad	0x40262e147ae147ae              # double 11.09
	.quad	0x4050a5c28f5c28f6              # double 66.590000000000003
	.quad	0x403a75c28f5c28f6              # double 26.460000000000001
	.quad	0x40523a3d70a3d70a              # double 72.909999999999997
	.quad	0x4032947ae147ae14              # double 18.579999999999998
	.quad	0x404a347ae147ae14              # double 52.409999999999997
	.quad	0x40543e147ae147ae              # double 80.969999999999999
	.quad	0x4060c00000000000              # double 134
	.quad	0x3fd5c28f5c28f5c3              # double 0.34000000000000002
	.quad	0x403bd47ae147ae14              # double 27.829999999999998
	.quad	0x404090a3d70a3d71              # double 33.130000000000003
	.quad	0x40517d70a3d70a3d              # double 69.959999999999994
	.quad	0x4048f33333333333              # double 49.899999999999999
	.quad	0x4056ce147ae147ae              # double 91.219999999999999
	.quad	0x4032cccccccccccd              # double 18.800000000000001
	.quad	0x4050147ae147ae14              # double 64.319999999999993
	.quad	0x4041f47ae147ae14              # double 35.909999999999997
	.quad	0x40540f5c28f5c28f              # double 80.239999999999994
	.quad	0x403c733333333333              # double 28.449999999999999
	.quad	0x4048866666666666              # double 49.049999999999997
	.quad	0x405000a3d70a3d71              # double 64.010000000000005
	.quad	0x405dc28f5c28f5c3              # double 119.04000000000001
	.quad	0x401247ae147ae148              # double 4.5700000000000003
	.quad	0x4031051eb851eb85              # double 17.02
	.quad	0x40574a3d70a3d70a              # double 93.159999999999996
	.quad	0x4063a75c28f5c28f              # double 157.22999999999999
	.quad	0x4053a1eb851eb852              # double 78.530000000000001
	.quad	0x40608dc28f5c28f6              # double 132.43000000000001
	.quad	0x40494ccccccccccd              # double 50.600000000000001
	.quad	0x4058466666666666              # double 97.099999999999994
	.quad	0x4038d1eb851eb852              # double 24.82
	.quad	0x404930a3d70a3d71              # double 50.380000000000003
	.quad	0x40135c28f5c28f5c              # double 4.8399999999999999
	.quad	0x404810a3d70a3d71              # double 48.130000000000003
	.quad	0x4052c1eb851eb852              # double 75.030000000000001
	.quad	0x405f7147ae147ae1              # double 125.77
	.quad	0x4052ee147ae147ae              # double 75.719999999999999
	.quad	0x406159999999999a              # double 138.80000000000001
	.quad	0x404a4147ae147ae1              # double 52.509999999999998
	.quad	0x405c9ccccccccccd              # double 114.45
	.quad	0x403ec7ae147ae148              # double 30.780000000000001
	.quad	0x40522f5c28f5c28f              # double 72.739999999999995
	.quad	0x4032d9999999999a              # double 18.850000000000001
	.quad	0x4046c66666666666              # double 45.549999999999997
	.quad	0x40251eb851eb851f              # double 10.56
	.quad	0x4048b47ae147ae14              # double 49.409999999999997
	.quad	0x4018d70a3d70a3d7              # double 6.21
	.quad	0x404931eb851eb852              # double 50.390000000000001
	.quad	0x40207ae147ae147b              # double 8.2400000000000002
	.quad	0x40480f5c28f5c28f              # double 48.119999999999997
	.quad	0x4058a70a3d70a3d7              # double 98.609999999999999
	.quad	0x40636147ae147ae1              # double 155.03999999999999
	.quad	0x40504ae147ae147b              # double 65.170000000000002
	.quad	0x405ff70a3d70a3d7              # double 127.86
	.quad	0x4052728f5c28f5c3              # double 73.790000000000006
	.quad	0x405ffb851eb851ec              # double 127.93000000000001
	.quad	0x40111eb851eb851f              # double 4.2800000000000002
	.quad	0x403d8f5c28f5c28f              # double 29.559999999999999
	.quad	0x4058070a3d70a3d7              # double 96.109999999999999
	.quad	0x4062ee6666666666              # double 151.44999999999999
	.quad	0x405068f5c28f5c29              # double 65.640000000000001
	.quad	0x405cdb851eb851ec              # double 115.43000000000001
	.quad	0x4033f5c28f5c28f6              # double 19.960000000000001
	.quad	0x4044600000000000              # double 40.75
	.quad	0x404b133333333333              # double 54.149999999999999
	.quad	0x405af851eb851eb8              # double 107.88
	.quad	0x40524e147ae147ae              # double 73.219999999999999
	.quad	0x405e5147ae147ae1              # double 121.27
	.quad	0x403feb851eb851ec              # double 31.920000000000002
	.quad	0x404f1ae147ae147b              # double 62.210000000000001
	.quad	0x40571f5c28f5c28f              # double 92.489999999999994
	.quad	0x40613dc28f5c28f6              # double 137.93000000000001
	.quad	0x404727ae147ae148              # double 46.310000000000002
	.quad	0x40580a3d70a3d70a              # double 96.159999999999996
	.quad	0x40388ccccccccccd              # double 24.550000000000001
	.quad	0x4050fe147ae147ae              # double 67.969999999999999
	.quad	0x4048866666666666              # double 49.049999999999997
	.quad	0x4056fa3d70a3d70a              # double 91.909999999999996
	.quad	0x404bcf5c28f5c28f              # double 55.619999999999997
	.quad	0x405be28f5c28f5c3              # double 111.54000000000001
	.quad	0x405460a3d70a3d71              # double 81.510000000000005
	.quad	0x4062e4cccccccccd              # double 151.15000000000001
	.quad	0x403e59999999999a              # double 30.350000000000001
	.quad	0x4051bb851eb851ec              # double 70.930000000000007
	.quad	0x40561c28f5c28f5c              # double 88.439999999999998
	.quad	0x406251eb851eb852              # double 146.56
	.quad	0x404871eb851eb852              # double 48.890000000000001
	.quad	0x4058528f5c28f5c3              # double 97.290000000000006
	.quad	0x4025f0a3d70a3d71              # double 10.970000000000001
	.quad	0x4041f851eb851eb8              # double 35.939999999999998
	.quad	0x402da3d70a3d70a4              # double 14.82
	.quad	0x404c28f5c28f5c29              # double 56.32
	.quad	0x405169999999999a              # double 69.650000000000006
	.quad	0x405d47ae147ae148              # double 117.12
	.quad	0x403ea66666666666              # double 30.649999999999999
	.quad	0x405555c28f5c28f6              # double 85.340000000000003
	.quad	0x40570a3d70a3d70a              # double 92.159999999999996
	.quad	0x40624bd70a3d70a4              # double 146.37
	.quad	0x4030b5c28f5c28f6              # double 16.710000000000001
	.quad	0x4051ed70a3d70a3d              # double 71.709999999999994
	.quad	0x4050aae147ae147b              # double 66.670000000000002
	.quad	0x406066b851eb851f              # double 131.21000000000001
	.quad	0x40428e147ae147ae              # double 37.109999999999999
	.quad	0x405293d70a3d70a4              # double 74.310000000000002
	.quad	0x404dd70a3d70a3d7              # double 59.68
	.quad	0x405ba147ae147ae1              # double 110.52
	.quad	0x405348f5c28f5c29              # double 77.14
	.quad	0x405feb851eb851ec              # double 127.68000000000001
	.quad	0x4043f9999999999a              # double 39.950000000000003
	.quad	0x4053eae147ae147b              # double 79.670000000000001
	.quad	0x4036851eb851eb85              # double 22.52
	.quad	0x4056eae147ae147b              # double 91.670000000000001
	.quad	0x40240f5c28f5c28f              # double 10.029999999999999
	.quad	0x4046d33333333333              # double 45.649999999999999
	.quad	0x403f91eb851eb852              # double 31.57
	.quad	0x4052ee147ae147ae              # double 75.719999999999999
	.quad	0x4050570a3d70a3d7              # double 65.359999999999999
	.quad	0x406010f5c28f5c29              # double 128.53
	.quad	0x4054f70a3d70a3d7              # double 83.859999999999999
	.quad	0x406191eb851eb852              # double 140.56
	.quad	0x4044c51eb851eb85              # double 41.539999999999999
	.quad	0x4055533333333333              # double 85.299999999999997
	.quad	0x4019851eb851eb85              # double 6.3799999999999999
	.quad	0x403eee147ae147ae              # double 30.93
	.quad	0x405169999999999a              # double 69.650000000000006
	.quad	0x405eb3d70a3d70a4              # double 122.81
	.quad	0x401d147ae147ae14              # double 7.2699999999999996
	.quad	0x4046066666666666              # double 44.049999999999997
	.quad	0x4057a1eb851eb852              # double 94.530000000000001
	.quad	0x4062bdc28f5c28f6              # double 149.93000000000001
	.quad	0x40457c28f5c28f5c              # double 42.969999999999999
	.quad	0x4057f47ae147ae14              # double 95.819999999999993
	.quad	0x403f35c28f5c28f6              # double 31.210000000000001
	.quad	0x40506f5c28f5c28f              # double 65.739999999999995
	.quad	0x404c1ae147ae147b              # double 56.210000000000001
	.quad	0x40590f5c28f5c28f              # double 100.23999999999999
	.quad	0x400ae147ae147ae1              # double 3.3599999999999999
	.quad	0x4041af5c28f5c28f              # double 35.369999999999997
	.quad	0x40434ccccccccccd              # double 38.600000000000001
	.quad	0x40548d70a3d70a3d              # double 82.209999999999993
	.quad	0x40178f5c28f5c28f              # double 5.8899999999999997
	.quad	0x4047266666666666              # double 46.299999999999997
	.quad	0x404c9851eb851eb8              # double 57.189999999999998
	.quad	0x405a4851eb851eb8              # double 105.13
	.quad	0x4038b33333333333              # double 24.699999999999999
	.quad	0x404f651eb851eb85              # double 62.789999999999999
	.quad	0x40330f5c28f5c28f              # double 19.059999999999999
	.quad	0x404767ae147ae148              # double 46.810000000000002
	.quad	0x3f9eb851eb851eb8              # double 0.029999999999999999
	.quad	0x404439999999999a              # double 40.450000000000003
	.quad	0x404aa28f5c28f5c3              # double 53.270000000000003
	.quad	0x405893d70a3d70a4              # double 98.310000000000002
	.quad	0x404fc147ae147ae1              # double 63.509999999999998
	.quad	0x4057b33333333333              # double 94.799999999999997
	.quad	0x404e000000000000              # double 60
	.quad	0x405d766666666666              # double 117.84999999999999
	.quad	0x404bf1eb851eb852              # double 55.890000000000001
	.quad	0x405ceb851eb851ec              # double 115.68000000000001
	.quad	0x4047d70a3d70a3d7              # double 47.68
	.quad	0x4058af5c28f5c28f              # double 98.739999999999994
	.quad	0x401b000000000000              # double 6.75
	.quad	0x4048accccccccccd              # double 49.350000000000001
	.quad	0x40395eb851eb851f              # double 25.370000000000001
	.quad	0x4042600000000000              # double 36.75
	.quad	0x4018147ae147ae14              # double 6.0199999999999996
	.quad	0x403bf851eb851eb8              # double 27.969999999999999
	.quad	0x40406a3d70a3d70a              # double 32.829999999999998
	.quad	0x4051bc28f5c28f5c              # double 70.939999999999998
	.quad	0x4038147ae147ae14              # double 24.079999999999998
	.quad	0x404dc66666666666              # double 59.549999999999997
	.quad	0x3ff8000000000000              # double 1.5
	.quad	0x4044af5c28f5c28f              # double 41.369999999999997
	.quad	0x403423d70a3d70a4              # double 20.140000000000001
	.quad	0x404103d70a3d70a4              # double 34.030000000000001
	.quad	0x403d91eb851eb852              # double 29.57
	.quad	0x40522ae147ae147b              # double 72.670000000000002
	.quad	0x4050dccccccccccd              # double 67.450000000000003
	.quad	0x406037ae147ae148              # double 129.74000000000001
	.quad	0x4024bd70a3d70a3d              # double 10.369999999999999
	.quad	0x4051f851eb851eb8              # double 71.879999999999995
	.quad	0x4010000000000000              # double 4
	.quad	0x403c400000000000              # double 28.25
	.quad	0x4051a51eb851eb85              # double 70.579999999999998
	.quad	0x405e6eb851eb851f              # double 121.73
	.quad	0x405243d70a3d70a4              # double 73.060000000000002
	.quad	0x406266b851eb851f              # double 147.21000000000001
	.quad	0x400970a3d70a3d71              # double 3.1800000000000002
	.quad	0x403f3ae147ae147b              # double 31.23
	.quad	0x4043dc28f5c28f5c              # double 39.719999999999999
	.quad	0x4055c7ae147ae148              # double 87.120000000000005
	.quad	0x40482f5c28f5c28f              # double 48.369999999999997
	.quad	0x4057e51eb851eb85              # double 95.579999999999998
	.quad	0x4055f8f5c28f5c29              # double 87.89
	.quad	0x406288f5c28f5c29              # double 148.28
	.quad	0x3ff6147ae147ae14              # double 1.3799999999999999
	.quad	0x4043dd70a3d70a3d              # double 39.729999999999997
	.quad	0x4052aae147ae147b              # double 74.670000000000001
	.quad	0x405ee7ae147ae148              # double 123.62
	.quad	0x4037170a3d70a3d7              # double 23.09
	.quad	0x405543d70a3d70a4              # double 85.060000000000002
	.quad	0x4046eccccccccccd              # double 45.850000000000001
	.quad	0x4054e70a3d70a3d7              # double 83.609999999999999
	.quad	0x4051851eb851eb85              # double 70.079999999999998
	.quad	0x405e25c28f5c28f6              # double 120.59
	.quad	0x4049451eb851eb85              # double 50.539999999999999
	.quad	0x405fc66666666666              # double 127.09999999999999
	.quad	0x4032ae147ae147ae              # double 18.68
	.quad	0x404759999999999a              # double 46.700000000000003
	.quad	0x4039570a3d70a3d7              # double 25.34
	.quad	0x4052ed70a3d70a3d              # double 75.709999999999993
	.quad	0x40424b851eb851ec              # double 36.590000000000003
	.quad	0x405481eb851eb852              # double 82.030000000000001
	.quad	0x405283d70a3d70a4              # double 74.060000000000002
	.quad	0x40610c7ae147ae14              # double 136.38999999999999
	.quad	0x40536c28f5c28f5c              # double 77.689999999999998
	.quad	0x405df00000000000              # double 119.75
	.quad	0x40445c28f5c28f5c              # double 40.719999999999999
	.quad	0x4055accccccccccd              # double 86.700000000000002
	.quad	0x4000cccccccccccd              # double 2.1000000000000001
	.quad	0x4043eccccccccccd              # double 39.850000000000001
	.quad	0x40518d70a3d70a3d              # double 70.209999999999994
	.quad	0x405b8851eb851eb8              # double 110.13
	.quad	0x404c8f5c28f5c28f              # double 57.119999999999997
	.quad	0x40588b851eb851ec              # double 98.180000000000007
	.quad	0x4057f3d70a3d70a4              # double 95.810000000000002
	.quad	0x40651570a3d70a3d              # double 168.66999999999999
	.quad	0x3ffe3d70a3d70a3d              # double 1.8899999999999999
	.quad	0x403c7ae147ae147b              # double 28.48
	.quad	0x40541e147ae147ae              # double 80.469999999999999
	.quad	0x4062f8a3d70a3d71              # double 151.77000000000001
	.quad	0x404d6ccccccccccd              # double 58.850000000000001
	.quad	0x405b8147ae147ae1              # double 110.02
	.quad	0x40587c28f5c28f5c              # double 97.939999999999998
	.quad	0x4062ce147ae147ae              # double 150.44
	.quad	0x405798f5c28f5c29              # double 94.39
	.quad	0x406293851eb851ec              # double 148.61000000000001
	.quad	0x404ceb851eb851ec              # double 57.840000000000003
	.quad	0x4059b00000000000              # double 102.75
	.quad	0x40529f5c28f5c28f              # double 74.489999999999994
	.quad	0x4060a6147ae147ae              # double 133.19
	.quad	0x404b600000000000              # double 54.75
	.quad	0x4059f47ae147ae14              # double 103.81999999999999
	.quad	0x40419c28f5c28f5c              # double 35.219999999999999
	.quad	0x4057a47ae147ae14              # double 94.569999999999993
	.quad	0x4052f00000000000              # double 75.75
	.quad	0x4061033333333333              # double 136.09999999999999
	.quad	0x40496a3d70a3d70a              # double 50.829999999999998
	.quad	0x4057470a3d70a3d7              # double 93.109999999999999
	.quad	0x404fbae147ae147b              # double 63.460000000000001
	.quad	0x4056b851eb851eb8              # double 90.879999999999995
	.quad	0x4045f70a3d70a3d7              # double 43.93
	.quad	0x40589d70a3d70a3d              # double 98.459999999999993
	.quad	0x4058047ae147ae14              # double 96.069999999999993
	.quad	0x406339999999999a              # double 153.80000000000001
	.quad	0x405273d70a3d70a4              # double 73.810000000000002
	.quad	0x4061380000000000              # double 137.75
	.quad	0x404507ae147ae148              # double 42.060000000000002
	.quad	0x4055733333333333              # double 85.799999999999997
	.quad	0x40393ae147ae147b              # double 25.23
	.quad	0x40517d70a3d70a3d              # double 69.959999999999994
	.quad	0x40561e147ae147ae              # double 88.469999999999999
	.quad	0x4060ae147ae147ae              # double 133.44
	.quad	0x404270a3d70a3d71              # double 36.880000000000003
	.quad	0x4055100000000000              # double 84.25
	.quad	0x404de7ae147ae148              # double 59.810000000000002
	.quad	0x405abae147ae147b              # double 106.92
	.quad	0x4031570a3d70a3d7              # double 17.34
	.quad	0x405069999999999a              # double 65.650000000000006
	.quad	0x400b0a3d70a3d70a              # double 3.3799999999999999
	.quad	0x4042c28f5c28f5c3              # double 37.520000000000003
	.quad	0x4050847ae147ae14              # double 66.069999999999993
	.quad	0x40605f5c28f5c28f              # double 130.97999999999999
	.quad	0x4054ec28f5c28f5c              # double 83.689999999999998
	.quad	0x4060b0a3d70a3d71              # double 133.52000000000001
	.quad	0x4058670a3d70a3d7              # double 97.609999999999999
	.quad	0x4061aa3d70a3d70a              # double 141.31999999999999
	.quad	0x4015000000000000              # double 5.25
	.quad	0x4042c8f5c28f5c29              # double 37.57
	.quad	0x400d333333333333              # double 3.6499999999999999
	.quad	0x403aa66666666666              # double 26.649999999999999
	.quad	0x4056170a3d70a3d7              # double 88.359999999999999
	.quad	0x4064cb3333333333              # double 166.34999999999999
	.quad	0x405707ae147ae148              # double 92.120000000000005
	.quad	0x4060c00000000000              # double 134
	.quad	0x4031f5c28f5c28f6              # double 17.960000000000001
	.quad	0x4051400000000000              # double 69
	.quad	0x40542ccccccccccd              # double 80.700000000000002
	.quad	0x405fbd70a3d70a3d              # double 126.95999999999999
	.quad	0x4058cb851eb851ec              # double 99.180000000000007
	.quad	0x4063a3d70a3d70a4              # double 157.12
	.quad	0x403fbae147ae147b              # double 31.73
	.quad	0x40535e147ae147ae              # double 77.469999999999999
	.quad	0x40458147ae147ae1              # double 43.009999999999998
	.quad	0x4058ed70a3d70a3d              # double 99.709999999999993
	.quad	0x404430a3d70a3d71              # double 40.380000000000003
	.quad	0x40562851eb851eb8              # double 88.629999999999995
	.quad	0x4051ba3d70a3d70a              # double 70.909999999999997
	.quad	0x405f77ae147ae148              # double 125.87
	.quad	0x40541ccccccccccd              # double 80.450000000000002
	.quad	0x40633fae147ae148              # double 153.99000000000001
	.quad	0x404c95c28f5c28f6              # double 57.170000000000002
	.quad	0x405c47ae147ae148              # double 113.12
	.quad	0x4053147ae147ae14              # double 76.319999999999993
	.quad	0x4060b3d70a3d70a4              # double 133.62
	.quad	0x40526d70a3d70a3d              # double 73.709999999999993
	.quad	0x4060cb851eb851ec              # double 134.36000000000001
	.quad	0x403adc28f5c28f5c              # double 26.859999999999999
	.quad	0x4049a66666666666              # double 51.299999999999997
	.quad	0x4043ca3d70a3d70a              # double 39.579999999999998
	.quad	0x4054d47ae147ae14              # double 83.319999999999993
	.quad	0x4052b1eb851eb852              # double 74.780000000000001
	.quad	0x40603a8f5c28f5c3              # double 129.83000000000001
	.quad	0x404cbc28f5c28f5c              # double 57.469999999999999
	.quad	0x4058aeb851eb851f              # double 98.730000000000003
	.quad	0x4044deb851eb851f              # double 41.740000000000002
	.quad	0x4055f66666666666              # double 87.849999999999994
	.quad	0x404c70a3d70a3d71              # double 56.880000000000003
	.quad	0x4059c33333333333              # double 103.05
	.quad	0x403e400000000000              # double 30.25
	.quad	0x405419999999999a              # double 80.400000000000006
	.quad	0x402523d70a3d70a4              # double 10.57
	.quad	0x404ba147ae147ae1              # double 55.259999999999998
	.quad	0x4058666666666666              # double 97.599999999999994
	.quad	0x4062e00000000000              # double 151
	.quad	0x40574e147ae147ae              # double 93.219999999999998
	.quad	0x4062be6666666666              # double 149.94999999999999
	.quad	0x3fdd70a3d70a3d71              # double 0.46000000000000002
	.quad	0x403719999999999a              # double 23.100000000000001
	.quad	0x404d51eb851eb852              # double 58.640000000000001
	.quad	0x405ab00000000000              # double 106.75
	.quad	0x4058e5c28f5c28f6              # double 99.590000000000003
	.quad	0x4063dbd70a3d70a4              # double 158.87
	.quad	0x4040266666666666              # double 32.299999999999997
	.quad	0x4052966666666666              # double 74.349999999999994
	.quad	0x4043147ae147ae14              # double 38.159999999999997
	.quad	0x4054270a3d70a3d7              # double 80.609999999999999
	.quad	0x40451d70a3d70a3d              # double 42.229999999999997
	.quad	0x405833d70a3d70a4              # double 96.810000000000002
	.quad	0x4050d70a3d70a3d7              # double 67.359999999999999
	.quad	0x405dbae147ae147b              # double 118.92
	.quad	0x4047e3d70a3d70a4              # double 47.780000000000001
	.quad	0x4056928f5c28f5c3              # double 90.290000000000006
	.quad	0x404a947ae147ae14              # double 53.159999999999997
	.quad	0x405c300000000000              # double 112.75
	.quad	0x403ba66666666666              # double 27.649999999999999
	.quad	0x4048d9999999999a              # double 49.700000000000003
	.quad	0x403e000000000000              # double 30
	.quad	0x404c600000000000              # double 56.75
	.quad	0x4048666666666666              # double 48.799999999999997
	.quad	0x405d5ae147ae147b              # double 117.42
	.quad	0x40290a3d70a3d70a              # double 12.52
	.quad	0x4047d9999999999a              # double 47.700000000000003
	.quad	0x403dfae147ae147b              # double 29.98
	.quad	0x404f8f5c28f5c28f              # double 63.119999999999997
	.quad	0x4045ee147ae147ae              # double 43.859999999999999
	.quad	0x405678f5c28f5c29              # double 89.89
	.quad	0x4058ec28f5c28f5c              # double 99.689999999999998
	.quad	0x4065728f5c28f5c3              # double 171.58000000000001
	.quad	0x404411eb851eb852              # double 40.140000000000001
	.quad	0x4053dd70a3d70a3d              # double 79.459999999999993
	.quad	0x404b07ae147ae148              # double 54.060000000000002
	.quad	0x405e7b851eb851ec              # double 121.93000000000001
	.quad	0x4056cccccccccccd              # double 91.200000000000002
	.quad	0x40626b851eb851ec              # double 147.36000000000001
	.quad	0x402747ae147ae148              # double 11.640000000000001
	.quad	0x40458e147ae147ae              # double 43.109999999999999
	.quad	0x40426a3d70a3d70a              # double 36.829999999999998
	.quad	0x4058270a3d70a3d7              # double 96.609999999999999
	.quad	0x402e19999999999a              # double 15.050000000000001
	.quad	0x40454e147ae147ae              # double 42.609999999999999
	.quad	0x4033b0a3d70a3d71              # double 19.690000000000001
	.quad	0x4051feb851eb851f              # double 71.980000000000004
	.quad	0x403f9c28f5c28f5c              # double 31.609999999999999
	.quad	0x4052f8f5c28f5c29              # double 75.89
	.quad	0x4039333333333333              # double 25.199999999999999
	.quad	0x405695c28f5c28f6              # double 90.340000000000003
	.quad	0x4055628f5c28f5c3              # double 85.540000000000006
	.quad	0x405e20a3d70a3d71              # double 120.51000000000001
	.quad	0x404a6f5c28f5c28f              # double 52.869999999999997
	.quad	0x40561851eb851eb8              # double 88.379999999999995
	.quad	0x40523851eb851eb8              # double 72.879999999999995
	.quad	0x405e20a3d70a3d71              # double 120.51000000000001
	.quad	0x4052ba3d70a3d70a              # double 74.909999999999997
	.quad	0x405ce147ae147ae1              # double 115.52
	.quad	0x403999999999999a              # double 25.600000000000001
	.quad	0x4048651eb851eb85              # double 48.789999999999999
	.quad	0x4053c851eb851eb8              # double 79.129999999999995
	.quad	0x40607f5c28f5c28f              # double 131.97999999999999
	.quad	0x4030d1eb851eb852              # double 16.82
	.quad	0x404d23d70a3d70a4              # double 58.280000000000001
	.quad	0x4031d70a3d70a3d7              # double 17.84
	.quad	0x40480a3d70a3d70a              # double 48.079999999999998
	.quad	0x404a4a3d70a3d70a              # double 52.579999999999998
	.quad	0x405b0c28f5c28f5c              # double 108.19
	.quad	0x404927ae147ae148              # double 50.310000000000002
	.quad	0x40579851eb851eb8              # double 94.379999999999995
	.quad	0x4054651eb851eb85              # double 81.579999999999998
	.quad	0x405f000000000000              # double 124
	.quad	0x4054c3d70a3d70a4              # double 83.060000000000002
	.quad	0x406250a3d70a3d71              # double 146.52000000000001
	.quad	0x4051bf5c28f5c28f              # double 70.989999999999995
	.quad	0x40603e6666666666              # double 129.94999999999999
	.quad	0x4040ce147ae147ae              # double 33.609999999999999
	.quad	0x40514147ae147ae1              # double 69.019999999999996
	.quad	0x404a628f5c28f5c3              # double 52.770000000000003
	.quad	0x405c4e147ae147ae              # double 113.22
	.quad	0x4036f0a3d70a3d71              # double 22.940000000000001
	.quad	0x404e200000000000              # double 60.25
	.quad	0x403028f5c28f5c29              # double 16.16
	.quad	0x4044dd70a3d70a3d              # double 41.729999999999997
	.quad	0x40404e147ae147ae              # double 32.609999999999999
	.quad	0x40528e147ae147ae              # double 74.219999999999999
	.quad	0x404079999999999a              # double 32.950000000000003
	.quad	0x404deccccccccccd              # double 59.850000000000001
	.quad	0x405330a3d70a3d71              # double 76.760000000000005
	.quad	0x4060e147ae147ae1              # double 135.03999999999999
	.quad	0x4053fccccccccccd              # double 79.950000000000002
	.quad	0x40610f5c28f5c28f              # double 136.47999999999999
	.quad	0x4039733333333333              # double 25.449999999999999
	.quad	0x404e400000000000              # double 60.5
	.quad	0x40546a3d70a3d70a              # double 81.659999999999997
	.quad	0x4061dc7ae147ae14              # double 142.88999999999999
	.quad	0x4046c8f5c28f5c29              # double 45.57
	.quad	0x4058870a3d70a3d7              # double 98.109999999999999
	.quad	0x4058ab851eb851ec              # double 98.680000000000007
	.quad	0x4063aa3d70a3d70a              # double 157.31999999999999
	.quad	0x4040b33333333333              # double 33.399999999999999
	.quad	0x405728f5c28f5c29              # double 92.64
	.quad	0x404c547ae147ae14              # double 56.659999999999997
	.quad	0x405a6c28f5c28f5c              # double 105.69
	.quad	0x4041466666666666              # double 34.549999999999997
	.quad	0x4050f9999999999a              # double 67.900000000000006
	.quad	0x4050651eb851eb85              # double 65.579999999999998
	.quad	0x405d270a3d70a3d7              # double 116.61
	.quad	0x4053e28f5c28f5c3              # double 79.540000000000006
	.quad	0x4060966666666666              # double 132.69999999999999
	.quad	0x402b19999999999a              # double 13.550000000000001
	.quad	0x4048fae147ae147b              # double 49.960000000000001
	.quad	0x4048cccccccccccd              # double 49.600000000000001
	.quad	0x4057000000000000              # double 92
	.quad	0x4052e33333333333              # double 75.549999999999997
	.quad	0x4061e2e147ae147b              # double 143.09
	.quad	0x40578a3d70a3d70a              # double 94.159999999999996
	.quad	0x406220a3d70a3d71              # double 145.02000000000001
	.quad	0x405100a3d70a3d71              # double 68.010000000000005
	.quad	0x405efc28f5c28f5c              # double 123.94
	.quad	0x4026f5c28f5c28f6              # double 11.48
	.quad	0x40457d70a3d70a3d              # double 42.979999999999997
	.quad	0x401f0a3d70a3d70a              # double 7.7599999999999998
	.quad	0x404c051eb851eb85              # double 56.039999999999999
	.quad	0x404c23d70a3d70a4              # double 56.280000000000001
	.quad	0x405d9ae147ae147b              # double 118.42
	.quad	0x40185c28f5c28f5c              # double 6.0899999999999999
	.quad	0x404ca7ae147ae148              # double 57.310000000000002
	.quad	0x4058b9999999999a              # double 98.900000000000005
	.quad	0x406664cccccccccd              # double 179.15000000000001
	.quad	0x403af33333333333              # double 26.949999999999999
	.quad	0x40553ae147ae147b              # double 84.920000000000001
	.quad	0x40210a3d70a3d70a              # double 8.5199999999999996
	.quad	0x4039a3d70a3d70a4              # double 25.640000000000001
	.quad	0x404f866666666666              # double 63.049999999999997
	.quad	0x405f8a3d70a3d70a              # double 126.16
	.quad	0x4043dc28f5c28f5c              # double 39.719999999999999
	.quad	0x4057b51eb851eb85              # double 94.829999999999998
	.quad	0x4057a28f5c28f5c3              # double 94.540000000000006
	.quad	0x4063f80000000000              # double 159.75
	.quad	0x4050dd70a3d70a3d              # double 67.459999999999994
	.quad	0x405ed1eb851eb852              # double 123.28
	.quad	0x4051366666666666              # double 68.849999999999994
	.quad	0x40615851eb851eb8              # double 138.75999999999999
	.quad	0x40477ae147ae147b              # double 46.960000000000001
	.quad	0x4054eae147ae147b              # double 83.670000000000001
	.quad	0x4050e28f5c28f5c3              # double 67.540000000000006
	.quad	0x40597ccccccccccd              # double 101.95
	.quad	0x40372b851eb851ec              # double 23.170000000000002
	.quad	0x404ee51eb851eb85              # double 61.789999999999999
	.quad	0x403d7d70a3d70a3d              # double 29.489999999999998
	.quad	0x405310a3d70a3d71              # double 76.260000000000005
	.quad	0x404d15c28f5c28f6              # double 58.170000000000002
	.quad	0x405bf33333333333              # double 111.8
	.quad	0x404aa00000000000              # double 53.25
	.quad	0x405867ae147ae148              # double 97.620000000000005
	.quad	0x4042f1eb851eb852              # double 37.890000000000001
	.quad	0x4052a5c28f5c28f6              # double 74.590000000000003
	.quad	0x401e666666666666              # double 7.5999999999999996
	.quad	0x403d28f5c28f5c29              # double 29.16
	.quad	0x404e5c28f5c28f5c              # double 60.719999999999999
	.quad	0x4059c1eb851eb852              # double 103.03
	.quad	0x403ecccccccccccd              # double 30.800000000000001
	.quad	0x4053a0a3d70a3d71              # double 78.510000000000005
	.quad	0x402c428f5c28f5c3              # double 14.130000000000001
	.quad	0x4041570a3d70a3d7              # double 34.68
	.quad	0x40433851eb851eb8              # double 38.439999999999998
	.quad	0x4053fae147ae147b              # double 79.920000000000001
	.quad	0x404d8f5c28f5c28f              # double 59.119999999999997
	.quad	0x405bf70a3d70a3d7              # double 111.86
	.quad	0x40313d70a3d70a3d              # double 17.239999999999998
	.quad	0x404c4b851eb851ec              # double 56.590000000000003
	.quad	0x405647ae147ae148              # double 89.120000000000005
	.quad	0x4060a8f5c28f5c29              # double 133.28
	.quad	0x4033d9999999999a              # double 19.850000000000001
	.quad	0x404e70a3d70a3d71              # double 60.880000000000003
	.quad	0x40569ccccccccccd              # double 90.450000000000002
	.quad	0x4062fdc28f5c28f6              # double 151.93000000000001
	.quad	0x4054b147ae147ae1              # double 82.769999999999996
	.quad	0x4060975c28f5c28f              # double 132.72999999999999
	.quad	0x4041028f5c28f5c3              # double 34.020000000000003
	.quad	0x40532ccccccccccd              # double 76.700000000000002
	.quad	0x404b451eb851eb85              # double 54.539999999999999
	.quad	0x405a4c28f5c28f5c              # double 105.19
	.quad	0x4050451eb851eb85              # double 65.079999999999998
	.quad	0x405ef00000000000              # double 123.75
	.quad	0x4051733333333333              # double 69.799999999999997
	.quad	0x405cc851eb851eb8              # double 115.13
	.quad	0x4057d33333333333              # double 95.299999999999997
	.quad	0x406396147ae147ae              # double 156.69
	.quad	0x4031a8f5c28f5c29              # double 17.66
	.quad	0x405198f5c28f5c29              # double 70.390000000000001
	.quad	0x40392e147ae147ae              # double 25.18
	.quad	0x4054b66666666666              # double 82.849999999999994
	.quad	0x4018147ae147ae14              # double 6.0199999999999996
	.quad	0x4045ca3d70a3d70a              # double 43.579999999999998
	.quad	0x40293851eb851eb8              # double 12.609999999999999
	.quad	0x40441d70a3d70a3d              # double 40.229999999999997
	.quad	0x404128f5c28f5c29              # double 34.32
	.quad	0x405478f5c28f5c29              # double 81.89
	.quad	0x4050d9999999999a              # double 67.400000000000006
	.quad	0x4059300000000000              # double 100.75
	.quad	0x401f3d70a3d70a3d              # double 7.8099999999999996
	.quad	0x4041428f5c28f5c3              # double 34.520000000000003
	.quad	0x401c1eb851eb851f              # double 7.0300000000000002
	.quad	0x40420a3d70a3d70a              # double 36.079999999999998
	.quad	0x4036ab851eb851ec              # double 22.670000000000002
	.quad	0x404d8b851eb851ec              # double 59.090000000000003
	.quad	0x405740a3d70a3d71              # double 93.010000000000005
	.quad	0x4062cb851eb851ec              # double 150.36000000000001
	.quad	0x4055c147ae147ae1              # double 87.019999999999996
	.quad	0x406498a3d70a3d71              # double 164.77000000000001
	.quad	0x404019999999999a              # double 32.200000000000003
	.quad	0x40528851eb851eb8              # double 74.129999999999995
	.quad	0x404b6f5c28f5c28f              # double 54.869999999999997
	.quad	0x4059c66666666666              # double 103.09999999999999
	.quad	0x404d2f5c28f5c28f              # double 58.369999999999997
	.quad	0x4060fd1eb851eb85              # double 135.91
	.quad	0x404f4147ae147ae1              # double 62.509999999999998
	.quad	0x40581851eb851eb8              # double 96.379999999999995
	.quad	0x4046a8f5c28f5c29              # double 45.32
	.quad	0x40564a3d70a3d70a              # double 89.159999999999997
	.quad	0x4043b33333333333              # double 39.399999999999999
	.quad	0x4054170a3d70a3d7              # double 80.359999999999999
	.quad	0x4028e66666666666              # double 12.449999999999999
	.quad	0x4051028f5c28f5c3              # double 68.040000000000006
	.quad	0x404eb70a3d70a3d7              # double 61.43
	.quad	0x406066147ae147ae              # double 131.19
	.quad	0x404da00000000000              # double 59.25
	.quad	0x4059c851eb851eb8              # double 103.13
	.quad	0x403ab5c28f5c28f6              # double 26.710000000000001
	.quad	0x4052a9999999999a              # double 74.650000000000006
	.quad	0x404ea00000000000              # double 61.25
	.quad	0x405bb66666666666              # double 110.84999999999999
	.quad	0x404ae3d70a3d70a4              # double 53.780000000000001
	.quad	0x405845c28f5c28f6              # double 97.090000000000003
	.quad	0x404ce00000000000              # double 57.75
	.quad	0x405c9147ae147ae1              # double 114.27
	.quad	0x403d6147ae147ae1              # double 29.379999999999999
	.quad	0x404df33333333333              # double 59.899999999999999
	.quad	0x40325c28f5c28f5c              # double 18.359999999999999
	.quad	0x4051c8f5c28f5c29              # double 71.140000000000001
	.quad	0x40517d70a3d70a3d              # double 69.959999999999994
	.quad	0x405d870a3d70a3d7              # double 118.11
	.quad	0x402d1eb851eb851f              # double 14.56
	.quad	0x4043a28f5c28f5c3              # double 39.270000000000003
	.quad	0x4033e3d70a3d70a4              # double 19.890000000000001
	.quad	0x40447d70a3d70a3d              # double 40.979999999999997
	.quad	0x4051233333333333              # double 68.549999999999997
	.quad	0x40604570a3d70a3d              # double 130.16999999999999
	.quad	0x401e000000000000              # double 7.5
	.quad	0x4047af5c28f5c28f              # double 47.369999999999997
	.quad	0x4041fd70a3d70a3d              # double 35.979999999999997
	.quad	0x40595851eb851eb8              # double 101.38
	.quad	0x40313851eb851eb8              # double 17.219999999999999
	.quad	0x4045b9999999999a              # double 43.450000000000003
	.quad	0x405313d70a3d70a4              # double 76.310000000000002
	.quad	0x405feeb851eb851f              # double 127.73
	.quad	0x400947ae147ae148              # double 3.1600000000000001
	.quad	0x4047eccccccccccd              # double 47.850000000000001
	.quad	0x40574a3d70a3d70a              # double 93.159999999999996
	.quad	0x4063123d70a3d70a              # double 152.56999999999999
	.quad	0x4042051eb851eb85              # double 36.039999999999999
	.quad	0x40535851eb851eb8              # double 77.379999999999995
	.quad	0x404e79999999999a              # double 60.950000000000003
	.quad	0x405dae147ae147ae              # double 118.72
	.quad	0x40043d70a3d70a3d              # double 2.5299999999999998
	.quad	0x403bdc28f5c28f5c              # double 27.859999999999999
	.quad	0x405383d70a3d70a4              # double 78.060000000000002
	.quad	0x406125c28f5c28f6              # double 137.18000000000001
	.quad	0x404107ae147ae148              # double 34.060000000000002
	.quad	0x4051f47ae147ae14              # double 71.819999999999993
	.quad	0x4054de147ae147ae              # double 83.469999999999999
	.quad	0x4062ac7ae147ae14              # double 149.38999999999999
	.quad	0x4045f851eb851eb8              # double 43.939999999999998
	.quad	0x40553a3d70a3d70a              # double 84.909999999999997
	.quad	0x40549ccccccccccd              # double 82.450000000000002
	.quad	0x40634428f5c28f5c              # double 154.13
	.quad	0x4051a9999999999a              # double 70.650000000000006
	.quad	0x405f470a3d70a3d7              # double 125.11
	.quad	0x4039ab851eb851ec              # double 25.670000000000002
	.quad	0x4050370a3d70a3d7              # double 64.859999999999999
	.quad	0x400ab851eb851eb8              # double 3.3399999999999999
	.quad	0x403f333333333333              # double 31.199999999999999
	.quad	0x402fe66666666666              # double 15.949999999999999
	.quad	0x404d6147ae147ae1              # double 58.759999999999998
	.quad	0x4054851eb851eb85              # double 82.079999999999998
	.quad	0x4060b851eb851eb8              # double 133.75999999999999
	.quad	0x4057b66666666666              # double 94.849999999999994
	.quad	0x4063beb851eb851f              # double 157.96000000000001
	.quad	0x40340ccccccccccd              # double 20.050000000000001
	.quad	0x404b59999999999a              # double 54.700000000000003
	.quad	0x400b851eb851eb85              # double 3.4399999999999999
	.quad	0x4044770a3d70a3d7              # double 40.93
	.quad	0x40440a3d70a3d70a              # double 40.079999999999998
	.quad	0x40537ae147ae147b              # double 77.920000000000001
	.quad	0x4045a7ae147ae148              # double 43.310000000000002
	.quad	0x4053ceb851eb851f              # double 79.230000000000003
	.quad	0x405089999999999a              # double 66.150000000000006
	.quad	0x405d533333333333              # double 117.3
	.quad	0x405523d70a3d70a4              # double 84.560000000000002
	.quad	0x4061233333333333              # double 137.09999999999999
	.quad	0x403b547ae147ae14              # double 27.329999999999998
	.quad	0x40538ae147ae147b              # double 78.170000000000001
	.quad	0x40302e147ae147ae              # double 16.18
	.quad	0x40476ccccccccccd              # double 46.850000000000001
	.quad	0x404b47ae147ae148              # double 54.560000000000002
	.quad	0x40579ae147ae147b              # double 94.420000000000001
	.quad	0x404050a3d70a3d71              # double 32.630000000000003
	.quad	0x405389999999999a              # double 78.150000000000006
	.quad	0x404b200000000000              # double 54.25
	.quad	0x405d8851eb851eb8              # double 118.13
	.quad	0x4056a851eb851eb8              # double 90.629999999999995
	.quad	0x4064b947ae147ae1              # double 165.78999999999999
	.quad	0x404c9851eb851eb8              # double 57.189999999999998
	.quad	0x405890a3d70a3d71              # double 98.260000000000005
	.quad	0x40476a3d70a3d70a              # double 46.829999999999998
	.quad	0x4054b51eb851eb85              # double 82.829999999999998
	.quad	0x4010147ae147ae14              # double 4.0199999999999996
	.quad	0x403899999999999a              # double 24.600000000000001
	.quad	0x405087ae147ae148              # double 66.120000000000005
	.quad	0x405cfd70a3d70a3d              # double 115.95999999999999
	.quad	0x4051fccccccccccd              # double 71.950000000000003
	.quad	0x4058728f5c28f5c3              # double 97.790000000000006
	.quad	0x404a10a3d70a3d71              # double 52.130000000000003
	.quad	0x4059e9999999999a              # double 103.65000000000001
	.quad	0x403f4a3d70a3d70a              # double 31.289999999999999
	.quad	0x4052d0a3d70a3d71              # double 75.260000000000005
	.quad	0x404bf47ae147ae14              # double 55.909999999999997
	.quad	0x40592a3d70a3d70a              # double 100.66
	.quad	0x405263d70a3d70a4              # double 73.560000000000002
	.quad	0x405ffa3d70a3d70a              # double 127.91
	.quad	0x4052a47ae147ae14              # double 74.569999999999993
	.quad	0x4060b70a3d70a3d7              # double 133.72
	.quad	0x402d147ae147ae14              # double 14.539999999999999
	.quad	0x404bc147ae147ae1              # double 55.509999999999998
	.quad	0x4041f47ae147ae14              # double 35.909999999999997
	.quad	0x4053028f5c28f5c3              # double 76.040000000000006
	.quad	0x4051f28f5c28f5c3              # double 71.790000000000006
	.quad	0x405c19999999999a              # double 112.40000000000001
	.quad	0x400c28f5c28f5c29              # double 3.52
	.quad	0x404050a3d70a3d71              # double 32.630000000000003
	.quad	0x4058deb851eb851f              # double 99.480000000000003
	.quad	0x40645e147ae147ae              # double 162.94
	.quad	0x401bcccccccccccd              # double 6.9500000000000002
	.quad	0x403a970a3d70a3d7              # double 26.59
	.quad	0x4052f47ae147ae14              # double 75.819999999999993
	.quad	0x405e628f5c28f5c3              # double 121.54000000000001
	.quad	0x402428f5c28f5c29              # double 10.08
	.quad	0x40473851eb851eb8              # double 46.439999999999998
	.quad	0x4046c28f5c28f5c3              # double 45.520000000000003
	.quad	0x4056c851eb851eb8              # double 91.129999999999995
	.quad	0x3ffae147ae147ae1              # double 1.6799999999999999
	.quad	0x403eca3d70a3d70a              # double 30.789999999999999
	.quad	0x40567ccccccccccd              # double 89.950000000000002
	.quad	0x405d95c28f5c28f6              # double 118.34
	.quad	0x40416b851eb851ec              # double 34.840000000000003
	.quad	0x40536851eb851eb8              # double 77.629999999999995
	.quad	0x40549ccccccccccd              # double 82.450000000000002
	.quad	0x4062dbd70a3d70a4              # double 150.87
	.quad	0x404563d70a3d70a4              # double 42.780000000000001
	.quad	0x404f933333333333              # double 63.149999999999999
	.quad	0x4057833333333333              # double 94.049999999999997
	.quad	0x40630b3333333333              # double 152.34999999999999
	.quad	0x404e9851eb851eb8              # double 61.189999999999998
	.quad	0x405a1c28f5c28f5c              # double 104.44
	.quad	0x404b35c28f5c28f6              # double 54.420000000000002
	.quad	0x405a20a3d70a3d71              # double 104.51000000000001
	.quad	0x4022c7ae147ae148              # double 9.3900000000000005
	.quad	0x40464e147ae147ae              # double 44.609999999999999
	.quad	0x401b99999999999a              # double 6.9000000000000004
	.quad	0x4043c66666666666              # double 39.549999999999997
	.quad	0x4052c00000000000              # double 75
	.quad	0x405f570a3d70a3d7              # double 125.36
	.quad	0x4051d33333333333              # double 71.299999999999997
	.quad	0x406032e147ae147b              # double 129.59
	.quad	0x404d200000000000              # double 58.25
	.quad	0x4058528f5c28f5c3              # double 97.290000000000006
	.quad	0x4056a70a3d70a3d7              # double 90.609999999999999
	.quad	0x40627fae147ae148              # double 147.99000000000001
	.quad	0x403fc00000000000              # double 31.75
	.quad	0x4050f28f5c28f5c3              # double 67.790000000000006
	.quad	0x4055733333333333              # double 85.799999999999997
	.quad	0x4061366666666666              # double 137.69999999999999
	.quad	0x4053c9999999999a              # double 79.150000000000006
	.quad	0x406171eb851eb852              # double 139.56
	.quad	0x40461eb851eb851f              # double 44.240000000000002
	.quad	0x4053f9999999999a              # double 79.900000000000006
	.quad	0x4054428f5c28f5c3              # double 81.040000000000006
	.quad	0x4061275c28f5c28f              # double 137.22999999999999
	.quad	0x40504d70a3d70a3d              # double 65.209999999999994
	.quad	0x405aaeb851eb851f              # double 106.73
	.quad	0x4026051eb851eb85              # double 11.01
	.quad	0x404cd9999999999a              # double 57.700000000000003
	.quad	0x4040b47ae147ae14              # double 33.409999999999997
	.quad	0x405501eb851eb852              # double 84.030000000000001
	.quad	0x40167ae147ae147b              # double 5.6200000000000001
	.quad	0x4033428f5c28f5c3              # double 19.260000000000002
	.quad	0x40534d70a3d70a3d              # double 77.209999999999993
	.quad	0x4061fc28f5c28f5c              # double 143.88
	.quad	0x4058d9999999999a              # double 99.400000000000005
	.quad	0x40644428f5c28f5c              # double 162.13
	.quad	0x4057333333333333              # double 92.799999999999997
	.quad	0x40624ae147ae147b              # double 146.34
	.quad	0x405369999999999a              # double 77.650000000000006
	.quad	0x406002e147ae147b              # double 128.09
	.quad	0x40558d70a3d70a3d              # double 86.209999999999993
	.quad	0x40614a3d70a3d70a              # double 138.31999999999999
	.quad	0x4057147ae147ae14              # double 92.319999999999993
	.quad	0x4063c2e147ae147b              # double 158.09
	.quad	0x4053d3d70a3d70a4              # double 79.310000000000002
	.quad	0x4062d33333333333              # double 150.59999999999999
	.quad	0x4046a7ae147ae148              # double 45.310000000000002
	.quad	0x4056d5c28f5c28f6              # double 91.340000000000003
	.quad	0x402a99999999999a              # double 13.300000000000001
	.quad	0x4046f47ae147ae14              # double 45.909999999999997
	.quad	0x4056c66666666666              # double 91.099999999999994
	.quad	0x4062233333333333              # double 145.09999999999999
	.quad	0x4057a33333333333              # double 94.549999999999997
	.quad	0x40628e147ae147ae              # double 148.44
	.quad	0x4056b3d70a3d70a4              # double 90.810000000000002
	.quad	0x40644051eb851eb8              # double 162.00999999999999
	.quad	0x4058beb851eb851f              # double 98.980000000000003
	.quad	0x40655f5c28f5c28f              # double 170.97999999999999
	.quad	0x4016b851eb851eb8              # double 5.6799999999999997
	.quad	0x404cb9999999999a              # double 57.450000000000003
	.quad	0x40248f5c28f5c28f              # double 10.279999999999999
	.quad	0x404711eb851eb852              # double 46.140000000000001
	.quad	0x402b0f5c28f5c28f              # double 13.529999999999999
	.quad	0x40464f5c28f5c28f              # double 44.619999999999997
	.quad	0x404a0ccccccccccd              # double 52.100000000000001
	.quad	0x40575d70a3d70a3d              # double 93.459999999999993
	.quad	0x4058aeb851eb851f              # double 98.730000000000003
	.quad	0x40648c7ae147ae14              # double 164.38999999999999
	.quad	0x4050647ae147ae14              # double 65.569999999999993
	.quad	0x405d6147ae147ae1              # double 117.52
	.quad	0x404feccccccccccd              # double 63.850000000000001
	.quad	0x405c128f5c28f5c3              # double 112.29000000000001
	.quad	0x4017d70a3d70a3d7              # double 5.96
	.quad	0x4048147ae147ae14              # double 48.159999999999997
	.quad	0x40208a3d70a3d70a              # double 8.2699999999999996
	.quad	0x4039d9999999999a              # double 25.850000000000001
	.quad	0x402c3851eb851eb8              # double 14.109999999999999
	.quad	0x4049dc28f5c28f5c              # double 51.719999999999999
	.quad	0x4055d47ae147ae14              # double 87.319999999999993
	.quad	0x40617947ae147ae1              # double 139.78999999999999
	.quad	0x401cc28f5c28f5c3              # double 7.1900000000000004
	.quad	0x4042051eb851eb85              # double 36.039999999999999
	.quad	0x40420e147ae147ae              # double 36.109999999999999
	.quad	0x4055fd70a3d70a3d              # double 87.959999999999993
	.quad	0x4053d9999999999a              # double 79.400000000000006
	.quad	0x4060d33333333333              # double 134.59999999999999
	.quad	0x4053eeb851eb851f              # double 79.730000000000003
	.quad	0x40624428f5c28f5c              # double 146.13
	.quad	0x4051551eb851eb85              # double 69.329999999999998
	.quad	0x405e351eb851eb85              # double 120.83
	.quad	0x4038f5c28f5c28f6              # double 24.960000000000001
	.quad	0x4051a00000000000              # double 70.5
	.quad	0x4029c7ae147ae148              # double 12.890000000000001
	.quad	0x40414a3d70a3d70a              # double 34.579999999999998
	.quad	0x40515ccccccccccd              # double 69.450000000000003
	.quad	0x4058933333333333              # double 98.299999999999997
	.quad	0x40558147ae147ae1              # double 86.019999999999996
	.quad	0x40627ae147ae147b              # double 147.84
	.quad	0x40298a3d70a3d70a              # double 12.77
	.quad	0x4047b9999999999a              # double 47.450000000000003
	.quad	0x4036d1eb851eb852              # double 22.82
	.quad	0x40530ccccccccccd              # double 76.200000000000002
	.quad	0x40561a3d70a3d70a              # double 88.409999999999997
	.quad	0x4062c9eb851eb852              # double 150.31
	.quad	0x403eb33333333333              # double 30.699999999999999
	.quad	0x405225c28f5c28f6              # double 72.590000000000003
	.quad	0x4045b70a3d70a3d7              # double 43.43
	.quad	0x40569f5c28f5c28f              # double 90.489999999999994
	.quad	0x403923d70a3d70a4              # double 25.140000000000001
	.quad	0x4049800000000000              # double 51
	.quad	0x4049ce147ae147ae              # double 51.609999999999999
	.quad	0x4057933333333333              # double 94.299999999999997
	.quad	0x404ed70a3d70a3d7              # double 61.68
	.quad	0x40608dc28f5c28f6              # double 132.43000000000001
	.quad	0x40338ccccccccccd              # double 19.550000000000001
	.quad	0x404aa147ae147ae1              # double 53.259999999999998
	.quad	0x404e83d70a3d70a4              # double 61.030000000000001
	.quad	0x405b00a3d70a3d71              # double 108.01000000000001
	.quad	0x403859999999999a              # double 24.350000000000001
	.quad	0x40507a3d70a3d70a              # double 65.909999999999997
	.quad	0x404171eb851eb852              # double 34.890000000000001
	.quad	0x405609999999999a              # double 88.150000000000006
	.quad	0x4050066666666666              # double 64.099999999999994
	.quad	0x405a1851eb851eb8              # double 104.38
	.quad	0x4050c28f5c28f5c3              # double 67.040000000000006
	.quad	0x4060b75c28f5c28f              # double 133.72999999999999
	.quad	0x402047ae147ae148              # double 8.1400000000000006
	.quad	0x40429eb851eb851f              # double 37.240000000000002
	.quad	0x4026b33333333333              # double 11.35
	.quad	0x4045f47ae147ae14              # double 43.909999999999997
	.quad	0x4027947ae147ae14              # double 11.789999999999999
	.quad	0x404710a3d70a3d71              # double 46.130000000000003
	.quad	0x400f47ae147ae148              # double 3.9100000000000001
	.quad	0x403d3851eb851eb8              # double 29.219999999999999
	.quad	0x4042cccccccccccd              # double 37.600000000000001
	.quad	0x40586a3d70a3d70a              # double 97.659999999999996
	.quad	0x405199999999999a              # double 70.400000000000006
	.quad	0x405ed70a3d70a3d7              # double 123.36
	.quad	0x404d051eb851eb85              # double 58.039999999999999
	.quad	0x405ea8f5c28f5c29              # double 122.64
	.quad	0x4048d851eb851eb8              # double 49.689999999999998
	.quad	0x40576ae147ae147b              # double 93.670000000000001
	.quad	0x405723d70a3d70a4              # double 92.560000000000002
	.quad	0x4064466666666666              # double 162.19999999999999
	.quad	0x405809999999999a              # double 96.150000000000005
	.quad	0x4063b428f5c28f5c              # double 157.63
	.quad	0x4037f851eb851eb8              # double 23.969999999999999
	.quad	0x40526a3d70a3d70a              # double 73.659999999999997
	.quad	0x405523d70a3d70a4              # double 84.560000000000002
	.quad	0x40622c7ae147ae14              # double 145.38999999999999
	.quad	0x404ee66666666666              # double 61.799999999999997
	.quad	0x4057b1eb851eb852              # double 94.780000000000001
	.quad	0x404bf5c28f5c28f6              # double 55.920000000000002
	.quad	0x4060a1999999999a              # double 133.05000000000001
	.quad	0x403e8f5c28f5c28f              # double 30.559999999999999
	.quad	0x40526e147ae147ae              # double 73.719999999999999
	.quad	0x4012cccccccccccd              # double 4.7000000000000002
	.quad	0x403fcf5c28f5c28f              # double 31.809999999999999
	.quad	0x4050151eb851eb85              # double 64.329999999999998
	.quad	0x405c50a3d70a3d71              # double 113.26000000000001
	.quad	0x40494147ae147ae1              # double 50.509999999999998
	.quad	0x4057d0a3d70a3d71              # double 95.260000000000005
	.quad	0x40478ccccccccccd              # double 47.100000000000001
	.quad	0x4057bccccccccccd              # double 94.950000000000002
	.quad	0x4024a3d70a3d70a4              # double 10.32
	.quad	0x40436f5c28f5c28f              # double 38.869999999999997
	.quad	0x4050f00000000000              # double 67.75
	.quad	0x405e266666666666              # double 120.59999999999999
	.quad	0x4037e8f5c28f5c29              # double 23.91
	.quad	0x4052e47ae147ae14              # double 75.569999999999993
	.quad	0x403563d70a3d70a4              # double 21.390000000000001
	.quad	0x404ecf5c28f5c28f              # double 61.619999999999997
	.quad	0x405838f5c28f5c29              # double 96.89
	.quad	0x406266147ae147ae              # double 147.19
	.quad	0x4050c8f5c28f5c29              # double 67.140000000000001
	.quad	0x405eca3d70a3d70a              # double 123.16
	.quad	0x4030147ae147ae14              # double 16.079999999999998
	.quad	0x404e91eb851eb852              # double 61.140000000000001
	.quad	0x405751eb851eb852              # double 93.280000000000001
	.quad	0x406169eb851eb852              # double 139.31
	.quad	0x40495eb851eb851f              # double 50.740000000000002
	.quad	0x405885c28f5c28f6              # double 98.090000000000003
	.quad	0x4042dae147ae147b              # double 37.710000000000001
	.quad	0x4055bccccccccccd              # double 86.950000000000002
	.quad	0x4053a5c28f5c28f6              # double 78.590000000000003
	.quad	0x406133851eb851ec              # double 137.61000000000001
	.quad	0x404ff1eb851eb852              # double 63.890000000000001
	.quad	0x405aa51eb851eb85              # double 106.58
	.quad	0x403fb0a3d70a3d71              # double 31.690000000000001
	.quad	0x40549ccccccccccd              # double 82.450000000000002
	.quad	0x404d0a3d70a3d70a              # double 58.079999999999998
	.quad	0x405c1851eb851eb8              # double 112.38
	.quad	0x4045947ae147ae14              # double 43.159999999999997
	.quad	0x405780a3d70a3d71              # double 94.010000000000005
	.quad	0x4026c7ae147ae148              # double 11.390000000000001
	.quad	0x40396b851eb851ec              # double 25.420000000000002
	.quad	0x40508a3d70a3d70a              # double 66.159999999999997
	.quad	0x405c147ae147ae14              # double 112.31999999999999
	.quad	0x405801eb851eb852              # double 96.030000000000001
	.quad	0x40630051eb851eb8              # double 152.00999999999999
	.quad	0x4045466666666666              # double 42.549999999999997
	.quad	0x4054c70a3d70a3d7              # double 83.109999999999999
	.quad	0x404028f5c28f5c29              # double 32.32
	.quad	0x405049999999999a              # double 65.150000000000006
	.quad	0x4037051eb851eb85              # double 23.02
	.quad	0x40478ccccccccccd              # double 47.100000000000001
	.quad	0x403d35c28f5c28f6              # double 29.210000000000001
	.quad	0x404eaccccccccccd              # double 61.350000000000001
	.quad	0x40308a3d70a3d70a              # double 16.539999999999999
	.quad	0x404d47ae147ae148              # double 58.560000000000002
	.quad	0x404823d70a3d70a4              # double 48.280000000000001
	.quad	0x4059251eb851eb85              # double 100.58
	.quad	0x4032147ae147ae14              # double 18.079999999999998
	.quad	0x40471d70a3d70a3d              # double 46.229999999999997
	.quad	0x4039dc28f5c28f5c              # double 25.859999999999999
	.quad	0x404ddd70a3d70a3d              # double 59.729999999999997
	.quad	0x4053a147ae147ae1              # double 78.519999999999996
	.quad	0x405fd1eb851eb852              # double 127.28
	.quad	0x4023e66666666666              # double 9.9499999999999993
	.quad	0x4049533333333333              # double 50.649999999999999
	.quad	0x403c63d70a3d70a4              # double 28.390000000000001
	.quad	0x405007ae147ae148              # double 64.120000000000005
	.quad	0x404c0ccccccccccd              # double 56.100000000000001
	.quad	0x4055e70a3d70a3d7              # double 87.609999999999999
	.quad	0x40459c28f5c28f5c              # double 43.219999999999999
	.quad	0x405748f5c28f5c29              # double 93.14
	.quad	0x40456147ae147ae1              # double 42.759999999999998
	.quad	0x40565ccccccccccd              # double 89.450000000000002
	.quad	0x4058928f5c28f5c3              # double 98.290000000000006
	.quad	0x4063f428f5c28f5c              # double 159.63
	.quad	0x405855c28f5c28f6              # double 97.340000000000003
	.quad	0x406638f5c28f5c29              # double 177.78
	.quad	0x4011147ae147ae14              # double 4.2699999999999996
	.quad	0x404b9d70a3d70a3d              # double 55.229999999999997
	.quad	0x40478147ae147ae1              # double 47.009999999999998
	.quad	0x405a647ae147ae14              # double 105.56999999999999
	.quad	0x404dee147ae147ae              # double 59.859999999999999
	.quad	0x405c97ae147ae148              # double 114.37
	.quad	0x4032f33333333333              # double 18.949999999999999
	.quad	0x40498e147ae147ae              # double 51.109999999999999
	.quad	0x4044c28f5c28f5c3              # double 41.520000000000003
	.quad	0x4055151eb851eb85              # double 84.329999999999998
	.quad	0x404f7ae147ae147b              # double 62.960000000000001
	.quad	0x405b0b851eb851ec              # double 108.18000000000001
	.quad	0x403bca3d70a3d70a              # double 27.789999999999999
	.quad	0x404bee147ae147ae              # double 55.859999999999999
	.quad	0x403063d70a3d70a4              # double 16.390000000000001
	.quad	0x40506a3d70a3d70a              # double 65.659999999999997
	.quad	0x40508b851eb851ec              # double 66.180000000000007
	.quad	0x405a5ccccccccccd              # double 105.45
	.quad	0x40416e147ae147ae              # double 34.859999999999999
	.quad	0x4057bc28f5c28f5c              # double 94.939999999999998
	.quad	0x403c7851eb851eb8              # double 28.469999999999999
	.quad	0x40515ccccccccccd              # double 69.450000000000003
	.quad	0x40586ae147ae147b              # double 97.670000000000001
	.quad	0x4064ebd70a3d70a4              # double 167.37
	.quad	0x4052f70a3d70a3d7              # double 75.859999999999999
	.quad	0x405a151eb851eb85              # double 104.33
	.quad	0x4039028f5c28f5c3              # double 25.010000000000002
	.quad	0x405299999999999a              # double 74.400000000000006
	.quad	0x40477ae147ae147b              # double 46.960000000000001
	.quad	0x4055e28f5c28f5c3              # double 87.540000000000006
	.quad	0x40572147ae147ae1              # double 92.519999999999996
	.quad	0x40603b3333333333              # double 129.84999999999999
	.quad	0x403dc7ae147ae148              # double 29.780000000000001
	.quad	0x40526e147ae147ae              # double 73.719999999999999
	.quad	0x40556e147ae147ae              # double 85.719999999999999
	.quad	0x40616bd70a3d70a4              # double 139.37
	.quad	0x4054f8f5c28f5c29              # double 83.89
	.quad	0x405fb0a3d70a3d71              # double 126.76000000000001
	.quad	0x404d91eb851eb852              # double 59.140000000000001
	.quad	0x405cf1eb851eb852              # double 115.78
	.quad	0x40476ccccccccccd              # double 46.850000000000001
	.quad	0x40585851eb851eb8              # double 97.379999999999995
	.quad	0x4018c28f5c28f5c3              # double 6.1900000000000004
	.quad	0x404128f5c28f5c29              # double 34.32
	.quad	0x4027428f5c28f5c3              # double 11.630000000000001
	.quad	0x40374f5c28f5c28f              # double 23.309999999999999
	.quad	0x4027428f5c28f5c3              # double 11.630000000000001
	.quad	0x40463ae147ae147b              # double 44.460000000000001
	.quad	0x4036d70a3d70a3d7              # double 22.84
	.quad	0x404c6147ae147ae1              # double 56.759999999999998
	.quad	0x4028000000000000              # double 12
	.quad	0x404963d70a3d70a4              # double 50.780000000000001
	.quad	0x404f6b851eb851ec              # double 62.840000000000003
	.quad	0x40591ccccccccccd              # double 100.45
	.quad	0x40545ae147ae147b              # double 81.420000000000001
	.quad	0x4060770a3d70a3d7              # double 131.72
	.quad	0x40569e147ae147ae              # double 90.469999999999999
	.quad	0x4061ebd70a3d70a4              # double 143.37
	.quad	0x403dee147ae147ae              # double 29.93
	.quad	0x405639999999999a              # double 88.900000000000006
	.quad	0x405359999999999a              # double 77.400000000000006
	.quad	0x405e85c28f5c28f6              # double 122.09
	.quad	0x4057747ae147ae14              # double 93.819999999999993
	.quad	0x40622b3333333333              # double 145.34999999999999
	.quad	0x4047e00000000000              # double 47.75
	.quad	0x40580c28f5c28f5c              # double 96.189999999999998
	.quad	0x403523d70a3d70a4              # double 21.140000000000001
	.quad	0x4051af5c28f5c28f              # double 70.739999999999995
	.quad	0x40585d70a3d70a3d              # double 97.459999999999993
	.quad	0x406280a3d70a3d71              # double 148.02000000000001
	.quad	0x402970a3d70a3d71              # double 12.720000000000001
	.quad	0x404231eb851eb852              # double 36.390000000000001
	.quad	0x4048fc28f5c28f5c              # double 49.969999999999999
	.quad	0x4054f28f5c28f5c3              # double 83.790000000000006
	.quad	0x40587ccccccccccd              # double 97.950000000000002
	.quad	0x4064566666666666              # double 162.69999999999999
	.quad	0x4056b70a3d70a3d7              # double 90.859999999999999
	.quad	0x4063333333333333              # double 153.59999999999999
	.quad	0x404feccccccccccd              # double 63.850000000000001
	.quad	0x405d4c28f5c28f5c              # double 117.19
	.quad	0x401251eb851eb852              # double 4.5800000000000001
	.quad	0x403e666666666666              # double 30.399999999999999
	.quad	0x404e47ae147ae148              # double 60.560000000000002
	.quad	0x405def5c28f5c28f              # double 119.73999999999999
	.quad	0x404ac28f5c28f5c3              # double 53.520000000000003
	.quad	0x405b966666666666              # double 110.34999999999999
	.quad	0x403edeb851eb851f              # double 30.870000000000001
	.quad	0x40500ccccccccccd              # double 64.200000000000003
	.quad	0x401b333333333333              # double 6.7999999999999998
	.quad	0x4048a8f5c28f5c29              # double 49.32
	.quad	0x40527ccccccccccd              # double 73.950000000000002
	.quad	0x405f03d70a3d70a4              # double 124.06
	.quad	0x4018666666666666              # double 6.0999999999999996
	.quad	0x404d5d70a3d70a3d              # double 58.729999999999997
	.quad	0x40366147ae147ae1              # double 22.379999999999999
	.quad	0x40514851eb851eb8              # double 69.129999999999995
	.quad	0x404e59999999999a              # double 60.700000000000003
	.quad	0x405c1f5c28f5c28f              # double 112.48999999999999
	.quad	0x404e6ccccccccccd              # double 60.850000000000001
	.quad	0x405555c28f5c28f6              # double 85.340000000000003
	.quad	0x405611eb851eb852              # double 88.280000000000001
	.quad	0x406463d70a3d70a4              # double 163.12
	.quad	0x404af0a3d70a3d71              # double 53.880000000000003
	.quad	0x4058b7ae147ae148              # double 98.870000000000005
	.quad	0x4026800000000000              # double 11.25
	.quad	0x403b947ae147ae14              # double 27.579999999999998
	.quad	0x404eb1eb851eb852              # double 61.390000000000001
	.quad	0x405bdeb851eb851f              # double 111.48
	.quad	0x40491851eb851eb8              # double 50.189999999999998
	.quad	0x40595eb851eb851f              # double 101.48
	.quad	0x4047c51eb851eb85              # double 47.539999999999999
	.quad	0x405a6eb851eb851f              # double 105.73
	.quad	0x4042570a3d70a3d7              # double 36.68
	.quad	0x4052aae147ae147b              # double 74.670000000000001
	.quad	0x4030ee147ae147ae              # double 16.93
	.quad	0x4042fd70a3d70a3d              # double 37.979999999999997
	.quad	0x404fa7ae147ae148              # double 63.310000000000002
	.quad	0x405a3e147ae147ae              # double 104.97
	.quad	0x4058851eb851eb85              # double 98.079999999999998
	.quad	0x406252e147ae147b              # double 146.59
	.quad	0x40344ccccccccccd              # double 20.300000000000001
	.quad	0x405060a3d70a3d71              # double 65.510000000000005
	.quad	0x4050b9999999999a              # double 66.900000000000006
	.quad	0x405ced70a3d70a3d              # double 115.70999999999999
	.quad	0x400bae147ae147ae              # double 3.46
	.quad	0x403ae3d70a3d70a4              # double 26.890000000000001
	.quad	0x4052f9999999999a              # double 75.900000000000006
	.quad	0x40602b851eb851ec              # double 129.36000000000001
	.quad	0x401a666666666666              # double 6.5999999999999996
	.quad	0x404c4ccccccccccd              # double 56.600000000000001
	.quad	0x404d6a3d70a3d70a              # double 58.829999999999998
	.quad	0x405bc1eb851eb852              # double 111.03
	.quad	0x4051500000000000              # double 69.25
	.quad	0x406029999999999a              # double 129.30000000000001
	.quad	0x405301eb851eb852              # double 76.030000000000001
	.quad	0x405caccccccccccd              # double 114.7
	.quad	0x404f747ae147ae14              # double 62.909999999999997
	.quad	0x405d8eb851eb851f              # double 118.23
	.quad	0x40583eb851eb851f              # double 96.980000000000003
	.quad	0x406351999999999a              # double 154.55000000000001
	.quad	0x4035ca3d70a3d70a              # double 21.789999999999999
	.quad	0x404fb70a3d70a3d7              # double 63.43
	.quad	0x405481eb851eb852              # double 82.030000000000001
	.quad	0x406244cccccccccd              # double 146.15000000000001
	.quad	0x4039a3d70a3d70a4              # double 25.640000000000001
	.quad	0x404afc28f5c28f5c              # double 53.969999999999999
	.quad	0x4053f8f5c28f5c29              # double 79.89
	.quad	0x406239eb851eb852              # double 145.81
	.quad	0x4043ce147ae147ae              # double 39.609999999999999
	.quad	0x40551851eb851eb8              # double 84.379999999999995
	.quad	0x4047451eb851eb85              # double 46.539999999999999
	.quad	0x4056070a3d70a3d7              # double 88.109999999999999
	.quad	0x404fc8f5c28f5c29              # double 63.57
	.quad	0x40588ae147ae147b              # double 98.170000000000001
	.quad	0x4053ba3d70a3d70a              # double 78.909999999999997
	.quad	0x4060d23d70a3d70a              # double 134.56999999999999
	.quad	0x405731eb851eb852              # double 92.780000000000001
	.quad	0x4064b4cccccccccd              # double 165.65000000000001
	.quad	0x405608f5c28f5c29              # double 88.14
	.quad	0x40638bd70a3d70a4              # double 156.37
	.quad	0x3fd51eb851eb851f              # double 0.33000000000000002
	.quad	0x4041dd70a3d70a3d              # double 35.729999999999997
	.quad	0x404988f5c28f5c29              # double 51.07
	.quad	0x405403d70a3d70a4              # double 80.060000000000002
	.quad	0x4042d9999999999a              # double 37.700000000000003
	.quad	0x4051447ae147ae14              # double 69.069999999999993
	.quad	0x405327ae147ae148              # double 76.620000000000005
	.quad	0x405f63d70a3d70a4              # double 125.56
	.quad	0x40529e147ae147ae              # double 74.469999999999999
	.quad	0x405e4a3d70a3d70a              # double 121.16
	.quad	0x404783d70a3d70a4              # double 47.030000000000001
	.quad	0x40561b851eb851ec              # double 88.430000000000007
	.quad	0x404759999999999a              # double 46.700000000000003
	.quad	0x4058028f5c28f5c3              # double 96.040000000000006
	.quad	0x403968f5c28f5c29              # double 25.41
	.quad	0x404fef5c28f5c28f              # double 63.869999999999997
	.quad	0x4051166666666666              # double 68.349999999999994
	.quad	0x405d3d70a3d70a3d              # double 116.95999999999999
	.quad	0x4051d5c28f5c28f6              # double 71.340000000000003
	.quad	0x405e01eb851eb852              # double 120.03
	.quad	0x4030333333333333              # double 16.199999999999999
	.quad	0x4048a3d70a3d70a4              # double 49.280000000000001
	.quad	0x4026051eb851eb85              # double 11.01
	.quad	0x4048f0a3d70a3d71              # double 49.880000000000003
	.quad	0x4057f147ae147ae1              # double 95.769999999999996
	.quad	0x40644dc28f5c28f6              # double 162.43000000000001
	.quad	0x403cb5c28f5c28f6              # double 28.710000000000001
	.quad	0x40537f5c28f5c28f              # double 77.989999999999994
	.quad	0x404775c28f5c28f6              # double 46.920000000000002
	.quad	0x405269999999999a              # double 73.650000000000006
	.quad	0x404f30a3d70a3d71              # double 62.380000000000003
	.quad	0x405a13d70a3d70a4              # double 104.31
	.quad	0x405580a3d70a3d71              # double 86.010000000000005
	.quad	0x406011999999999a              # double 128.55000000000001
	.quad	0x4050770a3d70a3d7              # double 65.859999999999999
	.quad	0x405c666666666666              # double 113.59999999999999
	.quad	0x404cd0a3d70a3d71              # double 57.630000000000003
	.quad	0x405e5eb851eb851f              # double 121.48
	.quad	0x4052970a3d70a3d7              # double 74.359999999999999
	.quad	0x405f5d70a3d70a3d              # double 125.45999999999999
	.quad	0x3ff147ae147ae148              # double 1.0800000000000001
	.quad	0x4043e28f5c28f5c3              # double 39.770000000000003
	.quad	0x40206b851eb851ec              # double 8.2100000000000008
	.quad	0x4044d33333333333              # double 41.649999999999999
	.quad	0x402b947ae147ae14              # double 13.789999999999999
	.quad	0x40484f5c28f5c28f              # double 48.619999999999997
	.quad	0x4054dccccccccccd              # double 83.450000000000002
	.quad	0x4061adc28f5c28f6              # double 141.43000000000001
	.quad	0x402f7ae147ae147b              # double 15.74
	.quad	0x40437851eb851eb8              # double 38.939999999999998
	.quad	0x4033a147ae147ae1              # double 19.629999999999999
	.quad	0x4051e00000000000              # double 71.5
	.quad	0x4058d00000000000              # double 99.25
	.quad	0x4062e7ae147ae148              # double 151.24000000000001
	.quad	0x4049000000000000              # double 50
	.quad	0x40568a3d70a3d70a              # double 90.159999999999997
	.quad	0x40544e147ae147ae              # double 81.219999999999999
	.quad	0x405eaccccccccccd              # double 122.7
	.quad	0x4038947ae147ae14              # double 24.579999999999998
	.quad	0x40473851eb851eb8              # double 46.439999999999998
	.quad	0x4049f0a3d70a3d71              # double 51.880000000000003
	.quad	0x405561eb851eb852              # double 85.530000000000001
	.quad	0x404bdae147ae147b              # double 55.710000000000001
	.quad	0x4055028f5c28f5c3              # double 84.040000000000006
	.quad	0x4017b851eb851eb8              # double 5.9299999999999997
	.quad	0x40404b851eb851ec              # double 32.590000000000003
	.quad	0x4052bc28f5c28f5c              # double 74.939999999999998
	.quad	0x4060c2e147ae147b              # double 134.09
	.quad	0x405730a3d70a3d71              # double 92.760000000000005
	.quad	0x4062a33333333333              # double 149.09999999999999
	.quad	0x40470b851eb851ec              # double 46.090000000000003
	.quad	0x405945c28f5c28f6              # double 101.09
	.quad	0x4042370a3d70a3d7              # double 36.43
	.quad	0x4057851eb851eb85              # double 94.079999999999998
	.quad	0x4020d1eb851eb852              # double 8.4100000000000001
	.quad	0x4043251eb851eb85              # double 38.289999999999999
	.quad	0x40510ae147ae147b              # double 68.170000000000002
	.quad	0x4058cccccccccccd              # double 99.200000000000002
	.quad	0x404135c28f5c28f6              # double 34.420000000000002
	.quad	0x405579999999999a              # double 85.900000000000006
	.quad	0x40541b851eb851ec              # double 80.430000000000007
	.quad	0x40614947ae147ae1              # double 138.28999999999999
	.quad	0x40485eb851eb851f              # double 48.740000000000002
	.quad	0x405605c28f5c28f6              # double 88.090000000000003
	.quad	0x404c4e147ae147ae              # double 56.609999999999999
	.quad	0x405d0d70a3d70a3d              # double 116.20999999999999
	.quad	0x403b28f5c28f5c29              # double 27.16
	.quad	0x40541a3d70a3d70a              # double 80.409999999999997
	.quad	0x4058028f5c28f5c3              # double 96.040000000000006
	.quad	0x4061f570a3d70a3d              # double 143.66999999999999
	.quad	0x4044cccccccccccd              # double 41.600000000000001
	.quad	0x40562d70a3d70a3d              # double 88.709999999999993
	.quad	0x404c370a3d70a3d7              # double 56.43
	.quad	0x405803d70a3d70a4              # double 96.060000000000002
	.quad	0x4058eae147ae147b              # double 99.670000000000001
	.quad	0x4063efae147ae148              # double 159.49000000000001
	.quad	0x401fb851eb851eb8              # double 7.9299999999999997
	.quad	0x4039b0a3d70a3d71              # double 25.690000000000001
	.quad	0x4057cd70a3d70a3d              # double 95.209999999999993
	.quad	0x40639f0a3d70a3d7              # double 156.97
	.quad	0x4045466666666666              # double 42.549999999999997
	.quad	0x405148f5c28f5c29              # double 69.140000000000001
	.quad	0x40257ae147ae147b              # double 10.74
	.quad	0x403c6e147ae147ae              # double 28.43
	.quad	0x4049a8f5c28f5c29              # double 51.32
	.quad	0x4058533333333333              # double 97.299999999999997
	.quad	0x404671eb851eb852              # double 44.890000000000001
	.quad	0x4054eae147ae147b              # double 83.670000000000001
	.quad	0x401d99999999999a              # double 7.4000000000000004
	.quad	0x40467ae147ae147b              # double 44.960000000000001
	.quad	0x3ff28f5c28f5c28f              # double 1.1599999999999999
	.quad	0x4045000000000000              # double 42
	.quad	0x4015333333333333              # double 5.2999999999999998
	.quad	0x404291eb851eb852              # double 37.140000000000001
	.quad	0x40583147ae147ae1              # double 96.769999999999996
	.quad	0x4063170a3d70a3d7              # double 152.72
	.quad	0x4017eb851eb851ec              # double 5.9800000000000004
	.quad	0x4044000000000000              # double 40
	.quad	0x404e1d70a3d70a3d              # double 60.229999999999997
	.quad	0x405e8e147ae147ae              # double 122.22
	.quad	0x4042ef5c28f5c28f              # double 37.869999999999997
	.quad	0x405527ae147ae148              # double 84.620000000000005
	.quad	0x40452a3d70a3d70a              # double 42.329999999999998
	.quad	0x40538f5c28f5c28f              # double 78.239999999999994
	.quad	0x4032e3d70a3d70a4              # double 18.890000000000001
	.quad	0x4042cf5c28f5c28f              # double 37.619999999999997
	.quad	0x403a4ccccccccccd              # double 26.300000000000001
	.quad	0x4049c66666666666              # double 51.549999999999997
	.quad	0x4016666666666666              # double 5.5999999999999996
	.quad	0x40454ccccccccccd              # double 42.600000000000001
	.quad	0x404048f5c28f5c29              # double 32.57
	.quad	0x4052f28f5c28f5c3              # double 75.790000000000006
	.quad	0x4057b33333333333              # double 94.799999999999997
	.quad	0x4062b47ae147ae14              # double 149.63999999999999
	.quad	0x4058bb851eb851ec              # double 98.930000000000007
	.quad	0x40639b3333333333              # double 156.84999999999999
	.quad	0x4020666666666666              # double 8.1999999999999993
	.quad	0x4044deb851eb851f              # double 41.740000000000002
	.quad	0x40434ccccccccccd              # double 38.600000000000001
	.quad	0x4055e33333333333              # double 87.549999999999997
	.quad	0x405601eb851eb852              # double 88.030000000000001
	.quad	0x40620428f5c28f5c              # double 144.13
	.quad	0x403c07ae147ae148              # double 28.030000000000001
	.quad	0x404af70a3d70a3d7              # double 53.93
	.quad	0x403a170a3d70a3d7              # double 26.09
	.quad	0x405670a3d70a3d71              # double 89.760000000000005
	.quad	0x403dd70a3d70a3d7              # double 29.84
	.quad	0x405229999999999a              # double 72.650000000000006
	.quad	0x4055570a3d70a3d7              # double 85.359999999999999
	.quad	0x40608f5c28f5c28f              # double 132.47999999999999
	.quad	0x403af851eb851eb8              # double 26.969999999999999
	.quad	0x40532ccccccccccd              # double 76.700000000000002
	.quad	0x4041a147ae147ae1              # double 35.259999999999998
	.quad	0x4053133333333333              # double 76.299999999999997
	.quad	0x4039d9999999999a              # double 25.850000000000001
	.quad	0x4051b33333333333              # double 70.799999999999997
	.quad	0x40537e147ae147ae              # double 77.969999999999999
	.quad	0x405fdf5c28f5c28f              # double 127.48999999999999
	.quad	0x4051c0a3d70a3d71              # double 71.010000000000005
	.quad	0x40615147ae147ae1              # double 138.53999999999999
	.quad	0x4025e147ae147ae1              # double 10.94
	.quad	0x4048f47ae147ae14              # double 49.909999999999997
	.quad	0x403f3d70a3d70a3d              # double 31.239999999999998
	.quad	0x4051f147ae147ae1              # double 71.769999999999996
	.quad	0x401e1eb851eb851f              # double 7.5300000000000002
	.quad	0x404679999999999a              # double 44.950000000000003
	.quad	0x3ff851eb851eb852              # double 1.52
	.quad	0x403c970a3d70a3d7              # double 28.59
	.quad	0x4033451eb851eb85              # double 19.27
	.quad	0x4045a66666666666              # double 43.299999999999997
	.quad	0x402dd1eb851eb852              # double 14.91
	.quad	0x404687ae147ae148              # double 45.060000000000002
	.quad	0x40581ae147ae147b              # double 96.420000000000001
	.quad	0x40638f0a3d70a3d7              # double 156.47
	.quad	0x405098f5c28f5c29              # double 66.390000000000001
	.quad	0x405f8147ae147ae1              # double 126.02
	.quad	0x40513f5c28f5c28f              # double 68.989999999999995
	.quad	0x405c3a3d70a3d70a              # double 112.91
	.quad	0x4032d9999999999a              # double 18.850000000000001
	.quad	0x404f4a3d70a3d70a              # double 62.579999999999998
	.quad	0x4040466666666666              # double 32.549999999999997
	.quad	0x40593ae147ae147b              # double 100.92
	.quad	0x4040cb851eb851ec              # double 33.590000000000003
	.quad	0x405580a3d70a3d71              # double 86.010000000000005
	.quad	0x404d03d70a3d70a4              # double 58.030000000000001
	.quad	0x40587c28f5c28f5c              # double 97.939999999999998
	.quad	0x4041ee147ae147ae              # double 35.859999999999999
	.quad	0x4052f33333333333              # double 75.799999999999997
	.quad	0x403f547ae147ae14              # double 31.329999999999998
	.quad	0x405757ae147ae148              # double 93.370000000000005
	.quad	0x405750a3d70a3d71              # double 93.260000000000005
	.quad	0x40633ccccccccccd              # double 153.90000000000001
	.quad	0x402f0a3d70a3d70a              # double 15.52
	.quad	0x4045200000000000              # double 42.25
	.quad	0x4006000000000000              # double 2.75
	.quad	0x404470a3d70a3d71              # double 40.880000000000003
	.quad	0x402c800000000000              # double 14.25
	.quad	0x404c2b851eb851ec              # double 56.340000000000003
	.quad	0x4026ae147ae147ae              # double 11.34
	.quad	0x404b88f5c28f5c29              # double 55.07
	.quad	0x3ff0f5c28f5c28f6              # double 1.0600000000000001
	.quad	0x403dd1eb851eb852              # double 29.82
	.quad	0x40337851eb851eb8              # double 19.469999999999999
	.quad	0x40475ae147ae147b              # double 46.710000000000001
	.quad	0x405118f5c28f5c29              # double 68.390000000000001
	.quad	0x4057da3d70a3d70a              # double 95.409999999999996
	.quad	0x4043933333333333              # double 39.149999999999999
	.quad	0x4050c7ae147ae148              # double 67.120000000000005
	.quad	0x403bcf5c28f5c28f              # double 27.809999999999999
	.quad	0x405041eb851eb852              # double 65.030000000000001
	.quad	0x4040fae147ae147b              # double 33.960000000000001
	.quad	0x40512e147ae147ae              # double 68.719999999999999
	.quad	0x403dca3d70a3d70a              # double 29.789999999999999
	.quad	0x4054e51eb851eb85              # double 83.579999999999998
	.quad	0x4023b33333333333              # double 9.8499999999999996
	.quad	0x4047ae147ae147ae              # double 47.359999999999999
	.quad	0x4048bc28f5c28f5c              # double 49.469999999999999
	.quad	0x405ccf5c28f5c28f              # double 115.23999999999999
	.quad	0x3ff3d70a3d70a3d7              # double 1.24
	.quad	0x403da147ae147ae1              # double 29.629999999999999
	.quad	0x4036f5c28f5c28f6              # double 22.960000000000001
	.quad	0x404e6ccccccccccd              # double 60.850000000000001
	.quad	0x4042c00000000000              # double 37.5
	.quad	0x4050a0a3d70a3d71              # double 66.510000000000005
	.quad	0x40474147ae147ae1              # double 46.509999999999998
	.quad	0x40582f5c28f5c28f              # double 96.739999999999994
	.quad	0x404151eb851eb852              # double 34.640000000000001
	.quad	0x405209999999999a              # double 72.150000000000006
	.quad	0x4054870a3d70a3d7              # double 82.109999999999999
	.quad	0x4061f33333333333              # double 143.59999999999999
	.quad	0x40563e147ae147ae              # double 88.969999999999999
	.quad	0x40630e147ae147ae              # double 152.44
	.quad	0x4056ed70a3d70a3d              # double 91.709999999999993
	.quad	0x40622428f5c28f5c              # double 145.13
	.quad	0x402ad70a3d70a3d7              # double 13.42
	.quad	0x404f59999999999a              # double 62.700000000000003
	.quad	0x404c27ae147ae148              # double 56.310000000000002
	.quad	0x405b1f5c28f5c28f              # double 108.48999999999999
	.quad	0x403ab5c28f5c28f6              # double 26.710000000000001
	.quad	0x40528ae147ae147b              # double 74.170000000000001
	.quad	0x404a7eb851eb851f              # double 52.990000000000002
	.quad	0x405718f5c28f5c29              # double 92.39
	.quad	0x402fe147ae147ae1              # double 15.94
	.quad	0x4045051eb851eb85              # double 42.039999999999999
	.quad	0x3ff4000000000000              # double 1.25
	.quad	0x4038666666666666              # double 24.399999999999999
	.quad	0x4051a7ae147ae148              # double 70.620000000000005
	.quad	0x405f851eb851eb85              # double 126.08
	.quad	0x40560ae147ae147b              # double 88.170000000000001
	.quad	0x4061f5c28f5c28f6              # double 143.68000000000001
	.quad	0x401d851eb851eb85              # double 7.3799999999999999
	.quad	0x404879999999999a              # double 48.950000000000003
	.quad	0x40494f5c28f5c28f              # double 50.619999999999997
	.quad	0x4058d51eb851eb85              # double 99.329999999999998
	.quad	0x4045f47ae147ae14              # double 43.909999999999997
	.quad	0x4055b47ae147ae14              # double 86.819999999999993
	.quad	0x3fe23d70a3d70a3d              # double 0.56999999999999995
	.quad	0x403a5c28f5c28f5c              # double 26.359999999999999
	.quad	0x403bfae147ae147b              # double 27.98
	.quad	0x40549147ae147ae1              # double 82.269999999999996
	.quad	0x404339999999999a              # double 38.450000000000003
	.quad	0x405169999999999a              # double 69.650000000000006
	.quad	0x402699999999999a              # double 11.300000000000001
	.quad	0x40447851eb851eb8              # double 40.939999999999998
	.quad	0x4046a00000000000              # double 45.25
	.quad	0x40552eb851eb851f              # double 84.730000000000003
	.quad	0x4037deb851eb851f              # double 23.870000000000001
	.quad	0x4051251eb851eb85              # double 68.579999999999998
	.quad	0x40395eb851eb851f              # double 25.370000000000001
	.quad	0x405207ae147ae148              # double 72.120000000000005
	.quad	0x404e2b851eb851ec              # double 60.340000000000003
	.quad	0x405df28f5c28f5c3              # double 119.79000000000001
	.quad	0x40454b851eb851ec              # double 42.590000000000003
	.quad	0x40590851eb851eb8              # double 100.13
	.quad	0x4029d70a3d70a3d7              # double 12.92
	.quad	0x404490a3d70a3d71              # double 41.130000000000003
	.quad	0x40366e147ae147ae              # double 22.43
	.quad	0x404bea3d70a3d70a              # double 55.829999999999998
	.quad	0x4058770a3d70a3d7              # double 97.859999999999999
	.quad	0x406506b851eb851f              # double 168.21000000000001
	.quad	0x402f23d70a3d70a4              # double 15.57
	.quad	0x404ad0a3d70a3d71              # double 53.630000000000003
	.quad	0x403a70a3d70a3d71              # double 26.440000000000001
	.quad	0x4050b9999999999a              # double 66.900000000000006
	.quad	0x4058f51eb851eb85              # double 99.829999999999998
	.quad	0x4062a33333333333              # double 149.09999999999999
	.quad	0x4054ed70a3d70a3d              # double 83.709999999999993
	.quad	0x405d9ccccccccccd              # double 118.45
	.quad	0x40515ae147ae147b              # double 69.420000000000002
	.quad	0x405f68f5c28f5c29              # double 125.64
	.quad	0x404beccccccccccd              # double 55.850000000000001
	.quad	0x405acccccccccccd              # double 107.2
	.quad	0x404d000000000000              # double 58
	.quad	0x405bb8f5c28f5c29              # double 110.89
	.quad	0x4050be147ae147ae              # double 66.969999999999999
	.quad	0x405ddc28f5c28f5c              # double 119.44
	.quad	0x4047a00000000000              # double 47.25
	.quad	0x40575f5c28f5c28f              # double 93.489999999999994
	.quad	0x4048a28f5c28f5c3              # double 49.270000000000003
	.quad	0x405a95c28f5c28f6              # double 106.34
	.quad	0x4054733333333333              # double 81.799999999999997
	.quad	0x4062647ae147ae14              # double 147.13999999999999
	.quad	0x40552d70a3d70a3d              # double 84.709999999999993
	.quad	0x406137ae147ae148              # double 137.74000000000001
	.quad	0x403db33333333333              # double 29.699999999999999
	.quad	0x404eb5c28f5c28f6              # double 61.420000000000002
	.quad	0x4051dae147ae147b              # double 71.420000000000002
	.quad	0x405a63d70a3d70a4              # double 105.56
	.quad	0x405137ae147ae148              # double 68.870000000000005
	.quad	0x406001999999999a              # double 128.05000000000001
	.quad	0x404755c28f5c28f6              # double 46.670000000000002
	.quad	0x4056d28f5c28f5c3              # double 91.290000000000006
	.quad	0x4050547ae147ae14              # double 65.319999999999993
	.quad	0x406092e147ae147b              # double 132.59
	.quad	0x40486147ae147ae1              # double 48.759999999999998
	.quad	0x4055700000000000              # double 85.75
	.quad	0x4057a33333333333              # double 94.549999999999997
	.quad	0x40632c28f5c28f5c              # double 153.38
	.quad	0x403568f5c28f5c29              # double 21.41
	.quad	0x404550a3d70a3d71              # double 42.630000000000003
	.quad	0x404a2a3d70a3d70a              # double 52.329999999999998
	.quad	0x40573eb851eb851f              # double 92.980000000000003
	.quad	0x4025c7ae147ae148              # double 10.890000000000001
	.quad	0x40436f5c28f5c28f              # double 38.869999999999997
	.quad	0x40354f5c28f5c28f              # double 21.309999999999999
	.quad	0x404a7c28f5c28f5c              # double 52.969999999999999
	.quad	0x404a07ae147ae148              # double 52.060000000000002
	.quad	0x405558f5c28f5c29              # double 85.39
	.quad	0x4031eb851eb851ec              # double 17.920000000000002
	.quad	0x404955c28f5c28f6              # double 50.670000000000002
	.quad	0x40524851eb851eb8              # double 73.129999999999995
	.quad	0x405fb33333333333              # double 126.8
	.quad	0x405040a3d70a3d71              # double 65.010000000000005
	.quad	0x406069eb851eb852              # double 131.31
	.quad	0x4042bd70a3d70a3d              # double 37.479999999999997
	.quad	0x4055666666666666              # double 85.599999999999994
	.quad	0x404f79999999999a              # double 62.950000000000003
	.quad	0x405b88f5c28f5c29              # double 110.14
	.quad	0x404f83d70a3d70a4              # double 63.030000000000001
	.quad	0x405a428f5c28f5c3              # double 105.04000000000001
	.quad	0x4024333333333333              # double 10.1
	.quad	0x4049c8f5c28f5c29              # double 51.57
	.quad	0x404bf1eb851eb852              # double 55.890000000000001
	.quad	0x40584a3d70a3d70a              # double 97.159999999999996
	.quad	0x4030333333333333              # double 16.199999999999999
	.quad	0x4050f8f5c28f5c29              # double 67.890000000000001
	.quad	0x402c3851eb851eb8              # double 14.109999999999999
	.quad	0x40437d70a3d70a3d              # double 38.979999999999997
	.quad	0x404168f5c28f5c29              # double 34.82
	.quad	0x4054033333333333              # double 80.049999999999997
	.quad	0x4045c3d70a3d70a4              # double 43.530000000000001
	.quad	0x4055e1eb851eb852              # double 87.530000000000001
	.quad	0x40546147ae147ae1              # double 81.519999999999996
	.quad	0x4062bf5c28f5c28f              # double 149.97999999999999
	.quad	0x40504c28f5c28f5c              # double 65.189999999999998
	.quad	0x405fe70a3d70a3d7              # double 127.61
	.quad	0x402b99999999999a              # double 13.800000000000001
	.quad	0x40459eb851eb851f              # double 43.240000000000002
	.quad	0x404f47ae147ae148              # double 62.560000000000002
	.quad	0x4057fae147ae147b              # double 95.920000000000001
	.quad	0x40400b851eb851ec              # double 32.090000000000003
	.quad	0x4051328f5c28f5c3              # double 68.790000000000006
	.quad	0x403859999999999a              # double 24.350000000000001
	.quad	0x404a28f5c28f5c29              # double 52.32
	.quad	0x40210a3d70a3d70a              # double 8.5199999999999996
	.quad	0x404459999999999a              # double 40.700000000000003
	.quad	0x4054fc28f5c28f5c              # double 83.939999999999998
	.quad	0x40619ae147ae147b              # double 140.84
	.quad	0x40531d70a3d70a3d              # double 76.459999999999993
	.quad	0x405d5f5c28f5c28f              # double 117.48999999999999
	.quad	0x4023eb851eb851ec              # double 9.9600000000000008
	.quad	0x4045b851eb851eb8              # double 43.439999999999998
	.quad	0x4056bccccccccccd              # double 90.950000000000002
	.quad	0x4060ac28f5c28f5c              # double 133.38
	.quad	0x403dc7ae147ae148              # double 29.780000000000001
	.quad	0x4051b147ae147ae1              # double 70.769999999999996
	.quad	0x402ea3d70a3d70a4              # double 15.32
	.quad	0x4043c8f5c28f5c29              # double 39.57
	.quad	0x405420a3d70a3d71              # double 80.510000000000005
	.quad	0x406053851eb851ec              # double 130.61000000000001
	.quad	0x405249999999999a              # double 73.150000000000006
	.quad	0x405d7b851eb851ec              # double 117.93000000000001
	.quad	0x4025b33333333333              # double 10.85
	.quad	0x404a68f5c28f5c29              # double 52.82
	.quad	0x4050f5c28f5c28f6              # double 67.840000000000003
	.quad	0x405b028f5c28f5c3              # double 108.04000000000001
	.quad	0x405530a3d70a3d71              # double 84.760000000000005
	.quad	0x406078a3d70a3d71              # double 131.77000000000001
	.quad	0x40428e147ae147ae              # double 37.109999999999999
	.quad	0x4052ae147ae147ae              # double 74.719999999999999
	.quad	0x404d828f5c28f5c3              # double 59.020000000000003
	.quad	0x405bb3d70a3d70a4              # double 110.81
	.quad	0x4054d0a3d70a3d71              # double 83.260000000000005
	.quad	0x40614d70a3d70a3d              # double 138.41999999999999
	.quad	0x40465d70a3d70a3d              # double 44.729999999999997
	.quad	0x405a251eb851eb85              # double 104.58
	.quad	0x4057e28f5c28f5c3              # double 95.540000000000006
	.quad	0x4062cfae147ae148              # double 150.49000000000001
	.quad	0x404e7ae147ae147b              # double 60.960000000000001
	.quad	0x40555ae147ae147b              # double 85.420000000000001
	.quad	0x4051ae147ae147ae              # double 70.719999999999999
	.quad	0x405b900000000000              # double 110.25
	.quad	0x404319999999999a              # double 38.200000000000003
	.quad	0x40534d70a3d70a3d              # double 77.209999999999993
	.quad	0x40540c28f5c28f5c              # double 80.189999999999998
	.quad	0x405ed66666666666              # double 123.34999999999999
	.quad	0x4037c00000000000              # double 23.75
	.quad	0x404c0ccccccccccd              # double 56.100000000000001
	.quad	0x40426a3d70a3d70a              # double 36.829999999999998
	.quad	0x4056df5c28f5c28f              # double 91.489999999999994
	.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
