16 static bool print_progress;
28 [[nodiscard]]
double absolute_residual()
const;
30 [[nodiscard]]
bool converged()
const;
32 virtual void iterate_process() = 0;
34 [[nodiscard]] index_t iteration_count()
const;
36 [[nodiscard]] index_t max_iterations()
const;
38 [[nodiscard]]
double relative_residual()
const;
40 virtual void set_left_preconditioner(
const linear_operator &left_preconditioner);
42 void set_initial_solution(
const valuesd &x0);
44 virtual void set_right_preconditioner(
const linear_operator &right_preconditioner);
48 virtual valuesd solution_vector()
const;
51 void solve(
double tolerance);
56 virtual void add_preconditioned_krylov_basis(
const valuesd & ) {}
58 [[nodiscard]] valuesd left_preconditioned(
const valuesd &x)
const;
60 [[nodiscard]] valuesd right_preconditioned(
const valuesd &x)
const;
68 const index_t max_iter_;
89 std::vector<valuesd> vs_;