From a0dc9e6ecaa0e7a8696cac36b52b64ad946d4d42 Mon Sep 17 00:00:00 2001
From: cmoineau <cyril.moineau@cea.fr>
Date: Thu, 10 Oct 2024 12:59:41 +0000
Subject: [PATCH] Adapt forward to output nodes of exports being pointer of
 pointer.

---
 .../_Aidge_Arm/templates/forward_call/_mem_offset.jinja      | 3 +++
 .../_Aidge_Arm/templates/forward_call/add.jinja              | 5 ++---
 .../_Aidge_Arm/templates/forward_call/atan.jinja             | 5 ++---
 .../_Aidge_Arm/templates/forward_call/concat.jinja           | 5 ++---
 .../_Aidge_Arm/templates/forward_call/conv_kernel.jinja      | 5 ++---
 .../_Aidge_Arm/templates/forward_call/fc_kernel.jinja        | 5 ++---
 .../_Aidge_Arm/templates/forward_call/mul.jinja              | 5 ++---
 .../_Aidge_Arm/templates/forward_call/pool_kernel.jinja      | 5 ++---
 .../_Aidge_Arm/templates/forward_call/relu.jinja             | 5 ++---
 .../_Aidge_Arm/templates/forward_call/slice.jinja            | 5 ++---
 .../_Aidge_Arm/templates/forward_call/sub.jinja              | 5 ++---
 11 files changed, 23 insertions(+), 30 deletions(-)
 create mode 100644 aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/_mem_offset.jinja

diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/_mem_offset.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/_mem_offset.jinja
new file mode 100644
index 0000000..4f44773
--- /dev/null
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/_mem_offset.jinja
@@ -0,0 +1,3 @@
+{% for outidx in range(nb_out) -%}
+{{out_cdtype[outidx]}}* {{out_name[outidx]}} = ({{out_cdtype[outidx]}}*) mem + {{out_name[outidx]|upper}}_OFFSET;
+{% endfor %}
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/add.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/add.jinja
index 8f0d486..993cdda 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/add.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/add.jinja
@@ -1,6 +1,5 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 aidge_add_float32(
     {{in_name[0]}},
     {{in_name[1]}},
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/atan.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/atan.jinja
index 3bd5ea1..341b068 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/atan.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/atan.jinja
@@ -1,4 +1,3 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 aidge_atan <{{name|upper}}_OUTPUTS_SIZE> ({{in_name[0]}}, {{out_name[0]}});
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja
index 82f6106..e30856e 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/concat.jinja
@@ -1,6 +1,5 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 
 float* {{ name|upper }}_INPUTS[] = {
     {%- for i in range(nb_in) -%}
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja
index 3b853ca..d0d223f 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/conv_kernel.jinja
@@ -1,6 +1,5 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 N2D2_Export::convcellPropagate<{{ in_name[0]|upper }}_NB_CHANNELS,
                                {{ in_name[0]|upper }}_IN_HEIGHT,
                                {{ in_name[0]|upper }}_IN_WIDTH,
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja
index 6511320..a444da2 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/fc_kernel.jinja
@@ -1,6 +1,5 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 N2D2_Export::fccellPropagate<{{ in_name[0] | upper }}_NB_CHANNELS,
                              {{ in_name[0] | upper }}_IN_HEIGHT,
                              {{ in_name[0] | upper }}_IN_WIDTH,
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/mul.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/mul.jinja
index 056746e..a9d67c9 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/mul.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/mul.jinja
@@ -1,6 +1,5 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 aidge_mul_float32(
     {{in_name[0]}},
     {{in_name[1]}},
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja
index fe0fa34..aba4899 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/pool_kernel.jinja
@@ -1,6 +1,5 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 N2D2_Export::poolcellPropagate<{{ in_name[0]|upper }}_NB_CHANNELS,
                                {{ in_name[0]|upper }}_IN_HEIGHT,
                                {{ in_name[0]|upper }}_IN_WIDTH,
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja
index 13a8c61..ec7f44b 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/relu.jinja
@@ -1,4 +1,3 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 aidge_relu_float32({{in_name[0]}}, {{out_name[0]}},  {{name|upper}}_INPUTS_SIZE);
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja
index 70b8b72..02b2129 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/slice.jinja
@@ -1,4 +1,3 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 aidge_slice_float32 ({{in_name[0]}}, {{out_name[0]}}, {{name|upper}}_AXES, {{name|upper}}_STARTS, {{name|upper}}_ENDS, {{name|upper}}_NB_AXES, {{name|upper}}_NB_CHANNELS);
diff --git a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/sub.jinja b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/sub.jinja
index 1bf7fc6..b86b41c 100644
--- a/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/sub.jinja
+++ b/aidge_export_arm_cortexm/_Aidge_Arm/templates/forward_call/sub.jinja
@@ -1,5 +1,4 @@
-{% if not is_output %}
-{{out_cdtype[0]}}* {{out_name[0]}} = ({{out_cdtype[0]}}*) mem + {{out_name[0]|upper}}_OFFSET;
-{% endif %}
+{% include "./_mem_offset.jinja" %}
+
 
 aidge_sub_float32({{in_name[0]}}, {{in_name[1]}}, {{out_name[0]}}, {{name|upper}}_OUTPUTS_SIZE);
-- 
GitLab