border.hpp span serif/backend/mfem/solver/preconditioner/coupling.hpp serif/solver/preconditioner/strategies/inverse/dense.hpp src/compile_time_checks/serif/solver/preconditioner/coupling.cpp src/include/serif/backend/mfem/solver/preconditioner/computations/coupling.hpp src/include/serif/backend/mfem/solver/preconditioner/computations/ordering.hpp src/lib/serif/backend/mfem/solver/preconditioner/border.cpp src/lib/serif/backend/mfem/solver/preconditioner/coupling_selection.cpp serif serif::solver serif::solver::preconditioner serif::solver::preconditioner::backend serif::solver::preconditioner::backend::mfem #pragmaonce #include<span> #include"serif/backend/mfem/solver/preconditioner/coupling.hpp" #include"serif/solver/preconditioner/strategies/inverse/dense.hpp" namespaceserif::solver::preconditioner::backend::mfem { [[nodiscard]]std::expected<Inverse,Failure>try_bordered_inverse(Inversefields,TwoBlockCouplingscouplings,OperatorHandleborder_diagonal,conststrategies::inverse::DenseDirect&options={}); [[nodiscard]]std::expected<OperatorHandle,Failure>try_restrict_operator(OperatorHandleoperation,std::span<constint>rows,std::span<constint>columns); }//namespaceserif::solver::preconditioner::backend::mfem