Test description | Execution time | Execution rate (Hz) |
icp-slam (match points): Run with sample dataset | 20.59 ms | 48.58 Hz |
icp-slam (match grid): Run with sample dataset | 20.64 ms | 48.45 Hz |
poses: CPose3D (+) CPose3D | 42.90 ns | 23.31 MHz |
poses: CPose3D.composeFrom() | 37.61 ns | 26.59 MHz |
poses: CPose3D (+) CPoint3D | 7.25 ns | 137.89 MHz |
poses: CPose3D.composePoint() | 11.83 ns | 84.53 MHz |
poses: CPoint3D (-) CPose3D | 39.31 ns | 25.44 MHz |
poses: CPose3D.inverseComposePoint() | 34.91 ns | 28.65 MHz |
poses: CPose2D (+) CPose2D | 76.08 ns | 13.14 MHz |
poses: CPose2D.composeFrom() | 61.61 ns | 16.23 MHz |
poses: CPose2D (+) CPoint2D | 60.26 ns | 16.59 MHz |
poses: CPose2D.composePoint() | 62.26 ns | 16.06 MHz |
poses: CPose3DQuat (+) CPose3DQuat | 40.99 ns | 24.40 MHz |
poses: CPose3DQuat.composeFrom() | 39.39 ns | 25.39 MHz |
poses: CPose3DQuat (+) CPoint3D | 18.30 ns | 54.63 MHz |
poses: CPose3DQuat.composePoint() | 17.94 ns | 55.74 MHz |
poses: CPoint3D (-) CPose3DQuat | 55.46 ns | 18.03 MHz |
poses: CPose3DQuat.invcomposePoint() | 17.66 ns | 56.63 MHz |
poses: Conv CPose3DQuat <- CPose3D | 16.78 ns | 59.58 MHz |
poses: Conv CPose3D -> CPose3DQuat | 169.37 ns | 5.90 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (DEF) | 799.08 us | 1.25 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (Lin) | 803.31 us | 1.24 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (SUT) | 9.44 us | 105.91 KHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (DEF) | 648.90 ns | 1.54 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (Lin) | 631.00 ns | 1.58 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (SUT) | 8.18 us | 122.30 KHz |
matrix: unit, dyn[float], 3x3 | 24.43 ns | 40.94 MHz |
matrix: unit, dyn[double], 3x3 | 23.18 ns | 43.14 MHz |
matrix: unit, dyn[float], 6x6 | 59.50 ns | 16.81 MHz |
matrix: unit, dyn[double], 6x6 | 62.26 ns | 16.06 MHz |
matrix: unit, fix[float,3,3] | 0.35 ns | 2.88 GHz |
matrix: unit, fix[double,3,3] | 1.19 ns | 841.75 MHz |
matrix: unit, fix[float,6,6] | 1.70 ns | 587.20 MHz |
matrix: unit, fix[double,6,6] | 2.77 ns | 361.01 MHz |
matrix: multiply, dyn[float ], 3x3 * 3x3 | 85.80 ns | 11.66 MHz |
matrix: multiply, fix[float ], 3x3 * 3x3 | 23.80 ns | 42.02 MHz |
matrix: multiply, dyn[double], 3x3 * 3x3 | 75.90 ns | 13.18 MHz |
matrix: multiply, fix[double], 3x3 * 3x3 | 23.50 ns | 42.55 MHz |
matrix: multiply, dyn[float ], 3x6 * 6x3 | 118.10 ns | 8.47 MHz |
matrix: multiply, fix[float ], 3x6 * 6x3 | 44.70 ns | 22.37 MHz |
matrix: multiply, dyn[double], 3x6 * 6x3 | 110.50 ns | 9.05 MHz |
matrix: multiply, fix[double], 3x6 * 6x3 | 45.20 ns | 22.12 MHz |
matrix: multiply, dyn[float ], 10x40 * 40x10 | 5.44 us | 183.95 KHz |
matrix: multiply, fix[float ], 10x40 * 40x10 | 3.78 us | 264.87 KHz |
matrix: multiply, dyn[double], 10x40 * 40x10 | 5.54 us | 180.38 KHz |
matrix: multiply, fix[double], 10x40 * 40x10 | 4.07 us | 245.43 KHz |
matrix: inv, dyn[float ] 3x3 | 631.00 ns | 1.58 MHz |
matrix: inv, fix[float ] 3x3 | 35.00 ns | 28.57 MHz |
matrix: inv, dyn[double] 3x3 | 644.00 ns | 1.55 MHz |
matrix: inv, fix[double] 3x3 | 39.00 ns | 25.64 MHz |
matrix: inv, dyn[float ] 6x6 | 2.37 us | 421.76 KHz |
matrix: inv, fix[float ] 6x6 | 812.00 ns | 1.23 MHz |
matrix: inv, dyn[double] 6x6 | 1.26 us | 793.02 KHz |
matrix: inv, fix[double] 6x6 | 575.00 ns | 1.74 MHz |
matrix: inv, dyn[float ] 20x20 | 25.94 us | 38.55 KHz |
matrix: inv, fix[float ] 20x20 | 14.15 us | 70.70 KHz |
matrix: inv, dyn[double] 20x20 | 25.76 us | 38.83 KHz |
matrix: inv, fix[double] 20x20 | 17.04 us | 58.69 KHz |
matrix: inv, dyn[float ] 40x40 | 205.11 us | 4.88 KHz |
matrix: inv, fix[float ] 40x40 | 93.29 us | 10.72 KHz |
matrix: inv, dyn[double] 40x40 | 207.20 us | 4.83 KHz |
matrix: inv, fix[double] 40x40 | 133.80 us | 7.47 KHz |
matrix: det, dyn[float ] 2x2 | 6.40 ns | 156.25 MHz |
matrix: det, fix[float ] 2x2 | 0.00 ns | 1.#J THz |
matrix: det, dyn[double] 2x2 | 6.40 ns | 156.25 MHz |
matrix: det, fix[double] 2x2 | 0.00 ns | 1.#J THz |
matrix: det, dyn[float ] 3x3 | 10.30 ns | 97.09 MHz |
matrix: det, fix[float ] 3x3 | 0.00 ns | 1.#J THz |
matrix: det, dyn[double] 3x3 | 10.30 ns | 97.09 MHz |
matrix: det, fix[double] 3x3 | 0.00 ns | 1.#J THz |
matrix: det, dyn[float ] 6x6 | 653.50 ns | 1.53 MHz |
matrix: det, fix[float ] 6x6 | 210.00 ns | 4.76 MHz |
matrix: det, dyn[double] 6x6 | 730.30 ns | 1.37 MHz |
matrix: det, fix[double] 6x6 | 212.10 ns | 4.71 MHz |
matrix: det, dyn[float ] 20x20 | 5.70 us | 175.40 KHz |
matrix: det, fix[float ] 20x20 | 4.20 us | 237.92 KHz |
matrix: det, dyn[double] 20x20 | 6.56 us | 152.33 KHz |
matrix: det, fix[double] 20x20 | 5.04 us | 198.38 KHz |
matrix: det, dyn[float ] 40x40 | 32.38 us | 30.89 KHz |
matrix: det, fix[float ] 40x40 | 27.92 us | 35.82 KHz |
matrix: det, dyn[double] 40x40 | 39.41 us | 25.37 KHz |
matrix: det, fix[double] 40x40 | 29.04 us | 34.44 KHz |
matrix: chol, dyn[double] 4x4 | 140.00 ns | 7.14 MHz |
matrix: chol, fix[double] 4x4 | 160.00 ns | 6.25 MHz |
matrix: chol, dyn[double] 40x40 | 18.38 us | 54.41 KHz |
matrix: chol, fix[double] 40x40 | 17.08 us | 58.55 KHz |
matrix: chol, sparse [2x2;2x2] | 8.30 us | 120.48 KHz |
matrix: chol, sparse [30x30;10x10] | 84.40 us | 11.85 KHz |
matrix: chol, dyn[double] 10x[6x6] | 53.00 us | 18.87 KHz |
matrix: chol, sparse 10x[6x6] | 39.49 us | 25.32 KHz |
matrix: chol, dyn[double] 20x[6x6] | 411.70 us | 2.43 KHz |
matrix: chol, sparse 20x[6x6] | 74.09 us | 13.50 KHz |
matrix: chol, dyn[double] 50x[6x6] | 10.38 ms | 96.33 Hz |
matrix: chol, sparse 50x[6x6] | 248.74 us | 4.02 KHz |
matrix: chol, dyn[double] 100x[6x6] | 370.64 ms | 2.70 Hz |
matrix: chol, sparse 100x[6x6] | 353.56 us | 2.83 KHz |
matrix: chol, dyn[double] 120x[6x6] | 365.56 ms | 2.74 Hz |
matrix: chol, sparse 120x[6x6] | 425.27 us | 2.35 KHz |
matrix: chol, dyn[double] 140x[6x6] | 796.04 ms | 1.26 Hz |
matrix: chol, sparse 140x[6x6] | 490.79 us | 2.04 KHz |
gridmap2D: getCell | 0.00 ns | 1.#J THz |
gridmap2D: setCell | 2.58 ns | 387.76 MHz |
gridmap2D: updateCell | 7.44 ns | 134.32 MHz |
gridmap2D: updateCell_fast_occupied | 0.55 ns | 1.82 GHz |
gridmap2D: insert scan w/o widening | 101.23 us | 9.88 KHz |
gridmap2D: insert scan with widening | 291.30 us | 3.43 KHz |
gridmap2D: resize | 1.89 ms | 529.66 Hz |
gridmap2D: computeLikelihood | 16.46 us | 60.76 KHz |
pointmap: insert 100 scans | 3.10 ms | 322.50 Hz |
pointmap: build 2D kd-tree of 1 scan | 4.28 us | 233.64 KHz |
pointmap: build 2D kd-tree of 100 scan | 355.52 us | 2.81 KHz |
pointmap: build 2D kd-tree of 1000 scan | 4.16 ms | 240.24 Hz |
pointmap: build 3D kd-tree of 1 scan | 4.76 us | 210.08 KHz |
pointmap: build 3D kd-tree of 100 scan | 363.20 us | 2.75 KHz |
pointmap: build 3D kd-tree of 1000 scan | 4.09 ms | 244.29 Hz |
pointmap: kd-tree 2d query on 10 scans | 1.38 us | 723.59 KHz |
pointmap: kd-tree 2d query on 1000 scans | 100.93 us | 9.91 KHz |
pointmap: kd-tree 2d query on 10000 scans | 11.91 ms | 83.95 Hz |
pointmap: (insert scan+2D kd-tree query) x 10 | 5.62 ms | 178.01 Hz |
pointmap: (insert scan+2D kd-tree query) x 50 | 130.76 ms | 7.65 Hz |
pointmap: (insert scan+3D kd-tree query) x 10 | 5.67 ms | 176.35 Hz |
pointmap: (insert scan+3D kd-tree query) x 50 | 132.64 ms | 7.54 Hz |
random: drawUniform32bit | 14.57 ns | 68.63 MHz |
random: drawUniform | 14.62 ns | 68.41 MHz |
random: drawGaussian1D_normalized | 68.70 ns | 14.56 MHz |
random: drawGaussian1D | 68.68 ns | 14.56 MHz |
random: system rand() | 10.45 ns | 95.67 MHz |
random: drawGaussianMultivariate(fixed 3x3) | 1.31 us | 764.77 KHz |
random: drawGaussianMultivariate(dyn 3x3) | 2.79 us | 358.92 KHz |
random: drawGaussianMultivariateMany(fixed 2x2, 1000) | 158.26 ns | 6.32 MHz |
random: drawGaussianMultivariateMany(fixed 3x3, 1000) | 236.42 ns | 4.23 MHz |
random: drawGaussianMultivariateMany(fixed 6x6, 1000) | 489.37 ns | 2.04 MHz |
random: drawGaussianMultivariateMany(dyn 2x2, 1000) | 164.61 ns | 6.07 MHz |
random: drawGaussianMultivariateMany(dyn 3x3, 1000) | 248.12 ns | 4.03 MHz |
random: drawGaussianMultivariateMany(dyn 6x6, 1000) | 514.83 ns | 1.94 MHz |
random: permuteVector (len=10) | 317.50 ns | 3.15 MHz |
random: permuteVector (len=100) | 3.06 us | 326.54 KHz |
random: permuteVector (len=1000) | 30.27 us | 33.04 KHz |
math: round | 0.10 ns | 10.09 GHz |
images: Save as JPEG (640x480, quality=95%) | 27.27 ms | 36.67 Hz |
images: Save as JPEG (800x600, quality=95%) | 43.27 ms | 23.11 Hz |
images: Save as JPEG (1024x768, quality=95%) | 74.67 ms | 13.39 Hz |
images: Save as JPEG (640x480, quality=75%) | 26.31 ms | 38.01 Hz |
images: Save as JPEG (800x600, quality=75%) | 40.92 ms | 24.44 Hz |
images: Save as JPEG (1024x768, quality=75%) | 62.56 ms | 15.99 Hz |
images: Gauss filter (640x480) | 4.48 ms | 223.01 Hz |
images: Gauss filter (800x600) | 7.46 ms | 134.07 Hz |
images: Gauss filter (1024x768) | 12.41 ms | 80.57 Hz |
scan_matching: 6D LS Rigid Trans. [CPose3D] | 5.15 us | 194.17 KHz |
scan_matching: 6D LS Rigid Trans. [CPose3DQuat] | 4.35 us | 229.89 KHz |
scan_matching: 6D LS Rigid Trans. [vector of points] | 2.12 us | 471.70 KHz |
feature_extraction [640x480]: Harris | 33.18 ms | 30.14 Hz |
feature_extraction [640x480]: KLT | 29.64 ms | 33.74 Hz |
feature_extraction [640x480]: SIFT | 637.68 ms | 1.57 Hz |
feature_extraction [640x480]: SIFT desc. | 173.14 ms | 5.78 Hz |
feature_extraction [640x480]: SURF | 202.84 ms | 4.93 Hz |
feature_extraction [640x480]: FAST | 5.10 ms | 195.94 Hz |
feature_extraction [640x480]: Spin desc. | 61.22 ms | 16.33 Hz |
feature_matching [640x480]: Harris + CC | 43.90 ms | 22.78 Hz |
feature_matching [640x480]: Harris + SAD | 38.32 ms | 26.09 Hz |
feature_matching [640x480]: SIFT | 1.28 sec | 782.87 mHz |
feature_matching [640x480]: SURF | 387.99 ms | 2.58 Hz |
feature_matching [640x480]: FAST + CC | 15.73 ms | 63.57 Hz |
feature_matching [640x480]: FAST + SAD | 10.56 ms | 94.70 Hz |
graph(2d): insertEdge x 1e3 | 104.46 us | 9.57 KHz |
graph(2d): insertEdgeAtEnd x 1e3 | 85.19 us | 11.74 KHz |
graph(2d pdf): insertEdge x 1e3 | 134.65 us | 7.43 KHz |
graph(2d pdf): insertEdgeAtEnd x 1e3 | 119.89 us | 8.34 KHz |
graph(2d): insertEdge x 1e4 | 1.39 ms | 721.96 Hz |
graph(2d): insertEdgeAtEnd x 1e4 | 854.04 us | 1.17 KHz |
graph(2d pdf): insertEdge x 1e4 | 1.61 ms | 621.80 Hz |
graph(2d pdf): insertEdgeAtEnd x 1e4 | 1.20 ms | 832.81 Hz |
graph(3d): insertEdge x 1e3 | 132.91 us | 7.52 KHz |
graph(3d): insertEdgeAtEnd x 1e3 | 109.11 us | 9.17 KHz |
graph(3d pdf): insertEdge x 1e3 | 349.74 us | 2.86 KHz |
graph(3d pdf): insertEdgeAtEnd x 1e3 | 321.54 us | 3.11 KHz |
graph(3d): insertEdge x 1e4 | 1.89 ms | 529.10 Hz |
graph(3d): insertEdgeAtEnd x 1e4 | 1.10 ms | 910.25 Hz |
graph(3d pdf): insertEdge x 1e4 | 4.65 ms | 215.20 Hz |
graph(3d pdf): insertEdgeAtEnd x 1e4 | 4.05 ms | 246.81 Hz |
graph(3d,map): dijkstra 1e2 nodes | 94.48 us | 10.58 KHz |
graph(3d,map): dijkstra 1e3 nodes | 1.16 ms | 860.07 Hz |
graph(3d,map): dijkstra 1e4 nodes | 19.13 ms | 52.28 Hz |