Tables¶
This section describes the types related to the table concept.
Type |
Description |
---|---|
A common implementation of the table concept. Base class for other table types. |
|
An implementation of table metadata concept. |
|
An enumeration of data layouts used to store contiguous data blocks inside the table. |
|
An enumeration of feature types used in oneDAL to define set of available operations onto the data. |
|
An enumeration of sparse indexing types used in oneDAL to define available formats for sparse table indices. |
Requirements on table types¶
Each implementation of table concept:
Follows the definition of the table concept and its restrictions (e.g., immutability).
Is derived from the oneapi::dal::table class. The behavior of this class can be extended, but cannot be weaken.
Defines a unique id number: the “kind” that represents objects of that type in runtime.
The following listing provides an example of table API to illustrate table kinds and copy-assignment operation:
using namespace onedal;
// Creating homogen_table sub-type.
dal::homogen_table table1 = homogen_table::wrap(queue, data_ptr, row_count, column_count);
// table1 and table2 share the same data (no data copy is performed)
dal::table table2 = table1;
// Creating an empty table
dal::table table3;
std::cout << table1.get_kind() == table2.get_kind() << std::endl; // true
std::cout << homogen_table::kind() == table2.get_kind() << std::endl; // true
std::cout << table2.get_kind() == table3.get_kind() << std::endl; // false
// Referring table3 to the table2.
table3 = table2;
std::cout << table2.get_kind() == table3.get_kind() << std::endl; // true
Table types¶
oneDAL defines a set of classes that implement the table concept for a specific data format:
Table type |
Description |
---|---|
A dense table that contains contiguous homogeneous data. |
|
A sparse table that contains contiguous homogeneous data stored in a CSR 3-array format. |
Programming interface¶
Refer to API: Tables.