text: //this file was generated by ../../../../../../scripts/onnx_generator/OperatorTemplate.py
  #include "operator__ai_onnx__batchnormalization__6.h"
  #include "tracing.h"
  #include "utils.h"
  
  operator_status
  prepare_operator__ai_onnx__batchnormalization__6(
      Onnx__NodeProto *ctx
  )
  {
      TRACE_ENTRY(1);
  
      TRACE_NODE(2, true, ctx->onnx_node);
  
      /* UNCOMMENT AS NEEDED */
  
      //Onnx__TensorProto *i_X = searchInputByIndex(ctx, 0);
      //Onnx__TensorProto *i_scale = searchInputByIndex(ctx, 1);
      //Onnx__TensorProto *i_B = searchInputByIndex(ctx, 2);
      //Onnx__TensorProto *i_mean = searchInputByIndex(ctx, 3);
      //Onnx__TensorProto *i_var = searchInputByIndex(ctx, 4);
  
      // TRACE_TENSOR(2, true, i_X);
      // TRACE_TENSOR(2, true, i_scale);
      // TRACE_TENSOR(2, true, i_B);
      // TRACE_TENSOR(2, true, i_mean);
      // TRACE_TENSOR(2, true, i_var);
  
      // Onnx__AttributeProto *a_epsilon = searchAttributeNyName(ctx->onnx_node->n_attribute,ctx->onnx_node->attribute,"epsilon");
      // Onnx__AttributeProto *a_is_test = searchAttributeNyName(ctx->onnx_node->n_attribute,ctx->onnx_node->attribute,"is_test");
      // Onnx__AttributeProto *a_momentum = searchAttributeNyName(ctx->onnx_node->n_attribute,ctx->onnx_node->attribute,"momentum");
      // Onnx__AttributeProto *a_spatial = searchAttributeNyName(ctx->onnx_node->n_attribute,ctx->onnx_node->attribute,"spatial");
  
      // TRACE_ATTRIBUTE(2, a_epsilon, a_epsilon);
      // TRACE_ATTRIBUTE(2, a_is_test, a_is_test);
      // TRACE_ATTRIBUTE(2, a_momentum, a_momentum);
      // TRACE_ATTRIBUTE(2, a_spatial, a_spatial);
  
      Onnx__TensorProto *o_Y = searchOutputByIndex(ctx, 0);
      Onnx__TensorProto *o_mean = searchOutputByIndex(ctx, 1);
      Onnx__TensorProto *o_var = searchOutputByIndex(ctx, 2);
      Onnx__TensorProto *o_saved_mean = searchOutputByIndex(ctx, 3);
      Onnx__TensorProto *o_saved_var = searchOutputByIndex(ctx, 4);
  
      /* ALLOCATE AND INITIALIZE CONTEXT HERE IF NEEDED */
  
      // float default_epsilon = ;
      // int64_t default_is_test = ;
      // float default_momentum = ;
      // int64_t default_spatial = ;
  
      // context_operator__ai_onnx__batchnormalization__6 *op_ctx = NULL;
      // op_ctx = malloc(sizeof(context_operator__ai_onnx__batchnormalization__6));
      // TRACE_FATAL(0 , !op_ctx, "could not allocate executer_context");
  
      // op_ctx->epsilon = a_epsilon?a_epsilon->f:default_epsilon;
      // op_ctx->is_test = a_is_test?a_is_test->i:default_is_test;
      // op_ctx->momentum = a_momentum?a_momentum->f:default_momentum;
      // op_ctx->spatial = a_spatial?a_spatial->i:default_spatial;
  
      // TRACE_VAR(2, true, op_ctx->epsilon, "%f");
      // TRACE_VAR(2, true, op_ctx->is_test, "%" PRId64);
      // TRACE_VAR(2, true, op_ctx->momentum, "%f");
      // TRACE_VAR(2, true, op_ctx->spatial, "%" PRId64);
  
      /* INITIALIZE OUTPUTS DATA_TYPE AND SHAPE HERE */
  
  
      /* MALLOC OUTPUT TENSORS HERE */
  
      mallocTensorData(o_Y);
      mallocTensorData(o_mean);
      mallocTensorData(o_var);
      mallocTensorData(o_saved_mean);
      mallocTensorData(o_saved_var);
  
      // TRACE_TENSOR(2, true, o_Y);
      // TRACE_TENSOR(2, mean, o_mean);
      // TRACE_TENSOR(2, var, o_var);
      // TRACE_TENSOR(2, saved_mean, o_saved_mean);
      // TRACE_TENSOR(2, saved_var, o_saved_var);
  
      /* CHOOSE EXECUTER AND CONTEXT HERE */
      /* YOU MAY USE THE GENERATED RESOLVER */
  
      ctx->executer = execute_operator__ai_onnx__batchnormalization__6;
      // ctx->executer_context = op_ctx;
  
      TRACE_EXIT(1);
  
      /* CHANGE RETURN CODE IF THIS PREPARER IS VALID */
      return OP_ENOSYS;
      // return OP_OK;
  }