10b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle/* Copyright 2017 The TensorFlow Authors. All Rights Reserved.
20b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
30b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew SelleLicensed under the Apache License, Version 2.0 (the "License");
40b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selleyou may not use this file except in compliance with the License.
50b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew SelleYou may obtain a copy of the License at
60b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
70b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle    http://www.apache.org/licenses/LICENSE-2.0
80b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
90b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew SelleUnless required by applicable law or agreed to in writing, software
100b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selledistributed under the License is distributed on an "AS IS" BASIS,
110b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew SelleWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
120b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew SelleSee the License for the specific language governing permissions and
130b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Sellelimitations under the License.
140b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle==============================================================================*/
15f8347ceebbad0e06552633fcdf8e63f52246ba62Sanjoy Das#ifndef TENSORFLOW_CONTRIB_LITE_KERNELS_INTERNAL_COMPATIBILITY_H_
16f8347ceebbad0e06552633fcdf8e63f52246ba62Sanjoy Das#define TENSORFLOW_CONTRIB_LITE_KERNELS_INTERNAL_COMPATIBILITY_H_
170b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
180b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#include <cassert>
190b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#include <cstdint>
200b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#include <cstdlib>
210b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
220b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_DCHECK
230b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_DCHECK(condition) (condition) ? (void)0 : assert(false)
240b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
250b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
260b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_DCHECK_EQ
270b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_DCHECK_EQ(x, y) ((x) == (y)) ? (void)0 : assert(false)
280b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
290b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
3077b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower#ifndef TFLITE_DCHECK_NE
3177b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower#define TFLITE_DCHECK_NE(x, y) ((x) != (y)) ? (void)0 : assert(false)
3277b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower#endif
3377b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower
340b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_DCHECK_GE
350b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_DCHECK_GE(x, y) ((x) >= (y)) ? (void)0 : assert(false)
360b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
370b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
380b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_DCHECK_GT
390b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_DCHECK_GT(x, y) ((x) > (y)) ? (void)0 : assert(false)
400b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
410b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
420b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_DCHECK_LE
430b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_DCHECK_LE(x, y) ((x) <= (y)) ? (void)0 : assert(false)
440b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
450b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
460b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_DCHECK_LT
470b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_DCHECK_LT(x, y) ((x) < (y)) ? (void)0 : assert(false)
480b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
490b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
500b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle// TODO(ahentz): Clean up: We should stick to the DCHECK versions.
510b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_CHECK
520b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_CHECK(condition) (condition) ? (void)0 : abort()
530b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
540b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
550b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_CHECK_EQ
560b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_CHECK_EQ(x, y) ((x) == (y)) ? (void)0 : abort()
570b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
580b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
5977b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower#ifndef TFLITE_CHECK_NE
6077b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower#define TFLITE_CHECK_NE(x, y) ((x) != (y)) ? (void)0 : abort()
6177b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower#endif
6277b22b38f03e5d9b52909d444f08592ffbe0334dA. Unique TensorFlower
630b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_CHECK_GE
640b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_CHECK_GE(x, y) ((x) >= (y)) ? (void)0 : abort()
650b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
660b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
670b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_CHECK_GT
680b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_CHECK_GT(x, y) ((x) > (y)) ? (void)0 : abort()
690b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
700b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
710b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_CHECK_LE
720b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_CHECK_LE(x, y) ((x) <= (y)) ? (void)0 : abort()
730b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
740b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
750b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#ifndef TFLITE_CHECK_LT
760b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#define TFLITE_CHECK_LT(x, y) ((x) < (y)) ? (void)0 : abort()
770b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle#endif
780b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
790b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle// TODO(ahentz): Clean up.
800b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selleusing uint8 = std::uint8_t;
810b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selleusing int16 = std::int16_t;
820b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selleusing uint16 = std::uint16_t;
830b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selleusing int32 = std::int32_t;
840b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selleusing uint32 = std::uint32_t;
850b15439f8f0f2d4755587f4096c3ea04cb199d23Andrew Selle
86f8347ceebbad0e06552633fcdf8e63f52246ba62Sanjoy Das#endif  // TENSORFLOW_CONTRIB_LITE_KERNELS_INTERNAL_COMPATIBILITY_H_
87