commit d2a5195b512164fec286c6a52b40d7766977caa3 Author: Sameer Agarwal Date: Sun Feb 24 15:09:17 2013 -0800 Version history update. Change-Id: I477ec05a78ca4cd735a525253c9b6adfa3bddea7 commit 2160c5b757c44206c6face6ca62d381f1db7a291 Author: Sameer Agarwal Date: Sun Feb 24 14:15:45 2013 -0800 Minor release script fixes. Change-Id: Ifd0a7f4f584c85d4d9574eca46094b372a8d7aff commit b53c9667f508c125b8aa833e7a063fa44ef8a98e Author: Sergey Sharybin Date: Mon Feb 25 01:14:26 2013 +0600 Solve No Previous Prototype GCC warning In some cases there were missing includes of own header files from implementation files. In other cases moved function which are only used within single file into an anonymous namespace. Change-Id: I2c6b411bcfbc521e2a5f21265dc8e009a548b1c8 commit 267ccc45a3e875bf87832a8ad615be690b4926d3 Author: Sergey Sharybin Date: Mon Feb 25 01:04:16 2013 +0600 Fix for MinGW build on Windows GG_LONGLONG and GG_ULONGLONG shall use LL and ULL suffixes, since MinGW is actuall a GCC compiler. Solved by checking whether compilation happens with MinGW or not using standard MinGW's __MINGW32__ and __MINGW64__ definitions. Change-Id: I789b34f6342a56ba42f4b280f7242700022ab7a1 commit 509f68cfe3fd13b794c4e67ff38c761407c858cf Author: Sameer Agarwal Date: Wed Feb 20 01:39:03 2013 -0800 Problem::Evaluate implementation. 1. Add Problem::Evaluate and tests. 2. Remove Solver::Summary::initial/final_* 3. Remove Solver::Options::return_* members. 4. Various cpplint cleanups. Change-Id: I4266de53489896f72d9c6798c5efde6748d68a47 commit d4a0bf86d688d1b68e00ff302858de5a4e0d9727 Author: Keir Mierle Date: Sun Feb 24 10:35:44 2013 -0800 Fix threading build on Windows. On Windows, including the "windows.h" header defines an enormous number of symbols; some of which are macros with common names. In particular, "ERROR" and "min" and "max" get defined. This causes clashes when user code references these names in a context other than the intended use in windows.h. To deal with this, the Microsoft engineers added the ability to control the definition of these symbols by adding extra defines. In particular, including windows.h in the following way #define NOGDI #define NOMINMAX will reduce the number of macros defined. This way they will not conflict with other uses in Ceres. For example, numeric_limits::max() is impossible to call without defining NOMINMAX. Change-Id: I166f5d3bb6dc0e2e4b2ebf800fb19e49206f7874 commit beb4505311011130a7e54632137b0fbb5824cc9b Author: Sameer Agarwal Date: Fri Feb 22 13:37:01 2013 -0800 Minor fixes Based on William Rucklidge's review, including a nasty bug in parameter block removal. Change-Id: I3a692e589f600ff560ecae9fa85bb0b76063d403 commit 9a88bd7c4b40e2a1e0cd9b0dc09a3517c467e04e Author: Sameer Agarwal Date: Tue Feb 19 13:09:12 2013 -0800 Minor bug fixes Change-Id: I94e4521adf76a6c77db954c4a8955168e9d37b55 commit 956ed7e8f2054623615e6ae3601055d613897f26 Author: Sameer Agarwal Date: Tue Feb 19 07:06:15 2013 -0800 Various minor fixes. 1. Unused variable warnings and fixes. 2. Minor documentation update. Change-Id: I815588a5806df1030a7c8750f4fb594c503f8998 commit 3e2c4ef9ad35e94198f4f3367b99fd91e26996a1 Author: Keir Mierle Date: Sun Feb 17 12:37:55 2013 -0800 Add adapters for column/row-major matrices to rotation.h This patch introduces a matrix wrapper (MatrixAdapter) that allows to transparently pass pointers to row-major or column-major matrices to the conversion functions. Change-Id: I7f1683a8722088cffcc542f593ce7eb46fca109b commit 04938efe4bedec112083c5ceb227ba004f96bd01 Author: Keir Mierle Date: Sun Feb 17 12:37:55 2013 -0800 Add support for removing parameter and residual blocks. This adds support for removing parameter and residual blocks. There are two modes of operation: in the first, removals of paremeter blocks are expensive, since each remove requires scanning all residual blocks to find ones that depend on the removed parameter. In the other, extra memory is sacrificed to maintain a list of the residuals a parameter block depends on, removing the need to scan. In both cases, removing residual blocks is fast. As a caveat, any removals destroys the ordering of the parameters, so the residuals or jacobian returned from Solver::Solve() is meaningless. There is some debate on the best way to handle this; the details remain for a future change. This also adds some overhead, even in the case that fast removals are not requested: - 1 int32 to each residual, to track its position in the program. - 1 pointer to each parameter, to store the dependent residuals. Change-Id: I71dcac8656679329a15ee7fc12c0df07030c12af commit fa21df8cd969bb257b87c9ef7c0147d8d5ea8725 Author: Sameer Agarwal Date: Mon Feb 18 08:48:52 2013 -0800 Add script for building documentation. Update make_release Minor documentation fixes. Change-Id: I1248ec3f58be66b5929aee6f2aa392c15d53ed83 commit 290b975d1d4eba44205bbeb0fa6b3ce8a6fa4a0c Author: Sameer Agarwal Date: Sun Feb 17 16:50:37 2013 -0800 Preconditioner refactoring. 1. Added a Preconditioner interface. 2. SCHUR_JACOBI is now its own class and is independent of SuiteSparse. Change-Id: Id912ab19cf3736e61d1b90ddaf5bfba33e877ec4 commit d010de543530001fa917501a13ba02879c8ea52f Author: Sameer Agarwal Date: Fri Feb 15 14:26:56 2013 -0800 Solver::Summary::FullReport() supports line search now. Change-Id: Ib08d300198b85d9732cfb5785af4235ca4bd5226 commit fbbea464d1c9575d8224220d3e61f92d93fe9739 Author: Sameer Agarwal Date: Fri Feb 15 11:25:03 2013 -0800 Update documentation. Change-Id: Idb03741fab9facbbbda85d5a82723f0b4c1c6c60 commit 8e1f83c4c457fb7238eb342eab744c5570b73c4d Author: Sameer Agarwal Date: Fri Feb 15 08:35:40 2013 -0800 Speed up Problem construction and destruction. Change-Id: I3147b0b60eedf40f8453d5a39ff04a572c445a2f commit efb47f39c31f0ef1bb9c015c8c0d114153df6379 Author: Sameer Agarwal Date: Thu Feb 14 19:44:11 2013 -0800 Documentation update Change-Id: I0fec43bff4fe0ea6cd2d2a8b34dac2330a517da0 commit be418a336cae5672111e0f6989e6d8d6c1fa24a6 Author: Markus Moll Date: Fri Feb 15 17:19:28 2013 +0100 Fix evaluation of initial cost and corresponding test Commit f102a68e411d11b4864e17b69a2d781e9c2692ad seems to have introduced a bug in both solver_impl.cc and solver_impl_test.cc solver_impl_test showed 3 errors, where two were due to ceres NOT failing when the test expected that, and one was due to the initial cost being wrong (-1 instead of 0.5) Ceres now does not attempt to evaluate the initial cost if options.return_initial_xxx is not set. It therefore did not fail in the tests. It also seems that the CERES_EVALUATE macro erroneously always sets final_cost, even when called with 'initial' as argument. Change-Id: Ia3c3eeb476e7023a3f80b201124010d6c67e9824 commit 974513a41ff1ddc671d3dc6aa09ce708bbe447da Author: Sameer Agarwal Date: Tue Feb 12 14:22:40 2013 -0800 Bug fix in DynamicAutoDiffCostFunction Add handling of constant parameter blocks. Change-Id: I8b2ea79f47e190604fc4bed27705798240689f71 commit 3130b3cea4028c71d9ae18b7465d7627f29fef7d Author: Keir Mierle Date: Mon Feb 11 19:39:29 2013 -0800 Add support for dynamic autodiff Change-Id: I17d573696172ab691a9653db99a620e4bc1bd0d0 commit c58e6dc3ea550302c8151003b17e9bc2a1acc316 Author: Sameer Agarwal Date: Mon Feb 11 16:41:06 2013 -0800 More refined event logging in solver_impl.cc Change-Id: Ie3061c921c006d2600d16185c690f52ccf816f68 commit f102a68e411d11b4864e17b69a2d781e9c2692ad Author: Sameer Agarwal Date: Mon Feb 11 15:08:40 2013 -0800 Remove extraneous initial and final evals. Change-Id: I80ed87435f399cbf452c68be7ea1e7139696aa4a commit 0593747ee09e21a9c0a2b604d51e21a6cdd21315 Author: Sameer Agarwal Date: Mon Feb 11 13:57:12 2013 -0800 Fix a memory leak in cxsparse.cc Thanks to Alexander Mordvintsev for reporting it. Change-Id: Ia872be42ce80209e46722fc16a928496cf97e256 commit 0abfb8f46f534b05413bb4d64b960d6fd0a9befb Author: Sameer Agarwal Date: Mon Feb 11 13:40:04 2013 -0800 Delete the tex documentation. Change-Id: I15c78a8b33c5fd94941238814ac023a8fb251a20 commit 085cd4a6641c404334d17e5ea38f9e5b68a06ba7 Author: Sameer Agarwal Date: Wed Feb 6 14:31:07 2013 -0800 Rewrite of the tutorial. 1. Quicker starting point. 2. Better discussion of derivatives. 3. Better hyperlinking to code and class documentation. 4. New robust estimation example. 5. Better naming of example code. 6. Removed dependency on gflags in all the core examples covered in the tutorial. Change-Id: Ibf3c7fe946fa2b4d22f8916a9366df267d34ca26 commit c0fdc9753909fc37fed2cb5e0fcc02fc65789d68 Author: Sameer Agarwal Date: Wed Feb 6 14:31:07 2013 -0800 Update nist.cc to better evaluate results. Ceres beats Minpack and HBN handily. Change-Id: I7df8a47b753202ed0b53ab128ce48466bf9f8083 commit d91b671798125fd4889914d92a29cf0f7a5fef21 Author: Sameer Agarwal Date: Wed Feb 6 01:08:40 2013 -0800 More small changes More small changes to the docs. 1. Better landing page. 2. Minor tweaks to the side bar. 3. Reference to more example code. 4. Local MathJax references. Change-Id: I39b9436dc2803732a875bbbee7f15802c4934031 commit 42a84b87fa5cc34551244a3b2b6a3e1f13a29514 Author: Sameer Agarwal Date: Fri Feb 1 12:22:53 2013 -0800 Expand reporting of timing information. 1. Add an ExecutionSummary object to record execution information about Ceres objects. 2. Add an EventLogger object to log events in a function call. 3. Add a ScopedExecutionTimer object to log times in ExecutionSummary. 4. Instrument ProgramEvaluator and all the linear solvers to report their timing statistics. 5. Connect the timing statistics to Summary::FullReport. 6. Add high precision timer on unix systems using gettimeofday() call. 7. Various minor clean ups all around. Change-Id: I5e09804b730b09535484124be7dbc1c58eccd1d4 commit 08c891fcb6ea1bf66e6d4619273765a644605dfc Author: Sameer Agarwal Date: Mon Feb 4 20:18:58 2013 -0800 Various small changes. 1. Compact build instructions. 2. Lots of small edits by Simon Fuhrmann. Change-Id: I8c0c67922021041dcf7f4ecdb6c6e6dd2e2fd7e5 commit e2e857ad6be322e9cf750d4b11ccf10800e57d96 Author: Sameer Agarwal Date: Mon Feb 4 19:40:45 2013 -0800 Sidebar has global table of contents. Change-Id: I7fe9053868a4660b0db8d7607ee618fc30ddaefd commit b9182147d96f865673c2756ced4cbb127ca082a3 Author: Sameer Agarwal Date: Mon Feb 4 17:55:25 2013 -0800 Change the theme to be closer to ReadTheDocs.org Change-Id: I61a76f5b5e5c292b54fdf51b66940ce80bd1cd5f commit 3d87b72c895835bbfc10965d50dc96608632114d Author: Sameer Agarwal Date: Sat Feb 2 00:49:31 2013 -0800 Convert documentation from LaTeX to Sphinx. A live version of the doc can be found at http://homes.cs.washington.edu/~sagarwal/ceres-solver/ As it stands, the documentation has better hyperlinking and coverage than the latex documentation now. Change-Id: I7ede3aa83b9b9ef25104caf331e5727b4f5beae5 commit 71c8058478311ff9b3087360827e048dec5dd69a Author: Sameer Agarwal Date: Thu Jan 31 17:33:01 2013 -0800 Remove ExecutionSummary from Evaluator and LinearSolver Change-Id: If4dbaf516a8b14e0a79e1a2116ce66a99ed4a592 commit fa1c31eee33051d6483bc90fa7b66c3664b23bf3 Author: Sameer Agarwal Date: Tue Jan 29 17:24:54 2013 -0800 Correct the documentation for crs_matrix.h Thanks to Joydeep Biswas for reporting this. Change-Id: Iae5fc2274644aab40f2f922a671f65da15ae71fc commit bdd87c03ed1cbac62990bf79aa6faed0a132bba9 Author: Sameer Agarwal Date: Tue Jan 29 16:24:31 2013 -0800 Add an ExecutionSummary object that the Evaluator and LinearSolver can use to report execution statistics of all kinds. Currently a single map which maps arbitrary strings to doubles is supported, which allows for precise timing information to be communicated. Change-Id: Ibd930aca5c9e6cae89bcfeffe9b13e2887644881 commit a2fd9ca8beb5aa11fcc5d2b32e23f161edc93d28 Author: Sameer Agarwal Date: Tue Jan 29 16:02:41 2013 -0800 Fix Android.mk Change-Id: I1093c2731283890d1f3792bf8e6741f448f1465d commit 977be7cac37316524038fa0168cc5994a5654acd Author: Sameer Agarwal Date: Sat Jan 26 16:01:54 2013 -0800 Add support for reporting linear solver and inner iteration orderings. Change-Id: I0588a4285e0925ce689e47bd48ddcc61ce596a1f commit 146b9acb4d5570da311fedb5222ad65fe12f233c Author: Sameer Agarwal Date: Mon Jan 21 16:16:58 2013 -0800 Update include/ceres.h to export headers. Update the ABI version. Change-Id: I5c1c4f110cddc816bbb5a737634f55b4cbea98e1 commit e837aeaf9e63936d745519fa53c726a2ca9d5822 Author: Sameer Agarwal Date: Mon Jan 21 13:05:01 2013 -0800 Documentation update. Change-Id: Ica8681f4bb58c60349d0dae453c652f2522eebf6 commit 2f0d7249ccedac8183e6e5a9cb45ca7c51bb6b41 Author: Sameer Agarwal Date: Fri Jan 18 13:11:32 2013 -0800 NumericDiffFunctor. A wrapper class that takes a variadic functor evaluating a function, numerically differentiates it and makes it available as a templated functor so that it can be easily used as part of Ceres' automatic differentiation framework. The tests for NumericDiffCostFunction and NumericDiffFunctor have a lot of stuff that is common, so refactor them to reduce code. Change-Id: I83b01e58b05e575fb2530d15cbd611928298646a commit 2fc0ed6143ad499d6dc82d621ff5ec69170beb52 Author: Sameer Agarwal Date: Tue Jan 15 11:34:10 2013 -0800 Change NumericDiffCostFunction to accept variadic functors. The interface for NumericDiffCostFunction and AutoDiffCostFunction are not comparable. They both accept variadic functors. The change is backward compatible, as it still supports numeric differentiation of CostFunction objects. Some refactoring of documentation and code in auto_diff_cost_function and its relatives was also done to make things consistent. Change-Id: Ib5f230a1d4a85738eb187803b9c1cd7166bb3b92 commit 9c5acce674e3ec1ba08509123ff519f106cc4348 Author: Sameer Agarwal Date: Sun Jan 13 22:14:12 2013 -0800 Add CostFunctionToFunctor. CostFunctionToFunctor wraps a CostFunction, and makes it available as a templated functor that can be called from other templated functors. This is useful for when one wants to mix automatic, numeric and analytic differentiated functions. Also a bug fix in autodiff.h Change-Id: If8ba281a89fda976ef2ce10a5844a74c4ac7b84a commit c89ea4b9de588e2e2e82c54cd1c30cddb11454c5 Author: Sameer Agarwal Date: Wed Jan 9 16:09:35 2013 -0800 Minor corrections based on Jim Roseborough's comments Change-Id: I4a8c7a454ddf038a3ed2567c101f9aee582044bf commit 00c8a061929b912bda3cfd4615fb8688c246c969 Author: Keir Mierle Date: Sat Dec 1 13:22:59 2012 -0800 Fix bug in DenseSparseMatrix::ToDenseMatrix(). Change-Id: I74a1a03149d74fbc4268ec3ce9d20e09746a7227 commit bcac4de5b75cae210c5557c81239222176d2709a Author: Sameer Agarwal Date: Fri Nov 30 23:11:26 2012 -0800 Speedup corrector.cc Add a specialization for the common case where the residual block outputs exactly one residual. The matrix routines used by Corrector can be then specialized to a scalar and be made considerably faster. For denoising upto 400% speedup is observed. Change-Id: I8e3f24b8ba41caa8e62ad97c5f5e96ab6ea47150 commit 9883fc396b2913fbc597afa795c39d365229c299 Author: Sameer Agarwal Date: Fri Nov 30 12:32:43 2012 -0800 Refactoring of the LineSearchMinimizer. 1. New LineSearchDirection interface, factory and instances. 2. Cleanup of LineSearchMinimizer to use the State and Direction objects. 3. LBFGS -> LowRankInverseHessian. 4. Refactoring of the RunCallbacks function and share it across LineSearchMinimizer and TrustRegionMinimizer. Change-Id: I19354afc6f5d6567b28918710c2012dc30ef8f32 commit 2293cb5bc96a5b317ed4ca52aa3494cadecbc07c Author: Sameer Agarwal Date: Thu Nov 29 16:00:18 2012 -0800 Add missing documentation to solver.h Change-Id: I86e7c4f1f6cc1e15d5eb2cf23e73c32d94d458c1 commit aed99615c017839df09c98f518dcc0a59a9819ec Author: Sameer Agarwal Date: Thu Nov 29 10:33:19 2012 -0800 Expose lbfgs rank in solver.h Change-Id: Ibc184b1a2f94a4057fa6569d539ca3a55d6d6098 commit 1afd498f50ef520868c18a0f26b55409d8471ceb Author: Sameer Agarwal Date: Thu Nov 29 10:28:11 2012 -0800 String to and from enum conversion routines. Update types.h/cc with stringication and unstringication routines for the newly introduced enums. Change-Id: I0fe2842b5b1c75ba351f4ab87ec9fa60af2f9ed2 commit 3e8d192f2871bcf6d5f248c119c8a6eef19186d3 Author: Sameer Agarwal Date: Wed Nov 28 17:20:22 2012 -0800 Add a rough implementation of LBFGS. Change-Id: I2bc816adfe0c02773a23035ea31de3cddc1322a4