rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
eval_affine_decomp_general.m
1 function R = eval_affine_decomp_general(R_comp_ptr,R_coeff_ptr,varargin)
2 %function R = eval_affine_decomp_general(R_comp_ptr,R_coeff_ptr,varargin)
3 %
4 % function returning either the components, coefficients or their
5 % linear combination depending on params.decomp_mode, where
6 % params.decomp_mode is assumed to be the last argument in
7 % varargin. Both function pointers are assumed to have the
8 % identical command line syntax R_comp_ptr(varargin(:));
9 
10 params = varargin{end};
11 if params.decomp_mode == 2
12  R = R_coeff_ptr(varargin{:});
13 else
14  if params.decomp_mode == 1
15  R = R_comp_ptr(varargin{:});
16  else % decomp_mode = 0;
17  params.decomp_mode = 1;
18  alist = varargin;
19  alist{end} = params;
20 % Rcomp = R_comp_ptr(varargin{:});
21  Rcomp = R_comp_ptr(alist{:});
22  params.decomp_mode = 2;
23  alist{end} = params;
24  Rcoeff = R_coeff_ptr(alist{:});
25  R = lincomb_sequence(Rcomp,Rcoeff);
26  params.decomp_mode = 0;
27  end;
28 end;
29 
30 %| \docupdate