1use nnapi::{Model, Operand};
2use nnapi_sys::{OperandCode, OperationCode};
3
4fn main() -> nnapi::Result<()> {
5 let tensor9x_type = Operand::tensor(OperandCode::ANEURALNETWORKS_TENSOR_FLOAT32, vec![9], 0., 0);
6
7 let mut model = Model::from_operands([
8 tensor9x_type.clone(),
9 tensor9x_type.clone(),
10 Operand::activation(),
11 tensor9x_type,
12 ])?;
13
14 model.set_activation_operand_value(2)?;
15 model.add_operation(OperationCode::ANEURALNETWORKS_ADD, &[0, 1, 2], &[3])?;
16 model.identify_inputs_and_outputs(&[0, 1], &[3])?;
17
18 model.finish()?;
19
20 let mut compilation = model.compile()?;
21 compilation.finish()?;
22 let mut execution = compilation.create_execution()?;
23
24 execution.set_input(0, &[1f32; 9])?;
26 execution.set_input(1, &[2f32; 9])?;
27
28 let mut output = [0f32; 9];
29 execution.set_output(0, &mut output)?;
30
31 let mut end_event = execution.compute()?;
32 end_event.wait()?;
33
34 assert_eq!(output, [3f32; 9]);
35
36 Ok(())
37}