annotate arrows/@afirst/construct.m @ 61:eff6bddf82e3
tip
Finally implemented perceptual brightness thing.
author |
samer |
date |
Sun, 11 Oct 2015 10:20:42 +0100 |
parents |
672052bd81f8 |
children |
|
rev |
line source |
samer@0
|
1 function u=construct(s,sizes_in)
|
samer@0
|
2
|
samer@0
|
3 nin=nargin(s.base);
|
samer@0
|
4
|
samer@0
|
5 u=construct(s.base,sizes_in(1:nin));
|
samer@0
|
6 u.sizes_out = [u.sizes_out,sizes_in(nin+(1:s.extra))];
|
samer@0
|
7 u.process = mkproc(u.process,nin,nargout(s.base),s.extra);
|
samer@0
|
8 end
|
samer@0
|
9
|
samer@0
|
10 function f=mkproc(g,nin,nout,extra)
|
samer@0
|
11 f=@proc;
|
samer@0
|
12 if extra==1
|
samer@0
|
13 if nin==1 && nout==1, f=@proc_111;
|
samer@0
|
14 elseif nin==1 && nout==0, f=@proc_101;
|
samer@0
|
15 elseif nin==0 && nout==1, f=@proc_011;
|
samer@0
|
16 else, x=1:extra; f=@proc_nnn; end
|
samer@0
|
17 else
|
samer@0
|
18 x=1:extra;
|
samer@0
|
19 f=@proc_nnn;
|
samer@0
|
20 end
|
samer@0
|
21 function [y1,x]=proc_111(x1,x), y1=g(x1); end
|
samer@0
|
22 function x=proc_101(x1,x), g(x1); end
|
samer@0
|
23 function [y1,x]=proc_011(x), y1=g(x1); end
|
samer@0
|
24
|
samer@0
|
25 function varargout=proc_nnn(varargin)
|
samer@0
|
26 [varargout{1:nout}]=g(varargin{1:nin});
|
samer@0
|
27 varargout(nout+x)=varargin(nin+x);
|
samer@0
|
28 end
|
samer@0
|
29 end
|
samer@0
|
30
|