Tatooine
Namespaces | Functions
solve.h File Reference

Go to the source code of this file.

Namespaces

namespace  tatooine
 

Functions

auto tatooine::copy_or_keep_if_rvalue_tensor_solve (dynamic_tensor auto &&x) -> decltype(auto)
 
template<typename T >
auto tatooine::copy_or_keep_if_rvalue_tensor_solve (tensor< T > &&x) -> decltype(auto)
 
template<typename T , std::size_t... Dims>
auto tatooine::copy_or_keep_if_rvalue_tensor_solve (tensor< T, Dims... > &&x) -> decltype(auto)
 
template<typename T >
auto tatooine::copy_or_keep_if_rvalue_tensor_solve (tensor< T > const &x)
 
template<typename T , std::size_t... Dims>
auto tatooine::copy_or_keep_if_rvalue_tensor_solve (tensor< T, Dims... > const &x)
 
template<fixed_size_quadratic_mat< 2 > MatA, static_mat MatB>
requires (tensor_dimension<MatB, 0> == 2)
auto constexpr tatooine::solve_direct (MatA &&A, MatB &&B)
 
template<fixed_size_mat< 2, 2 > MatA, fixed_size_vec< 2 > VecB>
auto tatooine::solve_direct (MatA &&A, VecB &&b) -> std::optional< vec< common_type< tatooine::value_type< MatA >, tatooine::value_type< VecB > >, 2 > >
 
template<static_quadratic_mat MatA, static_vec VecB>
requires (tensor_dimension<MatA, 0> == tensor_dimension<VecB, 0>)
auto tatooine::solve_cramer (MatA const &A, VecB const &b) -> std::optional< vec< common_type< tatooine::value_type< MatA >, tatooine::value_type< VecB > >, tensor_dimension< MatA, 1 > > >
 
template<static_quadratic_mat MatA, static_vec VecB>
requires (tensor_dimension<MatA, 1> == tensor_dimension<VecB, 0>)
auto tatooine::solve_lu_lapack (MatA &A_, VecB &&b_) -> std::optional< tensor< common_type< tatooine::value_type< MatA >, tatooine::value_type< VecB > > > >
 
template<static_quadratic_mat MatA, static_mat MatB>
requires (tensor_dimension<MatA, 0> == tensor_dimension<MatB, 0>)
auto tatooine::solve_lu_lapack (MatA &A_, MatB &B_)
 
template<static_mat MatA, static_mat MatB>
requires (tensor_dimension<MatA, 0> == tensor_dimension<MatB, 0>)
auto tatooine::solve_qr_lapack (MatA &&A_, MatB &&B_)
 
template<static_mat MatA, static_vec VecB>
requires (tensor_dimension<MatA, 0> == tensor_dimension<VecB, 0>)
auto tatooine::solve_qr_lapack (MatA &&A_, VecB &&b_)
 
template<static_mat MatA, static_mat MatB>
requires (tensor_dimension<MatA, 0> == tensor_dimension<MatB, 0>)
auto tatooine::solve (MatA &&A, MatB &&B)
 
template<dynamic_tensor TensorA, dynamic_tensor TensorB>
auto tatooine::solve_lu_lapack (TensorA &&A_, TensorB &&B_) -> std::optional< tensor< common_type< tatooine::value_type< TensorA >, tatooine::value_type< TensorB > > > >
 
template<dynamic_tensor TensorA, dynamic_tensor TensorB>
auto tatooine::solve_qr_lapack (TensorA &&A_, TensorB &&B_) -> std::optional< tensor< common_type< tatooine::value_type< TensorA >, tatooine::value_type< TensorB > > > >
 
template<static_mat MatA, static_vec VecB>
requires (tensor_dimension<MatA, 0> == tensor_dimension<VecB, 0>)
auto tatooine::solve (MatA &&A, VecB &&b)
 
template<dynamic_tensor TensorA, dynamic_tensor TensorB>
auto tatooine::solve_symmetric_lapack (TensorA &&A_, TensorB &&B_, lapack::uplo uplo=lapack::uplo::lower) -> std::optional< tensor< common_type< tatooine::value_type< decltype(A_)>, tatooine::value_type< decltype(B_)> > > >
 
auto tatooine::solve_symmetric (dynamic_tensor auto &&A, dynamic_tensor auto &&B)
 
template<dynamic_tensor TensorA, dynamic_tensor TensorB>
auto tatooine::solve (TensorA &&A, TensorB &&B) -> std::optional< tensor< common_type< tatooine::value_type< TensorB >, tatooine::value_type< TensorB > > > >