From 93077bbcdda14849a88d7e60366e93211cb7c533 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Wed, 2 Oct 2019 10:22:46 +0200
Subject: [PATCH] macro processor: fix bug in range when start point == end
 point

---
 src/macro/Expressions.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/macro/Expressions.cc b/src/macro/Expressions.cc
index fa924d17..1f86367d 100644
--- a/src/macro/Expressions.cc
+++ b/src/macro/Expressions.cc
@@ -615,10 +615,10 @@ Range::eval()
                      "the arguments must evaluate to reals");
 
   vector<ExpressionPtr> arr;
-  if (*incdbl > 0 && *startdbl < *enddbl)
+  if (*incdbl > 0 && *startdbl <= *enddbl)
     for (double i = *startdbl; i <= *enddbl; i += *incdbl)
       arr.emplace_back(make_shared<Real>(i, env));
-  else if (*startdbl > *enddbl && *incdbl < 0)
+  else if (*startdbl >= *enddbl && *incdbl < 0)
     for (double i = *startdbl; i >= *enddbl; i += *incdbl)
       arr.emplace_back(make_shared<Real>(i, env));
 
-- 
GitLab