#define __COCO_IR_AVG_POOL_2D_H__
#include "coco/IR/Op.h"
+#include "coco/IR/Part.h"
#include "coco/IR/Window2D.h"
#include "coco/IR/Padding2D.h"
#include "coco/IR/Stride2D.h"
const AvgPool2D *asAvgPool2D(void) const override { return this; }
public:
+ Op *arg(void) const { return _arg.child(); }
+ void arg(Op *arg) { _arg.child(arg); }
+
+public:
Divisor divisor(void) const { return _divisor; }
void divisor(const Divisor &divisor) { _divisor = divisor; }
const Stride2D *stride(void) const { return &_stride; }
private:
+ // @brief An argument of AvgPool2D operation (= IFM)
+ Part _arg;
+
+private:
Divisor _divisor = Divisor::Unknown;
Window2D _window;
// parent() should be nullptr on construction
ASSERT_EQ(op->parent(), nullptr);
+ // arg() should be nullptr on construction
+ ASSERT_EQ(immutable_ptr->arg(), nullptr);
+
// divisor() SHOULD be unknow on construction
ASSERT_EQ(immutable_ptr->divisor(), coco::AvgPool2D::Divisor::Unknown);