add gauss-seidel prototype