Core: Avoid signed overflow in narrow unsigned products

libeigen/eigen!3030

Closes #3148

Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
6 files changed