Added flvector-copy (with tests and docs).
This commit is contained in:
parent
7ec8835bc4
commit
beb2175456
|
@ -9,6 +9,7 @@
|
|||
->fl fl->exact-integer
|
||||
flvector? flvector make-flvector
|
||||
flvector-length flvector-ref flvector-set!
|
||||
flvector-copy
|
||||
flreal-part flimag-part make-flrectangular
|
||||
in-flvector for/flvector for*/flvector shared-flvector make-shared-flvector)
|
||||
|
||||
|
@ -83,4 +84,9 @@
|
|||
#:when (< i len))
|
||||
(flvector-set! v i (begin body ...))
|
||||
(add1 i))
|
||||
v))))))
|
||||
v))))))
|
||||
|
||||
(define (flvector-copy flv)
|
||||
(for/flvector #:length (flvector-length flv)
|
||||
((x (in-flvector flv)))
|
||||
x))
|
|
@ -1096,6 +1096,10 @@ Sets the inexact real number in slot @racket[pos] of @racket[vec]. The
|
|||
first slot is position @racket[0], and the last slot is one less than
|
||||
@racket[(flvector-length vec)].}
|
||||
|
||||
@defproc[(flvector-copy (v flvector?)) flvector?]{
|
||||
|
||||
Returns a fresh copy of @racket[v].}
|
||||
|
||||
@defproc[(in-flvector (v flvector?)) sequence?]{
|
||||
|
||||
Produces a sequence that gives the elements of @scheme[v] in order.
|
||||
|
|
|
@ -61,4 +61,15 @@
|
|||
(test (flvector 2.0 3.0 4.0) 'for/flvector-many-body flv2)
|
||||
(test (flvector 3.0 4.0 5.0) 'for/flvector-length-many-body flv3))
|
||||
|
||||
;; flvector-copy test
|
||||
(let ((v (flvector 0.0 1.0 2.0 3.0)))
|
||||
(let ((vc (flvector-copy v)))
|
||||
(test (flvector-length v) 'flvector-copy (flvector-length vc))
|
||||
(for ((vx (in-flvector v))
|
||||
(vcx (in-flvector vc)))
|
||||
(test vx 'flvector-copy vcx))
|
||||
(flvector-set! vc 2 -10.0)
|
||||
(test 2.0 'flvector-copy (flvector-ref v 2))
|
||||
(test -10.0 'flvector-copy (flvector-ref vc 2))))
|
||||
|
||||
(report-errs)
|
Loading…
Reference in New Issue
Block a user