19template < OperatorLike OperatorT >
24 using OperatorType = OperatorT;
26 using SolutionVectorType = SrcOf< OperatorType >;
28 using RHSVectorType = DstOf< OperatorType >;
31 SolutionVectorType& inv_diagonal_;
34 DiagonalSolver( SolutionVectorType& diagonal )
37 linalg::invert_entries( inv_diagonal_ );
45 void solve_impl( OperatorType& A, SolutionVectorType& x,
const RHSVectorType& b )
53static_assert( SolverLike< DiagonalSolver< linalg::detail::DummyOperator<
54 linalg::detail::DummyVector< double >,
55 linalg::detail::DummyVector< double > > > > );
diagonal
Definition EpsilonDivDiv_kernel_gen.py:101
Definition block_preconditioner_2x2.hpp:7
void scale_in_place(Vector &y, const Vector &x)
Scale a vector in place with another vector. For each entry , computes .
Definition vector.hpp:137
void assign(Vector &y, const ScalarOf< Vector > &c0)
Assign a scalar value to a vector. Implements: .
Definition vector.hpp:97