Developer Guide and Reference

  • 2021.2
  • 03/26/2021
  • Public Content


This section describes the types related to the table concept.
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.

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
    class. The behavior of this class can be extended, but cannot be weaken.
  3. Every new
    sub-type 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
A dense table that contains contiguous homogeneous data.

Programming interface

Refer to API: Tables.

Product and Performance Information


Performance varies by use, configuration and other factors. Learn more at