aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/python/kernel_tests/ackermann_op.cc
diff options
context:
space:
mode:
authorGravatar Anna R <annarev@google.com>2018-05-31 13:11:43 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-05-31 13:15:21 -0700
commit106191ccf06b49f7802736a63932a613546b56c5 (patch)
tree126938105e69b86f24527eeb080938da71f315c7 /tensorflow/python/kernel_tests/ackermann_op.cc
parenteebbcaf554fb89059054936491763fde9cf9513d (diff)
Moving generated API to tensorflow/.
PiperOrigin-RevId: 198767512
Diffstat (limited to 'tensorflow/python/kernel_tests/ackermann_op.cc')
-rw-r--r--tensorflow/python/kernel_tests/ackermann_op.cc46
1 files changed, 46 insertions, 0 deletions
diff --git a/tensorflow/python/kernel_tests/ackermann_op.cc b/tensorflow/python/kernel_tests/ackermann_op.cc
new file mode 100644
index 0000000000..d42ca6f662
--- /dev/null
+++ b/tensorflow/python/kernel_tests/ackermann_op.cc
@@ -0,0 +1,46 @@
+/* Copyright 2015 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.
+==============================================================================*/
+
+// An example Op.
+
+#include "tensorflow/core/framework/op.h"
+#include "tensorflow/core/framework/op_kernel.h"
+
+namespace tensorflow {
+
+REGISTER_OP("Ackermann")
+ .Output("ackermann: string")
+ .Doc(R"doc(
+Output a fact about the ackermann function.
+)doc");
+
+class AckermannOp : public OpKernel {
+ public:
+ explicit AckermannOp(OpKernelConstruction* context) : OpKernel(context) {}
+
+ void Compute(OpKernelContext* context) override {
+ // Output a scalar string.
+ Tensor* output_tensor = nullptr;
+ OP_REQUIRES_OK(context,
+ context->allocate_output(0, TensorShape(), &output_tensor));
+ auto output = output_tensor->scalar<string>();
+
+ output() = "A(m, 0) == A(m-1, 1)";
+ }
+};
+
+REGISTER_KERNEL_BUILDER(Name("Ackermann").Device(DEVICE_CPU), AckermannOp);
+
+} // namespace tensorflow