more matrix routines (transposes are broken, though)