Skip to content

Commit 0b51d83

Browse files
authored
Fixed compilation of variable with exponentiation (x^y). (#60)
1 parent 161f684 commit 0b51d83

23 files changed

+270
-229
lines changed

BenchmarkDotNet.Artifacts/results/CompilationBenchmarks-report-github.md

+24-24
Original file line numberDiff line numberDiff line change
@@ -11,27 +11,27 @@ BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.4112/23H2/2023Update/SunValley3
1111
```
1212
| Method | Job | Runtime | Mean | Error | StdDev | Gen0 | Gen1 | Allocated |
1313
|----------------------------------------------------------------------------- |--------- |--------- |---------------:|--------------:|--------------:|-------:|-------:|----------:|
14-
| 'MathEvaluator: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 6.0 | .NET 6.0 | 19,668.553 ns | 204.5820 ns | 191.3662 ns | 0.4578 | 0.2136 | 5911 B |
15-
| 'NCalc: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 6.0 | .NET 6.0 | 37,953.247 ns | 719.2059 ns | 799.3955 ns | 0.6714 | 0.3052 | 8919 B |
16-
| 'MathEvaluator: "true or not false and (true or false)"' | .NET 6.0 | .NET 6.0 | 25,445.280 ns | 499.2615 ns | 747.2711 ns | 0.5188 | 0.2441 | 6616 B |
17-
| 'NCalc: "true or not false and (true or false)"' | .NET 6.0 | .NET 6.0 | 26,285.186 ns | 458.1359 ns | 428.5406 ns | 0.3967 | 0.1831 | 5215 B |
18-
| 'MathEvaluator: "A or not B and (C or B)"' | .NET 6.0 | .NET 6.0 | 101,364.960 ns | 1,289.0462 ns | 1,205.7747 ns | 0.6104 | 0.2441 | 8829 B |
19-
| 'NCalc: "A or not B and (C or B)"' | .NET 6.0 | .NET 6.0 | 86,156.691 ns | 1,696.4321 ns | 2,590.6310 ns | 0.4883 | 0.2441 | 6662 B |
20-
| 'MathEvaluator: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 6.0 | .NET 6.0 | 4.439 ns | 0.1074 ns | 0.1149 ns | 0.0019 | - | 24 B |
21-
| 'NCalc: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 6.0 | .NET 6.0 | 3.948 ns | 0.0853 ns | 0.0797 ns | 0.0019 | - | 24 B |
22-
| 'MathEvaluator: "Sin(pi/6) + Cos(pi/3)"' | .NET 6.0 | .NET 6.0 | 78,774.799 ns | 1,570.0480 ns | 1,928.1599 ns | 0.3662 | 0.1221 | 5707 B |
23-
| 'NCalc: "Sin(pi/6) + Cos(pi/3)"' | .NET 6.0 | .NET 6.0 | 38,431.629 ns | 713.3424 ns | 667.2609 ns | 0.6104 | 0.3052 | 8063 B |
24-
| 'MathEvaluator: "Sin(a) + Cos(b)"' | .NET 6.0 | .NET 6.0 | 94,092.406 ns | 1,747.6752 ns | 1,549.2685 ns | 0.4883 | 0.2441 | 6901 B |
25-
| 'NCalc: "Sin(a) + Cos(b)"' | .NET 6.0 | .NET 6.0 | 66,611.758 ns | 658.3745 ns | 549.7725 ns | 0.6104 | 0.2441 | 8510 B |
26-
| 'MathEvaluator: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 8.0 | .NET 8.0 | 17,026.691 ns | 123.5845 ns | 103.1987 ns | 0.4578 | 0.4272 | 5911 B |
27-
| 'NCalc: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 8.0 | .NET 8.0 | 28,883.652 ns | 227.8088 ns | 213.0925 ns | 0.6104 | 0.4883 | 8231 B |
28-
| 'MathEvaluator: "true or not false and (true or false)"' | .NET 8.0 | .NET 8.0 | 20,015.723 ns | 213.0026 ns | 199.2428 ns | 0.4883 | 0.4272 | 6662 B |
29-
| 'NCalc: "true or not false and (true or false)"' | .NET 8.0 | .NET 8.0 | 21,397.180 ns | 395.6863 ns | 370.1252 ns | 0.3967 | 0.3662 | 5263 B |
30-
| 'MathEvaluator: "A or not B and (C or B)"' | .NET 8.0 | .NET 8.0 | 89,618.867 ns | 772.9309 ns | 723.0001 ns | 0.4883 | 0.2441 | 8873 B |
31-
| 'NCalc: "A or not B and (C or B)"' | .NET 8.0 | .NET 8.0 | 73,845.091 ns | 631.9701 ns | 591.1452 ns | 0.4883 | 0.3662 | 6790 B |
32-
| 'MathEvaluator: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 8.0 | .NET 8.0 | 3.200 ns | 0.0274 ns | 0.0243 ns | 0.0019 | - | 24 B |
33-
| 'NCalc: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 8.0 | .NET 8.0 | 3.387 ns | 0.0715 ns | 0.0634 ns | 0.0019 | - | 24 B |
34-
| 'MathEvaluator: "Sin(pi/6) + Cos(pi/3)"' | .NET 8.0 | .NET 8.0 | 97,413.757 ns | 425.0299 ns | 397.5732 ns | 0.3662 | 0.2441 | 5707 B |
35-
| 'NCalc: "Sin(pi/6) + Cos(pi/3)"' | .NET 8.0 | .NET 8.0 | 31,470.244 ns | 311.8249 ns | 276.4246 ns | 0.6104 | 0.4883 | 7967 B |
36-
| 'MathEvaluator: "Sin(a) + Cos(b)"' | .NET 8.0 | .NET 8.0 | 111,472.478 ns | 567.4603 ns | 503.0388 ns | 0.4883 | 0.2441 | 6902 B |
37-
| 'NCalc: "Sin(a) + Cos(b)"' | .NET 8.0 | .NET 8.0 | 57,966.899 ns | 376.2988 ns | 314.2265 ns | 0.6104 | 0.4883 | 8510 B |
14+
| 'MathEvaluator: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 6.0 | .NET 6.0 | 19,959.936 ns | 398.2559 ns | 353.0435 ns | 0.4578 | 0.2136 | 5911 B |
15+
| 'NCalc: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 6.0 | .NET 6.0 | 36,077.338 ns | 600.2674 ns | 561.4905 ns | 0.6714 | 0.3052 | 8919 B |
16+
| 'MathEvaluator: "true or not false and (true or false)"' | .NET 6.0 | .NET 6.0 | 24,240.317 ns | 476.7464 ns | 445.9489 ns | 0.5188 | 0.2441 | 6616 B |
17+
| 'NCalc: "true or not false and (true or false)"' | .NET 6.0 | .NET 6.0 | 25,856.245 ns | 205.9693 ns | 182.5865 ns | 0.3967 | 0.1831 | 5215 B |
18+
| 'MathEvaluator: "A or not B and (C or B)"' | .NET 6.0 | .NET 6.0 | 98,030.027 ns | 697.8857 ns | 618.6575 ns | 0.6104 | 0.2441 | 8829 B |
19+
| 'NCalc: "A or not B and (C or B)"' | .NET 6.0 | .NET 6.0 | 82,356.410 ns | 1,093.3762 ns | 1,022.7447 ns | 0.4883 | 0.2441 | 6662 B |
20+
| 'MathEvaluator: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 6.0 | .NET 6.0 | 4.134 ns | 0.0377 ns | 0.0352 ns | 0.0019 | - | 24 B |
21+
| 'NCalc: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 6.0 | .NET 6.0 | 3.681 ns | 0.0259 ns | 0.0216 ns | 0.0019 | - | 24 B |
22+
| 'MathEvaluator: "Sin(pi/6) + Cos(pi/3)"' | .NET 6.0 | .NET 6.0 | 75,715.492 ns | 1,103.8160 ns | 1,032.5102 ns | 0.3662 | 0.1221 | 5707 B |
23+
| 'NCalc: "Sin(pi/6) + Cos(pi/3)"' | .NET 6.0 | .NET 6.0 | 36,853.378 ns | 161.9074 ns | 151.4483 ns | 0.6104 | 0.3052 | 8063 B |
24+
| 'MathEvaluator: "Sin(a) + Cos(b)"' | .NET 6.0 | .NET 6.0 | 92,095.243 ns | 464.2458 ns | 387.6663 ns | 0.4883 | 0.2441 | 6901 B |
25+
| 'NCalc: "Sin(a) + Cos(b)"' | .NET 6.0 | .NET 6.0 | 66,622.287 ns | 717.6596 ns | 636.1865 ns | 0.6104 | 0.2441 | 8510 B |
26+
| 'MathEvaluator: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 8.0 | .NET 8.0 | 17,895.342 ns | 161.2193 ns | 150.8047 ns | 0.4578 | 0.4272 | 5911 B |
27+
| 'NCalc: "22888.32 * 30 / 323.34 / .5 - -1 / (2 + 22888.32) * 4 - 6"' | .NET 8.0 | .NET 8.0 | 29,967.506 ns | 197.6627 ns | 184.8939 ns | 0.6104 | 0.4883 | 8231 B |
28+
| 'MathEvaluator: "true or not false and (true or false)"' | .NET 8.0 | .NET 8.0 | 20,550.904 ns | 160.1718 ns | 141.9881 ns | 0.4883 | 0.4272 | 6662 B |
29+
| 'NCalc: "true or not false and (true or false)"' | .NET 8.0 | .NET 8.0 | 21,895.307 ns | 426.7413 ns | 399.1741 ns | 0.3967 | 0.3662 | 5263 B |
30+
| 'MathEvaluator: "A or not B and (C or B)"' | .NET 8.0 | .NET 8.0 | 93,004.774 ns | 921.0943 ns | 861.5922 ns | 0.4883 | 0.2441 | 8873 B |
31+
| 'NCalc: "A or not B and (C or B)"' | .NET 8.0 | .NET 8.0 | 76,588.903 ns | 403.0938 ns | 377.0542 ns | 0.4883 | 0.2441 | 6710 B |
32+
| 'MathEvaluator: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 8.0 | .NET 8.0 | 3.209 ns | 0.0315 ns | 0.0294 ns | 0.0019 | - | 24 B |
33+
| 'NCalc: fn(new BooleanVariables { A = a, B = b, C = c })' | .NET 8.0 | .NET 8.0 | 3.325 ns | 0.0298 ns | 0.0264 ns | 0.0019 | - | 24 B |
34+
| 'MathEvaluator: "Sin(pi/6) + Cos(pi/3)"' | .NET 8.0 | .NET 8.0 | 98,711.475 ns | 1,045.8360 ns | 927.1064 ns | 0.2441 | - | 5701 B |
35+
| 'NCalc: "Sin(pi/6) + Cos(pi/3)"' | .NET 8.0 | .NET 8.0 | 32,097.432 ns | 173.8600 ns | 154.1224 ns | 0.6104 | 0.4883 | 7967 B |
36+
| 'MathEvaluator: "Sin(a) + Cos(b)"' | .NET 8.0 | .NET 8.0 | 112,895.921 ns | 776.2890 ns | 726.1412 ns | 0.4883 | 0.2441 | 6902 B |
37+
| 'NCalc: "Sin(a) + Cos(b)"' | .NET 8.0 | .NET 8.0 | 58,549.463 ns | 322.8634 ns | 286.2100 ns | 0.6104 | 0.4883 | 8510 B |

0 commit comments

Comments
 (0)