Header files

oneDAL public identifiers are represented in the following header files:

Header file

Description

oneapi/dal.hpp

The main header file of oneDAL library.

oneapi/dal/%FILE%.hpp

The common type definitions used in other oneDAL layers. For example, data_type or range.

oneapi/dal/algo/%ALGO%.hpp

A header file for a particular algorithm. The folder for the algorithm itself is oneapi/dal/algo/%ALGO%/.

The string %ALGO% should be substituted with the name of the algorithm, for example, kmeans or knn.

oneapi/dal/algo/misc/%FUNC%.hpp

A header file for miscellaneous data types and functionality that is intended to be used by oneDAL algorithms and applications of the analytical pipeline.

The string %FUNC% should be substituted with the name of the functionality, for example, mt19937 or cross_enthropy_loss.

oneapi/dal/table/%FILE%.hpp

A header file for the types related to the table concept.

The string %FILE% should be substituted with the name of the functionality, for example, common for key concepts related to table types (e.g., table, table_metadata, data_layout classes). For entities that have the _table suffix in their names, the related header file shall not contain this suffix in its name, for example, homogen for homogen_table class.

oneapi/dal/io/%FILE%.hpp

A header file for the types and entities of input-output functionality.

The string %FILE% should be substituted with the name of the functionality, for example, csv for reading and writing csv files.

oneapi/dal/util/%UTIL%.hpp`

A header file for auxiliary functionality, such as memory allocators or type traits, that is intended to be used for the design of classes and implementation of various methods.

The string %UTIL% should be substituted with the name of the auxiliary functionality, for example, usm_allocator or type_traits.

Namespaces

oneDAL functionality is represented with a system of C++ namespaces described below:

Namespace

oneDAL content

oneapi::dal

The namespace of the library that contains externally visible data types, data management entities, processing and service functionality of oneDAL.

oneapi::dal::%ALGORITHM%

The namespace of the algorithm. All classes and structures related to that algorithm shall be defined within this particular namespace.

To define a namespace for a specific algorithm, the string %ALGORITHM% should be substituted with its name, for example, oneapi::dal::kmeans or oneapi::dal::knn.

oneapi::dal::%DATA_SOURCE%

The namespace of the data source. All classes and structures related to that data source shall be defined within a particular namespace.

To define a specific data source, the string %DATA_SOURCE% should be substituted with its name, for example, oneapi::dal::csv.

oneapi::dal::misc

The namespace that contains miscellaneous data types and functionality intended to be used by oneDAL algorithms and applications for algorithm customization and optimization on various stages of the analytical pipeline.

%PARENT%::detail

The namespace that contains implementation details of the data types and functionality for the parent namespace. The namespace can be on any level in the namespace hierarchy.

To define a specific namespace, the string %PARENT% should be substituted with the namespace for which the details are provided, for example, oneapi::dal::detail or oneapi::dal::kmeans::detail.

The application shall not use any data types nor call any functionality located in the detail namespaces.