Benchmarks
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