Test description | Execution time | Execution rate (Hz) |
icp-slam (match points): Run with sample dataset | 20.40 ms | 49.02 Hz |
icp-slam (match grid): Run with sample dataset | 20.32 ms | 49.22 Hz |
poses: CPose3D (+) CPose3D | 446.32 ns | 2.24 MHz |
poses: CPose3D.composeFrom() | 232.50 ns | 4.30 MHz |
poses: CPose3D (+) CPoint3D | 10.52 ns | 95.04 MHz |
poses: CPose3D.composePoint() | 13.58 ns | 73.62 MHz |
poses: CPoint3D (-) CPose3D | 41.83 ns | 23.91 MHz |
poses: CPose3D.inverseComposePoint() | 39.89 ns | 25.07 MHz |
poses: CPose2D (+) CPose2D | 78.70 ns | 12.71 MHz |
poses: CPose2D.composeFrom() | 61.90 ns | 16.16 MHz |
poses: CPose2D (+) CPoint2D | 66.36 ns | 15.07 MHz |
poses: CPose2D.composePoint() | 61.51 ns | 16.26 MHz |
poses: CPose3DQuat (+) CPose3DQuat | 46.71 ns | 21.41 MHz |
poses: CPose3DQuat.composeFrom() | 39.29 ns | 25.45 MHz |
poses: CPose3DQuat (+) CPoint3D | 22.46 ns | 44.53 MHz |
poses: CPose3DQuat.composePoint() | 17.94 ns | 55.75 MHz |
poses: CPoint3D (-) CPose3DQuat | 385.41 ns | 2.59 MHz |
poses: CPose3DQuat.invcomposePoint() | 17.55 ns | 56.97 MHz |
poses: Conv CPose3DQuat <- CPose3D | 355.13 ns | 2.82 MHz |
poses: Conv CPose3D -> CPose3DQuat | 173.98 ns | 5.75 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (DEF) | 801.93 us | 1.25 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (Lin) | 797.27 us | 1.25 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (SUT) | 9.51 us | 105.16 KHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (DEF) | 524.20 ns | 1.91 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (Lin) | 524.70 ns | 1.91 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (SUT) | 8.33 us | 120.07 KHz |
matrix: unit, dyn[float], 3x3 | 20.54 ns | 48.68 MHz |
matrix: unit, dyn[double], 3x3 | 19.13 ns | 52.27 MHz |
matrix: unit, dyn[float], 6x6 | 59.34 ns | 16.85 MHz |
matrix: unit, dyn[double], 6x6 | 58.46 ns | 17.11 MHz |
matrix: unit, fix[float,3,3] | 0.35 ns | 2.88 GHz |
matrix: unit, fix[double,3,3] | 1.19 ns | 842.46 MHz |
matrix: unit, fix[float,6,6] | 1.74 ns | 573.72 MHz |
matrix: unit, fix[double,6,6] | 2.80 ns | 357.65 MHz |
matrix: multiply, dyn[float ], 3x3 * 3x3 | 71.20 ns | 14.04 MHz |
matrix: multiply, fix[float ], 3x3 * 3x3 | 23.80 ns | 42.02 MHz |
matrix: multiply, dyn[double], 3x3 * 3x3 | 75.80 ns | 13.19 MHz |
matrix: multiply, fix[double], 3x3 * 3x3 | 23.50 ns | 42.55 MHz |
matrix: multiply, dyn[float ], 3x6 * 6x3 | 111.40 ns | 8.98 MHz |
matrix: multiply, fix[float ], 3x6 * 6x3 | 46.10 ns | 21.69 MHz |
matrix: multiply, dyn[double], 3x6 * 6x3 | 112.70 ns | 8.87 MHz |
matrix: multiply, fix[double], 3x6 * 6x3 | 45.30 ns | 22.08 MHz |
matrix: multiply, dyn[float ], 10x40 * 40x10 | 5.20 us | 192.40 KHz |
matrix: multiply, fix[float ], 10x40 * 40x10 | 3.54 us | 282.65 KHz |
matrix: multiply, dyn[double], 10x40 * 40x10 | 5.19 us | 192.73 KHz |
matrix: multiply, fix[double], 10x40 * 40x10 | 3.55 us | 281.32 KHz |
matrix: inv, dyn[float ] 3x3 | 329.00 ns | 3.04 MHz |
matrix: inv, fix[float ] 3x3 | 20.00 ns | 50.00 MHz |
matrix: inv, dyn[double] 3x3 | 331.00 ns | 3.02 MHz |
matrix: inv, fix[double] 3x3 | 22.00 ns | 45.45 MHz |
matrix: inv, dyn[float ] 6x6 | 1.28 us | 780.64 KHz |
matrix: inv, fix[float ] 6x6 | 466.00 ns | 2.15 MHz |
matrix: inv, dyn[double] 6x6 | 1.21 us | 824.40 KHz |
matrix: inv, fix[double] 6x6 | 576.00 ns | 1.74 MHz |
matrix: inv, dyn[float ] 20x20 | 25.79 us | 38.78 KHz |
matrix: inv, fix[float ] 20x20 | 12.29 us | 81.34 KHz |
matrix: inv, dyn[double] 20x20 | 26.36 us | 37.94 KHz |
matrix: inv, fix[double] 20x20 | 16.86 us | 59.30 KHz |
matrix: inv, dyn[float ] 40x40 | 191.45 us | 5.22 KHz |
matrix: inv, fix[float ] 40x40 | 92.54 us | 10.81 KHz |
matrix: inv, dyn[double] 40x40 | 188.48 us | 5.31 KHz |
matrix: inv, fix[double] 40x40 | 124.26 us | 8.05 KHz |
matrix: det, dyn[float ] 2x2 | 6.40 ns | 156.25 MHz |
matrix: det, fix[float ] 2x2 | 0.00 ns | inf THz |
matrix: det, dyn[double] 2x2 | 6.40 ns | 156.25 MHz |
matrix: det, fix[double] 2x2 | 0.00 ns | inf THz |
matrix: det, dyn[float ] 3x3 | 10.30 ns | 97.09 MHz |
matrix: det, fix[float ] 3x3 | 0.00 ns | inf THz |
matrix: det, dyn[double] 3x3 | 10.30 ns | 97.09 MHz |
matrix: det, fix[double] 3x3 | 0.00 ns | inf THz |
matrix: det, dyn[float ] 6x6 | 672.10 ns | 1.49 MHz |
matrix: det, fix[float ] 6x6 | 206.20 ns | 4.85 MHz |
matrix: det, dyn[double] 6x6 | 700.60 ns | 1.43 MHz |
matrix: det, fix[double] 6x6 | 210.80 ns | 4.74 MHz |
matrix: det, dyn[float ] 20x20 | 5.29 us | 189.03 KHz |
matrix: det, fix[float ] 20x20 | 3.88 us | 257.81 KHz |
matrix: det, dyn[double] 20x20 | 6.30 us | 158.71 KHz |
matrix: det, fix[double] 20x20 | 4.67 us | 214.04 KHz |
matrix: det, dyn[float ] 40x40 | 30.40 us | 32.89 KHz |
matrix: det, fix[float ] 40x40 | 25.66 us | 38.97 KHz |
matrix: det, dyn[double] 40x40 | 31.98 us | 31.27 KHz |
matrix: det, fix[double] 40x40 | 26.85 us | 37.25 KHz |
matrix: chol, dyn[double] 4x4 | 140.00 ns | 7.14 MHz |
matrix: chol, fix[double] 4x4 | 140.00 ns | 7.14 MHz |
matrix: chol, dyn[double] 40x40 | 18.38 us | 54.41 KHz |
matrix: chol, fix[double] 40x40 | 16.68 us | 59.95 KHz |
matrix: chol, sparse [2x2;2x2] | 7.80 us | 128.21 KHz |
matrix: chol, sparse [30x30;10x10] | 83.10 us | 12.03 KHz |
matrix: chol, dyn[double] 10x[6x6] | 54.60 us | 18.32 KHz |
matrix: chol, sparse 10x[6x6] | 38.92 us | 25.69 KHz |
matrix: chol, dyn[double] 20x[6x6] | 577.90 us | 1.73 KHz |
matrix: chol, sparse 20x[6x6] | 73.20 us | 13.66 KHz |
matrix: chol, dyn[double] 50x[6x6] | 8.59 ms | 116.40 Hz |
matrix: chol, sparse 50x[6x6] | 176.86 us | 5.65 KHz |
matrix: chol, dyn[double] 100x[6x6] | 133.60 ms | 7.49 Hz |
matrix: chol, sparse 100x[6x6] | 346.60 us | 2.89 KHz |
matrix: chol, dyn[double] 120x[6x6] | 358.82 ms | 2.79 Hz |
matrix: chol, sparse 120x[6x6] | 420.54 us | 2.38 KHz |
matrix: chol, dyn[double] 140x[6x6] | 776.05 ms | 1.29 Hz |
matrix: chol, sparse 140x[6x6] | 488.61 us | 2.05 KHz |
gridmap2D: getCell | 0.00 ns | inf THz |
gridmap2D: setCell | 2.58 ns | 387.78 MHz |
gridmap2D: updateCell | 7.51 ns | 133.16 MHz |
gridmap2D: updateCell_fast_occupied | 0.54 ns | 1.84 GHz |
gridmap2D: insert scan w/o widening | 104.84 us | 9.54 KHz |
gridmap2D: insert scan with widening | 293.96 us | 3.40 KHz |
gridmap2D: resize | 1.77 ms | 563.70 Hz |
gridmap2D: computeLikelihood | 16.23 us | 61.62 KHz |
pointmap: insert 100 scans | 3.11 ms | 321.79 Hz |
pointmap: build 2D kd-tree of 1 scan | 4.24 us | 235.85 KHz |
pointmap: build 2D kd-tree of 100 scan | 353.88 us | 2.83 KHz |
pointmap: build 2D kd-tree of 1000 scan | 4.14 ms | 241.54 Hz |
pointmap: build 3D kd-tree of 1 scan | 4.28 us | 233.64 KHz |
pointmap: build 3D kd-tree of 100 scan | 362.40 us | 2.76 KHz |
pointmap: build 3D kd-tree of 1000 scan | 4.08 ms | 244.87 Hz |
pointmap: kd-tree 2d query on 10 scans | 1.37 us | 728.33 KHz |
pointmap: kd-tree 2d query on 1000 scans | 98.17 us | 10.19 KHz |
pointmap: kd-tree 2d query on 10000 scans | 11.64 ms | 85.93 Hz |
pointmap: (insert scan+2D kd-tree query) x 10 | 5.59 ms | 178.79 Hz |
pointmap: (insert scan+2D kd-tree query) x 50 | 128.87 ms | 7.76 Hz |
pointmap: (insert scan+3D kd-tree query) x 10 | 5.64 ms | 177.24 Hz |
pointmap: (insert scan+3D kd-tree query) x 50 | 130.67 ms | 7.65 Hz |
random: drawUniform32bit | 15.72 ns | 63.63 MHz |
random: drawUniform | 15.70 ns | 63.68 MHz |
random: drawGaussian1D_normalized | 70.41 ns | 14.20 MHz |
random: drawGaussian1D | 70.47 ns | 14.19 MHz |
random: system rand() | 12.59 ns | 79.45 MHz |
random: drawGaussianMultivariate(fixed 3x3) | 1.43 us | 696.87 KHz |
random: drawGaussianMultivariate(dyn 3x3) | 2.94 us | 340.26 KHz |
random: drawGaussianMultivariateMany(fixed 2x2, 1000) | 165.50 ns | 6.04 MHz |
random: drawGaussianMultivariateMany(fixed 3x3, 1000) | 249.02 ns | 4.02 MHz |
random: drawGaussianMultivariateMany(fixed 6x6, 1000) | 670.80 ns | 1.49 MHz |
random: drawGaussianMultivariateMany(dyn 2x2, 1000) | 221.85 ns | 4.51 MHz |
random: drawGaussianMultivariateMany(dyn 3x3, 1000) | 256.11 ns | 3.90 MHz |
random: drawGaussianMultivariateMany(dyn 6x6, 1000) | 533.36 ns | 1.87 MHz |
random: permuteVector (len=10) | 293.80 ns | 3.40 MHz |
random: permuteVector (len=100) | 3.26 us | 306.76 KHz |
random: permuteVector (len=1000) | 30.54 us | 32.75 KHz |
math: round | 0.10 ns | 10.08 GHz |
images: Save as JPEG (640x480, quality=95%) | 27.22 ms | 36.74 Hz |
images: Save as JPEG (800x600, quality=95%) | 42.24 ms | 23.68 Hz |
images: Save as JPEG (1024x768, quality=95%) | 71.59 ms | 13.97 Hz |
images: Save as JPEG (640x480, quality=75%) | 22.19 ms | 45.06 Hz |
images: Save as JPEG (800x600, quality=75%) | 34.49 ms | 28.99 Hz |
images: Save as JPEG (1024x768, quality=75%) | 58.51 ms | 17.09 Hz |
images: Gauss filter (640x480) | 4.42 ms | 226.23 Hz |
images: Gauss filter (800x600) | 5.96 ms | 167.90 Hz |
images: Gauss filter (1024x768) | 10.17 ms | 98.30 Hz |
scan_matching: 6D LS Rigid Trans. [CPose3D] | 6.31 us | 158.48 KHz |
scan_matching: 6D LS Rigid Trans. [CPose3DQuat] | 4.83 us | 207.04 KHz |
scan_matching: 6D LS Rigid Trans. [vector of points] | 2.14 us | 467.29 KHz |
feature_extraction [640x480]: Harris | 27.18 ms | 36.79 Hz |
feature_extraction [640x480]: KLT | 27.15 ms | 36.84 Hz |
feature_extraction [640x480]: SIFT | 623.41 ms | 1.60 Hz |
feature_extraction [640x480]: SIFT desc. | 167.46 ms | 5.97 Hz |
feature_extraction [640x480]: SURF | 198.98 ms | 5.03 Hz |
feature_extraction [640x480]: FAST | 5.13 ms | 194.97 Hz |
feature_extraction [640x480]: Spin desc. | 60.66 ms | 16.48 Hz |
feature_matching [640x480]: Harris + CC | 41.95 ms | 23.84 Hz |
feature_matching [640x480]: Harris + SAD | 37.00 ms | 27.03 Hz |
feature_matching [640x480]: SIFT | 1.25 sec | 802.80 mHz |
feature_matching [640x480]: SURF | 382.33 ms | 2.62 Hz |
feature_matching [640x480]: FAST + CC | 15.60 ms | 64.11 Hz |
feature_matching [640x480]: FAST + SAD | 10.44 ms | 95.77 Hz |