function y=dynfilter(ab,x,z,dim)
% dynfilter - filter for sequences of array with dynamically varying filter coeffs
%
% dynfilter :: seq {[[P]],[[P]]}, seq [Size], [[P]], D:natural -> seq [Size].
% dynfilter :: seq {[[P]],[[P]]}, seq [Size], [[P]]  -> seq [Size].
% dynfilter :: seq {[[P]],[[P]]}, seq [Size]  -> seq [Size].
%
% filtering is done along Dth dimension of the array (default=1)

if nargin<5, 
	dim=find(size(x)>1,1);
	if nargin<4, z=[]; end
end

y = zipaccum(@(ab1,x1,z1)filter(ab1{1},ab1{2},x1,z1,dim),z,ab,x);
