Test description | Execution time | Execution rate (Hz) |
icp-slam (match points): Run with sample dataset | 31.56 ms | 31.69 Hz |
icp-slam (match grid): Run with sample dataset | 53.95 ms | 18.54 Hz |
poses: CPose3D (+) CPose3D | 194.14 ns | 5.15 MHz |
poses: CPose3D.composeFrom() | 34.65 ns | 28.86 MHz |
poses: CPose3D (+) CPoint3D | 28.67 ns | 34.88 MHz |
poses: CPose3D.composePoint() | 18.49 ns | 54.08 MHz |
poses: CPoint3D (-) CPose3D | 93.89 ns | 10.65 MHz |
poses: CPose3D.inverseComposePoint() | 44.39 ns | 22.53 MHz |
poses: CPose2D (+) CPose2D | 103.92 ns | 9.62 MHz |
poses: CPose2D.composeFrom() | 91.82 ns | 10.89 MHz |
poses: CPose2D (+) CPoint2D | 140.37 ns | 7.12 MHz |
poses: CPose2D.composePoint() | 66.26 ns | 15.09 MHz |
poses: CPose3DQuat (+) CPose3DQuat | 93.35 ns | 10.71 MHz |
poses: CPose3DQuat.composeFrom() | 60.52 ns | 16.52 MHz |
poses: CPose3DQuat (+) CPoint3D | 116.72 ns | 8.57 MHz |
poses: CPose3DQuat.composePoint() | 31.02 ns | 32.23 MHz |
poses: CPoint3D (-) CPose3DQuat | 126.78 ns | 7.89 MHz |
poses: CPose3DQuat.invcomposePoint() | 30.88 ns | 32.38 MHz |
poses: Conv CPose3DQuat <- CPose3D | 33.42 ns | 29.93 MHz |
poses: Conv CPose3D -> CPose3DQuat | 211.33 ns | 4.73 MHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (DEF) | 19.45 us | 51.41 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (Lin) | 2.93 us | 341.05 KHz |
poses: Conv CPose3DQuat Gauss <- CPose3D Gauss (SUT) | 34.64 us | 28.87 KHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (DEF) | 860.26 ns | 1.16 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (Lin) | 880.23 ns | 1.14 MHz |
poses: Conv CPose3D Gauss <- CPose3DQuat Gauss (SUT) | 21.76 us | 45.95 KHz |
matrix: unit, dyn[float], 3x3 | 44.99 ns | 22.23 MHz |
matrix: unit, dyn[double], 3x3 | 45.16 ns | 22.14 MHz |
matrix: unit, dyn[float], 6x6 | 160.84 ns | 6.22 MHz |
matrix: unit, dyn[double], 6x6 | 160.97 ns | 6.21 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] | 6.73 ns | 148.49 MHz |
matrix: unit, fix[double,6,6] | 7.86 ns | 127.26 MHz |
matrix: multiply, dyn[float ], 3x3 * 3x3 | 550.79 ns | 1.82 MHz |
matrix: multiply, fix[float ], 3x3 * 3x3 | 0.05 ns | 22.08 GHz |
matrix: multiply, dyn[double], 3x3 * 3x3 | 432.98 ns | 2.31 MHz |
matrix: multiply, fix[double], 3x3 * 3x3 | 0.00 ns | 1.#J THz |
matrix: multiply, dyn[float ], 3x6 * 6x3 | 660.53 ns | 1.51 MHz |
matrix: multiply, fix[float ], 3x6 * 6x3 | 38.91 ns | 25.70 MHz |
matrix: multiply, dyn[double], 3x6 * 6x3 | 474.65 ns | 2.11 MHz |
matrix: multiply, fix[double], 3x6 * 6x3 | 8.74 ns | 114.40 MHz |
matrix: multiply, dyn[float ], 10x40 * 40x10 | 4.68 us | 213.59 KHz |
matrix: multiply, fix[float ], 10x40 * 40x10 | 4.42 us | 226.20 KHz |
matrix: multiply, dyn[double], 10x40 * 40x10 | 3.24 us | 308.92 KHz |
matrix: multiply, fix[double], 10x40 * 40x10 | 2.37 us | 422.77 KHz |
matrix: inv, dyn[double] 3x3 | 1.49 us | 672.33 KHz |
matrix: inv, fix[double] 3x3 | 32.16 ns | 31.10 MHz |
matrix: inv, dyn[double] 6x6 | 3.50 us | 286.11 KHz |
matrix: inv, fix[double] 6x6 | 2.72 us | 368.24 KHz |
matrix: inv, dyn[double] 20x20 | 31.87 us | 31.37 KHz |
matrix: inv, fix[double] 20x20 | 28.91 us | 34.58 KHz |
matrix: inv, dyn[double] 40x40 | 124.22 us | 8.05 KHz |
matrix: inv, fix[double] 40x40 | 122.24 us | 8.18 KHz |
matrix: det, dyn[double] 2x2 | 647.62 ns | 1.54 MHz |
matrix: det, fix[double] 2x2 | 0.00 ns | 1.#J THz |
matrix: det, dyn[double] 3x3 | 969.59 ns | 1.03 MHz |
matrix: det, fix[double] 3x3 | 0.00 ns | 1.#J THz |
matrix: det, dyn[double] 6x6 | 2.45 us | 407.46 KHz |
matrix: det, fix[double] 6x6 | 1.89 us | 529.99 KHz |
matrix: det, dyn[double] 20x20 | 22.48 us | 44.49 KHz |
matrix: det, fix[double] 20x20 | 21.45 us | 46.63 KHz |
matrix: det, dyn[double] 40x40 | 80.28 us | 12.46 KHz |
matrix: det, fix[double] 40x40 | 79.04 us | 12.65 KHz |
matrix: chol, dyn[double] 4x4 | 1.09 us | 916.16 KHz |
matrix: chol, fix[double] 4x4 | 317.04 ns | 3.15 MHz |
matrix: chol, dyn[double] 40x40 | 75.74 us | 13.20 KHz |
matrix: chol, fix[double] 40x40 | 55.31 us | 18.08 KHz |
matrix: chol, sparse [2x2;2x2] | 16.89 us | 59.19 KHz |
matrix: chol, sparse [30x30;10x10] | 247.29 us | 4.04 KHz |
matrix: chol, dyn[double] 10x[6x6] | 180.76 us | 5.53 KHz |
matrix: chol, sparse 10x[6x6] | 91.89 us | 10.88 KHz |
matrix: chol, dyn[double] 20x[6x6] | 765.78 us | 1.31 KHz |
matrix: chol, sparse 20x[6x6] | 116.55 us | 8.58 KHz |
matrix: chol, dyn[double] 50x[6x6] | 4.08 ms | 245.20 Hz |
matrix: chol, sparse 50x[6x6] | 207.46 us | 4.82 KHz |
matrix: chol, dyn[double] 100x[6x6] | 24.43 ms | 40.93 Hz |
matrix: chol, sparse 100x[6x6] | 403.40 us | 2.48 KHz |
matrix: chol, dyn[double] 120x[6x6] | 40.20 ms | 24.87 Hz |
matrix: chol, sparse 120x[6x6] | 479.83 us | 2.08 KHz |
matrix: chol, dyn[double] 140x[6x6] | 59.95 ms | 16.68 Hz |
matrix: chol, sparse 140x[6x6] | 560.09 us | 1.79 KHz |
gridmap2D: getCell | 5.69 ns | 175.73 MHz |
gridmap2D: setCell | 8.06 ns | 124.07 MHz |
gridmap2D: updateCell | 61.98 ns | 16.13 MHz |
gridmap2D: updateCell_fast_occupied | 1.25 ns | 798.82 MHz |
gridmap2D: insert scan w/o widening | 208.84 us | 4.79 KHz |
gridmap2D: insert scan with widening | 346.08 us | 2.89 KHz |
gridmap2D: resize | 2.81 ms | 355.60 Hz |
gridmap2D: computeLikelihood | 18.33 us | 54.57 KHz |
pointmap: insert 100 scans | 6.61 ms | 151.33 Hz |
pointmap: build 2D kd-tree of 1 scan | 6.03 us | 165.76 KHz |
pointmap: build 2D kd-tree of 100 scan | 536.01 us | 1.87 KHz |
pointmap: build 2D kd-tree of 1000 scan | 5.64 ms | 177.17 Hz |
pointmap: build 3D kd-tree of 1 scan | 7.70 us | 129.88 KHz |
pointmap: build 3D kd-tree of 100 scan | 528.60 us | 1.89 KHz |
pointmap: build 3D kd-tree of 1000 scan | 5.81 ms | 172.12 Hz |
pointmap: kd-tree 2d query on 10 scans | 2.13 us | 468.98 KHz |
pointmap: kd-tree 2d query on 1000 scans | 145.70 us | 6.86 KHz |
pointmap: kd-tree 2d query on 10000 scans | 15.49 ms | 64.56 Hz |
pointmap: (insert scan+2D kd-tree query) x 10 | 8.93 ms | 111.93 Hz |
pointmap: (insert scan+2D kd-tree query) x 50 | 200.06 ms | 5.00 Hz |
pointmap: (insert scan+3D kd-tree query) x 10 | 8.97 ms | 111.43 Hz |
pointmap: (insert scan+3D kd-tree query) x 50 | 201.21 ms | 4.97 Hz |
random: drawUniform32bit | 7.76 ns | 128.93 MHz |
random: drawUniform | 7.61 ns | 131.41 MHz |
random: drawGaussian1D_normalized | 51.84 ns | 19.29 MHz |
random: drawGaussian1D | 52.02 ns | 19.22 MHz |
random: system rand() | 27.43 ns | 36.46 MHz |
random: drawGaussianMultivariate(fixed 3x3) | 4.97 us | 201.38 KHz |
random: drawGaussianMultivariate(dyn 3x3) | 10.68 us | 93.66 KHz |
random: drawGaussianMultivariateMany(fixed 2x2, 1000) | 153.63 ns | 6.51 MHz |
random: drawGaussianMultivariateMany(fixed 3x3, 1000) | 250.07 ns | 4.00 MHz |
random: drawGaussianMultivariateMany(fixed 6x6, 1000) | 664.62 ns | 1.50 MHz |
random: drawGaussianMultivariateMany(dyn 2x2, 1000) | 153.22 ns | 6.53 MHz |
random: drawGaussianMultivariateMany(dyn 3x3, 1000) | 253.40 ns | 3.95 MHz |
random: drawGaussianMultivariateMany(dyn 6x6, 1000) | 622.96 ns | 1.61 MHz |
random: permuteVector (len=10) | 342.58 ns | 2.92 MHz |
random: permuteVector (len=100) | 3.62 us | 276.54 KHz |
random: permuteVector (len=1000) | 35.68 us | 28.03 KHz |
math: round | 0.00 ns | 220.79 THz |
images: Save as JPEG (640x480, quality=95%) | 28.08 ms | 35.61 Hz |
images: Save as JPEG (800x600, quality=95%) | 42.80 ms | 23.37 Hz |
images: Save as JPEG (1024x768, quality=95%) | 69.14 ms | 14.46 Hz |
images: Save as JPEG (640x480, quality=75%) | 23.76 ms | 42.09 Hz |
images: Save as JPEG (800x600, quality=75%) | 37.25 ms | 26.85 Hz |
images: Save as JPEG (1024x768, quality=75%) | 59.86 ms | 16.71 Hz |
images: Gauss filter (640x480) | 7.21 ms | 138.75 Hz |
images: Gauss filter (800x600) | 8.67 ms | 115.32 Hz |
images: Gauss filter (1024x768) | 14.94 ms | 66.93 Hz |
scan_matching: 6D LS Rigid Trans. [CPose3D] | 25.26 us | 39.59 KHz |
scan_matching: 6D LS Rigid Trans. [CPose3DQuat] | 24.29 us | 41.17 KHz |
scan_matching: 6D LS Rigid Trans. [vector of points] | 13.82 us | 72.37 KHz |
feature_extraction [640x480]: Harris | 53.60 ms | 18.66 Hz |
feature_extraction [640x480]: KLT | 32.67 ms | 30.61 Hz |
feature_extraction [640x480]: SIFT | 724.51 ms | 1.38 Hz |
feature_extraction [640x480]: SIFT desc. | 217.33 ms | 4.60 Hz |
feature_extraction [640x480]: SURF | 320.21 ms | 3.12 Hz |
feature_extraction [640x480]: FAST | 9.58 ms | 104.37 Hz |
feature_extraction [640x480]: Spin desc. | 111.16 ms | 9.00 Hz |
feature_matching [640x480]: Harris + CC | 64.75 ms | 15.44 Hz |
feature_matching [640x480]: Harris + SAD | 50.46 ms | 19.82 Hz |
feature_matching [640x480]: SIFT | 1.37 sec | 732.49 mHz |
feature_matching [640x480]: SURF | 602.11 ms | 1.66 Hz |
feature_matching [640x480]: FAST + CC | 23.55 ms | 42.46 Hz |
feature_matching [640x480]: FAST + SAD | 15.71 ms | 63.67 Hz |
graph(2d): insertEdge x 1e3 | 300.22 us | 3.33 KHz |
graph(2d,vec): insertEdge x 1e3 | 300.93 us | 3.32 KHz |
graph(2d): insertEdgeAtEnd x 1e3 | 245.20 us | 4.08 KHz |
graph(2d,vec): insertEdgeAtEnd x 1e3 | 252.81 us | 3.96 KHz |
graph(2d pdf): insertEdge x 1e3 | 537.61 us | 1.86 KHz |
graph(2d pdf,vec): insertEdge x 1e3 | 456.45 us | 2.19 KHz |
graph(2d pdf): insertEdgeAtEnd x 1e3 | 401.18 us | 2.49 KHz |
graph(2d pdf,vec): insertEdgeAtEnd x 1e3 | 394.03 us | 2.54 KHz |
graph(2d): insertEdge x 1e4 | 3.65 ms | 273.78 Hz |
graph(2d,vec): insertEdge x 1e4 | 3.70 ms | 270.61 Hz |
graph(2d): insertEdgeAtEnd x 1e4 | 2.51 ms | 399.01 Hz |
graph(2d,vec): insertEdgeAtEnd x 1e4 | 2.55 ms | 392.34 Hz |
graph(2d pdf): insertEdge x 1e4 | 4.81 ms | 207.97 Hz |
graph(2d pdf,vec): insertEdge x 1e4 | 4.86 ms | 205.85 Hz |
graph(2d pdf): insertEdgeAtEnd x 1e4 | 4.03 ms | 248.25 Hz |
graph(2d pdf,vec): insertEdgeAtEnd x 1e4 | 4.00 ms | 250.07 Hz |
graph(3d): insertEdge x 1e3 | 338.14 us | 2.96 KHz |
graph(3d,vec): insertEdge x 1e3 | 332.03 us | 3.01 KHz |
graph(3d): insertEdgeAtEnd x 1e3 | 302.41 us | 3.31 KHz |
graph(3d,vec): insertEdgeAtEnd x 1e3 | 309.65 us | 3.23 KHz |
graph(3d pdf): insertEdge x 1e3 | 668.72 us | 1.50 KHz |
graph(3d pdf,vec): insertEdge x 1e3 | 672.92 us | 1.49 KHz |
graph(3d pdf): insertEdgeAtEnd x 1e3 | 668.41 us | 1.50 KHz |
graph(3d pdf,vec): insertEdgeAtEnd x 1e3 | 676.59 us | 1.48 KHz |
graph(3d): insertEdge x 1e4 | 3.60 ms | 277.54 Hz |
graph(3d,vec): insertEdge x 1e4 | 3.62 ms | 276.39 Hz |
graph(3d): insertEdgeAtEnd x 1e4 | 3.04 ms | 328.99 Hz |
graph(3d,vec): insertEdgeAtEnd x 1e4 | 3.02 ms | 330.96 Hz |
graph(3d pdf): insertEdge x 1e4 | 7.09 ms | 141.02 Hz |
graph(3d pdf,vec): insertEdge x 1e4 | 7.08 ms | 141.24 Hz |
graph(3d pdf): insertEdgeAtEnd x 1e4 | 6.70 ms | 149.36 Hz |
graph(3d pdf,vec): insertEdgeAtEnd x 1e4 | 6.88 ms | 145.34 Hz |
graph(3d): dijkstra 1e2 nodes | 279.15 us | 3.58 KHz |
graph(3d,vec): dijkstra 1e2 nodes | 417.83 us | 2.39 KHz |
graph(3d): dijkstra 1e3 nodes | 3.14 ms | 318.46 Hz |
graph(3d,vec): dijkstra 1e3 nodes | 3.68 ms | 271.44 Hz |
graph(3d): dijkstra 1e4 nodes | 37.09 ms | 26.96 Hz |
graph(3d,vec): dijkstra 1e4 nodes | 42.65 ms | 23.45 Hz |
graph(3d): dijkstra 1e5 nodes | 433.73 ms | 2.31 Hz |
graph(3d,vec): dijkstra 1e5 nodes | 470.84 ms | 2.12 Hz |
graph(2d): dijkstra 1e5 nodes | 428.18 ms | 2.34 Hz |
graph(2d,vec): dijkstra 1e5 nodes | 465.28 ms | 2.15 Hz |