#include "tensorflow/lite/core/c/common.h"
#ifndef TF_LITE_STATIC_MEMORY
#include <cstdlib>
#endif
#include <cstring>
#include <type_traits>
#include <utility>
#include "tensorflow/lite/core/c/c_api_types.h"
#ifdef TF_LITE_TENSORFLOW_PROFILER
#include "tensorflow/lite/tensorflow_profiler_logger.h"
#endif
namespace {
template <class T>
size_t TfLiteVarArrayGetSizeInBytes(const int size) { … }
template <class T, class U>
int TfLiteVarArrayEqualsArray(const T* const a, const int b_size,
const U* const b_data) { … }
template <class T>
int TfLiteVarArrayEqual(const T* const a, const T* const b) { … }
#ifndef TF_LITE_STATIC_MEMORY
template <class T>
T* TfLiteVarArrayCreate(const int size) { … }
template <class T>
T* TfLiteVarArrayCopy(const T* const src) { … }
#endif
template <class T>
void TfLiteVarArrayFree(T* a) { … }
}
extern "C" {
size_t TfLiteIntArrayGetSizeInBytes(int size) { … }
int TfLiteIntArrayEqual(const TfLiteIntArray* a, const TfLiteIntArray* b) { … }
int TfLiteIntArrayEqualsArray(const TfLiteIntArray* a, int b_size,
const int b_data[]) { … }
#ifndef TF_LITE_STATIC_MEMORY
TfLiteIntArray* TfLiteIntArrayCreate(int size) { … }
TfLiteIntArray* TfLiteIntArrayCopy(const TfLiteIntArray* src) { … }
void TfLiteIntArrayFree(TfLiteIntArray* a) { … }
#endif
int TfLiteFloatArrayGetSizeInBytes(int size) { … }
#ifndef TF_LITE_STATIC_MEMORY
TfLiteFloatArray* TfLiteFloatArrayCreate(int size) { … }
TfLiteFloatArray* TfLiteFloatArrayCopy(const TfLiteFloatArray* src) { … }
void TfLiteFloatArrayFree(TfLiteFloatArray* a) { … }
void TfLiteTensorDataFree(TfLiteTensor* t) { … }
void TfLiteQuantizationFree(TfLiteQuantization* quantization) { … }
void TfLiteSparsityFree(TfLiteSparsity* sparsity) { … }
void TfLiteTensorFree(TfLiteTensor* t) { … }
void TfLiteTensorReset(TfLiteType type, const char* name, TfLiteIntArray* dims,
TfLiteQuantizationParams quantization, char* buffer,
size_t size, TfLiteAllocationType allocation_type,
const void* allocation, bool is_variable,
TfLiteTensor* tensor) { … }
TfLiteStatus TfLiteTensorCopy(const TfLiteTensor* src, TfLiteTensor* dst) { … }
TfLiteStatus TfLiteTensorResizeMaybeCopy(size_t num_bytes, TfLiteTensor* tensor,
bool preserve_data) { … }
TfLiteStatus TfLiteTensorRealloc(size_t num_bytes, TfLiteTensor* tensor) { … }
#endif
const char* TfLiteTypeGetName(TfLiteType type) { … }
TfLiteDelegate TfLiteDelegateCreate() { … }
TfLiteAllocationStrategy TfLiteTensorGetAllocationStrategy(
const TfLiteTensor* const t) { … }
TfLiteRunStability TfLiteTensorGetBufferAddressStability(
const TfLiteTensor* const t) { … }
TfLiteRunStability TfLiteTensorGetDataStability(const TfLiteTensor* const t) { … }
TfLiteRunStep TfLiteTensorGetDataKnownStep(const TfLiteTensor* t) { … }
TfLiteRunStep TfLiteTensorGetShapeKnownStep(const TfLiteTensor* t) { … }
}