This commit adds a new linear solver to the SNS utility library,
which can be used as the back-end solver for most of the methods.
There are two key motivators here:
1) replace the pinv() with a direct linear solve (new eigen only)
2) implement a standard and well-tested solver to use throughout the code
For old versions of Eigen this code defines a class
SnsLinearSolver that implements a nearly identical
API to Eigen::CompleteOrthogonalDecomposition.
For new versions of Eigen this file provides typedef of the
Eigen::CompleteOrthogonalDecomposition class.
This commit adds a new linear solver to the SNS utility library, which can be used as the back-end solver for most of the methods. There are two key motivators here: 1) replace the pinv() with a direct linear solve (new eigen only) 2) implement a standard and well-tested solver to use throughout the code
For old versions of Eigen this code defines a class SnsLinearSolver that implements a nearly identical API to
Eigen::CompleteOrthogonalDecomposition
.For new versions of Eigen this file provides typedef of the
Eigen::CompleteOrthogonalDecomposition
class.Tested on Both Eigen 3.3.4 and Eigen 3.2.0