module cgmeth use matmult use cgstep_mod use solver_tiny_mod implicit none contains ! setup of conjugate gradient descent, minimize SUM rr(i)**2 ! nx ! rr(i) = sum fff(i,j) * x(j) - yy(i) ! j=1 subroutine cgtest( x, yy, rr, fff, niter) real, dimension (:), intent (out) :: x, rr real, dimension (:), intent (in) :: yy real, dimension (:,:), pointer :: fff integer, intent (in) :: niter call matmult_init( fff) call solver_tiny( m=x, d=yy, Fop=matmult_lop, stepper=cgstep,& & niter=niter, resd=rr) call cgstep_close () end subroutine end module