Semester Project - CPU Temps

Thomas J. Kennedy

Contents:

1 Overview

As a Computer Scientist, I have a number of interests. Many of these interests overlap. While designing this project, I happened to be batch encoding some videos. I decided to write a quick script to grab CPU temperature data every 30 seconds. This resulted in three sets of data:

To visualize this data I used Gnuplot to generate three graphs:

Click on each item to view either the graph or raw text file.

Each of the encoding jobs ran for 5 to 10 hours. If you look at the data you see four temperatures for each reading. My CPU is a 4-core (8 thread) Intel i7-6700K. I found myself interested in not only the behavior of the readings, but also in the temperature differences between the 4 CPU cores.

1.1 Input

Data takes the form of temperatures in a txt file. All data points are whitespace delimited. For example, if I had 5 temperature readings:

Example 1: Sample Input with Labels
+61.0°C +63.0°C +50.0°C +58.0°C
+80.0°C +81.0°C +68.0°C +77.0°C
+62.0°C +63.0°C +52.0°C +60.0°C
+83.0°C +82.0°C +70.0°C +79.0°C
+68.0°C +69.0°C +58.0°C +65.0°C
Example 2: Sample Input without Labels
61.0 63.0 50.0 58.0
80.0 81.0 68.0 77.0
62.0 63.0 52.0 60.0
83.0 82.0 70.0 79.0
68.0 69.0 58.0 65.0

would be a possible input files. Each line represents temperature readings from 4 processor cores. Process each temperature column independently. Readings are taken every 30 seconds. In this example:

Your first step should be to pre-process this data into a usable form. Conceptually, you need the data in the following format:

 
Time (sec) Core 0 Core 1 Core 2 Core 3
0 61.0 63.0 50.0 58.0
30 80.0 81.0 68.0 77.0
60 62.0 63.0 52.0 60.0
90 83.0 82.0 70.0 79.0
120 68.0 69.0 58.0 65.0

This “table” can be represented by five vectors (or similar data structure), e.g.,

Example 3: Data Structures: C++
std::vector<int> time = {};
std::vector<double> readings_core_0 = {};
std::vector<double> readings_core_1 = {};
std::vector<double> readings_core_2 = {};
std::vector<double> readings_core_3 = {};
Example 4: Data Structures: Java
int[] time = new int[numberOfReadings];
double[] readings_core_0 = new double[numberOfReadings]; 
double[] readings_core_1 = new double[numberOfReadings]; 
double[] readings_core_2 = new double[numberOfReadings]; 
double[] readings_core_3 = new double[numberOfReadings]; 
Example 5: Data Structures: Python
time = []
readings_core_0 = []
readings_core_1 = []
readings_core_2 = []
readings_core_3 = []

1.2 Import Input Libraries

You may opt to #include or import the C++, Java, or Python input libraries provided here.

1.3 Output Format

All output must be written to text files (one file per core). Each line must take the form:

\(x_{k} <= x < x_{k+1}\); \(y_i=c_0 + c_{1} x\) ; type

where

 

For the example data in described in Section 2.1 (Input Format) you would generate 4 output files.

2 Sample Execution & Output

2.1 Input Data

The Overview listed three input files, as an introduction. If you would like more test data…

2.2 Sample Output

The following is an example of piecewise linear interpolation output for a single core.

ex-interpolation-one-core.txt
      0 <= x <      30; y_0      =      61.0000 +   0.6333x; interpolation
     30 <= x <      60; y_1      =      98.0000 +  -0.6000x; interpolation
     60 <= x <      90; y_2      =      20.0000 +   0.7000x; interpolation
     90 <= x <     120; y_3      =     128.0000 +  -0.5000x; interpolation
    120 <= x <     150; y_4      =      12.0000 +   0.4667x; interpolation
    150 <= x <     180; y_5      =     112.0000 +  -0.2000x; interpolation
    180 <= x <     210; y_6      =      34.0000 +   0.2333x; interpolation
    210 <= x <     240; y_7      =     146.0000 +  -0.3000x; interpolation
    240 <= x <     270; y_8      =       2.0000 +   0.3000x; interpolation
    270 <= x <     300; y_9      =     137.0000 +  -0.2000x; interpolation
    300 <= x <     330; y_10     =     197.0000 +  -0.4000x; interpolation
    330 <= x <     360; y_11     =     -78.0000 +   0.4333x; interpolation
    360 <= x <     390; y_12     =     222.0000 +  -0.4000x; interpolation
    390 <= x <     420; y_13     =      79.0000 +  -0.0333x; interpolation
    420 <= x <     450; y_14     =    -215.0000 +   0.6667x; interpolation
    450 <= x <     480; y_15     =      85.0000 +   0.0000x; interpolation
    480 <= x <     510; y_16     =     389.0000 +  -0.6333x; interpolation
    510 <= x <     540; y_17     =     151.0000 +  -0.1667x; interpolation
    540 <= x <     570; y_18     =    -353.0000 +   0.7667x; interpolation
    570 <= x <     600; y_19     =     445.0000 +  -0.6333x; interpolation
    600 <= x <     630; y_20     =      45.0000 +   0.0333x; interpolation
    630 <= x <     660; y_21     =      87.0000 +  -0.0333x; interpolation
    660 <= x <     690; y_22     =    -375.0000 +   0.6667x; interpolation
    690 <= x <     720; y_23     =      85.0000 +   0.0000x; interpolation
    720 <= x <     750; y_24     =     541.0000 +  -0.6333x; interpolation
    750 <= x <     780; y_25     =    -434.0000 +   0.6667x; interpolation
    780 <= x <     810; y_26     =      86.0000 +   0.0000x; interpolation
    810 <= x <     840; y_27     =     167.0000 +  -0.1000x; interpolation
    840 <= x <     870; y_28     =      -1.0000 +   0.1000x; interpolation
    870 <= x <     900; y_29     =      86.0000 +   0.0000x; interpolation
    900 <= x <     930; y_30     =      56.0000 +   0.0333x; interpolation
    930 <= x <     960; y_31     =     118.0000 +  -0.0333x; interpolation
    960 <= x <     990; y_32     =     246.0000 +  -0.1667x; interpolation
    990 <= x <    1020; y_33     =     -51.0000 +   0.1333x; interpolation
   1020 <= x <    1050; y_34     =     731.0000 +  -0.6333x; interpolation
   1050 <= x <    1080; y_35     =     101.0000 +  -0.0333x; interpolation
   1080 <= x <    1110; y_36     =    -619.0000 +   0.6333x; interpolation
   1110 <= x <    1140; y_37     =      84.0000 +   0.0000x; interpolation
   1140 <= x <    1170; y_38     =     160.0000 +  -0.0667x; interpolation
   1170 <= x <    1200; y_39     =     121.0000 +  -0.0333x; interpolation
   1200 <= x <    1230; y_40     =       1.0000 +   0.0667x; interpolation
   1230 <= x <    1260; y_41     =      42.0000 +   0.0333x; interpolation
   1260 <= x <    1290; y_42     =     -42.0000 +   0.1000x; interpolation
   1290 <= x <    1320; y_43     =     302.0000 +  -0.1667x; interpolation
   1320 <= x <    1350; y_44     =    1006.0000 +  -0.7000x; interpolation
   1350 <= x <    1380; y_45     =     -29.0000 +   0.0667x; interpolation
   1380 <= x <    1410; y_46     =    -121.0000 +   0.1333x; interpolation
   1410 <= x <    1440; y_47     =    -685.0000 +   0.5333x; interpolation
   1440 <= x <    1470; y_48     =     -13.0000 +   0.0667x; interpolation
   1470 <= x <    1500; y_49     =     -13.0000 +   0.0667x; interpolation
   1500 <= x <    1530; y_50     =     437.0000 +  -0.2333x; interpolation
   1530 <= x <    1560; y_51     =     845.0000 +  -0.5000x; interpolation
   1560 <= x <    1590; y_52     =    -871.0000 +   0.6000x; interpolation
   1590 <= x <    1620; y_53     =     -23.0000 +   0.0667x; interpolation
   1620 <= x <    1650; y_54     =      85.0000 +   0.0000x; interpolation
   1650 <= x <    1680; y_55     =    1185.0000 +  -0.6667x; interpolation
   1680 <= x <    1710; y_56     =    -999.0000 +   0.6333x; interpolation
   1710 <= x <    1740; y_57     =    1167.0000 +  -0.6333x; interpolation
   1740 <= x <    1770; y_58     =    -109.0000 +   0.1000x; interpolation
   1770 <= x <    1800; y_59     =     245.0000 +  -0.1000x; interpolation
   1800 <= x <    1830; y_60     =   -1015.0000 +   0.6000x; interpolation
   1830 <= x <    1860; y_61     =    1181.0000 +  -0.6000x; interpolation
   1860 <= x <    1890; y_62     =       3.0000 +   0.0333x; interpolation
   1890 <= x <    1920; y_63     =   -1194.0000 +   0.6667x; interpolation
   1920 <= x <    1950; y_64     =    1238.0000 +  -0.6000x; interpolation
   1950 <= x <    1980; y_65     =     328.0000 +  -0.1333x; interpolation
   1980 <= x <    2010; y_66     =    -134.0000 +   0.1000x; interpolation
   2010 <= x <    2040; y_67     =     134.0000 +  -0.0333x; interpolation
   2040 <= x <    2070; y_68     =      66.0000 +   0.0000x; interpolation
   2070 <= x <    2100; y_69     =   -1314.0000 +   0.6667x; interpolation
   2100 <= x <    2130; y_70     =     646.0000 +  -0.2667x; interpolation
   2130 <= x <    2160; y_71     =    3628.0000 +  -1.6667x; interpolation
   2160 <= x <    2190; y_72     =     172.0000 +  -0.0667x; interpolation
   2190 <= x <    2220; y_73     =   -4062.0000 +   1.8667x; interpolation
   2220 <= x <    2250; y_74     =    1192.0000 +  -0.5000x; interpolation
   2250 <= x <    2280; y_75     =   -1208.0000 +   0.5667x; interpolation
   2280 <= x <    2310; y_76     =    1452.0000 +  -0.6000x; interpolation
   2310 <= x <    2340; y_77     =   -1397.0000 +   0.6333x; interpolation
   2340 <= x <    2370; y_78     =     -71.0000 +   0.0667x; interpolation
   2370 <= x <    2400; y_79     =    1825.0000 +  -0.7333x; interpolation
   2400 <= x <    2430; y_80     =   -1535.0000 +   0.6667x; interpolation
   2430 <= x <    2460; y_81     =     247.0000 +  -0.0667x; interpolation
   2460 <= x <    2490; y_82     =    1395.0000 +  -0.5333x; interpolation
   2490 <= x <    2520; y_83     =     150.0000 +  -0.0333x; interpolation
   2520 <= x <    2550; y_84     =     -18.0000 +   0.0333x; interpolation
   2550 <= x <    2580; y_85     =   -1463.0000 +   0.6000x; interpolation
   2580 <= x <    2610; y_86     =     -87.0000 +   0.0667x; interpolation
   2610 <= x <    2640; y_87     =    2088.0000 +  -0.7667x; interpolation
   2640 <= x <    2670; y_88     =    -288.0000 +   0.1333x; interpolation
   2670 <= x <    2700; y_89     =   -1534.0000 +   0.6000x; interpolation
   2700 <= x <    2730; y_90     =     266.0000 +  -0.0667x; interpolation
   2730 <= x <    2760; y_91     =      -7.0000 +   0.0333x; interpolation
   2760 <= x <    2790; y_92     =     269.0000 +  -0.0667x; interpolation
   2790 <= x <    2820; y_93     =    1664.0000 +  -0.5667x; interpolation
   2820 <= x <    2850; y_94     =    -122.0000 +   0.0667x; interpolation
   2850 <= x <    2880; y_95     =    -502.0000 +   0.2000x; interpolation
   2880 <= x <    2910; y_96     =     554.0000 +  -0.1667x; interpolation
   2910 <= x <    2940; y_97     =   -1580.0000 +   0.5667x; interpolation
   2940 <= x <    2970; y_98     =     576.0000 +  -0.1667x; interpolation
   2970 <= x <    3000; y_99     =    -315.0000 +   0.1333x; interpolation
   3000 <= x <    3030; y_100    =     285.0000 +  -0.0667x; interpolation
   3030 <= x <    3060; y_101    =     -18.0000 +   0.0333x; interpolation
   3060 <= x <    3090; y_102    =     186.0000 +  -0.0333x; interpolation
   3090 <= x <    3120; y_103    =    -432.0000 +   0.1667x; interpolation
   3120 <= x <    3150; y_104    =     296.0000 +  -0.0667x; interpolation
   3150 <= x <    3180; y_105    =    2186.0000 +  -0.6667x; interpolation
   3180 <= x <    3210; y_106    =   -1736.0000 +   0.5667x; interpolation
   3210 <= x <    3240; y_107    =    1902.0000 +  -0.5667x; interpolation
   3240 <= x <    3270; y_108    =    -258.0000 +   0.1000x; interpolation
   3270 <= x <    3300; y_109    =   -1784.0000 +   0.5667x; interpolation
   3300 <= x <    3330; y_110    =     416.0000 +  -0.1000x; interpolation
   3330 <= x <    3360; y_111    =    -250.0000 +   0.1000x; interpolation
   3360 <= x <    3390; y_112    =     -26.0000 +   0.0333x; interpolation
   3390 <= x <    3420; y_113    =      87.0000 +   0.0000x; interpolation
   3420 <= x <    3450; y_114    =     315.0000 +  -0.0667x; interpolation
   3450 <= x <    3480; y_115    =      85.0000 +   0.0000x; interpolation
   3480 <= x <    3510; y_116    =    1941.0000 +  -0.5333x; interpolation
   3510 <= x <    3540; y_117    =   -1803.0000 +   0.5333x; interpolation
   3540 <= x <    3570; y_118    =     321.0000 +  -0.0667x; interpolation
   3570 <= x <    3600; y_119    =    -274.0000 +   0.1000x; interpolation
   3600 <= x <    3630; y_120    =     446.0000 +  -0.1000x; interpolation
   3630 <= x <    3660; y_121    =    -522.0000 +   0.1667x; interpolation
   3660 <= x <    3690; y_122    =     576.0000 +  -0.1333x; interpolation
   3690 <= x <    3720; y_123    =     -39.0000 +   0.0333x; interpolation
   3720 <= x <    3750; y_124    =     209.0000 +  -0.0333x; interpolation
   3750 <= x <    3780; y_125    =    2334.0000 +  -0.6000x; interpolation
   3780 <= x <    3810; y_126    =   -2454.0000 +   0.6667x; interpolation
   3810 <= x <    3840; y_127    =     -41.0000 +   0.0333x; interpolation
   3840 <= x <    3870; y_128    =     599.0000 +  -0.1333x; interpolation
   3870 <= x <    3900; y_129    =    2276.0000 +  -0.5667x; interpolation
   3900 <= x <    3930; y_130    =      66.0000 +   0.0000x; interpolation
   3930 <= x <    3960; y_131    =   -2554.0000 +   0.6667x; interpolation
   3960 <= x <    3990; y_132    =    1010.0000 +  -0.2333x; interpolation
   3990 <= x <    4020; y_133    =    1808.0000 +  -0.4333x; interpolation
   4020 <= x <    4050; y_134    =    -202.0000 +   0.0667x; interpolation
   4050 <= x <    4080; y_135    =   -1957.0000 +   0.5000x; interpolation
   4080 <= x <    4110; y_136    =      83.0000 +   0.0000x; interpolation
   4110 <= x <    4140; y_137    =    2549.0000 +  -0.6000x; interpolation
   4140 <= x <    4170; y_138    =   -2833.0000 +   0.7000x; interpolation
   4170 <= x <    4200; y_139    =     781.0000 +  -0.1667x; interpolation
   4200 <= x <    4230; y_140    =    2321.0000 +  -0.5333x; interpolation
   4230 <= x <    4260; y_141    =   -3037.0000 +   0.7333x; interpolation
   4260 <= x <    4290; y_142    =     371.0000 +  -0.0667x; interpolation
   4290 <= x <    4320; y_143    =    2945.0000 +  -0.6667x; interpolation
   4320 <= x <    4350; y_144    =    -511.0000 +   0.1333x; interpolation
   4350 <= x <    4380; y_145    =   -2251.0000 +   0.5333x; interpolation
   4380 <= x <    4410; y_146    =    2859.0000 +  -0.6333x; interpolation
   4410 <= x <    4440; y_147    =    5799.0000 +  -1.3000x; interpolation
   4440 <= x <    4470; y_148    =   -5893.0000 +   1.3333x; interpolation
   4470 <= x <    4500; y_149    =     365.0000 +  -0.0667x; interpolation
   4500 <= x <    4530; y_150    =   -2185.0000 +   0.5000x; interpolation
   4530 <= x <    4560; y_151    =    -977.0000 +   0.2333x; interpolation
   4560 <= x <    4590; y_152    =    1303.0000 +  -0.2667x; interpolation
   4590 <= x <    4620; y_153    =   -1145.0000 +   0.2667x; interpolation
   4620 <= x <    4650; y_154    =    1319.0000 +  -0.2667x; interpolation
   4650 <= x <    4680; y_155    =   -1161.0000 +   0.2667x; interpolation
   4680 <= x <    4710; y_156    =    1179.0000 +  -0.2333x; interpolation
   4710 <= x <    4740; y_157    =   -1019.0000 +   0.2333x; interpolation
   4740 <= x <    4770; y_158    =     403.0000 +  -0.0667x; interpolation
   4770 <= x <    4800; y_159    =    3424.0000 +  -0.7000x; interpolation
   4800 <= x <    4830; y_160    =   -3616.0000 +   0.7667x; interpolation
   4830 <= x <    4860; y_161    =    3629.0000 +  -0.7333x; interpolation
   4860 <= x <    4890; y_162    =   -3175.0000 +   0.6667x; interpolation
   4890 <= x <    4920; y_163    =    3345.0000 +  -0.6667x; interpolation
   4920 <= x <    4950; y_164    =   -3379.0000 +   0.7000x; interpolation
   4950 <= x <    4980; y_165    =    3386.0000 +  -0.6667x; interpolation
   4980 <= x <    5010; y_166    =    -764.0000 +   0.1667x; interpolation
   5010 <= x <    5040; y_167    =   -2100.0000 +   0.4333x; interpolation
   5040 <= x <    5070; y_168    =    2436.0000 +  -0.4667x; interpolation
   5070 <= x <    5100; y_169    =   -1620.0000 +   0.3333x; interpolation
   5100 <= x <    5130; y_170    =      80.0000 +   0.0000x; interpolation
   5130 <= x <    5160; y_171    =    2474.0000 +  -0.4667x; interpolation
   5160 <= x <    5190; y_172    =   -3202.0000 +   0.6333x; interpolation
   5190 <= x <    5220; y_173    =    3199.0000 +  -0.6000x; interpolation
   5220 <= x <    5250; y_174    =    1111.0000 +  -0.2000x; interpolation
   5250 <= x <    5280; y_175    =    -989.0000 +   0.2000x; interpolation
   5280 <= x <    5310; y_176    =    -813.0000 +   0.1667x; interpolation
   5310 <= x <    5340; y_177    =   -2406.0000 +   0.4667x; interpolation
   5340 <= x <    5370; y_178    =    2400.0000 +  -0.4333x; interpolation
   5370 <= x <    5400; y_179    =   -1896.0000 +   0.3667x; interpolation
   5400 <= x <    5430; y_180    =    2064.0000 +  -0.3667x; interpolation
   5430 <= x <    5460; y_181    =   -1737.0000 +   0.3333x; interpolation
   5460 <= x <    5490; y_182    =    1175.0000 +  -0.2000x; interpolation
   5490 <= x <    5520; y_183    =    2090.0000 +  -0.3667x; interpolation
   5520 <= x <    5550; y_184    =   -3246.0000 +   0.6000x; interpolation
   5550 <= x <    5580; y_185    =    3044.0000 +  -0.5333x; interpolation
   5580 <= x <    5610; y_186    =   -2722.0000 +   0.5000x; interpolation
   5610 <= x <    5640; y_187    =    3075.0000 +  -0.5333x; interpolation
   5640 <= x <    5670; y_188    =   -3505.0000 +   0.6333x; interpolation
   5670 <= x <    5700; y_189    =    1598.0000 +  -0.2667x; interpolation
   5700 <= x <    5730; y_190    =    2738.0000 +  -0.4667x; interpolation
   5730 <= x <    5760; y_191    =   -3947.0000 +   0.7000x; interpolation
   5760 <= x <    5790; y_192    =    3733.0000 +  -0.6333x; interpolation
   5790 <= x <    5820; y_193    =   -3987.0000 +   0.7000x; interpolation
   5820 <= x <    5850; y_194    =    4355.0000 +  -0.7333x; interpolation
   5850 <= x <    5880; y_195    =   -4225.0000 +   0.7333x; interpolation
   5880 <= x <    5910; y_196    =    4203.0000 +  -0.7000x; interpolation
   5910 <= x <    5940; y_197    =   -3480.0000 +   0.6000x; interpolation
   5940 <= x <    5970; y_198    =    -312.0000 +   0.0667x; interpolation
   5970 <= x <    6000; y_199    =     683.0000 +  -0.1000x; interpolation
   6000 <= x <    6030; y_200    =    3683.0000 +  -0.6000x; interpolation
   6030 <= x <    6060; y_201    =   -3955.0000 +   0.6667x; interpolation
   6060 <= x <    6090; y_202    =    3923.0000 +  -0.6333x; interpolation
   6090 <= x <    6120; y_203    =   -4197.0000 +   0.7000x; interpolation
   6120 <= x <    6150; y_204    =     903.0000 +  -0.1333x; interpolation
   6150 <= x <    6180; y_205    =      83.0000 +   0.0000x; interpolation
   6180 <= x <    6210; y_206    =    -947.0000 +   0.1667x; interpolation
   6210 <= x <    6240; y_207    =    4642.0000 +  -0.7333x; interpolation
   6240 <= x <    6270; y_208    =   -3886.0000 +   0.6333x; interpolation
   6270 <= x <    6300; y_209    =    3847.0000 +  -0.6000x; interpolation
   6300 <= x <    6330; y_210    =   -4133.0000 +   0.6667x; interpolation
   6330 <= x <    6360; y_211    =    4096.0000 +  -0.6333x; interpolation
   6360 <= x <    6390; y_212    =   -3748.0000 +   0.6000x; interpolation
   6390 <= x <    6420; y_213    =    -127.0000 +   0.0333x; interpolation
   6420 <= x <    6450; y_214    =     515.0000 +  -0.0667x; interpolation
   6450 <= x <    6480; y_215    =     515.0000 +  -0.0667x; interpolation
   6480 <= x <    6510; y_216    =    3971.0000 +  -0.6000x; interpolation
   6510 <= x <    6540; y_217    =   -4709.0000 +   0.7333x; interpolation
   6540 <= x <    6570; y_218    =    4665.0000 +  -0.7000x; interpolation
   6570 <= x <    6600; y_219    =   -4095.0000 +   0.6333x; interpolation
   6600 <= x <    6630; y_220    =    4265.0000 +  -0.6333x; interpolation
   6630 <= x <    6660; y_221    =    -376.0000 +   0.0667x; interpolation
   6660 <= x <    6690; y_222    =   -3706.0000 +   0.5667x; interpolation
   6690 <= x <    6720; y_223    =     531.0000 +  -0.0667x; interpolation
   6720 <= x <    6750; y_224    =    3891.0000 +  -0.5667x; interpolation
   6750 <= x <    6780; y_225    =     516.0000 +  -0.0667x; interpolation
   6780 <= x <    6810; y_226    =    7070.0000 +  -1.0333x; interpolation
   6810 <= x <    6840; y_227    =     714.0000 +  -0.1000x; interpolation
   6840 <= x <    6870; y_228    =  -11370.0000 +   1.6667x; interpolation
   6870 <= x <    6900; y_229    =    -607.0000 +   0.1000x; interpolation
   6900 <= x <    6930; y_230    =    -377.0000 +   0.0667x; interpolation
   6930 <= x <    6960; y_231    =     316.0000 +  -0.0333x; interpolation
   6960 <= x <    6990; y_232    =    1012.0000 +  -0.1333x; interpolation
   6990 <= x <    7020; y_233    =      80.0000 +   0.0000x; interpolation
   7020 <= x <    7050; y_234    =    1484.0000 +  -0.2000x; interpolation
   7050 <= x <    7080; y_235    =   -1336.0000 +   0.2000x; interpolation
   7080 <= x <    7110; y_236    =   -1572.0000 +   0.2333x; interpolation
   7110 <= x <    7140; y_237    =    5775.0000 +  -0.8000x; interpolation
   7140 <= x <    7170; y_238    =   -4697.0000 +   0.6667x; interpolation
   7170 <= x <    7200; y_239    =      83.0000 +   0.0000x; interpolation
   7200 <= x <    7230; y_240    =    -397.0000 +   0.0667x; interpolation
   7230 <= x <    7260; y_241    =     326.0000 +  -0.0333x; interpolation
   7260 <= x <    7290; y_242    =    4682.0000 +  -0.6333x; interpolation
   7290 <= x <    7320; y_243    =   -5281.0000 +   0.7333x; interpolation
   7320 <= x <    7350; y_244    =    5211.0000 +  -0.7000x; interpolation
   7350 <= x <    7380; y_245    =    -179.0000 +   0.0333x; interpolation
   7380 <= x <    7410; y_246    =   -4853.0000 +   0.6667x; interpolation
   7410 <= x <    7440; y_247    =    5027.0000 +  -0.6667x; interpolation
   7440 <= x <    7470; y_248    =   -5141.0000 +   0.7000x; interpolation
   7470 <= x <    7500; y_249    =    1084.0000 +  -0.1333x; interpolation
   7500 <= x <    7530; y_250    =      84.0000 +   0.0000x; interpolation
   7530 <= x <    7560; y_251    =    2092.0000 +  -0.2667x; interpolation
   7560 <= x <    7590; y_252    =    3100.0000 +  -0.4000x; interpolation
   7590 <= x <    7620; y_253    =    -695.0000 +   0.1000x; interpolation
   7620 <= x <    7650; y_254    =   -3997.0000 +   0.5333x; interpolation
   7650 <= x <    7680; y_255    =      83.0000 +   0.0000x; interpolation
   7680 <= x <    7710; y_256    =    -685.0000 +   0.1000x; interpolation
   7710 <= x <    7740; y_257    =     343.0000 +  -0.0333x; interpolation
   7740 <= x <    7770; y_258    =    5245.0000 +  -0.6667x; interpolation
   7770 <= x <    7800; y_259    =    -453.0000 +   0.0667x; interpolation
   7800 <= x <    7830; y_260    =   -4093.0000 +   0.5333x; interpolation
   7830 <= x <    7860; y_261    =    3998.0000 +  -0.5000x; interpolation
   7860 <= x <    7890; y_262    =   -4910.0000 +   0.6333x; interpolation
   7890 <= x <    7920; y_263    =      87.0000 +   0.0000x; interpolation
   7920 <= x <    7950; y_264    =     351.0000 +  -0.0333x; interpolation
   7950 <= x <    7980; y_265    =     351.0000 +  -0.0333x; interpolation
   7980 <= x <    8010; y_266    =    5405.0000 +  -0.6667x; interpolation
   8010 <= x <    8040; y_267    =   -4474.0000 +   0.5667x; interpolation
   8040 <= x <    8070; y_268    =    4370.0000 +  -0.5333x; interpolation
   8070 <= x <    8100; y_269    =   -5045.0000 +   0.6333x; interpolation
   8100 <= x <    8130; y_270    =    4945.0000 +  -0.6000x; interpolation
   8130 <= x <    8160; y_271    =    -475.0000 +   0.0667x; interpolation
   8160 <= x <    8190; y_272    =     885.0000 +  -0.1000x; interpolation
   8190 <= x <    8220; y_273    =   -5940.0000 +   0.7333x; interpolation
   8220 <= x <    8250; y_274    =     636.0000 +  -0.0667x; interpolation
   8250 <= x <    8280; y_275    =    5036.0000 +  -0.6000x; interpolation
   8280 <= x <    8310; y_276    =   -4900.0000 +   0.6000x; interpolation
   8310 <= x <    8340; y_277    =    5072.0000 +  -0.6000x; interpolation
   8340 <= x <    8370; y_278    =   -4380.0000 +   0.5333x; interpolation
   8370 <= x <    8400; y_279    =     642.0000 +  -0.0667x; interpolation
   8400 <= x <    8430; y_280    =    4842.0000 +  -0.5667x; interpolation
   8430 <= x <    8460; y_281    =   -5836.0000 +   0.7000x; interpolation
   8460 <= x <    8490; y_282    =    1496.0000 +  -0.1667x; interpolation
   8490 <= x <    8520; y_283    =    7156.0000 +  -0.8333x; interpolation
   8520 <= x <    8550; y_284    =   -3068.0000 +   0.3667x; interpolation
   8550 <= x <    8580; y_285    =   -4778.0000 +   0.5667x; interpolation
   8580 <= x <    8610; y_286    =    5232.0000 +  -0.6000x; interpolation
   8610 <= x <    8640; y_287    =   -5961.0000 +   0.7000x; interpolation
   8640 <= x <    8670; y_288    =    4983.0000 +  -0.5667x; interpolation
   8670 <= x <    8700; y_289    =   -5132.0000 +   0.6000x; interpolation
   8700 <= x <    8730; y_290    =    7338.0000 +  -0.8333x; interpolation
   8730 <= x <    8760; y_291    =   -5757.0000 +   0.6667x; interpolation
   8760 <= x <    8790; y_292    =    5047.0000 +  -0.5667x; interpolation
   8790 <= x <    8820; y_293    =      66.0000 +   0.0000x; interpolation
   8820 <= x <    8850; y_294    =   -5520.0000 +   0.6333x; interpolation
   8850 <= x <    8880; y_295    =     380.0000 +  -0.0333x; interpolation
   8880 <= x <    8910; y_296    =    -508.0000 +   0.0667x; interpolation
   8910 <= x <    8940; y_297    =     680.0000 +  -0.0667x; interpolation
   8940 <= x <    8970; y_298    =      84.0000 +   0.0000x; interpolation
   8970 <= x <    9000; y_299    =    5167.0000 +  -0.5667x; interpolation
   9000 <= x <    9030; y_300    =    -833.0000 +   0.1000x; interpolation
   9030 <= x <    9060; y_301    =   -4144.0000 +   0.4667x; interpolation
   9060 <= x <    9090; y_302    =    4312.0000 +  -0.4667x; interpolation
   9090 <= x <    9120; y_303    =   -4172.0000 +   0.4667x; interpolation
   9120 <= x <    9150; y_304    =    4340.0000 +  -0.4667x; interpolation
   9150 <= x <    9180; y_305    =    2815.0000 +  -0.3000x; interpolation
   9180 <= x <    9210; y_306    =    5569.0000 +  -0.6000x; interpolation
   9210 <= x <    9240; y_307    =    4341.0000 +  -0.4667x; interpolation
   9240 <= x <    9270; y_308    =  -12291.0000 +   1.3333x; interpolation
   9270 <= x <    9300; y_309    =   -4257.0000 +   0.4667x; interpolation
   9300 <= x <    9330; y_310    =    5353.0000 +  -0.5667x; interpolation
   9330 <= x <    9360; y_311    =   -4599.0000 +   0.5000x; interpolation
   9360 <= x <    9390; y_312    =    3825.0000 +  -0.4000x; interpolation
   9390 <= x <    9420; y_313    =   -4626.0000 +   0.5000x; interpolation
   9420 <= x <    9450; y_314    =    1654.0000 +  -0.1667x; interpolation
   9450 <= x <    9480; y_315    =    -866.0000 +   0.1000x; interpolation
   9480 <= x <    9510; y_316    =     714.0000 +  -0.0667x; interpolation
   9510 <= x <    9540; y_317    =    4835.0000 +  -0.5000x; interpolation
   9540 <= x <    9570; y_318    =   -1525.0000 +   0.1667x; interpolation
   9570 <= x <    9600; y_319    =   -4396.0000 +   0.4667x; interpolation
   9600 <= x <    9630; y_320    =    2324.0000 +  -0.2333x; interpolation
   9630 <= x <    9660; y_321    =   -3133.0000 +   0.3333x; interpolation
   9660 <= x <    9690; y_322    =    3307.0000 +  -0.3333x; interpolation
   9690 <= x <    9720; y_323    =    3953.0000 +  -0.4000x; interpolation
   9720 <= x <    9750; y_324    =   -6739.0000 +   0.7000x; interpolation
   9750 <= x <    9780; y_325    =    6261.0000 +  -0.6333x; interpolation
   9780 <= x <    9810; y_326    =   -6453.0000 +   0.6667x; interpolation
   9810 <= x <    9840; y_327    =    1068.0000 +  -0.1000x; interpolation
   9840 <= x <    9870; y_328    =    3036.0000 +  -0.3000x; interpolation
   9870 <= x <    9900; y_329    =   -3215.0000 +   0.3333x; interpolation
   9900 <= x <    9930; y_330    =    1735.0000 +  -0.1667x; interpolation
   9930 <= x <    9960; y_331    =   -1244.0000 +   0.1333x; interpolation
   9960 <= x <    9990; y_332    =    -580.0000 +   0.0667x; interpolation
   9990 <= x <   10020; y_333    =     419.0000 +  -0.0333x; interpolation
  10020 <= x <   10050; y_334    =    7099.0000 +  -0.7000x; interpolation
  10050 <= x <   10080; y_335    =   -7306.0000 +   0.7333x; interpolation
  10080 <= x <   10110; y_336    =    7142.0000 +  -0.7000x; interpolation
  10110 <= x <   10140; y_337    =    -272.0000 +   0.0333x; interpolation
  10140 <= x <   10170; y_338    =   -6694.0000 +   0.6667x; interpolation
  10170 <= x <   10200; y_339    =    6527.0000 +  -0.6333x; interpolation
  10200 <= x <   10230; y_340    =   -5033.0000 +   0.5000x; interpolation
  10230 <= x <   10260; y_341    =    6220.0000 +  -0.6000x; interpolation
  10260 <= x <   10290; y_342    =   -7118.0000 +   0.7000x; interpolation
  10290 <= x <   10320; y_343    =      85.0000 +   0.0000x; interpolation
  10320 <= x <   10350; y_344    =    1117.0000 +  -0.1000x; interpolation
  10350 <= x <   10380; y_345    =    5257.0000 +  -0.5000x; interpolation
  10380 <= x <   10410; y_346    =   -5815.0000 +   0.5667x; interpolation
  10410 <= x <   10440; y_347    =    6330.0000 +  -0.6000x; interpolation
  10440 <= x <   10470; y_348    =   -6894.0000 +   0.6667x; interpolation
  10470 <= x <   10500; y_349    =    7066.0000 +  -0.6667x; interpolation
  10500 <= x <   10530; y_350    =   -6584.0000 +   0.6333x; interpolation
  10530 <= x <   10560; y_351    =     436.0000 +  -0.0333x; interpolation
  10560 <= x <   10590; y_352    =    -972.0000 +   0.1000x; interpolation
  10590 <= x <   10620; y_353    =    1146.0000 +  -0.1000x; interpolation
  10620 <= x <   10650; y_354    =    -978.0000 +   0.1000x; interpolation
  10650 <= x <   10680; y_355    =    2572.0000 +  -0.2333x; interpolation
  10680 <= x <   10710; y_356    =    6132.0000 +  -0.5667x; interpolation
  10710 <= x <   10740; y_357    =   -7791.0000 +   0.7333x; interpolation
  10740 <= x <   10770; y_358    =    7245.0000 +  -0.6667x; interpolation
  10770 <= x <   10800; y_359    =   -7474.0000 +   0.7000x; interpolation
  10800 <= x <   10830; y_360    =    8366.0000 +  -0.7667x; interpolation
  10830 <= x <   10860; y_361    =   -1381.0000 +   0.1333x; interpolation
  10860 <= x <   10890; y_362    =   -6449.0000 +   0.6000x; interpolation
  10890 <= x <   10920; y_363    =    1900.0000 +  -0.1667x; interpolation
  10920 <= x <   10950; y_364    =   -2104.0000 +   0.2000x; interpolation
  10950 <= x <   10980; y_365    =    1181.0000 +  -0.1000x; interpolation
  10980 <= x <   11010; y_366    =   -1381.0000 +   0.1333x; interpolation
  11010 <= x <   11040; y_367    =    7794.0000 +  -0.7000x; interpolation
  11040 <= x <   11070; y_368    =   -6926.0000 +   0.6333x; interpolation
  11070 <= x <   11100; y_369    =    7096.0000 +  -0.6333x; interpolation
  11100 <= x <   11130; y_370    =   -7704.0000 +   0.7000x; interpolation
  11130 <= x <   11160; y_371    =    7878.0000 +  -0.7000x; interpolation
  11160 <= x <   11190; y_372    =    -306.0000 +   0.0333x; interpolation
  11190 <= x <   11220; y_373    =   -5155.0000 +   0.4667x; interpolation
  11220 <= x <   11250; y_374    =    5317.0000 +  -0.4667x; interpolation
  11250 <= x <   11280; y_375    =   -6308.0000 +   0.5667x; interpolation
  11280 <= x <   11310; y_376    =    6476.0000 +  -0.5667x; interpolation
  11310 <= x <   11340; y_377    =   -6719.0000 +   0.6000x; interpolation
  11340 <= x <   11370; y_378    =    6889.0000 +  -0.6000x; interpolation
  11370 <= x <   11400; y_379    =   -6755.0000 +   0.6000x; interpolation
  11400 <= x <   11430; y_380    =     845.0000 +  -0.0667x; interpolation
  11430 <= x <   11460; y_381    =   21800.0000 +  -1.9000x; interpolation
  11460 <= x <   11490; y_382    =  -14872.0000 +   1.3000x; interpolation
  11490 <= x <   11520; y_383    =     831.0000 +  -0.0667x; interpolation
  11520 <= x <   11550; y_384    =   -8385.0000 +   0.7333x; interpolation
  11550 <= x <   11580; y_385    =    7785.0000 +  -0.6667x; interpolation
  11580 <= x <   11610; y_386    =   -7655.0000 +   0.6667x; interpolation
  11610 <= x <   11640; y_387    =    8212.0000 +  -0.7000x; interpolation
  11640 <= x <   11670; y_388    =   -7696.0000 +   0.6667x; interpolation
  11670 <= x <   11700; y_389    =    7475.0000 +  -0.6333x; interpolation
  11700 <= x <   11730; y_390    =   -7345.0000 +   0.6333x; interpolation
  11730 <= x <   11760; y_391    =    7513.0000 +  -0.6333x; interpolation
  11760 <= x <   11790; y_392    =   -8167.0000 +   0.7000x; interpolation
  11790 <= x <   11820; y_393    =    2444.0000 +  -0.2000x; interpolation
  11820 <= x <   11850; y_394    =    4808.0000 +  -0.4000x; interpolation
  11850 <= x <   11880; y_395    =   -5857.0000 +   0.5000x; interpolation
  11880 <= x <   11910; y_396    =    2459.0000 +  -0.2000x; interpolation
  11910 <= x <   11940; y_397    =   -3893.0000 +   0.3333x; interpolation
  11940 <= x <   11970; y_398    =    2077.0000 +  -0.1667x; interpolation
  11970 <= x <   12000; y_399    =   -1913.0000 +   0.1667x; interpolation
  12000 <= x <   12030; y_400    =     887.0000 +  -0.0667x; interpolation
  12030 <= x <   12060; y_401    =    7704.0000 +  -0.6333x; interpolation
  12060 <= x <   12090; y_402    =   -7974.0000 +   0.6667x; interpolation
  12090 <= x <   12120; y_403    =    8146.0000 +  -0.6667x; interpolation
  12120 <= x <   12150; y_404    =   -7206.0000 +   0.6000x; interpolation
  12150 <= x <   12180; y_405    =    7779.0000 +  -0.6333x; interpolation
  12180 <= x <   12210; y_406    =   -5619.0000 +   0.4667x; interpolation
  12210 <= x <   12240; y_407    =    5777.0000 +  -0.4667x; interpolation
  12240 <= x <   12270; y_408    =   -1159.0000 +   0.1000x; interpolation
  12270 <= x <   12300; y_409    =   -6067.0000 +   0.5000x; interpolation
  12300 <= x <   12330; y_410    =    7053.0000 +  -0.5667x; interpolation
  12330 <= x <   12360; y_411    =   -6921.0000 +   0.5667x; interpolation
  12360 <= x <   12390; y_412    =    5851.0000 +  -0.4667x; interpolation
  12390 <= x <   12420; y_413    =   -6126.0000 +   0.5000x; interpolation
  12420 <= x <   12450; y_414    =    1326.0000 +  -0.1000x; interpolation
  12450 <= x <   12480; y_415    =    6306.0000 +  -0.5000x; interpolation
  12480 <= x <   12510; y_416    =   -7422.0000 +   0.6000x; interpolation
  12510 <= x <   12540; y_417    =    7590.0000 +  -0.6000x; interpolation
  12540 <= x <   12570; y_418    =   -1188.0000 +   0.1000x; interpolation
  12570 <= x <   12600; y_419    =   -5797.0000 +   0.4667x; interpolation
  12600 <= x <   12630; y_420    =      83.0000 +   0.0000x; interpolation
  12630 <= x <   12660; y_421    =   -1180.0000 +   0.1000x; interpolation
  12660 <= x <   12690; y_422    =    8104.0000 +  -0.6333x; interpolation
  12690 <= x <   12720; y_423    =   -7124.0000 +   0.5667x; interpolation
  12720 <= x <   12750; y_424    =    6868.0000 +  -0.5333x; interpolation
  12750 <= x <   12780; y_425    =   -6307.0000 +   0.5000x; interpolation
  12780 <= x <   12810; y_426    =    6899.0000 +  -0.5333x; interpolation
  12810 <= x <   12840; y_427    =   -7619.0000 +   0.6000x; interpolation
  12840 <= x <   12870; y_428    =    7361.0000 +  -0.5667x; interpolation
  12870 <= x <   12900; y_429    =   -6796.0000 +   0.5333x; interpolation
  12900 <= x <   12930; y_430    =    6534.0000 +  -0.5000x; interpolation
  12930 <= x <   12960; y_431    =   -5965.0000 +   0.4667x; interpolation
  12960 <= x <   12990; y_432    =    7859.0000 +  -0.6000x; interpolation
  12990 <= x <   13020; y_433    =   -8595.0000 +   0.6667x; interpolation
  13020 <= x <   13050; y_434    =    7029.0000 +  -0.5333x; interpolation
  13050 <= x <   13080; y_435    =   -6891.0000 +   0.5333x; interpolation
  13080 <= x <   13110; y_436    =    2265.0000 +  -0.1667x; interpolation
  13110 <= x <   13140; y_437    =   -1231.0000 +   0.1000x; interpolation
  13140 <= x <   13170; y_438    =    5777.0000 +  -0.4333x; interpolation
  13170 <= x <   13200; y_439    =   -6515.0000 +   0.5000x; interpolation
  13200 <= x <   13230; y_440    =    1405.0000 +  -0.1000x; interpolation
  13230 <= x <   13260; y_441    =   -1241.0000 +   0.1000x; interpolation
  13260 <= x <   13290; y_442    =    3179.0000 +  -0.2333x; interpolation
  13290 <= x <   13320; y_443    =   -3466.0000 +   0.2667x; interpolation
  13320 <= x <   13350; y_444    =    3194.0000 +  -0.2333x; interpolation
  13350 <= x <   13380; y_445    =   -2591.0000 +   0.2000x; interpolation
  13380 <= x <   13410; y_446    =    8113.0000 +  -0.6000x; interpolation
  13410 <= x <   13440; y_447    =    4984.0000 +  -0.3667x; interpolation
  13440 <= x <   13470; y_448    =  -12936.0000 +   0.9667x; interpolation
  13470 <= x <   13500; y_449    =    8616.0000 +  -0.6333x; interpolation
  13500 <= x <   13530; y_450    =   -9384.0000 +   0.7000x; interpolation
  13530 <= x <   13560; y_451    =    9107.0000 +  -0.6667x; interpolation
  13560 <= x <   13590; y_452    =   -8069.0000 +   0.6000x; interpolation
  13590 <= x <   13620; y_453    =    9145.0000 +  -0.6667x; interpolation
  13620 <= x <   13650; y_454    =   -9015.0000 +   0.6667x; interpolation
  13650 <= x <   13680; y_455    =    9185.0000 +  -0.6667x; interpolation
  13680 <= x <   13710; y_456    =   -2215.0000 +   0.1667x; interpolation
  13710 <= x <   13740; y_457    =    9667.0000 +  -0.7000x; interpolation
  13740 <= x <   13770; y_458    =   10583.0000 +  -0.7667x; interpolation
  13770 <= x <   13800; y_459    =  -22465.0000 +   1.6333x; interpolation
  13800 <= x <   13830; y_460    =   -3145.0000 +   0.2333x; interpolation
  13830 <= x <   13860; y_461    =    7919.0000 +  -0.5667x; interpolation
  13860 <= x <   13890; y_462    =   -8251.0000 +   0.6000x; interpolation
  13890 <= x <   13920; y_463    =    8880.0000 +  -0.6333x; interpolation
  13920 <= x <   13950; y_464    =   -8752.0000 +   0.6333x; interpolation
  13950 <= x <   13980; y_465    =    8918.0000 +  -0.6333x; interpolation
  13980 <= x <   14010; y_466    =   -9722.0000 +   0.7000x; interpolation
  14010 <= x <   14040; y_467    =    8958.0000 +  -0.6333x; interpolation
  14040 <= x <   14070; y_468    =   -7422.0000 +   0.5333x; interpolation
  14070 <= x <   14100; y_469    =    8055.0000 +  -0.5667x; interpolation
  14100 <= x <   14130; y_470    =   -9335.0000 +   0.6667x; interpolation
  14130 <= x <   14160; y_471    =    9505.0000 +  -0.6667x; interpolation
  14160 <= x <   14190; y_472    =   -1351.0000 +   0.1000x; interpolation
  14190 <= x <   14220; y_473    =   -7500.0000 +   0.5333x; interpolation
  14220 <= x <   14250; y_474    =    7668.0000 +  -0.5333x; interpolation
  14250 <= x <   14280; y_475    =   -8482.0000 +   0.6000x; interpolation
  14280 <= x <   14310; y_476    =    8654.0000 +  -0.6000x; interpolation
  14310 <= x <   14340; y_477    =   -7564.0000 +   0.5333x; interpolation
  14340 <= x <   14370; y_478    =    8210.0000 +  -0.5667x; interpolation
  14370 <= x <   14400; y_479    =   -9992.0000 +   0.7000x; interpolation
  14400 <= x <   14430; y_480    =     568.0000 +  -0.0333x; interpolation
  14430 <= x <   14460; y_481    =   10188.0000 +  -0.7000x; interpolation
  14460 <= x <   14490; y_482    =   -9092.0000 +   0.6333x; interpolation
  14490 <= x <   14520; y_483    =    7813.0000 +  -0.5333x; interpolation
  14520 <= x <   14550; y_484    =   -6223.0000 +   0.4333x; interpolation
  14550 <= x <   14580; y_485    =    5902.0000 +  -0.4000x; interpolation
  14580 <= x <   14610; y_486    =   -5276.0000 +   0.3667x; interpolation
  14610 <= x <   14640; y_487    =    7873.0000 +  -0.5333x; interpolation
  14640 <= x <   14670; y_488    =   -8231.0000 +   0.5667x; interpolation
  14670 <= x <   14700; y_489    =    9862.0000 +  -0.6667x; interpolation
  14700 <= x <   14730; y_490    =  -11208.0000 +   0.7667x; interpolation
  14730 <= x <   14760; y_491    =    9414.0000 +  -0.6333x; interpolation
  14760 <= x <   14790; y_492    =   -8790.0000 +   0.6000x; interpolation
  14790 <= x <   14820; y_493    =    -902.0000 +   0.0667x; interpolation
  14820 <= x <   14850; y_494    =    6508.0000 +  -0.4333x; interpolation
  14850 <= x <   14880; y_495    =   -6362.0000 +   0.4333x; interpolation
  14880 <= x <   14910; y_496    =    3062.0000 +  -0.2000x; interpolation
  14910 <= x <   14940; y_497    =   -2902.0000 +   0.2000x; interpolation
  14940 <= x <   14970; y_498    =    3074.0000 +  -0.2000x; interpolation
  14970 <= x <   15000; y_499    =    6567.0000 +  -0.4333x; interpolation
  15000 <= x <   15030; y_500    =    -433.0000 +   0.0333x; interpolation
  15030 <= x <   15060; y_501    =   -7447.0000 +   0.5000x; interpolation
  15060 <= x <   15090; y_502    =    6609.0000 +  -0.4333x; interpolation
  15090 <= x <   15120; y_503    =   -6972.0000 +   0.4667x; interpolation
  15120 <= x <   15150; y_504    =    -420.0000 +   0.0333x; interpolation
  15150 <= x <   15180; y_505    =    -420.0000 +   0.0333x; interpolation
  15180 <= x <   15210; y_506    =      86.0000 +   0.0000x; interpolation
  15210 <= x <   15240; y_507    =    8705.0000 +  -0.5667x; interpolation
  15240 <= x <   15270; y_508    =   -8567.0000 +   0.5667x; interpolation
  15270 <= x <   15300; y_509    =    5176.0000 +  -0.3333x; interpolation
  15300 <= x <   15330; y_510    =   -3494.0000 +   0.2333x; interpolation
  15330 <= x <   15360; y_511    =    5704.0000 +  -0.3667x; interpolation
  15360 <= x <   15390; y_512    =   -7096.0000 +   0.4667x; interpolation
  15390 <= x <   15420; y_513    =   10859.0000 +  -0.7000x; interpolation
  15420 <= x <   15450; y_514    =  -10215.0000 +   0.6667x; interpolation
  15450 <= x <   15480; y_515    =    9870.0000 +  -0.6333x; interpolation
  15480 <= x <   15510; y_516    =      66.0000 +   0.0000x; interpolation
  15510 <= x <   15540; y_517    =      66.0000 +   0.0000x; interpolation
  15540 <= x <   15570; y_518    =   -8222.0000 +   0.5333x; interpolation
  15570 <= x <   15600; y_519    =      82.0000 +   0.0000x; interpolation
  15600 <= x <   15630; y_520    =    2162.0000 +  -0.1333x; interpolation
  15630 <= x <   15660; y_521    =   -3569.0000 +   0.2333x; interpolation
  15660 <= x <   15690; y_522    =    1129.0000 +  -0.0667x; interpolation
  15690 <= x <   15720; y_523    =   -2009.0000 +   0.1333x; interpolation
  15720 <= x <   15750; y_524    =    2183.0000 +  -0.1333x; interpolation
  15750 <= x <   15780; y_525    =    9533.0000 +  -0.6000x; interpolation
  15780 <= x <   15810; y_526    =  -10455.0000 +   0.6667x; interpolation
  15810 <= x <   15840; y_527    =   10625.0000 +  -0.6667x; interpolation
  15840 <= x <   15870; y_528    =  -10495.0000 +   0.6667x; interpolation
  15870 <= x <   15900; y_529    =    -444.0000 +   0.0333x; interpolation
  15900 <= x <   15930; y_530    =     616.0000 +  -0.0333x; interpolation
  15930 <= x <   15960; y_531    =   10705.0000 +  -0.6667x; interpolation
  15960 <= x <   15990; y_532    =  -11107.0000 +   0.7000x; interpolation
  15990 <= x <   16020; y_533    =   11279.0000 +  -0.7000x; interpolation
  16020 <= x <   16050; y_534    =  -10081.0000 +   0.6333x; interpolation
  16050 <= x <   16080; y_535    =   17739.0000 +  -1.1000x; interpolation
  16080 <= x <   16110; y_536    =   12915.0000 +  -0.8000x; interpolation
  16110 <= x <   16140; y_537    =  -23601.0000 +   1.4667x; interpolation
  16140 <= x <   16170; y_538    =   -5309.0000 +   0.3333x; interpolation
  16170 <= x <   16200; y_539    =   -2075.0000 +   0.1333x; interpolation
  16200 <= x <   16230; y_540    =   11425.0000 +  -0.7000x; interpolation
  16230 <= x <   16260; y_541    =   -9674.0000 +   0.6000x; interpolation
  16260 <= x <   16290; y_542    =    9296.0000 +  -0.5667x; interpolation
  16290 <= x <   16320; y_543    =   -9709.0000 +   0.6000x; interpolation
  16320 <= x <   16350; y_544    =    9331.0000 +  -0.5667x; interpolation
  16350 <= x <   16380; y_545    =   -8109.0000 +   0.5000x; interpolation
  16380 <= x <   16410; y_546    =    8271.0000 +  -0.5000x; interpolation
  16410 <= x <   16440; y_547    =  -10327.0000 +   0.6333x; interpolation
  16440 <= x <   16470; y_548    =   10497.0000 +  -0.6333x; interpolation
  16470 <= x <   16500; y_549    =   -9816.0000 +   0.6000x; interpolation
  16500 <= x <   16530; y_550    =    9984.0000 +  -0.6000x; interpolation
  16530 <= x <   16560; y_551    =   -8199.0000 +   0.5000x; interpolation
  16560 <= x <   16590; y_552    =    8361.0000 +  -0.5000x; interpolation
  16590 <= x <   16620; y_553    =   -9888.0000 +   0.6000x; interpolation
  16620 <= x <   16650; y_554    =   10056.0000 +  -0.6000x; interpolation
  16650 <= x <   16680; y_555    =  -10479.0000 +   0.6333x; interpolation
  16680 <= x <   16710; y_556    =   10093.0000 +  -0.6000x; interpolation
  16710 <= x <   16740; y_557    =   -7174.0000 +   0.4333x; interpolation
  16740 <= x <   16770; y_558    =    7334.0000 +  -0.4333x; interpolation
  16770 <= x <   16800; y_559    =   -9436.0000 +   0.5667x; interpolation
  16800 <= x <   16830; y_560    =   10164.0000 +  -0.6000x; interpolation
  16830 <= x <   16860; y_561    =  -10032.0000 +   0.6000x; interpolation
  16860 <= x <   16890; y_562    =   10762.0000 +  -0.6333x; interpolation
  16890 <= x <   16920; y_563    =   -9506.0000 +   0.5667x; interpolation
  16920 <= x <   16950; y_564    =    8542.0000 +  -0.5000x; interpolation
  16950 <= x <   16980; y_565    =  -10103.0000 +   0.6000x; interpolation
  16980 <= x <   17010; y_566    =   10273.0000 +  -0.6000x; interpolation
  17010 <= x <   17040; y_567    =   -9572.0000 +   0.5667x; interpolation
  17040 <= x <   17070; y_568    =    9740.0000 +  -0.5667x; interpolation
  17070 <= x <   17100; y_569    =   -8468.0000 +   0.5000x; interpolation
  17100 <= x <   17130; y_570    =   -1628.0000 +   0.1000x; interpolation
  17130 <= x <   17160; y_571    =   11505.0000 +  -0.6667x; interpolation
  17160 <= x <   17190; y_572    =  -11947.0000 +   0.7000x; interpolation
  17190 <= x <   17220; y_573    =   12692.0000 +  -0.7333x; interpolation
  17220 <= x <   17250; y_574    =   -9694.0000 +   0.5667x; interpolation
  17250 <= x <   17280; y_575    =    9856.0000 +  -0.5667x; interpolation
  17280 <= x <   17310; y_576    =  -12032.0000 +   0.7000x; interpolation
  17310 <= x <   17340; y_577    =     662.0000 +  -0.0333x; interpolation
  17340 <= x <   17370; y_578    =    9910.0000 +  -0.5667x; interpolation
  17370 <= x <   17400; y_579    =   -8039.0000 +   0.4667x; interpolation
  17400 <= x <   17430; y_580    =   10521.0000 +  -0.6000x; interpolation
  17430 <= x <   17460; y_581    =   -6909.0000 +   0.4000x; interpolation
  17460 <= x <   17490; y_582    =    4731.0000 +  -0.2667x; interpolation
  17490 <= x <   17520; y_583    =   -9261.0000 +   0.5333x; interpolation
  17520 <= x <   17550; y_584    =    8843.0000 +  -0.5000x; interpolation
  17550 <= x <   17580; y_585    =   -9877.0000 +   0.5667x; interpolation
  17580 <= x <   17610; y_586    =   10633.0000 +  -0.6000x; interpolation
  17610 <= x <   17640; y_587    =   -9912.0000 +   0.5667x; interpolation
  17640 <= x <   17670; y_588    =    9492.0000 +  -0.5333x; interpolation
  17670 <= x <   17700; y_589    =    1835.0000 +  -0.1000x; interpolation
  17700 <= x <   17730; y_590    =  -11735.0000 +   0.6667x; interpolation
  17730 <= x <   17760; y_591    =   11905.0000 +  -0.6667x; interpolation
  17760 <= x <   17790; y_592    =  -11775.0000 +   0.6667x; interpolation
  17790 <= x <   17820; y_593    =   11945.0000 +  -0.6667x; interpolation
  17820 <= x <   17850; y_594    =  -11221.0000 +   0.6333x; interpolation
  17850 <= x <   17880; y_595    =   11984.0000 +  -0.6667x; interpolation
  17880 <= x <   17910; y_596    =  -13048.0000 +   0.7333x; interpolation
  17910 <= x <   17940; y_597    =   12623.0000 +  -0.7000x; interpolation
  17940 <= x <   17970; y_598    =  -10699.0000 +   0.6000x; interpolation
  17970 <= x <   18000; y_599    =   10865.0000 +  -0.6000x; interpolation
  18000 <= x <   18030; y_600    =  -10735.0000 +   0.6000x; interpolation
  18030 <= x <   18060; y_601    =   11502.0000 +  -0.6333x; interpolation
  18060 <= x <   18090; y_602    =  -12578.0000 +   0.7000x; interpolation
  18090 <= x <   18120; y_603    =   12145.0000 +  -0.6667x; interpolation
  18120 <= x <   18150; y_604    =  -12015.0000 +   0.6667x; interpolation
  18150 <= x <   18180; y_605    =   12790.0000 +  -0.7000x; interpolation
  18180 <= x <   18210; y_606    =  -12662.0000 +   0.7000x; interpolation
  18210 <= x <   18240; y_607    =   12225.0000 +  -0.6667x; interpolation
  18240 <= x <   18270; y_608    =  -10879.0000 +   0.6000x; interpolation
  18270 <= x <   18300; y_609    =   11045.0000 +  -0.6000x; interpolation
  18300 <= x <   18330; y_610    =  -10305.0000 +   0.5667x; interpolation
  18330 <= x <   18360; y_611    =    9858.0000 +  -0.5333x; interpolation
  18360 <= x <   18390; y_612    =  -11562.0000 +   0.6333x; interpolation
  18390 <= x <   18420; y_613    =    4989.0000 +  -0.2667x; interpolation
  18420 <= x <   18450; y_614    =   31391.0000 +  -1.7000x; interpolation
  18450 <= x <   18480; y_615    =    1256.0000 +  -0.0667x; interpolation
  18480 <= x <   18510; y_616    =  -36320.0000 +   1.9667x; interpolation
  18510 <= x <   18540; y_617    =   12423.0000 +  -0.6667x; interpolation
  18540 <= x <   18570; y_618    =  -12297.0000 +   0.6667x; interpolation
  18570 <= x <   18600; y_619    =   11844.0000 +  -0.6333x; interpolation
  18600 <= x <   18630; y_620    =  -12956.0000 +   0.7000x; interpolation
  18630 <= x <   18660; y_621    =   13126.0000 +  -0.7000x; interpolation
  18660 <= x <   18690; y_622    =  -11754.0000 +   0.6333x; interpolation
  18690 <= x <   18720; y_623    =   11920.0000 +  -0.6333x; interpolation
  18720 <= x <   18750; y_624    =  -12416.0000 +   0.6667x; interpolation
  18750 <= x <   18780; y_625    =   11959.0000 +  -0.6333x; interpolation
  18780 <= x <   18810; y_626    =   -9325.0000 +   0.5000x; interpolation
  18810 <= x <   18840; y_627    =   -3055.0000 +   0.1667x; interpolation
  18840 <= x <   18870; y_628    =    1341.0000 +  -0.0667x; interpolation
  18870 <= x <   18900; y_629    =     712.0000 +  -0.0333x; interpolation
  18900 <= x <   18930; y_630    =    8902.0000 +  -0.4667x; interpolation
  18930 <= x <   18960; y_631    =   -8766.0000 +   0.4667x; interpolation
  18960 <= x <   18990; y_632    =    8298.0000 +  -0.4333x; interpolation
  18990 <= x <   19020; y_633    =   -9426.0000 +   0.5000x; interpolation
  19020 <= x <   19050; y_634    =    -550.0000 +   0.0333x; interpolation
  19050 <= x <   19080; y_635    =   12150.0000 +  -0.6333x; interpolation
  19080 <= x <   19110; y_636    =  -12654.0000 +   0.6667x; interpolation
  19110 <= x <   19140; y_637    =   13463.0000 +  -0.7000x; interpolation
  19140 <= x <   19170; y_638    =  -11419.0000 +   0.6000x; interpolation
  19170 <= x <   19200; y_639    =   11585.0000 +  -0.6000x; interpolation
  19200 <= x <   19230; y_640    =  -12735.0000 +   0.6667x; interpolation
  19230 <= x <   19260; y_641    =   12905.0000 +  -0.6667x; interpolation
  19260 <= x <   19290; y_642    =  -12133.0000 +   0.6333x; interpolation
  19290 <= x <   19320; y_643    =   12301.0000 +  -0.6333x; interpolation
  19320 <= x <   19350; y_644    =  -12171.0000 +   0.6333x; interpolation
  19350 <= x <   19380; y_645    =   11694.0000 +  -0.6000x; interpolation
  19380 <= x <   19410; y_646    =  -12208.0000 +   0.6333x; interpolation
  19410 <= x <   19440; y_647    =   13025.0000 +  -0.6667x; interpolation
  19440 <= x <   19470; y_648    =   -9007.0000 +   0.4667x; interpolation
  19470 <= x <   19500; y_649    =    8516.0000 +  -0.4333x; interpolation
  19500 <= x <   19530; y_650    =  -11634.0000 +   0.6000x; interpolation
  19530 <= x <   19560; y_651    =   12453.0000 +  -0.6333x; interpolation
  19560 <= x <   19590; y_652    =  -12975.0000 +   0.6667x; interpolation
  19590 <= x <   19620; y_653    =   13145.0000 +  -0.6667x; interpolation
  19620 <= x <   19650; y_654    =  -13015.0000 +   0.6667x; interpolation
  19650 <= x <   19680; y_655    =   13185.0000 +  -0.6667x; interpolation
  19680 <= x <   19710; y_656    =  -11743.0000 +   0.6000x; interpolation
  19710 <= x <   19740; y_657    =   11252.0000 +  -0.5667x; interpolation
  19740 <= x <   19770; y_658    =  -11778.0000 +   0.6000x; interpolation
  19770 <= x <   19800; y_659    =   13923.0000 +  -0.7000x; interpolation
  19800 <= x <   19830; y_660    =  -14457.0000 +   0.7333x; interpolation
  19830 <= x <   19860; y_661    =   12644.0000 +  -0.6333x; interpolation
  19860 <= x <   19890; y_662    =   -3244.0000 +   0.1667x; interpolation
  19890 <= x <   19920; y_663    =   -5896.0000 +   0.3000x; interpolation
  19920 <= x <   19950; y_664    =    5392.0000 +  -0.2667x; interpolation
  19950 <= x <   19980; y_665    =   -7908.0000 +   0.4000x; interpolation
  19980 <= x <   20010; y_666    =    8742.0000 +  -0.4333x; interpolation
  20010 <= x <   20040; y_667    =   -7933.0000 +   0.4000x; interpolation
  20040 <= x <   20070; y_668    =    8099.0000 +  -0.4000x; interpolation
  20070 <= x <   20100; y_669    =   -7288.0000 +   0.3667x; interpolation
  20100 <= x <   20130; y_670    =    6782.0000 +  -0.3333x; interpolation
  20130 <= x <   20160; y_671    =   -5967.0000 +   0.3000x; interpolation
  20160 <= x <   20190; y_672    =    5457.0000 +  -0.2667x; interpolation
  20190 <= x <   20220; y_673    =   -5311.0000 +   0.2667x; interpolation
  20220 <= x <   20250; y_674    =    5473.0000 +  -0.2667x; interpolation
  20250 <= x <   20280; y_675    =   -4652.0000 +   0.2333x; interpolation
  20280 <= x <   20310; y_676    =   -3300.0000 +   0.1667x; interpolation
  20310 <= x <   20340; y_677    =    2793.0000 +  -0.1333x; interpolation
  20340 <= x <   20370; y_678    =   -2631.0000 +   0.1333x; interpolation
  20370 <= x <   20400; y_679    =    2122.0000 +  -0.1000x; interpolation
  20400 <= x <   20430; y_680    =   -1958.0000 +   0.1000x; interpolation
  20430 <= x <   20460; y_681    =    1447.0000 +  -0.0667x; interpolation
  20460 <= x <   20490; y_682    =      83.0000 +   0.0000x; interpolation
  20490 <= x <   20520; y_683    =      83.0000 +   0.0000x; interpolation
  20520 <= x <   20550; y_684    =    -601.0000 +   0.0333x; interpolation
  20550 <= x <   20580; y_685    =   15154.0000 +  -0.7333x; interpolation
  20580 <= x <   20610; y_686    =   22700.0000 +  -1.1000x; interpolation
  20610 <= x <   20640; y_687    =    2777.0000 +  -0.1333x; interpolation
  20640 <= x <   20670; y_688    =  -26119.0000 +   1.2667x; interpolation
  20670 <= x <   20700; y_689    =  -15095.0000 +   0.7333x; interpolation
  20700 <= x <   20730; y_690    =   15265.0000 +  -0.7333x; interpolation
  20730 <= x <   20760; y_691    =  -12375.0000 +   0.6000x; interpolation
  20760 <= x <   20790; y_692    =   12537.0000 +  -0.6000x; interpolation
  20790 <= x <   20820; y_693    =  -14490.0000 +   0.7000x; interpolation
  20820 <= x <   20850; y_694    =   14658.0000 +  -0.7000x; interpolation
  20850 <= x <   20880; y_695    =  -15227.0000 +   0.7333x; interpolation
  20880 <= x <   20910; y_696    =   14701.0000 +  -0.7000x; interpolation
  20910 <= x <   20940; y_697    =  -14573.0000 +   0.7000x; interpolation
  20940 <= x <   20970; y_698    =   14045.0000 +  -0.6667x; interpolation
  20970 <= x <   21000; y_699    =  -12517.0000 +   0.6000x; interpolation
  21000 <= x <   21030; y_700    =   12683.0000 +  -0.6000x; interpolation
  21030 <= x <   21060; y_701    =  -13254.0000 +   0.6333x; interpolation
  21060 <= x <   21090; y_702    =   14124.0000 +  -0.6667x; interpolation
  21090 <= x <   21120; y_703    =  -13293.0000 +   0.6333x; interpolation
  21120 <= x <   21150; y_704    =   13459.0000 +  -0.6333x; interpolation
  21150 <= x <   21180; y_705    =  -13331.0000 +   0.6333x; interpolation
  21180 <= x <   21210; y_706    =   13497.0000 +  -0.6333x; interpolation
  21210 <= x <   21240; y_707    =  -15490.0000 +   0.7333x; interpolation
  21240 <= x <   21270; y_708    =   15662.0000 +  -0.7333x; interpolation
  21270 <= x <   21300; y_709    =  -14116.0000 +   0.6667x; interpolation
  21300 <= x <   21330; y_710    =   13574.0000 +  -0.6333x; interpolation
  21330 <= x <   21360; y_711    =  -14155.0000 +   0.6667x; interpolation
  21360 <= x <   21390; y_712    =   14325.0000 +  -0.6667x; interpolation
  21390 <= x <   21420; y_713    =    6482.0000 +  -0.3000x; interpolation
  21420 <= x <   21450; y_714    =   -6370.0000 +   0.3000x; interpolation
  21450 <= x <   21480; y_715    =  -13520.0000 +   0.6333x; interpolation
  21480 <= x <   21510; y_716    =   17268.0000 +  -0.8000x; interpolation
  21510 <= x <   21540; y_717    =  -16431.0000 +   0.7667x; interpolation
  21540 <= x <   21570; y_718    =   15879.0000 +  -0.7333x; interpolation
  21570 <= x <   21600; y_719    =  -17914.0000 +   0.8333x; interpolation
  21600 <= x <   21630; y_720    =   15206.0000 +  -0.7000x; interpolation
  21630 <= x <   21660; y_721    =  -13634.0000 +   0.6333x; interpolation
  21660 <= x <   21690; y_722    =   14524.0000 +  -0.6667x; interpolation
  21690 <= x <   21720; y_723    =  -15119.0000 +   0.7000x; interpolation
  21720 <= x <   21750; y_724    =   16013.0000 +  -0.7333x; interpolation
  21750 <= x <   21780; y_725    =  -15162.0000 +   0.7000x; interpolation
  21780 <= x <   21810; y_726    =   16782.0000 +  -0.7667x; interpolation
  21810 <= x <   21840; y_727    =  -17387.0000 +   0.8000x; interpolation
  21840 <= x <   21870; y_728    =   15373.0000 +  -0.7000x; interpolation
  21870 <= x <   21900; y_729    =  -14516.0000 +   0.6667x; interpolation
  21900 <= x <   21930; y_730    =   15414.0000 +  -0.7000x; interpolation
  21930 <= x <   21960; y_731    =  -16019.0000 +   0.7333x; interpolation
  21960 <= x <   21990; y_732    =   14725.0000 +  -0.6667x; interpolation
  21990 <= x <   22020; y_733    =  -15328.0000 +   0.7000x; interpolation
  22020 <= x <   22050; y_734    =   15500.0000 +  -0.7000x; interpolation
  22050 <= x <   22080; y_735    =  -13900.0000 +   0.6333x; interpolation
  22080 <= x <   22110; y_736    =   14804.0000 +  -0.6667x; interpolation
  22110 <= x <   22140; y_737    =  -13939.0000 +   0.6333x; interpolation
  22140 <= x <   22170; y_738    =   13367.0000 +  -0.6000x; interpolation
  22170 <= x <   22200; y_739    =  -13237.0000 +   0.6000x; interpolation
  22200 <= x <   22230; y_740    =   13403.0000 +  -0.6000x; interpolation
  22230 <= x <   22260; y_741    =  -14755.0000 +   0.6667x; interpolation
  22260 <= x <   22290; y_742    =   15667.0000 +  -0.7000x; interpolation
  22290 <= x <   22320; y_743    =  -14796.0000 +   0.6667x; interpolation
  22320 <= x <   22350; y_744    =      84.0000 +   0.0000x; interpolation
  22350 <= x <   22380; y_745    =   14239.0000 +  -0.6333x; interpolation
  22380 <= x <   22410; y_746    =   -3665.0000 +   0.1667x; interpolation
  22410 <= x <   22440; y_747    =   -4412.0000 +   0.2000x; interpolation
  22440 <= x <   22470; y_748    =   -5160.0000 +   0.2333x; interpolation
  22470 <= x <   22500; y_749    =   12067.0000 +  -0.5333x; interpolation
  22500 <= x <   22530; y_750    =  -11933.0000 +   0.5333x; interpolation
  22530 <= x <   22560; y_751    =   -2170.0000 +   0.1000x; interpolation
  22560 <= x <   22590; y_752    =    2342.0000 +  -0.1000x; interpolation
  22590 <= x <   22620; y_753    =   14390.0000 +  -0.6333x; interpolation
  22620 <= x <   22650; y_754    =    5342.0000 +  -0.2333x; interpolation
  22650 <= x <   22680; y_755    =  -19573.0000 +   0.8667x; interpolation
  22680 <= x <   22710; y_756    =   -3697.0000 +   0.1667x; interpolation
  22710 <= x <   22740; y_757    =    6144.0000 +  -0.2667x; interpolation
  22740 <= x <   22770; y_758    =   -3710.0000 +   0.1667x; interpolation
  22770 <= x <   22800; y_759    =   -1433.0000 +   0.0667x; interpolation
  22800 <= x <   22830; y_760    =   11487.0000 +  -0.5000x; interpolation
  22830 <= x <   22860; y_761    =    2355.0000 +  -0.1000x; interpolation
  22860 <= x <   22890; y_762    =    3879.0000 +  -0.1667x; interpolation
  22890 <= x <   22920; y_763    =  -17485.0000 +   0.7667x; interpolation
  22920 <= x <   22950; y_764    =    1615.0000 +  -0.0667x; interpolation
  22950 <= x <   22980; y_765    =   13855.0000 +  -0.6000x; interpolation
  22980 <= x <   23010; y_766    =  -13721.0000 +   0.6000x; interpolation
  23010 <= x <   23040; y_767    =    4687.0000 +  -0.2000x; interpolation
  23040 <= x <   23070; y_768    =   35407.0000 +  -1.5333x; interpolation
  23070 <= x <   23100; y_769    =    4647.0000 +  -0.2000x; interpolation
  23100 <= x <   23130; y_770    =  -43093.0000 +   1.8667x; interpolation
  23130 <= x <   23160; y_771    =    3167.0000 +  -0.1333x; interpolation
  23160 <= x <   23190; y_772    =   -4553.0000 +   0.2000x; interpolation
  23190 <= x <   23220; y_773    =    3950.0000 +  -0.1667x; interpolation
  23220 <= x <   23250; y_774    =   10142.0000 +  -0.4333x; interpolation
  23250 <= x <   23280; y_775    =  -14658.0000 +   0.6333x; interpolation
  23280 <= x <   23310; y_776    =   19486.0000 +  -0.8333x; interpolation
  23310 <= x <   23340; y_777    =   -9263.0000 +   0.4000x; interpolation
  23340 <= x <   23370; y_778    =    4741.0000 +  -0.2000x; interpolation
  23370 <= x <   23400; y_779    =   -7723.0000 +   0.3333x; interpolation
  23400 <= x <   23430; y_780    =   -6163.0000 +   0.2667x; interpolation
  23430 <= x <   23460; y_781    =    3209.0000 +  -0.1333x; interpolation
  23460 <= x <   23490; y_782    =   10247.0000 +  -0.4333x; interpolation
  23490 <= x <   23520; y_783    =   -6979.0000 +   0.3000x; interpolation
  23520 <= x <   23550; y_784    =   -6195.0000 +   0.2667x; interpolation
  23550 <= x <   23580; y_785    =      85.0000 +   0.0000x; interpolation
  23580 <= x <   23610; y_786    =   -1487.0000 +   0.0667x; interpolation
  23610 <= x <   23640; y_787    =    8744.0000 +  -0.3667x; interpolation
  23640 <= x <   23670; y_788    =   -7016.0000 +   0.3000x; interpolation
  23670 <= x <   23700; y_789    =   12709.0000 +  -0.5333x; interpolation
  23700 <= x <   23730; y_790    =  -10201.0000 +   0.4333x; interpolation
  23730 <= x <   23760; y_791    =   -3873.0000 +   0.1667x; interpolation
  23760 <= x <   23790; y_792    =   17511.0000 +  -0.7333x; interpolation
  23790 <= x <   23820; y_793    =   -1521.0000 +   0.0667x; interpolation
  23820 <= x <   23850; y_794    =  -17401.0000 +   0.7333x; interpolation
  23850 <= x <   23880; y_795    =   19169.0000 +  -0.8000x; interpolation
  23880 <= x <   23910; y_796    =  -16651.0000 +   0.7000x; interpolation
  23910 <= x <   23940; y_797    =   14432.0000 +  -0.6000x; interpolation
  23940 <= x <   23970; y_798    =      68.0000 +   0.0000x; interpolation
  23970 <= x <   24000; y_799    =  -13515.0000 +   0.5667x; interpolation
  24000 <= x <   24030; y_800    =   15285.0000 +  -0.6333x; interpolation
  24030 <= x <   24060; y_801    =  -15954.0000 +   0.6667x; interpolation
  24060 <= x <   24090; y_802    =    -716.0000 +   0.0333x; interpolation
  24090 <= x <   24120; y_803    =    4102.0000 +  -0.1667x; interpolation
  24120 <= x <   24150; y_804    =   -3134.0000 +   0.1333x; interpolation
  24150 <= x <   24180; y_805    =   14576.0000 +  -0.6000x; interpolation
  24180 <= x <   24210; y_806    =    1680.0000 +  -0.0667x; interpolation
  24210 <= x <   24240; y_807    =    -741.0000 +   0.0333x; interpolation
  24240 <= x <   24270; y_808    =  -17709.0000 +   0.7333x; interpolation
  24270 <= x <   24300; y_809    =    7370.0000 +  -0.3000x; interpolation
  24300 <= x <   24330; y_810    =   -3970.0000 +   0.1667x; interpolation
  24330 <= x <   24360; y_811    =    -726.0000 +   0.0333x; interpolation
  24360 <= x <   24390; y_812    =    -726.0000 +   0.0333x; interpolation
  24390 <= x <   24420; y_813    =    2526.0000 +  -0.1000x; interpolation
  24420 <= x <   24450; y_814    =    -730.0000 +   0.0333x; interpolation
  24450 <= x <   24480; y_815    =    -730.0000 +   0.0333x; interpolation
  24480 <= x <   24510; y_816    =   15590.0000 +  -0.6333x; interpolation
  24510 <= x <   24540; y_817    =  -14639.0000 +   0.6000x; interpolation
  24540 <= x <   24570; y_818    =   14809.0000 +  -0.6000x; interpolation
  24570 <= x <   24600; y_819    =    -752.0000 +   0.0333x; interpolation
  24600 <= x <   24630; y_820    =  -16332.0000 +   0.6667x; interpolation
  24630 <= x <   24660; y_821    =     909.0000 +  -0.0333x; interpolation
  24660 <= x <   24690; y_822    =    -735.0000 +   0.0333x; interpolation
  24690 <= x <   24720; y_823    =    2557.0000 +  -0.1000x; interpolation
  24720 <= x <   24750; y_824    =   -2387.0000 +   0.1000x; interpolation
  24750 <= x <   24780; y_825    =    1738.0000 +  -0.0667x; interpolation
  24780 <= x <   24810; y_826    =    -740.0000 +   0.0333x; interpolation
  24810 <= x <   24840; y_827    =     914.0000 +  -0.0333x; interpolation
  24840 <= x <   24870; y_828    =   -1570.0000 +   0.0667x; interpolation
  24870 <= x <   24900; y_829    =   15010.0000 +  -0.6000x; interpolation
  24900 <= x <   24930; y_830    =  -14870.0000 +   0.6000x; interpolation
  24930 <= x <   24960; y_831    =   15877.0000 +  -0.6333x; interpolation
  24960 <= x <   24990; y_832    =  -14075.0000 +   0.5667x; interpolation
  24990 <= x <   25020; y_833    =    2585.0000 +  -0.1000x; interpolation
  25020 <= x <   25050; y_834    =   15095.0000 +  -0.6000x; interpolation
  25050 <= x <   25080; y_835    =  -16635.0000 +   0.6667x; interpolation
  25080 <= x <   25110; y_836    =   -1587.0000 +   0.0667x; interpolation
  25110 <= x <   25140; y_837    =    1761.0000 +  -0.0667x; interpolation
  25140 <= x <   25170; y_838    =     923.0000 +  -0.0333x; interpolation
  25170 <= x <   25200; y_839    =   -2433.0000 +   0.1000x; interpolation
  25200 <= x <   25230; y_840    =   16887.0000 +  -0.6667x; interpolation
  25230 <= x <   25260; y_841    =  -15912.0000 +   0.6333x; interpolation
  25260 <= x <   25290; y_842    =   15242.0000 +  -0.6000x; interpolation
  25290 <= x <   25320; y_843    =    5126.0000 +  -0.2000x; interpolation
  25320 <= x <   25350; y_844    =  -23570.0000 +   0.9333x; interpolation
  25350 <= x <   25380; y_845    =    4315.0000 +  -0.1667x; interpolation
  25380 <= x <   25410; y_846    =   -2453.0000 +   0.1000x; interpolation
  25410 <= x <   25440; y_847    =   45826.0000 +  -1.8000x; interpolation
  25440 <= x <   25470; y_848    =    5122.0000 +  -0.2000x; interpolation
  25470 <= x <   25500; y_849    =  -46667.0000 +   1.8333x; interpolation
  25500 <= x <   25530; y_850    =   -2467.0000 +   0.1000x; interpolation
  25530 <= x <   25560; y_851    =    3490.0000 +  -0.1333x; interpolation
  25560 <= x <   25590; y_852    =   -4178.0000 +   0.1667x; interpolation
  25590 <= x <   25620; y_853    =   16294.0000 +  -0.6333x; interpolation
  25620 <= x <   25650; y_854    =    1776.0000 +  -0.0667x; interpolation
  25650 <= x <   25680; y_855    =  -14469.0000 +   0.5667x; interpolation
  25680 <= x <   25710; y_856    =   -3341.0000 +   0.1333x; interpolation
  25710 <= x <   25740; y_857    =   14656.0000 +  -0.5667x; interpolation
  25740 <= x <   25770; y_858    =  -15374.0000 +   0.6000x; interpolation
  25770 <= x <   25800; y_859    =    3524.0000 +  -0.1333x; interpolation
  25800 <= x <   25830; y_860    =   14704.0000 +  -0.5667x; interpolation
  25830 <= x <   25860; y_861    =    -794.0000 +   0.0333x; interpolation
  25860 <= x <   25890; y_862    =  -17172.0000 +   0.6667x; interpolation
  25890 <= x <   25920; y_863    =   15622.0000 +  -0.6000x; interpolation
  25920 <= x <   25950; y_864    =     934.0000 +  -0.0333x; interpolation
  25950 <= x <   25980; y_865    =    -796.0000 +   0.0333x; interpolation
  25980 <= x <   26010; y_866    =    1802.0000 +  -0.0667x; interpolation
  26010 <= x <   26040; y_867    =    -799.0000 +   0.0333x; interpolation
  26040 <= x <   26070; y_868    =    1805.0000 +  -0.0667x; interpolation
  26070 <= x <   26100; y_869    =   -1671.0000 +   0.0667x; interpolation
  26100 <= x <   26130; y_870    =  -15591.0000 +   0.6000x; interpolation
  26130 <= x <   26160; y_871    =      87.0000 +   0.0000x; interpolation
  26160 <= x <   26190; y_872    =      87.0000 +   0.0000x; interpolation
  26190 <= x <   26220; y_873    =    2706.0000 +  -0.1000x; interpolation
  26220 <= x <   26250; y_874    =   14942.0000 +  -0.5667x; interpolation
  26250 <= x <   26280; y_875    =   -1683.0000 +   0.0667x; interpolation
  26280 <= x <   26310; y_876    =  -16575.0000 +   0.6333x; interpolation
  26310 <= x <   26340; y_877    =   15874.0000 +  -0.6000x; interpolation
  26340 <= x <   26370; y_878    =    4460.0000 +  -0.1667x; interpolation
  26370 <= x <   26400; y_879    =  -15757.0000 +   0.6000x; interpolation
  26400 <= x <   26430; y_880    =   -4317.0000 +   0.1667x; interpolation
  26430 <= x <   26460; y_881    =   15946.0000 +  -0.6000x; interpolation
  26460 <= x <   26490; y_882    =  -14042.0000 +   0.5333x; interpolation
  26490 <= x <   26520; y_883    =    1852.0000 +  -0.0667x; interpolation
  26520 <= x <   26550; y_884    =   -1684.0000 +   0.0667x; interpolation
  26550 <= x <   26580; y_885    =     971.0000 +  -0.0333x; interpolation
  26580 <= x <   26610; y_886    =   16033.0000 +  -0.6000x; interpolation
  26610 <= x <   26640; y_887    =  -12351.0000 +   0.4667x; interpolation
  26640 <= x <   26670; y_888    =   12513.0000 +  -0.4667x; interpolation
  26670 <= x <   26700; y_889    =  -19491.0000 +   0.7333x; interpolation
  26700 <= x <   26730; y_890    =   19669.0000 +  -0.7333x; interpolation
  26730 <= x <   26760; y_891    =   -1715.0000 +   0.0667x; interpolation
  26760 <= x <   26790; y_892    =    3637.0000 +  -0.1333x; interpolation
  26790 <= x <   26820; y_893    =  -20474.0000 +   0.7667x; interpolation
  26820 <= x <   26850; y_894    =   18862.0000 +  -0.7000x; interpolation
  26850 <= x <   26880; y_895    =   -2618.0000 +   0.1000x; interpolation
  26880 <= x <   26910; y_896    =  -15162.0000 +   0.5667x; interpolation
  26910 <= x <   26940; y_897    =   16233.0000 +  -0.6000x; interpolation
  26940 <= x <   26970; y_898    =  -14299.0000 +   0.5333x; interpolation
  26970 <= x <   27000; y_899    =   13570.0000 +  -0.5000x; interpolation
  27000 <= x <   27030; y_900    =  -14330.0000 +   0.5333x; interpolation
  27030 <= x <   27060; y_901    =   13601.0000 +  -0.5000x; interpolation
  27060 <= x <   27090; y_902    =  -12557.0000 +   0.4667x; interpolation
  27090 <= x <   27120; y_903    =   13630.0000 +  -0.5000x; interpolation
  27120 <= x <   27150; y_904    =    3686.0000 +  -0.1333x; interpolation
  27150 <= x <   27180; y_905    =   -4459.0000 +   0.1667x; interpolation
  27180 <= x <   27210; y_906    =  -13519.0000 +   0.5000x; interpolation
  27210 <= x <   27240; y_907    =   13691.0000 +  -0.5000x; interpolation
  27240 <= x <   27270; y_908    =    2795.0000 +  -0.1000x; interpolation
  27270 <= x <   27300; y_909    =  -15385.0000 +   0.5667x; interpolation
  27300 <= x <   27330; y_910    =   16465.0000 +  -0.6000x; interpolation
  27330 <= x <   27360; y_911    =    -844.0000 +   0.0333x; interpolation
  27360 <= x <   27390; y_912    =    -844.0000 +   0.0333x; interpolation
  27390 <= x <   27420; y_913    =   -9974.0000 +   0.3667x; interpolation
  27420 <= x <   27450; y_914    =   -9060.0000 +   0.3333x; interpolation
  27450 <= x <   27480; y_915    =    7410.0000 +  -0.2667x; interpolation
  27480 <= x <   27510; y_916    =   13822.0000 +  -0.5000x; interpolation
  27510 <= x <   27540; y_917    =  -14605.0000 +   0.5333x; interpolation
  27540 <= x <   27570; y_918    =   13853.0000 +  -0.5000x; interpolation
  27570 <= x <   27600; y_919    =   -1770.0000 +   0.0667x; interpolation
  27600 <= x <   27630; y_920    =  -12810.0000 +   0.4667x; interpolation
  27630 <= x <   27660; y_921    =   12057.0000 +  -0.4333x; interpolation
  27660 <= x <   27690; y_922    =    7447.0000 +  -0.2667x; interpolation
  27690 <= x <   27720; y_923    =   19446.0000 +  -0.7000x; interpolation
  27720 <= x <   27750; y_924    =   12054.0000 +  -0.4333x; interpolation
  27750 <= x <   27780; y_925    =  -45296.0000 +   1.6333x; interpolation
  27780 <= x <   27810; y_926    =   11190.0000 +  -0.4000x; interpolation
  27810 <= x <   27840; y_927    =   -9204.0000 +   0.3333x; interpolation
  27840 <= x <   27870; y_928    =   -7348.0000 +   0.2667x; interpolation
  27870 <= x <   27900; y_929    =   12161.0000 +  -0.4333x; interpolation
  27900 <= x <   27930; y_930    =    3791.0000 +  -0.1333x; interpolation
  27930 <= x <   27960; y_931    =  -12036.0000 +   0.4333x; interpolation
  27960 <= x <   27990; y_932    =   -7376.0000 +   0.2667x; interpolation
  27990 <= x <   28020; y_933    =    7552.0000 +  -0.2667x; interpolation
  28020 <= x <   28050; y_934    =   12222.0000 +  -0.4333x; interpolation
  28050 <= x <   28080; y_935    =   -5543.0000 +   0.2000x; interpolation
  28080 <= x <   28110; y_936    =  -13031.0000 +   0.4667x; interpolation
  28110 <= x <   28140; y_937    =   13205.0000 +  -0.4667x; interpolation
  28140 <= x <   28170; y_938    =  -12121.0000 +   0.4333x; interpolation
  28170 <= x <   28200; y_939    =    5720.0000 +  -0.2000x; interpolation
  28200 <= x <   28230; y_940    =   11360.0000 +  -0.4000x; interpolation
  28230 <= x <   28260; y_941    =   -9342.0000 +   0.3333x; interpolation
  28260 <= x <   28290; y_942    =   -7458.0000 +   0.2667x; interpolation
  28290 <= x <   28320; y_943    =    8573.0000 +  -0.3000x; interpolation
  28320 <= x <   28350; y_944    =   -8419.0000 +   0.3000x; interpolation
  28350 <= x <   28380; y_945    =   10481.0000 +  -0.3667x; interpolation
  28380 <= x <   28410; y_946    =    9535.0000 +  -0.3333x; interpolation
  28410 <= x <   28440; y_947    =  -11299.0000 +   0.4000x; interpolation
  28440 <= x <   28470; y_948    =  -10351.0000 +   0.3667x; interpolation
  28470 <= x <   28500; y_949    =   17170.0000 +  -0.6000x; interpolation
  28500 <= x <   28530; y_950    =    1970.0000 +  -0.0667x; interpolation
  28530 <= x <   28560; y_951    =  -17050.0000 +   0.6000x; interpolation
  28560 <= x <   28590; y_952    =    1038.0000 +  -0.0333x; interpolation
  28590 <= x <   28620; y_953    =   -2774.0000 +   0.1000x; interpolation
  28620 <= x <   28650; y_954    =   19168.0000 +  -0.6667x; interpolation
  28650 <= x <   28680; y_955    =  -18077.0000 +   0.6333x; interpolation
  28680 <= x <   28710; y_956    =   18251.0000 +  -0.6333x; interpolation
  28710 <= x <   28740; y_957    =    1025.0000 +  -0.0333x; interpolation
  28740 <= x <   28770; y_958    =      67.0000 +   0.0000x; interpolation
  28770 <= x <   28800; y_959    =  -18154.0000 +   0.6333x; interpolation
  28800 <= x <   28830; y_960    =    -874.0000 +   0.0333x; interpolation
  28830 <= x <   28860; y_961    =   19307.0000 +  -0.6667x; interpolation
  28860 <= x <   28890; y_962    =      67.0000 +   0.0000x; interpolation
  28890 <= x <   28920; y_963    =  -16304.0000 +   0.5667x; interpolation
  28920 <= x <   28950; y_964    =   15508.0000 +  -0.5333x; interpolation
  28950 <= x <   28980; y_965    =    1998.0000 +  -0.0667x; interpolation
  28980 <= x <   29010; y_966    =  -17322.0000 +   0.6000x; interpolation
  29010 <= x <   29040; y_967    =   -3784.0000 +   0.1333x; interpolation
  29040 <= x <   29070; y_968    =   19448.0000 +  -0.6667x; interpolation
  29070 <= x <   29100; y_969    =    1037.0000 +  -0.0333x; interpolation
  29100 <= x <   29130; y_970    =  -17393.0000 +   0.6000x; interpolation
  29130 <= x <   29160; y_971    =   17563.0000 +  -0.6000x; interpolation
  29160 <= x <   29190; y_972    =      67.0000 +   0.0000x; interpolation
  29190 <= x <   29220; y_973    =  -21339.0000 +   0.7333x; interpolation
  29220 <= x <   29250; y_974    =    4959.0000 +  -0.1667x; interpolation
  29250 <= x <   29280; y_975    =   -2841.0000 +   0.1000x; interpolation
  29280 <= x <   29310; y_976    =   18631.0000 +  -0.6333x; interpolation
  29310 <= x <   29340; y_977    =    2022.0000 +  -0.0667x; interpolation
  29340 <= x <   29370; y_978    =   -1890.0000 +   0.0667x; interpolation
  29370 <= x <   29400; y_979    =      68.0000 +   0.0000x; interpolation
  29400 <= x <   29430; y_980    =  -18552.0000 +   0.6333x; interpolation
  29430 <= x <   29460; y_981    =   19707.0000 +  -0.6667x; interpolation
  29460 <= x <   29490; y_982    =      67.0000 +   0.0000x; interpolation
  29490 <= x <   29520; y_983    =  -19593.0000 +   0.6667x; interpolation
  29520 <= x <   29550; y_984    =   18783.0000 +  -0.6333x; interpolation
  29550 <= x <   29580; y_985    =    3023.0000 +  -0.1000x; interpolation
  29580 <= x <   29610; y_986    =   -2893.0000 +   0.1000x; interpolation
  29610 <= x <   29640; y_987    =    4016.0000 +  -0.1333x; interpolation
  29640 <= x <   29670; y_988    =  -19696.0000 +   0.6667x; interpolation
  29670 <= x <   29700; y_989    =    1073.0000 +  -0.0333x; interpolation
  29700 <= x <   29730; y_990    =   -2887.0000 +   0.1000x; interpolation
  29730 <= x <   29760; y_991    =    5041.0000 +  -0.1667x; interpolation
  29760 <= x <   29790; y_992    =   -5871.0000 +   0.2000x; interpolation
  29790 <= x <   29820; y_993    =    2073.0000 +  -0.0667x; interpolation
  29820 <= x <   29850; y_994    =    2073.0000 +  -0.0667x; interpolation
  29850 <= x <   29880; y_995    =   16003.0000 +  -0.5333x; interpolation
  29880 <= x <   29910; y_996    =   -2921.0000 +   0.1000x; interpolation
  29910 <= x <   29940; y_997    =   -9900.0000 +   0.3333x; interpolation
  29940 <= x <   29970; y_998    =   47984.0000 +  -1.6000x; interpolation
  29970 <= x <   30000; y_999    =    2030.0000 +  -0.0667x; interpolation
  30000 <= x <   30030; y_1000   =  -50970.0000 +   1.7000x; interpolation
  30030 <= x <   30060; y_1001   =   23104.0000 +  -0.7667x; interpolation
  30060 <= x <   30090; y_1002   =  -11966.0000 +   0.4000x; interpolation
  30090 <= x <   30120; y_1003   =    3079.0000 +  -0.1000x; interpolation
  30120 <= x <   30150; y_1004   =   -2945.0000 +   0.1000x; interpolation
  30150 <= x <   30180; y_1005   =    2080.0000 +  -0.0667x; interpolation
  30180 <= x <   30210; y_1006   =  -16028.0000 +   0.5333x; interpolation
  30210 <= x <   30240; y_1007   =    1091.0000 +  -0.0333x; interpolation
  30240 <= x <   30270; y_1008   =    2099.0000 +  -0.0667x; interpolation
  30270 <= x <   30300; y_1009   =   -3955.0000 +   0.1333x; interpolation
  30300 <= x <   30330; y_1010   =   18265.0000 +  -0.6000x; interpolation
  30330 <= x <   30360; y_1011   =  -21164.0000 +   0.7000x; interpolation
  30360 <= x <   30390; y_1012   =    5148.0000 +  -0.1667x; interpolation
  30390 <= x <   30420; y_1013   =   16291.0000 +  -0.5333x; interpolation
  30420 <= x <   30450; y_1014   =   -2975.0000 +   0.1000x; interpolation
  30450 <= x <   30480; y_1015   =  -17185.0000 +   0.5667x; interpolation
  30480 <= x <   30510; y_1016   =    4151.0000 +  -0.1333x; interpolation
  30510 <= x <   30540; y_1017   =   -3985.0000 +   0.1333x; interpolation
  30540 <= x <   30570; y_1018   =    1105.0000 +  -0.0333x; interpolation
  30570 <= x <   30600; y_1019   =   19447.0000 +  -0.6333x; interpolation
  30600 <= x <   30630; y_1020   =  -19313.0000 +   0.6333x; interpolation
  30630 <= x <   30660; y_1021   =   17443.0000 +  -0.5667x; interpolation
  30660 <= x <   30690; y_1022   =    2113.0000 +  -0.0667x; interpolation
  30690 <= x <   30720; y_1023   =   -3002.0000 +   0.1000x; interpolation
  30720 <= x <   30750; y_1024   =  -18362.0000 +   0.6000x; interpolation
  30750 <= x <   30780; y_1025   =   17513.0000 +  -0.5667x; interpolation
  30780 <= x <   30810; y_1026   =  -16345.0000 +   0.5333x; interpolation
  30810 <= x <   30840; y_1027   =   17546.0000 +  -0.5667x; interpolation
  30840 <= x <   30870; y_1028   =    6238.0000 +  -0.2000x; interpolation
  30870 <= x <   30900; y_1029   =   -7139.0000 +   0.2333x; interpolation
  30900 <= x <   30930; y_1030   =  -17439.0000 +   0.5667x; interpolation
  30930 <= x <   30960; y_1031   =    4212.0000 +  -0.1333x; interpolation
  30960 <= x <   30990; y_1032   =   22788.0000 +  -0.7333x; interpolation
  30990 <= x <   31020; y_1033   =   -8202.0000 +   0.2667x; interpolation
  31020 <= x <   31050; y_1034   =    3172.0000 +  -0.1000x; interpolation
  31050 <= x <   31080; y_1035   =  -20633.0000 +   0.6667x; interpolation
  31080 <= x <   31110; y_1036   =   18735.0000 +  -0.6000x; interpolation
  31110 <= x <   31140; y_1037   =  -20671.0000 +   0.6667x; interpolation
  31140 <= x <   31170; y_1038   =    1127.0000 +  -0.0333x; interpolation
  31170 <= x <   31200; y_1039   =   18790.0000 +  -0.6000x; interpolation
  31200 <= x <   31230; y_1040   =    4230.0000 +  -0.1333x; interpolation
  31230 <= x <   31260; y_1041   =  -21795.0000 +   0.7000x; interpolation
  31260 <= x <   31290; y_1042   =   23011.0000 +  -0.7333x; interpolation
  31290 <= x <   31320; y_1043   =  -23924.0000 +   0.7667x; interpolation
  31320 <= x <   31350; y_1044   =    2176.0000 +  -0.0667x; interpolation
  31350 <= x <   31380; y_1045   =    8446.0000 +  -0.2667x; interpolation
  31380 <= x <   31410; y_1046   =   -7244.0000 +   0.2333x; interpolation
  31410 <= x <   31440; y_1047   =   -4103.0000 +   0.1333x; interpolation
  31440 <= x <   31470; y_1048   =   20001.0000 +  -0.6333x; interpolation
  31470 <= x <   31500; y_1049   =  -17763.0000 +   0.5667x; interpolation
  31500 <= x <   31530; y_1050   =    1137.0000 +  -0.0333x; interpolation
  31530 <= x <   31560; y_1051   =    -965.0000 +   0.0333x; interpolation
  31560 <= x <   31590; y_1052   =    2191.0000 +  -0.0667x; interpolation
  31590 <= x <   31620; y_1053   =   16933.0000 +  -0.5333x; interpolation
  31620 <= x <   31650; y_1054   =      69.0000 +   0.0000x; interpolation
  31650 <= x <   31680; y_1055   =  -19976.0000 +   0.6333x; interpolation
  31680 <= x <   31710; y_1056   =   23320.0000 +  -0.7333x; interpolation
  31710 <= x <   31740; y_1057   =  -20017.0000 +   0.6333x; interpolation
  31740 <= x <   31770; y_1058   =    -973.0000 +   0.0333x; interpolation
  31770 <= x <   31800; y_1059   =   20207.0000 +  -0.6333x; interpolation
  31800 <= x <   31830; y_1060   =      67.0000 +   0.0000x; interpolation
  31830 <= x <   31860; y_1061   =  -20092.0000 +   0.6333x; interpolation
  31860 <= x <   31890; y_1062   =   17078.0000 +  -0.5333x; interpolation
  31890 <= x <   31920; y_1063   =  -16938.0000 +   0.5333x; interpolation
  31920 <= x <   31950; y_1064   =    1150.0000 +  -0.0333x; interpolation
  31950 <= x <   31980; y_1065   =    -980.0000 +   0.0333x; interpolation
  31980 <= x <   32010; y_1066   =      86.0000 +   0.0000x; interpolation
  32010 <= x <   32040; y_1067   =   18225.0000 +  -0.5667x; interpolation
  32040 <= x <   32070; y_1068   =    -999.0000 +   0.0333x; interpolation
  32070 <= x <   32100; y_1069   =    1139.0000 +  -0.0333x; interpolation
  32100 <= x <   32130; y_1070   =    2209.0000 +  -0.0667x; interpolation
  32130 <= x <   32160; y_1071   =   -6359.0000 +   0.2000x; interpolation
  32160 <= x <   32190; y_1072   =  -14935.0000 +   0.4667x; interpolation
  32190 <= x <   32220; y_1073   =    6525.0000 +  -0.2000x; interpolation
  32220 <= x <   32250; y_1074   =   14043.0000 +  -0.4333x; interpolation
  32250 <= x <   32280; y_1075   =   -3157.0000 +   0.1000x; interpolation
  32280 <= x <   32310; y_1076   =    5451.0000 +  -0.1667x; interpolation
  32310 <= x <   32340; y_1077   =   32376.0000 +  -1.0000x; interpolation
  32340 <= x <   32370; y_1078   =    4348.0000 +  -0.1333x; interpolation
  32370 <= x <   32400; y_1079   =  -49602.0000 +   1.5333x; interpolation
  32400 <= x <   32430; y_1080   =   -5322.0000 +   0.1667x; interpolation
  32430 <= x <   32460; y_1081   =    7650.0000 +  -0.2333x; interpolation
  32460 <= x <   32490; y_1082   =  -10744.0000 +   0.3333x; interpolation
  32490 <= x <   32520; y_1083   =   16331.0000 +  -0.5000x; interpolation
  32520 <= x <   32550; y_1084   =  -11853.0000 +   0.3667x; interpolation
  32550 <= x <   32580; y_1085   =   18527.0000 +  -0.5667x; interpolation
  32580 <= x <   32610; y_1086   =  -20569.0000 +   0.6333x; interpolation
  32610 <= x <   32640; y_1087   =   20737.0000 +  -0.6333x; interpolation
  32640 <= x <   32670; y_1088   =   -2111.0000 +   0.0667x; interpolation
  32670 <= x <   32700; y_1089   =   -8645.0000 +   0.2667x; interpolation
  32700 <= x <   32730; y_1090   =  -14095.0000 +   0.4333x; interpolation
  32730 <= x <   32760; y_1091   =    3361.0000 +  -0.1000x; interpolation
  32760 <= x <   32790; y_1092   =    1177.0000 +  -0.0333x; interpolation
  32790 <= x <   32820; y_1093   =   20851.0000 +  -0.6333x; interpolation
  32820 <= x <   32850; y_1094   =      65.0000 +   0.0000x; interpolation
  32850 <= x <   32880; y_1095   =  -21835.0000 +   0.6667x; interpolation
  32880 <= x <   32910; y_1096   =      85.0000 +   0.0000x; interpolation
  32910 <= x <   32940; y_1097   =      85.0000 +   0.0000x; interpolation
  32940 <= x <   32970; y_1098   =   -2111.0000 +   0.0667x; interpolation
  32970 <= x <   33000; y_1099   =   24265.0000 +  -0.7333x; interpolation
  33000 <= x <   33030; y_1100   =   -2135.0000 +   0.0667x; interpolation
  33030 <= x <   33060; y_1101   =  -18650.0000 +   0.5667x; interpolation
  33060 <= x <   33090; y_1102   =    3390.0000 +  -0.1000x; interpolation
  33090 <= x <   33120; y_1103   =   17729.0000 +  -0.5333x; interpolation
  33120 <= x <   33150; y_1104   =   -2143.0000 +   0.0667x; interpolation
  33150 <= x <   33180; y_1105   =  -19823.0000 +   0.6000x; interpolation
  33180 <= x <   33210; y_1106   =      85.0000 +   0.0000x; interpolation
  33210 <= x <   33240; y_1107   =   -3236.0000 +   0.1000x; interpolation
  33240 <= x <   33270; y_1108   =    7844.0000 +  -0.2333x; interpolation
  33270 <= x <   33300; y_1109   =   -7682.0000 +   0.2333x; interpolation
  33300 <= x <   33330; y_1110   =   23398.0000 +  -0.7000x; interpolation
  33330 <= x <   33360; y_1111   =  -19931.0000 +   0.6000x; interpolation
  33360 <= x <   33390; y_1112   =   18989.0000 +  -0.5667x; interpolation
  33390 <= x <   33420; y_1113   =  -18853.0000 +   0.5667x; interpolation
  33420 <= x <   33450; y_1114   =   21251.0000 +  -0.6333x; interpolation
  33450 <= x <   33480; y_1115   =  -23349.0000 +   0.7000x; interpolation
  33480 <= x <   33510; y_1116   =      87.0000 +   0.0000x; interpolation
  33510 <= x <   33540; y_1117   =   23544.0000 +  -0.7000x; interpolation
  33540 <= x <   33570; y_1118   =  -15586.0000 +   0.4667x; interpolation
  33570 <= x <   33600; y_1119   =   16865.0000 +  -0.5000x; interpolation
  33600 <= x <   33630; y_1120   =  -23455.0000 +   0.7000x; interpolation
  33630 <= x <   33660; y_1121   =    3449.0000 +  -0.1000x; interpolation
  33660 <= x <   33690; y_1122   =   15791.0000 +  -0.4667x; interpolation
  33690 <= x <   33720; y_1123   =  -17899.0000 +   0.5333x; interpolation
  33720 <= x <   33750; y_1124   =    5705.0000 +  -0.1667x; interpolation
  33750 <= x <   33780; y_1125   =   -5545.0000 +   0.1667x; interpolation
  33780 <= x <   33810; y_1126   =    5715.0000 +  -0.1667x; interpolation
  33810 <= x <   33840; y_1127   =   16985.0000 +  -0.5000x; interpolation
  33840 <= x <   33870; y_1128   =   -4447.0000 +   0.1333x; interpolation
  33870 <= x <   33900; y_1129   =  -17995.0000 +   0.5333x; interpolation
  33900 <= x <   33930; y_1130   =    5735.0000 +  -0.1667x; interpolation
  33930 <= x <   33960; y_1131   =   17045.0000 +  -0.5000x; interpolation
  33960 <= x <   33990; y_1132   =   -5595.0000 +   0.1667x; interpolation
  33990 <= x <   34020; y_1133   =  -16925.0000 +   0.5000x; interpolation
  34020 <= x <   34050; y_1134   =   15961.0000 +  -0.4667x; interpolation
  34050 <= x <   34080; y_1135   =  -16954.0000 +   0.5000x; interpolation
  34080 <= x <   34110; y_1136   =    5766.0000 +  -0.1667x; interpolation
  34110 <= x <   34140; y_1137   =   -1056.0000 +   0.0333x; interpolation
  34140 <= x <   34170; y_1138   =    4634.0000 +  -0.1333x; interpolation
  34170 <= x <   34200; y_1139   =   -9034.0000 +   0.2667x; interpolation
  34200 <= x <   34230; y_1140   =    5786.0000 +  -0.1667x; interpolation
  34230 <= x <   34260; y_1141   =   -2201.0000 +   0.0667x; interpolation
  34260 <= x <   34290; y_1142   =   22923.0000 +  -0.6667x; interpolation
  34290 <= x <   34320; y_1143   =  -25083.0000 +   0.7333x; interpolation
  34320 <= x <   34350; y_1144   =   24109.0000 +  -0.7000x; interpolation
  34350 <= x <   34380; y_1145   =  -19401.0000 +   0.5667x; interpolation
  34380 <= x <   34410; y_1146   =   18417.0000 +  -0.5333x; interpolation
  34410 <= x <   34440; y_1147   =  -25169.0000 +   0.7333x; interpolation
  34440 <= x <   34470; y_1148   =   25343.0000 +  -0.7333x; interpolation
  34470 <= x <   34500; y_1149   =  -22915.0000 +   0.6667x; interpolation
  34500 <= x <   34530; y_1150   =   21935.0000 +  -0.6333x; interpolation
  34530 <= x <   34560; y_1151   =  -19501.0000 +   0.5667x; interpolation
  34560 <= x <   34590; y_1152   =    5843.0000 +  -0.1667x; interpolation
  34590 <= x <   34620; y_1153   =   -6840.0000 +   0.2000x; interpolation
  34620 <= x <   34650; y_1154   =   -2224.0000 +   0.0667x; interpolation
  34650 <= x <   34680; y_1155   =   24341.0000 +  -0.7000x; interpolation
  34680 <= x <   34710; y_1156   =  -25367.0000 +   0.7333x; interpolation
  34710 <= x <   34740; y_1157   =   24384.0000 +  -0.7000x; interpolation
  34740 <= x <   34770; y_1158   =  -19620.0000 +   0.5667x; interpolation
  34770 <= x <   34800; y_1159   =   -3394.0000 +   0.1000x; interpolation
  34800 <= x <   34830; y_1160   =   24446.0000 +  -0.7000x; interpolation
  34830 <= x <   34860; y_1161   =  -23155.0000 +   0.6667x; interpolation
  34860 <= x <   34890; y_1162   =   16353.0000 +  -0.4667x; interpolation
  34890 <= x <   34920; y_1163   =    7049.0000 +  -0.2000x; interpolation
  34920 <= x <   34950; y_1164   =  -13903.0000 +   0.4000x; interpolation
  34950 <= x <   34980; y_1165   =   49007.0000 +  -1.4000x; interpolation
  34980 <= x <   35010; y_1166   =   10529.0000 +  -0.3000x; interpolation
  35010 <= x <   35040; y_1167   =    1193.0000 +  -0.0333x; interpolation
  35040 <= x <   35070; y_1168   =   -1143.0000 +   0.0333x; interpolation
  35070 <= x <   35100; y_1169   =    2364.0000 +  -0.0667x; interpolation
  35100 <= x <   35130; y_1170   =  -12846.0000 +   0.3667x; interpolation
  35130 <= x <   35160; y_1171   =  -18701.0000 +   0.5333x; interpolation
  35160 <= x <   35190; y_1172   =   10599.0000 +  -0.3000x; interpolation
  35190 <= x <   35220; y_1173   =    8253.0000 +  -0.2333x; interpolation
  35220 <= x <   35250; y_1174   =   14123.0000 +  -0.4000x; interpolation
  35250 <= x <   35280; y_1175   =    1198.0000 +  -0.0333x; interpolation
  35280 <= x <   35310; y_1176   =      22.0000 +   0.0000x; interpolation
  35310 <= x <   35340; y_1177   =      22.0000 +   0.0000x; interpolation
  35340 <= x <   35370; y_1178   =      22.0000 +   0.0000x; interpolation
  35370 <= x <   35400; y_1179   =      22.0000 +   0.0000x; interpolation
  35400 <= x <   35430; y_1180   =   -3518.0000 +   0.1000x; interpolation
  35430 <= x <   35460; y_1181   =    4749.0000 +  -0.1333x; interpolation
  35460 <= x <   35490; y_1182   =  -61443.0000 +   1.7333x; interpolation
  35490 <= x <   35520; y_1183   =   -8208.0000 +   0.2333x; interpolation
  35520 <= x <   35550; y_1184   =   22576.0000 +  -0.6333x; interpolation
  35550 <= x <   35580; y_1185   =  -20084.0000 +   0.5667x; interpolation
  35580 <= x <   35610; y_1186   =   -3480.0000 +   0.1000x; interpolation

3 Programming Requirements & Constraints

All code must follow the requirements outlined in the Submission (Programming Exercises) section of the syllabus.

Your task is to take the temperature readings and generate for each core:

  1. A piecewise linear interpolation.
  2. A global linear least squares approximation.
  3. (Optional) A cubic spline (or other non-linear) interpolation.

3.1 Arguments & Execution

Your program must accept an input filename as the first command line argument. Your program must NOT prompt the user for a filename.

3.2 Architecture

Your solution must be organized into appropriate “modules” (using each language’s best practices). Start with four modules:

  1. Input (e.g., using the supplied input libraries)
  2. Data pre-processing (i.e., structuring the data for analysis)
  3. Piecewise Linear Interpolation
  4. Least Squares Approximation

3.3 Documentation Requirements

All code must be properly and fully documented using a language appropriate comment style. All functions (including parameters and return types) must be documented.

  1. Doxygen can be used for C++, Java, or JavaScript. Consider the following Doxygen Example:

    Example 6: C++ Doxygen Documentation
    /**
     * Retrieve the value stored in three selected Cells
     *
     * @param cell1Id numeric id representing the 1st desired cell
     * @param cell2Id numeric id representing the 2nd desired cell
     * @param cell3Id numeric id representing the 3rd desired cell
     *
     * @return value stored in the Cell
     *
     * @pre (cell1Id > 0 && cell1Id < 10) &&
     *      (cell2Id > 0 && cell2Id < 10) &&
     *      (cell3Id > 0 && cell3Id < 10)
     */
    CellTriple get3Cells(int cell1Id, int cell2Id, int cell3Id) const;
    
  2. Javadoc can be used for Java. Consider the following Javadoc Example:

    Example 7: Javadoc Documentation
    /**
     * Multi-thread Coin Flip.
     *
     * @param numTrials # flips to simulate
     * @param numThreads number of threads to use
     *
     * @return Completed FlipTasks
     *
     * @throws InterruptedException if a thread is stopped prematurely
     */
    public static FlipTask[] multiThread(long numTrials, int numThreads)
        throws InterruptedException
    
  3. Pydoc or Sphinx can be used for Python. Consider the following Pydoc Example:

    Example 8: Python 3 Pydoc Documentation
    def parse_raw_temps(original_temps: TextIO,
                        step_size: int=30, units: bool=True) -> Iterator[Tuple[float, List[float]] ]:
        """
        Take an input file and time-step size and parse all core temps.
    
        :param original_temps: an input file
        :param step_size:      time-step in seconds
        :param units: True if the input file includes units and False if the file
                      includes only raw readings (no units)
    
        :yields: A tuple containing the next time step and a List containing _n_
                 core temps as floating point values (where _n_ is the number of
                 CPU cores)
        """
    

    or the following Sphinx Example:

    Example 9: Python 3 Sphinx Documentation
    def parse_raw_temps(original_temps: TextIO,
                        step_size: int=30, units: bool=True) -> Iterator[Tuple[float, List[float]] ]:
        """
        Take an input file and time-step size and parse all core temps.
    
        Args:
            original_temps: an input file
            step_size: time-step in seconds
            units: True if the input file includes units and False if the file
                includes only raw readings (no units)
    
        Yields:
            A tuple containing the next time step and a List containing _n_
            core temps as floating point values (where _n_ is the number of
            CPU cores)
        """