Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Namespaces | Functions
linear_solve.hpp File Reference

Destructive-workspace and value-producing dense general solves. More...

#include <uni20/common/trace.hpp>
#include <uni20/core/scalar_concepts.hpp>
#include <uni20/linalg/backends/cpu/linear_solve.hpp>
#include <uni20/linalg/backends/lapack/linear_solve.hpp>
#include <uni20/linalg/dispatch.hpp>
#include <uni20/linalg/operation_tags.hpp>
#include <uni20/linalg/precision.hpp>
#include <uni20/linalg/solve_info.hpp>
#include <uni20/tensor/concepts.hpp>
#include <uni20/tensor/copy.hpp>
#include <uni20/tensor/precision.hpp>
#include <uni20/tensor/tensor.hpp>
#include <concepts>
#include <type_traits>
#include <utility>
Include dependency graph for ops/linear_solve.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<KernelBackendSelector BackendSelector, uni20::RankedTensorView< 2 > CoefficientTensor, uni20::RankedTensorView< 2 > RhsTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<CoefficientTensor>> && std::same_as<uni20::tensor_element_t<CoefficientTensor>, uni20::tensor_element_t<RhsTensor>>
auto uni20::linalg::solve (BackendSelector &&selector, CoefficientTensor const &coefficients, RhsTensor const &right_hand_sides, std::optional< Precision > requested={})
 Preserve inputs and return the dense solution through an explicit selector.
 
template<uni20::RankedTensorView< 2 > CoefficientTensor, uni20::RankedTensorView< 2 > RhsTensor>
requires uni20::RealOrComplex<uni20::tensor_element_t<CoefficientTensor>> && std::same_as<uni20::tensor_element_t<CoefficientTensor>, uni20::tensor_element_t<RhsTensor>>
auto uni20::linalg::solve (CoefficientTensor const &coefficients, RhsTensor const &right_hand_sides, std::optional< Precision > requested={})
 Preserve inputs and return an owning column-major host solution.
 
template<KernelBackendSelector BackendSelector, class CoefficientTensor , class RhsTensor >
requires detail::CompatibleLinearSolveTensors<CoefficientTensor, RhsTensor>
void uni20::linalg::solve_inplace (BackendSelector &&selector, CoefficientTensor &&coefficients, RhsTensor &&right_hand_sides, std::optional< Precision > requested={})
 Solve a general system in destructive coefficient and RHS workspaces.
 
template<class CoefficientTensor , class RhsTensor >
requires detail::CompatibleLinearSolveTensors<CoefficientTensor, RhsTensor>
void uni20::linalg::solve_inplace (CoefficientTensor &&coefficients, RhsTensor &&right_hand_sides, std::optional< Precision > p={})
 Solve a general system in destructive workspaces using storage policy.
 
template<class A , class B >
requires detail::CompatibleLinearSolveTensors<A, B>
SolveInfo uni20::linalg::solve_inplace_with_info (A &&a, B &&b, Precision p, SolveOptions< make_real_t< tensor_element_t< A > > > const &options={})
 Solve at explicit precision using storage-selected backends.
 
template<KernelBackendSelector BackendSelector, class A , class B >
requires detail::CompatibleLinearSolveTensors<A, B>
SolveInfo uni20::linalg::solve_inplace_with_info (BackendSelector &&selector, A &&a, B &&b, Precision p, SolveOptions< make_real_t< tensor_element_t< A > > > const &options={})
 Solve in place at an explicit operation precision, independent of workspace defaults.
 
template<KernelBackendSelector BackendSelector, class CoefficientTensor , class RhsTensor >
requires detail::CompatibleLinearSolveTensors<CoefficientTensor, RhsTensor>
SolveInfo uni20::linalg::solve_inplace_with_info (BackendSelector &&selector, CoefficientTensor &&coefficients, RhsTensor &&right_hand_sides, SolveOptions< uni20::make_real_t< uni20::tensor_element_t< CoefficientTensor > > > const &options={})
 Solve in destructive workspaces and return numerical diagnostics.
 
template<class CoefficientTensor , class RhsTensor >
requires detail::CompatibleLinearSolveTensors<CoefficientTensor, RhsTensor>
SolveInfo uni20::linalg::solve_inplace_with_info (CoefficientTensor &&coefficients, RhsTensor &&right_hand_sides, SolveOptions< uni20::make_real_t< uni20::tensor_element_t< CoefficientTensor > > > const &options={})
 Return numerical solve diagnostics using storage-selected backends.
 

Detailed Description

Destructive-workspace and value-producing dense general solves.