Commit Graph

1688 Commits

Author SHA1 Message Date
Sameer Agarwal 98719ced43 Fix a type in interfacing_with_autodiff.html
Thanks to @tangobravo for reporting this.

https://github.com/ceres-solver/ceres-solver/issues/701

Change-Id: I2b063267c9b501c698ce6cd439a666363ba16fde
2021-09-13 17:15:02 -07:00
Sameer Agarwal 0299ce9442 Update conf.py to be compatible with Sphinx 4.1.2
Change-Id: I905911121fca48ae85f046bef714135cbf641d0a
2021-09-13 17:12:02 -07:00
Sameer Agarwal 2a2b9bd6fa Fix a bug in covariance_impl.cc
A matrix reference was being incorrectly sized. It was using
the block_size number of rows, where as there are only block_local_size
number of rows that are present in the underlying matrix.

This did not affect the correctness of the resulting code, because
right after construction we then access a subblock with block_local_size
rows.

Thanks to William Gandler for reporting this.

Change-Id: I35e1f5a30b79e31b0b9fac79f7e361821d6073df
2021-08-15 16:52:08 -07:00
Sameer Agarwal 27fade7b8c Fix a bug in system_test.cc
Fix an error in the cost functor for Powell's function.
Reported by William Gandler.

Change-Id: I4ffbbca3b3731aa13c3608067baaebd06c1a044a
2021-08-15 16:44:15 -07:00
Sameer Agarwal d4eb83ee58 Fix the Jacobian in trust_region_minimizer_test.cc
The analytical Jacobians for Powell's singular function were
incorrect. Thanks to William Gandler for reporting this.

Change-Id: I780ffe449daa6935a79b904835e13edcf1cdffa2
2021-08-15 16:37:47 -07:00
Sameer Agarwal 5f6071a1cc Fix a bug in local_parameterization_test.cc
Fix an incorrect comparison between in QuaternionParameterizationTestHelper.
Reported by William Gandler.

Change-Id: If4d63a51f6a55013b4e6f0c299462c5af6e80c70
2021-08-15 16:10:12 -07:00
Sameer Agarwal b2e732b1e2 Fix errors in comments from William Gandler.
Change-Id: I1c1f1f7bdc4a1748994c3b43e72270b88f2a2b96
2021-08-15 16:01:40 -07:00
Sameer Agarwal 42f1d67176 Add accessors to GradientProblem
Change-Id: Ic818eec240fe69b09815f1cc54f7f132cca0abb8
2021-08-14 12:28:19 -07:00
Ahmed Taei aefd37b182 Refactor small_blas_gemm_benchmark
This allows benchmarking both dynamic and static problem sizes.

On my X86 2Ghz machine:

CPU Caches:
  L1 Data 32 KiB (x48)
  L1 Instruction 32 KiB (x48)
  L2 Unified 1024 KiB (x48)
  L3 Unified 39424 KiB (x2)

----------------------------------------------------------------------------------------------
Benchmark                                                    Time             CPU   Iterations
----------------------------------------------------------------------------------------------
BM_MatrixMatrixMultiplyEigen_Static_2x3x4                 10.9 ns         10.9 ns     63960496
BM_MatrixMatrixMultiplyEigen_Static_3x3x3                 11.9 ns         11.9 ns     58093785
BM_MatrixMatrixMultiplyEigen_Static_4x4x4                 24.9 ns         24.9 ns     28540133
BM_MatrixMatrixMultiplyEigen_Static_8x8x8                  258 ns          258 ns      2755921
BM_MatrixMatrixMultiplyEigen_Static_9x9x3                  255 ns          255 ns      2778628
BM_MatrixMatrixMultiplyEigen_Static_9x3x3                 37.7 ns         37.7 ns     18556359
BM_MatrixMatrixMultiplyEigen_Static_3x9x9                  220 ns          220 ns      3195163
BM_MatrixMatrixMultiplyEigen_Dynamic_2x3x4                37.8 ns         37.7 ns     18491162
BM_MatrixMatrixMultiplyEigen_Dynamic_3x3x3                48.8 ns         48.8 ns     13724884
BM_MatrixMatrixMultiplyEigen_Dynamic_4x4x4                74.5 ns         74.5 ns      9313146
BM_MatrixMatrixMultiplyEigen_Dynamic_8x8x8                 271 ns          271 ns      2595807
BM_MatrixMatrixMultiplyEigen_Dynamic_9x9x3                 259 ns          259 ns      2688515
BM_MatrixMatrixMultiplyEigen_Dynamic_9x3x3                 123 ns          123 ns      5792115
BM_MatrixMatrixMultiplyEigen_Dynamic_3x9x9                 236 ns          236 ns      2963896
BM_MatrixMatrixMultiplyNaive_Static_2x3x4                 12.2 ns         12.2 ns     56472772
BM_MatrixMatrixMultiplyNaive_Static_3x3x3                 15.5 ns         15.5 ns     44346456
BM_MatrixMatrixMultiplyNaive_Static_4x4x4                 41.5 ns         41.5 ns     17196984
BM_MatrixMatrixMultiplyNaive_Static_8x8x8                  199 ns          199 ns      3561730
BM_MatrixMatrixMultiplyNaive_Static_9x9x3                  148 ns          148 ns      4764814
BM_MatrixMatrixMultiplyNaive_Static_9x3x3                 38.4 ns         38.4 ns     17259019
BM_MatrixMatrixMultiplyNaive_Static_3x9x9                  115 ns          115 ns      6104752
BM_MatrixMatrixMultiplyNaive_Dynamic_2x3x4                9.66 ns         9.66 ns     74722971
BM_MatrixMatrixMultiplyNaive_Dynamic_3x3x3                13.0 ns         13.0 ns     53435308
BM_MatrixMatrixMultiplyNaive_Dynamic_4x4x4                47.8 ns         47.8 ns     14358184
BM_MatrixMatrixMultiplyNaive_Dynamic_8x8x8                 200 ns          200 ns      3572809
BM_MatrixMatrixMultiplyNaive_Dynamic_9x9x3                 104 ns          104 ns      6793797
BM_MatrixMatrixMultiplyNaive_Dynamic_9x3x3                34.0 ns         34.0 ns     20790695
BM_MatrixMatrixMultiplyNaive_Dynamic_3x9x9                 130 ns          130 ns      5170402
BM_MatrixTransposeMatrixMultiplyEigen_Static_2x3x4        10.3 ns         10.3 ns     69105234
BM_MatrixTransposeMatrixMultiplyEigen_Static_3x3x3        28.9 ns         28.9 ns     24478934
BM_MatrixTransposeMatrixMultiplyEigen_Static_4x4x4        23.7 ns         23.7 ns     29351926
BM_MatrixTransposeMatrixMultiplyEigen_Static_8x8x8         233 ns          233 ns      2929398
BM_MatrixTransposeMatrixMultiplyEigen_Static_9x9x3         211 ns          211 ns      3287409
BM_MatrixTransposeMatrixMultiplyEigen_Static_9x3x3        26.5 ns         26.5 ns     26515136
BM_MatrixTransposeMatrixMultiplyEigen_Static_3x9x9         196 ns          196 ns      3594314
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_2x3x4       9.05 ns         9.05 ns     77621001
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_3x3x3       11.1 ns         11.1 ns     62227812
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_4x4x4       25.5 ns         25.5 ns     27356089
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_8x8x8        248 ns          248 ns      2834983
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_9x9x3        229 ns          229 ns      3082369
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_9x3x3       28.4 ns         28.4 ns     24318629
BM_MatrixTransposeMatrixMultiplyEigen_Dynamic_3x9x9        229 ns          229 ns      3091288
BM_MatrixTransposeMatrixMultiplyNaive_Static_2x3x4        11.0 ns         11.0 ns     63773538
BM_MatrixTransposeMatrixMultiplyNaive_Static_3x3x3        19.1 ns         19.1 ns     37003139
BM_MatrixTransposeMatrixMultiplyNaive_Static_4x4x4        49.1 ns         49.1 ns     14142301
BM_MatrixTransposeMatrixMultiplyNaive_Static_8x8x8         244 ns          244 ns      2874755
BM_MatrixTransposeMatrixMultiplyNaive_Static_9x9x3         140 ns          140 ns      4992156
BM_MatrixTransposeMatrixMultiplyNaive_Static_9x3x3        46.2 ns         46.2 ns     15068317
BM_MatrixTransposeMatrixMultiplyNaive_Static_3x9x9         112 ns          112 ns      6213574
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_2x3x4       9.74 ns         9.74 ns     72155001
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_3x3x3       11.5 ns         11.5 ns     60070577
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_4x4x4       52.5 ns         52.5 ns     13473642
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_8x8x8        224 ns          224 ns      3124264
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_9x9x3       98.0 ns         98.0 ns      7199292
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_9x3x3       34.7 ns         34.6 ns     20203685
BM_MatrixTransposeMatrixMultiplyNaive_Dynamic_3x9x9        105 ns          105 ns      6653151

Change-Id: Iee403b4d27801d1614ecc1f78a1f8c0011514bd7
2021-08-09 21:24:17 -07:00
Alexander Karatarakis dc20db3032 [docs] Fix IterationSummary section. Add missing IterationCallback
Change-Id: I1d10201cd927003fd3d46728d13231d3fbc27f96
2021-08-09 16:29:29 -07:00
Alexander Karatarakis 90ba7d1ef4 [docs] Fix typos
Change-Id: I447bd63b58a7bfc7c1df36dbef5dcba454d28256
2021-08-09 16:29:23 -07:00
Ahmed Taei c3129c3d4a Fix tests not executing
- The operator() wasn't called and tests where not executed.
- Fill test matrices with non-constant data.

Change-Id: Iacc9e8cb47d8539aded05bb821d3ce2f08a740d6
2021-08-03 14:04:01 -07:00
Sumit Dey 7de561e8e8 Fix dependency check for building documentation
Build with documentation fails if the required 'sphinx rtd theme' is
not available. Check if dependency is installed before building with
documentation.

Add Python3 as requirement for building documentation.

Change-Id: I5edc5d7374864990e625a5efb358f5a23b3c50fe
2021-07-31 12:21:16 +02:00
Ahmed Taei 4fbe218f24 Refactor small_blas_test
- Add testMatrix{Transpose}MatrixMultiply size
  templated functions and test multiple problem
  sizes.
- Removes duplicated code for matrix{transpose}-
  matrix{naive} test cases

Change-Id: I9a5d4b0362732ea7bef58572edcaada778fb4aa0
2021-07-30 13:18:18 -07:00
Sameer Agarwal 3fdde8ede0 Remove an errant double link.
Thanks to TimonKnigge@

Change-Id: If5d77d9fe456991169ed70f12839af028755fc4f
2021-07-16 06:26:09 -07:00
Noah Snavely 20ad431f77 Fixing a typo in the version history
Change-Id: Ib0b344112373dd947cedd70808f02f573bf60bc8
2021-07-13 22:25:42 -04:00
Alexander Karatarakis 0c85c40923 Revert "Reduce copies involved in Jet operations"
This reverts commit c036c78196.

Change-Id: I736f2141d041e7a2c21491a159b48c5565df2bfa
2021-07-01 22:55:31 -07:00
Dmitriy Korchemkin 3a02d5aaf4 Fix typo in LossFunctionWrapper sample code
Change-Id: Ideb47fe8d36b023ea13cf2c23b92871bea54fe58
2021-06-24 19:04:20 +03:00
Alexander Karatarakis 7b2c223be7 Add fmax/fmin overloads for scalars
Comparison operators are defined for Jet-scalar and scalar-Jet.
Add corresponding overloads for fmax and fmix so users
don't have to convert to Jet only to access these functions,
plus it can potentially save an unnecessary conversion.

Change-Id: I20cc2d5874935e019d4ecb2d6a8c2ae631c8a4d3
2021-06-23 13:40:58 -07:00
Alexander Karatarakis c036c78196 Reduce copies involved in Jet operations
- Avoid copies in compound assignment operators (+=, -=, *=, /=)
- Add r-value overloads to +,-,*./ operators

Addition<3>/1000                                  +0.0382         +0.0382          2798          2905          2798          2905
Addition<10>/1000                                 -0.0009         -0.0009          4831          4827          4831          4827
Addition<15>/1000                                 -0.0011         -0.0010          8005          7996          8005          7996
Addition<25>/1000                                 +0.0014         +0.0014         13951         13970         13951         13970
Addition<32>/1000                                 +0.0010         +0.0009         13638         13651         13638         13651
Addition<200>/160                                 -0.1732         -0.1732         40301         33321         40300         33320
AdditionScalar<3>/1000                            +0.0016         +0.0016          2493          2497          2493          2497
AdditionScalar<10>/1000                           +0.0060         +0.0060          2701          2718          2701          2717
AdditionScalar<15>/1000                           -0.0024         -0.0024          2598          2592          2598          2592
AdditionScalar<25>/1000                           -0.0038         -0.0038          3730          3716          3730          3716
AdditionScalar<32>/1000                           +0.0062         +0.0062          4137          4162          4137          4162
AdditionScalar<200>/160                           -0.5626         -0.5626         19355          8466         19355          8466
Subtraction<3>/1000                               -0.0011         -0.0012          3162          3158          3162          3158
Subtraction<10>/1000                              -0.0027         -0.0026          4982          4969          4982          4969
Subtraction<15>/1000                              -0.0112         -0.0112          7820          7733          7820          7733
Subtraction<25>/1000                              +0.0181         +0.0181         13088         13325         13088         13325
Subtraction<32>/1000                              -0.0007         -0.0007         14514         14505         14514         14504
Subtraction<200>/160                              -0.1668         -0.1668         44586         37148         44586         37147
SubtractionScalar<3>/1000                         -0.0028         -0.0028          2540          2533          2540          2533
SubtractionScalar<10>/1000                        -0.0024         -0.0024          2682          2676          2682          2676
SubtractionScalar<15>/1000                        -0.0023         -0.0023          2603          2597          2603          2597
SubtractionScalar<25>/1000                        -0.0018         -0.0018          3570          3563          3570          3563
SubtractionScalar<32>/1000                        -0.0012         -0.0012          4223          4218          4223          4218
SubtractionScalar<200>/160                        -0.5070         -0.5070         20375         10044         20375         10044
Multiplication<3>/1000                            -0.0543         -0.0544          6171          5836          6172          5836
Multiplication<10>/1000                           -0.0617         -0.0617         11860         11128         11860         11128
Multiplication<15>/1000                           -0.0106         -0.0106         17456         17271         17456         17271
Multiplication<25>/1000                           -0.0114         -0.0114         27204         26893         27204         26893
Multiplication<32>/1000                           -0.0125         -0.0125         32704         32293         32703         32293
Multiplication<200>/160                           -0.3849         -0.3849         60557         37246         60557         37246
MultiplicationLeftScalar<3>/1000                  +0.0005         +0.0005          3086          3088          3086          3088
MultiplicationLeftScalar<10>/1000                 -0.0008         -0.0008          4486          4483          4486          4483
MultiplicationLeftScalar<15>/1000                 -0.0010         -0.0010          5840          5834          5840          5834
MultiplicationLeftScalar<25>/1000                 -0.0047         -0.0047         11350         11297         11350         11298
MultiplicationLeftScalar<32>/1000                 -0.0014         -0.0014         13892         13873         13892         13873
MultiplicationLeftScalar<200>/160                 -0.2646         -0.2646         28124         20682         28124         20682
MultiplicationRightScalar<3>/1000                 +0.0024         +0.0025          3090          3098          3090          3098
MultiplicationRightScalar<10>/1000                +0.0008         +0.0009          4596          4600          4596          4600
MultiplicationRightScalar<15>/1000                -0.0033         -0.0033          5832          5812          5832          5812
MultiplicationRightScalar<25>/1000                -0.0005         -0.0005         11353         11347         11353         11347
MultiplicationRightScalar<32>/1000                +0.0043         +0.0043         14041         14102         14041         14102
MultiplicationRightScalar<200>/160                -0.2600         -0.2600         28104         20796         28104         20796
Division<3>/1000                                  -0.0006         -0.0006          8977          8972          8977          8972
Division<10>/1000                                 -0.0095         -0.0095         14613         14474         14613         14473
Division<15>/1000                                 -0.0081         -0.0081         23109         22922         23108         22922
Division<25>/1000                                 -0.0081         -0.0081         37292         36992         37292         36992
Division<32>/1000                                 -0.0234         -0.0234         41693         40718         41692         40717
Division<200>/160                                 -0.1306         -0.1306         44486         38677         44486         38677
DivisionLeftScalar<3>/1000                        -0.0080         -0.0080          6683          6630          6683          6630
DivisionLeftScalar<10>/1000                       -0.0018         -0.0018          9255          9239          9255          9238
DivisionLeftScalar<15>/1000                       -0.0011         -0.0011         12180         12166         12180         12166
DivisionLeftScalar<25>/1000                       +0.0060         +0.0060         22381         22515         22381         22516
DivisionLeftScalar<32>/1000                       -0.0016         -0.0016         20159         20126         20159         20126
DivisionLeftScalar<200>/160                       -0.2528         -0.2528         28773         21499         28772         21499
DivisionRightScalar<3>/1000                       -0.0006         -0.0006          3784          3782          3784          3782
DivisionRightScalar<10>/1000                      -0.0014         -0.0014          5699          5691          5699          5691
DivisionRightScalar<15>/1000                      -0.0009         -0.0009          7490          7484          7490          7484
DivisionRightScalar<25>/1000                      +0.0031         +0.0031         13751         13793         13751         13793
DivisionRightScalar<32>/1000                      -0.0006         -0.0006         16712         16702         16712         16702
DivisionRightScalar<200>/160                      -0.2532         -0.2532         28412         21217         28411         21217
MultiplyAndAdd<3>/1000                            -0.0191         -0.0191          4382          4299          4382          4299
MultiplyAndAdd<10>/1000                           -0.0060         -0.0060         10238         10176         10238         10176
MultiplyAndAdd<15>/1000                           -0.0053         -0.0053         11696         11634         11696         11634
MultiplyAndAdd<25>/1000                           -0.0171         -0.0171         19185         18858         19185         18858
MultiplyAndAdd<32>/1000                           +0.0070         +0.0070         23783         23951         23783         23951
MultiplyAndAdd<200>/160                           -0.1252         -0.1252         61470         53776         61469         53776

Change-Id: Ib366d5753ed4f398667766384e05389d45e0d444
2021-06-18 15:04:17 -07:00
Alexander Karatarakis 51945e0619 Introduce benchmark for Jet operations
Run on (20 X 4300 MHz CPU s)
CPU Caches:
L1 Data 32 KiB (x10)
L1 Instruction 32 KiB (x10)
L2 Unified 1024 KiB (x10)
L3 Unified 14080 KiB (x1)
Load Average: 2.37, 3.00, 3.08
-----------------------------------------------------------------------------
Benchmark                                   Time             CPU   Iterations
-----------------------------------------------------------------------------
Addition<3>/1000                         2872 ns         2872 ns       240449
Addition<10>/1000                        5304 ns         5304 ns       100000
Addition<15>/1000                        8211 ns         8210 ns        78742
Addition<25>/1000                       14214 ns        14213 ns        46762
Addition<32>/1000                       13746 ns        13746 ns        50892
Addition<200>/160                       41228 ns        41228 ns        17183
AdditionScalar<3>/1000                   2514 ns         2514 ns       273996
AdditionScalar<10>/1000                  2733 ns         2733 ns       255508
AdditionScalar<15>/1000                  2622 ns         2622 ns       264291
AdditionScalar<25>/1000                  3753 ns         3753 ns       183508
AdditionScalar<32>/1000                  4254 ns         4254 ns       167016
AdditionScalar<200>/160                 18314 ns        18314 ns        38116
Subtraction<3>/1000                      3241 ns         3241 ns       206370
Subtraction<10>/1000                     5023 ns         5023 ns       139271
Subtraction<15>/1000                     8387 ns         8386 ns        89927
Subtraction<25>/1000                    14951 ns        14950 ns        48756
Subtraction<32>/1000                    14587 ns        14587 ns        47056
Subtraction<200>/160                    47175 ns        47175 ns        15574
SubtractionScalar<3>/1000                2572 ns         2572 ns       264468
SubtractionScalar<10>/1000               2713 ns         2713 ns       257920
SubtractionScalar<15>/1000               2621 ns         2621 ns       265289
SubtractionScalar<25>/1000               3593 ns         3593 ns       192266
SubtractionScalar<32>/1000               4255 ns         4255 ns       163738
SubtractionScalar<200>/160              19906 ns        19906 ns        35295
Multiplication<3>/1000                   6058 ns         6058 ns       114067
Multiplication<10>/1000                 11999 ns        11999 ns        58492
Multiplication<15>/1000                 17906 ns        17905 ns        39565
Multiplication<25>/1000                 27361 ns        27360 ns        25335
Multiplication<32>/1000                 33074 ns        33074 ns        20875
Multiplication<200>/160                 61364 ns        61362 ns        11542
MultiplicationLeftScalar<3>/1000         3104 ns         3104 ns       223720
MultiplicationLeftScalar<10>/1000        4549 ns         4549 ns       154366
MultiplicationLeftScalar<15>/1000        5921 ns         5921 ns       119294
MultiplicationLeftScalar<25>/1000       11429 ns        11428 ns        61685
MultiplicationLeftScalar<32>/1000       14094 ns        14094 ns        49941
MultiplicationLeftScalar<200>/160       28186 ns        28185 ns        24484
MultiplicationRightScalar<3>/1000        3110 ns         3110 ns       223333
MultiplicationRightScalar<10>/1000       4655 ns         4655 ns       150534
MultiplicationRightScalar<15>/1000       5890 ns         5890 ns       119746
MultiplicationRightScalar<25>/1000      11464 ns        11464 ns        61483
MultiplicationRightScalar<32>/1000      14243 ns        14242 ns        49492
MultiplicationRightScalar<200>/160      28282 ns        28281 ns        24604
Division<3>/1000                         9128 ns         9128 ns        77846
Division<10>/1000                       14811 ns        14811 ns        47682
Division<15>/1000                       23293 ns        23292 ns        30091
Division<25>/1000                       37313 ns        37313 ns        18608
Division<32>/1000                       41229 ns        41229 ns        16982
Division<200>/160                       44802 ns        44802 ns        15573
DivisionLeftScalar<3>/1000               6720 ns         6720 ns       104747
DivisionLeftScalar<10>/1000              9403 ns         9402 ns        75216
DivisionLeftScalar<15>/1000             12313 ns        12313 ns        57366
DivisionLeftScalar<25>/1000             22739 ns        22739 ns        30421
DivisionLeftScalar<32>/1000             20321 ns        20321 ns        34191
DivisionLeftScalar<200>/160             29018 ns        29017 ns        23908
DivisionRightScalar<3>/1000              3815 ns         3815 ns       182333
DivisionRightScalar<10>/1000             5750 ns         5750 ns       121691
DivisionRightScalar<15>/1000             7574 ns         7574 ns        92994
DivisionRightScalar<25>/1000            13953 ns        13953 ns        49250
DivisionRightScalar<32>/1000            16892 ns        16892 ns        41668
DivisionRightScalar<200>/160            28663 ns        28662 ns        24226
MultiplyAndAdd<3>/1000                   4399 ns         4399 ns       158635
MultiplyAndAdd<10>/1000                 10453 ns        10453 ns        68112
MultiplyAndAdd<15>/1000                 11830 ns        11830 ns        59598
MultiplyAndAdd<25>/1000                 19624 ns        19624 ns        36240
MultiplyAndAdd<32>/1000                 25539 ns        25538 ns        29066
MultiplyAndAdd<200>/160                 65362 ns        65358 ns        11086

Change-Id: Ie62492b3fd19ff9d3394f90bd00f0aa01522fc2a
2021-06-16 16:17:52 -07:00
Fuhao Shi ec4f2995bb Do not check MaxNumThreadsAvailable if the thread number is set to 1.
- this saves the sysfs cost in MaxNumThreadsAvailable.

Change-Id: I6b33ceae363da19346341be95abbd89d7b7b0f2f
2021-03-24 22:16:45 +00:00
Sameer Agarwal 98f639f542 Add a macro CERES_GET_FLAG.
This is needed to add a layer of indirection which will allow
us to use gflags in the public version and absl inside Google.

Change-Id: I32f3da23200a01c9b658bbf8aaa66cb8fddc2cc3
2021-03-18 11:07:57 -07:00
Daniel Henell 766f2cab55 Reduce log spam in covariance_impl.cc.
Make the rank deficiency warning in the covariance module a VLOG(1) instead of
LOG(ERROR) since this is a commonly occuring case.

Change-Id: Id46eba6dcf9afbaf0554c2d6f230b2af7a1fbdea
2021-03-17 13:55:00 +00:00
Alex Stewart 941ea13475 Fix FindTBB version detection with TBB >= 2021.1.1
- Raised as issue #669

Change-Id: Ic2fcaf31aef5e303d19a9caef7d6c679325f554a
2021-03-15 14:17:59 +00:00
Florian Berchtold 323c350a66 fix Eigen3_VERSION
Change-Id: Ida3796ec9d5732b284973dbbf0a395f9c5b19a7b
2021-03-03 19:30:08 +01:00
Sameer Agarwal 2b32b32124 Revert "Group specializations into groups of four"
This reverts commit 4ba244cdbc.

Reason for revert: This commit causes CI failures.

Change-Id: I954f2b8f093e39e3b52ca91b331591b73e646554
2021-02-17 18:38:43 +00:00
Tobias Schlüter 313caf1aec Allow Unity build.
Two parts:
- missing include guard in solver_utils.h
- exclude schur_specializations from unity build.  This
  can only be done with cmake >= 3.16, so only allow
  unity build for these versions.

Cuts build time by 5 minutes with default settings.
libceres.a shrinks from 7549968 bytes to 7009696 bytes.

Change-Id: I833ac8266623da0e725cc2f07a6415b4fa72bc18
2021-02-16 08:30:36 +09:00
Tobias Schlüter 4ba244cdbc Group specializations into groups of four
Genrerate the specialization files by grouping the specializations into
five groups, cutting build time by three minutes (roughly 20%) in my
tests.

Change-Id: Ifd6a4523a47346c5e84c1cda15b7abba60d8e953
2021-02-12 19:56:53 +09:00
Tobias Schlüter d77a8100a3 Make miniglog's InitGoogleLogging argument const.
This is in line with glog.  Also, the argument is unused.  Third try.

Change-Id: I23331ae26089956454d66ab9e93fc04d4b24ed2e
2021-02-08 00:56:02 +00:00
Tobias Schlüter 8637249945 Use portable expression for constant 2/sqrt(pi)
M_2_SQRTPI is not part of standard C++, replace it with an
equivalent expression.  gcc immediately folds this and thus
generates the same code even at -O0.

Change-Id: I5d38e67a4508c1d43a1a8e5f1639f2243cdb143e
2021-01-30 23:19:07 +09:00
Sameer Agarwal 97873ea658 Add some missing includes for glog/logging.h
Change-Id: Ia10c2809eb360bd30efddc0cd941b0de06ac09d6
2021-01-21 13:49:38 -08:00
Sameer Agarwal d15b1bcd3e Increase tolerance in small_blas_test.cc
Change-Id: I7b8460bec65e56029d01c293e83743e99a57d10c
2021-01-12 09:15:05 -08:00
Austin Schuh 17cf018314 Hide 'format not a string literal' error in examples
Change-Id: Ieb3d24438f1c5ec46d3a1de049e63c65ae2ed312
2021-01-04 22:58:20 +00:00
Austin Schuh 64029909b3 Fix -Wno-maybe-uninitialized error
One of my compilers couldn't deduce that Chunk was assigned before being
used based on the context.  Make it more obvious...

Change-Id: I1e331c6c02a2783eff8db03c6359823ac3c46686
2021-01-04 14:44:49 -08:00
Austin Schuh 21294123d7 Fix nonnull arg compared to NULL error.
external/com_google_ceres_solver/internal/ceres/rotation_test.cc: In member function 'bool ceres::internal::IsNormalizedQuaternionMatcher::gmock_Impl<arg_type>::MatchAndExplain(typename testing::internal::ConstRef<arg_type>::type, testing::MatchResultListener*) const [with arg_type = const double (&)[4]]':
external/com_google_ceres_solver/internal/ceres/rotation_test.cc:74:3: error: nonnull argument 'arg' compared to NULL [-Werror=nonnull-compare]
   if (arg == NULL) {
   ^~

Change-Id: I21abd87e97e44188580f4926b3700dc321fecb0e
2021-01-04 14:44:11 -08:00
Austin Schuh 1dd4174109 Fix -Wno-format-nonliteral
GCC doesn't like printf formats which aren't char strings.

Change-Id: I41464ba336076b892d893a5729611488c159f01d
2021-01-04 14:40:44 -08:00
Austin Schuh 6c106bf510 Fix -Wmissing-field-initializers error
Clang was complaining that fields were uninitialized.

Change-Id: Iff76fb2ebf823eb072465c0b0381a4a5cdee0fa9
2020-12-23 22:50:28 -08:00
Austin Schuh c48a327927 Use cc_binary includes so examples build as external repo
When the examples are built from an external repo, the -I flag doesn't
point anywhere useful.  Bazel has an includes option to handle this, so
just use that instead.

Change-Id: Ic768bd60c547948959912193765d4097ec0adf8c
2020-12-23 22:37:59 -08:00
Austin Schuh e0e14a5cdb Fix errors found by -Werror
"'const' type qualifier on return type has no effect" is one of the
errors, and an unused parameter for another.

Change-Id: Ib4bc245d992c1fc1bea0b25d5396871ca1df8411
2020-12-23 22:37:54 -08:00
Sameer Agarwal e84cf10e13 Fix an errant double in TinySolver.
Thanks to Bogdan Burlacu for pointing this out.

Change-Id: I7a59a589c1bf919954e4905df3376e9aeb1a12d7
2020-12-14 08:55:05 -08:00
Mykyta Kozlov 66b4c33e81 updated unit quaternion rotation
Change-Id: I3e5a2ca8e19c1d66437ac16d615867e2a12f8e60
2020-11-18 17:00:13 +00:00
Sameer Agarwal d45ec47b58 Fix a typo in schur_eliminator.h
Change-Id: Ib2c6ea9598d49ee77e2f0429686045cf58cd8574
2020-11-18 08:59:06 -08:00
Alex Stewart 399cda7730 Update build documentation to reflect detection of Eigen via config mode
Change-Id: I18d5f0fc1eb51ea630164c911d935e9bffea35ce
2.0.0
2020-10-23 19:36:08 +01:00
Sameer Agarwal bb127272f9 Fix typos.
Contributed by Ishamis@, IanBoyanZhang@, gkrobner@ & mithunjacob@.

Change-Id: Iab3c19a07a6f3db2486e3557dcb55bfe5de2aee5
2020-10-19 09:32:47 -07:00
Sameer Agarwal a0ec5c32af Update version history for 2.0.0RC2
Change-Id: I75b7515fbf9880bd8eaea6ecd5e72ce1ae4a3a86
2.0.0rc2
2020-10-18 15:20:36 -07:00
Taylor Braun-Jones 3f6d273676 Unify symbol visibility configuration for all compilers
This makes it possible to build unit tests with shared libraries on MSVC.

Change-Id: I1db66a80b2c78c4f3d354e35235244d17bac9809
2020-10-15 16:56:07 -04:00
Sameer Agarwal 29c2912ee6 Unbreak the bazel build some more
Change-Id: I6bbf3df977a473b9b5e16a9e59da5f535f8cdc24
2020-10-13 12:07:06 -07:00
Sameer Agarwal bf47e1a368 Fix the Bazel build.
1. Fix the path to eigen, now that it uses gitlab instead of bitbucket.
2. Remove an unrecognized compiler option.
3. Remove an obsolete benchmark.

This CL only unbreaks the build, it is likely that it is still not
at par with the cmake build.

https://github.com/ceres-solver/ceres-solver/issues/628

Change-Id: I470209cbb48b6a4f499564a86b52436e0c8d98ef
2020-10-13 10:01:57 -07:00
Nikolaus Demmel 600e8c529e fix minor typos
all timing values in the summary are initialized to -1, so the one
+1 is likely an oversight.

Change-Id: Ie355f3b7da08a56d49d19ca9a5bc48fe5581dee3
2020-10-12 23:01:02 +02:00