3#ifndef pRC_ALGORITHMS_SOLVER_BACKWARD_SUBSTITUTION_H
4#define pRC_ALGORITHMS_SOLVER_BACKWARD_SUBSTITUTION_H
22 requires(RA::Dimension == 2 &&
23 (RB::Dimension == 1 || RB::Dimension == 2)) &&
41 [&U, &
x](
auto const p,
auto const... indices)
43 Index const k = RB::size(0) - 1 -
p;
44 if(
x(k, indices...) !=
zero())
46 x(k, indices...) /= U(k, k);
49 x(
i, indices...) -=
x(k, indices...) * U(
i, k);
64 return forward<XB>(b);
Definition backward_substitution.hpp:15
constexpr auto operator()(XA &&A, XB &&b) const
Definition backward_substitution.hpp:25
Definition concepts.hpp:25
Definition concepts.hpp:31
Definition concepts.hpp:19
Definition declarations.hpp:45
int i
Definition gmock-matchers-comparisons_test.cc:603
int x
Definition gmock-matchers-containers_test.cc:376
const char * p
Definition gmock-matchers-containers_test.cc:379
static void error(Xs &&...args)
Definition log.hpp:14
Restrict
Definition restrict.hpp:9
Hint
Definition hint.hpp:9
Transform
Definition transform.hpp:9
Definition backward_substitution.hpp:13
static constexpr auto transform(X &&a)
Definition transform.hpp:15
static constexpr Conditional< C, RemoveConstReference< X >, RemoveConst< X > > copy(X &&a)
Definition copy.hpp:13
static constexpr auto restrict(X &&a)
Definition restrict.hpp:15
Size Index
Definition basics.hpp:32
std::remove_reference_t< T > RemoveReference
Definition basics.hpp:41
static constexpr auto isApprox(XE &&expected, XA &&approx, TT const &tolerance=NumericLimits< TT >::tolerance())
Definition is_approx.hpp:14
constexpr auto cDebugLevel
Definition config.hpp:48
static constexpr auto range(F &&f, Xs &&...args)
Definition range.hpp:18
static constexpr auto isUpperTriangular(X &&a, TT const &tolerance=NumericLimits< TT >::tolerance())
Definition is_upper_triangular.hpp:14
static constexpr auto zero()
Definition zero.hpp:12
static constexpr decltype(auto) eval(X &&a)
Definition eval.hpp:12