homemade conjugate gradient