47 const circle::Tensor *input =
nullptr;
48 const circle::Tensor *output =
nullptr;
50 uint8_t *input_data =
nullptr;
51 uint8_t *output_data =
nullptr;
53 SISOHeader(execute_args, &input, &output, &input_data, &output_data);
57 switch (input->type())
60 case circle::TensorType_FLOAT32:
63 core::utils::castInputData<float>(input_data),
64 core::utils::castOutputData<float>(output_data));
69 case circle::TensorType_INT8:
71 assert(input->quantization() !=
nullptr);
72 assert(input->quantization()->scale() !=
nullptr);
73 assert(input->quantization()->scale()->size() == 1);
74 assert(input->quantization()->zero_point() !=
nullptr);
75 assert(input->quantization()->zero_point()->size() == 1);
77 assert(output->quantization() !=
nullptr);
78 assert(output->quantization()->scale() !=
nullptr);
79 assert(output->quantization()->scale()->size() == 1);
80 assert(output->quantization()->zero_point() !=
nullptr);
81 assert(output->quantization()->zero_point()->size() == 1);
83 auto input_scale = *input->quantization()->scale()->begin();
84 auto input_zero_point = *input->quantization()->zero_point()->begin();
85 auto output_scale = *input->quantization()->scale()->begin();
86 auto output_zero_point = *input->quantization()->zero_point()->begin();
89 core::utils::castInputData<int8_t>(input_data), input_scale,
90 input_zero_point, core::utils::castOutputData<int8_t>(output_data),
91 output_scale, output_zero_point);
98 assert(
false &&
"Unsupported type.");