Re: Updated fork of SRFI 122, Nonempty Intervals and Generalized Arrays

*Bradley Lucier*27 Nov 2018 20:25 UTCOn 11/16/18 2:25 PM, Bradley Lucier wrote: > On 10/27/18 4:29 PM, Bradley Lucier wrote: >> I maintain a fork of SRFI 122 >> >> https://github.com/gambiteer/srfi-122/ >> >> where I've added a few things that were not in the finalized SRFI, >> specifically the routines >> >> interval-cartesian-product >> array-outer-product >> array-assign! > > I've added another update that implements and documents > > array-tile Another update, mainly for documentation: Add a bulleted list of motivations. Introduced the notational convention: If A is an array, then use A_ to denote the getter of the array and A! to denote the setter of A. For example, the Haar transform loop now reads (define (1D-Haar-loop a) (let ((a_ (array-getter a)) (a! (array-setter a)) (n (interval-upper-bound (array-domain a) 0))) (do ((i 0 (fx+ i 2))) ((fx= i n)) (let* ((a_i (a_ i)) (a_i+1 (a_ (fx+ i 1))) (scaled-sum (fl/ (fl+ a_i a_i+1) (flsqrt 2.0))) (scaled-difference (fl/ (fl- a_i a_i+1) (flsqrt 2.0)))) (a! scaled-sum i) (a! scaled-difference (fx+ i 1)))))) The LU-decomposition example retrieves the i'th diagonal element of the matrix A with (A_ i i) The trailing underscore mimics the TeX notation for subscripts, and while underscores are used a lot in variable names in C, etc., they're not yet generally used in Scheme (at least as far as I know); I like it. After cleaning up the implementation a bit, I'll be ready to submit a new SRFI for comments. Brad