|
Prev | Next | a_fun_jacobian_xam.m | Headings |
function ok = a_fun_jacobian_xam()
%
% load the Cppad Swig library
m_cppad
%
% initialize return variable
ok = true;
% -----------------------------------------------------------------------
% number of dependent and independent variables
n_dep = 1;
n_ind = 3;
%
% create the independent variables ax
x = m_cppad.vec_double(n_ind);
for i = [ 0 :(n_ind -1) ]
x(i) = i + 2.0;
end
ax = m_cppad.independent(x);
%
% create dependent variables ay with ay0 = ax_0 * ax_1 * ax_2
ax_0 = ax(0);
ax_1 = ax(1);
ax_2 = ax(2);
ay = m_cppad.vec_a_double(n_dep);
ay(0) = ax_0 * ax_1 * ax_2;
%
% define af corresponding to f(x) = x_0 * x_1 * x_2
af = m_cppad.a_fun(ax, ay);
%
% compute the Jacobian f'(x) = ( x_1*x_2, x_0*x_2, x_0*x_1 )
fp = af.jacobian(x);
%
% check Jacobian
x_0 = x(0);
x_1 = x(1);
x_2 = x(2);
ok = ok && fp(0 * n_ind + 0) == x_1 * x_2 ;
ok = ok && fp(0 * n_ind + 1) == x_0 * x_2 ;
ok = ok && fp(0 * n_ind + 2) == x_0 * x_1 ;
%
return;
end