commit 8c62487e437b91d3d354cd1ae8957e43fe540732
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri May 16 09:44:18 2014 -0700

    Preparations for 1.9.0 release.
    
    Version bump.
    minor docs update.
    
    Change-Id: I2fbe20ba4af6b2e186fe244c96ce6d6464fe0469

commit 0831275a78ab65e4c95979598cb35c54d03d3185
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri May 16 08:17:54 2014 -0700

    Documentation update.
    
    1. Update iOS build instructions.
    2. Update version history.
    
    Change-Id: I49d62e86ecff39190b50c050cb12eef4e2773357

commit c7c7458625996a20203f1366d11bd701e5fb621b
Author: Jack Feng <jackfengji@gmail.com>
Date:   Mon May 12 10:23:56 2014 +0800

    add support for building for ios
    
    use ios-cmake to build for ios
    
    Change-Id: I6b17c33339f3121322a4004d79629b22a62f7a94

commit 36c2ce87d13b9b7123bd0473b8b45fb3b6ae4271
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Mon Jan 13 21:18:08 2014 +0600

    Libmv 2D homography estimation example application
    
    Add an example application of homography matrix estimation
    from a 2D euclidean correspondences which is done in two
    steps:
    
    - Coarse algebraic estimation
    - Fine refinement using Ceres minimizer
    
    Nothing terribly exciting apart from an example of how to
    use user callbacks.
    
    User callback is used here to stop minimizer when average
    of symmetric geometric distance becomes good enough.
    This might be arguable whether it's the best way to go
    (in some cases you would want to stop minimizer when
    maximal symmetric distance is lower than a threshold) but
    for a callback usage example it's good enough to stick
    to current logic.
    
    Change-Id: I60c8559cb10b001a0eb64ab71920c08bd68455b8

commit d99a3a961e4a6ff7218d0ab749da57cf1a1677bd
Author: Björn Piltz <bjornpiltz@gmail.com>
Date:   Wed May 7 14:59:12 2014 +0200

    Separate PUBLIC and PRIVATE library dependencies
    Do not propagate 3d party libs through
    IMPORTED_LINK_INTERFACE_LIBRARIES_[DEBUG/RELEASE] mechanism
    when building shared libraries. SuiteSparse, lapack & co
    are considered private. Glog still gets propagated since
    it is part of the public interface. See documentation of
    TARGET_LINK_LIBRARIES().
    
    Change-Id: If0563b0c705b102876f5190e9a86694d10f79283

commit 1c089e8453583876f417b214f76a5863d7694986
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue May 13 16:58:25 2014 -0700

    Notational fix in modeling.rst by William Rucklidge.
    
    Change-Id: Iffa127541380fcc32da13fe4ac474692e1e3d0ec

commit 082d9e2a1b43b26a81157a6c711de0ff34c40ba4
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon May 12 20:41:27 2014 -0700

    Add iOS.cmake from the ios-cmake project.
    
    URL: https://github.com/cristeab/ios-cmake
    Commit: 86dc085f0d5ed955cd58e2657cc3efc7c1aabbc8
    
    Change-Id: I8fe6023d4cb6655b5a724e8b695fdae87ce3b685

commit a97056c9752fe7223c8560da58862ecb1fd241ad
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue May 13 16:45:36 2014 -0700

    Various documentation fixes from William Rucklidge.
    
    Change-Id: I102e98f41f4b5fe2a84d1224d5ed7517fdfdb022

commit 2f8fb218f0a08102231ace07ef02b34b4aad7336
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Tue May 13 20:57:39 2014 +0100

    Adding function to update CMake cache variables and preserve help.
    
    - Previously we were replicating the same two lines to update a cache
      variable whilst preserving its help string.
    - This commit adds a function which wraps up this common operation into
      a single line.
    
    Change-Id: Ic78a5adf5d59262bbbcec1e353ded7620391e862

commit 8f4dcb25f1be74a8c12c0f9eeb67b6b0755563f5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Apr 29 21:40:57 2014 -0700

    Documentation update.
    
    Update modeling.rst and solving.rst to reflect
    changes to the API.
    
    Change-Id: Id1a8adfed1486f08e5fd67c5af2d29708a26490c

commit d48e7050225730f61eaef851def5b43bc439e991
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Sat May 10 08:58:58 2014 +0100

    Configure config.h and include it from the build directory.
    
    - Previously we overwrote the default (empty) config.h in the source
      tree with a configured config.h, generated using the current compile
      options.
    - This was undesirable as it could lead to inadvertant commits of the
      generated config.h.
    
    - This patch moves the default config.h to <src>/config/ceres/internal,
      separate from the other headers, thus if Ceres is compiled without
      CMake this directory will now also have to be included.  This
      directory is _not_ added to the CMake include directories for Ceres
      (thus the default config.h is never used when compiling with CMake).
    - When using CMake, the generated config.h is now placed in
      <build>/config/ceres/internal, which is in turn added to the include
      directories for Ceres when it is compiled, and the resulting config.h
      is copied to ceres/internal when installed.
    
    Change-Id: Ib1ba45e66e383ade2ebb08603af9165c1df616f2

commit 11c496164ffe9809306945c2b81276efcd51533d
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri May 9 16:27:03 2014 -0700

    Fix 80cols violation in local_parameterization.h
    
    Change-Id: I07f59baa9e4aba7c5ae028f0c144ea9ad153d49a

commit af3154422b63b7792ecd23b00ca1a0c003764dae
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri May 9 05:45:03 2014 -0700

    Add Alex Stewart as a maintainer.
    
    Update contributing.rst to mention Alex
    as one of the people who can be added
    as a reviewer.
    
    Change-Id: I30ff3e635e8c419e11e8f20394aaea5f284a10d5

commit ea765850685f1ff0431da5212656378fc20d3673
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Wed May 7 20:46:17 2014 +0100

    Adding autogenerated Ceres config.h to #define Ceres compile options.
    
    - Previously we passed all compile options to Ceres via add_definitions
      in CMake.  This was fine for private definitions (used only by Ceres)
      but required additional work for public definitions to ensure they
      were correctly propagated to clients via CMake using
      target_compile_definitions() (>= 2.8.11) or add_definitions().
    - A drawback to these approaches is that they did not work for chained
      dependencies on Ceres, as in if in the users project B <- A <- Ceres,
      then although the required Ceres public compile definitions would
      be used when compiling A, they would not be propagated to B.
    
    - This patch replaces the addition of compile definitions via
      add_definitions() with an autogenerated config.h header which
      is installed with Ceres and defines all of the enabled Ceres compile
      options.
    - This removes the need for the user to propagate any compile
      definitions in their projects, and additionally allows post-install
      inspect of the options with which Ceres was compiled.
    
    Change-Id: Idbdb6abdad0eb31e7540370e301afe87a07f2260

commit cbf955474acf8f275b272da6ff5acd3a629cc806
Author: Björn Piltz <bjornpiltz@gmail.com>
Date:   Wed May 7 17:10:15 2014 +0200

    Fixes swapped verboselevel and condition.
    
    Change-Id: I296d86e6bbf415be4bfd19d6a0fe0963e3d36d74

commit 3209b045744ea31f38d74bd9e9c8f88e605e7f76
Author: Björn Piltz <bjornpiltz@gmail.com>
Date:   Wed May 7 17:02:27 2014 +0200

    Fixed warning : 'va_copy' : macro redefinition
    MSVC 2013 has got va_copy
    Compare
    http://msdn.microsoft.com/en-us/library/kb57fad8(v=vs.110).aspx
    and
    http://msdn.microsoft.com/en-us/library/kb57fad8.aspx.
    
    Change-Id: If0937c76e8d250cde4b343844f3d35c980bf0921

commit 1df2f0f5d704f0cc458cf707e2602d495979e3c6
Author: Björn Piltz <bjornpiltz@gmail.com>
Date:   Wed May 7 11:10:30 2014 +0200

    Removed MSVC warnings
    These are warnings which show up when using Ceres.
    
    Change-Id: Id1f382f46b8a60743f0b12535b5b3cdf46f988e0

commit eca7e1c635581834c858794e09c1e876323b7775
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue May 6 10:16:19 2014 -0700

    Remove BlockRandomAccessCRSMatrix.
    
    It is not used anywhere.
    
    Change-Id: I2a8ebbdacf788582f21266825ead3f76646da29e

commit 7088a08f5d9e04e75a5a4c3823ef7927e13ff0e4
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon May 5 09:02:05 2014 -0700

    Fix some 80col violations and reflow the comments in cmake.in file.
    
    Change-Id: I4c65c89b794845aeef69159a03350c727e2ee812

commit 95cce0834d5a2d72568e6d2be968a51c244c2787
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon May 5 08:54:50 2014 -0700

    Remove some errant tabs.
    
    Change-Id: Ie1f7051e99bcb15ad068711b68a9d8f317b12ed7

commit a536ae76dfa2dbe2bc487900b98cf6c15276c649
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun May 4 21:18:42 2014 -0700

    Lazily initialize the bounds arrays in ParameterBlock.
    
    Problems that do not use bounds do not have to pay the
    price of storing bounds constraints.
    
    Also replace the raw pointer access to the upper and
    lower bounds arrays with accessors which hides the
    lazy initialization from the user.
    
    Change-Id: I0325a35de9c29f853559f891e32e7c777686e537

commit 633b50b7af9841607c07133f585e131fba7de177
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri May 2 22:46:20 2014 -0700

    Add the (2,4,8) template specialization.
    
    Change-Id: I058bcebdd1725031d573404133b184d6f27dc005

commit 5ffe06019a6c741ee7edc940ffeeceaaeabfa05d
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Thu May 1 12:06:46 2014 +0100

    Export Ceres compile definitions to targets compiled against Ceres.
    
    - Previously all Ceres compile definitions were private to Ceres, that
      is they were not exported to users via the CMake export mechanism.
    - Now that we use compile definitions in public (installed) Ceres
      headers, we need to export the Ceres compile definitions.
    - If we did not do this, then the client's code 'see's' a different
      version of the Ceres headers to those which were in fact compiled,
      or in the case of shared_ptr, may not find the required header.
    
    - This patch makes use of the new, in CMake 2.8.11, function:
      target_compile_definitions() to export all of the Ceres compile
      definitions using CMake's export functionality.
    - For CMake versions < 2.8.11, we have to use the blunter instrument of
      calling add_definitions() in CeresConfig.cmake (invoked by a call to
      find_package(Ceres)).  This is messy because it ends up adding the
      Ceres compile definitions to any target declared in the user's code
      after the call to find_package(Ceres).  Although this should do no
      harm as all of our defines are prefaced with CERES_, so any
      unintentional name clashes are unlikely.
    
    Change-Id: I5dea80949190eaf4fb08ea4ac568ce28c32dd4e0

commit 0e811b0881f1f21df0ae04fd745ae4ba5189cac1
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Thu May 1 07:54:12 2014 -0700

    Fix a bug in Minimizer::RunCallbacks.
    
    Solver::Summary::message was not being updated when the solver
    terminated because of a user's iteration callback indicating
    success or failure.
    
    Thanks to Sergey Sharybin for reporting this.
    
    Change-Id: I27e6e5eed086920ddf765461b0159417ac79d7b3

commit 31b503792611d2119bb1acb3528fc8d58c5bd029
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Apr 30 15:02:38 2014 -0700

    Lint cleanup from William Rucklidge.
    
    Change-Id: If545f114c1a2b07edd660a3c71ecfc16ffa25e43

commit 15c1210a8bdf3e936b4ef600d75f0fbb70878fb5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Apr 29 08:12:19 2014 -0700

    Lint cleanup from Jim Roseborough.
    
    Change-Id: I53f4e0d020602443b397387b8c5908f25649403d

commit b1668067f1c97520d5d28eecf2c11d2afc1b01b3
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Apr 29 08:12:19 2014 -0700

    Variety of changes to documentation and example code.
    
    1. Update version history.
    2. Minor changes to the tutorial to reflect the bounds constrained
       problem.
    3. Added static factory methods to the SnavelyReprojectionError.
    4. Removed relative gradient tolerance from types.h as it is
       not true anymore.
    
    Change-Id: I8de386e5278a008c84ef2d3290d2c4351417a9f1

commit 658407dacc351a999206980fbb3265099e50e7a3
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Apr 28 13:25:17 2014 -0700

    Add missing template specializations to the NDK build.
    
    Change-Id: I42bb6c3bd47648050298472af80333aa900e79bf

commit 5d7eed87b47871bc882af765188fa4fbca976855
Author: Björn Piltz <bjornpiltz@gmail.com>
Date:   Wed Apr 23 22:13:37 2014 +0200

    Suppport for MSVC DLLs.
    
    Change-Id: Ibbcc4ba4e59f5bbf1cb91fe81c7d3b9042d03493

commit c830820a5c2be0d0cecb0822f2cff8b4ffe88f36
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Apr 28 10:28:24 2014 -0700

    Add missing files to Android.mk
    
    Change-Id: Ibdf577c592bcde0fe5c2ce343ed8e9028b82af8f

commit ceb7a3beaad140762b499f9a306fd7230715941a
Author: Sergey Sharybin <sergey.vfx@gmail.com>
Date:   Mon Apr 28 13:50:09 2014 +0600

    Fix compilation error when using G++ compiler
    
    This compiler defines shared_ptr in std::tr1 namespace, but
    for this <tr1/memory> is to be included. Further, this compiler
    also does have <memory> header which confused previous shared
    pointer check.
    
    Simplified logic around defines now, so currently we've got:
    - CERES_TR1_MEMORY_HEADER defined if <tr1/memory> is to be
      used for shared_ptr, otherwise <memory> is to be used.
    - CERES_TR1_SHARED_PTR defined if shared_ptr is defined in
      std::tr1 namespace, otherwise it's defined in std namespace.
    
    All the shared_ptr checks are now moved to own file FindSharedPtr
    which simplifies main CMakeLists.
    
    Change-Id: I558a74793baaa0bd088801910a356be4ef17c31b

commit 02db9414fb6739857a37e268500083a0546cd0a3
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Apr 28 08:32:51 2014 -0700

    Fix the documentation for RandNormal.
    
    As pointed out by Jim Roseborough, this is the Marsaglia Polar
    method and not the Box-Muller method.
    
    Change-Id: Id5332bcd4b4c23a3885cc296729b44eaa5edd0a8

commit 32530788d08c53f8d2c8a5f9bd61aa60a23d6e03
Author: Richard Stebbing <richie.stebbing@gmail.com>
Date:   Sat Apr 26 07:42:23 2014 +0100

    Add dynamic_sparsity option.
    
    The standard sparse normal Cholesky solver assumes a fixed
    sparsity pattern which is useful for a large number of problems
    presented to Ceres. However, some problems are symbolically dense
    but numerically sparse i.e. each residual is a function of a
    large number of parameters but at any given state the residual
    only depends on a sparse subset of them. For these class of
    problems it is faster to re-analyse the sparsity pattern of the
    jacobian at each iteration of the non-linear optimisation instead
    of including all of the zero entries in the step computation.
    
    The proposed solution adds the dynamic_sparsity option which can
    be used with SPARSE_NORMAL_CHOLESKY. A
    DynamicCompressedRowSparseMatrix type (which extends
    CompressedRowSparseMatrix) has been introduced which allows
    dynamic addition and removal of elements. A Finalize method is
    provided which then consolidates the matrix so that it can be
    used in place of a regular CompressedRowSparseMatrix. An
    associated jacobian writer has also been provided.
    
    Changes that were required to make this extension were adding the
    SetMaxNumNonZeros method to CompressedRowSparseMatrix and adding
    a JacobianFinalizer template parameter to the ProgramEvaluator.
    
    Change-Id: Ia5a8a9523fdae8d5b027bc35e70b4611ec2a8d01

commit 2569076ff0bf8ffb3938da8b5df7edc4883aa053
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Apr 25 23:54:48 2014 -0700

    More NDK fixes.
    
    Fix variable names in port.h and fix fpclassify when
    using gnustl. This was tested by switching to gnustl
    in the JNI build.
    
    Thanks to Carlos Hernandez for suggesting the gnustl fixes.
    
    Change-Id: I690b73caf495ccc79061f45288e416da1604cc72

commit e55596f8860a09b12b5e1f949237f15357c1ac59
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Apr 25 16:17:19 2014 -0700

    Change the defaults for shared_ptr.
    
    By default shared_ptr is now assumed to be
    in the standard <memory> header and in the
    std namespace.
    
    Previously the way the ifdefs were structured if the appropriate
    variable was not defined, it would default to <t1/memory>.
    
    The new defaults are more future proof.
    
    Change-Id: If457806191196be2b6425b8289ea7a3488a27445

commit bb05be341b8436f611e4b69954a529edcca5b577
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sun Apr 13 14:22:19 2014 -0700

    Solver::Options uses shared_ptr to handle ownership.
    
    Solver::Options::linear_solver_ordering and
    Solver::Options::inner_iteration_ordering
    were bare pointers even though Solver::Options took ownership of these
    objects.
    
    This lead to buggy user code and the inability to copy Solver::Options
    objects around.
    
    With this change, these naked pointers have been replaced by a
    shared_ptr object which will managed the lifetime of these objects. This
    also leads to simplification of the lifetime handling of these objects
    inside the solver.
    
    The Android.mk and Application.mk files have also been updated
    to use a newer NDK revision which ships with LLVM's libc++.
    
    Change-Id: I25161fb3ddf737be0b3e5dfd8e7a0039b22548cd

commit 8e0991381ea3a2baddea017cd07b333f0c5de595
Author: Joydeep Biswas <joydeep.biswas@gmail.com>
Date:   Tue Apr 22 10:40:47 2014 -0400

    Added a simplified robotics example for DynamicAutoDiffCostFunction.
    
    Change-Id: I9520e0a9a8d9743285c5114523fbafa6ffa5b0bd

commit cc9d3bba1008066e51502cabd956985c6bdedfe8
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Apr 18 22:58:09 2014 -0700

    Remove a comment from conf.py
    
    Change-Id: I675f7e8fc5dd2143eab74901bc7241e02e37285f

commit c4cd29dd7c80ade5b3ac7a1f6ee7df22c8869ab5
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Apr 16 23:40:12 2014 -0700

    Merge landing page with introduction.
    
    The existing introduction was a bit redundant and also
    was not really an introduction. Also updated the build
    instructions to reflect the new reality on Mac OSX.
    
    Also updated the beginning of the tutorial to be a bit
    gentler and updated the history to be more consistent
    
    Change-Id: Ife38c1949252cf9f4c6301856957f2d38365f313

commit 46ccfb376ac52ac159f9187e0f7384ef68c1cbdd
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Sat Apr 12 21:56:51 2014 -0700

    Cleanup block_structure.h/cc
    
    1. Remove obsolete Proto conversion functions.
    2. Fix a strict weak ordering bug.
    
    Change-Id: I1ce6d4b06e29cf475df1d5bd37c79f66f20f8d93

commit 7d489fdb073937ac05c0693c1902fbcb9eeb7dfc
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Mon Apr 7 11:14:51 2014 -0700

    Refactor the landing page to be a bit more compact.
    
    Also minor changes to the introduction.
    
    Change-Id: Iaa71f576b95c869f075d6837dbb60ba4bb608ee7

commit 406ac7816730c15425db20d994ac0d60d932ab6c
Author: Keir Mierle <mierle@gmail.com>
Date:   Mon Apr 7 08:36:07 2014 +0000

    Rework Ceres documentation as new website
    
    This reworks the Ceres Sphinx documentation such that it can
    function as the main Ceres website, now hosted at
    ceres-solver.org. This also changes to the theme sphinx_rtd_theme
    used by Read The Docs; this theme has strong mobile support and is
    well enough designed.
    
    Change-Id: I63232d985859a6dac94ff58f08bf81eb2b9e7f99

commit 3e60a998ac970da659d590bac2ff892ee619aa1b
Author: Richard Bowen <rsbowen@google.com>
Date:   Tue Apr 1 16:22:49 2014 -0700

    Added support and tests: row and column blocks for sparse matrix
    transpose.
    
    Change-Id: Ife641b08a9e86826478521a405f21ba60667f0e8

commit 5ecb1c3f1dfde6e8ed4b493eafef7b43dad19e72
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Tue Apr 1 09:20:35 2014 -0700

    Add Problem::IsParameterBlockPresent.
    
    This allows the user to query the Problem to see if a
    parameter block is already present or not.
    
    Change-Id: If786f6c008cc644f3398597901d718d12a6d865d

commit 75e2232b29ff2ea42c8406c9d45b138a7e7a0048
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Fri Mar 28 11:21:02 2014 -0700

    Fix spacing in building.rst
    
    Change-Id: I4c68d732c80d7ff2bdbc812bf0b7c7fb98c43957

commit b555b489b8447434294a8a6676272289140d6a1d
Author: Richard Bowen <rsbowen@google.com>
Date:   Thu Mar 27 15:51:28 2014 -0700

    Changes documentation to reflect changes in output format.
    
    Change-Id: Ic0ba234283e791edcad29aec067905dcb2130813

commit 1cfb600bfc3be8342f85f155b2b219a595ee58da
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Mar 26 12:55:11 2014 -0700

    Add the (2,4,9) template specialization for PartitionedMatrixView
    and SchurEliminator.
    
    Also update the comment inside generate_partitioned_matrix_view_specializations.py
    
    Change-Id: I99a7ab4256091b1da48553da3076e5996a5757ed

commit 195e49351b386ffc23020d406883eaa6511e29b3
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Wed Mar 26 11:36:11 2014 +0000

    Check validity of residual block before removal in RemoveResidualBlock.
    
    - Breaking change: Problem::Options::enable_fast_parameter_block_removal
      is now Problem::Options::enable_fast_removal, as it now controls
      the behaviour for both parameter and residual blocks.
    
    - Previously we did not check that the specified residual block to
      remove in RemoveResidualBlock actually represented a valid residual
      for the problem.
    - This meant that Ceres would die unexpectedly if the user passed an
      uninitialised residual_block, or more likely attempted to remove a
      residual block that had already been removed automatically after
      the user removed a parameter block upon on which it was dependent.
    - RemoveResidualBlock now verifies the validity of the given
      residual_block to remove.  Either by checking against a hash set of
      all residuals maintained in ProblemImpl iff enable_fast_removal
      is enabled.  Or by a full scan of the residual blocks if not.
    
    Change-Id: I9ab178e2f68a74135f0a8e20905b16405c77a62b

commit 74762b60332d4a1c08ec5aef75ec718da9d305a2
Author: Alex Stewart <alexs.mac@gmail.com>
Date:   Thu Mar 20 14:50:25 2014 +0000

    Allow construction of an AutoDiffLocalParameterization with a functor.
    
    - Previously AutoDiffLocalParameterization would internally instantiate
      a functor instance whenever one was required.  This prohibits the
      user passing arguments to the constructor of the functor.
    - Now AutoDiffLocalParameterization can take over ownership of an
      allocated functor which the user created.  This mimics the behaviour
      of AutoDiffCostFunction.
    
    Change-Id: I264e1face44ca5d5e71cc20c77cc7654d3f74cc0

commit 4f603fb0d82317a53fa9d96abe6a97b2e69bff36
Author: Sameer Agarwal <sameeragarwal@google.com>
Date:   Wed Mar 19 17:16:43 2014 -0700

    Grammer fixes from William Rucklidge.
    
    Change-Id: Ia40df7a1d141eb2552694510453d1431bb0c8dce
