fix vector*->array

This commit is contained in:
Alex Shinn 2024-05-23 10:38:16 +09:00
parent 37dda638c3
commit 4677cfb85b
2 changed files with 7 additions and 4 deletions

View file

@ -2558,6 +2558,9 @@
(array->vector* (make-array (make-interval '#(0 0)) error)))
(test '#(#() #())
(array->vector* (make-array (make-interval '#(2 0)) error)))
(test (list->array (make-interval '#(2 3)) '(a b c 1 2 3))
(vector*->array 2 '#(#(a b c) #(1 2 3))))
)
(test-group "permutation tests"

View file

@ -559,9 +559,9 @@
(vector-iota (interval-width domain 0)
(interval-lower-bound domain 0)))))))
(define (flatten-vec vec)
(define (flatten-vector->list vec)
(if (vector? (vector-ref vec 0))
(append-map flatten-vec vec)
(append-map flatten-vector->list (vector->list vec))
(vector->list vec)))
(define (vector*->array dimension nested-vec . o)
@ -571,8 +571,8 @@
(lp (vector-ref vec 0) (cons (vector-length vec) lens) (- d 1)))
(else
(apply list->array
(make-interval (list->vector (reverse lens)))
(flatten-vec nested-vec)
(make-interval (reverse-list->vector lens))
(flatten-vector->list nested-vec)
o)))))
(define (dimensions-compatible? a-domain b-domain axis)