//this file was generated by ../../../../../../scripts/onnx_generator/OperatorHeader.py
# ifndef OPERATOR_OPERATOR__AI_ONNX__LEAKYRELU__1_H
# define OPERATOR_OPERATOR__AI_ONNX__LEAKYRELU__1_H

# include "operators/operator.h"
# include "operators/operator_stub.h"
# include "operators/operator_info.h"

/**
 * ai.onnx operator 'LeakyRelu' version 1
 *
 * @param[in]  ctx  Operator context
 * @return          Status code
 *
 * LeakyRelu takes input data (Tensor<T>) and an argument alpha, and produces one
 * output data (Tensor<T>) where the function `f(x) = alpha * x for x < 0`,
 * `f(x) = x for x >= 0`, is applied to the data tensor elementwise.
 * 
 * Constraint T:
 *   Constrain input and output types to float tensors.
 *   Allowed Types: tensor_double, tensor_float, tensor_float16
 * Input T X:
 *   Input tensor
 *   Allowed Types: tensor_double, tensor_float, tensor_float16
 * Output T Y:
 *   Output tensor
 *   Allowed Types: tensor_double, tensor_float, tensor_float16
 * Attribute FLOAT alpha (optional):
 *   Coefficient of leakage default to 0.01.
 * 
 * Attribute INTS consumed_inputs (optional):
 *   legacy optimization attribute.
*
* @since version 1
*
 * @see io/onnx/onnx/defs/math/old.cc:501
 * @see https://github.com/onnx/onnx/blob/master/docs/Operators.md#LeakyRelu
*/

operator_status
prepare_operator__ai_onnx__leakyrelu__1(
    Onnx__NodeProto *ctx
);

extern operator_info info_operator__ai_onnx__leakyrelu__1;

typedef struct {
    float alpha;
    size_t n_consumed_inputs;
    int64_t* consumed_inputs;

} context_operator__ai_onnx__leakyrelu__1;

operator_status
execute_operator__ai_onnx__leakyrelu__1(
    Onnx__NodeProto *ctx
);

# endif