annotate arrows/delay.m @ 6:0ce3c2070089
Removed duplicate code and fixed doc in timed_action.
author |
samer |
date |
Mon, 14 Jan 2013 14:33:37 +0000 |
parents |
672052bd81f8 |
children |
|
rev |
line source |
samer@0
|
1 % delay - arrow implementing a delay line
|
samer@0
|
2 %
|
samer@0
|
3 % delay ::
|
samer@0
|
4 % W:natural ~'width of buffer',
|
samer@0
|
5 % A ~'a value to pad delay line with'
|
samer@0
|
6 % -> arrow({[[N,1]->A]}, {[[N,1]->A]}, {[W]->[[N]->A]}).
|
samer@0
|
7
|
samer@0
|
8 function a=delay(n,pad)
|
samer@0
|
9 a=loop(@delayfn,@(sz)repmat({repmat(pad,sz)},1,n));
|
samer@0
|
10 function [out,buf]=delayfn(in,buf)
|
samer@0
|
11 out=buf{1};
|
samer@0
|
12 buf=[buf(2:end),{in}];
|
samer@0
|
13 end
|
samer@0
|
14 end
|