matrix self multiply