• Jason Rhinelander's avatar
    Eigen<->numpy referencing support · 17d0283e
    Jason Rhinelander authored
    This commit largely rewrites the Eigen dense matrix support to avoid
    copying in many cases: Eigen arguments can now reference numpy data, and
    numpy objects can now reference Eigen data (given compatible types).
    
    Eigen::Ref<...> arguments now also make use of the new `convert`
    argument use (added in PR #634) to avoid conversion, allowing
    `py::arg().noconvert()` to be used when binding a function to prohibit
    copying when invoking the function.  Respecting `convert` also means
    Eigen overloads that avoid copying will be preferred during overload
    resolution to ones that require copying.
    
    This commit also rewrites the Eigen documentation and test suite to
    explain and test the new capabilities.
    17d0283e
test_eigen.cpp 13.5 KB