ViennaCL - The Vienna Computing Library  1.5.2
Data Fields
lhs_rhs_element Struct Reference

A class representing the 'data' for the LHS or RHS operand of the respective node. More...

#include <forwards.h>

Data Fields

statement_node_type_family type_family
 
statement_node_subtype subtype
 
statement_node_numeric_type numeric_type
 
union {
   vcl_size_t   node_index
 
   char   host_char
 
   unsigned char   host_uchar
 
   short   host_short
 
   unsigned short   host_ushort
 
   int   host_int
 
   unsigned int   host_uint
 
   long   host_long
 
   unsigned long   host_ulong
 
   float   host_float
 
   double   host_double
 
   viennacl::scalar< float > *   scalar_float
 
   viennacl::scalar< double > *   scalar_double
 
   viennacl::vector_base< float > *   vector_float
 
   viennacl::vector_base< double > *   vector_double
 
   viennacl::implicit_vector_base
< float > *   implicit_vector_float
 
   viennacl::implicit_vector_base
< double > *   implicit_vector_double
 
   viennacl::matrix_base< float > *   matrix_row_float
 
   viennacl::matrix_base< double > *   matrix_row_double
 
   viennacl::matrix_base< float,
viennacl::column_major > *   matrix_col_float
 
   viennacl::matrix_base< double,
viennacl::column_major > *   matrix_col_double
 
   viennacl::implicit_matrix_base
< float > *   implicit_matrix_float
 
   viennacl::implicit_matrix_base
< double > *   implicit_matrix_double
 
   viennacl::compressed_matrix
< float > *   compressed_matrix_float
 
   viennacl::compressed_matrix
< double > *   compressed_matrix_double
 
   viennacl::coordinate_matrix
< float > *   coordinate_matrix_float
 
   viennacl::coordinate_matrix
< double > *   coordinate_matrix_double
 
   viennacl::ell_matrix< float > *   ell_matrix_float
 
   viennacl::ell_matrix< double > *   ell_matrix_double
 
   viennacl::hyb_matrix< float > *   hyb_matrix_float
 
   viennacl::hyb_matrix< double > *   hyb_matrix_double
 
}; 
 

Detailed Description

A class representing the 'data' for the LHS or RHS operand of the respective node.

If it represents a compound expression, the union holds the array index within the respective statement array. If it represents a object with data (vector, matrix, etc.) it holds the respective pointer (scalar, vector, matrix) or value (host scalar)

The member 'type_family' is an optimization for quickly retrieving the 'type', which denotes the currently 'active' member in the union

Field Documentation

union { ... }
viennacl::compressed_matrix<double>* compressed_matrix_double
viennacl::compressed_matrix<float>* compressed_matrix_float
viennacl::coordinate_matrix<double>* coordinate_matrix_double
viennacl::coordinate_matrix<float>* coordinate_matrix_float
viennacl::ell_matrix<double>* ell_matrix_double
viennacl::ell_matrix<float>* ell_matrix_float
char host_char
double host_double
float host_float
int host_int
long host_long
short host_short
unsigned char host_uchar
unsigned int host_uint
unsigned long host_ulong
unsigned short host_ushort
viennacl::hyb_matrix<double>* hyb_matrix_double
viennacl::hyb_matrix<float>* hyb_matrix_float
viennacl::implicit_matrix_base<double>* implicit_matrix_double
viennacl::implicit_matrix_base<float>* implicit_matrix_float
viennacl::implicit_vector_base<double>* implicit_vector_double
viennacl::implicit_vector_base<float>* implicit_vector_float
viennacl::matrix_base<double, viennacl::column_major>* matrix_col_double
viennacl::matrix_base<float, viennacl::column_major>* matrix_col_float
viennacl::matrix_base<double>* matrix_row_double
viennacl::matrix_base<float>* matrix_row_float
vcl_size_t node_index
viennacl::scalar<double>* scalar_double
viennacl::scalar<float>* scalar_float
viennacl::vector_base<double>* vector_double
viennacl::vector_base<float>* vector_float

The documentation for this struct was generated from the following file: