![]() |
Prev | Next | a_fun_optimize_xam.m | Headings |
function ok = a_fun_optimize_xam() % % load the Cppad Swig library m_cppad % % initialize return variable ok = true; % ----------------------------------------------------------------------- n_ind = 1; % number of independent variables n_dep = 1; % number of dependent variables n_var = 1; % phantom variable at address 0 n_op = 1; % special operator at beginning % % dimension some vectors x = m_cppad.vec_double(n_ind); ay = m_cppad.vec_a_double(n_dep); % % independent variables x(0) = 1.0; ax = m_cppad.independent(x); n_var = n_var + n_ind; % one for each indpendent n_op = n_op + n_ind; % % accumulate summation ax0 = ax(0); csum = m_cppad.a_double(0.0); csum = ax0 + ax0 + ax0 + ax0; n_var = n_var + 3; % one per + operator n_op = n_op + 3; % % define f(x) = y_0 = csum ay(0) = csum; af = m_cppad.a_fun(ax, ay); n_op = n_op + 1; % speical operator at end % % check number of variables and operators ok = ok && af.size_var() == n_var; ok = ok && af.size_op() == n_op; % % optimize af.optimize(); % % number of variables and operators has decreased by two ok = ok && af.size_var() == n_var-2; ok = ok && af.size_op() == n_op-2; % return; end