#include "tensorflow/lite/kernels/internal/reference/strided_slice.h"
#include <math.h>
#include <stdint.h>
#include <algorithm>
#include <cmath>
#include <vector>
#include "tensorflow/lite/core/c/builtin_op_data.h"
#include "tensorflow/lite/core/c/common.h"
#include "tensorflow/lite/kernels/internal/compatibility.h"
#include "tensorflow/lite/kernels/internal/strided_slice_logic.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"
namespace tflite {
namespace ops {
namespace builtin {
namespace strided_slice {
enum KernelType { … };
constexpr int kInputTensor = …;
constexpr int kBeginTensor = …;
constexpr int kEndTensor = …;
constexpr int kStridesTensor = …;
constexpr int kOutputTensor = …;
struct OpData { … };
struct StridedSliceContext { … };
StridedSliceParams BuildStridedSliceParams(StridedSliceContext* op_context,
bool start_and_end_indices) { … }
TfLiteStatus ResizeOutputTensor(TfLiteContext* context,
StridedSliceContext* op_context) { … }
template <KernelType kernel_type>
TfLiteStatus EvalImpl(TfLiteContext* context, TfLiteNode* node) { … }
TfLiteStatus Prepare(TfLiteContext* context, TfLiteNode* node) { … }
template <KernelType kernel_type>
TfLiteStatus Eval(TfLiteContext* context, TfLiteNode* node) { … }
void* Init(TfLiteContext* context, const char* buffer, size_t length) { … }
void Free(TfLiteContext* context, void* buffer) { … }
}
TfLiteRegistration* Register_STRIDED_SLICE_REF() { … }
TfLiteRegistration* Register_STRIDED_SLICE() { … }
}
}
}