Below are the results of running the benchmarks implemented in BasicMathBenchmarks.

They not only include benchmarks for functions declared in HCCSIMD.h, HCCMath.h and HCCVectorMath.h, but also benchmarks for code from the standard C++ library, pbrt-v4, DirectXMath and DirectXTK12, which is useful for determining how performant my code really is.

-----------------------------------------------------------------------------------------
Benchmark                                               Time             CPU   Iterations
-----------------------------------------------------------------------------------------
BenchmarkDoubleGenerator                             1.93 ns         1.95 ns    344615385
BenchmarkFloatGenerator                              1.40 ns         1.41 ns    497777778
BenchmarkMathDoubleIsSameValue                       1.66 ns         1.64 ns    448000000
BenchmarkMathFloatIsSameValue                        2.29 ns         2.29 ns    320000000
BenchmarkMathDoubleIsZero                            2.09 ns         2.09 ns    344615385
BenchmarkMathFloatIsZero                             1.63 ns         1.65 ns    407272727
BenchmarkMathDoubleIsNaN                             1.61 ns         1.60 ns    448000000
BenchmarkOpenLibMDoubleIsNaN                         1.68 ns         1.69 ns    407272727
BenchmarkStdDoubleIsNaN                              1.70 ns         1.73 ns    407272727
BenchmarkPbrtDoubleIsNaN                             1.70 ns         1.69 ns    407272727
BenchmarkMathFloatIsNaN                              1.72 ns         1.69 ns    407272727
BenchmarkMathVector2fIsNaN                           1.78 ns         1.76 ns    407272727
BenchmarkMathVector2fSimdIsNaN                       2.35 ns         2.34 ns    313600000
BenchmarkMathVector3fIsNaN                           2.54 ns         2.57 ns    280000000
BenchmarkMathVector3fSimdIsNaN                       1.76 ns         1.73 ns    407272727
BenchmarkMathVector4fIsNaN                           1.55 ns         1.53 ns    407272727
BenchmarkMathVector4fSimdIsNaN                       1.35 ns         1.35 ns    497777778
BenchmarkOpenLibMFloatIsNaN                          1.82 ns         1.84 ns    407272727
BenchmarkStdFloatIsNaN                               1.67 ns         1.69 ns    407272727
BenchmarkPbrtFloatIsNaN                              1.69 ns         1.69 ns    407272727
BenchmarkMathDoubleSignum                            2.22 ns         2.27 ns    344615385
BenchmarkNaiveDoubleSignum                           1.97 ns         1.97 ns    373333333
BenchmarkMathFloatSignum                             2.43 ns         2.41 ns    298666667
BenchmarkNaiveFloatSignum                            2.36 ns         2.34 ns    320000000
BenchmarkMathDoubleDeg2Rad                           2.04 ns         2.04 ns    344615385
BenchmarkPbrtDoubleRadians                           1.57 ns         1.53 ns    407272727
BenchmarkMathFloatDeg2Rad                            2.04 ns         2.01 ns    373333333
BenchmarkPbrtFloatRadians                            1.98 ns         1.99 ns    344615385
BenchmarkMathDoubleRad2Deg                           2.00 ns         2.01 ns    373333333
BenchmarkPbrtDoubleDegrees                           1.59 ns         1.60 ns    497777778
BenchmarkMathFloatRad2Deg                            1.87 ns         1.86 ns    344615385
BenchmarkPbrtFloatDegrees                            1.91 ns         1.88 ns    373333333
BenchmarkMathDoubleNextAfter                         6.28 ns         6.41 ns    100000000
BenchmarkOpenLibMDoubleNextAfter                     6.29 ns         6.28 ns    112000000
BenchmarkStdDoubleNextAfter                          5.86 ns         5.94 ns    100000000
BenchmarkMathFloatNextAfter                          2.23 ns         2.22 ns    344615385
BenchmarkOpenLibMFloatNextAfter                      1.83 ns         1.84 ns    373333333
BenchmarkStdFloatNextAfter                           3.76 ns         3.75 ns    179200000
BenchmarkMathDoubleSqrt                              1.61 ns         1.64 ns    448000000
BenchmarkOpenLibMDoubleSqrt                          32.6 ns         33.0 ns     21333333
BenchmarkStdDoubleSqrt                               15.4 ns         15.3 ns     44800000
BenchmarkPbrtDoubleSqrt                              14.5 ns         14.8 ns     49777778
BenchmarkMathFloatSqrt                               2.09 ns         2.10 ns    320000000
BenchmarkMathVector2fSqrt                            2.30 ns         2.30 ns    298666667
BenchmarkMathVector2fSimdSqrt                        1.51 ns         1.50 ns    407272727
BenchmarkMathVector3fSqrt                            1.77 ns         1.76 ns    407272727
BenchmarkMathVector3fSimdSqrt                        1.56 ns         1.57 ns    448000000
BenchmarkMathVector4fSqrt                            1.80 ns         1.80 ns    407272727
BenchmarkMathVector4fSimdSqrt                        1.68 ns         1.69 ns    407272727
BenchmarkOpenLibMFloatSqrt                           2.38 ns         2.34 ns    280000000
BenchmarkStdFloatSqrt                                2.00 ns         2.00 ns    320000000
BenchmarkPbrtFloatSqrt                               2.16 ns         2.10 ns    320000000
BenchmarkMathDoubleCbrt                              7.69 ns         7.53 ns     74666667
BenchmarkOpenLibMDoubleCbrt                          9.32 ns         9.21 ns     74666667
BenchmarkStdDoubleCbrt                               19.9 ns         20.1 ns     37333333
BenchmarkMathFloatCbrt                               20.7 ns         20.9 ns     37333333
BenchmarkMathVector2fCbrt                            19.9 ns         19.9 ns     40727273
BenchmarkMathVector2fSimdCbrt                        19.5 ns         19.5 ns     34461538
BenchmarkMathVector3fCbrt                            18.2 ns         18.0 ns     40727273
BenchmarkMathVector3fSimdCbrt                        18.0 ns         18.0 ns     37333333
BenchmarkMathVector4fCbrt                            16.1 ns         16.3 ns     34461538
BenchmarkMathVector4fSimdCbrt                        15.9 ns         16.0 ns     44800000
BenchmarkOpenLibMFloatCbrt                           2.83 ns         2.83 ns    248888889
BenchmarkStdFloatCbrt                                4.02 ns         3.99 ns    172307692
BenchmarkMathDoubleNextDown                          2.41 ns         2.46 ns    298666667
BenchmarkStdDoubleNextDown                           7.12 ns         7.11 ns    112000000
BenchmarkMathFloatNextDown                           1.78 ns         1.76 ns    373333333
BenchmarkMathVector2fNextDown                        3.04 ns         3.08 ns    248888889
BenchmarkMathVector2fSimdNextDown                    3.02 ns         3.00 ns    224000000
BenchmarkMathVector3fNextDown                        3.23 ns         3.28 ns    224000000
BenchmarkMathVector3fSimdNextDown                    2.97 ns         2.98 ns    235789474
BenchmarkMathVector4fNextDown                        2.66 ns         2.67 ns    263529412
BenchmarkMathVector4fSimdNextDown                    2.70 ns         2.73 ns    280000000
BenchmarkStdFloatNextDown                            3.22 ns         3.21 ns    224000000
BenchmarkPbrtFloatNextFloatDown                      4.57 ns         4.59 ns    160000000
BenchmarkMathDoubleNextUp                            4.50 ns         4.53 ns    172307692
BenchmarkStdDoubleNextUp                             6.98 ns         6.98 ns     89600000
BenchmarkMathFloatNextUp                             2.62 ns         2.57 ns    280000000
BenchmarkMathVector2fNextUp                          2.76 ns         2.76 ns    248888889
BenchmarkMathVector2fSimdNextUp                      3.30 ns         3.30 ns    203636364
BenchmarkMathVector3fNextUp                          3.31 ns         3.35 ns    224000000
BenchmarkMathVector3fSimdNextUp                      2.77 ns         2.79 ns    263529412
BenchmarkMathVector4fNextUp                          2.37 ns         2.34 ns    280000000
BenchmarkMathVector4fSimdNextUp                      3.10 ns         3.14 ns    224000000
BenchmarkStdFloatNextUp                              3.19 ns         3.22 ns    213333333
BenchmarkPbrtFloatNextFloatUp                        4.06 ns         3.99 ns    172307692
BenchmarkMathDoubleIsInf                             1.54 ns         1.57 ns    448000000
BenchmarkOpenLibMDoubleIsInf                         1.56 ns         1.57 ns    448000000
BenchmarkStdDoubleIsInf                              1.71 ns         1.69 ns    407272727
BenchmarkMathFloatIsInf                              1.72 ns         1.73 ns    407272727
BenchmarkMathVector2fIsInf                           1.81 ns         1.80 ns    373333333
BenchmarkMathVector2fSimdIsInf                       2.30 ns         2.29 ns    280000000
BenchmarkMathVector3fIsInf                           1.87 ns         1.90 ns    344615385
BenchmarkMathVector3fSimdIsInf                       1.81 ns         1.76 ns    407272727
BenchmarkMathVector4fIsInf                           1.80 ns         1.80 ns    373333333
BenchmarkMathVector4fSimdIsInf                       1.76 ns         1.74 ns    448000000
BenchmarkOpenLibMFloatIsInf                          1.66 ns         1.67 ns    448000000
BenchmarkStdFloatIsInf                               1.58 ns         1.57 ns    407272727
BenchmarkPbrtFloatIsInf                              1.75 ns         1.76 ns    407272727
BenchmarkMathDoubleAbs                               1.67 ns         1.69 ns    407272727
BenchmarkMathDoubleFastAbs                           1.60 ns         1.57 ns    407272727
BenchmarkMathInternalDoubleAbsImpl                   1.92 ns         1.93 ns    373333333
BenchmarkOpenLibMDoubleAbs                           1.56 ns         1.57 ns    448000000
BenchmarkStdDoubleAbs                                1.31 ns         1.29 ns    497777778
BenchmarkPbrtDoubleAbs                               1.34 ns         1.35 ns    497777778
BenchmarkMathFloatAbs                                1.64 ns         1.63 ns    373333333
BenchmarkMathVector2fAbs                             1.98 ns         1.97 ns    373333333
BenchmarkMathVector2fSimdAbs                         2.08 ns         2.06 ns    280000000
BenchmarkMathVector3fAbs                             2.75 ns         2.78 ns    235789474
BenchmarkMathVector3fSimdAbs                         2.19 ns         2.14 ns    298666667
BenchmarkMathVector4fAbs                             2.35 ns         2.35 ns    298666667
BenchmarkMathVector4fSimdAbs                         1.97 ns         1.99 ns    344615385
BenchmarkMathFloatFastAbs                            1.79 ns         1.80 ns    407272727
BenchmarkMathVector2fFastAbs                         1.72 ns         1.73 ns    407272727
BenchmarkMathVector2fSimdFastAbs                     1.76 ns         1.74 ns    448000000
BenchmarkMathVector3fFastAbs                         1.58 ns         1.60 ns    448000000
BenchmarkMathVector3fSimdFastAbs                     1.61 ns         1.64 ns    448000000
BenchmarkMathVector4fFastAbs                         1.51 ns         1.50 ns    407272727
BenchmarkMathVector4fSimdFastAbs                     1.50 ns         1.51 ns    497777778
BenchmarkMathInternalFloatAbsImpl                    2.11 ns         2.13 ns    344615385
BenchmarkOpenLibMFloatAbs                            1.60 ns         1.57 ns    448000000
BenchmarkStdFloatAbs                                 1.59 ns         1.57 ns    407272727
BenchmarkPbrtFloatAbs                                1.60 ns         1.60 ns    448000000
BenchmarkMathDoubleSignBit                           1.33 ns         1.32 ns    497777778
BenchmarkOpenLibMDoubleSignBit                       1.92 ns         1.90 ns    344615385
BenchmarkStdDoubleSignBit                            4.00 ns         4.00 ns    160000000
BenchmarkMathFloatSignBit                            2.66 ns         2.65 ns    323716129
BenchmarkOpenLibMFloatSignBit                        2.11 ns         2.12 ns    235789474
BenchmarkStdFloatSignBit                             3.87 ns         3.91 ns    280000000
BenchmarkMathDoubleFRExp                             2.46 ns         2.49 ns    213333333
BenchmarkOpenLibMDoubleFRExp                         2.66 ns         2.67 ns    263529412
BenchmarkStdDoubleFRExp                              4.28 ns         4.19 ns    149333333
BenchmarkMathFloatFRExp                              2.11 ns         2.15 ns    320000000
BenchmarkOpenLibMFloatFRExp                          2.17 ns         2.15 ns    320000000
BenchmarkStdFloatFRExp                               4.52 ns         4.54 ns    144516129
BenchmarkMathDoubleModF                              3.60 ns         3.61 ns    194782609
BenchmarkOpenLibMDoubleModF                          2.67 ns         2.65 ns    235789474
BenchmarkStdDoubleModF                               3.34 ns         3.30 ns    203636364
BenchmarkMathFloatingPointDoubleModF                 2.82 ns         2.85 ns    235789474
BenchmarkMathFloatModF                               2.28 ns         2.23 ns    280000000
BenchmarkOpenLibMFloatModF                           2.47 ns         2.51 ns    280000000
BenchmarkMathFloatingPointFloatModF                  2.45 ns         2.46 ns    298666667
BenchmarkStdFloatModF                                3.51 ns         3.52 ns    186666667
BenchmarkMathDoubleMin                               3.43 ns         3.45 ns    203636364
BenchmarkOpenLibMDoubleMin                           2.36 ns         2.31 ns    263529412
BenchmarkStdDoubleMin                                2.08 ns         2.09 ns    344615385
BenchmarkMathFloatMin                                3.47 ns         3.45 ns    194782609
BenchmarkMathVector2fMin                             5.20 ns         5.16 ns    100000000
BenchmarkMathVector2fSimdMin                         1.79 ns         1.80 ns    407272727
BenchmarkMathVector3fMin                             2.75 ns         2.79 ns    263529412
BenchmarkMathVector3fSimdMin                         1.55 ns         1.55 ns    373333333
BenchmarkMathVector4fMin                             2.27 ns         2.29 ns    320000000
BenchmarkMathVector4fSimdMin                         1.62 ns         1.65 ns    407272727
BenchmarkOpenLibMFloatMin                            2.66 ns         2.65 ns    235789474
BenchmarkStdFloatMin                                 1.67 ns         1.69 ns    407272727
BenchmarkMathDoubleMax                               3.63 ns         3.61 ns    194782609
BenchmarkOpenLibMDoubleMax                           2.54 ns         2.54 ns    320000000
BenchmarkStdDoubleMax                                2.16 ns         2.18 ns    344615385
BenchmarkMathFloatMax                                3.23 ns         3.28 ns    224000000
BenchmarkMathVector2fMax                             5.07 ns         5.16 ns    100000000
BenchmarkMathVector2fSimdMax                         1.66 ns         1.65 ns    407272727
BenchmarkMathVector3fMax                             2.83 ns         2.83 ns    248888889
BenchmarkMathVector3fSimdMax                         1.63 ns         1.61 ns    407272727
BenchmarkMathVector4fMax                             2.32 ns         2.30 ns    298666667
BenchmarkMathVector4fSimdMax                         1.60 ns         1.59 ns    373333333
BenchmarkOpenLibMFloatMax                            2.11 ns         2.13 ns    344615385
BenchmarkStdFloatMax                                 2.31 ns         2.35 ns    298666667
BenchmarkMathDoubleTrunc                             1.67 ns         1.67 ns    448000000
BenchmarkOpenLibMDoubleTrunc                         2.45 ns         2.46 ns    280000000
BenchmarkMathFloatingPointDoubleTrunc                3.38 ns         3.39 ns    373333333
BenchmarkStdDoubleTrunc                              3.03 ns         3.08 ns    213333333
BenchmarkNaiveDoubleTrunc                            1.63 ns         1.64 ns    448000000
BenchmarkMathFloatTrunc                              1.76 ns         1.73 ns    407272727
BenchmarkMathVector2fTrunc                           1.77 ns         1.76 ns    373333333
BenchmarkMathVector2fSimdTrunc                       2.42 ns         2.44 ns    224000000
BenchmarkMathVector3fTrunc                           2.42 ns         2.40 ns    280000000
BenchmarkMathVector3fSimdTrunc                       1.65 ns         1.63 ns    373333333
BenchmarkMathVector4fTrunc                           1.71 ns         1.69 ns    407272727
BenchmarkMathVector4fSimdTrunc                       1.45 ns         1.44 ns    497777778
BenchmarkOpenLibMFloatTrunc                          2.66 ns         2.62 ns    280000000
BenchmarkMathFloatingPointFloatTrunc                 2.27 ns         2.29 ns    280000000
BenchmarkStdFloatTrunc                               1.73 ns         1.74 ns    448000000
BenchmarkNaiveFloatTrunc                             1.55 ns         1.57 ns    448000000
BenchmarkMathDoubleFloor                             1.45 ns         1.44 ns    497777778
BenchmarkOpenLibMDoubleFloor                         3.84 ns         3.85 ns    194782609
BenchmarkMathFloatingPointDoubleFloor                4.43 ns         4.39 ns    149333333
BenchmarkStdDoubleFloor                              1.58 ns         1.57 ns    448000000
BenchmarkMathFloatFloor                              1.56 ns         1.57 ns    448000000
BenchmarkMathVector2fFloor                           1.77 ns         1.76 ns    373333333
BenchmarkMathVector2fSimdFloor                       1.86 ns         1.84 ns    407272727
BenchmarkMathVector3fFloor                           2.04 ns         2.04 ns    344615385
BenchmarkMathVector3fSimdFloor                       1.72 ns         1.73 ns    407272727
BenchmarkMathVector4fFloor                           1.61 ns         1.61 ns    407272727
BenchmarkMathVector4fSimdFloor                       2.26 ns         2.25 ns    263529412
BenchmarkOpenLibMFloatFloor                          3.22 ns         3.14 ns    224000000
BenchmarkMathFloatingPointFloatFloor                 3.77 ns         3.72 ns    172307692
BenchmarkStdFloatFloor                               1.80 ns         1.80 ns    407272727
BenchmarkMathDoubleCeil                              1.79 ns         1.79 ns    280000000
BenchmarkOpenLibMDoubleCeil                          2.31 ns         2.31 ns    263529412
BenchmarkMathFloatingPointDoubleCeil                 4.25 ns         4.26 ns    172307692
BenchmarkStdDoubleCeil                               1.65 ns         1.67 ns    448000000
BenchmarkMathFloatCeil                               1.76 ns         1.76 ns    407272727
BenchmarkMathVector2fCeil                            1.65 ns         1.65 ns    407272727
BenchmarkMathVector2fSimdCeil                        2.67 ns         2.61 ns    263529412
BenchmarkMathVector3fCeil                            2.62 ns         2.61 ns    263529412
BenchmarkMathVector3fSimdCeil                        1.78 ns         1.80 ns    407272727
BenchmarkMathVector4fCeil                            1.65 ns         1.64 ns    448000000
BenchmarkMathVector4fSimdCeil                        1.52 ns         1.54 ns    497777778
BenchmarkOpenLibMFloatCeil                           2.29 ns         2.29 ns    280000000
BenchmarkMathFloatingPointFloatCeil                  2.03 ns         2.05 ns    320000000
BenchmarkStdFloatCeil                                1.54 ns         1.53 ns    448000000
BenchmarkMathDoubleRound                             1.69 ns         1.71 ns    448000000
BenchmarkOpenLibMDoubleRound                         4.57 ns         4.59 ns    160000000
BenchmarkMathFloatingPointDoubleRound                3.46 ns         3.45 ns    203636364
BenchmarkStdDoubleRound                              2.83 ns         2.85 ns    235789474
BenchmarkMathFloatRound                              2.26 ns         2.25 ns    298666667
BenchmarkMathVector2fRound                           2.38 ns         2.41 ns    298666667
BenchmarkMathVector2fSimdRound                       2.52 ns         2.54 ns    320000000
BenchmarkMathVector3fRound                           2.55 ns         2.58 ns    235789474
BenchmarkMathVector3fSimdRound                       1.95 ns         1.97 ns    373333333
BenchmarkMathVector4fRound                           1.79 ns         1.76 ns    407272727
BenchmarkMathVector4fSimdRound                       1.66 ns         1.66 ns    497777778
BenchmarkOpenLibMFloatRound                          1.63 ns         1.60 ns    448000000
BenchmarkMathFloatingPointFloatRound                 3.19 ns         3.14 ns    224000000
BenchmarkStdFloatRound                               2.09 ns         2.05 ns    320000000
BenchmarkMathDoubleClamp                             3.36 ns         3.38 ns    203636364
BenchmarkStdDoubleClamp                              2.09 ns         2.09 ns    344615385
BenchmarkMathFloatClamp                              2.49 ns         2.51 ns    298666667
BenchmarkMathVector2fClamp1                          2.60 ns         2.62 ns    280000000
BenchmarkMathVector2fSimdClamp1                      1.87 ns         1.84 ns    373333333
BenchmarkMathVector2fClamp2                          2.42 ns         2.35 ns    298666667
BenchmarkMathVector2fSimdClamp2                      1.79 ns         1.80 ns    373333333
BenchmarkMathVector3fClamp1                          2.10 ns         2.13 ns    344615385
BenchmarkMathVector3fSimdClamp1                      2.31 ns         2.34 ns    280000000
BenchmarkMathVector3fClamp2                          3.17 ns         3.18 ns    235789474
BenchmarkMathVector3fSimdClamp2                      2.20 ns         2.15 ns    320000000
BenchmarkMathVector4fClamp1                          2.18 ns         2.20 ns    320000000
BenchmarkMathVector4fSimdClamp1                      1.76 ns         1.76 ns    373333333
BenchmarkMathVector4fClamp2                          2.25 ns         2.25 ns    263529412
BenchmarkMathVector4fSimdClamp2                      1.73 ns         1.74 ns    448000000
BenchmarkStdFloatClamp                               2.28 ns         2.29 ns    320000000
BenchmarkPbrtFloatClamp                              2.48 ns         2.51 ns    280000000
BenchmarkMathDoubleLerp                              1.97 ns         1.99 ns    407272727
BenchmarkMathInternalDoubleLerpImpl                  3.54 ns         3.60 ns    186666667
BenchmarkStdDoubleLerp                               3.28 ns         3.22 ns    203636364
BenchmarkMathFloatLerp                               1.74 ns         1.72 ns    373333333
BenchmarkMathVector2fLerp11                          1.92 ns         1.93 ns    373333333
BenchmarkMathVector2fSimdLerp11                      2.05 ns         2.04 ns    344615385
BenchmarkMathVector3fLerp11                          1.83 ns         1.84 ns    373333333
BenchmarkMathVector3fSimdLerp11                      2.05 ns         2.05 ns    373333333
BenchmarkMathVector4fLerp11                          1.55 ns         1.55 ns    373333333
BenchmarkMathVector4fSimdLerp11                      1.78 ns         1.76 ns    407272727
BenchmarkMathFloatLerp2                              1.78 ns         1.72 ns    373333333
BenchmarkMathVector2fLerp21                          1.76 ns         1.76 ns    407272727
BenchmarkMathVector2fSimdLerp21                      2.48 ns         2.49 ns    320000000
BenchmarkMathVector3fLerp21                          2.21 ns         2.22 ns    344615385
BenchmarkMathVector3fSimdLerp21                      2.01 ns         1.97 ns    373333333
BenchmarkMathVector4fLerp21                          1.70 ns         1.72 ns    373333333
BenchmarkMathVector4fSimdLerp21                      1.58 ns         1.57 ns    448000000
BenchmarkMathVector2fLerp22                          1.73 ns         1.72 ns    373333333
BenchmarkMathVector2fSimdLerp22                      2.37 ns         2.35 ns    298666667
BenchmarkMathVector3fLerp22                          3.25 ns         3.22 ns    213333333
BenchmarkMathVector3fSimdLerp22                      3.33 ns         3.30 ns    298666667
BenchmarkPbrtVector3fLerp22                          3.11 ns         3.08 ns    248888889
BenchmarkMathVector4fLerp22                          2.05 ns         2.06 ns    448000000
BenchmarkMathVector4fSimdLerp22                      2.02 ns         2.04 ns    344615385
BenchmarkMathVector2fLerp23                          2.03 ns         2.03 ns    407272727
BenchmarkMathVector2fSimdLerp23                      2.04 ns         2.00 ns    320000000
BenchmarkMathVector3fLerp23                          2.61 ns         2.62 ns    298666667
BenchmarkMathVector3fSimdLerp23                      2.03 ns         2.05 ns    373333333
BenchmarkMathVector4fLerp23                          1.66 ns         1.67 ns    448000000
BenchmarkMathVector4fSimdLerp23                      2.29 ns         2.30 ns    298666667
BenchmarkPbrtVector2fLerp22                          1.78 ns         1.77 ns    344615385
BenchmarkMathInternalFloatLerpImpl                   2.72 ns         2.73 ns    263529412
BenchmarkStdFloatLerp                                2.49 ns         2.46 ns    280000000
BenchmarkPbrtFloatLerp                               1.78 ns         1.76 ns    407272727
BenchmarkMathDoubleCopySign                          1.65 ns         1.64 ns    448000000
BenchmarkOpenLibMDoubleCopySign                      1.84 ns         1.81 ns    344615385
BenchmarkStdDoubleCopySign                           3.52 ns         3.45 ns    203636364
BenchmarkPbrtDoubleCopySign                          3.52 ns         3.56 ns    224000000
BenchmarkMathFloatCopySign                           2.20 ns         2.25 ns    320000000
BenchmarkOpenLibMFloatCopySign                       2.34 ns         2.35 ns    298666667
BenchmarkStdFloatCopySign                            1.73 ns         1.73 ns    407272727
BenchmarkPbrtFloatCopySign                           1.75 ns         1.76 ns    407272727
BenchmarkMathDoubleScaleByN                          3.05 ns         3.05 ns    235789474
BenchmarkOpenLibMDoubleScaleByN                      3.88 ns         3.90 ns    172307692
BenchmarkStdDoubleScaleByN                           5.41 ns         5.47 ns    100000000
BenchmarkMathFloatScaleByN                           2.17 ns         2.14 ns    298666667
BenchmarkOpenLibMFloatScaleByN                       2.13 ns         2.10 ns    320000000
BenchmarkStdFloatScaleByN                            3.47 ns         3.45 ns    203636364
BenchmarkMathDoubleFMod                               113 ns          109 ns      5600000
BenchmarkOpenLibMDoubleFMod                          1153 ns         1144 ns       560000
BenchmarkStdDoubleFMod                                112 ns          112 ns      5600000
BenchmarkMathFloatFMod                               3.34 ns         3.30 ns    203636364
BenchmarkMathVector2fFMod                            13.5 ns         13.6 ns     44800000
BenchmarkMathVector2fSimdFMod                        15.6 ns         15.7 ns     49777778
BenchmarkMathVector3fFMod                            19.1 ns         18.8 ns     40727273
BenchmarkMathVector3fSimdFMod                        19.2 ns         19.2 ns     40727273
BenchmarkMathVector4fFMod                            19.2 ns         19.3 ns     37333333
BenchmarkMathVector4fSimdFMod                        20.2 ns         19.9 ns     34461538
BenchmarkOpenLibMFloatFMod                           3.62 ns         3.61 ns    194782609
BenchmarkStdFloatFMod                                6.82 ns         6.80 ns     89600000
BenchmarkPbrtFloatFMod                               6.50 ns         6.45 ns     89600000
BenchmarkMathDoubleExp                               3.08 ns         3.07 ns    224000000
BenchmarkOpenLibMDoubleExp                           3.15 ns         3.21 ns    194782609
BenchmarkStdDoubleExp                                25.5 ns         25.7 ns     24888889
BenchmarkMathFloatExp                                3.19 ns         3.18 ns    235789474
BenchmarkMathVector2fExp                             2.78 ns         2.76 ns    248888889
BenchmarkMathVector2fSimdExp                         11.3 ns         11.2 ns     64000000
BenchmarkMathVector3fExp                             3.23 ns         3.25 ns    235789474
BenchmarkMathVector3fSimdExp                         11.0 ns         11.0 ns     64000000
BenchmarkMathVector4fExp                             2.69 ns         2.68 ns    280000000
BenchmarkMathVector4fSimdExp                         10.7 ns         10.7 ns     74666667
BenchmarkMathFloatFastExp                            2.60 ns         2.61 ns    263529412
BenchmarkOpenLibMFloatExp                            2.89 ns         2.93 ns    224000000
BenchmarkStdFloatExp                                 4.95 ns         5.00 ns    100000000
BenchmarkPbrtFloatFastExp                            2.58 ns         2.57 ns    248888889
BenchmarkMathDoubleExpM1                             16.5 ns         16.5 ns     40727273
BenchmarkOpenLibMDoubleExpM1                         16.3 ns         16.4 ns     44800000
BenchmarkStdDoubleExpM1                              13.2 ns         12.8 ns     56000000
BenchmarkMathFloatExpM1                              16.8 ns         16.9 ns     40727273
BenchmarkMathVector2fExpM1                           18.0 ns         18.0 ns     40727273
BenchmarkMathVector2fSimdExpM1                       18.0 ns         18.0 ns     40727273
BenchmarkMathVector3fExpM1                           19.7 ns         19.9 ns     40727273
BenchmarkMathVector3fSimdExpM1                       18.5 ns         18.4 ns     37333333
BenchmarkMathVector4fExpM1                           19.1 ns         19.3 ns     37333333
BenchmarkMathVector4fSimdExpM1                       18.4 ns         18.1 ns     32000000
BenchmarkOpenLibMFloatExpM1                          10.8 ns         10.7 ns     64000000
BenchmarkStdFloatExpM1                               12.8 ns         12.9 ns     49777778
BenchmarkMathDoubleHypot                             2.20 ns         2.18 ns    344615385
BenchmarkOpenLibMDoubleHypot                         5.31 ns         5.31 ns    100000000
BenchmarkOpenLibMDoubleFastHypot                     4.53 ns         4.55 ns    154482759
BenchmarkStdDoubleHypot                              4.83 ns         4.74 ns    112000000
BenchmarkMathFloatHypot                              2.52 ns         2.54 ns    344615385
BenchmarkMathVector2fHypot                           24.7 ns         25.1 ns     29866667
BenchmarkMathVector2SimdfHypot                       24.4 ns         24.9 ns     26352941
BenchmarkMathVector3fHypot                           25.6 ns         25.6 ns     29866667
BenchmarkMathVector3SimdfHypot                       23.4 ns         23.7 ns     26352941
BenchmarkMathVector4fHypot                           19.7 ns         19.5 ns     28000000
BenchmarkMathVector4SimdfHypot                       20.1 ns         20.1 ns     37333333
BenchmarkOpenLibMFloatHypot                          4.41 ns         4.44 ns    172307692
BenchmarkOpenLibMFloatFastHypot                      3.64 ns         3.60 ns    186666667
BenchmarkStdFloatHypot                               5.58 ns         5.62 ns    100000000
BenchmarkMathDoubleHypot3                            3.27 ns         3.30 ns    203636364
BenchmarkStdDoubleHypot3                             5.47 ns         5.44 ns    112000000
BenchmarkMathFloatHypot3                             1.95 ns         1.95 ns    320000000
BenchmarkStdFloatHypot3                              7.61 ns         7.50 ns     89600000
BenchmarkMathDoubleLog                               6.79 ns         6.84 ns    112000000
BenchmarkOpenLibMDoubleLog                           6.93 ns         6.80 ns     89600000
BenchmarkStdDoubleLog                                18.8 ns         19.0 ns     34461538
BenchmarkMathFloatLog                                2.51 ns         2.49 ns    263529412
BenchmarkMathVector2fLog                             2.84 ns         2.83 ns    248888889
BenchmarkMathVector2fSimdLog                         14.4 ns         14.4 ns     49777778
BenchmarkMathVector3fLog                             3.04 ns         3.05 ns    235789474
BenchmarkMathVector3fSimdLog                         12.6 ns         12.6 ns     56000000
BenchmarkMathVector4fLog                             2.64 ns         2.65 ns    235789474
BenchmarkMathVector4fSimdLog                         13.1 ns         13.1 ns     56000000
BenchmarkOpenLibMFloatLog                            2.57 ns         2.55 ns    263529412
BenchmarkStdFloatLog                                 6.34 ns         6.28 ns    112000000
BenchmarkMathDoubleLog1P                             8.22 ns         8.20 ns     89600000
BenchmarkOpenLibMDoubleLog1P                         8.14 ns         8.20 ns     89600000
BenchmarkStdDoubleLog1P                              17.4 ns         17.6 ns     40727273
BenchmarkMathFloatLog1P                              2.71 ns         2.70 ns    248888889
BenchmarkMathVector2fLog1P                           3.06 ns         3.05 ns    235789474
BenchmarkMathVector2fSimdLog1P                       20.8 ns         20.9 ns     34461538
BenchmarkMathVector3fLog1P                           2.89 ns         2.89 ns    248888889
BenchmarkMathVector3fSimdLog1P                       25.5 ns         25.6 ns     29866667
BenchmarkMathVector4fLog1P                           3.18 ns         3.15 ns    213333333
BenchmarkMathVector4fSimdLog1P                       27.9 ns         27.9 ns     26352941
BenchmarkOpenLibMFloatLog1P                          2.94 ns         2.89 ns    248888889
BenchmarkStdFloatLog1P                               3.44 ns         3.40 ns    179200000
BenchmarkMathDoubleLog2                              7.95 ns         7.85 ns     89600000
BenchmarkOpenLibMDoubleLog2                          7.95 ns         8.02 ns     89600000
BenchmarkStdDoubleLog2                               22.6 ns         22.5 ns     29866667
BenchmarkMathFloatLog2                               3.52 ns         3.53 ns    203636364
BenchmarkMathVector2fLog2                            14.7 ns         14.8 ns     56000000
BenchmarkMathVector2fSimdLog2                        13.9 ns         13.8 ns     49777778
BenchmarkMathVector3fLog2                            13.6 ns         13.5 ns     49777778
BenchmarkMathVector3fSimdLog2                        13.4 ns         13.5 ns     49777778
BenchmarkMathVector4fLog2                            13.4 ns         13.4 ns     56000000
BenchmarkMathVector4fSimdLog2                        13.6 ns         13.2 ns     49777778
BenchmarkOpenLibMFloatLog2                           3.73 ns         3.76 ns    203636364
BenchmarkStdFloatLog2                                6.17 ns         6.00 ns    112000000
BenchmarkMathDoubleLog10                             8.08 ns         8.02 ns     89600000
BenchmarkOpenLibMDoubleLog10                         8.53 ns         8.37 ns     74666667
BenchmarkStdDoubleLog10                              21.7 ns         21.5 ns     32000000
BenchmarkMathFloatLog10                              2.82 ns         2.79 ns    224000000
BenchmarkMathVector2fLog10                           14.2 ns         14.1 ns     49777778
BenchmarkMathVector2fSimdLog10                       13.6 ns         13.8 ns     49777778
BenchmarkMathVector3fLog10                           14.0 ns         14.2 ns     56000000
BenchmarkMathVector3fSimdLog10                       14.3 ns         14.4 ns     49777778
BenchmarkMathVector4fLog10                           14.0 ns         14.2 ns     56000000
BenchmarkMathVector4fSimdLog10                       14.0 ns         14.0 ns     56000000
BenchmarkOpenLibMFloatLog10                          3.19 ns         3.21 ns    224000000
BenchmarkStdFloatLog10                               6.02 ns         6.00 ns    112000000
BenchmarkMathDoublePow                               8.91 ns         8.89 ns     89600000
BenchmarkOpenLibMDoublePow                           9.70 ns         9.63 ns     74666667
BenchmarkStdDoublePow                                14.2 ns         14.1 ns     49777778
BenchmarkMathFloatPow                                4.63 ns         4.69 ns    160000000
BenchmarkMathVector2fPow                             46.7 ns         46.5 ns     14451613
BenchmarkMathVector2fSimdPow                         46.6 ns         46.5 ns     14451613
BenchmarkMathVector3fPow                             48.3 ns         48.8 ns     11200000
BenchmarkMathVector3fSimdPow                         47.9 ns         47.6 ns     14451613
BenchmarkMathVector4fPow                             47.8 ns         47.9 ns     16000000
BenchmarkMathVector4fSimdPow                         50.5 ns         50.2 ns     11200000
BenchmarkOpenLibMFloatPow                            6.52 ns         6.56 ns    112000000
BenchmarkStdFloatPow                                 9.10 ns         9.21 ns     74666667
BenchmarkMathDoubleSin                               9.55 ns         9.42 ns     74666667
BenchmarkOpenLibMDoubleSin                           11.9 ns         11.6 ns     49777778
BenchmarkStdDoubleSin                                9.65 ns         9.52 ns     64000000
BenchmarkMathFloatSin                                6.07 ns         6.09 ns    100000000
BenchmarkMathVector2fSin                             9.88 ns         9.84 ns     74666667
BenchmarkMathVector2fSimdSin                         9.66 ns         9.84 ns     74666667
BenchmarkMathVector3fSin                             10.5 ns         10.5 ns     64000000
BenchmarkMathVector3fSimdSin                         9.91 ns         10.0 ns     74666667
BenchmarkMathVector4fSin                             10.7 ns         10.7 ns     64000000
BenchmarkMathVector4fSimdSin                         10.3 ns         10.5 ns     74666667
BenchmarkOpenLibMFloatSin                            5.29 ns         5.31 ns    100000000
BenchmarkStdFloatSin                                 7.81 ns         7.81 ns    112000000
BenchmarkMathDoubleCos                               7.82 ns         7.85 ns     89600000
BenchmarkOpenLibMDoubleCos                           9.70 ns         9.77 ns     64000000
BenchmarkStdDoubleCos                                7.55 ns         7.50 ns     89600000
BenchmarkMathFloatCos                                4.83 ns         4.87 ns    144516129
BenchmarkMathVector2fCos                             10.9 ns         10.9 ns     56000000
BenchmarkMathVector2fSimdCos                         10.2 ns         10.3 ns     64000000
BenchmarkMathVector3fCos                             11.3 ns         11.5 ns     64000000
BenchmarkMathVector3fSimdCos                         10.4 ns         10.5 ns     64000000
BenchmarkMathVector4fCos                             10.4 ns         10.3 ns     64000000
BenchmarkMathVector4fSimdCos                         10.8 ns         10.9 ns     56000000
BenchmarkOpenLibMFloatCos                            4.86 ns         4.81 ns    149333333
BenchmarkStdFloatCos                                 7.61 ns         7.50 ns     89600000
BenchmarkMathDoubleSinCos                            8.76 ns         8.79 ns     64000000
BenchmarkOpenLibMDoubleSinCos                        8.63 ns         8.58 ns     74666667
BenchmarkMathFloatSinCos                             5.84 ns         5.86 ns    112000000
BenchmarkOpenLibMFloatSinCos                         6.28 ns         6.28 ns    112000000
BenchmarkDirectXMathFloatSinCos                      10.8 ns         10.7 ns     64000000
BenchmarkMathDoubleTan                               12.1 ns         12.0 ns     56000000
BenchmarkOpenLibMDoubleTan                           16.7 ns         16.7 ns     44800000
BenchmarkStdDoubleTan                                11.7 ns         11.7 ns     56000000
BenchmarkMathFloatTan                                5.93 ns         5.94 ns    100000000
BenchmarkMathVector2fTan                             11.3 ns         11.2 ns     64000000
BenchmarkMathVector2fSimdTan                         10.8 ns         10.6 ns     56000000
BenchmarkMathVector3fTan                             11.9 ns         11.7 ns     56000000
BenchmarkMathVector3fSimdTan                         11.2 ns         11.2 ns     56000000
BenchmarkMathVector4fTan                             12.2 ns         12.2 ns     64000000
BenchmarkMathVector4fSimdTan                         12.4 ns         12.6 ns     56000000
BenchmarkOpenLibMFloatTan                            5.87 ns         5.72 ns    112000000
BenchmarkStdFloatTan                                 7.67 ns         7.53 ns     74666667
BenchmarkMathDoubleATan                              7.38 ns         7.39 ns    112000000
BenchmarkOpenLibMDoubleATan                          9.02 ns         9.07 ns     89600000
BenchmarkStdDoubleATan                               7.41 ns         7.53 ns    112000000
BenchmarkMathFloatATan                               6.39 ns         6.42 ns    112000000
BenchmarkMathVector2fATan                            7.92 ns         8.02 ns     89600000
BenchmarkMathVector2fSimdATan                        7.84 ns         7.85 ns     89600000
BenchmarkMathVector3fATan                            8.28 ns         8.37 ns     89600000
BenchmarkMathVector3fSimdATan                        8.26 ns         8.37 ns     89600000
BenchmarkMathVector4fATan                            8.88 ns         8.79 ns     74666667
BenchmarkMathVector4fSimdATan                        8.55 ns         8.37 ns     74666667
BenchmarkOpenLibMFloatATan                           5.92 ns         5.86 ns    112000000
BenchmarkStdFloatATan                                5.87 ns         5.94 ns    100000000
BenchmarkMathDoubleASin                              8.10 ns         8.02 ns     89600000
BenchmarkOpenLibMDoubleASin                          47.0 ns         46.5 ns     15448276
BenchmarkOpenLibMDoubleFastASin                      8.26 ns         8.20 ns     89600000
BenchmarkStdDoubleASin                               8.27 ns         8.16 ns     74666667
BenchmarkMathFloatASin                               5.11 ns         5.16 ns    100000000
BenchmarkMathVector2fASin                            7.05 ns         6.98 ns     89600000
BenchmarkMathVector2fSimdASin                        7.40 ns         7.32 ns     89600000
BenchmarkMathVector3fASin                            8.00 ns         8.02 ns     89600000
BenchmarkMathVector3fSimdASin                        7.93 ns         7.95 ns     74666667
BenchmarkMathVector4fASin                            7.81 ns         7.53 ns     74666667
BenchmarkMathVector4fSimdASin                        8.15 ns         8.20 ns     89600000
BenchmarkOpenLibMFloatASin                           39.9 ns         39.6 ns     16592593
BenchmarkOpenLibMFloatFastASin                       5.44 ns         5.44 ns    112000000
BenchmarkStdFloatASin                                7.34 ns         7.39 ns    112000000
BenchmarkMathDoubleACos                              7.03 ns         6.98 ns    112000000
BenchmarkOpenLibMDoubleACos                          43.8 ns         43.9 ns     16000000
BenchmarkOpenLibMDoubleFastACos                      7.26 ns         7.15 ns     89600000
BenchmarkStdDoubleACos                               7.87 ns         8.02 ns     89600000
BenchmarkMathFloatACos                               5.39 ns         5.47 ns    100000000
BenchmarkMathVector2fACos                            8.11 ns         8.20 ns     89600000
BenchmarkMathVector2fSimdACos                        8.33 ns         8.37 ns     74666667
BenchmarkMathVector3fACos                            8.84 ns         8.79 ns     74666667
BenchmarkMathVector3fSimdACos                        8.10 ns         8.20 ns     89600000
BenchmarkMathVector4fACos                            9.05 ns         9.00 ns     74666667
BenchmarkMathVector4fSimdACos                        8.94 ns         9.07 ns     89600000
BenchmarkOpenLibMFloatACos                           20.9 ns         20.9 ns     44800000
BenchmarkOpenLibMFloatFastACos                       6.89 ns         6.84 ns    112000000
BenchmarkStdFloatACos                                9.67 ns         9.77 ns    112000000
BenchmarkMathDoubleATan2                             17.6 ns         17.7 ns     34461538
BenchmarkOpenLibMDoubleATan2                         17.2 ns         17.1 ns     32000000
BenchmarkStdDoubleATan2                              17.7 ns         17.8 ns     44800000
BenchmarkMathFloatATan2                              10.5 ns         10.5 ns     74666667
BenchmarkOpenLibMFloatATan2                          10.6 ns         10.5 ns     64000000
BenchmarkStdFloatATan2                               10.8 ns         10.7 ns     64000000
BenchmarkMathVector2fATan2                           21.2 ns         21.3 ns     34461538
BenchmarkMathVector2fSimdATan2                       20.4 ns         20.4 ns     34461538
BenchmarkMathVector3fATan2                           18.1 ns         18.0 ns     37333333
BenchmarkMathVector3fSimdATan2                       19.6 ns         19.5 ns     34461538
BenchmarkMathVector4fATan2                           14.3 ns         14.4 ns     49777778
BenchmarkMathVector4fSimdATan2                       13.9 ns         14.0 ns     56000000
BenchmarkMathFloatFMA                                1.45 ns         1.43 ns    448000000
BenchmarkPbrtFloatFMA                                1.48 ns         1.46 ns    448000000
BenchmarkMathFloatSinXOverX                          5.07 ns         5.16 ns    100000000
BenchmarkPbrtFloatSinXOverX                          5.83 ns         5.86 ns    112000000
BenchmarkMathFloatSinc                               5.08 ns         5.02 ns    112000000
BenchmarkPbrtFloatSinc                               7.65 ns         7.50 ns     89600000
BenchmarkMathFloatMod                                3.39 ns         3.35 ns    186666667
BenchmarkPbrtFloatMod                                6.94 ns         6.98 ns    112000000
BenchmarkMathFloatSmoothStep                         2.68 ns         2.72 ns    298666667
BenchmarkPbrtFloatSmoothStep                         2.60 ns         2.64 ns    248888889
BenchmarkMathFloatSafeSqrt                           2.15 ns         2.18 ns    344615385
BenchmarkPbrtFloatSafeSqrt                           2.16 ns         2.18 ns    344615385
BenchmarkMathFloatSqr                                1.66 ns         1.65 ns    407272727
BenchmarkPbrtFloatSqr                                1.65 ns         1.64 ns    448000000
BenchmarkMathFloatSafeASin                           5.97 ns         5.86 ns    112000000
BenchmarkPbrtFloatSafeASin                           7.79 ns         7.67 ns     89600000
BenchmarkMathFloatSafeACos                           5.75 ns         5.72 ns    112000000
BenchmarkPbrtFloatSafeACos                           7.22 ns         7.15 ns     89600000
BenchmarkMathFloatAddAdjustUp                        2.48 ns         2.45 ns    248888889
BenchmarkPbrtFloatAddRoundUp                         5.37 ns         5.31 ns    100000000
BenchmarkMathFloatAddAdjustDown                      2.54 ns         2.57 ns    280000000
BenchmarkPbrtFloatAddRoundDown                       5.50 ns         5.44 ns    112000000
BenchmarkMathFloatSubAdjustUp                        2.66 ns         2.64 ns    248888889
BenchmarkPbrtFloatSubRoundUp                         5.85 ns         5.94 ns    100000000
BenchmarkMathFloatSubAdjustDown                      2.27 ns         2.20 ns    320000000
BenchmarkPbrtFloatSubRoundDown                       5.71 ns         5.58 ns     89600000
BenchmarkMathFloatMulAdjustUp                        3.33 ns         3.28 ns    224000000
BenchmarkPbrtFloatMulRoundUp                         5.91 ns         5.94 ns    100000000
BenchmarkMathFloatMulAdjustDown                      2.34 ns         2.35 ns    298666667
BenchmarkPbrtFloatMulRoundDown                       5.15 ns         5.16 ns    100000000
BenchmarkMathFloatDivAdjustUp                        2.58 ns         2.57 ns    248888889
BenchmarkPbrtFloatDivRoundUp                         5.68 ns         5.58 ns    112000000
BenchmarkMathFloatDivAdjustDown                      2.84 ns         2.85 ns    263529412
BenchmarkPbrtFloatDivRoundDown                       5.58 ns         5.58 ns    112000000
BenchmarkMathFloatSqrtAdjustUp                       2.58 ns         2.57 ns    280000000
BenchmarkPbrtFloatSqrtRoundUp                        5.69 ns         5.58 ns    112000000
BenchmarkMathFloatSqrtAdjustDown                     3.83 ns         3.66 ns    179200000
BenchmarkPbrtFloatSqrtRoundDown                      5.71 ns         5.72 ns    112000000
BenchmarkMathFloatFMAAdjustUp                        3.49 ns         3.52 ns    213333333
BenchmarkPbrtFloatFMARoundUp                         6.04 ns         6.00 ns    112000000
BenchmarkMathFloatFMAAdjustDown                      2.14 ns         2.14 ns    298666667
BenchmarkPbrtFloatFMARoundDown                       5.97 ns         6.00 ns    112000000
BenchmarkMathFloatFastLog2                           7.91 ns         8.02 ns     89600000
BenchmarkPbrtFloatLog2                               5.91 ns         5.86 ns    112000000
BenchmarkMathFloatLog2Int                            3.50 ns         3.52 ns    213333333
BenchmarkPbrtFloatLog2Int                            3.48 ns         3.45 ns    203636364
BenchmarkMathFloatGaussian                           6.05 ns         6.14 ns    112000000
BenchmarkPbrtFloatGaussian                           6.32 ns         6.42 ns    112000000
BenchmarkMathFloatLogistic                           9.77 ns         9.77 ns     64000000
BenchmarkPbrtFloatLogistic                           7.23 ns         7.32 ns     89600000
BenchmarkMathFloatDifferenceOfProducts               2.69 ns         2.67 ns    263529412
BenchmarkPbrtFloatDifferenceOfProducts               2.90 ns         2.91 ns    263529412
BenchmarkMathFloatSumOfProducts                      2.83 ns         2.78 ns    235789474
BenchmarkPbrtFloatSumOfProducts                      3.01 ns         3.01 ns    248888889
BenchmarkMathFloatQuadratic                          2.82 ns         2.83 ns    248888889
BenchmarkPbrtFloatQuadratic                          3.06 ns         3.08 ns    213333333
BenchmarkMathFloatIntervalMultiply                   27.1 ns         27.0 ns     24888889
BenchmarkPbrtFloatIntervalMultiply                   53.6 ns         53.1 ns     10000000
BenchmarkMathFloatIntervalDivide                     27.7 ns         27.9 ns     26352941
BenchmarkPbrtFloatIntervalDivide                     56.8 ns         55.8 ns     11200000
BenchmarkMathFloatIntervalScalarMultiply             5.86 ns         5.86 ns    112000000
BenchmarkPbrtFloatIntervalScalarMultiply             12.4 ns         12.5 ns     64000000
BenchmarkMathFloatIntervalScalarDivision             7.53 ns         7.53 ns    112000000
BenchmarkPbrtFloatIntervalScalarDivision             13.5 ns         13.7 ns     64000000
BenchmarkMathFloatIntervalAddition                   5.11 ns         5.16 ns    100000000
BenchmarkPbrtFloatIntervalAddition                   9.87 ns         9.84 ns     74666667
BenchmarkMathFloatIntervalSubtraction                4.83 ns         4.87 ns    144516129
BenchmarkPbrtFloatIntervalSubtraction                10.2 ns         10.3 ns     64000000
BenchmarkMathFloatIntervalScalarAddition             4.68 ns         4.71 ns    149333333
BenchmarkPbrtFloatIntervalScalarAddition             9.73 ns         9.77 ns     64000000
BenchmarkMathFloatIntervalScalarSubtraction          4.49 ns         4.55 ns    154482759
BenchmarkPbrtFloatIntervalScalarSubtraction          12.6 ns         12.6 ns     49777778
BenchmarkMathFloatIntervalSqrt                       6.38 ns         6.28 ns     89600000
BenchmarkPbrtFloatIntervalSqrt                       10.7 ns         10.9 ns     74666667
BenchmarkMathFloatIntervalFMA                        28.0 ns         28.5 ns     26352941
BenchmarkPbrtFloatIntervalFMA                        57.0 ns         57.2 ns     11200000
BenchmarkMathFloatIntervalDifferenceOfProducts       50.2 ns         50.0 ns     10000000
BenchmarkPbrtFloatIntervalDifferenceOfProducts       90.6 ns         90.0 ns      7466667
BenchmarkMathFloatIntervalSumOfProducts              46.2 ns         46.5 ns     15448276
BenchmarkPbrtFloatIntervalSumOfProducts              86.4 ns         87.2 ns      8960000
BenchmarkMathFloatIntervalQuadratic                  54.0 ns         53.0 ns     11200000
BenchmarkPbrtFloatIntervalQuadratic                  91.7 ns         90.3 ns      6400000
BenchmarkMathFloatIntervalACos                       13.1 ns         13.1 ns     56000000
BenchmarkPbrtFloatIntervalACos                       23.3 ns         23.4 ns     32000000
BenchmarkMathFloatIntervalCos                        12.9 ns         12.9 ns     49777778
BenchmarkPbrtFloatIntervalCos                        22.1 ns         22.5 ns     32000000
BenchmarkMathFloatIntervalSin                        12.3 ns         12.2 ns     64000000
BenchmarkPbrtFloatIntervalSin                        24.0 ns         24.1 ns     29866667
BenchmarkOpenLibMDoubleSinH                          14.0 ns         13.5 ns     49777778
BenchmarkDoubleMathSinH                              8.68 ns         8.58 ns     74666667
BenchmarkDoubleStdSinH                               9.99 ns         10.0 ns     64000000
BenchmarkFloatOpenLibMSinH                           11.3 ns         11.2 ns     56000000
BenchmarkFloatMathSinH                               13.6 ns         13.5 ns     49777778
BenchmarkFloatStdSinH                                7.73 ns         7.50 ns     89600000
BenchmarkDoubleOpenLibMASinH                         20.0 ns         19.9 ns     34461538
BenchmarkDoubleMathASinH                             19.3 ns         19.3 ns     37333333
BenchmarkDoubleStdASinH                              20.0 ns         19.9 ns     34461538
BenchmarkFloatOpenLibMASinH                          19.0 ns         19.3 ns     37333333
BenchmarkFloatMathASinH                              19.4 ns         19.0 ns     34461538
BenchmarkFloatStdASinH                               16.1 ns         16.1 ns     40727273
BenchmarkDoubleOpenLibMCosH                          12.7 ns         12.6 ns     49777778
BenchmarkDoubleMathCosH                              9.99 ns         10.0 ns     64000000
BenchmarkDoubleStdCosH                               9.85 ns         9.84 ns     74666667
BenchmarkFloatOpenLibMCosH                           10.1 ns         10.0 ns     64000000
BenchmarkFloatMathCosH                               11.5 ns         11.5 ns     64000000
BenchmarkFloatStdCosH                                9.04 ns         9.07 ns     89600000
BenchmarkDoubleOpenLibMACosH                         2.37 ns         2.40 ns    280000000
BenchmarkDoubleMathACosH                             24.7 ns         24.5 ns     24888889
BenchmarkDoubleStdACosH                              25.6 ns         25.5 ns     26352941
BenchmarkFloatOpenLibMACosH                          2.79 ns         2.78 ns    235789474
BenchmarkFloatMathACosH                              26.5 ns         26.7 ns     26352941
BenchmarkFloatStdACosH                               26.2 ns         26.2 ns     28000000
BenchmarkDoubleOpenLibMTanH                          17.6 ns         17.6 ns     40727273
BenchmarkDoubleMathTanH                              12.4 ns         12.5 ns     64000000
BenchmarkDoubleStdTanH                               7.22 ns         7.19 ns    100000000
BenchmarkFloatOpenLibMTanH                           14.9 ns         15.0 ns     44800000
BenchmarkFloatMathTanH                               12.4 ns         12.3 ns     56000000
BenchmarkFloatStdTanH                                7.71 ns         7.67 ns     89600000
BenchmarkDoubleOpenLibMATanH                         17.7 ns         17.6 ns     37333333
BenchmarkDoubleMathATanH                             19.5 ns         19.7 ns     37333333
BenchmarkDoubleStdATanH                              12.8 ns         12.6 ns     49777778
BenchmarkFloatOpenLibMATanH                          15.1 ns         15.0 ns     44800000
BenchmarkFloatMathATanH                              19.4 ns         19.7 ns     37333333
BenchmarkFloatStdATanH                               11.2 ns         11.2 ns     64000000
BenchmarkMathDoubleErf                               3.85 ns         3.86 ns    165925926
BenchmarkStdDoubleErf                                5.79 ns         5.86 ns    112000000
BenchmarkMathFloatErf                                2.87 ns         2.92 ns    235789474
BenchmarkStdFloatErf                                 3.57 ns         3.53 ns    194782609
BenchmarkXMQuaternionSlerp                           41.3 ns         40.5 ns     16592593
BenchmarkQuaternionSlerp                             39.9 ns         39.9 ns     17230769
BenchmarkPbrtQuaternionSlerp                         61.0 ns         60.0 ns     11200000
BenchmarkXMQuaternionMultiply                        5.29 ns         5.31 ns    100000000
BenchmarkQuaternionMultiply                          5.14 ns         5.08 ns    144516129
BenchmarkXMQuaternionRotationNormal                  8.61 ns         8.72 ns     89600000
BenchmarkQuaternionFromNormalizedAxisAndAngle        8.01 ns         7.95 ns     74666667
BenchmarkShortestArc1                                29.0 ns         28.5 ns     23578947
BenchmarkShortestArc2                                15.8 ns         15.7 ns     49777778
BenchmarkDirectXTK12QuaternionFromToRotation         34.1 ns         34.5 ns     20363636
BenchmarkShortestArc                                 12.8 ns         13.0 ns     74666667
BenchmarkFloatNextDown3A                             4.15 ns         4.05 ns    154482759
BenchmarkFloatNextDown3B                             14.2 ns         14.2 ns     56000000
BenchmarkPbrtFloatNextDown3                          11.2 ns         11.2 ns     64000000
BenchmarkPbrtSquareMatrix4x4Add                      10.9 ns         11.0 ns     64000000
BenchmarkSquareMatrix4x4Add                          2.28 ns         2.29 ns    280000000
BenchmarkPbrtSquareMatrix3x3Add                      11.3 ns         11.2 ns     56000000
BenchmarkSquareMatrix3x3Add                          4.56 ns         4.55 ns    154482759
BenchmarkPbrtSquareMatrix2x2Add                      2.72 ns         2.72 ns    235789474
BenchmarkSquareMatrix2x2Add                          2.14 ns         2.15 ns    320000000
BenchmarkSquareMatrix4x4Sub                          2.41 ns         2.46 ns    280000000
BenchmarkSquareMatrix3x3Sub                          4.79 ns         4.81 ns    149333333
BenchmarkPbrtSquareMatrix4x4Transpose                5.85 ns         5.86 ns    112000000
BenchmarkSquareMatrix4x4Transpose                    2.33 ns         2.35 ns    298666667
BenchmarkPbrtSquareMatrix3x3Transpose                7.51 ns         7.50 ns     89600000
BenchmarkSquareMatrix3x3Transpose                    3.55 ns         3.53 ns    194782609
BenchmarkPbrtSquareMatrix2x2Transpose                1.78 ns         1.76 ns    407272727
BenchmarkSquareMatrix2x2Transpose                    1.61 ns         1.61 ns    407272727
BenchmarkPbrtSquareMatrix4x4ScalarMultiply           3.72 ns         3.69 ns    194782609
BenchmarkSquareMatrix4x4ScalarMultiply               1.89 ns         1.88 ns    373333333
BenchmarkPbrtSquareMatrix3x3ScalarMultiply           6.60 ns         6.56 ns    112000000
BenchmarkSquareMatrix3x3ScalarMultiply               3.17 ns         3.14 ns    224000000
BenchmarkPbrtSquareMatrix2x2ScalarMultiply           2.29 ns         2.29 ns    280000000
BenchmarkSquareMatrix2x2ScalarMultiply               1.59 ns         1.57 ns    407272727
BenchmarkPbrtSquareMatrix4x4Multiply                 31.7 ns         31.8 ns     23578947
BenchmarkSquareMatrix4x4Multiply                     11.2 ns         11.2 ns     64000000
BenchmarkPbrtSquareMatrix3x3Multiply                 16.6 ns         16.5 ns     40727273
BenchmarkSquareMatrix3x3Multiply                     10.3 ns         10.3 ns     64000000
BenchmarkPbrtSquareMatrix2x2Multiply                 3.09 ns         3.07 ns    224000000
BenchmarkSquareMatrix2x2Multiply                     2.36 ns         2.40 ns    280000000
BenchmarkPbrtSquareMatrix4x4Determinant              12.0 ns         11.9 ns     49777778
BenchmarkXMMatrix4x4Determinant                      2.85 ns         2.85 ns    235789474
BenchmarkSquareMatrix4x4Determinant                  2.99 ns         3.00 ns    224000000
BenchmarkPbrtSquareMatrix3x3Determinant              5.92 ns         5.86 ns    112000000
BenchmarkSquareMatrix3x3Determinant                  3.55 ns         3.53 ns    194782609
BenchmarkPbrtSquareMatrix2x2Determinant              1.72 ns         1.73 ns    407272727
BenchmarkSquareMatrix2x2Determinant                  2.03 ns         1.99 ns    298666667
BenchmarkPbrtSquareMatrix4x4Inverse                   138 ns          138 ns      4977778
BenchmarkXMMatrix4x4Inverse                          16.2 ns         16.4 ns     44800000
BenchmarkSquareMatrix4x4Inverse                      16.1 ns         16.1 ns     40727273
BenchmarkPbrtSquareMatrix3x3Inverse                  24.5 ns         24.6 ns     28000000
BenchmarkSquareMatrix3x3Inverse                      5.61 ns         5.58 ns    112000000
BenchmarkPbrtSquareMatrix2x2Inverse                  42.5 ns         42.4 ns     16592593
BenchmarkSquareMatrix2x2Inverse                      2.45 ns         2.46 ns    280000000
BenchmarkPointRotation                               22.7 ns         22.9 ns     32000000
BenchmarkPointXMMatrixRotationRollPitchYaw           21.6 ns         21.5 ns     32000000
BenchmarkPointRotationAxis                           14.4 ns         14.4 ns     49777778
BenchmarkPointXMMatrixRotationAxis                   19.2 ns         19.3 ns     37333333
BenchmarkVectorRotationAxis                          12.8 ns         12.8 ns     56000000
BenchmarkVectorXMMatrixRotationAxis                  18.0 ns         18.0 ns     37333333
BenchmarkNormalRotationAxis                          13.1 ns         13.1 ns     56000000
BenchmarkNormalXMMatrixRotationAxis                  18.6 ns         18.4 ns     37333333
BenchmarkPointTranslation                            3.83 ns         3.81 ns    172307692
BenchmarkPointXMMatrixTranslation                    4.21 ns         4.20 ns    160000000
BenchmarkVectorTranslation                           4.05 ns         3.99 ns    172307692
BenchmarkVectorXMMatrixTranslation                   3.83 ns         3.84 ns    179200000
BenchmarkNormalTranslation                           3.06 ns         3.00 ns    224000000
BenchmarkNormalXMMatrixTranslation                   3.45 ns         3.49 ns    224000000
BenchmarkPointScaling                                4.46 ns         4.44 ns    172307692
BenchmarkPointXMMatrixScaling                        4.55 ns         4.46 ns    112000000
BenchmarkVectorScaling                               3.91 ns         3.86 ns    165925926
BenchmarkVectorXMMatrixScaling                       4.06 ns         4.08 ns    172307692
BenchmarkNormalScaling                               4.02 ns         4.05 ns    165925926
BenchmarkNormalXMMatrixScaling                       4.16 ns         4.20 ns    160000000
BenchmarkPointTransformationMatrix                   3.46 ns         3.44 ns    213333333
BenchmarkPointXMMatrixTransformation                 3.26 ns         3.28 ns    224000000
BenchmarkVectorTransformationMatrix                  3.64 ns         3.63 ns    224000000
BenchmarkVectorXMMatrixTransformation                4.81 ns         4.80 ns    165925926
BenchmarkNormalTransformationMatrix                  3.38 ns         3.39 ns    165925926
BenchmarkNormalXMMatrixTransformation                4.44 ns         4.49 ns    194782609
BenchmarkPointAffineTransformationMatrix             35.9 ns         36.1 ns     19478261
BenchmarkPointXMMatrixAffineTransformation           30.0 ns         29.8 ns     23578947
BenchmarkVectorAffineTransformationMatrix            32.9 ns         32.8 ns     22400000
BenchmarkVectorXMMatrixAffineTransformation          29.9 ns         30.0 ns     22400000
BenchmarkNormalAffineTransformationMatrix            30.8 ns         30.7 ns     22400000
BenchmarkNormalXMMatrixAffineTransformation          28.8 ns         28.5 ns     23578947
BenchmarkPointLookTo                                 17.2 ns         17.2 ns     37333333
BenchmarkPointXMMatrixLookToLH                       28.7 ns         29.1 ns     26352941
BenchmarkVectorLookTo                                17.3 ns         17.6 ns     40727273
BenchmarkVectorXMMatrixLookToLH                      26.8 ns         27.0 ns     24888889
BenchmarkNormalLookTo                                16.7 ns         16.7 ns     44800000
BenchmarkNormalXMMatrixLookToLH                      25.9 ns         26.1 ns     26352941
BenchmarkPointLookAt                                 18.9 ns         18.6 ns     34461538
BenchmarkPointXMMatrixLookAtLH                       27.6 ns         27.2 ns     23578947
BenchmarkVectorLookAt                                18.6 ns         18.8 ns     37333333
BenchmarkVectorXMMatrixLookAtLH                      27.1 ns         27.3 ns     26352941
BenchmarkNormalLookAt                                17.9 ns         18.0 ns     40727273
BenchmarkNormalXMMatrixLookAtLH                      26.0 ns         26.1 ns     26352941
BenchmarkPointPerspectiveProjection                  3.51 ns         3.53 ns    203636364
BenchmarkPointXMMatrixPerspectiveLH                  3.93 ns         3.92 ns    179200000
BenchmarkVectorPerspectiveProjection                 2.91 ns         2.93 ns    224000000
BenchmarkVectorXMMatrixPerspectiveLH                 3.34 ns         3.30 ns    203636364
BenchmarkVectorPerspectiveProjection                 3.12 ns         3.18 ns    235789474
BenchmarkNormalXMMatrixPerspectiveLH                 3.68 ns         3.68 ns    186666667
BenchmarkPointPerspectiveFovProjection               9.17 ns         9.21 ns     74666667
BenchmarkPointXMMatrixPerspectiveFovLH               16.2 ns         16.1 ns     40727273
BenchmarkVectorPerspectiveFovProjection              8.67 ns         8.37 ns     74666667
BenchmarkVectorXMMatrixPerspectiveFovLH              15.6 ns         15.3 ns     40727273
BenchmarkNormalPerspectiveFovProjection              8.26 ns         8.37 ns     89600000
BenchmarkNormalXMMatrixPerspectiveFovLH              15.2 ns         15.0 ns     44800000
BenchmarkPointProject                                42.0 ns         41.4 ns     16592593
BenchmarkPointXMVector3Project                       52.9 ns         53.1 ns     10000000
BenchmarkMathAffineTransformationPoint3f             3.04 ns         3.00 ns    213333333
BenchmarkPbrtTransformPoint3f                        4.45 ns         4.43 ns    165925926
BenchmarkMathAffineTransformationNormal3f            3.41 ns         3.37 ns    213333333
BenchmarkPbrtTransformNormal3f                       3.11 ns         3.07 ns    224000000
BenchmarkMathAffineTransformationVector3f            2.87 ns         2.86 ns    213333333
BenchmarkPbrtTransformVector3f                       2.86 ns         2.86 ns    213333333
BenchmarkPbrtoRotateFromToVector3f                   14.2 ns         14.1 ns     49777778
BenchmarkPbrtoRotateFromToOVector3f                  33.3 ns         33.0 ns     21333333
BenchmarkPbrtRotateFromToVector3f                    45.9 ns         46.0 ns     14933333
BenchmarkVector2MultipleAdds                         4.47 ns         4.45 ns    154482759
BenchmarkVector2MultipleXMVectorAdd                  4.47 ns         4.52 ns    165925926
BenchmarkVector2MultipleOperations                   4.46 ns         4.46 ns    112000000
BenchmarkPBRTVector2fMultipleOperations              6.65 ns         6.63 ns     89600000
BenchmarkMathFMA1                                    1.94 ns         1.97 ns    373333333
BenchmarkPbrtFMA1                                    1.76 ns         1.77 ns    344615385
BenchmarkMathFMA2                                    2.77 ns         2.72 ns    224000000
BenchmarkPbrtFMA2                                    2.92 ns         2.98 ns    235789474
BenchmarkMathFMA3                                    3.95 ns         3.90 ns    172307692
BenchmarkPbrtFMA3                                    3.59 ns         3.61 ns    203636364
BenchmarkMathQuaternionAdd                           4.19 ns         4.24 ns    165925926
BenchmarkPbrtQuaternionAdd                           4.49 ns         4.44 ns    172307692
BenchmarkMathPoint3Distance                          4.13 ns         4.10 ns    179200000
BenchmarkPbrtPoint3Distance                          3.72 ns         3.77 ns    194782609
BenchmarkMathPoint3DistanceSquared                   4.13 ns         4.19 ns    179200000
BenchmarkPbrtPoint3DistanceSquared                   3.41 ns         3.43 ns    186666667
BenchmarkMathVector3Cross                            2.98 ns         2.98 ns    235789474
BenchmarkMathPbrtVector3Cross                        2.71 ns         2.72 ns    235789474
BenchmarkMathVector4Cross                            2.59 ns         2.57 ns    248888889
BenchmarkMathVector3Dot                              3.47 ns         3.45 ns    194782609
BenchmarkPbrtVector3Dot                              3.06 ns         3.05 ns    235789474
BenchmarkMathVector3AngleBetween                     8.24 ns         8.37 ns    112000000
BenchmarkPbrtVector3AngleBetween                     8.85 ns         8.79 ns     74666667
BenchmarkXMVector3AngleBetweenVectors                12.7 ns         12.1 ns     55751111
BenchmarkMathVector3LengthSquared                    3.23 ns         3.18 ns    235789474
BenchmarkPbrtVector3LengthSquared                    2.63 ns         2.60 ns    294287391
BenchmarkMathVector3Length                           2.69 ns         2.72 ns    235789474
BenchmarkPbrtVector3Length                           2.72 ns         2.73 ns    280000000
BenchmarkMathVector3Ceil                             2.35 ns         2.34 ns    280000000
BenchmarkPbrtVector3Ceil                             2.64 ns         2.61 ns    263529412
BenchmarkMathVector3Floor                            2.22 ns         2.18 ns    280000000
BenchmarkPbrtVector3Floor                            2.63 ns         2.67 ns    263529412
BenchmarkMathVector3Trunc                            2.35 ns         2.34 ns    280000000
BenchmarkMathVector3Round                            2.37 ns         2.34 ns    280000000
BenchmarkMathVector3Lerp                             4.46 ns         4.39 ns    160000000
BenchmarkPbrtVector3Lerp                             4.10 ns         4.14 ns    165925926
BenchmarkMathVector3Clamp                            4.17 ns         4.17 ns    172307692
BenchmarkMathVector3Sqrt                             2.51 ns         2.45 ns    235789474
BenchmarkMathVector3Sin                              10.2 ns         10.3 ns     74666667
BenchmarkMathVector3Cos                              10.5 ns         10.5 ns     64000000
BenchmarkMathVector3Tan                              11.3 ns         11.2 ns     56000000
BenchmarkMathVector3ASin                             7.57 ns         7.50 ns     89600000
BenchmarkMathVector3ACos                             8.39 ns         8.54 ns     89600000
BenchmarkMathVector3ATan                             8.17 ns         8.20 ns     89600000
BenchmarkMathVector3ATan2                            18.9 ns         19.2 ns     40727273
BenchmarkMathVector3SinH                             14.8 ns         14.8 ns     49777778
BenchmarkMathVector3CosH                             13.2 ns         13.4 ns     56000000
BenchmarkMathVector3TanH                             13.2 ns         13.1 ns     56000000