use nnapi::{Model, Operand};
use nnapi_sys::{OperandCode, OperationCode};
fn main() -> nnapi::Result<()> {
let tensor9x_type = Operand::tensor(OperandCode::ANEURALNETWORKS_TENSOR_FLOAT32, vec![9], 0., 0);
let mut model = Model::from_operands([
tensor9x_type.clone(),
tensor9x_type.clone(),
Operand::activation(),
tensor9x_type,
])?;
model.set_activation_operand_value(2)?;
model.add_operation(OperationCode::ANEURALNETWORKS_ADD, &[0, 1, 2], &[3])?;
model.identify_inputs_and_outputs(&[0, 1], &[3])?;
model.finish()?;
let mut compilation = model.compile()?;
compilation.finish()?;
let mut execution = compilation.create_execution()?;
execution.set_input(0, &[1f32; 9])?;
execution.set_input(1, &[2f32; 9])?;
let mut output = [0f32; 9];
execution.set_output(0, &mut output)?;
let mut end_event = execution.compute()?;
end_event.wait()?;
assert_eq!(output, [3f32; 9]);
Ok(())
}