|
Uni20
Asynchronous tensor and runtime library.
|
Reference CPU backend for dense general linear systems. More...
#include "lu_common.hpp"#include <uni20/common/trace.hpp>#include <uni20/core/scalar_concepts.hpp>#include <uni20/core/scalar_traits.hpp>#include <uni20/linalg/backends/linear_solve_common.hpp>#include <uni20/linalg/backends/packed_matrix.hpp>#include <uni20/linalg/dispatch.hpp>#include <uni20/linalg/operation_tags.hpp>#include <uni20/mdspan/concepts.hpp>#include <uni20/tensor/access.hpp>#include <uni20/tensor/concepts.hpp>#include <cmath>#include <concepts>#include <cstddef>#include <type_traits>#include <utility>Go to the source code of this file.
Namespaces | |
| namespace | uni20 |
| namespace | uni20::linalg |
Functions | |
| template<uni20::MutableRankedMdspecLike< 2 > CoefficientMdspec, uni20::MutableRankedMdspecLike< 2 > RhsMdspec> requires uni20::HostWritableMdspec<CoefficientMdspec> && uni20::HostWritableMdspec<RhsMdspec> | |
| consteval auto | uni20::linalg::kernel_accepts_types (CpuReferenceBackend const &, linear_solve_op const &, CoefficientMdspec &, RhsMdspec &, SolveInfo &, SolveOptions< uni20::make_real_t< typename CoefficientMdspec::value_type > > const &) |
| Report eligibility for a host-accessible dense general solve. | |
| template<MutableRankedMdspecLike< 2 > A, MutableRankedMdspecLike< 2 > B> requires HostWritableMdspec<A> && HostWritableMdspec<B> && RealOrComplex<typename A::value_type> && has_runtime_precision_v<typename A::value_type> && std::same_as<typename A::value_type, typename B::value_type> | |
| consteval auto | uni20::linalg::kernel_accepts_types (CpuReferenceBackend, linear_solve_op const &, A &, B &, SolveInfo &, SolveOptions< make_real_t< typename A::value_type > > const &, Precision) |
| Accept runtime-precision host solves with an explicit finite working precision. | |
| template<MutableRankedMdspecLike< 2 > A, MutableRankedMdspecLike< 2 > B> requires HostWritableMdspec<A> && HostWritableMdspec<B> && RealOrComplex<typename A::value_type> && has_runtime_precision_v<typename A::value_type> && std::same_as<typename A::value_type, typename B::value_type> | |
| KernelAttempt | uni20::linalg::try_kernel (CpuReferenceBackend, linear_solve_op const &, A &a, B &b, SolveInfo &info, SolveOptions< make_real_t< typename A::value_type > > const &options, Precision p) |
| Convert runtime workspaces, then use reference LU and triangular substitution. | |
| template<uni20::MutableRankedMdspecLike< 2 > CoefficientMdspec, uni20::MutableRankedMdspecLike< 2 > RhsMdspec> requires uni20::HostWritableMdspec<CoefficientMdspec> && uni20::HostWritableMdspec<RhsMdspec> | |
| KernelAttempt | uni20::linalg::try_kernel (CpuReferenceBackend, linear_solve_op const &, CoefficientMdspec &coefficients, RhsMdspec &right_hand_sides, SolveInfo &info, SolveOptions< uni20::make_real_t< typename CoefficientMdspec::value_type > > const &options) |
| Resolve host access and solve a dense general linear system. | |
Reference CPU backend for dense general linear systems.