Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@vgrudenic
Last active July 26, 2017 23:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vgrudenic/ac3da32501a9defc552c6d8aa34c8d47 to your computer and use it in GitHub Desktop.
Save vgrudenic/ac3da32501a9defc552c6d8aa34c8d47 to your computer and use it in GitHub Desktop.
# error Add a NUGET reference to BenchMarkDotNet
void Main()
{
new LookupTest().Validate();
BenchmarkRunner.Run<LookupTest>();
}
public class LookupTest
{
static LookupTest()
{
var rnd = new Random();
_Inputs = Enumerable.Range(0, 3000).Select(idx => idx / 10.0).OrderBy(x => rnd.Next()).ToArray();
_Table = Enumerable.Range(0, 301).Select(idx => (double)idx).ToArray();
}
public void Validate()
{
bool anyMismatch = false;
foreach (var input in _Inputs)
{
var ifStatements = IfStatementLookup(input);
var slightlyOptimizedIfStatements = SlightlyOptimizedIfStatementLookup(input);
var tableDriven = TableLookup(input);
if (ifStatements != tableDriven || ifStatements != slightlyOptimizedIfStatements)
{
$"{input:0.00} => if: {ifStatements}, lookup: {tableDriven}, if+: {slightlyOptimizedIfStatements}".Dump();
anyMismatch = true;
}
}
if (anyMismatch)
throw new InvalidOperationException();
}
static readonly double[] _Inputs;
static readonly double[] _Table;
[Benchmark]
public void TableDriven()
{
double sum = 0;
for (int index = 0; index < _Inputs.Length; index++)
{
sum += TableLookup(_Inputs[index]);
}
if (sum < 0)
throw new InvalidOperationException();
}
private double TableLookup(double input)
{
if (input >= 300)
return 0;
int lower = 0;
int upper = _Table.Length - 1;
while (lower <= upper)
{
int middle = lower + (upper - lower >> 1);
if (input < _Table[middle])
upper = middle - 1;
else
lower = middle + 1;
}
return _Table[upper + 1];
}
[Benchmark]
public void LinearIfStatements()
{
double sum = 0;
for (int index = 0; index < _Inputs.Length; index++)
{
sum += IfStatementLookup(_Inputs[index]);
}
if (sum < 0)
throw new InvalidOperationException();
}
[Benchmark]
public void SlightlyOptimizedIfStatements()
{
double sum = 0;
for (int index = 0; index < _Inputs.Length; index++)
{
sum += SlightlyOptimizedIfStatementLookup(_Inputs[index]);
}
if (sum < 0)
throw new InvalidOperationException();
}
private double IfStatementLookup(double input)
{
if (input < 01.0) return 01.0;
if (input < 02.0) return 02.0;
if (input < 03.0) return 03.0;
if (input < 04.0) return 04.0;
if (input < 05.0) return 05.0;
if (input < 06.0) return 06.0;
if (input < 07.0) return 07.0;
if (input < 08.0) return 08.0;
if (input < 09.0) return 09.0;
if (input < 10.0) return 10.0;
if (input < 11.0) return 11.0;
if (input < 12.0) return 12.0;
if (input < 13.0) return 13.0;
if (input < 14.0) return 14.0;
if (input < 15.0) return 15.0;
if (input < 16.0) return 16.0;
if (input < 17.0) return 17.0;
if (input < 18.0) return 18.0;
if (input < 19.0) return 19.0;
if (input < 20.0) return 20.0;
if (input < 21.0) return 21.0;
if (input < 22.0) return 22.0;
if (input < 23.0) return 23.0;
if (input < 24.0) return 24.0;
if (input < 25.0) return 25.0;
if (input < 26.0) return 26.0;
if (input < 27.0) return 27.0;
if (input < 28.0) return 28.0;
if (input < 29.0) return 29.0;
if (input < 30.0) return 30.0;
if (input < 31.0) return 31.0;
if (input < 32.0) return 32.0;
if (input < 33.0) return 33.0;
if (input < 34.0) return 34.0;
if (input < 35.0) return 35.0;
if (input < 36.0) return 36.0;
if (input < 37.0) return 37.0;
if (input < 38.0) return 38.0;
if (input < 39.0) return 39.0;
if (input < 40.0) return 40.0;
if (input < 41.0) return 41.0;
if (input < 42.0) return 42.0;
if (input < 43.0) return 43.0;
if (input < 44.0) return 44.0;
if (input < 45.0) return 45.0;
if (input < 46.0) return 46.0;
if (input < 47.0) return 47.0;
if (input < 48.0) return 48.0;
if (input < 49.0) return 49.0;
if (input < 50.0) return 50.0;
if (input < 51.0) return 51.0;
if (input < 52.0) return 52.0;
if (input < 53.0) return 53.0;
if (input < 54.0) return 54.0;
if (input < 55.0) return 55.0;
if (input < 56.0) return 56.0;
if (input < 57.0) return 57.0;
if (input < 58.0) return 58.0;
if (input < 59.0) return 59.0;
if (input < 60.0) return 60.0;
if (input < 61.0) return 61.0;
if (input < 62.0) return 62.0;
if (input < 63.0) return 63.0;
if (input < 64.0) return 64.0;
if (input < 65.0) return 65.0;
if (input < 66.0) return 66.0;
if (input < 67.0) return 67.0;
if (input < 68.0) return 68.0;
if (input < 69.0) return 69.0;
if (input < 70.0) return 70.0;
if (input < 71.0) return 71.0;
if (input < 72.0) return 72.0;
if (input < 73.0) return 73.0;
if (input < 74.0) return 74.0;
if (input < 75.0) return 75.0;
if (input < 76.0) return 76.0;
if (input < 77.0) return 77.0;
if (input < 78.0) return 78.0;
if (input < 79.0) return 79.0;
if (input < 80.0) return 80.0;
if (input < 81.0) return 81.0;
if (input < 82.0) return 82.0;
if (input < 83.0) return 83.0;
if (input < 84.0) return 84.0;
if (input < 85.0) return 85.0;
if (input < 86.0) return 86.0;
if (input < 87.0) return 87.0;
if (input < 88.0) return 88.0;
if (input < 89.0) return 89.0;
if (input < 90.0) return 90.0;
if (input < 91.0) return 91.0;
if (input < 92.0) return 92.0;
if (input < 93.0) return 93.0;
if (input < 94.0) return 94.0;
if (input < 95.0) return 95.0;
if (input < 96.0) return 96.0;
if (input < 97.0) return 97.0;
if (input < 98.0) return 98.0;
if (input < 99.0) return 99.0;
if (input < 100.0) return 100.0;
if (input < 101.0) return 101.0;
if (input < 102.0) return 102.0;
if (input < 103.0) return 103.0;
if (input < 104.0) return 104.0;
if (input < 105.0) return 105.0;
if (input < 106.0) return 106.0;
if (input < 107.0) return 107.0;
if (input < 108.0) return 108.0;
if (input < 109.0) return 109.0;
if (input < 110.0) return 110.0;
if (input < 111.0) return 111.0;
if (input < 112.0) return 112.0;
if (input < 113.0) return 113.0;
if (input < 114.0) return 114.0;
if (input < 115.0) return 115.0;
if (input < 116.0) return 116.0;
if (input < 117.0) return 117.0;
if (input < 118.0) return 118.0;
if (input < 119.0) return 119.0;
if (input < 120.0) return 120.0;
if (input < 121.0) return 121.0;
if (input < 122.0) return 122.0;
if (input < 123.0) return 123.0;
if (input < 124.0) return 124.0;
if (input < 125.0) return 125.0;
if (input < 126.0) return 126.0;
if (input < 127.0) return 127.0;
if (input < 128.0) return 128.0;
if (input < 129.0) return 129.0;
if (input < 130.0) return 130.0;
if (input < 131.0) return 131.0;
if (input < 132.0) return 132.0;
if (input < 133.0) return 133.0;
if (input < 134.0) return 134.0;
if (input < 135.0) return 135.0;
if (input < 136.0) return 136.0;
if (input < 137.0) return 137.0;
if (input < 138.0) return 138.0;
if (input < 139.0) return 139.0;
if (input < 140.0) return 140.0;
if (input < 141.0) return 141.0;
if (input < 142.0) return 142.0;
if (input < 143.0) return 143.0;
if (input < 144.0) return 144.0;
if (input < 145.0) return 145.0;
if (input < 146.0) return 146.0;
if (input < 147.0) return 147.0;
if (input < 148.0) return 148.0;
if (input < 149.0) return 149.0;
if (input < 150.0) return 150.0;
if (input < 151.0) return 151.0;
if (input < 152.0) return 152.0;
if (input < 153.0) return 153.0;
if (input < 154.0) return 154.0;
if (input < 155.0) return 155.0;
if (input < 156.0) return 156.0;
if (input < 157.0) return 157.0;
if (input < 158.0) return 158.0;
if (input < 159.0) return 159.0;
if (input < 160.0) return 160.0;
if (input < 161.0) return 161.0;
if (input < 162.0) return 162.0;
if (input < 163.0) return 163.0;
if (input < 164.0) return 164.0;
if (input < 165.0) return 165.0;
if (input < 166.0) return 166.0;
if (input < 167.0) return 167.0;
if (input < 168.0) return 168.0;
if (input < 169.0) return 169.0;
if (input < 170.0) return 170.0;
if (input < 171.0) return 171.0;
if (input < 172.0) return 172.0;
if (input < 173.0) return 173.0;
if (input < 174.0) return 174.0;
if (input < 175.0) return 175.0;
if (input < 176.0) return 176.0;
if (input < 177.0) return 177.0;
if (input < 178.0) return 178.0;
if (input < 179.0) return 179.0;
if (input < 180.0) return 180.0;
if (input < 181.0) return 181.0;
if (input < 182.0) return 182.0;
if (input < 183.0) return 183.0;
if (input < 184.0) return 184.0;
if (input < 185.0) return 185.0;
if (input < 186.0) return 186.0;
if (input < 187.0) return 187.0;
if (input < 188.0) return 188.0;
if (input < 189.0) return 189.0;
if (input < 190.0) return 190.0;
if (input < 191.0) return 191.0;
if (input < 192.0) return 192.0;
if (input < 193.0) return 193.0;
if (input < 194.0) return 194.0;
if (input < 195.0) return 195.0;
if (input < 196.0) return 196.0;
if (input < 197.0) return 197.0;
if (input < 198.0) return 198.0;
if (input < 199.0) return 199.0;
if (input < 200.0) return 200.0;
if (input < 201.0) return 201.0;
if (input < 202.0) return 202.0;
if (input < 203.0) return 203.0;
if (input < 204.0) return 204.0;
if (input < 205.0) return 205.0;
if (input < 206.0) return 206.0;
if (input < 207.0) return 207.0;
if (input < 208.0) return 208.0;
if (input < 209.0) return 209.0;
if (input < 210.0) return 210.0;
if (input < 211.0) return 211.0;
if (input < 212.0) return 212.0;
if (input < 213.0) return 213.0;
if (input < 214.0) return 214.0;
if (input < 215.0) return 215.0;
if (input < 216.0) return 216.0;
if (input < 217.0) return 217.0;
if (input < 218.0) return 218.0;
if (input < 219.0) return 219.0;
if (input < 220.0) return 220.0;
if (input < 221.0) return 221.0;
if (input < 222.0) return 222.0;
if (input < 223.0) return 223.0;
if (input < 224.0) return 224.0;
if (input < 225.0) return 225.0;
if (input < 226.0) return 226.0;
if (input < 227.0) return 227.0;
if (input < 228.0) return 228.0;
if (input < 229.0) return 229.0;
if (input < 230.0) return 230.0;
if (input < 231.0) return 231.0;
if (input < 232.0) return 232.0;
if (input < 233.0) return 233.0;
if (input < 234.0) return 234.0;
if (input < 235.0) return 235.0;
if (input < 236.0) return 236.0;
if (input < 237.0) return 237.0;
if (input < 238.0) return 238.0;
if (input < 239.0) return 239.0;
if (input < 240.0) return 240.0;
if (input < 241.0) return 241.0;
if (input < 242.0) return 242.0;
if (input < 243.0) return 243.0;
if (input < 244.0) return 244.0;
if (input < 245.0) return 245.0;
if (input < 246.0) return 246.0;
if (input < 247.0) return 247.0;
if (input < 248.0) return 248.0;
if (input < 249.0) return 249.0;
if (input < 250.0) return 250.0;
if (input < 251.0) return 251.0;
if (input < 252.0) return 252.0;
if (input < 253.0) return 253.0;
if (input < 254.0) return 254.0;
if (input < 255.0) return 255.0;
if (input < 256.0) return 256.0;
if (input < 257.0) return 257.0;
if (input < 258.0) return 258.0;
if (input < 259.0) return 259.0;
if (input < 260.0) return 260.0;
if (input < 261.0) return 261.0;
if (input < 262.0) return 262.0;
if (input < 263.0) return 263.0;
if (input < 264.0) return 264.0;
if (input < 265.0) return 265.0;
if (input < 266.0) return 266.0;
if (input < 267.0) return 267.0;
if (input < 268.0) return 268.0;
if (input < 269.0) return 269.0;
if (input < 270.0) return 270.0;
if (input < 271.0) return 271.0;
if (input < 272.0) return 272.0;
if (input < 273.0) return 273.0;
if (input < 274.0) return 274.0;
if (input < 275.0) return 275.0;
if (input < 276.0) return 276.0;
if (input < 277.0) return 277.0;
if (input < 278.0) return 278.0;
if (input < 279.0) return 279.0;
if (input < 280.0) return 280.0;
if (input < 281.0) return 281.0;
if (input < 282.0) return 282.0;
if (input < 283.0) return 283.0;
if (input < 284.0) return 284.0;
if (input < 285.0) return 285.0;
if (input < 286.0) return 286.0;
if (input < 287.0) return 287.0;
if (input < 288.0) return 288.0;
if (input < 289.0) return 289.0;
if (input < 290.0) return 290.0;
if (input < 291.0) return 291.0;
if (input < 292.0) return 292.0;
if (input < 293.0) return 293.0;
if (input < 294.0) return 294.0;
if (input < 295.0) return 295.0;
if (input < 296.0) return 296.0;
if (input < 297.0) return 297.0;
if (input < 298.0) return 298.0;
if (input < 299.0) return 299.0;
if (input < 300.0) return 300.0;
return 0;
}
double SlightlyOptimizedIfStatementLookup(double input)
{
if (input < 100)
{
if (input < 50)
{
if (input < 01.0) return 01.0;
if (input < 02.0) return 02.0;
if (input < 03.0) return 03.0;
if (input < 04.0) return 04.0;
if (input < 05.0) return 05.0;
if (input < 06.0) return 06.0;
if (input < 07.0) return 07.0;
if (input < 08.0) return 08.0;
if (input < 09.0) return 09.0;
if (input < 10.0) return 10.0;
if (input < 11.0) return 11.0;
if (input < 12.0) return 12.0;
if (input < 13.0) return 13.0;
if (input < 14.0) return 14.0;
if (input < 15.0) return 15.0;
if (input < 16.0) return 16.0;
if (input < 17.0) return 17.0;
if (input < 18.0) return 18.0;
if (input < 19.0) return 19.0;
if (input < 20.0) return 20.0;
if (input < 21.0) return 21.0;
if (input < 22.0) return 22.0;
if (input < 23.0) return 23.0;
if (input < 24.0) return 24.0;
if (input < 25.0) return 25.0;
if (input < 26.0) return 26.0;
if (input < 27.0) return 27.0;
if (input < 28.0) return 28.0;
if (input < 29.0) return 29.0;
if (input < 30.0) return 30.0;
if (input < 31.0) return 31.0;
if (input < 32.0) return 32.0;
if (input < 33.0) return 33.0;
if (input < 34.0) return 34.0;
if (input < 35.0) return 35.0;
if (input < 36.0) return 36.0;
if (input < 37.0) return 37.0;
if (input < 38.0) return 38.0;
if (input < 39.0) return 39.0;
if (input < 40.0) return 40.0;
if (input < 41.0) return 41.0;
if (input < 42.0) return 42.0;
if (input < 43.0) return 43.0;
if (input < 44.0) return 44.0;
if (input < 45.0) return 45.0;
if (input < 46.0) return 46.0;
if (input < 47.0) return 47.0;
if (input < 48.0) return 48.0;
if (input < 49.0) return 49.0;
return 50.0;
}
if (input < 51.0) return 51.0;
if (input < 52.0) return 52.0;
if (input < 53.0) return 53.0;
if (input < 54.0) return 54.0;
if (input < 55.0) return 55.0;
if (input < 56.0) return 56.0;
if (input < 57.0) return 57.0;
if (input < 58.0) return 58.0;
if (input < 59.0) return 59.0;
if (input < 60.0) return 60.0;
if (input < 61.0) return 61.0;
if (input < 62.0) return 62.0;
if (input < 63.0) return 63.0;
if (input < 64.0) return 64.0;
if (input < 65.0) return 65.0;
if (input < 66.0) return 66.0;
if (input < 67.0) return 67.0;
if (input < 68.0) return 68.0;
if (input < 69.0) return 69.0;
if (input < 70.0) return 70.0;
if (input < 71.0) return 71.0;
if (input < 72.0) return 72.0;
if (input < 73.0) return 73.0;
if (input < 74.0) return 74.0;
if (input < 75.0) return 75.0;
if (input < 76.0) return 76.0;
if (input < 77.0) return 77.0;
if (input < 78.0) return 78.0;
if (input < 79.0) return 79.0;
if (input < 80.0) return 80.0;
if (input < 81.0) return 81.0;
if (input < 82.0) return 82.0;
if (input < 83.0) return 83.0;
if (input < 84.0) return 84.0;
if (input < 85.0) return 85.0;
if (input < 86.0) return 86.0;
if (input < 87.0) return 87.0;
if (input < 88.0) return 88.0;
if (input < 89.0) return 89.0;
if (input < 90.0) return 90.0;
if (input < 91.0) return 91.0;
if (input < 92.0) return 92.0;
if (input < 93.0) return 93.0;
if (input < 94.0) return 94.0;
if (input < 95.0) return 95.0;
if (input < 96.0) return 96.0;
if (input < 97.0) return 97.0;
if (input < 98.0) return 98.0;
if (input < 99.0) return 99.0;
return 100.0;
}
if (input < 200)
{
if (input < 150)
{
if (input < 101.0) return 101.0;
if (input < 102.0) return 102.0;
if (input < 103.0) return 103.0;
if (input < 104.0) return 104.0;
if (input < 105.0) return 105.0;
if (input < 106.0) return 106.0;
if (input < 107.0) return 107.0;
if (input < 108.0) return 108.0;
if (input < 109.0) return 109.0;
if (input < 110.0) return 110.0;
if (input < 111.0) return 111.0;
if (input < 112.0) return 112.0;
if (input < 113.0) return 113.0;
if (input < 114.0) return 114.0;
if (input < 115.0) return 115.0;
if (input < 116.0) return 116.0;
if (input < 117.0) return 117.0;
if (input < 118.0) return 118.0;
if (input < 119.0) return 119.0;
if (input < 120.0) return 120.0;
if (input < 121.0) return 121.0;
if (input < 122.0) return 122.0;
if (input < 123.0) return 123.0;
if (input < 124.0) return 124.0;
if (input < 125.0) return 125.0;
if (input < 126.0) return 126.0;
if (input < 127.0) return 127.0;
if (input < 128.0) return 128.0;
if (input < 129.0) return 129.0;
if (input < 130.0) return 130.0;
if (input < 131.0) return 131.0;
if (input < 132.0) return 132.0;
if (input < 133.0) return 133.0;
if (input < 134.0) return 134.0;
if (input < 135.0) return 135.0;
if (input < 136.0) return 136.0;
if (input < 137.0) return 137.0;
if (input < 138.0) return 138.0;
if (input < 139.0) return 139.0;
if (input < 140.0) return 140.0;
if (input < 141.0) return 141.0;
if (input < 142.0) return 142.0;
if (input < 143.0) return 143.0;
if (input < 144.0) return 144.0;
if (input < 145.0) return 145.0;
if (input < 146.0) return 146.0;
if (input < 147.0) return 147.0;
if (input < 148.0) return 148.0;
if (input < 149.0) return 149.0;
return 150.0;
}
if (input < 151.0) return 151.0;
if (input < 152.0) return 152.0;
if (input < 153.0) return 153.0;
if (input < 154.0) return 154.0;
if (input < 155.0) return 155.0;
if (input < 156.0) return 156.0;
if (input < 157.0) return 157.0;
if (input < 158.0) return 158.0;
if (input < 159.0) return 159.0;
if (input < 160.0) return 160.0;
if (input < 161.0) return 161.0;
if (input < 162.0) return 162.0;
if (input < 163.0) return 163.0;
if (input < 164.0) return 164.0;
if (input < 165.0) return 165.0;
if (input < 166.0) return 166.0;
if (input < 167.0) return 167.0;
if (input < 168.0) return 168.0;
if (input < 169.0) return 169.0;
if (input < 170.0) return 170.0;
if (input < 171.0) return 171.0;
if (input < 172.0) return 172.0;
if (input < 173.0) return 173.0;
if (input < 174.0) return 174.0;
if (input < 175.0) return 175.0;
if (input < 176.0) return 176.0;
if (input < 177.0) return 177.0;
if (input < 178.0) return 178.0;
if (input < 179.0) return 179.0;
if (input < 180.0) return 180.0;
if (input < 181.0) return 181.0;
if (input < 182.0) return 182.0;
if (input < 183.0) return 183.0;
if (input < 184.0) return 184.0;
if (input < 185.0) return 185.0;
if (input < 186.0) return 186.0;
if (input < 187.0) return 187.0;
if (input < 188.0) return 188.0;
if (input < 189.0) return 189.0;
if (input < 190.0) return 190.0;
if (input < 191.0) return 191.0;
if (input < 192.0) return 192.0;
if (input < 193.0) return 193.0;
if (input < 194.0) return 194.0;
if (input < 195.0) return 195.0;
if (input < 196.0) return 196.0;
if (input < 197.0) return 197.0;
if (input < 198.0) return 198.0;
if (input < 199.0) return 199.0;
return 200.0;
}
if (input < 300)
{
if (input < 250)
{
if (input < 201.0) return 201.0;
if (input < 202.0) return 202.0;
if (input < 203.0) return 203.0;
if (input < 204.0) return 204.0;
if (input < 205.0) return 205.0;
if (input < 206.0) return 206.0;
if (input < 207.0) return 207.0;
if (input < 208.0) return 208.0;
if (input < 209.0) return 209.0;
if (input < 210.0) return 210.0;
if (input < 211.0) return 211.0;
if (input < 212.0) return 212.0;
if (input < 213.0) return 213.0;
if (input < 214.0) return 214.0;
if (input < 215.0) return 215.0;
if (input < 216.0) return 216.0;
if (input < 217.0) return 217.0;
if (input < 218.0) return 218.0;
if (input < 219.0) return 219.0;
if (input < 220.0) return 220.0;
if (input < 221.0) return 221.0;
if (input < 222.0) return 222.0;
if (input < 223.0) return 223.0;
if (input < 224.0) return 224.0;
if (input < 225.0) return 225.0;
if (input < 226.0) return 226.0;
if (input < 227.0) return 227.0;
if (input < 228.0) return 228.0;
if (input < 229.0) return 229.0;
if (input < 230.0) return 230.0;
if (input < 231.0) return 231.0;
if (input < 232.0) return 232.0;
if (input < 233.0) return 233.0;
if (input < 234.0) return 234.0;
if (input < 235.0) return 235.0;
if (input < 236.0) return 236.0;
if (input < 237.0) return 237.0;
if (input < 238.0) return 238.0;
if (input < 239.0) return 239.0;
if (input < 240.0) return 240.0;
if (input < 241.0) return 241.0;
if (input < 242.0) return 242.0;
if (input < 243.0) return 243.0;
if (input < 244.0) return 244.0;
if (input < 245.0) return 245.0;
if (input < 246.0) return 246.0;
if (input < 247.0) return 247.0;
if (input < 248.0) return 248.0;
if (input < 249.0) return 249.0;
return 250.0;
}
if (input < 251.0) return 251.0;
if (input < 252.0) return 252.0;
if (input < 253.0) return 253.0;
if (input < 254.0) return 254.0;
if (input < 255.0) return 255.0;
if (input < 256.0) return 256.0;
if (input < 257.0) return 257.0;
if (input < 258.0) return 258.0;
if (input < 259.0) return 259.0;
if (input < 260.0) return 260.0;
if (input < 261.0) return 261.0;
if (input < 262.0) return 262.0;
if (input < 263.0) return 263.0;
if (input < 264.0) return 264.0;
if (input < 265.0) return 265.0;
if (input < 266.0) return 266.0;
if (input < 267.0) return 267.0;
if (input < 268.0) return 268.0;
if (input < 269.0) return 269.0;
if (input < 270.0) return 270.0;
if (input < 271.0) return 271.0;
if (input < 272.0) return 272.0;
if (input < 273.0) return 273.0;
if (input < 274.0) return 274.0;
if (input < 275.0) return 275.0;
if (input < 276.0) return 276.0;
if (input < 277.0) return 277.0;
if (input < 278.0) return 278.0;
if (input < 279.0) return 279.0;
if (input < 280.0) return 280.0;
if (input < 281.0) return 281.0;
if (input < 282.0) return 282.0;
if (input < 283.0) return 283.0;
if (input < 284.0) return 284.0;
if (input < 285.0) return 285.0;
if (input < 286.0) return 286.0;
if (input < 287.0) return 287.0;
if (input < 288.0) return 288.0;
if (input < 289.0) return 289.0;
if (input < 290.0) return 290.0;
if (input < 291.0) return 291.0;
if (input < 292.0) return 292.0;
if (input < 293.0) return 293.0;
if (input < 294.0) return 294.0;
if (input < 295.0) return 295.0;
if (input < 296.0) return 296.0;
if (input < 297.0) return 297.0;
if (input < 298.0) return 298.0;
if (input < 299.0) return 299.0;
return 300.0;
}
return 0;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment