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

---
 aidge_export_cpp/templates/kernel_forward/_mem_offset.jinja  | 3 +++
 .../templates/kernel_forward/activation_forward.jinja        | 5 ++---
 .../templates/kernel_forward/batchnorm_forward.jinja         | 2 ++
 .../templates/kernel_forward/convolution_forward.jinja       | 5 ++---
 .../templates/kernel_forward/elemwise_forward.jinja          | 5 ++---
 .../templates/kernel_forward/fullyconnected_forward.jinja    | 5 ++---
 .../templates/kernel_forward/leakyrelu_forward.jinja         | 2 ++
 .../templates/kernel_forward/pooling_forward.jinja           | 5 ++---
 8 files changed, 17 insertions(+), 15 deletions(-)
 create mode 100644 aidge_export_cpp/templates/kernel_forward/_mem_offset.jinja

diff --git a/aidge_export_cpp/templates/kernel_forward/_mem_offset.jinja b/aidge_export_cpp/templates/kernel_forward/_mem_offset.jinja
new file mode 100644
index 0000000..4f44773
--- /dev/null
+++ b/aidge_export_cpp/templates/kernel_forward/_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_cpp/templates/kernel_forward/activation_forward.jinja b/aidge_export_cpp/templates/kernel_forward/activation_forward.jinja
index abf21b2..61c6ba5 100644
--- a/aidge_export_cpp/templates/kernel_forward/activation_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/activation_forward.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" %}
+
 activation_forward<{{name|upper}}_NB_DATA,
                    {{name|upper}}_ACTIVATION>
                    ({{in_name[0]}}, {{out_name[0]}}, {{name|upper}}_RESCALING);
diff --git a/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja b/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja
index 3ce732a..2714aa9 100644
--- a/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/batchnorm_forward.jinja
@@ -1,3 +1,5 @@
+{% include "./_mem_offset.jinja" %}
+
 batchnorm_forward<{{ out_name[0]|upper }}_NB_OUTPUTS,
                   {{ out_name[0]|upper }}_OUT_HEIGHT,
                   {{ out_name[0]|upper }}_OUT_WIDTH,
diff --git a/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja b/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja
index 59f2187..87d9433 100644
--- a/aidge_export_cpp/templates/kernel_forward/convolution_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/convolution_forward.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" %}
+
 convolution_forward<{{ in_name[0]|upper }}_NB_CHANNELS,
                     {{ in_name[0]|upper }}_IN_HEIGHT,
                     {{ in_name[0]|upper }}_IN_WIDTH,
diff --git a/aidge_export_cpp/templates/kernel_forward/elemwise_forward.jinja b/aidge_export_cpp/templates/kernel_forward/elemwise_forward.jinja
index 16dbbdb..9ccc67e 100644
--- a/aidge_export_cpp/templates/kernel_forward/elemwise_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/elemwise_forward.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" %}
+
 elemwise_forward<{{name|upper}}_NB_ELTS,
                  {{name|upper}}_ELEM_OP,
                  {{name|upper}}_ACTIVATION>
diff --git a/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja b/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja
index bb1e5f4..be46657 100644
--- a/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/fullyconnected_forward.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" %}
+
 fullyconnected_forward<{{ in_name[0]|upper }}_NB_CHANNELS,
                        {{ in_name[0]|upper }}_IN_HEIGHT,
                        {{ in_name[0]|upper }}_IN_WIDTH,
diff --git a/aidge_export_cpp/templates/kernel_forward/leakyrelu_forward.jinja b/aidge_export_cpp/templates/kernel_forward/leakyrelu_forward.jinja
index 7c4148c..bbd514c 100644
--- a/aidge_export_cpp/templates/kernel_forward/leakyrelu_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/leakyrelu_forward.jinja
@@ -1,3 +1,5 @@
+{% include "./_mem_offset.jinja" %}
+
 leakyrelu_forward<{{name|upper}}_NB_DATA>
                    ({{input_name}}, {{output_name}}, {{name|upper}}_ALPHA);
 {% include "./_save_outputs.jinja" %}
diff --git a/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja b/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja
index 4797308..b4312f7 100644
--- a/aidge_export_cpp/templates/kernel_forward/pooling_forward.jinja
+++ b/aidge_export_cpp/templates/kernel_forward/pooling_forward.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" %}
+
 pooling_forward<{{ in_name[0]|upper }}_NB_CHANNELS,
                 {{ in_name[0]|upper }}_IN_HEIGHT,
                 {{ in_name[0]|upper }}_IN_WIDTH,
-- 
GitLab