27#include "neml2/misc/assertions.h"
28#include "neml2/tensors/shape_utils.h"
94 " operands are not broadcastable. The dynamic shapes are ",
95 tensors.dynamic_sizes()...,
96 ", the intermediate shapes are ",
97 tensors.intmd_sizes()...,
98 ", and the base shapes are ",
99 tensors.base_sizes()...);
118 " operands are not dynamic-broadcastable. The dynamic shapes are ",
119 tensors.dynamic_sizes()...);
138 " operands are not intermediate-broadcastable. The intermediate shapes are ",
139 tensors.intmd_sizes()...);
158 " operands are not batch-broadcastable. The dynamic shapes are ",
159 tensors.dynamic_sizes()...,
160 ", and the intermediate shapes are ",
161 tensors.intmd_sizes()...);
180 " operands are not base-broadcastable. The base shapes are ",
181 tensors.base_sizes()...);
200 " operands are not static-broadcastable. The intermediate shapes are ",
201 tensors.intmd_sizes()...,
202 ", and the base shapes are ",
203 tensors.base_sizes()...);
bool intmd_broadcastable(const T &... tensors)
Definition shape_utils.h:198
bool dynamic_broadcastable(const T &... tensors)
Definition shape_utils.h:191
bool broadcastable(const T &... tensors)
Definition shape_utils.h:183
bool base_broadcastable(const T &... tensors)
Definition shape_utils.h:205
Definition DiagnosticsInterface.cxx:30
void neml_assert_batch_broadcastable(const T &...)
void neml_assert_batch_broadcastable_dbg(const T &...)
void neml_assert_dynamic_broadcastable(const T &...)
void neml_assert_broadcastable(const T &...)
void neml_assert_intmd_broadcastable_dbg(const T &...)
void neml_assert_base_broadcastable_dbg(const T &...)
void neml_assert_intmd_broadcastable(const T &...)
void neml_assert_broadcastable_dbg(const T &...)
void neml_assert_dynamic_broadcastable_dbg(const T &...)
void neml_assert_static_broadcastable(const T &...)
void neml_assert_base_broadcastable(const T &...)
void neml_assert_static_broadcastable_dbg(const T &...)
void neml_assert(bool assertion, Args &&... args)
Definition assertions.h:47