(module srfi-179 (;; Miscellaneous Functions translation? permutation? ;; Intervals make-interval interval? interval-dimension interval-lower-bound interval-upper-bound interval-lower-bounds->list interval-upper-bounds->list interval-lower-bounds->vector interval-upper-bounds->vector interval= interval-volume interval-subset? interval-contains-multi-index? interval-projections interval-for-each interval-dilate interval-intersect interval-translate interval-permute interval-rotate interval-scale interval-cartesian-product ;; Storage Classes make-storage-class storage-class? storage-class-getter storage-class-setter storage-class-checker storage-class-maker storage-class-copier storage-class-length storage-class-default generic-storage-class s8-storage-class s16-storage-class s32-storage-class s64-storage-class u1-storage-class u8-storage-class u16-storage-class u32-storage-class u64-storage-class f8-storage-class f16-storage-class f32-storage-class f64-storage-class c64-storage-class c128-storage-class ;; Arrays make-array array? array-domain array-getter array-dimension mutable-array? array-setter specialized-array-default-safe? specialized-array-default-mutable? make-specialized-array specialized-array? array-storage-class array-indexer array-body array-safe? array-elements-in-order? specialized-array-share array-copy array-curry array-extract array-tile array-translate array-permute array-rotate array-reverse array-sample array-outer-product array-map array-for-each array-fold array-fold-right array-reduce array-any array-every array->list list->array array-assign! specialized-array-reshape array-ref array-set!) (import (except chicken.base vector-copy! symbol-append)) (include "shim.scm") (register-feature! 'srfi-179) ;; Also changed in generic-arrays.scm: ;; A couple fx comparison procedures with more than 2 args ;; define-macro -> define-syntax + er-macro-transformer ;; Add complex storage classes to standard storage classes, via srfi-160 ;; Redefine specialized-array-default-safe? and ;; specialized-array-default-mutable? in terms of make-parameter ;; More relaxed checkers for f/c storage clases, per chicken's allowed values ;; for f32-vector-set! and f64-vecto-set! (include "generic-arrays.scm"))