BUG use the new matrix diagonal multiply