namespace v8 {
// classes
class AdaptiveAvgPool;
class AdaptiveMaxPool;
class DeformableConvolution;
class DetectionOutput;
class Gather;
class GatherND;
class I420toBGR;
class I420toRGB;
class If;
class MatrixNms;
class MaxPool;
class MulticlassNms;
class NV12toBGR;
class NV12toRGB;
class PriorBox;
class RandomUniform;
class Slice;
class Softmax;
// global functions
template <class TShape>
std::vector<TShape> shape_infer(
const AdaptiveAvgPool \* op,
const std::vector<TShape>& input_shapes,
const std::map<size_t, HostTensorPtr>& constant_data = {}
);
template <class TShape>
void shape_infer(
const AdaptiveAvgPool \* op,
const std::vector<TShape>& input_shapes,
std::vector<TShape>& output_shapes,
const std::map<size_t, HostTensorPtr>& constant_data = {}
);
template <class TShape>
std::vector<TShape> shape_infer(
const AdaptiveMaxPool \* op,
const std::vector<TShape>& input_shapes,
const std::map<size_t, HostTensorPtr>& constant_data = {}
);
template <class TShape>
void shape_infer(
const AdaptiveMaxPool \* op,
const std::vector<TShape>& input_shapes,
std::vector<TShape>& output_shapes,
const std::map<size_t, HostTensorPtr>& constant_data = {}
);
template <class TShape>
std::vector<TShape> shape_infer(
const DeformableConvolution \* op,
const std::vector<TShape>& input_shapes,
CoordinateDiff& pads_begin,
CoordinateDiff& pads_end,
const std::map<size_t, HostTensorPtr>& constant_data = {}
);
template <class T>
void shape_infer(
const DetectionOutput \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes
);
template <class TShape>
void shape_infer(
const GatherND \* op,
const std::vector<TShape>& input_shapes,
std::vector<TShape>& output_shapes
);
template <class TShape, class TContainer>
std::vector<TShape> shape_infer(
const MaxPool \* op,
const std::vector<TShape>& input_shapes,
TContainer& pads_begin,
TContainer& pads_end,
const std::map<size_t, HostTensorPtr>& constant_data = {}
);
template <class T>
void shape_infer(
const Slice \* op,
const std::vector<T>& input_shapes,
std::vector<T>& output_shapes,
const std::map<size_t, std::shared_ptr<ngraph::runtime::HostTensor>>& constant_data = {}
);
} // namespace v8