1 USING: accessors kernel math sequences sequences.private ;
4 TUPLE: complex-sequence seq ;
5 INSTANCE: complex-sequence sequence
7 : <complex-sequence> ( sequence -- complex-sequence )
8 complex-sequence boa ; inline
12 : complex@ ( n seq -- n' seq' )
13 [ 1 shift ] [ seq>> ] bi* ; inline
17 M: complex-sequence length
18 seq>> length -1 shift ;
19 M: complex-sequence nth-unsafe
20 complex@ [ nth-unsafe ] [ [ 1 + ] dip nth-unsafe ] 2bi rect> ;
21 M: complex-sequence set-nth-unsafe
23 [ [ real-part ] [ ] [ ] tri* set-nth-unsafe ]
24 [ [ imaginary-part ] [ 1 + ] [ ] tri* set-nth-unsafe ] 3bi ;