commit 682cd3c27864ba6d67ca81890760a5f697f21d63
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue Sep 3 14:28:32 2013 -0700

    Update version history with shared libs changes
    
    Change-Id: Iafd55087bc5eef4c15c3b544222147aa99df7690

commit 340d7c1415f144ca335ec1e87832c3f41d5d515b
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue Sep 3 13:50:03 2013 -0700

    Update version history with miniglog fix
    
    Change-Id: Ic69f4994259e05fa88548b957146a1aac73b7af7

commit ac061c0f2334868e671f26d24e34a14c77fac716
Author: Keir Mierle <mierle@gmail.com>
Date:   Tue Sep 3 13:03:28 2013 -0700

    Cleanups in logging.h
    
    Thanks to Scott Ettinger for the patch this is based off of,
    which restores the NDK build.
    
    Change-Id: I8036dc1388438a4940e6f4ae297162902afd8d3a

commit 0338f9a8e69582a550ef6d128e447779536d623c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Sep 2 22:28:40 2013 -0700

    ITERATIVE_SCHUR works with no f-blocks.
    
    When the Schur complement is of size zero,
    i.e. none of the parameter blocks interact
    with each other, the ITERATIVE_SCHUR linear
    solver crashes due to some checks that are
    triggered in the SCHUR_JACOBI preconditioner.
    
    This patch adds logic to detect this condition
    and to deal with it and adds tests that verify
    the fix.
    
    Thanks to Soohyun Bae for reporting this bug.
    
    Change-Id: If29ddf32463cbb1960414fff0e29bbf0d2ee7989

commit 263de47419167786c9ab6d93fa2f3e32e8e75fe1
Author: Taylor Braun-Jones <taylor@braun-jones.org>
Date:   Thu Aug 29 10:33:29 2013 -0400

    Incorporate RHEL build fixes from Brian Pitts
    
    CMake build fixed so that versioned shared libraries are installed
    (along with .so symlinks)
    
    Change-Id: Ibbaea9d37d17754cb8c3cd36fc17d015ca7d2a57

commit 6b4131993ec0db6c850bb2ae07ba8793dbab3e39
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Aug 26 00:02:50 2013 -0700

    Update spec file
    
    Change-Id: Id6426d7cad41cde2cbab411964ac013d724a066c

commit c24a4ec6fb6202d1f6a576f211b99fbe9c9906ef
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Aug 23 06:49:22 2013 -0700

    Cmake refactoring
    
    1. Use CMake FindLAPACK and FindBLAS Modules.
    2. Remove SEARCH_HEADERS and SEARCH_LIBS and replace them with
    CMAKE variables. This leads to simplification of the FIND_LIBRARY
    and FIND_PATH calls.
    3. Make miniglog a fallback when glog is not present and the
    user indicates MINIGLOG=OFF.
    4. Add time.h to miniglog.
    5. Remove shared library building.
    
    Change-Id: I8a97156d3d7cf645fbbfe8e571761bc16c89f43f

commit 48e9cd31db0bf7223beb83cdc90e3cd2b5aad054
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Aug 21 10:55:16 2013 -0700

    Add a test name
    
    Change-Id: I06dfc9cad2c54ef6078342766577eab92645283f

commit 126dfbe27df9c5b9f41cf7cc92b75c1219518283
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Aug 20 22:34:34 2013 -0700

    Fix how Ceres calls CAMD.
    
    CAMD requires that the id of the largest numbered elimination
    group be less than the number of columns in the matrix.
    
    This patch ensures that this is the case. Without this,
    in certain cases its possible for CAMD to silently fail
    while doing out of bounds access and then causing Ceres to fail.
    
    Also add some logging about the problem size before and after
    the reduced program has been created.
    
    Change-Id: I0ea3c6572a7c29cbbf09afec9ba5b4f4d4b21a9b

commit 69af5d8b4d7c48b2efa3c61e51c86cfa1b380b8a
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Aug 20 13:58:59 2013 -0700

    Add comments to trust_region_minimizer.cc.
    
    trust_region_minimizer.cc now contains a comment that explains
    the reasoning behind he inner iteration step acceptance change.
    
    Change-Id: I4eaa69d6bab92c543bba3f119c09f44625d393bd

commit e45db9d05aaa26b1ddffa44c9190a1018aa2655f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Aug 19 23:13:29 2013 -0700

    Improve inner iteration step acceptance.
    
    Normally, in a trust region algorithm the quality of a trust region step
    is measured by the ratio
    
              nonlinear_cost_change
       r =    ---------------------
              model_cost_change
    
    All the change in the nonlinear objective is due to the trust region step
    so this ratio is a good measure of the quality of the trust region radius.
    
    However, when inner iterations are being used, nonlinear_cost_change
    includes the contribution of the inner iterations and its not fair to
    credit it all to the trust region algorithm. So we change the ratio to be
    
                         nonlinear_cost_change
       r =    ------------------------------------------------
              (model_cost_change + inner_iteration_cost_change)
    
    In most cases this is fine, but it can be the case that the
    change in solution quality due to inner iterations is so large
    and the trust region step is so bad, that this ratio can become
    quite small.
    
    This can cause the trust region loop to reject this step.
    
    This change, fixes this problem by looking at the inner_iteration_cost_change
    explicitly and accepting a step if the inner iterations led to a net
    decrease in the objective function value.
    
    Along the way it also fixes the way model_cost_change is computed.
    Changing to a more numerically robust way of computing it.
    
    The last and final change is to ensure that inner iterations and the
    non-monotonic version of the trust region algorithm interact correctly.
    
    This addresses part 2 of
    
    https://code.google.com/p/ceres-solver/issues/detail?id=115
    
    As an illustration of the change.
    
    Before this change
    
    [master] build: ./bin/bundle_adjuster --input ~/Downloads/problem-245-198739-pre.txt -num_iterations 10 -translation_sigma 0.01 -rotation_sigma 0.001 -point_sigma 0.1 -inner_iterations -num_threads 4
       0: f: 7.731660e+15 d: 0.00e+00 g: 3.51e+12 h: 0.00e+00 rho: 0.00e+00 mu: 1.00e+04 li:  0 it: 5.87e-01 tt: 9.37e+00
       1: f: 7.731660e+15 d: 7.73e+15 g: 0.00e+00 h: 1.20e+10 rho: 2.43e-11 mu: 5.00e+03 li:  1 it: 1.41e+01 tt: 2.35e+01
       2: f: 7.731660e+15 d: 7.73e+15 g: 0.00e+00 h: 1.25e+10 rho: 1.70e-07 mu: 1.25e+03 li:  1 it: 1.86e+01 tt: 4.22e+01
       3: f: 7.731660e+15 d:-2.39e+40 g: 0.00e+00 h: 3.53e+10 rho:-2.63e-13 mu: 1.56e+02 li:  1 it: 3.35e+01 tt: 7.57e+01
       4: f: 7.731660e+15 d:-1.66e+39 g: 0.00e+00 h: 1.21e+11 rho:-6.58e-15 mu: 9.77e+00 li:  1 it: 3.86e+01 tt: 1.14e+02
       5: f: 7.731660e+15 d:-3.57e+55 g: 0.00e+00 h: 5.00e+12 rho:-1.89e-14 mu: 3.05e-01 li:  1 it: 3.84e+01 tt: 1.53e+02
       6: f: 7.731660e+15 d:-2.26e+35 g: 0.00e+00 h: 3.82e+12 rho:-1.77e-20 mu: 4.77e-03 li:  1 it: 3.45e+01 tt: 1.87e+02
       7: f: 7.731660e+15 d:-5.31e+19 g: 0.00e+00 h: 1.22e+11 rho:-9.96e-21 mu: 3.73e-05 li:  1 it: 2.77e+01 tt: 2.15e+02
       8: f: 1.784990e+08 d: 7.73e+15 g: 4.13e+07 h: 1.20e+10 rho: 1.00e+00 mu: 1.12e-04 li:  1 it: 1.13e+01 tt: 2.26e+02
       9: f: 1.524025e+08 d: 2.61e+07 g: 5.81e+10 h: 2.41e+08 rho: 1.00e+00 mu: 3.35e-04 li:  1 it: 1.13e+01 tt: 2.37e+02
      10: f: 1.488524e+08 d: 3.55e+06 g: 2.79e+09 h: 5.01e+08 rho: 1.00e+00 mu: 1.01e-03 li:  1 it: 1.09e+01 tt: 2.48e+02
    
    After this change
    
    [inner] build: ./bin/bundle_adjuster --input ~/Downloads/problem-245-198739-pre.txt -num_iterations 10 -translation_sigma 0.01 -rotation_sigma 0.001 -point_sigma 0.1 -inner_iterations -num_threads 4
       0: f: 7.731660e+15 d: 0.00e+00 g: 3.51e+12 h: 0.00e+00 rho: 0.00e+00 mu: 1.00e+04 li:  0 it: 5.66e-01 tt: 9.31e+00
       1: f: 5.941477e+09 d: 7.73e+15 g: 1.20e+18 h: 1.20e+10 rho: 2.43e-11 mu: 5.00e+03 li:  1 it: 1.38e+01 tt: 2.32e+01
       2: f: 3.341986e+08 d: 5.61e+09 g: 1.42e+14 h: 1.37e+09 rho: 9.38e-08 mu: 2.50e+03 li:  1 it: 1.30e+01 tt: 3.61e+01
       3: f: 3.241492e+08 d: 1.00e+07 g: 3.64e+13 h: 8.26e+08 rho: 6.12e-08 mu: 1.25e+03 li:  1 it: 1.15e+01 tt: 4.77e+01
       4: f: 3.152280e+08 d: 8.92e+06 g: 2.02e+13 h: 2.95e+08 rho: 1.56e-05 mu: 6.25e+02 li:  1 it: 1.11e+01 tt: 5.88e+01
       5: f: 3.078535e+08 d: 7.37e+06 g: 9.72e+12 h: 4.57e+08 rho: 6.55e-09 mu: 3.13e+02 li:  1 it: 1.16e+01 tt: 7.04e+01
       6: f: 3.025353e+08 d: 5.32e+06 g: 1.33e+13 h: 2.14e+08 rho: 7.21e-01 mu: 3.42e+02 li:  1 it: 1.14e+01 tt: 8.18e+01
       7: f: 2.908298e+08 d: 1.17e+07 g: 5.97e+12 h: 7.25e+08 rho: 5.73e-01 mu: 3.43e+02 li:  1 it: 1.08e+01 tt: 9.26e+01
       8: f: 2.803927e+08 d: 1.04e+07 g: 1.07e+12 h: 9.72e+07 rho: 5.27e-01 mu: 3.43e+02 li:  1 it: 1.03e+01 tt: 1.03e+02
       9: f: 2.767074e+08 d: 3.69e+06 g: 2.10e+11 h: 7.35e+07 rho: 7.37e-01 mu: 3.84e+02 li:  1 it: 1.03e+01 tt: 1.13e+02
      10: f: 2.744282e+08 d: 2.28e+06 g: 2.17e+11 h: 1.23e+08 rho: 3.11e-01 mu: 3.64e+02 li:  1 it: 9.61e+00 tt: 1.23e+02
    
    Change-Id: I7c3b132f7ce62719795bfa489ec2276d0455cc97

commit 3e6ef29be6f3cd672a73cefb52838832a49e5427
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Aug 20 09:53:54 2013 -0700

    Update version history to reflect API changes
    
    Change-Id: I5ce744d72b991abba17b5cf9c6a1e1f158693151

commit 1918453aeeae629be1f02eb333e91c4f728ace12
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Aug 19 14:15:48 2013 -0700

    Fix build breakage on old SuiteSparse.
    
    Errant semi colon is to blame.
    
    Thanks to Timothy Langlois for reporting this.
    
    Change-Id: I57bb1cd69d78ab1897ead3627539a0da11b97455

commit 8f33332c598d8209df73eb1c729e0abe2c890468
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Aug 18 23:25:00 2013 -0700

    Documentation update for 1.7.0rc2
    
    Change-Id: I6b0c19bed57b51a0f6591c60a4ae0d849c62451b

commit ad2819a1afa94990022999a96eb158add68419e0
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Aug 17 23:44:09 2013 -0700

    Fix breakage on old versions of SuiteSparse.
    
    Thanks to Fisher Yu for reporting this.
    
    Change-Id: Iefa89816cbb60e3512338a7c2a65655c017877ac

commit 880cba0939b2caa2641a5752373ffd47b64edd0f
Author: Petter Strandmark <petter.strandmark@gmail.com>
Date:   Fri Aug 16 20:05:30 2013 +0200

    Fix warning C4373 in Visual Studio
    
    The warning occurs because an overridden function added a const
    to one argument.
    
    Change-Id: Idd24f7c6ab60064747104bfc75ae9bf112f61b3e

commit d61b68aaac3fa51b8fca8b1a268e83b0d5da01ea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Aug 16 17:02:56 2013 -0700

    Lint cleanups from William Rucklidge
    
    Change-Id: Ia4756ef97e65837d55838ee0b30806a234565bfd

commit b22d063075ec545a59a25abd5d83e4642dc329c2
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Aug 15 22:55:23 2013 -0700

    Reduce memory usage in covariance estimation.
    
    When using the SPARSE_QR algorithm, now a Q-less
    factorization is used. This results in significantly
    less memory usage.
    
    The inversion of the semi-normal equations is now
    threaded using openmp. Indeed if one has SuiteSparse
    compiled with TBB, then both the factorization
    and the inversion are completely threaded.
    
    Change-Id: Ia07591e48e7958d427ef91ff9e67662f6e982c21

commit f258e4624f5bd86105ea28b9b92dd70a3f4a3a44
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Thu Aug 15 14:50:08 2013 +0600

    Move most of suitesparse/cxsparse ifdef code to their headers
    
    Main purpose of this is to make implementation files free from
    endless ifdef blocks every time this libraries are needed to be
    included. This would hopefully prevent compilation errors in
    the future caused by missing ifdef around header include.
    
    This also includes some stubs added to suitesparse/cxsparse
    headers to make code even more free from ifdefs.
    
    Change-Id: Ic8554e7df31d8c4751583fe004b99e71b3c9087b

commit dc60d9c4519b5eb5e2cff8741680fecf4d6eb2c5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Aug 15 10:13:45 2013 -0700

    Fix broken android build.
    
    Change-Id: I6f27e3ef9bd678f7393c9f573491064978e9c368

commit 367b65e17a541a9f29b9ea63682fe6f6b5b54074
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Aug 9 10:35:37 2013 -0700

    Multiple dense linear algebra backends.
    
    1. When a LAPACK implementation is present, then
    DENSE_QR, DENSE_NORMAL_CHOLESKY and DENSE_SCHUR
    can use it for doing dense linear algebra operations.
    
    2. The user can switch dense linear algebra libraries
    by setting Solver::Options::dense_linear_algebra_library_type.
    
    3. Solver::Options::sparse_linear_algebra_library is now
    Solver::Options::sparse_linear_algebra_library_type to be consistent
    with all the other enums in Solver::Options.
    
    4. Updated documentation as well as Solver::Summary::FullReport
    to reflect these changes.
    
    Change-Id: I5ab930bc15e90906b648bc399b551e6bd5d6498f

commit 080d1d04bdf722c3f602833c4c07ac1c5d26fcc0
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Aug 12 16:28:37 2013 -0700

    Use more performant, less conservative Eigen solvers.
    
    colPivHouseholderQR -> householderQR
    ldlt -> llt.
    
    The resulting performance differences are significant enough
    to justify switching.
    
    LAPACK's dgels routine used for solving linear least squares
    problems does not use pivoting either.
    
    Similarly, we are not actually using the fact that the matrix
    being factorized can be indefinite when using LDLT factorization, so
    its not clear that the performance hit is worth it.
    
    These two changes result in Eigen being able to use blocking
    algorithms, which for Cholesky factorization, brings the performance
    closer to hardware optimized LAPACK. Similarly for dense QR
    factorization, on intel there is a 2x speedup.
    
    Change-Id: I4459ee0fc8eb87d58e2b299dfaa9e656d539dc5e

commit fb465a03b83fad2dceaea091ee3763c3dc6e83d2
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Mon Aug 5 22:35:14 2013 -0700

    Fix compilation error caused by missing suitesparse headers
    
    Covariance implementation file used to unconditionally include
    SuiteSparseQR.hpp which caused compilation error in cases you
    don't have SuiteSuite installed to the system
    
    Moved the include to #ifdef block.
    
    Change-Id: I3a52c0f81711b2b70ae625fe80b758ecb0817cc6

commit 2460bf0733b4070e52d68a4a85046c1b20913e2c
Author: Steven Lovegrove <stevenlovegrove@gmail.com>
Date:   Sun Jul 21 13:13:11 2013 -0400

    Check GCC Version before adding -fast compiler option on OSX.
    
    -fast compiler option is only supported using Apple's GCC packaged with XCode.
    Other GCC versions will fail when this flag is enabled. This commit checks the
    GCC version on OSX and only enables this flag when < 4.3. Apple's GCC is
    currently 4.2.1 and a user is unlikely to install a non-apple version this old
    on OSX.
    
    Change-Id: Ifca9149625c065cd16559d7e30c218a322cf79aa

commit c5bcfc01af37b4f667be075c3c58dc024f3c7f06
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Jul 19 15:50:27 2013 -0700

    Lint fixes from Jim Roseborough.
    
    Change-Id: If93e1972041b36410225a509e3c8c7c818f92124

commit 16924168ce0b3e29d9b1e16a08d2b3d2930e017a
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Jul 18 12:52:35 2013 -0700

    Update version from 1.6.0 -> 1.7.0rc1.
    
    Change-Id: I420a8907142bffad0e3aa6c7196541ca2309c099

commit 588228bdadcc0a1ffc55442a0672998241e53e09
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Jul 18 11:29:19 2013 -0700

    Add the ability to turn shared library compilation on and off
    
    Change-Id: Ib9eacfbc894bb2b66aafff3b930c63e2ad8a555e

commit 6d93450cb563dc992cbc29ca069c886bf24bb458
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Jul 18 11:08:07 2013 -0700

    Fix build breakage on old versions of SuiteSparse.
    
    SuiteSparse_long is only defined in recent versions of SuiteSparse
    as the index variable type for large matrices. In older versions
    UF_long was used. Ubuntu still ships with an older version of
    SuiteSparse, so an ifdef is needed to fix the build.
    
    This patch has been tested on mac and on linux with older and
    newer versions of SuiteSparse.
    
    Change-Id: I4ada86d7973784a79bde4afec13ce3ca4e8dc225

commit 42be9cafe6203745fb09d611773305433c117396
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu Jul 18 08:02:08 2013 -0700

    Update documentation for Covariance
    
    Change-Id: Ia4a7347ef8267b7107698d85fcbfc986111958dc

commit 5a974716e111e4aa87a4840902b957060bd644fc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Jun 7 22:38:30 2013 -0700

    Covariance estimation using SuiteSparseQR.
    
    Change-Id: I70d1686e3288fdde5f9723e832e15ffb857d6d85

commit 719889b8b7a3ef6712516d169a4ce3a33d272fda
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Jul 17 11:31:08 2013 -0700

    Minor fixes
    
    1. Typo in c_api.h
    2. The stream operator for FunctionSample is now in the ceres::internal namespace.
    
    Change-Id: Id927a7a49c47d8903505535749ecca78cd2e83b3

commit 12cc164f79bb8a31e0eb3946e6f4898ac3c21c55
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Wed Jul 17 12:08:33 2013 +0100

    Minor fix to reject a line search config with negative L-BFGS rank.
    
    Change-Id: Iad4c678efe574ef6696c34bd2a0ce61a504c7344

commit 9aa0e3cf7243a2e837bbfa22d4677010463f6a4e
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Fri Jul 5 20:22:37 2013 +0100

    Adding Wolfe line search algorithm and full BFGS search direction options.
    
    Change-Id: I9d3fb117805bdfa5bc33613368f45ae8f10e0d79

commit 51c772c843ccecca006c706a9f64b8cbaf5416f9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Jul 16 16:42:52 2013 -0700

    householderQR -> colPivHouseholderQR.
    
    Change-Id: Ida623e853711f665e7a9d3b140a93e861591f96d

commit c2c6411d16db95cde0cc3a7a80bac87266234bb7
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Jul 13 18:47:49 2013 -0700

    DENSE_QR solver now uses non pivoting QR decomposition.
    
    Change-Id: I9099221448ccf71d0de20b9f652405009a6c24c5

commit 3c2ad4018c8d2271434b9ff2bd05437b96f4927c
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Jul 15 08:09:38 2013 -0700

    Speed up Automatic differentiation by 7%.
    
    1. Templatize Make1stOrderPerturbation.
    2. Convert a hard CHECK into DCHECK.
    
    Change-Id: I02cd67f2b87bc5722f1a090057d55f23e98d2c3b

commit 0a07fbf8731adcdce98c8e73127d379199341132
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Jul 10 11:57:35 2013 -0700

    Use ATLAS as the example BLAS in building.rst
    
    OpenBLAS has subtle issues releated to threading. It
    conflicts with the use of threads in the other parts of
    the application.
    
    Careful users can still use it by disabling threads via
    an environment variable, but by default we want to use
    a BLAS/LAPACK that does not suffer from these problems.
    
    Change-Id: I8c1c0ed0b526453564c5f9ea69b646fac32fe027

commit aee5597acf9c2c064977e937f52689254ebd1a39
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Jul 9 23:30:07 2013 -0700

    Minor fix to curve_fitting.c
    
    Change-Id: Ib3669a5c4c73178b088dc1e80141f844f807b179

commit bd82f82c3afeb3c57fa03f61fdbb0388f9ed8b02
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Jul 9 23:19:09 2013 -0700

    More CMake file cleanup.
    
    Reduce the verbosity of the Cmake file. All the "Checking for"
    messages have been removed since we log both success and failures.
    
    Further, UFConfig is only searched for if SuiteSparse_config cannot
    be found.
    
    Change-Id: I601a6ffc808e566ff78ce232c86519ef413f0b33

commit 9f4552b6475616df7e60681e60cd5afebb45a4ea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Jul 9 00:10:08 2013 -0700

    Stop CMake from trying to detect OpenMP when using Clang.
    
    Change-Id: Ie14c6466475b401ba35dbf13adc2e8701999c969

commit 6e8bd501b25dc308df7b1a5eed16edfd8442002e
Author: Keir Mierle <mierle@gmail.com>
Date:   Thu May 23 01:49:08 2013 -0700

    Extend the C API to support loss functions
    
    This extends the C API to support loss functions. Both
    user-supplied cost functions as well as the stock Ceres cost
    functions (Cauchy, Huber, etc) are supported. In addition, this
    adds a simple unit test for the C API.
    
    Supporting loss functions required changing the signature of the
    ceres_add_residual_block() function to also take a thunk for the
    loss function.
    
    Change-Id: Iefa58cf709adbb8f24588e5eb6aed9aef46b6d73

commit 1ab7fde626c3d3ac02664183f21fedd397785bea
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Jul 8 10:03:49 2013 -0700

    Update gmock and gtest to the latest svn versions.
    
    This fixes a variety of mac/clang/c++11 issues.
    
    Change-Id: I52e76d733cd53c9bb2fda125e51a6b58a90e41b3

commit eeedd2e191f5ce404453c735061ad13bd45b939b
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Jul 7 23:04:31 2013 -0700

    Rationalize some of the variable names in Solver::Options.
    
    lm_max_diagonal -> max_lm_diagonal
    lm_min_diagonal -> min_lm_diagonal
    linear_solver_max_num_iterations -> max_linear_solver_iterations
    linear_solver_min_num_iterations -> min_linear_solver_iterations
    
    This follows the pattern for the other parameters in Solver::Options
    where, the max/min is the first word followed by the name of the
    parameter.
    
    Change-Id: I0893610fceb6b7983fdb458a65522ba7079596a7

commit 7a8f79792467e56012d43b5f9aa7aefce14d5ee9
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Jul 3 09:03:55 2013 -0700

    Lint fixes
    
    Change-Id: Ic453597488ef92723a81a224e7443e8f454b25da

commit 67ccb7379e7eab709480e227323ea48ea91e7ccc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Jul 3 06:28:34 2013 -0700

    Fix broken build.
    
    Change-Id: Ieb122bb96d5776f962fff6d6e9345dfc855bfed7

commit 4f010b2db02f22cee8243ed83a49e63a305dbb76
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Jul 1 08:01:01 2013 -0700

    Improve Summary::FullReport when line search is used.
    
    Disable reporting of preconditioner when direct factorization
    is being used.
    
    Change-Id: Id264d2292c5cab608724a6a8fab5d588db950468

commit 09244015e304b0ebfb2f2399edd2d97e3b9dcd8f
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Jun 30 14:33:23 2013 -0700

    Expose line search parameters in Solver::Options.
    
    Change-Id: Ifc52980976e7bac73c8164d80518a5a19db1b79d

commit 1c70ae9aa626e591cda987a970c240dd40d23a69
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Jun 30 12:50:43 2013 -0700

    Fix Solver::Summary when line search is used.
    
    Also enable line search in bundle_adjuster.
    
    Change-Id: Ic4343a4334b9f5a6fdeab38d4e3e1f6932bbc601

commit 70b06c89c7491d7749957c8454769bfcb0108a97
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Sun Jun 30 18:49:56 2013 +0100

    Fix update of L-BFGS history buffers after they become full.
    
    Previously there was an assignment dimension mismatch in the
    history update; thus, over time, the history would contain
    (only) replicated copies of the (max_num_corrections_ -1)-th
    update and the most recent update.
    
    Change-Id: I26203acf689686d41a5029c675ebbe001fe05d90

commit a427c877f968d951b3cdcb5f5298deaf84647830
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Jun 24 17:50:56 2013 -0700

    Lint cleanup.
    
    Change-Id: Ie489f1ff182d99251ed8c0728cc6ea8e1c262ce0
