1 #ifndef VIENNACL_LINALG_NMF_HPP
2 #define VIENNACL_LINALG_NMF_HPP
35 #ifdef VIENNACL_WITH_OPENCL
40 #ifdef VIENNACL_WITH_CUDA
56 template<
typename ScalarType>
60 assert(V.
size1() == W.
size1() && V.
size2() == H.
size2() && bool(
"Dimensions of W and H don't allow for V = W * H"));
61 assert(W.
size2() == H.
size1() && bool(
"Dimensions of W and H don't match, prod(W, H) impossible"));
68 #ifdef VIENNACL_WITH_OPENCL
74 #ifdef VIENNACL_WITH_CUDA
void nmf(viennacl::matrix_base< NumericT > const &V, viennacl::matrix_base< NumericT > &W, viennacl::matrix_base< NumericT > &H, viennacl::linalg::nmf_config const &conf)
The nonnegative matrix factorization (approximation) algorithm as suggested by Lee and Seung...
Generic interface for the l^2-norm. See viennacl/linalg/vector_operations.hpp for implementations...
Exception class in case of memory errors.
void nmf(viennacl::matrix_base< NumericT > const &V, viennacl::matrix_base< NumericT > &W, viennacl::matrix_base< NumericT > &H, viennacl::linalg::nmf_config const &conf)
The nonnegative matrix factorization (approximation) algorithm as suggested by Lee and Seung...
Generic interface for matrix-vector and matrix-matrix products. See viennacl/linalg/vector_operations...
Implementation of the dense matrix class.
Configuration class for the nonnegative-matrix-factorization algorithm. Specify tolerances, maximum iteration counts, etc., here.
void nmf(viennacl::matrix_base< NumericT > const &V, viennacl::matrix_base< NumericT > &W, viennacl::matrix_base< NumericT > &H, viennacl::linalg::nmf_config const &conf)
The nonnegative matrix factorization (approximation) algorithm as suggested by Lee and Seung...
Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them.
Generic interface for the Frobenius norm.
size_type size2() const
Returns the number of columns.
size_type size1() const
Returns the number of rows.
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
void nmf(viennacl::matrix_base< ScalarType > const &V, viennacl::matrix_base< ScalarType > &W, viennacl::matrix_base< ScalarType > &H, viennacl::linalg::nmf_config const &conf)
The nonnegative matrix factorization (approximation) algorithm as suggested by Lee and Seung...
OpenCL kernel file for nonnegative matrix factorization.
viennacl::backend::mem_handle & handle(T &obj)
Returns the generic memory handle of an object. Non-const version.
memory_types get_active_handle_id() const
Returns an ID for the currently active memory buffer. Other memory buffers might contain old or no da...