preconditioned gradient descent