#include <stdint.h>
#include <algorithm>
#include <string>
#include <vector>
#include "tensorflow/lite/context_util.h"
#include "tensorflow/lite/core/c/common.h"
#include "tensorflow/lite/kernels/internal/compatibility.h"
#include "tensorflow/lite/kernels/internal/optimized/optimized_ops.h"
#include "tensorflow/lite/kernels/internal/reference/reference_ops.h"
#include "tensorflow/lite/kernels/internal/tensor.h"
#include "tensorflow/lite/kernels/internal/tensor_ctypes.h"
#include "tensorflow/lite/kernels/internal/types.h"
#include "tensorflow/lite/kernels/kernel_util.h"
#include "tensorflow/lite/string_type.h"
namespace tflite {
namespace ops {
namespace builtin {
namespace slice {
enum KernelType { … };
constexpr int kInputTensor = …;
constexpr int kBeginTensor = …;
constexpr int kSizeTensor = …;
constexpr int kOutputTensor = …;
const int kMaxDim = …;
template <typename T>
TfLiteStatus CalculateOutputShapeVector(TfLiteContext* context,
const TfLiteTensor* input,
const TfLiteTensor* begin,
const TfLiteTensor* size,
std::vector<int>* output_shape_vector) { … }
template <typename T>
void GetBeginAndSizeVectors(int dimensions, const TfLiteTensor* begin,
const TfLiteTensor* size, std::vector<int>* begins,
std::vector<int>* sizes) { … }
TfLiteStatus ResizeOutputShape(TfLiteContext* context,
const TfLiteTensor* input,
const TfLiteTensor* begin,
const TfLiteTensor* size, TfLiteTensor* output) { … }
bool ShapeHasRank(const TfLiteIntArray* shape) { … }
TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { … }
template <KernelType kernel_type>
TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { … }
}
TfLiteRegistration* Register_SLICE_REF() { … }
TfLiteRegistration* Register_SLICE() { … }
}
}
}