Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
lu.hpp File Reference
#include "lu_common.hpp"
#include <uni20/linalg/backends/packed_matrix.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/tensor/access.hpp>
Include dependency graph for backends/cpu/lu.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  uni20
 
namespace  uni20::linalg
 

Functions

template<MutableRankedMdspecLike< 2 > A, class... P>
requires HostWritableMdspec<A> && RealOrComplex<typename A::value_type> && detail::cpu_reference::LuPrecisionArgs<typename A::value_type, P...>
consteval auto uni20::linalg::kernel_accepts_types (CpuReferenceBackend, lu_factor_op const &, A &, std::span< std::size_t >, LuNorms< make_real_t< typename A::value_type > > *, SolveInfo &, SolveOptions< make_real_t< typename A::value_type > > const &, P...)
 Accept real/complex LU on mutable logical host elements.
 
template<RankedMdspecLike< 2 > A, MutableRankedMdspecLike< 2 > B, class... P>
requires HostReadableMdspec<A> && HostWritableMdspec<B> && RealOrComplex<typename A::value_type> && std::same_as<typename A::value_type, typename B::value_type> && detail::cpu_reference::LuPrecisionArgs<typename A::value_type, P...>
consteval auto uni20::linalg::kernel_accepts_types (CpuReferenceBackend, lu_solve_op const &, A &, std::span< std::size_t const >, B &, SolveInfo &, P...)
 Accept host solves from read-only factors at their working precision.
 
template<MutableRankedMdspecLike< 2 > A, class... P>
requires HostWritableMdspec<A> && RealOrComplex<typename A::value_type> && detail::cpu_reference::LuPrecisionArgs<typename A::value_type, P...>
KernelAttempt uni20::linalg::try_kernel (CpuReferenceBackend, lu_factor_op const &, A &a, std::span< std::size_t > pivots, LuNorms< make_real_t< typename A::value_type > > *norms, SolveInfo &info, SolveOptions< make_real_t< typename A::value_type > > const &options, P... precision)
 Factor with partial row pivoting, converting runtime values to finite working precision.
 
template<RankedMdspecLike< 2 > A, MutableRankedMdspecLike< 2 > B, class... P>
requires HostReadableMdspec<A> && HostWritableMdspec<B> && RealOrComplex<typename A::value_type> && std::same_as<typename A::value_type, typename B::value_type> && detail::cpu_reference::LuPrecisionArgs<typename A::value_type, P...>
KernelAttempt uni20::linalg::try_kernel (CpuReferenceBackend, lu_solve_op const &, A &a, std::span< std::size_t const > pivots, B &b, SolveInfo &info, P... precision)
 Apply row swaps and triangular substitution, converting runtime RHS values to factor precision.