Skip to content
Snippets Groups Projects

Add a Stack operator

Merged Jerome Hue requested to merge jeromeh/aidge_core:operator-stack into dev
All threads resolved!
2 files
+ 12
8
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 7
2
@@ -22,6 +22,8 @@
namespace Aidge {
// TODO: Check why getRequiredMemory is always called with empty vector as
// inputSize
Aidge::Elts_t Aidge::StackProdConso::getRequiredMemory(
const Aidge::IOIndex_t inputIdx,
const std::vector<DimSize_t> &inputsSize) const {
@@ -39,7 +41,8 @@ void StackOpImpl::forward() {
const StackOp &op = dynamic_cast<const StackOp &>(mOp);
AIDGE_ASSERT(op.getInput(0), "missing input #0");
AIDGE_ASSERT((op.forwardStep() < op.maxElements()),
"cannot forward anymore, maximum number of elements to stack exceeded");
"cannot forward anymore, maximum number of elements to stack "
"exceeded");
op.getOutput(0)->getImpl()->copy(
op.getInput(0)->getImpl()->rawPtr(),
@@ -53,7 +56,9 @@ StackOp::StackOp(std::uint32_t maxElements)
attr<StackAttr::MaxElements>(maxElements),
attr<StackAttr::ForwardStep>(0))) {
if (maxElements == 0) {
AIDGE_THROW_OR_ABORT(std::invalid_argument, "StackOp creation failed: maxElements must be greater than 0.");
AIDGE_THROW_OR_ABORT(
std::invalid_argument,
"StackOp creation failed: maxElements must be greater than 0.");
}
mImpl = std::make_shared<StackOpImpl>(*this);
}
Loading