/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 3.0.11
 *
 * This file is not intended to be easily readable and contains a number of
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG
 * interface file instead.
 * ----------------------------------------------------------------------------- */

#ifdef __cplusplus
/* SwigValueWrapper is described in swig.swg */
template<typename T> class SwigValueWrapper {
  struct SwigMovePointer {
    T *ptr;
    SwigMovePointer(T *p) : ptr(p) { }
    ~SwigMovePointer() { delete ptr; }
    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
  } pointer;
  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
public:
  SwigValueWrapper() : pointer(0) { }
  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
  operator T&() const { return *pointer.ptr; }
  T *operator&() { return pointer.ptr; }
};

template <typename T> T SwigValueInit() {
  return T();
}
#endif

/* -----------------------------------------------------------------------------
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 * ----------------------------------------------------------------------------- */

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#  define SWIGTEMPLATEDISAMBIGUATOR template
# elif defined(__HP_aCC)
/* Needed even with `aCC -AA' when `aCC -V' reports HP ANSI C++ B3910B A.03.55 */
/* If we find a maximum version that requires this, the test would be __HP_aCC <= 35500 for A.03.55 */
#  define SWIGTEMPLATEDISAMBIGUATOR template
# else
#  define SWIGTEMPLATEDISAMBIGUATOR
# endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__)
#   if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
#     define SWIGUNUSED __attribute__ ((__unused__))
#   else
#     define SWIGUNUSED
#   endif
# elif defined(__ICC)
#   define SWIGUNUSED __attribute__ ((__unused__))
# else
#   define SWIGUNUSED
# endif
#endif

#ifndef SWIG_MSC_UNSUPPRESS_4505
# if defined(_MSC_VER)
#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
# endif
#endif

#ifndef SWIGUNUSEDPARM
# ifdef __cplusplus
#   define SWIGUNUSEDPARM(p)
# else
#   define SWIGUNUSEDPARM(p) p SWIGUNUSED
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods */
#if defined(__GNUC__)
#  if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
#    ifndef GCC_HASCLASSVISIBILITY
#      define GCC_HASCLASSVISIBILITY
#    endif
#  endif
#endif

#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   if defined(__GNUC__) && defined(GCC_HASCLASSVISIBILITY)
#     define SWIGEXPORT __attribute__ ((visibility("default")))
#   else
#     define SWIGEXPORT
#   endif
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif
#endif

/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
#if !defined(SWIG_NO_CRT_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
# define _CRT_SECURE_NO_DEPRECATE
#endif

/* Deal with Microsoft's attempt at deprecating methods in the standard C++ library */
#if !defined(SWIG_NO_SCL_SECURE_NO_DEPRECATE) && defined(_MSC_VER) && !defined(_SCL_SECURE_NO_DEPRECATE)
# define _SCL_SECURE_NO_DEPRECATE
#endif

/* Deal with Apple's deprecated 'AssertMacros.h' from Carbon-framework */
#if defined(__APPLE__) && !defined(__ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES)
# define __ASSERT_MACROS_DEFINE_VERSIONS_WITHOUT_UNDERSCORES 0
#endif

/* Intel's compiler complains if a variable which was never initialised is
 * cast to void, which is a common idiom which we use to indicate that we
 * are aware a variable isn't used.  So we just silence that warning.
 * See: https://github.com/swig/swig/issues/192 for more discussion.
 */
#ifdef __INTEL_COMPILER
# pragma warning disable 592
#endif



#include <stdlib.h>
#include <string.h>
#include <stdio.h>


#include "example.h"


#include <string>
#include <windows.h>


#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT char * Delphi__TF_Version() {
  char * cresult = 0 ;
  char *result = 0 ;
  
  result = (char *)TF_Version();
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT NativeUInt Delphi__TF_DataTypeSize(_TF_DataType pasarg0) {
  NativeUInt cresult = 0 ;
  TF_DataType arg1 ;
  NativeUInt result;
  
  arg1 = (TF_DataType)pasarg0;
  result = TF_DataTypeSize(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Status * Delphi__TF_NewStatus() {
  _TF_Status * cresult = 0 ;
  TF_Status *result = 0 ;
  
  result = (TF_Status *)TF_NewStatus();
  *(TF_Status **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_DeleteStatus(_TF_Status * pasarg0) {
  TF_Status *arg1 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Status **)&pasarg0; 
  TF_DeleteStatus(arg1);
}


SWIGEXPORT void Delphi__TF_SetStatus(_TF_Status * pasarg0, _TF_Code pasarg1, char * pasarg2) {
  TF_Status *arg1 = (TF_Status *) 0 ;
  TF_Code arg2 ;
  char *arg3 = (char *) 0 ;
  
  arg1 = *(TF_Status **)&pasarg0; 
  arg2 = (TF_Code)pasarg1;
  arg3 = (char *)pasarg2;
  TF_SetStatus(arg1,arg2,(char const *)arg3);
}


SWIGEXPORT _TF_Code Delphi__TF_GetCode(_TF_Status const * pasarg0) {
  _TF_Code cresult = 0 ;
  TF_Status *arg1 = (TF_Status *) 0 ;
  _TF_Code result;
  
  arg1 = *(TF_Status **)&pasarg0; 
  result = (TF_Code)TF_GetCode((TF_Status const *)arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi__TF_Message(_TF_Status const * pasarg0) {
  char * cresult = 0 ;
  TF_Status *arg1 = (TF_Status *) 0 ;
  char *result = 0 ;
  
  arg1 = *(TF_Status **)&pasarg0; 
  result = (char *)TF_Message((TF_Status const *)arg1);
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_Buffer_data_set(_TF_Buffer * pasarg0, void * pasarg1) {
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  void *arg2 = (void *) 0 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  arg2 = *(void **)&pasarg1; 
  if (arg1) (arg1)->data = (void const *)arg2;
}


SWIGEXPORT void * Delphi__TF_Buffer_data_get(_TF_Buffer * pasarg0) {
  void * cresult = 0 ;
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  void *result = 0 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  result = (void *) ((arg1)->data);
  *(void **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_Buffer_length_set(_TF_Buffer * pasarg0, NativeUInt pasarg1) {
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  size_t arg2 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  arg2 = (size_t)pasarg1;
  if (arg1) (arg1)->length = arg2;
}


SWIGEXPORT NativeUInt Delphi__TF_Buffer_length_get(_TF_Buffer * pasarg0) {
  NativeUInt cresult = 0 ;
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  NativeUInt result;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  result =  ((arg1)->length);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_Buffer_data_deallocator_set(_TF_Buffer * pasarg0, void (*)(void *,size_t) pasarg1) {
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  void (*arg2)(void *,size_t) = (void (*)(void *,size_t)) 0 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  arg2 = *(void (**)(void *,size_t))&pasarg1; 
  if (arg1) (arg1)->data_deallocator = arg2;
}


SWIGEXPORT void (*)(void *,size_t) Delphi__TF_Buffer_data_deallocator_get(_TF_Buffer * pasarg0) {
  void (*)(void *,size_t) cresult = 0 ;
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  void (*result)(void *,size_t) = 0 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  result = (void (*)(void *,size_t)) ((arg1)->data_deallocator);
  *(void (**)(void *,size_t))&cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Buffer * Delphi_new_TF_Buffer() {
  _TF_Buffer * cresult = 0 ;
  TF_Buffer *result = 0 ;
  
  result = (TF_Buffer *)new TF_Buffer();
  *(TF_Buffer **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_delete_TF_Buffer(_TF_Buffer * pasarg0) {
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  delete arg1;
}


SWIGEXPORT _TF_Buffer * Delphi__TF_NewBufferFromString(void * pasarg0, NativeUInt pasarg1) {
  _TF_Buffer * cresult = 0 ;
  void *arg1 = (void *) 0 ;
  size_t arg2 ;
  TF_Buffer *result = 0 ;
  
  arg1 = *(void **)&pasarg0; 
  arg2 = (size_t)pasarg1;
  result = (TF_Buffer *)TF_NewBufferFromString((void const *)arg1,arg2);
  *(TF_Buffer **)&cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Buffer * Delphi__TF_NewBuffer() {
  _TF_Buffer * cresult = 0 ;
  TF_Buffer *result = 0 ;
  
  result = (TF_Buffer *)TF_NewBuffer();
  *(TF_Buffer **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_DeleteBuffer(_TF_Buffer * pasarg0) {
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  TF_DeleteBuffer(arg1);
}


SWIGEXPORT void * Delphi__TF_GetBuffer(_TF_Buffer * pasarg0) {
  void * cresult = 0 ;
  TF_Buffer *arg1 = (TF_Buffer *) 0 ;
  _TF_Buffer result;
  
  arg1 = *(TF_Buffer **)&pasarg0; 
  result = TF_GetBuffer(arg1);
  *(TF_Buffer **)&cresult = new TF_Buffer((TF_Buffer &)result); 
  return cresult;
}


SWIGEXPORT _TF_Tensor * Delphi__TF_NewTensor(_TF_DataType pasarg0, int64_t const * pasarg1, int pasarg2, void * pasarg3, NativeUInt pasarg4, void (*)(void *,size_t,void *) pasarg5, void * pasarg6) {
  _TF_Tensor * cresult = 0 ;
  TF_DataType arg1 ;
  int64_t *arg2 = (int64_t *) 0 ;
  int arg3 ;
  void *arg4 = (void *) 0 ;
  size_t arg5 ;
  void (*arg6)(void *,size_t,void *) = (void (*)(void *,size_t,void *)) 0 ;
  void *arg7 = (void *) 0 ;
  TF_Tensor *result = 0 ;
  
  arg1 = (TF_DataType)pasarg0;
  arg2 = *(int64_t **)&pasarg1; 
  arg3 = (int)pasarg2;
  arg4 = *(void **)&pasarg3; 
  arg5 = (size_t)pasarg4;
  arg6 = *(void (**)(void *,size_t,void *))&pasarg5; 
  arg7 = *(void **)&pasarg6; 
  result = (TF_Tensor *)TF_NewTensor(arg1,(int64_t const *)arg2,arg3,arg4,arg5,arg6,arg7);
  *(TF_Tensor **)&cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Tensor * Delphi__TF_AllocateTensor(_TF_DataType pasarg0, int64_t const * pasarg1, int pasarg2, NativeUInt pasarg3) {
  _TF_Tensor * cresult = 0 ;
  TF_DataType arg1 ;
  int64_t *arg2 = (int64_t *) 0 ;
  int arg3 ;
  size_t arg4 ;
  TF_Tensor *result = 0 ;
  
  arg1 = (TF_DataType)pasarg0;
  arg2 = *(int64_t **)&pasarg1; 
  arg3 = (int)pasarg2;
  arg4 = (size_t)pasarg3;
  result = (TF_Tensor *)TF_AllocateTensor(arg1,(int64_t const *)arg2,arg3,arg4);
  *(TF_Tensor **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_DeleteTensor(_TF_Tensor * pasarg0) {
  TF_Tensor *arg1 = (TF_Tensor *) 0 ;
  
  arg1 = *(TF_Tensor **)&pasarg0; 
  TF_DeleteTensor(arg1);
}


SWIGEXPORT _TF_DataType Delphi__TF_TensorType(_TF_Tensor const * pasarg0) {
  _TF_DataType cresult = 0 ;
  TF_Tensor *arg1 = (TF_Tensor *) 0 ;
  _TF_DataType result;
  
  arg1 = *(TF_Tensor **)&pasarg0; 
  result = (TF_DataType)TF_TensorType((TF_Tensor const *)arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_NumDims(_TF_Tensor const * pasarg0) {
  int cresult = 0 ;
  TF_Tensor *arg1 = (TF_Tensor *) 0 ;
  int result;
  
  arg1 = *(TF_Tensor **)&pasarg0; 
  result = (int)TF_NumDims((TF_Tensor const *)arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT NativeUInt Delphi__TF_Dim(_TF_Tensor const * pasarg0, int pasarg1) {
  NativeUInt cresult = 0 ;
  TF_Tensor *arg1 = (TF_Tensor *) 0 ;
  int arg2 ;
  NativeUInt result;
  
  arg1 = *(TF_Tensor **)&pasarg0; 
  arg2 = (int)pasarg1;
  result = TF_Dim((TF_Tensor const *)arg1,arg2);
  cresult = result; 
  return cresult;
}


SWIGEXPORT NativeUInt Delphi__TF_TensorByteSize(_TF_Tensor const * pasarg0) {
  NativeUInt cresult = 0 ;
  TF_Tensor *arg1 = (TF_Tensor *) 0 ;
  NativeUInt result;
  
  arg1 = *(TF_Tensor **)&pasarg0; 
  result = TF_TensorByteSize((TF_Tensor const *)arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void * Delphi__TF_TensorData(_TF_Tensor const * pasarg0) {
  void * cresult = 0 ;
  TF_Tensor *arg1 = (TF_Tensor *) 0 ;
  void *result = 0 ;
  
  arg1 = *(TF_Tensor **)&pasarg0; 
  result = (void *)TF_TensorData((TF_Tensor const *)arg1);
  *(void **)&cresult = result; 
  return cresult;
}


SWIGEXPORT NativeUInt Delphi__TF_StringEncode(char * pasarg0, NativeUInt pasarg1, char * pasarg2, NativeUInt pasarg3, _TF_Status * pasarg4) {
  NativeUInt cresult = 0 ;
  char *arg1 = (char *) 0 ;
  size_t arg2 ;
  char *arg3 = (char *) 0 ;
  size_t arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  NativeUInt result;
  
  arg1 = (char *)pasarg0;
  arg2 = (size_t)pasarg1;
  arg3 = (char *)pasarg2;
  arg4 = (size_t)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  result = TF_StringEncode((char const *)arg1,arg2,arg3,arg4,arg5);
  cresult = result; 
  return cresult;
}


SWIGEXPORT NativeUInt Delphi__TF_StringDecode(char * pasarg0, NativeUInt pasarg1, char const ** pasarg2, size_t * pasarg3, _TF_Status * pasarg4) {
  NativeUInt cresult = 0 ;
  char *arg1 = (char *) 0 ;
  size_t arg2 ;
  char **arg3 = (char **) 0 ;
  size_t *arg4 = (size_t *) 0 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  NativeUInt result;
  
  arg1 = (char *)pasarg0;
  arg2 = (size_t)pasarg1;
  arg3 = *(char ***)&pasarg2; 
  arg4 = *(size_t **)&pasarg3; 
  arg5 = *(TF_Status **)&pasarg4; 
  result = TF_StringDecode((char const *)arg1,arg2,(char const **)arg3,arg4,arg5);
  cresult = result; 
  return cresult;
}


SWIGEXPORT NativeUInt Delphi__TF_StringEncodedSize(NativeUInt pasarg0) {
  NativeUInt cresult = 0 ;
  size_t arg1 ;
  NativeUInt result;
  
  arg1 = (size_t)pasarg0;
  result = TF_StringEncodedSize(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_SessionOptions * Delphi__TF_NewSessionOptions() {
  _TF_SessionOptions * cresult = 0 ;
  TF_SessionOptions *result = 0 ;
  
  result = (TF_SessionOptions *)TF_NewSessionOptions();
  *(TF_SessionOptions **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_SetTarget(_TF_SessionOptions * pasarg0, char * pasarg1) {
  TF_SessionOptions *arg1 = (TF_SessionOptions *) 0 ;
  char *arg2 = (char *) 0 ;
  
  arg1 = *(TF_SessionOptions **)&pasarg0; 
  arg2 = (char *)pasarg1;
  TF_SetTarget(arg1,(char const *)arg2);
}


SWIGEXPORT void Delphi__TF_SetConfig(_TF_SessionOptions * pasarg0, void * pasarg1, NativeUInt pasarg2, _TF_Status * pasarg3) {
  TF_SessionOptions *arg1 = (TF_SessionOptions *) 0 ;
  void *arg2 = (void *) 0 ;
  size_t arg3 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_SessionOptions **)&pasarg0; 
  arg2 = *(void **)&pasarg1; 
  arg3 = (size_t)pasarg2;
  arg4 = *(TF_Status **)&pasarg3; 
  TF_SetConfig(arg1,(void const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_DeleteSessionOptions(_TF_SessionOptions * pasarg0) {
  TF_SessionOptions *arg1 = (TF_SessionOptions *) 0 ;
  
  arg1 = *(TF_SessionOptions **)&pasarg0; 
  TF_DeleteSessionOptions(arg1);
}


SWIGEXPORT _TF_Graph * Delphi__TF_NewGraph() {
  _TF_Graph * cresult = 0 ;
  TF_Graph *result = 0 ;
  
  result = (TF_Graph *)TF_NewGraph();
  *(TF_Graph **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_DeleteGraph(_TF_Graph * pasarg0) {
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  TF_DeleteGraph(arg1);
}


SWIGEXPORT void Delphi__TF_Input_oper_set(_TF_Input * pasarg0, _TF_Operation * pasarg1) {
  TF_Input *arg1 = (TF_Input *) 0 ;
  TF_Operation *arg2 = (TF_Operation *) 0 ;
  
  arg1 = *(TF_Input **)&pasarg0; 
  arg2 = *(TF_Operation **)&pasarg1; 
  if (arg1) (arg1)->oper = arg2;
}


SWIGEXPORT _TF_Operation * Delphi__TF_Input_oper_get(_TF_Input * pasarg0) {
  _TF_Operation * cresult = 0 ;
  TF_Input *arg1 = (TF_Input *) 0 ;
  TF_Operation *result = 0 ;
  
  arg1 = *(TF_Input **)&pasarg0; 
  result = (TF_Operation *) ((arg1)->oper);
  *(TF_Operation **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_Input_index_set(_TF_Input * pasarg0, int pasarg1) {
  TF_Input *arg1 = (TF_Input *) 0 ;
  int arg2 ;
  
  arg1 = *(TF_Input **)&pasarg0; 
  arg2 = (int)pasarg1;
  if (arg1) (arg1)->index = arg2;
}


SWIGEXPORT int Delphi__TF_Input_index_get(_TF_Input * pasarg0) {
  int cresult = 0 ;
  TF_Input *arg1 = (TF_Input *) 0 ;
  int result;
  
  arg1 = *(TF_Input **)&pasarg0; 
  result = (int) ((arg1)->index);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Input * Delphi_new_TF_Input() {
  _TF_Input * cresult = 0 ;
  TF_Input *result = 0 ;
  
  result = (TF_Input *)new TF_Input();
  *(TF_Input **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_delete_TF_Input(_TF_Input * pasarg0) {
  TF_Input *arg1 = (TF_Input *) 0 ;
  
  arg1 = *(TF_Input **)&pasarg0; 
  delete arg1;
}


SWIGEXPORT void Delphi__TF_Output_oper_set(_TF_Output * pasarg0, _TF_Operation * pasarg1) {
  TF_Output *arg1 = (TF_Output *) 0 ;
  TF_Operation *arg2 = (TF_Operation *) 0 ;
  
  arg1 = *(TF_Output **)&pasarg0; 
  arg2 = *(TF_Operation **)&pasarg1; 
  if (arg1) (arg1)->oper = arg2;
}


SWIGEXPORT _TF_Operation * Delphi__TF_Output_oper_get(_TF_Output * pasarg0) {
  _TF_Operation * cresult = 0 ;
  TF_Output *arg1 = (TF_Output *) 0 ;
  TF_Operation *result = 0 ;
  
  arg1 = *(TF_Output **)&pasarg0; 
  result = (TF_Operation *) ((arg1)->oper);
  *(TF_Operation **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_Output_index_set(_TF_Output * pasarg0, int pasarg1) {
  TF_Output *arg1 = (TF_Output *) 0 ;
  int arg2 ;
  
  arg1 = *(TF_Output **)&pasarg0; 
  arg2 = (int)pasarg1;
  if (arg1) (arg1)->index = arg2;
}


SWIGEXPORT int Delphi__TF_Output_index_get(_TF_Output * pasarg0) {
  int cresult = 0 ;
  TF_Output *arg1 = (TF_Output *) 0 ;
  int result;
  
  arg1 = *(TF_Output **)&pasarg0; 
  result = (int) ((arg1)->index);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Output * Delphi_new_TF_Output() {
  _TF_Output * cresult = 0 ;
  TF_Output *result = 0 ;
  
  result = (TF_Output *)new TF_Output();
  *(TF_Output **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_delete_TF_Output(_TF_Output * pasarg0) {
  TF_Output *arg1 = (TF_Output *) 0 ;
  
  arg1 = *(TF_Output **)&pasarg0; 
  delete arg1;
}


SWIGEXPORT void Delphi__TF_GraphSetTensorShape(_TF_Graph * pasarg0, void * pasarg1, int64_t const * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  TF_Output arg2 ;
  int64_t *arg3 = (int64_t *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  TF_Output *argp2 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  argp2 = *(TF_Output **)&pasarg1; 
  if (!argp2) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return ;
  }
  arg2 = *argp2; 
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_GraphSetTensorShape(arg1,arg2,(int64_t const *)arg3,arg4,arg5);
}


SWIGEXPORT int Delphi__TF_GraphGetTensorNumDims(_TF_Graph * pasarg0, void * pasarg1, _TF_Status * pasarg2) {
  int cresult = 0 ;
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  TF_Output arg2 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  TF_Output *argp2 ;
  int result;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  argp2 = *(TF_Output **)&pasarg1; 
  if (!argp2) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return 0;
  }
  arg2 = *argp2; 
  arg3 = *(TF_Status **)&pasarg2; 
  result = (int)TF_GraphGetTensorNumDims(arg1,arg2,arg3);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_GraphGetTensorShape(_TF_Graph * pasarg0, void * pasarg1, int64_t * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  TF_Output arg2 ;
  int64_t *arg3 = (int64_t *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  TF_Output *argp2 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  argp2 = *(TF_Output **)&pasarg1; 
  if (!argp2) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return ;
  }
  arg2 = *argp2; 
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_GraphGetTensorShape(arg1,arg2,arg3,arg4,arg5);
}


SWIGEXPORT _TF_OperationDescription * Delphi__TF_NewOperation(_TF_Graph * pasarg0, char * pasarg1, char * pasarg2) {
  _TF_OperationDescription * cresult = 0 ;
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  char *arg2 = (char *) 0 ;
  char *arg3 = (char *) 0 ;
  TF_OperationDescription *result = 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = (char *)pasarg2;
  result = (TF_OperationDescription *)TF_NewOperation(arg1,(char const *)arg2,(char const *)arg3);
  *(TF_OperationDescription **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_SetDevice(_TF_OperationDescription * pasarg0, char * pasarg1) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  TF_SetDevice(arg1,(char const *)arg2);
}


SWIGEXPORT void Delphi__TF_AddInput(_TF_OperationDescription * pasarg0, void * pasarg1) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  TF_Output arg2 ;
  TF_Output *argp2 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  argp2 = *(TF_Output **)&pasarg1; 
  if (!argp2) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return ;
  }
  arg2 = *argp2; 
  TF_AddInput(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_AddInputList(_TF_OperationDescription * pasarg0, _TF_Output const * pasarg1, int pasarg2) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  TF_Output *arg2 = (TF_Output *) 0 ;
  int arg3 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = *(TF_Output **)&pasarg1; 
  arg3 = (int)pasarg2;
  TF_AddInputList(arg1,(TF_Output const *)arg2,arg3);
}


SWIGEXPORT void Delphi__TF_AddControlInput(_TF_OperationDescription * pasarg0, _TF_Operation * pasarg1) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  TF_Operation *arg2 = (TF_Operation *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = *(TF_Operation **)&pasarg1; 
  TF_AddControlInput(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_ColocateWith(_TF_OperationDescription * pasarg0, _TF_Operation * pasarg1) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  TF_Operation *arg2 = (TF_Operation *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = *(TF_Operation **)&pasarg1; 
  TF_ColocateWith(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_SetAttrString(_TF_OperationDescription * pasarg0, char * pasarg1, void * pasarg2, NativeUInt pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  void *arg3 = (void *) 0 ;
  size_t arg4 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void **)&pasarg2; 
  arg4 = (size_t)pasarg3;
  TF_SetAttrString(arg1,(char const *)arg2,(void const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrStringList(_TF_OperationDescription * pasarg0, char * pasarg1, void const *const * pasarg2, size_t const * pasarg3, int pasarg4) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  void **arg3 = (void **) 0 ;
  size_t *arg4 = (size_t *) 0 ;
  int arg5 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void ***)&pasarg2; 
  arg4 = *(size_t **)&pasarg3; 
  arg5 = (int)pasarg4;
  TF_SetAttrStringList(arg1,(char const *)arg2,(void const *const *)arg3,(size_t const *)arg4,arg5);
}


SWIGEXPORT void Delphi__TF_SetAttrInt(_TF_OperationDescription * pasarg0, char * pasarg1, NativeUInt pasarg2) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t arg3 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = (int64_t)pasarg2;
  TF_SetAttrInt(arg1,(char const *)arg2,arg3);
}


SWIGEXPORT void Delphi__TF_SetAttrIntList(_TF_OperationDescription * pasarg0, char * pasarg1, int64_t const * pasarg2, int pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t *arg3 = (int64_t *) 0 ;
  int arg4 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = (int)pasarg3;
  TF_SetAttrIntList(arg1,(char const *)arg2,(int64_t const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrFloat(_TF_OperationDescription * pasarg0, char * pasarg1, float pasarg2) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  float arg3 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = (float)pasarg2;
  TF_SetAttrFloat(arg1,(char const *)arg2,arg3);
}


SWIGEXPORT void Delphi__TF_SetAttrFloatList(_TF_OperationDescription * pasarg0, char * pasarg1, float const * pasarg2, int pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  float *arg3 = (float *) 0 ;
  int arg4 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(float **)&pasarg2; 
  arg4 = (int)pasarg3;
  TF_SetAttrFloatList(arg1,(char const *)arg2,(float const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrBool(_TF_OperationDescription * pasarg0, char * pasarg1, unsigned short pasarg2) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  unsigned char arg3 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = (unsigned char)pasarg2;
  TF_SetAttrBool(arg1,(char const *)arg2,arg3);
}


SWIGEXPORT void Delphi__TF_SetAttrBoolList(_TF_OperationDescription * pasarg0, char * pasarg1, unsigned char const * pasarg2, int pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  unsigned char *arg3 = (unsigned char *) 0 ;
  int arg4 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(unsigned char **)&pasarg2; 
  arg4 = (int)pasarg3;
  TF_SetAttrBoolList(arg1,(char const *)arg2,(unsigned char const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrType(_TF_OperationDescription * pasarg0, char * pasarg1, _TF_DataType pasarg2) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_DataType arg3 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = (TF_DataType)pasarg2;
  TF_SetAttrType(arg1,(char const *)arg2,arg3);
}


SWIGEXPORT void Delphi__TF_SetAttrTypeList(_TF_OperationDescription * pasarg0, char * pasarg1, _TF_DataType const * pasarg2, int pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_DataType *arg3 = (TF_DataType *) 0 ;
  int arg4 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_DataType **)&pasarg2; 
  arg4 = (int)pasarg3;
  TF_SetAttrTypeList(arg1,(char const *)arg2,(enum TF_DataType const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrShape(_TF_OperationDescription * pasarg0, char * pasarg1, int64_t const * pasarg2, int pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t *arg3 = (int64_t *) 0 ;
  int arg4 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = (int)pasarg3;
  TF_SetAttrShape(arg1,(char const *)arg2,(int64_t const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrShapeList(_TF_OperationDescription * pasarg0, char * pasarg1, int64_t const *const * pasarg2, int const * pasarg3, int pasarg4) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t **arg3 = (int64_t **) 0 ;
  int *arg4 = (int *) 0 ;
  int arg5 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t ***)&pasarg2; 
  arg4 = *(int **)&pasarg3; 
  arg5 = (int)pasarg4;
  TF_SetAttrShapeList(arg1,(char const *)arg2,(int64_t const *const *)arg3,(int const *)arg4,arg5);
}


SWIGEXPORT void Delphi__TF_SetAttrTensorShapeProto(_TF_OperationDescription * pasarg0, char * pasarg1, void * pasarg2, NativeUInt pasarg3, _TF_Status * pasarg4) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  void *arg3 = (void *) 0 ;
  size_t arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void **)&pasarg2; 
  arg4 = (size_t)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_SetAttrTensorShapeProto(arg1,(char const *)arg2,(void const *)arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_SetAttrTensorShapeProtoList(_TF_OperationDescription * pasarg0, char * pasarg1, void const *const * pasarg2, size_t const * pasarg3, int pasarg4, _TF_Status * pasarg5) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  void **arg3 = (void **) 0 ;
  size_t *arg4 = (size_t *) 0 ;
  int arg5 ;
  TF_Status *arg6 = (TF_Status *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void ***)&pasarg2; 
  arg4 = *(size_t **)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(TF_Status **)&pasarg5; 
  TF_SetAttrTensorShapeProtoList(arg1,(char const *)arg2,(void const *const *)arg3,(size_t const *)arg4,arg5,arg6);
}


SWIGEXPORT void Delphi__TF_SetAttrTensor(_TF_OperationDescription * pasarg0, char * pasarg1, _TF_Tensor * pasarg2, _TF_Status * pasarg3) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Tensor *arg3 = (TF_Tensor *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Tensor **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_SetAttrTensor(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_SetAttrTensorList(_TF_OperationDescription * pasarg0, char * pasarg1, _TF_Tensor *const * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Tensor **arg3 = (TF_Tensor **) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Tensor ***)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_SetAttrTensorList(arg1,(char const *)arg2,(TF_Tensor *const *)arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_SetAttrValueProto(_TF_OperationDescription * pasarg0, char * pasarg1, void * pasarg2, NativeUInt pasarg3, _TF_Status * pasarg4) {
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  char *arg2 = (char *) 0 ;
  void *arg3 = (void *) 0 ;
  size_t arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void **)&pasarg2; 
  arg4 = (size_t)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_SetAttrValueProto(arg1,(char const *)arg2,(void const *)arg3,arg4,arg5);
}


SWIGEXPORT _TF_Operation * Delphi__TF_FinishOperation(_TF_OperationDescription * pasarg0, _TF_Status * pasarg1) {
  _TF_Operation * cresult = 0 ;
  TF_OperationDescription *arg1 = (TF_OperationDescription *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  TF_Operation *result = 0 ;
  
  arg1 = *(TF_OperationDescription **)&pasarg0; 
  arg2 = *(TF_Status **)&pasarg1; 
  result = (TF_Operation *)TF_FinishOperation(arg1,arg2);
  *(TF_Operation **)&cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi__TF_OperationName(_TF_Operation * pasarg0) {
  char * cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *result = 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (char *)TF_OperationName(arg1);
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi__TF_OperationOpType(_TF_Operation * pasarg0) {
  char * cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *result = 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (char *)TF_OperationOpType(arg1);
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT char * Delphi__TF_OperationDevice(_TF_Operation * pasarg0) {
  char * cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *result = 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (char *)TF_OperationDevice(arg1);
  *(char **)&cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationNumOutputs(_TF_Operation * pasarg0) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (int)TF_OperationNumOutputs(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_DataType Delphi__TF_OperationOutputType(void * pasarg0) {
  _TF_DataType cresult = 0 ;
  TF_Output arg1 ;
  TF_Output *argp1 ;
  _TF_DataType result;
  
  argp1 = *(TF_Output **)&pasarg0; 
  if (!argp1) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return 0;
  }
  arg1 = *argp1; 
  result = (TF_DataType)TF_OperationOutputType(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationOutputListLength(_TF_Operation * pasarg0, char * pasarg1, _TF_Status * pasarg2) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Status **)&pasarg2; 
  result = (int)TF_OperationOutputListLength(arg1,(char const *)arg2,arg3);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationNumInputs(_TF_Operation * pasarg0) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (int)TF_OperationNumInputs(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_DataType Delphi__TF_OperationInputType(void * pasarg0) {
  _TF_DataType cresult = 0 ;
  TF_Input arg1 ;
  TF_Input *argp1 ;
  _TF_DataType result;
  
  argp1 = *(TF_Input **)&pasarg0; 
  if (!argp1) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Input");
    return 0;
  }
  arg1 = *argp1; 
  result = (TF_DataType)TF_OperationInputType(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationInputListLength(_TF_Operation * pasarg0, char * pasarg1, _TF_Status * pasarg2) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Status **)&pasarg2; 
  result = (int)TF_OperationInputListLength(arg1,(char const *)arg2,arg3);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void * Delphi__TF_OperationInput(void * pasarg0) {
  void * cresult = 0 ;
  TF_Input arg1 ;
  TF_Input *argp1 ;
  _TF_Output result;
  
  argp1 = *(TF_Input **)&pasarg0; 
  if (!argp1) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Input");
    return 0;
  }
  arg1 = *argp1; 
  result = TF_OperationInput(arg1);
  *(TF_Output **)&cresult = new TF_Output((TF_Output &)result); 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationOutputNumConsumers(void * pasarg0) {
  int cresult = 0 ;
  TF_Output arg1 ;
  TF_Output *argp1 ;
  int result;
  
  argp1 = *(TF_Output **)&pasarg0; 
  if (!argp1) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return 0;
  }
  arg1 = *argp1; 
  result = (int)TF_OperationOutputNumConsumers(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationOutputConsumers(void * pasarg0, _TF_Input * pasarg1, int pasarg2) {
  int cresult = 0 ;
  TF_Output arg1 ;
  TF_Input *arg2 = (TF_Input *) 0 ;
  int arg3 ;
  TF_Output *argp1 ;
  int result;
  
  argp1 = *(TF_Output **)&pasarg0; 
  if (!argp1) {
    //     SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Attempt to dereference null TF_Output");
    return 0;
  }
  arg1 = *argp1; 
  arg2 = *(TF_Input **)&pasarg1; 
  arg3 = (int)pasarg2;
  result = (int)TF_OperationOutputConsumers(arg1,arg2,arg3);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationNumControlInputs(_TF_Operation * pasarg0) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (int)TF_OperationNumControlInputs(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationGetControlInputs(_TF_Operation * pasarg0, _TF_Operation ** pasarg1, int pasarg2) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  TF_Operation **arg2 = (TF_Operation **) 0 ;
  int arg3 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = *(TF_Operation ***)&pasarg1; 
  arg3 = (int)pasarg2;
  result = (int)TF_OperationGetControlInputs(arg1,arg2,arg3);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationNumControlOutputs(_TF_Operation * pasarg0) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  result = (int)TF_OperationNumControlOutputs(arg1);
  cresult = result; 
  return cresult;
}


SWIGEXPORT int Delphi__TF_OperationGetControlOutputs(_TF_Operation * pasarg0, _TF_Operation ** pasarg1, int pasarg2) {
  int cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  TF_Operation **arg2 = (TF_Operation **) 0 ;
  int arg3 ;
  int result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = *(TF_Operation ***)&pasarg1; 
  arg3 = (int)pasarg2;
  result = (int)TF_OperationGetControlOutputs(arg1,arg2,arg3);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_AttrMetadata_is_list_set(_TF_AttrMetadata * pasarg0, unsigned short pasarg1) {
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  unsigned char arg2 ;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  arg2 = (unsigned char)pasarg1;
  if (arg1) (arg1)->is_list = arg2;
}


SWIGEXPORT unsigned short Delphi__TF_AttrMetadata_is_list_get(_TF_AttrMetadata * pasarg0) {
  unsigned short cresult = 0 ;
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  Byte result;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  result = (unsigned char) ((arg1)->is_list);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_AttrMetadata_list_size_set(_TF_AttrMetadata * pasarg0, NativeUInt pasarg1) {
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  int64_t arg2 ;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  arg2 = (int64_t)pasarg1;
  if (arg1) (arg1)->list_size = arg2;
}


SWIGEXPORT NativeUInt Delphi__TF_AttrMetadata_list_size_get(_TF_AttrMetadata * pasarg0) {
  NativeUInt cresult = 0 ;
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  NativeUInt result;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  result =  ((arg1)->list_size);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_AttrMetadata_type_set(_TF_AttrMetadata * pasarg0, _TF_AttrType pasarg1) {
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  TF_AttrType arg2 ;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  arg2 = (TF_AttrType)pasarg1;
  if (arg1) (arg1)->type = arg2;
}


SWIGEXPORT _TF_AttrType Delphi__TF_AttrMetadata_type_get(_TF_AttrMetadata * pasarg0) {
  _TF_AttrType cresult = 0 ;
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  _TF_AttrType result;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  result = (TF_AttrType) ((arg1)->type);
  cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_AttrMetadata_total_size_set(_TF_AttrMetadata * pasarg0, NativeUInt pasarg1) {
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  int64_t arg2 ;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  arg2 = (int64_t)pasarg1;
  if (arg1) (arg1)->total_size = arg2;
}


SWIGEXPORT NativeUInt Delphi__TF_AttrMetadata_total_size_get(_TF_AttrMetadata * pasarg0) {
  NativeUInt cresult = 0 ;
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  NativeUInt result;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  result =  ((arg1)->total_size);
  cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_AttrMetadata * Delphi_new_TF_AttrMetadata() {
  _TF_AttrMetadata * cresult = 0 ;
  TF_AttrMetadata *result = 0 ;
  
  result = (TF_AttrMetadata *)new TF_AttrMetadata();
  *(TF_AttrMetadata **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi_delete_TF_AttrMetadata(_TF_AttrMetadata * pasarg0) {
  TF_AttrMetadata *arg1 = (TF_AttrMetadata *) 0 ;
  
  arg1 = *(TF_AttrMetadata **)&pasarg0; 
  delete arg1;
}


SWIGEXPORT void * Delphi__TF_OperationGetAttrMetadata(_TF_Operation * pasarg0, char * pasarg1, _TF_Status * pasarg2) {
  void * cresult = 0 ;
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  _TF_AttrMetadata result;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Status **)&pasarg2; 
  result = TF_OperationGetAttrMetadata(arg1,(char const *)arg2,arg3);
  *(TF_AttrMetadata **)&cresult = new TF_AttrMetadata((TF_AttrMetadata &)result); 
  return cresult;
}


SWIGEXPORT void Delphi__TF_OperationGetAttrString(_TF_Operation * pasarg0, char * pasarg1, void * pasarg2, NativeUInt pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  void *arg3 = (void *) 0 ;
  size_t arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void **)&pasarg2; 
  arg4 = (size_t)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrString(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrStringList(_TF_Operation * pasarg0, char * pasarg1, void ** pasarg2, size_t * pasarg3, int pasarg4, void * pasarg5, NativeUInt pasarg6, _TF_Status * pasarg7) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  void **arg3 = (void **) 0 ;
  size_t *arg4 = (size_t *) 0 ;
  int arg5 ;
  void *arg6 = (void *) 0 ;
  size_t arg7 ;
  TF_Status *arg8 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(void ***)&pasarg2; 
  arg4 = *(size_t **)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(void **)&pasarg5; 
  arg7 = (size_t)pasarg6;
  arg8 = *(TF_Status **)&pasarg7; 
  TF_OperationGetAttrStringList(arg1,(char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrInt(_TF_Operation * pasarg0, char * pasarg1, int64_t * pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t *arg3 = (int64_t *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrInt(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrIntList(_TF_Operation * pasarg0, char * pasarg1, int64_t * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t *arg3 = (int64_t *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrIntList(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrFloat(_TF_Operation * pasarg0, char * pasarg1, float * pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  float *arg3 = (float *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(float **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrFloat(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrFloatList(_TF_Operation * pasarg0, char * pasarg1, float * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  float *arg3 = (float *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(float **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrFloatList(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrBool(_TF_Operation * pasarg0, char * pasarg1, unsigned char * pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  unsigned char *arg3 = (unsigned char *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(unsigned char **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrBool(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrBoolList(_TF_Operation * pasarg0, char * pasarg1, unsigned char * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  unsigned char *arg3 = (unsigned char *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(unsigned char **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrBoolList(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrType(_TF_Operation * pasarg0, char * pasarg1, _TF_DataType * pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_DataType *arg3 = (TF_DataType *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_DataType **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrType(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrTypeList(_TF_Operation * pasarg0, char * pasarg1, _TF_DataType * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_DataType *arg3 = (TF_DataType *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_DataType **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrTypeList(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrShape(_TF_Operation * pasarg0, char * pasarg1, int64_t * pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t *arg3 = (int64_t *) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t **)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrShape(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrShapeList(_TF_Operation * pasarg0, char * pasarg1, int64_t ** pasarg2, int * pasarg3, int pasarg4, int64_t * pasarg5, int pasarg6, _TF_Status * pasarg7) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  int64_t **arg3 = (int64_t **) 0 ;
  int *arg4 = (int *) 0 ;
  int arg5 ;
  int64_t *arg6 = (int64_t *) 0 ;
  int arg7 ;
  TF_Status *arg8 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(int64_t ***)&pasarg2; 
  arg4 = *(int **)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(int64_t **)&pasarg5; 
  arg7 = (int)pasarg6;
  arg8 = *(TF_Status **)&pasarg7; 
  TF_OperationGetAttrShapeList(arg1,(char const *)arg2,arg3,arg4,arg5,arg6,arg7,arg8);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrTensorShapeProto(_TF_Operation * pasarg0, char * pasarg1, _TF_Buffer * pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Buffer *arg3 = (TF_Buffer *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Buffer **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrTensorShapeProto(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrTensorShapeProtoList(_TF_Operation * pasarg0, char * pasarg1, _TF_Buffer ** pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Buffer **arg3 = (TF_Buffer **) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Buffer ***)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrTensorShapeProtoList(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrTensor(_TF_Operation * pasarg0, char * pasarg1, _TF_Tensor ** pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Tensor **arg3 = (TF_Tensor **) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Tensor ***)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrTensor(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrTensorList(_TF_Operation * pasarg0, char * pasarg1, _TF_Tensor ** pasarg2, int pasarg3, _TF_Status * pasarg4) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Tensor **arg3 = (TF_Tensor **) 0 ;
  int arg4 ;
  TF_Status *arg5 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Tensor ***)&pasarg2; 
  arg4 = (int)pasarg3;
  arg5 = *(TF_Status **)&pasarg4; 
  TF_OperationGetAttrTensorList(arg1,(char const *)arg2,arg3,arg4,arg5);
}


SWIGEXPORT void Delphi__TF_OperationGetAttrValueProto(_TF_Operation * pasarg0, char * pasarg1, _TF_Buffer * pasarg2, _TF_Status * pasarg3) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Buffer *arg3 = (TF_Buffer *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Buffer **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_OperationGetAttrValueProto(arg1,(char const *)arg2,arg3,arg4);
}


SWIGEXPORT _TF_Operation * Delphi__TF_GraphOperationByName(_TF_Graph * pasarg0, char * pasarg1) {
  _TF_Operation * cresult = 0 ;
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Operation *result = 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  arg2 = (char *)pasarg1;
  result = (TF_Operation *)TF_GraphOperationByName(arg1,(char const *)arg2);
  *(TF_Operation **)&cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Operation * Delphi__TF_GraphNextOperation(_TF_Graph * pasarg0, size_t * pasarg1) {
  _TF_Operation * cresult = 0 ;
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  size_t *arg2 = (size_t *) 0 ;
  TF_Operation *result = 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  arg2 = *(size_t **)&pasarg1; 
  result = (TF_Operation *)TF_GraphNextOperation(arg1,arg2);
  *(TF_Operation **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_GraphToGraphDef(_TF_Graph * pasarg0, _TF_Buffer * pasarg1, _TF_Status * pasarg2) {
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  TF_Buffer *arg2 = (TF_Buffer *) 0 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  arg2 = *(TF_Buffer **)&pasarg1; 
  arg3 = *(TF_Status **)&pasarg2; 
  TF_GraphToGraphDef(arg1,arg2,arg3);
}


SWIGEXPORT _TF_ImportGraphDefOptions * Delphi__TF_NewImportGraphDefOptions() {
  _TF_ImportGraphDefOptions * cresult = 0 ;
  TF_ImportGraphDefOptions *result = 0 ;
  
  result = (TF_ImportGraphDefOptions *)TF_NewImportGraphDefOptions();
  *(TF_ImportGraphDefOptions **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_DeleteImportGraphDefOptions(_TF_ImportGraphDefOptions * pasarg0) {
  TF_ImportGraphDefOptions *arg1 = (TF_ImportGraphDefOptions *) 0 ;
  
  arg1 = *(TF_ImportGraphDefOptions **)&pasarg0; 
  TF_DeleteImportGraphDefOptions(arg1);
}


SWIGEXPORT void Delphi__TF_ImportGraphDefOptionsSetPrefix(_TF_ImportGraphDefOptions * pasarg0, char * pasarg1) {
  TF_ImportGraphDefOptions *arg1 = (TF_ImportGraphDefOptions *) 0 ;
  char *arg2 = (char *) 0 ;
  
  arg1 = *(TF_ImportGraphDefOptions **)&pasarg0; 
  arg2 = (char *)pasarg1;
  TF_ImportGraphDefOptionsSetPrefix(arg1,(char const *)arg2);
}


SWIGEXPORT void Delphi__TF_GraphImportGraphDef(_TF_Graph * pasarg0, _TF_Buffer const * pasarg1, _TF_ImportGraphDefOptions const * pasarg2, _TF_Status * pasarg3) {
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  TF_Buffer *arg2 = (TF_Buffer *) 0 ;
  TF_ImportGraphDefOptions *arg3 = (TF_ImportGraphDefOptions *) 0 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  arg2 = *(TF_Buffer **)&pasarg1; 
  arg3 = *(TF_ImportGraphDefOptions **)&pasarg2; 
  arg4 = *(TF_Status **)&pasarg3; 
  TF_GraphImportGraphDef(arg1,(TF_Buffer const *)arg2,(TF_ImportGraphDefOptions const *)arg3,arg4);
}


SWIGEXPORT void Delphi__TF_OperationToNodeDef(_TF_Operation * pasarg0, _TF_Buffer * pasarg1, _TF_Status * pasarg2) {
  TF_Operation *arg1 = (TF_Operation *) 0 ;
  TF_Buffer *arg2 = (TF_Buffer *) 0 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Operation **)&pasarg0; 
  arg2 = *(TF_Buffer **)&pasarg1; 
  arg3 = *(TF_Status **)&pasarg2; 
  TF_OperationToNodeDef(arg1,arg2,arg3);
}


SWIGEXPORT _TF_Session * Delphi__TF_NewSession(_TF_Graph * pasarg0, _TF_SessionOptions const * pasarg1, _TF_Status * pasarg2) {
  _TF_Session * cresult = 0 ;
  TF_Graph *arg1 = (TF_Graph *) 0 ;
  TF_SessionOptions *arg2 = (TF_SessionOptions *) 0 ;
  TF_Status *arg3 = (TF_Status *) 0 ;
  TF_Session *result = 0 ;
  
  arg1 = *(TF_Graph **)&pasarg0; 
  arg2 = *(TF_SessionOptions **)&pasarg1; 
  arg3 = *(TF_Status **)&pasarg2; 
  result = (TF_Session *)TF_NewSession(arg1,(TF_SessionOptions const *)arg2,arg3);
  *(TF_Session **)&cresult = result; 
  return cresult;
}


SWIGEXPORT _TF_Session * Delphi__TF_LoadSessionFromSavedModel(_TF_SessionOptions const * pasarg0, _TF_Buffer const * pasarg1, char * pasarg2, char const *const * pasarg3, int pasarg4, _TF_Graph * pasarg5, _TF_Buffer * pasarg6, _TF_Status * pasarg7) {
  _TF_Session * cresult = 0 ;
  TF_SessionOptions *arg1 = (TF_SessionOptions *) 0 ;
  TF_Buffer *arg2 = (TF_Buffer *) 0 ;
  char *arg3 = (char *) 0 ;
  char **arg4 = (char **) 0 ;
  int arg5 ;
  TF_Graph *arg6 = (TF_Graph *) 0 ;
  TF_Buffer *arg7 = (TF_Buffer *) 0 ;
  TF_Status *arg8 = (TF_Status *) 0 ;
  TF_Session *result = 0 ;
  
  arg1 = *(TF_SessionOptions **)&pasarg0; 
  arg2 = *(TF_Buffer **)&pasarg1; 
  arg3 = (char *)pasarg2;
  arg4 = *(char ***)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(TF_Graph **)&pasarg5; 
  arg7 = *(TF_Buffer **)&pasarg6; 
  arg8 = *(TF_Status **)&pasarg7; 
  result = (TF_Session *)TF_LoadSessionFromSavedModel((TF_SessionOptions const *)arg1,(TF_Buffer const *)arg2,(char const *)arg3,(char const *const *)arg4,arg5,arg6,arg7,arg8);
  *(TF_Session **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_CloseSession(_TF_Session * pasarg0, _TF_Status * pasarg1) {
  TF_Session *arg1 = (TF_Session *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Session **)&pasarg0; 
  arg2 = *(TF_Status **)&pasarg1; 
  TF_CloseSession(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_DeleteSession(_TF_Session * pasarg0, _TF_Status * pasarg1) {
  TF_Session *arg1 = (TF_Session *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Session **)&pasarg0; 
  arg2 = *(TF_Status **)&pasarg1; 
  TF_DeleteSession(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_SessionRun(_TF_Session * pasarg0, _TF_Buffer const * pasarg1, _TF_Output const * pasarg2, _TF_Tensor *const * pasarg3, int pasarg4, _TF_Output const * pasarg5, _TF_Tensor ** pasarg6, int pasarg7, _TF_Operation const *const * pasarg8, int pasarg9, _TF_Buffer * pasarg10, _TF_Status * pasarg11) {
  TF_Session *arg1 = (TF_Session *) 0 ;
  TF_Buffer *arg2 = (TF_Buffer *) 0 ;
  TF_Output *arg3 = (TF_Output *) 0 ;
  TF_Tensor **arg4 = (TF_Tensor **) 0 ;
  int arg5 ;
  TF_Output *arg6 = (TF_Output *) 0 ;
  TF_Tensor **arg7 = (TF_Tensor **) 0 ;
  int arg8 ;
  TF_Operation **arg9 = (TF_Operation **) 0 ;
  int arg10 ;
  TF_Buffer *arg11 = (TF_Buffer *) 0 ;
  TF_Status *arg12 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Session **)&pasarg0; 
  arg2 = *(TF_Buffer **)&pasarg1; 
  arg3 = *(TF_Output **)&pasarg2; 
  arg4 = *(TF_Tensor ***)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(TF_Output **)&pasarg5; 
  arg7 = *(TF_Tensor ***)&pasarg6; 
  arg8 = (int)pasarg7;
  arg9 = *(TF_Operation ***)&pasarg8; 
  arg10 = (int)pasarg9;
  arg11 = *(TF_Buffer **)&pasarg10; 
  arg12 = *(TF_Status **)&pasarg11; 
  TF_SessionRun(arg1,(TF_Buffer const *)arg2,(TF_Output const *)arg3,(TF_Tensor *const *)arg4,arg5,(TF_Output const *)arg6,arg7,arg8,(TF_Operation const *const *)arg9,arg10,arg11,arg12);
}


SWIGEXPORT void Delphi__TF_SessionPRunSetup(_TF_Session * pasarg0, _TF_Output const * pasarg1, int pasarg2, _TF_Output const * pasarg3, int pasarg4, _TF_Operation const *const * pasarg5, int pasarg6, char const ** pasarg7, _TF_Status * pasarg8) {
  TF_Session *arg1 = (TF_Session *) 0 ;
  TF_Output *arg2 = (TF_Output *) 0 ;
  int arg3 ;
  TF_Output *arg4 = (TF_Output *) 0 ;
  int arg5 ;
  TF_Operation **arg6 = (TF_Operation **) 0 ;
  int arg7 ;
  char **arg8 = (char **) 0 ;
  TF_Status *arg9 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Session **)&pasarg0; 
  arg2 = *(TF_Output **)&pasarg1; 
  arg3 = (int)pasarg2;
  arg4 = *(TF_Output **)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(TF_Operation ***)&pasarg5; 
  arg7 = (int)pasarg6;
  arg8 = *(char ***)&pasarg7; 
  arg9 = *(TF_Status **)&pasarg8; 
  TF_SessionPRunSetup(arg1,(TF_Output const *)arg2,arg3,(TF_Output const *)arg4,arg5,(TF_Operation const *const *)arg6,arg7,(char const **)arg8,arg9);
}


SWIGEXPORT void Delphi__TF_SessionPRun(_TF_Session * pasarg0, char * pasarg1, _TF_Output const * pasarg2, _TF_Tensor *const * pasarg3, int pasarg4, _TF_Output const * pasarg5, _TF_Tensor ** pasarg6, int pasarg7, _TF_Operation const *const * pasarg8, int pasarg9, _TF_Status * pasarg10) {
  TF_Session *arg1 = (TF_Session *) 0 ;
  char *arg2 = (char *) 0 ;
  TF_Output *arg3 = (TF_Output *) 0 ;
  TF_Tensor **arg4 = (TF_Tensor **) 0 ;
  int arg5 ;
  TF_Output *arg6 = (TF_Output *) 0 ;
  TF_Tensor **arg7 = (TF_Tensor **) 0 ;
  int arg8 ;
  TF_Operation **arg9 = (TF_Operation **) 0 ;
  int arg10 ;
  TF_Status *arg11 = (TF_Status *) 0 ;
  
  arg1 = *(TF_Session **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(TF_Output **)&pasarg2; 
  arg4 = *(TF_Tensor ***)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(TF_Output **)&pasarg5; 
  arg7 = *(TF_Tensor ***)&pasarg6; 
  arg8 = (int)pasarg7;
  arg9 = *(TF_Operation ***)&pasarg8; 
  arg10 = (int)pasarg9;
  arg11 = *(TF_Status **)&pasarg10; 
  TF_SessionPRun(arg1,(char const *)arg2,(TF_Output const *)arg3,(TF_Tensor *const *)arg4,arg5,(TF_Output const *)arg6,arg7,arg8,(TF_Operation const *const *)arg9,arg10,arg11);
}


SWIGEXPORT _TF_DeprecatedSession * Delphi__TF_NewDeprecatedSession(_TF_SessionOptions const * pasarg0, _TF_Status * pasarg1) {
  _TF_DeprecatedSession * cresult = 0 ;
  TF_SessionOptions *arg1 = (TF_SessionOptions *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  TF_DeprecatedSession *result = 0 ;
  
  arg1 = *(TF_SessionOptions **)&pasarg0; 
  arg2 = *(TF_Status **)&pasarg1; 
  result = (TF_DeprecatedSession *)TF_NewDeprecatedSession((TF_SessionOptions const *)arg1,arg2);
  *(TF_DeprecatedSession **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void Delphi__TF_CloseDeprecatedSession(_TF_DeprecatedSession * pasarg0, _TF_Status * pasarg1) {
  TF_DeprecatedSession *arg1 = (TF_DeprecatedSession *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  
  arg1 = *(TF_DeprecatedSession **)&pasarg0; 
  arg2 = *(TF_Status **)&pasarg1; 
  TF_CloseDeprecatedSession(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_DeleteDeprecatedSession(_TF_DeprecatedSession * pasarg0, _TF_Status * pasarg1) {
  TF_DeprecatedSession *arg1 = (TF_DeprecatedSession *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  
  arg1 = *(TF_DeprecatedSession **)&pasarg0; 
  arg2 = *(TF_Status **)&pasarg1; 
  TF_DeleteDeprecatedSession(arg1,arg2);
}


SWIGEXPORT void Delphi__TF_Reset(_TF_SessionOptions const * pasarg0, char const ** pasarg1, int pasarg2, _TF_Status * pasarg3) {
  TF_SessionOptions *arg1 = (TF_SessionOptions *) 0 ;
  char **arg2 = (char **) 0 ;
  int arg3 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_SessionOptions **)&pasarg0; 
  arg2 = *(char ***)&pasarg1; 
  arg3 = (int)pasarg2;
  arg4 = *(TF_Status **)&pasarg3; 
  TF_Reset((TF_SessionOptions const *)arg1,(char const **)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_ExtendGraph(_TF_DeprecatedSession * pasarg0, void * pasarg1, NativeUInt pasarg2, _TF_Status * pasarg3) {
  TF_DeprecatedSession *arg1 = (TF_DeprecatedSession *) 0 ;
  void *arg2 = (void *) 0 ;
  size_t arg3 ;
  TF_Status *arg4 = (TF_Status *) 0 ;
  
  arg1 = *(TF_DeprecatedSession **)&pasarg0; 
  arg2 = *(void **)&pasarg1; 
  arg3 = (size_t)pasarg2;
  arg4 = *(TF_Status **)&pasarg3; 
  TF_ExtendGraph(arg1,(void const *)arg2,arg3,arg4);
}


SWIGEXPORT void Delphi__TF_Run(_TF_DeprecatedSession * pasarg0, _TF_Buffer const * pasarg1, char const ** pasarg2, _TF_Tensor ** pasarg3, int pasarg4, char const ** pasarg5, _TF_Tensor ** pasarg6, int pasarg7, char const ** pasarg8, int pasarg9, _TF_Buffer * pasarg10, _TF_Status * pasarg11) {
  TF_DeprecatedSession *arg1 = (TF_DeprecatedSession *) 0 ;
  TF_Buffer *arg2 = (TF_Buffer *) 0 ;
  char **arg3 = (char **) 0 ;
  TF_Tensor **arg4 = (TF_Tensor **) 0 ;
  int arg5 ;
  char **arg6 = (char **) 0 ;
  TF_Tensor **arg7 = (TF_Tensor **) 0 ;
  int arg8 ;
  char **arg9 = (char **) 0 ;
  int arg10 ;
  TF_Buffer *arg11 = (TF_Buffer *) 0 ;
  TF_Status *arg12 = (TF_Status *) 0 ;
  
  arg1 = *(TF_DeprecatedSession **)&pasarg0; 
  arg2 = *(TF_Buffer **)&pasarg1; 
  arg3 = *(char ***)&pasarg2; 
  arg4 = *(TF_Tensor ***)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(char ***)&pasarg5; 
  arg7 = *(TF_Tensor ***)&pasarg6; 
  arg8 = (int)pasarg7;
  arg9 = *(char ***)&pasarg8; 
  arg10 = (int)pasarg9;
  arg11 = *(TF_Buffer **)&pasarg10; 
  arg12 = *(TF_Status **)&pasarg11; 
  TF_Run(arg1,(TF_Buffer const *)arg2,(char const **)arg3,arg4,arg5,(char const **)arg6,arg7,arg8,(char const **)arg9,arg10,arg11,arg12);
}


SWIGEXPORT void Delphi__TF_PRunSetup(_TF_DeprecatedSession * pasarg0, char const ** pasarg1, int pasarg2, char const ** pasarg3, int pasarg4, char const ** pasarg5, int pasarg6, char const ** pasarg7, _TF_Status * pasarg8) {
  TF_DeprecatedSession *arg1 = (TF_DeprecatedSession *) 0 ;
  char **arg2 = (char **) 0 ;
  int arg3 ;
  char **arg4 = (char **) 0 ;
  int arg5 ;
  char **arg6 = (char **) 0 ;
  int arg7 ;
  char **arg8 = (char **) 0 ;
  TF_Status *arg9 = (TF_Status *) 0 ;
  
  arg1 = *(TF_DeprecatedSession **)&pasarg0; 
  arg2 = *(char ***)&pasarg1; 
  arg3 = (int)pasarg2;
  arg4 = *(char ***)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(char ***)&pasarg5; 
  arg7 = (int)pasarg6;
  arg8 = *(char ***)&pasarg7; 
  arg9 = *(TF_Status **)&pasarg8; 
  TF_PRunSetup(arg1,(char const **)arg2,arg3,(char const **)arg4,arg5,(char const **)arg6,arg7,(char const **)arg8,arg9);
}


SWIGEXPORT void Delphi__TF_PRun(_TF_DeprecatedSession * pasarg0, char * pasarg1, char const ** pasarg2, _TF_Tensor ** pasarg3, int pasarg4, char const ** pasarg5, _TF_Tensor ** pasarg6, int pasarg7, char const ** pasarg8, int pasarg9, _TF_Status * pasarg10) {
  TF_DeprecatedSession *arg1 = (TF_DeprecatedSession *) 0 ;
  char *arg2 = (char *) 0 ;
  char **arg3 = (char **) 0 ;
  TF_Tensor **arg4 = (TF_Tensor **) 0 ;
  int arg5 ;
  char **arg6 = (char **) 0 ;
  TF_Tensor **arg7 = (TF_Tensor **) 0 ;
  int arg8 ;
  char **arg9 = (char **) 0 ;
  int arg10 ;
  TF_Status *arg11 = (TF_Status *) 0 ;
  
  arg1 = *(TF_DeprecatedSession **)&pasarg0; 
  arg2 = (char *)pasarg1;
  arg3 = *(char ***)&pasarg2; 
  arg4 = *(TF_Tensor ***)&pasarg3; 
  arg5 = (int)pasarg4;
  arg6 = *(char ***)&pasarg5; 
  arg7 = *(TF_Tensor ***)&pasarg6; 
  arg8 = (int)pasarg7;
  arg9 = *(char ***)&pasarg8; 
  arg10 = (int)pasarg9;
  arg11 = *(TF_Status **)&pasarg10; 
  TF_PRun(arg1,(char const *)arg2,(char const **)arg3,arg4,arg5,(char const **)arg6,arg7,arg8,(char const **)arg9,arg10,arg11);
}


SWIGEXPORT _TF_Library * Delphi__TF_LoadLibrary(char * pasarg0, _TF_Status * pasarg1) {
  _TF_Library * cresult = 0 ;
  char *arg1 = (char *) 0 ;
  TF_Status *arg2 = (TF_Status *) 0 ;
  TF_Library *result = 0 ;
  
  arg1 = (char *)pasarg0;
  arg2 = *(TF_Status **)&pasarg1; 
  result = (TF_Library *)TF_LoadLibrary((char const *)arg1,arg2);
  *(TF_Library **)&cresult = result; 
  return cresult;
}


SWIGEXPORT void * Delphi__TF_GetOpList(_TF_Library * pasarg0) {
  void * cresult = 0 ;
  TF_Library *arg1 = (TF_Library *) 0 ;
  _TF_Buffer result;
  
  arg1 = *(TF_Library **)&pasarg0; 
  result = TF_GetOpList(arg1);
  *(TF_Buffer **)&cresult = new TF_Buffer((TF_Buffer &)result); 
  return cresult;
}


SWIGEXPORT void Delphi__TF_DeleteLibraryHandle(_TF_Library * pasarg0) {
  TF_Library *arg1 = (TF_Library *) 0 ;
  
  arg1 = *(TF_Library **)&pasarg0; 
  TF_DeleteLibraryHandle(arg1);
}


SWIGEXPORT _TF_Buffer * Delphi__TF_GetAllOpList() {
  _TF_Buffer * cresult = 0 ;
  TF_Buffer *result = 0 ;
  
  result = (TF_Buffer *)TF_GetAllOpList();
  *(TF_Buffer **)&cresult = result; 
  return cresult;
}


#ifdef __cplusplus
}
#endif

