generate gradient matrices