annotate sequences/rndscanl.m @ 61:eff6bddf82e3
tip
Finally implemented perceptual brightness thing.
author |
samer |
date |
Sun, 11 Oct 2015 10:20:42 +0100 |
parents |
79038cbcce00 |
children |
|
rev |
line source |
samer@0
|
1 function X=rndscanl(gen,s0,varargin)
|
samer@0
|
2 % rndscanl - Random scanl
|
samer@0
|
3 %
|
samer@0
|
4 % rndscanl ::
|
samer@0
|
5 % (S,A -> rndgen S) ~'random scanner',
|
samer@0
|
6 % S ~'initial state',
|
samer@0
|
7 % seq A,
|
samer@0
|
8 % rndstate ~'initial random state'
|
samer@0
|
9 % -> seq S.
|
samer@0
|
10
|
samer@0
|
11 n=length(varargin)-1;
|
samer@0
|
12 rs0=varargin{n+1};
|
samer@0
|
13 if n>1,
|
samer@25
|
14 X=zipaccum(@zafn,{s0,rs0},varargin{1:n});
|
samer@0
|
15 elseif n==1
|
samer@25
|
16 X=mapaccum(@mafn,{s0,rs0},varargin{1});
|
samer@0
|
17 else
|
samer@23
|
18 X=unfold(@ufn,{s0,rs0});
|
samer@0
|
19 end
|
samer@0
|
20
|
samer@0
|
21 function [x,s]=ufn(s0)
|
samer@0
|
22 setrndstate(s0{2});
|
samer@0
|
23 x=gen(s0{1});
|
samer@0
|
24 s={x,getrndstate};
|
samer@0
|
25 end
|
samer@0
|
26
|
samer@0
|
27 function [x,s]=mafn(y,s0)
|
samer@0
|
28 setrndstate(s0{2});
|
samer@0
|
29 x=gen(s0{1},y);
|
samer@0
|
30 s={x,getrndstate};
|
samer@0
|
31 end
|
samer@0
|
32
|
samer@0
|
33 function [x,s]=zafn(varargin)
|
samer@0
|
34 s0=varargin{n+1};
|
samer@0
|
35 setrndstate(s0{2});
|
samer@0
|
36 x=gen(s0{1},varargin{1:n});
|
samer@0
|
37 s={x,getrndstate};
|
samer@0
|
38 end
|
samer@0
|
39 end
|
samer@0
|
40
|
samer@0
|
41
|
samer@0
|
42
|