23#include <Kokkos_Macros.hpp>
33 template <
int dim,
typename Number>
48 std::array<Number, dim> S;
52 std::array<Number, lwork> work;
54 constexpr std::size_t
size =
56 std::array<Number, size> A_array;
57 A_in_VT_out.
unroll(A_array.begin(), A_array.end());
58 std::array<Number, size> U_array;
59 U.unroll(U_array.begin(), U_array.end());
85template <
int dim,
typename Number>
90 calculate_svd_in_place(VT, U);
ArrayView< std::remove_reference_t< typename std::iterator_traits< Iterator >::reference >, MemorySpaceType > make_array_view(const Iterator begin, const Iterator end)
void unroll(const Iterator begin, const Iterator end) const
#define DEAL_II_NAMESPACE_OPEN
#define DEAL_II_NAMESPACE_CLOSE
static ::ExceptionBase & ExcErrorCode(std::string arg1, types::blas_int arg2)
#define Assert(cond, exc)
static ::ExceptionBase & ExcSingular()
void gesvd(const char *, const char *, const ::types::blas_int *, const ::types::blas_int *, number1 *, const ::types::blas_int *, number2 *, number3 *, const ::types::blas_int *, number4 *, const ::types::blas_int *, number5 *, const ::types::blas_int *, ::types::blas_int *)
Tensor< 2, dim, Number > project_onto_orthogonal_tensors(const Tensor< 2, dim, Number > &A)