require 3.1.2 eigen