Programming Reference

This reference documents the C++, Python, C, and CMake interfaces. The snt::api namespace is one of the C++ modules documented here.

C++ API

The C++ reference covers the public interfaces of each SciNumTools module. These interfaces are intended for users developing scientific applications and provide access to values, expressions, physical quantities, and dimensional input parameters.

The API module supplies command-oriented application operations such as PUQ evaluation and DIPL parsing. Its declarations appear alongside those of the other C++ modules.

Each module overview links to topic pages for related types and operations. For examples and workflow guidance, see the API module overview.

Python API

The Python API is generated from the installed scinumtools3 binding. It documents the public module objects and functions exposed by the compiled extension, including the core, val, puq, dip, and api submodules when they are enabled in the build. EXS is used internally by PUQ and DIP and is not exposed as a standalone Python module; see Python binding for the rationale. The Python adapter reference lists the matching classes and runner functions.

CMake API

The CMake integration exposes the installed snt executable and helper functions for evaluating DIPL configuration during project configuration.

C API

The C ABI reference documents the experimental opaque-handle interfaces for PUQ quantities and DIPL parsing. The adapter interface is provided through the C++ and Python APIs linked above; it has no C ABI entry points.

Reference scope

The C++ reference is generated from declarations and comments using Doxygen and Breathe. It covers the namespaces in include/snt/ and the snt::api command headers in src/snt/api, including public members, free functions, enums, and aliases. Private members, the dip::detail template helpers, and the recursive core::_array_to_string helpers are omitted. The VAL page also omits the string-array template specialization to avoid duplicate documentation links. MAT is included as an experimental module.

The C++ adapter reference lists Adapter, AdapterContext, and the three run_adapter* functions.