add conjugate gradient algorithm