0001 function varargout = det(varargin)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023 if nargin == 2
0024 if isa(varargin{1}, 'ao') && ischar(varargin{2})
0025 in = char(varargin{2});
0026 if strcmp(in, 'Params')
0027 varargout{1} = getDefaultPL();
0028 return
0029 end
0030 end
0031 end
0032
0033
0034 invars = {};
0035
0036
0037 ALGONAME = mfilename;
0038 VERSION = '$Id: det.m,v 1.7 2007/06/22 08:32:49 ingo Exp $';
0039
0040 as = [];
0041 bs = [];
0042 ps = [];
0043
0044 for j=1:nargin
0045 invars = [invars cellstr(inputname(j))];
0046 if isa(varargin{j}, 'ao')
0047 as = [as varargin{j}];
0048 end
0049 if isa(varargin{j}, 'plist')
0050 ps = [ps varargin{j}];
0051 end
0052 end
0053
0054
0055
0056 if isempty(ps)
0057 pl = getDefaultPL();
0058 else
0059 pl = combine(ps, getDefaultPL);
0060 end
0061
0062
0063 for j=1:length(as)
0064 a = as(j);
0065
0066
0067 d = get(a, 'data');
0068 dinfo = whos('d');
0069
0070 dtype = dinfo.class;
0071
0072 switch dtype
0073 case 'cdata'
0074 disp('* DETERMINANT of cdata object');
0075
0076 [h, c] = single_operation(d, 'det', pl);
0077
0078
0079 h = set(h, 'invars', [a.hist]);
0080 b = ao(c, h);
0081 b = set(b, 'name', sprintf('det(%s)', char(invars{1})));
0082 case {'tsdata','fsdata','xydata'}
0083 error('### this function works for cdata type AO only')
0084 otherwise
0085 error('### unknown data type.')
0086 end
0087
0088
0089 bs = [bs b];
0090 end
0091
0092 varargout{1} = bs;
0093
0094
0095 function plo = getDefaultPL()
0096
0097 disp('* creating default plist...');
0098 plo = plist();
0099 disp('* done.');
0100
0101
0102