Tables#

This section describes the types related to the table concept.

Table Types#

Type

Description

table

A common implementation of the table concept. Base class for other table types.

table_metadata

An implementation of table metadata concept.

Data layout

An enumeration of data layouts used to store contiguous data blocks inside the table.

Feature type

An enumeration of feature types used in oneDAL to define set of available operations onto the data.

Sparse Indexing

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:

  1. Follows the definition of the table concept and its restrictions (e.g., immutability).

  2. Is derived from the oneapi::dal::table class. The behavior of this class can be extended, but cannot be weaken.

  3. Is reference-counted.

  4. 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 Types for specific data formats#

Table type

Description

homogen table

A dense table that contains contiguous homogeneous data.

csr table

A sparse table that contains contiguous homogeneous data stored in a CSR 3-array format.

Programming interface#

Refer to API: Tables.