1 USING: accessors kernel math math.functions combinators
2 sequences sequences.private ;
3 IN: sequences.complex-components
5 TUPLE: complex-components seq ;
6 INSTANCE: complex-components sequence
8 : <complex-components> ( sequence -- complex-components )
9 complex-components boa ; inline
13 : complex-components@ ( n seq -- remainder n' seq' )
14 [ [ 1 bitand ] [ -1 shift ] bi ] [ seq>> ] bi* ; inline
15 : complex-component ( remainder complex -- component )
18 { 1 [ imaginary-part ] }
23 M: complex-components length
24 seq>> length 1 shift ;
25 M: complex-components nth-unsafe
26 complex-components@ nth-unsafe complex-component ;
27 M: complex-components set-nth-unsafe