From 81abea042b09d3027c917155a702fc0cb6f7e34f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Mon, 6 Dec 2021 18:02:33 +0100
Subject: [PATCH] Occbin: use element-by-element multiply, divide and power in
 occbin_difference.m

This file operates on vectors.

Ref. dynare#1826
---
 src/ExprNode.cc | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index c2a35b04..ffa4166d 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -4475,15 +4475,25 @@ BinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
     case BinaryOpcode::times:
       if (isLatexOutput(output_type))
         output << R"(\, )";
+      else if (output_type == ExprNodeOutputType::occbinDifferenceFile)
+        output << ".*"; // This file operates on vectors, see dynare#1826
       else
         output << "*";
       break;
     case BinaryOpcode::divide:
       if (!isLatexOutput(output_type))
-        output << "/";
+        {
+          if (output_type == ExprNodeOutputType::occbinDifferenceFile)
+            output << "./"; // This file operates on vectors, see dynare#1826
+          else
+            output << "/";
+        }
       break;
     case BinaryOpcode::power:
-      output << "^";
+      if (output_type == ExprNodeOutputType::occbinDifferenceFile)
+        output << ".^"; // This file operates on vectors, see dynare#1826
+      else
+        output << "^";
       break;
     case BinaryOpcode::less:
       output << "<";
-- 
GitLab