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.