samer@0: % aparallel - Parallel application of arrows to multiple inputs samer@0: % samer@0: % aparallel :: samer@0: % arrow( A1:arglist(N1), B1:arglist(M1), C1) ~'arrow with N1 inputs, M1 outputs', samer@0: % arrow( A2:arglist(N2), B2:arglist(M2), C2) ~'arrow with N2 inputs, M2 outputs', samer@0: % -> arrow( [A1,A2], [B1,B2],cell {C1,C2}) ~'arrow with N1+N2 ins, M1+M2 outs'. samer@0: % samer@0: % The list of inputs of the second arrow is concatenated to those samer@0: % of the first. Ditto the ouputs. State is cell array pair of samer@0: % states of the two component arrows. samer@0: samer@0: function o=aparallel(a1,a2) samer@0: s.a1=a1; samer@0: s.a2=a2; samer@0: o=class(s,'aparallel',arrow(nargin(a1)+nargin(a2),nargout(a1)+nargout(a2))); samer@0: end