Preconditioned gradient descent