Eigen can be extended in several ways, for instance, by defining global methods, by inserting custom methods within main Eigen's classes through the plugin mechanism, by adding support to custom scalar types etc. See below for the respective sub-topics.