CLA3P v0.3.1
Compact Linear Algebra Parallel Portable Package
Loading...
Searching...
No Matches
ex08b_sv_decomposition.cpp
#include <iostream>
#include <cla3p/dense.hpp>
#include <cla3p/svd.hpp>
int main()
{
std::cout << "A:\n" << A << "B:\n" << B;
/*
* Set a simple svd object for A
*/
/*
* Set a svd object for B with buffer pre-allocation
* and no calculation for V
*/
cla3p::DefaultSVD<cla3p::dns::RdMatrix> svdB(3, 5, policyU, policyV);
/*
* Decompose A & B into USV' products
*/
svdA.decompose(A);
svdB.decompose(B);
std::cout << "SVD Decomposition of A\n";
std::cout << "----------------------\n";
std::cout
<< "S:\n" << svdA.singularValues()
<< "U:\n" << svdA.leftSingularVectors()
<< "V:\n" << svdA.rightSingularVectors();
std::cout << "SVD Decomposition of B\n";
std::cout << "----------------------\n";
std::cout
<< "S:\n" << svdB.singularValues()
<< "U:\n" << svdB.leftSingularVectors()
<< "V(empty):\n" << svdB.rightSingularVectors();
return 0;
}
Singular Value Decomposition (SVD) implementation for dense matrices.
Definition default_svd.hpp:43
const T_Matrix & leftSingularVectors() const
Retrieves the left singular vectors matrix.
void decompose(const T_Matrix &mat)
Performs Singular Value Decomposition on the input matrix.
const T_Matrix & rightSingularVectors() const
Retrieves the right singular vectors matrix.
const T_RVector & singularValues() const
Retrieves the computed singular values.
static XxMatrix< real_t > random(int_t nr, int_t nc, const Property &pr=Property::General(), T_RScalar lo=T_RScalar(0), T_RScalar hi=T_RScalar(1))
svdPolicy_t
Singular vector computation policy enumeration.
Definition enums.hpp:155
@ NoCalculation
Definition enums.hpp:156
@ Economy
Definition enums.hpp:158
XxMatrix< real_t > RdMatrix
Double precision real matrix.
Definition dense.hpp:55