Einsums/Decomposition/Tucker.hpp#

Defined in header Einsums/Decomposition/Tucker.hpp.

See Overview for a list of names and headers that are part of the public Einsums API.

namespace einsums
namespace decomposition

Functions

template<TensorConcept TTensor, ContainerOf<TensorLike<TTensor, ValueTypeT<TTensor>, 2>> Factors>
TTensor tucker_reconstruct(TTensor const &g_tensor, Factors const &factors)#
template<size_t Rank, MatrixConcept TTensor, typename Alloc, ContainerOf<size_t> Ranks>
BufferVector<TTensor> initialize_tucker(std::vector<TTensor, Alloc> &folds, Ranks &ranks)#
template<template<typename, size_t> typename TTensor, size_t TRank, ContainerOf<size_t> Ranks, typename TType = double, ContainerOf<Tensor<TType, 2>> Folds>
std::tuple<Tensor<TType, TRank>, BufferVector<Tensor<TType, 2>>> tucker_ho_svd(TTensor<TType, TRank> const &tensor, Ranks &ranks, Folds const &folds)#

Tucker decomposition of a tensor via Higher-Order SVD (HO-SVD). Computes a rank-rank decomposition of tensor such that:

tensor = [|weights[r0][r1]…; factor[0][r0], …, factors[-1][rn] |]

template<template<typename, size_t> typename TTensor, size_t TRank, ContainerOf<size_t> Ranks, typename TType = double>
std::tuple<Tensor<TType, TRank>, BufferVector<Tensor<TType, 2>>> tucker_ho_svd(TTensor<TType, TRank> const &tensor, Ranks &ranks)#
template<template<typename, size_t> typename TTensor, size_t TRank, ContainerOf<size_t> Ranks, typename TType = double>
std::tuple<TTensor<TType, TRank>, BufferVector<Tensor<TType, 2>>> tucker_ho_oi(TTensor<TType, TRank> const &tensor, Ranks &ranks, int n_iter_max = 100, double tolerance = 1.e-8)#

Tucker decomposition via Higher-Order Orthogonal Inversion (HO-OI). Computes a rank-rank decomposition of tensor such that:

tensor = [|weights[r0][r1]…; factor[0][r1], …, factors[-1][rn] |].