| /* 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_ |