27 template <
int dim,
typename Number>
42 std::array<Number, dim> S;
46 std::array<Number, lwork> work;
48 constexpr std::size_t size =
50 std::array<Number, size> A_array;
51 A_in_VT_out.
unroll(A_array.begin(), A_array.end());
52 std::array<Number, size> U_array;
53 U.
unroll(U_array.begin(), U_array.end());
79template <
int dim,
typename Number>
84 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(Vector< OtherNumber > &result) 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)