]> gitweb.factorcode.org Git - factor.git/blob - extra/float-vectors/float-vectors.factor
Move columns, bit-vectors, byte-vectors, float-vectors to extra
[factor.git] / extra / float-vectors / float-vectors.factor
1 ! Copyright (C) 2008 Slava Pestov.\r
2 ! See http://factorcode.org/license.txt for BSD license.\r
3 USING: arrays kernel kernel.private math sequences\r
4 sequences.private growable float-arrays prettyprint.backend\r
5 parser ;\r
6 IN: float-vectors\r
7 \r
8 <PRIVATE\r
9 \r
10 : float-array>vector ( float-array length -- float-vector )\r
11     float-vector boa ; inline\r
12 \r
13 PRIVATE>\r
14 \r
15 : <float-vector> ( n -- float-vector )\r
16     0.0 <float-array> 0 float-array>vector ; inline\r
17 \r
18 : >float-vector ( seq -- float-vector ) FV{ } clone-like ;\r
19 \r
20 M: float-vector like\r
21     drop dup float-vector? [\r
22         dup float-array?\r
23         [ dup length float-array>vector ] [ >float-vector ] if\r
24     ] unless ;\r
25 \r
26 M: float-vector new-sequence\r
27     drop [ 0.0 <float-array> ] keep >fixnum float-array>vector ;\r
28 \r
29 M: float-vector equal?\r
30     over float-vector? [ sequence= ] [ 2drop f ] if ;\r
31 \r
32 M: float-array new-resizable drop <float-vector> ;\r
33 \r
34 INSTANCE: float-vector growable\r
35 \r
36 : FV{ \ } [ >float-vector ] parse-literal ; parsing\r
37 \r
38 M: float-vector pprint-delims drop \ FV{ \ } ;\r