Test description | Execution time | Execution rate (Hz) |
icp-slam (match points): Run with sample dataset | 20.90 ms | 47.85 Hz |
icp-slam (match grid): Run with sample dataset | 18.76 ms | 53.30 Hz |
poses: CPose3D (+) CPose3D | 41.67 ns | 24.00 MHz |
poses: CPose3D.composeFrom() | 32.39 ns | 30.87 MHz |
poses: CPose3D (+) CPoint3D | 8.02 ns | 124.63 MHz |
poses: CPose3D.composePoint() | 11.53 ns | 86.70 MHz |
poses: CPoint3D (-) CPose3D | 18.18 ns | 54.99 MHz |
poses: CPose3D.inverseComposePoint() | 25.21 ns | 39.66 MHz |
poses: CPose2D (+) CPose2D | 72.10 ns | 13.87 MHz |
poses: CPose2D.composeFrom() | 69.22 ns | 14.45 MHz |
poses: CPose2D (+) CPoint2D | 60.48 ns | 16.53 MHz |
poses: CPose2D.composePoint() | 60.01 ns | 16.66 MHz |
poses: CPose3DQuat (+) CPose3DQuat | 42.70 ns | 23.42 MHz |
poses: CPose3DQuat.composeFrom() | 38.27 ns | 26.13 MHz |
poses: CPose3DQuat (+) CPoint3D | 17.90 ns | 55.85 MHz |
poses: CPose3DQuat.composePoint() | 18.44 ns | 54.23 MHz |
poses: CPoint3D (-) CPose3DQuat | 33.31 ns | 30.02 MHz |
poses: CPose3DQuat.invcomposePoint() | 19.52 ns | 51.24 MHz |
poses: Conv CPose3DQuat <- CPose3D | 16.27 ns | 61.45 MHz |
poses: Conv CPose3D -> CPose3DQuat | 169.77 ns | 5.89 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (DEF) | 799.00 ns | 1.25 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (Lin) | 788.50 ns | 1.27 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (SUT) | 9.11 us | 109.83 KHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (DEF) | 557.50 ns | 1.79 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (Lin) | 558.50 ns | 1.79 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (SUT) | 8.42 us | 118.81 KHz |
matrix: unit, dyn[float], 3x3 | 17.83 ns | 56.07 MHz |
matrix: unit, dyn[double], 3x3 | 19.48 ns | 51.35 MHz |
matrix: unit, dyn[float], 6x6 | 54.85 ns | 18.23 MHz |
matrix: unit, dyn[double], 6x6 | 55.93 ns | 17.88 MHz |
matrix: unit, fix[float,3,3] | 0.00 ns | 1.#J THz |
matrix: unit, fix[double,3,3] | 0.00 ns | 1.#J THz |
matrix: unit, fix[float,6,6] | 1.50 ns | 667.56 MHz |
matrix: unit, fix[double,6,6] | 5.61 ns | 178.35 MHz |
matrix: multiply, dyn[float ], 3x3 * 3x3 | 291.30 ns | 3.43 MHz |
matrix: multiply, fix[float ], 3x3 * 3x3 | 0.00 ns | 1.#J THz |
matrix: multiply, dyn[double], 3x3 * 3x3 | 292.50 ns | 3.42 MHz |
matrix: multiply, fix[double], 3x3 * 3x3 | 0.00 ns | 1.#J THz |
matrix: multiply, dyn[float ], 3x6 * 6x3 | 347.50 ns | 2.88 MHz |
matrix: multiply, fix[float ], 3x6 * 6x3 | 0.00 ns | 1.#J THz |
matrix: multiply, dyn[double], 3x6 * 6x3 | 340.40 ns | 2.94 MHz |
matrix: multiply, fix[double], 3x6 * 6x3 | 0.00 ns | 1.#J THz |
matrix: multiply, dyn[float ], 10x40 * 40x10 | 2.42 us | 413.19 KHz |
matrix: multiply, fix[float ], 10x40 * 40x10 | 2.23 us | 448.19 KHz |
matrix: multiply, dyn[double], 10x40 * 40x10 | 2.31 us | 432.69 KHz |
matrix: multiply, fix[double], 10x40 * 40x10 | 2.12 us | 471.08 KHz |
matrix: inv, dyn[double] 3x3 | 780.00 ns | 1.28 MHz |
matrix: inv, fix[double] 3x3 | 0.00 ns | 1.#J THz |
matrix: inv, dyn[double] 6x6 | 1.97 us | 507.10 KHz |
matrix: inv, fix[double] 6x6 | 1.60 us | 624.61 KHz |
matrix: inv, dyn[double] 20x20 | 16.08 us | 62.19 KHz |
matrix: inv, fix[double] 20x20 | 14.48 us | 69.08 KHz |
matrix: inv, dyn[double] 40x40 | 65.78 us | 15.20 KHz |
matrix: inv, fix[double] 40x40 | 64.13 us | 15.59 KHz |
matrix: det, dyn[double] 2x2 | 212.60 ns | 4.70 MHz |
matrix: det, fix[double] 2x2 | 0.00 ns | 1.#J THz |
matrix: det, dyn[double] 3x3 | 323.30 ns | 3.09 MHz |
matrix: det, fix[double] 3x3 | 0.00 ns | 1.#J THz |
matrix: det, dyn[double] 6x6 | 774.90 ns | 1.29 MHz |
matrix: det, fix[double] 6x6 | 592.30 ns | 1.69 MHz |
matrix: det, dyn[double] 20x20 | 8.50 us | 117.63 KHz |
matrix: det, fix[double] 20x20 | 7.72 us | 129.53 KHz |
matrix: det, dyn[double] 40x40 | 32.23 us | 31.03 KHz |
matrix: det, fix[double] 40x40 | 30.71 us | 32.57 KHz |
matrix: chol, dyn[double] 4x4 | 530.00 ns | 1.89 MHz |
matrix: chol, fix[double] 4x4 | 130.00 ns | 7.69 MHz |
matrix: chol, dyn[double] 40x40 | 22.98 us | 43.52 KHz |
matrix: chol, fix[double] 40x40 | 19.50 us | 51.28 KHz |
matrix: chol, sparse [2x2;2x2] | 8.20 us | 121.95 KHz |
matrix: chol, sparse [30x30;10x10] | 85.30 us | 11.72 KHz |
matrix: chol, dyn[double] 10x[6x6] | 56.80 us | 17.61 KHz |
matrix: chol, sparse 10x[6x6] | 39.31 us | 25.44 KHz |
matrix: chol, dyn[double] 20x[6x6] | 266.80 us | 3.75 KHz |
matrix: chol, sparse 20x[6x6] | 72.76 us | 13.74 KHz |
matrix: chol, dyn[double] 50x[6x6] | 2.67 ms | 374.53 Hz |
matrix: chol, sparse 50x[6x6] | 176.19 us | 5.68 KHz |
matrix: chol, dyn[double] 100x[6x6] | 20.73 ms | 48.23 Hz |
matrix: chol, sparse 100x[6x6] | 351.05 us | 2.85 KHz |
matrix: chol, dyn[double] 120x[6x6] | 34.60 ms | 28.90 Hz |
matrix: chol, sparse 120x[6x6] | 415.89 us | 2.40 KHz |
matrix: chol, dyn[double] 140x[6x6] | 50.32 ms | 19.87 Hz |
matrix: chol, sparse 140x[6x6] | 482.94 us | 2.07 KHz |
gridmap2D: getCell | 0.00 ns | 1.#J THz |
gridmap2D: setCell | 2.61 ns | 383.63 MHz |
gridmap2D: updateCell | 6.99 ns | 143.02 MHz |
gridmap2D: updateCell_fast_occupied | 0.51 ns | 1.95 GHz |
gridmap2D: insert scan w/o widening | 102.59 us | 9.75 KHz |
gridmap2D: insert scan with widening | 284.11 us | 3.52 KHz |
gridmap2D: resize | 722.00 us | 1.39 KHz |
gridmap2D: computeLikelihood | 15.69 us | 63.72 KHz |
pointmap: insert 100 scans | 2.97 ms | 337.06 Hz |
pointmap: build 2D kd-tree of 1 scan | 4.36 us | 229.36 KHz |
pointmap: build 2D kd-tree of 100 scan | 357.08 us | 2.80 KHz |
pointmap: build 2D kd-tree of 1000 scan | 4.19 ms | 238.61 Hz |
pointmap: build 3D kd-tree of 1 scan | 4.72 us | 211.86 KHz |
pointmap: build 3D kd-tree of 100 scan | 362.68 us | 2.76 KHz |
pointmap: build 3D kd-tree of 1000 scan | 4.10 ms | 244.09 Hz |
pointmap: kd-tree 2d query on 10 scans | 1.39 us | 720.46 KHz |
pointmap: kd-tree 2d query on 1000 scans | 101.86 us | 9.82 KHz |
pointmap: kd-tree 2d query on 10000 scans | 11.78 ms | 84.92 Hz |
pointmap: (insert scan+2D kd-tree query) x 10 | 5.62 ms | 177.84 Hz |
pointmap: (insert scan+2D kd-tree query) x 50 | 130.59 ms | 7.66 Hz |
pointmap: (insert scan+3D kd-tree query) x 10 | 5.69 ms | 175.73 Hz |
pointmap: (insert scan+3D kd-tree query) x 50 | 132.22 ms | 7.56 Hz |
random: drawUniform32bit | 15.67 ns | 63.82 MHz |
random: drawUniform | 15.66 ns | 63.88 MHz |
random: drawGaussian1D_normalized | 69.89 ns | 14.31 MHz |
random: drawGaussian1D | 69.86 ns | 14.32 MHz |
random: system rand() | 12.21 ns | 81.87 MHz |
random: drawGaussianMultivariate(fixed 3x3) | 2.70 us | 370.49 KHz |
random: drawGaussianMultivariate(dyn 3x3) | 5.71 us | 175.14 KHz |
random: drawGaussianMultivariateMany(fixed 2x2, 1000) | 148.19 ns | 6.75 MHz |
random: drawGaussianMultivariateMany(fixed 3x3, 1000) | 232.46 ns | 4.30 MHz |
random: drawGaussianMultivariateMany(fixed 6x6, 1000) | 489.71 ns | 2.04 MHz |
random: drawGaussianMultivariateMany(dyn 2x2, 1000) | 159.54 ns | 6.27 MHz |
random: drawGaussianMultivariateMany(dyn 3x3, 1000) | 247.75 ns | 4.04 MHz |
random: drawGaussianMultivariateMany(dyn 6x6, 1000) | 521.91 ns | 1.92 MHz |
random: permuteVector (len=10) | 251.30 ns | 3.98 MHz |
random: permuteVector (len=100) | 3.02 us | 331.46 KHz |
random: permuteVector (len=1000) | 30.36 us | 32.93 KHz |
math: round | 0.10 ns | 10.09 GHz |
images: Save as JPEG (640x480, quality=95%) | 34.14 ms | 29.29 Hz |
images: Save as JPEG (800x600, quality=95%) | 49.83 ms | 20.07 Hz |
images: Save as JPEG (1024x768, quality=95%) | 80.71 ms | 12.39 Hz |
images: Save as JPEG (640x480, quality=75%) | 29.36 ms | 34.05 Hz |
images: Save as JPEG (800x600, quality=75%) | 42.45 ms | 23.56 Hz |
images: Save as JPEG (1024x768, quality=75%) | 65.41 ms | 15.29 Hz |
images: Gauss filter (640x480) | 4.66 ms | 214.40 Hz |
images: Gauss filter (800x600) | 5.98 ms | 167.10 Hz |
images: Gauss filter (1024x768) | 10.42 ms | 95.93 Hz |
scan_matching: 6D LS Rigid Trans. [CPose3D] | 11.35 us | 88.11 KHz |
scan_matching: 6D LS Rigid Trans. [CPose3DQuat] | 9.96 us | 100.40 KHz |
scan_matching: 6D LS Rigid Trans. [vector of points] | 5.52 us | 181.16 KHz |
feature_extraction [640x480]: Harris | 32.25 ms | 31.01 Hz |
feature_extraction [640x480]: KLT | 25.60 ms | 39.06 Hz |
feature_extraction [640x480]: SIFT | 630.91 ms | 1.59 Hz |
feature_extraction [640x480]: SIFT desc. | 164.09 ms | 6.09 Hz |
feature_extraction [640x480]: SURF | 207.64 ms | 4.82 Hz |
feature_extraction [640x480]: FAST | 7.60 ms | 131.57 Hz |
feature_extraction [640x480]: Spin desc. | 60.60 ms | 16.50 Hz |
feature_matching [640x480]: Harris + CC | 43.99 ms | 22.73 Hz |
feature_matching [640x480]: Harris + SAD | 36.29 ms | 27.56 Hz |
feature_matching [640x480]: SIFT | 1.20 sec | 834.47 mHz |
feature_matching [640x480]: SURF | 379.83 ms | 2.63 Hz |
feature_matching [640x480]: FAST + CC | 16.04 ms | 62.36 Hz |
feature_matching [640x480]: FAST + SAD | 10.85 ms | 92.14 Hz |
graph(2d): insertEdge x 1e3 | 119.99 us | 8.33 KHz |
graph(2d,vec): insertEdge x 1e3 | 107.18 us | 9.33 KHz |
graph(2d): insertEdgeAtEnd x 1e3 | 84.03 us | 11.90 KHz |
graph(2d,vec): insertEdgeAtEnd x 1e3 | 83.37 us | 11.99 KHz |
graph(2d pdf): insertEdge x 1e3 | 170.61 us | 5.86 KHz |
graph(2d pdf,vec): insertEdge x 1e3 | 181.61 us | 5.51 KHz |
graph(2d pdf): insertEdgeAtEnd x 1e3 | 179.02 us | 5.59 KHz |
graph(2d pdf,vec): insertEdgeAtEnd x 1e3 | 178.59 us | 5.60 KHz |
graph(2d): insertEdge x 1e4 | 1.58 ms | 632.00 Hz |
graph(2d,vec): insertEdge x 1e4 | 1.26 ms | 790.83 Hz |
graph(2d): insertEdgeAtEnd x 1e4 | 863.38 us | 1.16 KHz |
graph(2d,vec): insertEdgeAtEnd x 1e4 | 846.12 us | 1.18 KHz |
graph(2d pdf): insertEdge x 1e4 | 1.96 ms | 509.85 Hz |
graph(2d pdf,vec): insertEdge x 1e4 | 2.25 ms | 445.23 Hz |
graph(2d pdf): insertEdgeAtEnd x 1e4 | 1.95 ms | 511.72 Hz |
graph(2d pdf,vec): insertEdgeAtEnd x 1e4 | 1.95 ms | 512.69 Hz |
graph(3d): insertEdge x 1e3 | 169.26 us | 5.91 KHz |
graph(3d,vec): insertEdge x 1e3 | 168.78 us | 5.93 KHz |
graph(3d): insertEdgeAtEnd x 1e3 | 153.69 us | 6.51 KHz |
graph(3d,vec): insertEdgeAtEnd x 1e3 | 154.19 us | 6.49 KHz |
graph(3d pdf): insertEdge x 1e3 | 471.95 us | 2.12 KHz |
graph(3d pdf,vec): insertEdge x 1e3 | 479.58 us | 2.09 KHz |
graph(3d pdf): insertEdgeAtEnd x 1e3 | 441.33 us | 2.27 KHz |
graph(3d pdf,vec): insertEdgeAtEnd x 1e3 | 445.05 us | 2.25 KHz |
graph(3d): insertEdge x 1e4 | 2.46 ms | 407.06 Hz |
graph(3d,vec): insertEdge x 1e4 | 2.46 ms | 406.51 Hz |
graph(3d): insertEdgeAtEnd x 1e4 | 1.70 ms | 588.45 Hz |
graph(3d,vec): insertEdgeAtEnd x 1e4 | 1.70 ms | 587.97 Hz |
graph(3d pdf): insertEdge x 1e4 | 6.68 ms | 149.62 Hz |
graph(3d pdf,vec): insertEdge x 1e4 | 6.75 ms | 148.06 Hz |
graph(3d pdf): insertEdgeAtEnd x 1e4 | 4.59 ms | 218.07 Hz |
graph(3d pdf,vec): insertEdgeAtEnd x 1e4 | 4.58 ms | 218.58 Hz |
graph(3d): dijkstra 1e2 nodes | 89.04 us | 11.23 KHz |
graph(3d,vec): dijkstra 1e2 nodes | 75.33 us | 13.28 KHz |
graph(3d): dijkstra 1e3 nodes | 1.11 ms | 903.43 Hz |
graph(3d,vec): dijkstra 1e3 nodes | 711.20 us | 1.41 KHz |
graph(3d): dijkstra 1e4 nodes | 18.54 ms | 53.94 Hz |
graph(3d,vec): dijkstra 1e4 nodes | 9.76 ms | 102.51 Hz |
graph(3d): dijkstra 1e5 nodes | 252.57 ms | 3.96 Hz |
graph(3d,vec): dijkstra 1e5 nodes | 112.23 ms | 8.91 Hz |
graph(2d): dijkstra 1e5 nodes | 256.02 ms | 3.91 Hz |
graph(2d,vec): dijkstra 1e5 nodes | 106.16 ms | 9.42 Hz |