diff arrows/@estates/construct.m @ 0:672052bd81f8

Initial partial import.
author samer
date Wed, 19 Dec 2012 22:38:28 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/arrows/@estates/construct.m	Wed Dec 19 22:38:28 2012 +0000
@@ -0,0 +1,26 @@
+function u=construct(s,sizes_in)
+
+	u=construct(s.base,sizes_in);
+	s0=u.get_state();
+	u.sizes_out = [u.sizes_out,size(s0)];
+	u.process = mkproc(u.process, nargout(s.base), ...
+		u.get_state,s.period);
+end
+
+function f=mkproc(g,nout,getst,period)
+	k=1;
+	f=@proc_nnn;
+
+	function varargout=proc_nnn(varargin)
+		varargout=cell(1,nout+1);
+		[varargout{1:nout}]=g(varargin{:});
+		if k==1, 
+			k=period; 
+			varargout{nout+1}={getst()};
+		else 
+			k=k-1; 
+			varargout{nout+1}={};
+		end
+	end
+end
+