The enum Eigen::UpLoType did not have a name in older versions
of Eigen, so a templated function using that enum type fails
to compile with earlier versions of Eigen.
This change replaces the enum in the template declaration with
an int.
Change-Id: Id128fd96b76818be347ee6ed5945c231936d9af8
The key idea being, use some subset of the rows of the Jacobian
as the preconditioner.
This CL only implements the preconditioner assuming that the row
selection has already been done. How the rows are selected will be
left to the user based on their knowledge of the problem.
A follow up CL will hook this preconditioner into the rest of the
solver.
Change-Id: I3e18dc57811116534e9ddf35d7b154bcce496d3b