]> gitweb.factorcode.org Git - factor.git/blob - core/float-vectors/float-vectors.factor
Fix regression
[factor.git] / core / 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 ;\r
5 IN: float-vectors\r
6 \r
7 <PRIVATE\r
8 \r
9 : float-array>vector ( float-array length -- float-vector )\r
10     float-vector boa ; inline\r
11 \r
12 PRIVATE>\r
13 \r
14 : <float-vector> ( n -- float-vector )\r
15     0.0 <float-array> 0 float-array>vector ; inline\r
16 \r
17 : >float-vector ( seq -- float-vector ) FV{ } clone-like ;\r
18 \r
19 M: float-vector like\r
20     drop dup float-vector? [\r
21         dup float-array?\r
22         [ dup length float-array>vector ] [ >float-vector ] if\r
23     ] unless ;\r
24 \r
25 M: float-vector new-sequence\r
26     drop [ 0.0 <float-array> ] keep >fixnum float-array>vector ;\r
27 \r
28 M: float-vector equal?\r
29     over float-vector? [ sequence= ] [ 2drop f ] if ;\r
30 \r
31 M: float-array new-resizable drop <float-vector> ;\r
32 \r
33 INSTANCE: float-vector growable\r