Implementation of the dense matrix class. More...
#include "viennacl/forwards.h"
#include "viennacl/ocl/backend.hpp"
#include "viennacl/scalar.hpp"
#include "viennacl/vector.hpp"
#include "viennacl/linalg/matrix_operations.hpp"
#include "viennacl/tools/tools.hpp"
#include "viennacl/tools/matrix_size_deducer.hpp"
#include "viennacl/tools/matrix_kernel_class_deducer.hpp"
#include "viennacl/meta/result_of.hpp"
Go to the source code of this file.
Data Structures | |
struct | row_major |
A tag for row-major storage of a dense matrix. More... | |
struct | column_major |
class | matrix_expression< LHS, RHS, OP > |
struct | row_iteration |
A tag indicating iteration along increasing row index of a matrix. More... | |
struct | col_iteration |
A tag indicating iteration along increasing columns index of a matrix. More... | |
class | matrix_iterator< ROWCOL, MATRIXTYPE > |
class | matrix< SCALARTYPE, F, ALIGNMENT > |
A dense matrix class. More... | |
Namespaces | |
namespace | viennacl |
Functions | |
template<class SCALARTYPE , typename F , unsigned int ALIGNMENT> | |
std::ostream & | operator<< (std::ostream &s, const matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix) |
Prints the matrix. Output is compatible to boost::numeric::ublas. | |
template<typename LHS , typename RHS , typename OP > | |
std::ostream & | operator<< (std::ostream &s, const matrix_expression< LHS, RHS, OP > &expr) |
Prints the matrix. Output is compatible to boost::numeric::ublas. | |
template<class SCALARTYPE , typename F , unsigned int ALIGNMENT> | |
matrix_expression< const matrix< SCALARTYPE, F, ALIGNMENT >, const matrix < SCALARTYPE, F, ALIGNMENT > , op_trans > | trans (const matrix< SCALARTYPE, F, ALIGNMENT > &mat) |
Returns an expression template class representing a transposed matrix. | |
template<typename CPU_MATRIX , typename SCALARTYPE , typename F , unsigned int ALIGNMENT> | |
void | copy (const CPU_MATRIX &cpu_matrix, matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix) |
Copies a dense matrix from the host (CPU) to the OpenCL device (GPU or multi-core CPU). | |
template<typename SCALARTYPE , typename A1 , typename A2 , typename F , unsigned int ALIGNMENT> | |
void | copy (const std::vector< std::vector< SCALARTYPE, A1 >, A2 > &cpu_matrix, matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix) |
Copies a dense STL-type matrix from the host (CPU) to the OpenCL device (GPU or multi-core CPU). | |
template<typename SCALARTYPE , typename F , unsigned int ALIGNMENT> | |
void | fast_copy (SCALARTYPE *cpu_matrix_begin, SCALARTYPE *cpu_matrix_end, matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix) |
Copies a dense matrix from the host (CPU) to the OpenCL device (GPU or multi-core CPU) without temporary. Matrix-Layout on CPU must be equal to the matrix-layout on the GPU. | |
template<typename CPU_MATRIX , typename SCALARTYPE , typename F , unsigned int ALIGNMENT> | |
void | copy (const matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix, CPU_MATRIX &cpu_matrix) |
Copies a dense matrix from the OpenCL device (GPU or multi-core CPU) to the host (CPU). | |
template<typename SCALARTYPE , typename A1 , typename A2 , typename F , unsigned int ALIGNMENT> | |
void | copy (const matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix, std::vector< std::vector< SCALARTYPE, A1 >, A2 > &cpu_matrix) |
Copies a dense matrix from the OpenCL device (GPU or multi-core CPU) to the host (CPU). | |
template<typename SCALARTYPE , typename F , unsigned int ALIGNMENT> | |
void | fast_copy (const matrix< SCALARTYPE, F, ALIGNMENT > &gpu_matrix, SCALARTYPE *cpu_matrix_begin) |
Copies a dense matrix from the OpenCL device (GPU or multi-core CPU) to the host (CPU). | |
template<typename CPU_SCALAR , typename SCALARTYPE , unsigned int VECTOR_ALIGNMENT> | |
viennacl::matrix_expression < const viennacl::matrix_expression < const viennacl::vector < SCALARTYPE, VECTOR_ALIGNMENT > , const viennacl::vector < SCALARTYPE, VECTOR_ALIGNMENT > , op_prod >, const SCALARTYPE, op_prod > | operator* (const viennacl::matrix_expression< const viennacl::vector< SCALARTYPE, VECTOR_ALIGNMENT >, const viennacl::vector< SCALARTYPE, VECTOR_ALIGNMENT >, op_prod > &proxy, CPU_SCALAR const &val) |
template<typename CPU_SCALAR , typename SCALARTYPE , unsigned int VA1, unsigned int VA2> | |
viennacl::matrix_expression < const viennacl::matrix_expression < const viennacl::vector < SCALARTYPE, VA1 >, const viennacl::vector< SCALARTYPE, VA2 >, op_prod >, const SCALARTYPE, op_prod > | operator* (CPU_SCALAR const &val, viennacl::matrix_expression< const viennacl::vector< SCALARTYPE, VA1 >, const viennacl::vector< SCALARTYPE, VA2 >, op_prod > const &proxy) |
Implementation of the dense matrix class.