reduction/utils.h#

Reduction-schema generator helpers, including onnx_light::ReduceOpGenerator(), onnx_light::ReduceOpDynamicAxes(), and onnx_light::ReduceFunctionOp().

Declares shared reduction-operator schema generator helpers.

This header defines empty-set identity descriptions and helper builders used to construct Reduce* operator schemas across opset variants.

namespace onnx_light

Alias that makes onnx-light headers compatible with code that references ONNX_LIGHT_NAMESPACE (the macro used in the standard onnx package).

Set to ONNX_LIGHT_NAMESPACE so both names resolve to the same namespace.

Symbol-visibility attribute for the public onnx-light C++ API.

Defined as empty because onnx-light does not require explicit __declspec(dllexport) or __attribute__((visibility("default"))) annotations — visibility is controlled at the shared-library level. The macro is provided so that vendored ONNX headers that decorate their declarations with ONNX_API compile without modification.

Namespace alias so that ONNX C++ code (and consumers such as onnxruntime) that refers to the literal onnx namespace — rather than the ONNX_NAMESPACE macro — resolves to the onnx-light namespace. The standard onnx package lives in namespace onnx; onnx-light uses onnx_light (via ONNX_LIGHT_NAMESPACE), so this alias keeps onnx-light a true drop-in. It is only introduced when the onnx-light namespace differs from onnx.

Functions

std::function<void(OpSchema&)> ReduceOpGenerator(const char *name, const char *empty_value, bool supports_8bit_datatypes = false, bool axes_input = false, const char *func_body = nullptr, const ContextDependentFunctionBodyBuilder &function_builder = nullptr, bool supports_boolean_datatype = false)#
inline std::function<void(OpSchema&)> ReduceOpDynamicAxes(const char *name, const char *empty_value)#
inline std::function<void(OpSchema&)> ReduceFunctionOp(const char *name, const char *empty_value, const char *func_body)#

Variables

constexpr const char *EMPTY_ZERO = "0"#
constexpr const char *EMPTY_ONE = "1"#
constexpr const char *EMPTY_UNDEFINED = "undefined"#
constexpr const char *EMPTY_MIN = "minus infinity (if supported by the datatype) or the minimum value of the data type otherwise"#
constexpr const char *EMPTY_MAX = "plus infinity (if supported by the datatype) or the maximum value of the data type otherwise"#
constexpr const char *EMPTY_MINUS_INF = "minus infinity (if supported by the datatype) or undefined otherwise"#