use crate::micro_op_resolver::MutableOpResolver;
impl MutableOpResolver {
pub fn fully_connected(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_FULLY_CONNECTED,
tflite::ops::micro::Register_FULLY_CONNECTED()
);
});
self
}
pub fn max_pool_2d(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_MAX_POOL_2D,
tflite::ops::micro::Register_MAX_POOL_2D()
);
});
self
}
pub fn softmax(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SOFTMAX,
tflite::ops::micro::Register_SOFTMAX()
);
});
self
}
pub fn logistic(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LOGISTIC,
tflite::ops::micro::Register_LOGISTIC()
);
});
self
}
pub fn svdf(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SVDF,
tflite::ops::micro::Register_SVDF()
);
});
self
}
pub fn conv_2d(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_CONV_2D,
tflite::ops::micro::Register_CONV_2D()
);
});
self
}
pub fn concatenation(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_CONCATENATION,
tflite::ops::micro::Register_CONCATENATION()
);
});
self
}
pub fn depthwise_conv_2d(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_DEPTHWISE_CONV_2D,
tflite::ops::micro::Register_DEPTHWISE_CONV_2D()
);
});
self
}
pub fn average_pool_2d(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_AVERAGE_POOL_2D,
tflite::ops::micro::Register_AVERAGE_POOL_2D()
);
});
self
}
pub fn abs(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_ABS,
tflite::ops::micro::Register_ABS()
);
});
self
}
pub fn sin(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SIN,
tflite::ops::micro::Register_SIN()
);
});
self
}
pub fn cos(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_COS,
tflite::ops::micro::Register_COS()
);
});
self
}
pub fn log(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LOG,
tflite::ops::micro::Register_LOG()
);
});
self
}
pub fn sqrt(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SQRT,
tflite::ops::micro::Register_SQRT()
);
});
self
}
pub fn rsqrt(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_RSQRT,
tflite::ops::micro::Register_RSQRT()
);
});
self
}
pub fn square(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SQUARE,
tflite::ops::micro::Register_SQUARE()
);
});
self
}
pub fn prelu(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_PRELU,
tflite::ops::micro::Register_PRELU()
);
});
self
}
pub fn floor(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_FLOOR,
tflite::ops::micro::Register_FLOOR()
);
});
self
}
pub fn maximum(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_MAXIMUM,
tflite::ops::micro::Register_MAXIMUM()
);
});
self
}
pub fn minimum(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_MINIMUM,
tflite::ops::micro::Register_MINIMUM()
);
});
self
}
pub fn arg_max(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_ARG_MAX,
tflite::ops::micro::Register_ARG_MAX()
);
});
self
}
pub fn arg_min(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_ARG_MIN,
tflite::ops::micro::Register_ARG_MIN()
);
});
self
}
pub fn logical_or(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LOGICAL_OR,
tflite::ops::micro::Register_LOGICAL_OR()
);
});
self
}
pub fn logical_and(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LOGICAL_AND,
tflite::ops::micro::Register_LOGICAL_AND()
);
});
self
}
pub fn logical_not(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LOGICAL_NOT,
tflite::ops::micro::Register_LOGICAL_NOT()
);
});
self
}
pub fn reshape(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_RESHAPE,
tflite::ops::micro::Register_RESHAPE()
);
});
self
}
pub fn equal(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_EQUAL,
tflite::ops::micro::Register_EQUAL()
);
});
self
}
pub fn not_equal(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_NOT_EQUAL,
tflite::ops::micro::Register_NOT_EQUAL()
);
});
self
}
pub fn greater(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_GREATER,
tflite::ops::micro::Register_GREATER()
);
});
self
}
pub fn greater_equal(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_GREATER_EQUAL,
tflite::ops::micro::Register_GREATER_EQUAL()
);
});
self
}
pub fn less(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LESS,
tflite::ops::micro::Register_LESS()
);
});
self
}
pub fn less_equal(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_LESS_EQUAL,
tflite::ops::micro::Register_LESS_EQUAL()
);
});
self
}
pub fn ceil(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_CEIL,
tflite::ops::micro::Register_CEIL()
);
});
self
}
pub fn round(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_ROUND,
tflite::ops::micro::Register_ROUND()
);
});
self
}
pub fn strided_slice(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_STRIDED_SLICE,
tflite::ops::micro::Register_STRIDED_SLICE()
);
});
self
}
pub fn pack(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_PACK,
tflite::ops::micro::Register_PACK()
);
});
self
}
pub fn pad(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_PAD,
tflite::ops::micro::Register_PAD()
);
});
self
}
pub fn padv2(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_PADV2,
tflite::ops::micro::Register_PADV2()
);
});
self
}
pub fn split(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SPLIT,
tflite::ops::micro::Register_SPLIT()
);
});
self
}
pub fn unpack(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_UNPACK,
tflite::ops::micro::Register_UNPACK()
);
});
self
}
#[allow(clippy::should_implement_trait)]
pub fn neg(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_NEG,
tflite::ops::micro::Register_NEG()
);
});
self
}
pub fn add(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_ADD,
tflite::ops::micro::Register_ADD()
);
});
self
}
pub fn mul(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_MUL,
tflite::ops::micro::Register_MUL()
);
});
self
}
pub fn sub(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_SUB,
tflite::ops::micro::Register_SUB()
);
});
self
}
pub fn quantize(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_QUANTIZE,
tflite::ops::micro::Register_QUANTIZE()
);
});
self
}
pub fn dequantize(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_DEQUANTIZE,
tflite::ops::micro::Register_DEQUANTIZE()
);
});
self
}
pub fn relu(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_RELU,
tflite::ops::micro::Register_RELU()
);
});
self
}
pub fn relu6(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_RELU6,
tflite::ops::micro::Register_RELU6()
);
});
self
}
pub fn mean(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_MEAN,
tflite::ops::micro::Register_MEAN()
);
});
self
}
pub fn resize_nearest_neighbor(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_RESIZE_NEAREST_NEIGHBOR,
tflite::ops::micro::Register_RESIZE_NEAREST_NEIGHBOR()
);
});
self
}
pub fn l2_normalization(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_L2_NORMALIZATION,
tflite::ops::micro::Register_L2_NORMALIZATION()
);
});
self
}
pub fn tanh(mut self) -> Self {
self.check_then_inc_len();
let inner_ref = &mut self.inner;
cpp!(unsafe [inner_ref as "tflite::MicroMutableOpResolver<128>*"] {
inner_ref->AddBuiltin(
tflite::BuiltinOperator_TANH,
tflite::ops::micro::Register_TANH()
);
});
self
}
}