]> gitweb.factorcode.org Git - factor.git/blob - basis/sequences/complex/complex.factor
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places...
[factor.git] / basis / sequences / complex / complex.factor
1 USING: accessors kernel math math.functions
2 sequences sequences.private ;
3 IN: sequences.complex
4
5 TUPLE: complex-sequence seq ;
6 INSTANCE: complex-sequence sequence
7
8 : <complex-sequence> ( sequence -- complex-sequence )
9     complex-sequence boa ; inline
10
11 <PRIVATE
12
13 : complex@ ( n seq -- n' seq' )
14     [ 1 shift ] [ seq>> ] bi* ; inline
15
16 PRIVATE>
17
18 M: complex-sequence length
19     seq>> length -1 shift ;
20 M: complex-sequence nth-unsafe
21     complex@ [ nth-unsafe ] [ [ 1 + ] dip nth-unsafe ] 2bi rect> ;
22 M: complex-sequence set-nth-unsafe
23     complex@
24     [ [ real-part      ] [    ] [ ] tri* set-nth-unsafe ]
25     [ [ imaginary-part ] [ 1 + ] [ ] tri* set-nth-unsafe ] 3bi ;