Test description | Execution time | Execution rate (Hz) |
icp-slam (match points): Run with sample dataset | 21.60 ms | 46.30 Hz |
icp-slam (match grid): Run with sample dataset | 20.51 ms | 48.75 Hz |
poses: CPose3D (+) CPose3D | 449.02 ns | 2.23 MHz |
poses: CPose3D.composeFrom() | 233.83 ns | 4.28 MHz |
poses: CPose3D (+) CPoint3D | 10.67 ns | 93.76 MHz |
poses: CPose3D.composePoint() | 10.06 ns | 99.38 MHz |
poses: CPoint3D (-) CPose3D | 37.71 ns | 26.52 MHz |
poses: CPose3D.inverseComposePoint() | 40.98 ns | 24.40 MHz |
poses: CPose2D (+) CPose2D | 78.17 ns | 12.79 MHz |
poses: CPose2D.composeFrom() | 62.17 ns | 16.08 MHz |
poses: CPose2D (+) CPoint2D | 63.86 ns | 15.66 MHz |
poses: CPose2D.composePoint() | 61.98 ns | 16.13 MHz |
poses: CPose3DQuat (+) CPose3DQuat | 47.00 ns | 21.28 MHz |
poses: CPose3DQuat.composeFrom() | 39.80 ns | 25.13 MHz |
poses: CPose3DQuat (+) CPoint3D | 22.62 ns | 44.21 MHz |
poses: CPose3DQuat.composePoint() | 18.93 ns | 52.83 MHz |
poses: CPoint3D (-) CPose3DQuat | 391.26 ns | 2.56 MHz |
poses: CPose3DQuat.invcomposePoint() | 18.05 ns | 55.39 MHz |
poses: Conv CPose3DQuat <- CPose3D | 355.00 ns | 2.82 MHz |
poses: Conv CPose3D -> CPose3DQuat | 173.19 ns | 5.77 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (DEF) | 814.76 us | 1.23 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (Lin) | 821.91 us | 1.22 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (SUT) | 9.57 us | 104.48 KHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (DEF) | 682.30 ns | 1.47 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (Lin) | 533.80 ns | 1.87 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (SUT) | 8.51 us | 117.45 KHz |
matrix: unit, dyn[float], 3x3 | 20.59 ns | 48.56 MHz |
matrix: unit, dyn[double], 3x3 | 22.60 ns | 44.24 MHz |
matrix: unit, dyn[float], 6x6 | 63.92 ns | 15.64 MHz |
matrix: unit, dyn[double], 6x6 | 65.22 ns | 15.33 MHz |
matrix: unit, fix[float,3,3] | 0.35 ns | 2.89 GHz |
matrix: unit, fix[double,3,3] | 1.19 ns | 842.46 MHz |
matrix: unit, fix[float,6,6] | 1.68 ns | 594.53 MHz |
matrix: unit, fix[double,6,6] | 2.86 ns | 349.53 MHz |
matrix: multiply, dyn[float ], 3x3 * 3x3 | 73.50 ns | 13.61 MHz |
matrix: multiply, fix[float ], 3x3 * 3x3 | 24.10 ns | 41.49 MHz |
matrix: multiply, dyn[double], 3x3 * 3x3 | 72.10 ns | 13.87 MHz |
matrix: multiply, fix[double], 3x3 * 3x3 | 23.50 ns | 42.55 MHz |
matrix: multiply, dyn[float ], 3x6 * 6x3 | 112.90 ns | 8.86 MHz |
matrix: multiply, fix[float ], 3x6 * 6x3 | 45.00 ns | 22.22 MHz |
matrix: multiply, dyn[double], 3x6 * 6x3 | 110.50 ns | 9.05 MHz |
matrix: multiply, fix[double], 3x6 * 6x3 | 45.10 ns | 22.17 MHz |
matrix: multiply, dyn[float ], 10x40 * 40x10 | 5.82 us | 171.91 KHz |
matrix: multiply, fix[float ], 10x40 * 40x10 | 3.57 us | 279.91 KHz |
matrix: multiply, dyn[double], 10x40 * 40x10 | 5.88 us | 169.93 KHz |
matrix: multiply, fix[double], 10x40 * 40x10 | 3.82 us | 262.04 KHz |
matrix: inv, dyn[float ] 3x3 | 449.00 ns | 2.23 MHz |
matrix: inv, fix[float ] 3x3 | 33.00 ns | 30.30 MHz |
matrix: inv, dyn[double] 3x3 | 413.00 ns | 2.42 MHz |
matrix: inv, fix[double] 3x3 | 22.00 ns | 45.45 MHz |
matrix: inv, dyn[float ] 6x6 | 1.31 us | 761.04 KHz |
matrix: inv, fix[float ] 6x6 | 468.00 ns | 2.14 MHz |
matrix: inv, dyn[double] 6x6 | 1.25 us | 800.64 KHz |
matrix: inv, fix[double] 6x6 | 578.00 ns | 1.73 MHz |
matrix: inv, dyn[float ] 20x20 | 28.01 us | 35.71 KHz |
matrix: inv, fix[float ] 20x20 | 12.67 us | 78.91 KHz |
matrix: inv, dyn[double] 20x20 | 28.58 us | 34.98 KHz |
matrix: inv, fix[double] 20x20 | 17.20 us | 58.15 KHz |
matrix: inv, dyn[float ] 40x40 | 205.67 us | 4.86 KHz |
matrix: inv, fix[float ] 40x40 | 92.66 us | 10.79 KHz |
matrix: inv, dyn[double] 40x40 | 200.95 us | 4.98 KHz |
matrix: inv, fix[double] 40x40 | 134.50 us | 7.43 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 | 8.80 ns | 113.64 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 | 931.50 ns | 1.07 MHz |
matrix: det, fix[float ] 6x6 | 215.70 ns | 4.64 MHz |
matrix: det, dyn[double] 6x6 | 739.10 ns | 1.35 MHz |
matrix: det, fix[double] 6x6 | 219.80 ns | 4.55 MHz |
matrix: det, dyn[float ] 20x20 | 5.64 us | 177.30 KHz |
matrix: det, fix[float ] 20x20 | 4.05 us | 246.81 KHz |
matrix: det, dyn[double] 20x20 | 6.52 us | 153.32 KHz |
matrix: det, fix[double] 20x20 | 4.73 us | 211.54 KHz |
matrix: det, dyn[float ] 40x40 | 30.83 us | 32.43 KHz |
matrix: det, fix[float ] 40x40 | 25.85 us | 38.68 KHz |
matrix: det, dyn[double] 40x40 | 32.40 us | 30.87 KHz |
matrix: det, fix[double] 40x40 | 27.53 us | 36.33 KHz |
matrix: chol, dyn[double] 4x4 | 170.00 ns | 5.88 MHz |
matrix: chol, fix[double] 4x4 | 130.00 ns | 7.69 MHz |
matrix: chol, dyn[double] 40x40 | 18.73 us | 53.39 KHz |
matrix: chol, fix[double] 40x40 | 16.74 us | 59.74 KHz |
matrix: chol, sparse [2x2;2x2] | 8.50 us | 117.65 KHz |
matrix: chol, sparse [30x30;10x10] | 93.90 us | 10.65 KHz |
matrix: chol, dyn[double] 10x[6x6] | 52.90 us | 18.90 KHz |
matrix: chol, sparse 10x[6x6] | 40.03 us | 24.98 KHz |
matrix: chol, dyn[double] 20x[6x6] | 411.30 us | 2.43 KHz |
matrix: chol, sparse 20x[6x6] | 74.98 us | 13.34 KHz |
matrix: chol, dyn[double] 50x[6x6] | 8.61 ms | 116.18 Hz |
matrix: chol, sparse 50x[6x6] | 185.35 us | 5.40 KHz |
matrix: chol, dyn[double] 100x[6x6] | 135.40 ms | 7.39 Hz |
matrix: chol, sparse 100x[6x6] | 359.80 us | 2.78 KHz |
matrix: chol, dyn[double] 120x[6x6] | 364.31 ms | 2.74 Hz |
matrix: chol, sparse 120x[6x6] | 426.39 us | 2.35 KHz |
matrix: chol, dyn[double] 140x[6x6] | 800.16 ms | 1.25 Hz |
matrix: chol, sparse 140x[6x6] | 497.60 us | 2.01 KHz |
gridmap2D: getCell | 0.00 ns | inf THz |
gridmap2D: setCell | 2.58 ns | 387.19 MHz |
gridmap2D: updateCell | 7.47 ns | 133.80 MHz |
gridmap2D: updateCell_fast_occupied | 0.55 ns | 1.83 GHz |
gridmap2D: insert scan w/o widening | 104.80 us | 9.54 KHz |
gridmap2D: insert scan with widening | 295.32 us | 3.39 KHz |
gridmap2D: resize | 1.83 ms | 547.65 Hz |
gridmap2D: computeLikelihood | 16.65 us | 60.06 KHz |
pointmap: insert 100 scans | 3.11 ms | 321.23 Hz |
pointmap: build 2D kd-tree of 1 scan | 4.28 us | 233.64 KHz |
pointmap: build 2D kd-tree of 100 scan | 354.96 us | 2.82 KHz |
pointmap: build 2D kd-tree of 1000 scan | 4.14 ms | 241.67 Hz |
pointmap: build 3D kd-tree of 1 scan | 4.28 us | 233.64 KHz |
pointmap: build 3D kd-tree of 100 scan | 361.24 us | 2.77 KHz |
pointmap: build 3D kd-tree of 1000 scan | 4.09 ms | 244.66 Hz |
pointmap: kd-tree 2d query on 10 scans | 1.37 us | 730.99 KHz |
pointmap: kd-tree 2d query on 1000 scans | 98.96 us | 10.10 KHz |
pointmap: kd-tree 2d query on 10000 scans | 11.96 ms | 83.64 Hz |
pointmap: (insert scan+2D kd-tree query) x 10 | 5.60 ms | 178.50 Hz |
pointmap: (insert scan+2D kd-tree query) x 50 | 129.56 ms | 7.72 Hz |
pointmap: (insert scan+3D kd-tree query) x 10 | 5.65 ms | 176.84 Hz |
pointmap: (insert scan+3D kd-tree query) x 50 | 132.43 ms | 7.55 Hz |
random: drawUniform32bit | 15.70 ns | 63.70 MHz |
random: drawUniform | 15.69 ns | 63.72 MHz |
random: drawGaussian1D_normalized | 70.40 ns | 14.20 MHz |
random: drawGaussian1D | 70.38 ns | 14.21 MHz |
random: system rand() | 11.07 ns | 90.37 MHz |
random: drawGaussianMultivariate(fixed 3x3) | 1.33 us | 751.96 KHz |
random: drawGaussianMultivariate(dyn 3x3) | 3.04 us | 328.99 KHz |
random: drawGaussianMultivariateMany(fixed 2x2, 1000) | 162.81 ns | 6.14 MHz |
random: drawGaussianMultivariateMany(fixed 3x3, 1000) | 245.58 ns | 4.07 MHz |
random: drawGaussianMultivariateMany(fixed 6x6, 1000) | 514.74 ns | 1.94 MHz |
random: drawGaussianMultivariateMany(dyn 2x2, 1000) | 173.84 ns | 5.75 MHz |
random: drawGaussianMultivariateMany(dyn 3x3, 1000) | 259.42 ns | 3.85 MHz |
random: drawGaussianMultivariateMany(dyn 6x6, 1000) | 523.99 ns | 1.91 MHz |
random: permuteVector (len=10) | 288.60 ns | 3.47 MHz |
random: permuteVector (len=100) | 3.07 us | 325.61 KHz |
random: permuteVector (len=1000) | 30.26 us | 33.05 KHz |
math: round | 0.10 ns | 9.77 GHz |
images: Save as JPEG (640x480, quality=95%) | 31.77 ms | 31.48 Hz |
images: Save as JPEG (800x600, quality=95%) | 45.70 ms | 21.88 Hz |
images: Save as JPEG (1024x768, quality=95%) | 73.33 ms | 13.64 Hz |
images: Save as JPEG (640x480, quality=75%) | 27.15 ms | 36.83 Hz |
images: Save as JPEG (800x600, quality=75%) | 40.31 ms | 24.81 Hz |
images: Save as JPEG (1024x768, quality=75%) | 64.44 ms | 15.52 Hz |
images: Gauss filter (640x480) | 4.52 ms | 221.30 Hz |
images: Gauss filter (800x600) | 7.35 ms | 136.05 Hz |
images: Gauss filter (1024x768) | 11.22 ms | 89.13 Hz |
scan_matching: 6D LS Rigid Trans. [CPose3D] | 6.32 us | 158.23 KHz |
scan_matching: 6D LS Rigid Trans. [CPose3DQuat] | 4.78 us | 209.21 KHz |
scan_matching: 6D LS Rigid Trans. [vector of points] | 2.14 us | 467.29 KHz |
feature_extraction [640x480]: Harris | 28.31 ms | 35.32 Hz |
feature_extraction [640x480]: KLT | 27.34 ms | 36.57 Hz |
feature_extraction [640x480]: SIFT | 641.91 ms | 1.56 Hz |
feature_extraction [640x480]: SIFT desc. | 170.65 ms | 5.86 Hz |
feature_extraction [640x480]: SURF | 201.21 ms | 4.97 Hz |
feature_extraction [640x480]: FAST | 5.22 ms | 191.49 Hz |
feature_extraction [640x480]: Spin desc. | 60.81 ms | 16.44 Hz |
feature_matching [640x480]: Harris + CC | 43.26 ms | 23.12 Hz |
feature_matching [640x480]: Harris + SAD | 39.91 ms | 25.06 Hz |
feature_matching [640x480]: SIFT | 1.28 sec | 783.36 mHz |
feature_matching [640x480]: SURF | 386.18 ms | 2.59 Hz |
feature_matching [640x480]: FAST + CC | 16.12 ms | 62.03 Hz |
feature_matching [640x480]: FAST + SAD | 10.93 ms | 91.46 Hz |