Fix Version/s: None
Component/s: afw, ip_diffim, meas_astrom, meas_base, meas_modelfit, shapelet
ndarray::EigenView relies on undocumented internals of Eigen. Stop using it, in order to allow upgrading Eigen.
The full conversion consists of two parts:
1) Stop using ndarray::EigenView explicitly in C++ code. That is what this ticket is about.
2) Stop using ndarray::EigenView indirectly via ndarray::Array::asEigen by having that function return an Eigen::Map. That is
When we stop using EigenView in pybind11 wrappers then yes, that text will have to be changed (along with all the pybind11 wrappers that use the old technique). However, that work will be done on a different ticket. Initially I am focused on converting our C++ code (excluding pybind11 wrappers) away from ndarray::EigenView. Once that is done we can switch our pybind11 wrappers to use pybind11's built-in Eigen support, which will eliminate the last usage of ndarray::EigenView and (once ndarray is updated to remove EigenView) allow upgrading Eigen.
I suggest a slightly different implementation in meas_modelfit. Otherwise looks good.
In standup you mentioned something about pybind11 conversion being done by Eigen vs. by ndarray. Does the text at https://developer.lsst.io/pybind11/how-to.html#ndarray need to be changed?