SVD of a single dense tensor. More...
#include <complex>
#include "inc/util/types.h"
#include "inc/dense/dense.h"
#include "inc/util/toggle_enums.h"
Classes | |
struct | syten::SVD::DenseSVD< Scalar > |
Dense singular value decomposition, nonfunctional template base. More... | |
struct | syten::SVD::DenseSVD< double > |
Dense singular value decomposition, specialisation for doubles. More... | |
struct | syten::SVD::DenseSVD< float > |
Dense singular value decomposition, specialisation for doubles. More... | |
struct | syten::SVD::DenseSVD< std::complex< double > > |
Dense singular value decomposition, specialisation for complex doubles. More... | |
struct | syten::SVD::DenseSVD< std::complex< float > > |
Dense singular value decomposition, specialisation for doubles. More... | |
struct | syten::SVD::DenseSVDBase< Type > |
Dense singular value decomposition, nonfunctional templated inheritance base. More... | |
Namespaces | |
namespace | syten |
Syten namespace. | |
namespace | syten::SVD |
Singular Value Decomposition. | |
SVD of a single dense tensor.
We have to specialise this for different scalar types, hence there is a DenseSVDBase<Scalar>
which holds member objects, and a templated DenseSVD<Scalar>
which inherits from the former. Specialisations of the latter then implement the correct constructor to do the SVD and populate the member objects.