Tatooine
|
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 > > > > |