1/* Copyright 2019 The TensorFlow Authors. All Rights Reserved.
2
3Licensed under the Apache License, Version 2.0 (the "License");
4you may not use this file except in compliance with the License.
5You may obtain a copy of the License at
6
7 http://www.apache.org/licenses/LICENSE-2.0
8
9Unless required by applicable law or agreed to in writing, software
10distributed under the License is distributed on an "AS IS" BASIS,
11WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12See the License for the specific language governing permissions and
13limitations under the License.
14==============================================================================*/
15#ifndef TENSORFLOW_LITE_KERNELS_BUILTIN_OP_KERNELS_H_
16#define TENSORFLOW_LITE_KERNELS_BUILTIN_OP_KERNELS_H_
17
18#include "tensorflow/lite/c/common.h"
19
20namespace tflite {
21namespace ops {
22namespace builtin {
23
24// Forward declaration of all builtin op kernel registration methods. These
25// registrations are included with the standard `BuiltinOpResolver`.
26//
27// This header is particularly useful in cases where only a subset of ops are
28// needed. In such cases, the client can selectively add only the registrations
29// their model requires, using a custom `OpResolver` or `MutableOpResolver`.
30// Selective registration in turn allows the linker to strip unused kernels.
31//
32// TODO(b/184734878): auto-generate this header file from the BuiltinOperator
33// enum in the FlatBuffer schema.
34
35TfLiteRegistration* Register_ABS();
36TfLiteRegistration* Register_ADD();
37TfLiteRegistration* Register_ADD_N();
38TfLiteRegistration* Register_ARG_MAX();
39TfLiteRegistration* Register_ARG_MIN();
40TfLiteRegistration* Register_ASSIGN_VARIABLE();
41TfLiteRegistration* Register_ATAN2();
42TfLiteRegistration* Register_AVERAGE_POOL_2D();
43TfLiteRegistration* Register_BATCH_TO_SPACE_ND();
44TfLiteRegistration* Register_BATCH_MATMUL();
45TfLiteRegistration* Register_BIDIRECTIONAL_SEQUENCE_LSTM();
46TfLiteRegistration* Register_BIDIRECTIONAL_SEQUENCE_RNN();
47TfLiteRegistration* Register_BROADCAST_ARGS();
48TfLiteRegistration* Register_BROADCAST_TO();
49TfLiteRegistration* Register_BUCKETIZE();
50TfLiteRegistration* Register_CALL_ONCE();
51TfLiteRegistration* Register_CAST();
52TfLiteRegistration* Register_CEIL();
53TfLiteRegistration* Register_COMPLEX_ABS();
54TfLiteRegistration* Register_CONCATENATION();
55TfLiteRegistration* Register_CONV_2D();
56TfLiteRegistration* Register_CONV_3D();
57TfLiteRegistration* Register_CONV_3D_TRANSPOSE();
58TfLiteRegistration* Register_COS();
59TfLiteRegistration* Register_CUMSUM();
60TfLiteRegistration* Register_DENSIFY();
61TfLiteRegistration* Register_DEPTH_TO_SPACE();
62TfLiteRegistration* Register_DEPTHWISE_CONV_2D();
63TfLiteRegistration* Register_DEQUANTIZE();
64TfLiteRegistration* Register_DIV();
65TfLiteRegistration* Register_DYNAMIC_UPDATE_SLICE();
66TfLiteRegistration* Register_ELU();
67TfLiteRegistration* Register_EMBEDDING_LOOKUP();
68TfLiteRegistration* Register_EMBEDDING_LOOKUP_SPARSE();
69TfLiteRegistration* Register_EQUAL();
70TfLiteRegistration* Register_EXP();
71TfLiteRegistration* Register_EXPAND_DIMS();
72TfLiteRegistration* Register_FAKE_QUANT();
73TfLiteRegistration* Register_FILL();
74TfLiteRegistration* Register_FLOOR();
75TfLiteRegistration* Register_FLOOR_DIV();
76TfLiteRegistration* Register_FLOOR_MOD();
77TfLiteRegistration* Register_FULLY_CONNECTED();
78TfLiteRegistration* Register_GATHER();
79TfLiteRegistration* Register_GATHER_ND();
80TfLiteRegistration* Register_GELU();
81TfLiteRegistration* Register_GREATER();
82TfLiteRegistration* Register_GREATER_EQUAL();
83TfLiteRegistration* Register_HARD_SWISH();
84TfLiteRegistration* Register_HASHTABLE();
85TfLiteRegistration* Register_HASHTABLE_FIND();
86TfLiteRegistration* Register_HASHTABLE_LOOKUP();
87TfLiteRegistration* Register_HASHTABLE_IMPORT();
88TfLiteRegistration* Register_HASHTABLE_SIZE();
89TfLiteRegistration* Register_IF();
90TfLiteRegistration* Register_IMAG();
91TfLiteRegistration* Register_L2_NORMALIZATION();
92TfLiteRegistration* Register_L2_POOL_2D();
93TfLiteRegistration* Register_LEAKY_RELU();
94TfLiteRegistration* Register_LESS();
95TfLiteRegistration* Register_LESS_EQUAL();
96TfLiteRegistration* Register_LOCAL_RESPONSE_NORMALIZATION();
97TfLiteRegistration* Register_LOG();
98TfLiteRegistration* Register_LOGICAL_AND();
99TfLiteRegistration* Register_LOGICAL_NOT();
100TfLiteRegistration* Register_LOGICAL_OR();
101TfLiteRegistration* Register_LOGISTIC();
102TfLiteRegistration* Register_LOG_SOFTMAX();
103TfLiteRegistration* Register_LSH_PROJECTION();
104TfLiteRegistration* Register_LSTM();
105TfLiteRegistration* Register_MATRIX_DIAG();
106TfLiteRegistration* Register_MATRIX_SET_DIAG();
107TfLiteRegistration* Register_MAXIMUM();
108TfLiteRegistration* Register_MAX_POOL_2D();
109TfLiteRegistration* Register_MEAN();
110TfLiteRegistration* Register_MINIMUM();
111TfLiteRegistration* Register_MIRROR_PAD();
112TfLiteRegistration* Register_MUL();
113TfLiteRegistration* Register_NEG();
114TfLiteRegistration* Register_NON_MAX_SUPPRESSION_V4();
115TfLiteRegistration* Register_NON_MAX_SUPPRESSION_V5();
116TfLiteRegistration* Register_NOT_EQUAL();
117TfLiteRegistration* Register_ONE_HOT();
118TfLiteRegistration* Register_PACK();
119TfLiteRegistration* Register_PAD();
120TfLiteRegistration* Register_PADV2();
121TfLiteRegistration* Register_POW();
122TfLiteRegistration* Register_PRELU();
123TfLiteRegistration* Register_QUANTIZE();
124TfLiteRegistration* Register_MULTINOMIAL();
125TfLiteRegistration* Register_RANDOM_STANDARD_NORMAL();
126TfLiteRegistration* Register_RANDOM_UNIFORM();
127TfLiteRegistration* Register_RANGE();
128TfLiteRegistration* Register_RANK();
129TfLiteRegistration* Register_READ_VARIABLE();
130TfLiteRegistration* Register_REAL();
131TfLiteRegistration* Register_REDUCE_ALL();
132TfLiteRegistration* Register_REDUCE_ANY();
133TfLiteRegistration* Register_REDUCE_MAX();
134TfLiteRegistration* Register_REDUCE_MIN();
135TfLiteRegistration* Register_REDUCE_PROD();
136TfLiteRegistration* Register_RELU();
137TfLiteRegistration* Register_RELU6();
138TfLiteRegistration* Register_RELU_N1_TO_1();
139TfLiteRegistration* Register_RELU_0_TO_1();
140TfLiteRegistration* Register_RESHAPE();
141TfLiteRegistration* Register_RESIZE_BILINEAR();
142TfLiteRegistration* Register_RESIZE_NEAREST_NEIGHBOR();
143TfLiteRegistration* Register_REVERSE_SEQUENCE();
144TfLiteRegistration* Register_REVERSE_V2();
145TfLiteRegistration* Register_RFFT2D();
146TfLiteRegistration* Register_RNN();
147TfLiteRegistration* Register_ROUND();
148TfLiteRegistration* Register_RSQRT();
149TfLiteRegistration* Register_SCATTER_ND();
150TfLiteRegistration* Register_SEGMENT_SUM();
151TfLiteRegistration* Register_SELECT();
152TfLiteRegistration* Register_SELECT_V2();
153TfLiteRegistration* Register_SHAPE();
154TfLiteRegistration* Register_SIGN();
155TfLiteRegistration* Register_SIN();
156TfLiteRegistration* Register_SKIP_GRAM();
157TfLiteRegistration* Register_SLICE();
158TfLiteRegistration* Register_SOFTMAX();
159TfLiteRegistration* Register_SPACE_TO_BATCH_ND();
160TfLiteRegistration* Register_SPACE_TO_DEPTH();
161TfLiteRegistration* Register_SPARSE_TO_DENSE();
162TfLiteRegistration* Register_SPLIT();
163TfLiteRegistration* Register_SPLIT_V();
164TfLiteRegistration* Register_SQRT();
165TfLiteRegistration* Register_SQUARE();
166TfLiteRegistration* Register_SQUARED_DIFFERENCE();
167TfLiteRegistration* Register_SQUEEZE();
168TfLiteRegistration* Register_STRIDED_SLICE();
169TfLiteRegistration* Register_SUB();
170TfLiteRegistration* Register_SUM();
171TfLiteRegistration* Register_SVDF();
172TfLiteRegistration* Register_TANH();
173TfLiteRegistration* Register_TILE();
174TfLiteRegistration* Register_TOPK_V2();
175TfLiteRegistration* Register_TRANSPOSE();
176TfLiteRegistration* Register_TRANSPOSE_CONV();
177TfLiteRegistration* Register_UNIDIRECTIONAL_SEQUENCE_LSTM();
178TfLiteRegistration* Register_UNIDIRECTIONAL_SEQUENCE_RNN();
179TfLiteRegistration* Register_UNIQUE();
180TfLiteRegistration* Register_UNPACK();
181TfLiteRegistration* Register_UNSORTED_SEGMENT_MAX();
182TfLiteRegistration* Register_UNSORTED_SEGMENT_MIN();
183TfLiteRegistration* Register_UNSORTED_SEGMENT_PROD();
184TfLiteRegistration* Register_UNSORTED_SEGMENT_SUM();
185TfLiteRegistration* Register_VAR_HANDLE();
186TfLiteRegistration* Register_WHERE();
187TfLiteRegistration* Register_WHILE();
188TfLiteRegistration* Register_ZEROS_LIKE();
189
190} // namespace builtin
191} // namespace ops
192} // namespace tflite
193
194#endif // TENSORFLOW_LITE_KERNELS_BUILTIN_OP_KERNELS_H_
195