/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
you may not use this file except in compliance with the License.
|
You may obtain a copy of the License at
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
Unless required by applicable law or agreed to in writing, software
|
distributed under the License is distributed on an "AS IS" BASIS,
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
See the License for the specific language governing permissions and
|
limitations under the License.
|
==============================================================================*/
|
|
#ifndef TENSORFLOW_C_TF_DATATYPE_H_
|
#define TENSORFLOW_C_TF_DATATYPE_H_
|
|
#include <stddef.h>
|
|
// Macro to control visibility of exported symbols in the shared library (.so,
|
// .dylib, .dll).
|
// This duplicates the TF_EXPORT macro definition in
|
// tensorflow/core/platform/macros.h in order to keep this .h file independent
|
// of any other includes.
|
#ifdef SWIG
|
#define TF_CAPI_EXPORT
|
#else
|
#if defined(_WIN32)
|
#ifdef TF_COMPILE_LIBRARY
|
#define TF_CAPI_EXPORT __declspec(dllexport)
|
#else
|
#define TF_CAPI_EXPORT __declspec(dllimport)
|
#endif // TF_COMPILE_LIBRARY
|
#else
|
#define TF_CAPI_EXPORT __attribute__((visibility("default")))
|
#endif // _WIN32
|
#endif // SWIG
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
// --------------------------------------------------------------------------
|
// TF_DataType holds the type for a scalar value. E.g., one slot in a tensor.
|
// The enum values here are identical to corresponding values in types.proto.
|
typedef enum TF_DataType {
|
TF_FLOAT = 1,
|
TF_DOUBLE = 2,
|
TF_INT32 = 3, // Int32 tensors are always in 'host' memory.
|
TF_UINT8 = 4,
|
TF_INT16 = 5,
|
TF_INT8 = 6,
|
TF_STRING = 7,
|
TF_COMPLEX64 = 8, // Single-precision complex
|
TF_COMPLEX = 8, // Old identifier kept for API backwards compatibility
|
TF_INT64 = 9,
|
TF_BOOL = 10,
|
TF_QINT8 = 11, // Quantized int8
|
TF_QUINT8 = 12, // Quantized uint8
|
TF_QINT32 = 13, // Quantized int32
|
TF_BFLOAT16 = 14, // Float32 truncated to 16 bits. Only for cast ops.
|
TF_QINT16 = 15, // Quantized int16
|
TF_QUINT16 = 16, // Quantized uint16
|
TF_UINT16 = 17,
|
TF_COMPLEX128 = 18, // Double-precision complex
|
TF_HALF = 19,
|
TF_RESOURCE = 20,
|
TF_VARIANT = 21,
|
TF_UINT32 = 22,
|
TF_UINT64 = 23,
|
} TF_DataType;
|
|
// TF_DataTypeSize returns the sizeof() for the underlying type corresponding
|
// to the given TF_DataType enum value. Returns 0 for variable length types
|
// (eg. TF_STRING) or on failure.
|
TF_CAPI_EXPORT extern size_t TF_DataTypeSize(TF_DataType dt);
|
|
#ifdef __cplusplus
|
} /* end extern "C" */
|
#endif
|
|
#endif // TENSORFLOW_C_TF_DATATYPE_H_
|