28 template <
int dim,
typename Number>
43 std::array<Number, dim> S;
47 std::array<Number, lwork> work;
49 constexpr std::size_t size =
51 std::array<Number, size> A_array;
52 A_in_VT_out.
unroll(A_array.begin(), A_array.end());
53 std::array<Number, size> U_array;
54 U.
unroll(U_array.begin(), U_array.end());
80template <
int dim,
typename Number>
85 calculate_svd_in_place(VT, U);
ArrayView< typename std::remove_reference< typename std::iterator_traits< Iterator >::reference >::type, 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)