From f4508a6ca13f1e37ac4b0e3a33d6db14a9235a44 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Odysseus=29?=
 <stepan@adjemian.eu>
Date: Tue, 12 Jan 2021 16:48:49 +0100
Subject: [PATCH] Revert "update jacob_element & hess_element for vector
 arguments"

This reverts commit 1975e467b50d7bdf513ea8ddc5b2ef2966ef2905.
---
 matlab/hess_element.m  | 34 ++++++++++++++++------------------
 matlab/jacob_element.m | 15 +++++++--------
 2 files changed, 23 insertions(+), 26 deletions(-)

diff --git a/matlab/hess_element.m b/matlab/hess_element.m
index 069a0ea9ec..5af38ecd2a 100644
--- a/matlab/hess_element.m
+++ b/matlab/hess_element.m
@@ -1,17 +1,15 @@
-function d=hess_element(func,arg1,arg2,elem1,elem2,args)
-% function d=hess_element(func,arg1,arg2,elem1,elem2,args)
+function d=hess_element(func,element1,element2,args)
+% function d=hess_element(func,element1,element2,args)
 % returns an entry of the finite differences approximation to the hessian of func
 %
 % INPUTS
 %    func       [function name]    string with name of the function
-%    arg1       [int]              the indices showing the element within the hessian that should be returned
-%    arg2       [int]
-%    elem1      [int]              vector index 1
-%    elem2      [int]              vector index 2
+%    element1   [int]              the indices showing the element within the hessian that should be returned
+%    element2   [int]
 %    args       [cell array]       arguments provided to func
 %
 % OUTPUTS
-%    d          [double]           the (arg1,arg2) entry of the hessian
+%    d          [double]           the (element1,element2) entry of the hessian
 %
 % SPECIAL REQUIREMENTS
 %    none
@@ -33,7 +31,7 @@ function d=hess_element(func,arg1,arg2,elem1,elem2,args)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(arg1 <= length(args) && arg2 <= length(args));
+assert(element1 <= length(args) && element2 <= length(args));
 
 func = str2func(func);
 
@@ -45,21 +43,21 @@ m01 = args;
 p11 = args;
 m11 = args;
 
-p10{arg1}(elem1) = p10{arg1}(elem1) + h;
-m10{arg1}(elem1) = m10{arg1}(elem1) - h;
+p10{element1} = p10{element1} + h;
+m10{element1} = m10{element1} - h;
 
-p11{arg1}(elem1) = p11{arg1}(elem1) + h;
-m11{arg1}(elem1) = m11{arg1}(elem1) - h;
+p11{element1} = p11{element1} + h;
+m11{element1} = m11{element1} - h;
+        
+p01{element2} = p01{element2} + h;
+m01{element2} = m01{element2} - h;
 
-p01{arg2}(elem2) = p01{arg2}(elem2) + h;
-m01{arg2}(elem2) = m01{arg2}(elem2) - h;
-
-p11{arg2}(elem2) = p11{arg2}(elem2) + h;
-m11{arg2}(elem2) = m11{arg2}(elem2) - h;
+p11{element2} = p11{element2} + h;
+m11{element2} = m11{element2} - h;
 
 % From Abramowitz and Stegun. Handbook of Mathematical Functions (1965)
 % formulas 25.3.24 and 25.3.27 p. 884
-if arg1==arg2
+if element1==element2
     d = (16*func(p10{:})...
          +16*func(m10{:})...
          -30*func(args{:})...
diff --git a/matlab/jacob_element.m b/matlab/jacob_element.m
index e2a04b426b..4f49cdbab9 100644
--- a/matlab/jacob_element.m
+++ b/matlab/jacob_element.m
@@ -1,15 +1,14 @@
-function d=jacob_element(func,arg,elem,args)
-% function d=jacob_element(func,arg,elem,args)
+function d=jacob_element(func,element,args)
+% function d=jacob_element(func,element,args)
 % returns an entry of the finite differences approximation to the jacobian of func
 %
 % INPUTS
 %    func       [function name]    string with name of the function
-%    arg        [int]              the index showing the elem within the jacobian that should be returned
-%    elem       [int]              vector index
+%    element    [int]              the index showing the element within the jacobian that should be returned
 %    args       [cell array]       arguments provided to func
 %
 % OUTPUTS
-%    d          [double]           jacobian[elem]
+%    d          [double]           jacobian[element]
 %
 % SPECIAL REQUIREMENTS
 %    none
@@ -31,15 +30,15 @@ function d=jacob_element(func,arg,elem,args)
 % You should have received a copy of the GNU General Public License
 % along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
 
-assert(arg <= length(args));
+assert(element <= length(args));
 
 func = str2func(func);
 
 h=1e-6;
 margs=args;
 
-args{arg}(elem) = args{arg}(elem) + h;
-margs{arg}(elem) = margs{arg}(elem) - h;
+args{element} = args{element} + h;
+margs{element} = margs{element} - h;
 
 d=(func(args{:})-func(margs{:}))/(2*h);
 end
-- 
GitLab