Merge pull request #918 from gambiteer/231-changes

Add index-swap, fix assert in array-append
This commit is contained in:
Alex Shinn 2023-05-24 09:22:50 +09:00 committed by GitHub
commit ef554024ec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 4 deletions

View file

@ -10,7 +10,7 @@
;; Miscellaneous Functions
translation? permutation?
;; Indexes
index-rotate index-first index-last
index-rotate index-first index-last index-swap
;; Intervals
make-interval interval? interval-dimension interval-lower-bound
interval-upper-bound interval-lower-bounds->list

View file

@ -28,6 +28,12 @@
(iota (- n (+ k 1)) (+ k 1))
(list k))))
(define (index-swap n i j)
(let ((result (vector-iota n 0)))
(vector-set! result i j)
(vector-set! result j i)
result))
;; Intervals
(define-record-type Interval

View file

@ -23,7 +23,7 @@
interval-width interval-widths
interval-empty?
;; Indexing
index-rotate index-first index-last
index-rotate index-first index-last index-swap
indexer->coeffs coeffs->indexer default-indexer default-coeffs
invert-default-index interval-cursor interval-cursor-next!
interval-cursor-next interval-cursor-get interval-fold

View file

@ -571,8 +571,8 @@
(define (array-append axis arrays . o)
(assert (and (exact-integer? axis)
(pair? arrays)
(< -1 axis (array-dimension (car arrays)))
(every array? arrays)))
(every array? arrays)
(< -1 axis (array-dimension (car arrays)))))
(let* ((a (car arrays))
(a-domain (array-domain a))
(storage (if (pair? o) (car o) generic-storage-class))