two type of gradient