Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Perf][Mono] Linux/x64 Regressions due to rewritten of Matrix3x2 and Matrix4x4 #80569

Closed
performanceautofiler bot opened this issue Jan 10, 2023 · 17 comments
Assignees
Milestone

Comments

@performanceautofiler
Copy link

performanceautofiler bot commented Jan 10, 2023

Run Information

Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Matrix3x2

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
IdentityBenchmark - Duration of single invocation 8.40 ns 16.12 ns 1.92 0.04 False
CreateSkewFromScalarXYBenchmark - Duration of single invocation 56.44 ns 62.10 ns 1.10 0.04 False
MultiplyByMatrixOperatorBenchmark - Duration of single invocation 20.91 ns 45.61 ns 2.18 0.08 False
CreateRotationBenchmark - Duration of single invocation 44.60 ns 51.24 ns 1.15 0.11 False
CreateScaleFromScalarWithCenterBenchmark - Duration of single invocation 16.75 ns 30.72 ns 1.83 0.01 False
SubtractBenchmark - Duration of single invocation 18.94 ns 46.44 ns 2.45 0.08 False
CreateFromScalars - Duration of single invocation 11.36 ns 18.16 ns 1.60 0.02 False
MultiplyByScalarBenchmark - Duration of single invocation 16.77 ns 40.19 ns 2.40 0.05 False
CreateTranslationFromVectorBenchmark - Duration of single invocation 16.75 ns 21.93 ns 1.31 0.01 False
EqualityOperatorBenchmark - Duration of single invocation 10.18 ns 28.93 ns 2.84 0.01 False
SubtractOperatorBenchmark - Duration of single invocation 19.01 ns 46.39 ns 2.44 0.06 False
InvertBenchmark - Duration of single invocation 20.64 ns 34.57 ns 1.67 0.01 False
EqualsBenchmark - Duration of single invocation 25.25 ns 53.92 ns 2.14 0.10 False
NegationOperatorBenchmark - Duration of single invocation 16.98 ns 32.05 ns 1.89 0.09 False
NegateBenchmark - Duration of single invocation 16.69 ns 31.95 ns 1.92 0.08 False
CreateScaleFromScalarXYWithCenterBenchmark - Duration of single invocation 16.76 ns 31.00 ns 1.85 0.01 False
CreateScaleFromScalarXYBenchmark - Duration of single invocation 12.57 ns 18.88 ns 1.50 0.08 False
AddBenchmark - Duration of single invocation 19.02 ns 46.39 ns 2.44 0.07 False
IsIdentityBenchmark - Duration of single invocation 13.48 ns 19.30 ns 1.43 0.02 False
CreateScaleFromScalarBenchmark - Duration of single invocation 12.55 ns 18.46 ns 1.47 0.06 False
CreateScaleFromVectorBenchmark - Duration of single invocation 16.51 ns 22.84 ns 1.38 0.01 False
AddOperatorBenchmark - Duration of single invocation 19.04 ns 46.43 ns 2.44 0.07 False
CreateTranslationFromScalarXY - Duration of single invocation 12.51 ns 20.09 ns 1.61 0.05 False
CreateRotationWithCenterBenchmark - Duration of single invocation 44.03 ns 52.72 ns 1.20 0.04 False
GetDeterminantBenchmark - Duration of single invocation 2.87 ns 11.95 ns 4.17 0.25 False
MultiplyByScalarOperatorBenchmark - Duration of single invocation 16.76 ns 40.64 ns 2.42 0.04 False
CreateScaleFromVectorWithCenterBenchmark - Duration of single invocation 18.96 ns 31.58 ns 1.67 0.00 False
CreateSkewFromScalarXYWithCenterBenchmark - Duration of single invocation 58.00 ns 70.04 ns 1.21 0.07 False
LerpBenchmark - Duration of single invocation 19.88 ns 70.42 ns 3.54 0.02 False
InequalityOperatorBenchmark - Duration of single invocation 11.16 ns 31.88 ns 2.86 0.14 False
MultiplyByMatrixBenchmark - Duration of single invocation 20.89 ns 41.54 ns 1.99 0.10 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Matrix3x2*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Matrix3x2.IdentityBenchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 16.1170715972419 > 8.779757540121146.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -254.53153213062367 (T) = (0 -16.083560149063185) / Math.Sqrt((0.001926098899505196 / (33)) + (0.011237118207559184 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.9257912583838191 = (8.351663285958097 - 16.083560149063185) / 8.351663285958097 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateSkewFromScalarXYBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 62.09831721000358 > 59.531138143907654.
IsChangePoint: Marked as a change because one of 10/25/2022 10:16:52 PM, 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -16.560452983987847 (T) = (0 -62.53444218615319) / Math.Sqrt((0.9328573373921963 / (33)) + (1.0733628157115904 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.09668835830593463 = (57.0211598514192 - 62.53444218615319) / 57.0211598514192 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.MultiplyByMatrixOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 45.61063643770324 > 21.97107994273363.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -304.4620913598168 (T) = (0 -45.57945842511619) / Math.Sqrt((0.09041209005228089 / (34)) + (0.04948522199779135 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.160396843068091 = (21.09772497185584 - 45.57945842511619) / 21.09772497185584 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateRotationBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 51.24146566275764 > 47.50489430794441.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -6.740481081994737 (T) = (0 -52.141064267883266) / Math.Sqrt((2.874604501015353 / (34)) + (12.302511842422993 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.15108664514726983 = (45.29725411001736 - 52.141064267883266) / 45.29725411001736 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateScaleFromScalarWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 30.72195955532573 > 17.693373325659884.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -421.6773420655804 (T) = (0 -30.65982104328606) / Math.Sqrt((0.015760310935519852 / (33)) + (0.007913140801036951 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.8291479783774841 = (16.76180462473154 - 30.65982104328606) / 16.76180462473154 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.SubtractBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 46.43912251867836 > 19.90320844120924.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -310.4823824112218 (T) = (0 -46.430263056069016) / Math.Sqrt((0.20794228861333147 / (33)) + (0.018218945325303923 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.4206761921279922 = (19.18069967683395 - 46.430263056069016) / 19.18069967683395 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateFromScalars

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 18.159054323963424 > 11.922301909528777.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -209.8891275280426 (T) = (0 -18.090078386694362) / Math.Sqrt((0.012911275618178179 / (33)) + (0.008381905393540069 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.5960408866985166 = (11.334345214748549 - 18.090078386694362) / 11.334345214748549 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.MultiplyByScalarBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 40.188801007724884 > 17.6500731792126.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -411.74863088868904 (T) = (0 -40.572706127567386) / Math.Sqrt((0.07470379353052545 / (33)) + (0.013569301458640798 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.40181373178374 = (16.892528171797697 - 40.572706127567386) / 16.892528171797697 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateTranslationFromVectorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 21.926951254628044 > 17.338612593142127.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -287.650195984513 (T) = (0 -21.914907338151774) / Math.Sqrt((0.0065188199967778785 / (33)) + (0.0019396533474079203 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.32347953291560266 = (16.558554018492156 - 21.914907338151774) / 16.558554018492156 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.EqualityOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 28.92719528446762 > 10.697955237150197.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -218.93938823747507 (T) = (0 -29.003128777482747) / Math.Sqrt((0.0030728037938138244 / (34)) + (0.09464505067021421 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.8416358170329217 = (10.206490431897146 - 29.003128777482747) / 10.206490431897146 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.SubtractOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 46.39200286691129 > 19.977668814467535.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -272.96160630930746 (T) = (0 -46.506625861677094) / Math.Sqrt((0.09382431075181882 / (33)) + (0.09410866398596839 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.4351075568070106 = (19.098386735187187 - 46.506625861677094) / 19.098386735187187 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.InvertBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 34.566725516828605 > 21.677134939741915.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -1111.4299773957994 (T) = (0 -34.559403077146) / Math.Sqrt((0.0029481550335933686 / (33)) + (0.0008759877098790313 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.6739376523835631 = (20.64557364363958 - 34.559403077146) / 20.64557364363958 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.EqualsBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 53.91868561422856 > 26.2477724049705.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -332.01168458768075 (T) = (0 -53.33088011874406) / Math.Sqrt((0.08063792890778484 / (34)) + (0.06309714393887177 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.1239542080878284 = (25.10924195807274 - 53.33088011874406) / 25.10924195807274 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.NegationOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 32.051414219448404 > 17.695443317993124.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -324.06067998885464 (T) = (0 -32.05644566449677) / Math.Sqrt((0.046573070671551114 / (33)) + (0.010573085207756162 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.911325360022599 = (16.771841328007987 - 32.05644566449677) / 16.771841328007987 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.NegateBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 31.954722448348868 > 17.585312423553013.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -181.43173114388946 (T) = (0 -32.015518877440435) / Math.Sqrt((0.21126329726292467 / (34)) + (0.0105040981818157 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.9042787014595967 = (16.81241241258493 - 32.015518877440435) / 16.81241241258493 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateScaleFromScalarXYWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 30.995550254127533 > 17.66708711221895.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -285.12587086217036 (T) = (0 -30.946274122708232) / Math.Sqrt((0.07721309104027077 / (33)) + (0.0014162117481963772 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.838000695753692 = (16.83692187614672 - 30.946274122708232) / 16.83692187614672 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateScaleFromScalarXYBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 18.882947441669117 > 13.189017422181456.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -55.55470061478877 (T) = (0 -19.030423672363636) / Math.Sqrt((0.13700626061888083 / (34)) + (0.12020604864001151 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.5068501142722425 = (12.629274466063723 - 19.030423672363636) / 12.629274466063723 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.AddBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 46.391042979994594 > 19.90060248706082.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -355.5605200656372 (T) = (0 -46.49489593577189) / Math.Sqrt((0.12149290798935458 / (33)) + (0.029385199579446204 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.435980177147107 = (19.086730003782005 - 46.49489593577189) / 19.086730003782005 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.IsIdentityBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 19.30422572670209 > 14.161178072370516.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -277.0243159738928 (T) = (0 -19.294658401840874) / Math.Sqrt((0.005610977309822754 / (33)) + (0.003535564368932403 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.4323552866669119 = (13.47058134350138 - 19.294658401840874) / 13.47058134350138 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateScaleFromScalarBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 18.463711815612744 > 13.139929827393667.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -117.99261684372159 (T) = (0 -18.38890397128454) / Math.Sqrt((0.07393242191396546 / (33)) + (0.0007919825641759789 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.44469404781744415 = (12.728580144055677 - 18.38890397128454) / 12.728580144055677 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateScaleFromVectorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 22.84097212321653 > 17.298658156026214.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -359.6209927616292 (T) = (0 -22.866320724996474) / Math.Sqrt((0.008398944644785725 / (34)) + (0.000858031124367009 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.3855295133723204 = (16.50366917795985 - 22.866320724996474) / 16.50366917795985 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.AddOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 46.428377203622844 > 20.105451167056177.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -314.850885072455 (T) = (0 -46.42533866098077) / Math.Sqrt((0.2403294451474157 / (33)) + (0.0022880699266805142 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.4137620824836317 = (19.233601769571088 - 46.42533866098077) / 19.233601769571088 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateTranslationFromScalarXY

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 20.088389224962306 > 13.078997645296724.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -242.71808045692998 (T) = (0 -20.1325924115461) / Math.Sqrt((0.01064029570901716 / (33)) + (0.008665226282558473 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.610665828908966 = (12.499546492014131 - 20.1325924115461) / 12.499546492014131 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateRotationWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 52.71724873371493 > 46.639199112224794.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -60.168778608199204 (T) = (0 -52.68181584415189) / Math.Sqrt((0.281223712564035 / (33)) + (0.13827975720134014 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.18777059313142191 = (44.35352764986569 - 52.68181584415189) / 44.35352764986569 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.GetDeterminantBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 11.950957135984433 > 2.996468120579729.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -219.32368822521462 (T) = (0 -11.976463472760638) / Math.Sqrt((0.056129724448056535 / (33)) + (0.0004165465808459398 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -3.2077025574970537 = (2.8463189374975264 - 11.976463472760638) / 2.8463189374975264 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.MultiplyByScalarOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 40.64403586474338 > 17.61270558474604.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -228.33297298262184 (T) = (0 -40.61056762117086) / Math.Sqrt((0.17493377666930157 / (33)) + (0.06859850272490982 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.3711646218978444 = (17.126844440124437 - 40.61056762117086) / 17.126844440124437 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateScaleFromVectorWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 31.580353776054306 > 19.899248185170258.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -398.72587244241515 (T) = (0 -31.667880944504127) / Math.Sqrt((0.011845267869099093 / (34)) + (0.008742918991994548 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.6730847051235954 = (18.927840800603537 - 31.667880944504127) / 18.927840800603537 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.CreateSkewFromScalarXYWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 70.03780524315319 > 61.026804138814086.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -22.1445062538951 (T) = (0 -68.71198486234523) / Math.Sqrt((0.314658833925018 / (33)) + (2.7302677959686643 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.1778702589925995 = (58.3357838758173 - 68.71198486234523) / 58.3357838758173 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.LerpBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 70.42232653576882 > 20.989393293080862.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -767.7443749016204 (T) = (0 -70.28562472980441) / Math.Sqrt((0.13140301596351825 / (33)) + (0.0037935223980148647 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.497607434220802 = (20.095344046368847 - 70.28562472980441) / 20.095344046368847 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.InequalityOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 31.88459321780881 > 11.782146081631137.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -308.62981129127974 (T) = (0 -31.936232511384553) / Math.Sqrt((0.10718863021963146 / (34)) + (0.016978292545668905 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.8192036938629845 = (11.328103953930432 - 31.936232511384553) / 11.328103953930432 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix3x2.MultiplyByMatrixBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 41.54111598809827 > 21.9629920429615.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -155.49686986622172 (T) = (0 -41.67980367373881) / Math.Sqrt((0.4966748214247984 / (34)) + (0.03606185855477228 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.9679846337583512 = (21.178927395454792 - 41.67980367373881) / 21.178927395454792 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@performanceautofiler
Copy link
Author

performanceautofiler bot commented Jan 10, 2023

Run Information

Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Vector3

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TransformByMatrix4x4Benchmark - Duration of single invocation 20.93 ns 60.14 ns 2.87 0.02 False
TransformNormalByMatrix4x4Benchmark - Duration of single invocation 19.86 ns 61.27 ns 3.09 0.03 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Vector3*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Vector3.TransformByMatrix4x4Benchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 60.13520477569073 > 21.801772484258922.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -232.81656513043657 (T) = (0 -60.7668160263013) / Math.Sqrt((0.04000822393522501 / (33)) + (0.3684627942011987 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.9297142949398767 = (20.74155016796556 - 60.7668160263013) / 20.74155016796556 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Vector3.TransformNormalByMatrix4x4Benchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 61.265152649758136 > 20.91755041648269.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -204.45701369095642 (T) = (0 -61.11001734535533) / Math.Sqrt((0.027261339906769357 / (33)) + (0.515990581072364 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.0624135360983087 = (19.954854765699938 - 61.11001734535533) / 19.954854765699938 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@performanceautofiler
Copy link
Author

Run Information

Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Matrix4x4

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
LerpBenchmark - Duration of single invocation 39.85 ns 269.33 ns 6.76 0.04 False
GetDeterminantBenchmark - Duration of single invocation 26.98 ns 69.61 ns 2.58 0.01 False
IdentityBenchmark - Duration of single invocation 15.63 ns 60.47 ns 3.87 0.09 False
DecomposeBenchmark - Duration of single invocation 222.09 ns 291.17 ns 1.31 0.00 False
TranslationBenchmark - Duration of single invocation 17.01 ns 58.06 ns 3.41 0.02 False
CreateLookAtBenchmark - Duration of single invocation 145.62 ns 183.45 ns 1.26 0.00 False
NegationOperatorBenchmark - Duration of single invocation 34.07 ns 107.63 ns 3.16 0.03 False
CreateRotationXBenchmark - Duration of single invocation 49.70 ns 83.48 ns 1.68 0.18 False
Transpose - Duration of single invocation 33.60 ns 106.75 ns 3.18 0.01 False
CreatePerspectiveBenchmark - Duration of single invocation 38.59 ns 67.43 ns 1.75 0.01 False
IsIdentityBenchmark - Duration of single invocation 11.05 ns 93.54 ns 8.47 0.08 False
SubtractBenchmark - Duration of single invocation 38.85 ns 158.05 ns 4.07 0.03 False
MultiplyByMatrixOperatorBenchmark - Duration of single invocation 48.40 ns 560.45 ns 11.58 0.00 False
CreateScaleFromVectorWithCenterBenchmark - Duration of single invocation 62.74 ns 94.48 ns 1.51 0.02 False
CreateTranslationFromScalarXYZ - Duration of single invocation 27.75 ns 65.54 ns 2.36 0.02 False
SubtractOperatorBenchmark - Duration of single invocation 39.09 ns 159.28 ns 4.07 0.04 False
CreateScaleFromScalarWithCenterBenchmark - Duration of single invocation 61.57 ns 93.08 ns 1.51 0.01 False
CreateTranslationFromVectorBenchmark - Duration of single invocation 34.53 ns 75.30 ns 2.18 0.01 False
CreateFromYawPitchRollBenchmarkBenchmark - Duration of single invocation 109.07 ns 130.28 ns 1.19 0.09 False
CreateShadowBenchmark - Duration of single invocation 94.99 ns 272.64 ns 2.87 0.01 False
CreateOrthographicOffCenterBenchmark - Duration of single invocation 36.76 ns 64.16 ns 1.75 0.06 False
MultiplyByScalarOperatorBenchmark - Duration of single invocation 34.08 ns 152.28 ns 4.47 0.01 False
AddBenchmark - Duration of single invocation 38.94 ns 157.46 ns 4.04 0.04 False
CreateWorldBenchmark - Duration of single invocation 145.66 ns 179.83 ns 1.23 0.01 False
CreateScaleFromScalarXYZWithCenterBenchmark - Duration of single invocation 33.78 ns 93.89 ns 2.78 0.01 False
TransformBenchmark - Duration of single invocation 52.76 ns 131.89 ns 2.50 0.01 False
CreatePerspectiveOffCenterBenchmark - Duration of single invocation 39.40 ns 71.61 ns 1.82 0.02 False
CreateFromQuaternionBenchmark - Duration of single invocation 40.67 ns 76.05 ns 1.87 0.02 False
CreateRotationZBenchmark - Duration of single invocation 48.72 ns 83.25 ns 1.71 0.11 False
CreateRotationZWithCenterBenchmark - Duration of single invocation 53.02 ns 86.73 ns 1.64 0.10 False
InequalityOperatorBenchmark - Duration of single invocation 21.07 ns 112.97 ns 5.36 0.06 False
CreateBillboardBenchmark - Duration of single invocation 147.43 ns 192.34 ns 1.30 0.01 False
CreateRotationYWithCenterBenchmark - Duration of single invocation 53.22 ns 84.76 ns 1.59 0.08 False
MultiplyByMatrixBenchmark - Duration of single invocation 47.93 ns 561.10 ns 11.71 0.00 False
CreateOrthographicBenchmark - Duration of single invocation 28.23 ns 59.86 ns 2.12 0.11 False
InvertBenchmark - Duration of single invocation 75.51 ns 113.18 ns 1.50 0.00 False
EqualityOperatorBenchmark - Duration of single invocation 18.76 ns 113.15 ns 6.03 0.03 False
MultiplyByScalarBenchmark - Duration of single invocation 34.32 ns 151.60 ns 4.42 0.03 False
CreateReflectionBenchmark - Duration of single invocation 96.41 ns 263.50 ns 2.73 0.00 False
CreateFromScalars - Duration of single invocation 27.19 ns 51.97 ns 1.91 0.00 False
CreateRotationXWithCenterBenchmark - Duration of single invocation 52.96 ns 85.33 ns 1.61 0.12 False
NegateBenchmark - Duration of single invocation 34.07 ns 107.23 ns 3.15 0.04 False
CreateScaleFromScalarXYZBenchmark - Duration of single invocation 33.73 ns 92.86 ns 2.75 0.01 False
CreateScaleFromVectorBenchmark - Duration of single invocation 34.60 ns 67.19 ns 1.94 0.01 False
CreateFromMatrix3x2 - Duration of single invocation 25.59 ns 70.10 ns 2.74 0.01 False
CreateRotationYBenchmark - Duration of single invocation 49.10 ns 86.32 ns 1.76 0.18 False
AddOperatorBenchmark - Duration of single invocation 39.06 ns 158.75 ns 4.06 0.04 False
CreateConstrainedBillboardBenchmark - Duration of single invocation 203.20 ns 245.77 ns 1.21 0.00 False
CreateFromAxisAngleBenchmark - Duration of single invocation 64.15 ns 96.39 ns 1.50 0.07 False
CreateScaleFromScalarBenchmark - Duration of single invocation 27.52 ns 60.43 ns 2.20 0.03 False
EqualsBenchmark - Duration of single invocation 56.95 ns 137.66 ns 2.42 0.05 False
CreatePerspectiveFieldOfViewBenchmark - Duration of single invocation 61.62 ns 88.13 ns 1.43 0.06 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Matrix4x4*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Matrix4x4.LerpBenchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 269.3334529973303 > 41.84356617905967.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -407.2047322004315 (T) = (0 -269.54365965102545) / Math.Sqrt((0.05130259817154752 / (33)) + (4.117669978867531 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -5.771243834554304 = (39.80711169719194 - 269.54365965102545) / 39.80711169719194 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.GetDeterminantBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 69.61046524397386 > 28.328448327688598.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -1148.2355980889345 (T) = (0 -69.70142227185472) / Math.Sqrt((0.003908607266766625 / (33)) + (0.016447138206920783 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.582428228758251 = (26.990652245685194 - 69.70142227185472) / 26.990652245685194 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.IdentityBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 60.46860642604367 > 16.38543853967908.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -86.65403905923735 (T) = (0 -57.86912512138846) / Math.Sqrt((0.01334729935572943 / (33)) + (3.0775283719490623 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.692654002536592 = (15.671418194511716 - 57.86912512138846) / 15.671418194511716 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.DecomposeBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 291.16566571401734 > 236.53908760242214.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -98.71443672604076 (T) = (0 -292.99139479355534) / Math.Sqrt((3.334847198211023 / (33)) + (5.074353985367899 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.30920547299909595 = (223.79328595562453 - 292.99139479355534) / 223.79328595562453 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.TranslationBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 58.05567214572553 > 17.85810877312336.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -159.9990546158638 (T) = (0 -58.47016156097462) / Math.Sqrt((0.04535233740500827 / (34)) + (0.8541017420474087 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -2.430357431046441 = (17.044918127711874 - 58.47016156097462) / 17.044918127711874 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateLookAtBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 183.44659884168058 > 152.94001298786773.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -178.65277553702208 (T) = (0 -183.75512245036663) / Math.Sqrt((0.5544420654699463 / (33)) + (0.36234872499356546 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.2586436007245876 = (145.99456299192303 - 183.75512245036663) / 145.99456299192303 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.NegationOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 107.63356012859094 > 35.78066554276764.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -507.35994836966 (T) = (0 -106.94847618737293) / Math.Sqrt((0.28313459195984797 / (33)) + (0.15538855841662993 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.1228119420664555 = (34.24749173868024 - 106.94847618737293) / 34.24749173868024 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateRotationXBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 83.47579284441701 > 51.75274364408225.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -133.9265723589873 (T) = (0 -83.23891885678887) / Math.Sqrt((1.6202132379786376 / (33)) + (0.18728301636125988 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.6819515305529525 = (49.48948726805673 - 83.23891885678887) / 49.48948726805673 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.Transpose

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 106.7451706117533 > 35.30212407068795.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -281.92754580127945 (T) = (0 -107.40101230160062) / Math.Sqrt((0.04194101118236925 / (33)) + (0.8726181607230825 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.1898261918088178 = (33.669863448170496 - 107.40101230160062) / 33.669863448170496 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreatePerspectiveBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 67.4294211377787 > 40.79257095405643.
IsChangePoint: Marked as a change because one of 12/1/2022 7:29:59 PM, 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -87.41326095846877 (T) = (0 -67.71485392067052) / Math.Sqrt((0.12417883977130667 / (33)) + (1.3878737777156427 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.751802908456668 = (38.65437920771981 - 67.71485392067052) / 38.65437920771981 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.IsIdentityBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 93.54136268360277 > 11.602649186728717.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -975.1369372726687 (T) = (0 -93.62638973873553) / Math.Sqrt((0.21358890482998025 / (34)) + (0.011117629859813483 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -7.326229700658503 = (11.2447521993455 - 93.62638973873553) / 11.2447521993455 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.SubtractBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 158.05264528494783 > 40.90728345443498.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -142.72768594205658 (T) = (0 -159.2135819451989) / Math.Sqrt((0.19706096767445028 / (33)) + (9.117449291612926 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -3.0639746200164026 = (39.17681502266771 - 159.2135819451989) / 39.17681502266771 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.MultiplyByMatrixOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 560.4537268635066 > 50.46341342541955.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -581.8939718794525 (T) = (0 -562.5128494167307) / Math.Sqrt((0.14413963862974322 / (33)) + (10.101281283407053 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -10.684824021509105 = (48.14046393692129 - 562.5128494167307) / 48.14046393692129 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromVectorWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 94.48298589360942 > 65.92600242718527.
IsChangePoint: Marked as a change because one of 12/5/2022 3:14:07 PM, 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -90.65965149438527 (T) = (0 -95.14866676239737) / Math.Sqrt((0.37995030929163615 / (33)) + (1.473846730549153 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.5076591228621027 = (63.11019866464874 - 95.14866676239737) / 63.11019866464874 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateTranslationFromScalarXYZ

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 65.53610963823527 > 29.147039686943707.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -147.03580435966032 (T) = (0 -65.16691484128674) / Math.Sqrt((0.2822315349987762 / (33)) + (0.7275713717599115 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.3425488094778275 = (27.818807692554742 - 65.16691484128674) / 27.818807692554742 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.SubtractOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 159.2808053891345 > 41.04132044015705.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -201.89407010373816 (T) = (0 -159.04437132698862) / Math.Sqrt((0.10770374161788361 / (34)) + (4.546697042392586 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -3.0669972632563867 = (39.10609253757994 - 159.04437132698862) / 39.10609253757994 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromScalarWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 93.08498035006538 > 64.59864680917853.
IsChangePoint: Marked as a change because one of 12/5/2022 3:14:07 PM, 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -112.70745400070133 (T) = (0 -93.27466970676036) / Math.Sqrt((0.2589878565598757 / (34)) + (0.924087717584002 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.5128222131861037 = (61.656068303173406 - 93.27466970676036) / 61.656068303173406 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateTranslationFromVectorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 75.30036153399716 > 36.14787582258531.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -152.22662877033451 (T) = (0 -75.97979849288245) / Math.Sqrt((0.003615042584071867 / (33)) + (0.9677211261938538 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.2076769135189507 = (34.41617658254786 - 75.97979849288245) / 34.41617658254786 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateFromYawPitchRollBenchmarkBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 130.2843493524344 > 112.26794922942646.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -25.137459077582132 (T) = (0 -133.3180867167215) / Math.Sqrt((3.64991394413679 / (34)) + (12.786621029496727 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.245235657455323 = (107.06253544743576 - 133.3180867167215) / 107.06253544743576 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateShadowBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 272.6402657813251 > 99.83376401040735.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -1473.812524384763 (T) = (0 -272.374866989163) / Math.Sqrt((0.19423975327974716 / (33)) + (0.11147754677778414 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.8628355304721314 = (95.14163984972049 - 272.374866989163) / 95.14163984972049 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateOrthographicOffCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 64.16415568557092 > 37.77834033195391.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -549.3221146871514 (T) = (0 -64.21796628629804) / Math.Sqrt((0.02887921631494061 / (33)) + (0.02283473143549357 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.7819524526645173 = (36.0379796836185 - 64.21796628629804) / 36.0379796836185 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.MultiplyByScalarOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 152.27552017349197 > 35.79057497559056.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -182.53456531088787 (T) = (0 -152.6903335352594) / Math.Sqrt((0.010401948330482092 / (33)) + (5.480314006540183 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -3.4737526366017533 = (34.13025840678631 - 152.6903335352594) / 34.13025840678631 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.AddBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 157.4638792453723 > 41.02193704566568.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -154.56190959563367 (T) = (0 -159.48923104478524) / Math.Sqrt((0.06826913395454448 / (34)) + (7.859243694267161 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -3.0776657512346004 = (39.1128750551701 - 159.48923104478524) / 39.1128750551701 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateWorldBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 179.82906735657883 > 153.28847618923052.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -110.78213197920039 (T) = (0 -180.65765106955453) / Math.Sqrt((1.033452434522675 / (34)) + (0.8339634543852131 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.23236841406361847 = (146.5938667430245 - 180.65765106955453) / 146.5938667430245 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromScalarXYZWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 93.8864107386032 > 35.46787469566523.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -519.1594271231438 (T) = (0 -93.15610835654266) / Math.Sqrt((0.006767650328815414 / (33)) + (0.16724707317963816 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.755842738138336 = (33.803129281416375 - 93.15610835654266) / 33.803129281416375 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.TransformBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 131.8892465951753 > 55.69912061461314.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -98.6243306971678 (T) = (0 -133.06196895511792) / Math.Sqrt((0.03285825776525861 / (33)) + (8.55335500770205 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.5104525199677086 = (53.003180859532634 - 133.06196895511792) / 53.003180859532634 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreatePerspectiveOffCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 71.6109095676038 > 41.40776588359339.
IsChangePoint: Marked as a change because one of 12/1/2022 7:29:59 PM, 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -154.72389810258278 (T) = (0 -71.85229539099363) / Math.Sqrt((0.4972537487272107 / (33)) + (0.3611938898730776 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.8042840077490482 = (39.8231625854921 - 71.85229539099363) / 39.8231625854921 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateFromQuaternionBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 76.05032421869706 > 42.730280554290864.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -196.82987057194558 (T) = (0 -75.25732438347953) / Math.Sqrt((0.07693615572785571 / (34)) + (0.3687725030551248 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.8441211476967514 = (40.80931693531823 - 75.25732438347953) / 40.80931693531823 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateRotationZBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 83.24540653974317 > 51.12566815952135.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -66.34848714650407 (T) = (0 -84.40221784778645) / Math.Sqrt((1.0471814654973324 / (33)) + (3.204376950108768 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.7083580062459818 = (49.405462753826086 - 84.40221784778645) / 49.405462753826086 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateRotationZWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 86.72515968196264 > 55.74097430698124.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -161.5000661292639 (T) = (0 -85.4089518551655) / Math.Sqrt((0.6183199053619695 / (33)) + (0.26425271134987205 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.5967559512901993 = (53.48904557778787 - 85.4089518551655) / 53.48904557778787 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.InequalityOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 112.96591646307544 > 19.60857211596847.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -262.9351226573081 (T) = (0 -113.99389612173584) / Math.Sqrt((0.22134138400972309 / (33)) + (1.6176722495516855 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -5.071513773331047 = (18.77520176639487 - 113.99389612173584) / 18.77520176639487 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateBillboardBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 192.33864714390322 > 154.8715617563918.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -38.24402215182242 (T) = (0 -194.4480435973184) / Math.Sqrt((0.4714926743601689 / (33)) + (19.3052612313515 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.3172230131403708 = (147.6196829675317 - 194.4480435973184) / 147.6196829675317 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateRotationYWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 84.75765930220989 > 55.60282732943594.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -71.19894298108935 (T) = (0 -85.71145821359788) / Math.Sqrt((0.7456787486722769 / (34)) + (2.3848780914870216 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.6037441459042717 = (53.44459615487447 - 85.71145821359788) / 53.44459615487447 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.MultiplyByMatrixBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 561.1035069657212 > 50.275918951784526.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -596.4323927684868 (T) = (0 -563.4540233713507) / Math.Sqrt((0.009877440983960126 / (34)) + (9.709580940839436 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -10.763147992578004 = (47.899934926166345 - 563.4540233713507) / 47.899934926166345 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateOrthographicBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 59.86065267560303 > 29.63342452535357.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -47.508257454872776 (T) = (0 -60.997056693485504) / Math.Sqrt((0.3581053916298758 / (33)) + (6.001527480972729 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.152310750916362 = (28.340264837461582 - 60.997056693485504) / 28.340264837461582 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.InvertBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 113.17842685306036 > 79.2621158455578.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -515.263140609891 (T) = (0 -113.42741998631146) / Math.Sqrt((0.06350287415900643 / (33)) + (0.04526634970338361 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.5015307919312937 = (75.54118809672843 - 113.42741998631146) / 75.54118809672843 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.EqualityOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 113.14647469627126 > 19.544229189866506.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -170.91641639715027 (T) = (0 -114.54402398508675) / Math.Sqrt((0.04819760959056081 / (33)) + (4.072499418688478 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -5.138944468123154 = (18.658586110342522 - 114.54402398508675) / 18.658586110342522 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.MultiplyByScalarBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 151.60130026398036 > 35.881225980161275.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -190.67280093408579 (T) = (0 -152.2528028458775) / Math.Sqrt((0.932259445286971 / (34)) + (4.606402122066233 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -3.420476845649863 = (34.44261969061271 - 152.2528028458775) / 34.44261969061271 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateReflectionBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 263.4974838021425 > 101.23137326156451.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -252.35733176481952 (T) = (0 -264.63979789599546) / Math.Sqrt((1.2257668439439369 / (33)) + (5.254714607641895 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.7285924957587813 = (96.98765876815294 - 264.63979789599546) / 96.98765876815294 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateFromScalars

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 51.97188587940697 > 28.494567563987207.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -469.8203573164152 (T) = (0 -51.95999414290808) / Math.Sqrt((0.030836798091705687 / (33)) + (0.023972617555523556 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.9106390495197153 = (27.195086458622033 - 51.95999414290808) / 27.195086458622033 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateRotationXWithCenterBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 85.33330379487754 > 55.78810837867127.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -67.5718080910587 (T) = (0 -86.13643191508224) / Math.Sqrt((0.7082221748273536 / (34)) + (2.756979337450044 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.6092419156349334 = (53.52609267643687 - 86.13643191508224) / 53.52609267643687 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.NegateBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 107.2308683496428 > 35.770837115282546.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -109.40058180506969 (T) = (0 -108.06945232335012) / Math.Sqrt((0.4611190964547588 / (33)) + (5.74363755181209 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.158949955871171 = (34.21056168442747 - 108.06945232335012) / 34.21056168442747 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromScalarXYZBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 92.85516060648173 > 35.42626866916592.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -385.2554631945534 (T) = (0 -93.02303088924918) / Math.Sqrt((0.019396482236609863 / (34)) + (0.2997697168445278 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.7520188149305895 = (33.80174233714146 - 93.02303088924918) / 33.80174233714146 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromVectorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 67.1940754448258 > 36.346067741295286.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -240.675649186603 (T) = (0 -67.25336484255496) / Math.Sqrt((0.010855467090781995 / (33)) + (0.23430702792309913 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.9410105280811396 = (34.648634754722764 - 67.25336484255496) / 34.648634754722764 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateFromMatrix3x2

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 70.10366352675148 > 26.642951295978044.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -1026.6457969321234 (T) = (0 -70.23364108396503) / Math.Sqrt((0.00426736578443856 / (33)) + (0.02310440831616555 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.7644716448333295 = (25.405809900502497 - 70.23364108396503) / 25.405809900502497 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateRotationYBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 86.31907341719328 > 51.60139222639744.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -37.560128046296306 (T) = (0 -85.34426963626667) / Math.Sqrt((1.2085110388646758 / (33)) + (11.194475805950887 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.7152397039642604 = (49.756468112893536 - 85.34426963626667) / 49.756468112893536 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.AddOperatorBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 158.74637426625773 > 41.02020172544317.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -183.62224846179072 (T) = (0 -159.3963603906018) / Math.Sqrt((0.21755824147539385 / (34)) + (5.489733404869358 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -3.0692107876334846 = (39.1713206096412 - 159.3963603906018) / 39.1713206096412 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateConstrainedBillboardBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 245.7725279434517 > 213.82416197706803.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -84.86941009797545 (T) = (0 -246.56444826070216) / Math.Sqrt((0.39801144613769057 / (33)) + (3.1948988525642967 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.21179175331242753 = (203.4709739414543 - 246.56444826070216) / 203.4709739414543 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateFromAxisAngleBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 96.38895631910329 > 67.53447864393974.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -94.83787245547074 (T) = (0 -96.48701815417158) / Math.Sqrt((1.2819800221249276 / (33)) + (0.9766412281069338 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.496625810615248 = (64.46970075606723 - 96.48701815417158) / 64.46970075606723 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreateScaleFromScalarBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 60.42871802585298 > 28.878511784195748.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -188.05841904743363 (T) = (0 -60.720929892560406) / Math.Sqrt((0.013695329408939486 / (34)) + (0.3993185044663261 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.2043456433804594 = (27.546011250505266 - 60.720929892560406) / 27.546011250505266 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.EqualsBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 137.66412136785345 > 59.80575305437678.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -170.9175935455342 (T) = (0 -139.66192408206996) / Math.Sqrt((0.26924646328755303 / (34)) + (2.932251706847131 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.4469681027097243 = (57.07549842084622 - 139.66192408206996) / 57.07549842084622 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Matrix4x4.CreatePerspectiveFieldOfViewBenchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 88.12655059583449 > 64.63156427335348.
IsChangePoint: Marked as a change because one of 12/1/2022 7:29:59 PM, 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -124.47285254906738 (T) = (0 -87.97377011473917) / Math.Sqrt((0.8586667768176504 / (34)) + (0.2505974760484491 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.4256724062589192 = (61.7068617787094 - 87.97377011473917) / 61.7068617787094 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@performanceautofiler performanceautofiler bot added the untriaged New issue has not been triaged by the area owner label Jan 10, 2023
@performanceautofiler
Copy link
Author

performanceautofiler bot commented Jan 10, 2023

Run Information

Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Vector2

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TransformNormalByMatrix4x4Benchmark - Duration of single invocation 15.80 ns 56.45 ns 3.57 0.01 False
TransformByMatrix3x2Benchmark - Duration of single invocation 11.84 ns 20.88 ns 1.76 0.01 False
TransformNormalByMatrix3x2Benchmark - Duration of single invocation 11.77 ns 21.05 ns 1.79 0.02 False
TransformByMatrix4x4Benchmark - Duration of single invocation 15.88 ns 56.67 ns 3.57 0.01 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Vector2*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Vector2.TransformNormalByMatrix4x4Benchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 56.4543446701844 > 16.598539269096243.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -231.34797875281265 (T) = (0 -56.69897430745612) / Math.Sqrt((0.00399744076160677 / (34)) + (0.40445788696972246 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -2.5850670791057593 = (15.815317553723101 - 56.69897430745612) / 15.815317553723101 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Vector2.TransformByMatrix3x2Benchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 20.877738447564063 > 12.416374355982526.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -773.8055488153085 (T) = (0 -20.888724267658123) / Math.Sqrt((0.002539532655064545 / (34)) + (0.0008007229379821973 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.7619901406527326 = (11.855187941017567 - 20.888724267658123) / 11.855187941017567 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Vector2.TransformNormalByMatrix3x2Benchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 21.047785355673117 > 12.299432930076295.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -350.2315108959523 (T) = (0 -21.043062862771237) / Math.Sqrt((0.0230487983969195 / (33)) + (0.0001768728793996047 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -0.7989573963470751 = (11.697365877313624 - 21.043062862771237) / 11.697365877313624 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Vector2.TransformByMatrix4x4Benchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 56.66740289824229 > 16.682106642808204.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -204.8970031475529 (T) = (0 -56.9651200017209) / Math.Sqrt((0.0050528877600476835 / (33)) + (0.5196578088326812 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -2.578026588954355 = (15.92082076124773 - 56.9651200017209) / 15.92082076124773 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

### Run Information
Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Plane

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TransformByMatrix4x4Benchmark - Duration of single invocation 101.85 ns 139.16 ns 1.37 0.00 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Plane*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Plane.TransformByMatrix4x4Benchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 139.16038047852436 > 106.77033052694743.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -67.33143629270776 (T) = (0 -141.43176307808352) / Math.Sqrt((0.11126293930899255 / (34)) + (4.50314666959093 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -0.39181441239324777 = (101.61682607876526 - 141.43176307808352) / 101.61682607876526 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Vector4

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
TransformVector2ByMatrix4x4Benchmark - Duration of single invocation 21.10 ns 60.94 ns 2.89 0.01 False
TransformVector3ByMatrix4x4Benchmark - Duration of single invocation 22.87 ns 62.62 ns 2.74 0.02 False
TransformByMatrix4x4Benchmark - Duration of single invocation 22.97 ns 62.44 ns 2.72 0.01 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Vector4*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Vector4.TransformVector2ByMatrix4x4Benchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 60.938320792600244 > 21.987807074044028.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -377.1892383545361 (T) = (0 -60.9681089349475) / Math.Sqrt((0.0334825417450927 / (34)) + (0.13429182003226633 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.924707824873201 = (20.845880199192457 - 60.9681089349475) / 20.845880199192457 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Vector4.TransformVector3ByMatrix4x4Benchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 62.61578515326048 > 24.010588657266144.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -128.58097580668834 (T) = (0 -62.88162915067522) / Math.Sqrt((2.496488442857401 / (33)) + (0.24661952184987604 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.6953979350526533 = (23.32925626042926 - 62.88162915067522) / 23.32925626042926 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

```#### System.Numerics.Tests.Perf_Vector4.TransformByMatrix4x4Benchmark

```log

Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 62.43693875378259 > 24.055751597309857.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -661.2525824260368 (T) = (0 -62.929042662583996) / Math.Sqrt((0.018238532595013443 / (34)) + (0.0405006496628589 / (13))) is less than -2.0141033888794695 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (34) + (13) - 2, .025) and -1.7397228542389098 = (22.96912717475052 - 62.929042662583996) / 22.96912717475052 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

Run Information

Architecture x64
OS ubuntu 18.04
Baseline c2469455eab98fdcea71997d3cc5004a992fc88f
Compare 58614a0f6da787c9d6d914b99564f066d13f69ed
Diff Diff

Regressions in System.Numerics.Tests.Perf_Quaternion

Benchmark Baseline Test Test/Base Test Quality Edge Detector Baseline IR Compare IR IR Ratio Baseline ETL Compare ETL
CreateFromRotationMatrixBenchmark - Duration of single invocation 27.79 ns 67.96 ns 2.45 0.00 False

Test Report

Repro

git clone https://github.com/dotnet/performance.git
python3 .\performance\scripts\benchmarks_ci.py -f net8.0 --filter 'System.Numerics.Tests.Perf_Quaternion*'

Payloads

Baseline
Compare

Histogram

System.Numerics.Tests.Perf_Quaternion.CreateFromRotationMatrixBenchmark


Description of detection logic

IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsRegressionBase: Marked as regression because the compare was 5% greater than the baseline, and the value was not too small.
IsRegressionChecked: Marked as regression because the three check build points were 0.05 greater than the baseline.
IsRegressionWindowed: Marked as regression because 67.95507623501466 > 29.078404174313665.
IsChangePoint: Marked as a change because one of 1/6/2023 6:58:01 PM, 1/10/2023 1:28:02 AM falls between 1/1/2023 3:57:25 AM and 1/10/2023 1:28:02 AM.
IsRegressionStdDev: Marked as regression because -447.86619961498104 (T) = (0 -68.33258151733688) / Math.Sqrt((0.027045635770813082 / (33)) + (0.09632143023520238 / (13))) is less than -2.0153675744421933 = MathNet.Numerics.Distributions.StudentT.InvCDF(0, 1, (33) + (13) - 2, .025) and -1.4664212934460552 = (27.705153900071704 - 68.33258151733688) / 27.705153900071704 is less than -0.05.
IsImprovementBase: Marked as not an improvement because the compare was not 5% less than the baseline, or the value was too small.
IsChangeEdgeDetector: Marked not as a regression because Edge Detector said so.

Docs

Profiling workflow for dotnet/runtime repository
Benchmarking workflow for dotnet/runtime repository

@naricc
Copy link
Contributor

naricc commented Jan 10, 2023

@tannergooding It looks like we have some pretty singificant regressions in mono-aot from this change: f8218f9. I can't say I exactly understand the change; I see there are some differences in the runtime, do we need to make a similar change in Mono?

@naricc naricc removed the untriaged New issue has not been triaged by the area owner label Jan 10, 2023
@tannergooding
Copy link
Member

The issue here is that Mono SIMD support is still a WIP.

The fix is to finish implementing the SIMD support for Vector2/3/4 and Vector128 so that Mono has the correct/expected codegen for these types and isn't using the slow software fallback

For reference, Mono currently has acceleration for:

RyuJIT however has much more complete acceleration:

@tannergooding
Copy link
Member

@fanyang-mono and others have been working on the mono SIMD support, they may be able to provide a more accurate estimate on where things are and where they are expected to be for .NET 8

In general these types expose information on whether or not they are accelerated and devs will not typically be using them when IsHardwareAcclerated reports false.

@naricc
Copy link
Contributor

naricc commented Jan 11, 2023

Assigning this to @fanyang-mono and @jandupej so they can track it as part of the simd work.

@fanyang-mono
Copy link
Member

fanyang-mono commented Jan 11, 2023

We do have already added SIMD support for Vector4 and Vector128 on x64 with LLVM. I was surprised to see some of the Matrix4x4 API's regressed with Tanner's change. For example the add and subtraction operators, the new library code only uses Vector4 add and subtraction, which should have SIMD support. I would need to inspect the generated code to find the reason.

@fanyang-mono
Copy link
Member

@naricc Is this issue incorrectly labeled as LLVM=false?

@naricc
Copy link
Contributor

naricc commented Jan 11, 2023

@fanyang-mono Yes; we aren't actually doing any AOT runs with out llvm.

@tannergooding
Copy link
Member

Just noting that it'd be great if we had a simple way to both run and get disassembly for mono, both for MonoJIT and MonoLLVM.

With RyuJIT, it's:

.\build.cmd -subset clr+libs -config release
.\src\tests\build.cmd x64 release

Then we can set DOTNET_JitDisasm="Name" and do corerun.exe Test.dll (where corerun is from <repo_root>\artifacts\tests\coreclr\windows.x64.Release\Tests\Core_Root)

@fanyang-mono
Copy link
Member

Getting the generated code is not hard for Mono JIT either with/without LLVM. You set environment variable MONO_VERBOSE_METHOD=<method_name>. Then you could run anything and the generated code will print out in the terminal.

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jan 12, 2023
@naricc naricc transferred this issue from dotnet/perf-autofiling-issues Jan 12, 2023
@fanyang-mono fanyang-mono added this to the 8.0.0 milestone Jan 12, 2023
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label Jan 12, 2023
@fanyang-mono fanyang-mono changed the title [Perf] Linux/x64: 94 Regressions on 1/7/2023 12:45:06 AM [Perf][Mono] Linux/x64 Regressions due to rewritten of Matrix3x2 and Matrix4x4 Jan 12, 2023
@fanyang-mono
Copy link
Member

Current implementation of Matrix3x2 is heavily relied on Vector2 and Matrix4x4 is heavily relied on Vector4. Need to intrinsify Vector2 and Vector4 on mini JIT to bring the performance back.

@SamMonoRT
Copy link
Member

cc @matouskozak for further work.

@fanyang-mono fanyang-mono modified the milestones: 8.0.0, 9.0.0 Jul 12, 2023
@fanyang-mono
Copy link
Member

Won't be able to work on intrinsifying Vector2 within .NET8. Moving to 9.0.0.

@matouskozak
Copy link
Member

No longer regressed in AOT-llvm scenario.

@github-actions github-actions bot locked and limited conversation to collaborators Aug 31, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

7 participants