belated feedback Alex Shinn (16 Apr 2021 15:00 UTC)
|
Re: belated feedback
Bradley Lucier
(16 Apr 2021 17:08 UTC)
|
Re: belated feedback
John Cowan
(16 Apr 2021 18:25 UTC)
|
Re: belated feedback
Bradley Lucier
(17 Apr 2021 21:48 UTC)
|
Re: belated feedback
Alex Shinn
(18 Apr 2021 23:45 UTC)
|
Re: belated feedback
Bradley Lucier
(16 Apr 2021 23:46 UTC)
|
Re: belated feedback
Alex Shinn
(17 Apr 2021 00:03 UTC)
|
Re: belated feedback
Bradley Lucier
(17 Apr 2021 01:10 UTC)
|
Re: belated feedback
Alex Shinn
(17 Apr 2021 01:22 UTC)
|
Re: belated feedback
Alex Shinn
(30 Apr 2021 05:41 UTC)
|
Re: belated feedback
Bradley Lucier
(30 Apr 2021 14:17 UTC)
|
Re: belated feedback
John Cowan
(30 Apr 2021 15:04 UTC)
|
Re: belated feedback
Bradley Lucier
(30 Apr 2021 16:42 UTC)
|
Re: belated feedback
Alex Shinn
(01 May 2021 09:27 UTC)
|
array-elements-in-order? (Was: belated feedback)
Bradley Lucier
(16 Jan 2022 19:08 UTC)
|
Hi Bradley, First, thank you for all the work you put into this beautiful SRFI. There have been a plethora of array SRFIs, but none as comprehensive. I'm sorry I didn't have time to contribute to the original discussion, but have gone through recently, and have written a clean room, portable R7RS implementation: https://github.com/ashinn/chibi-scheme/blob/master/lib/srfi/179.scm It passes your test suite, though I had to comment out many tests which made use of internals of your implementation. I also want to make the test suite deterministic - randomized tests are extremely difficult to work with. For specialized-array-reshape, I was lazy and took advantage of the fact that indexing is reversible (though not necessarily as an affine transformation), and created a custom indexer which is the following composition: (compose orig-indexer invert-orig-indexer new-domain-indexer) Thus the reshape never fails. However, I intend to flatten all of the affine transformations next, at which point I'll need to implement this properly. f8-storage-class and f16-storage-class are bound to #f. Planned upcoming applications of arrays: * images: a standard representation should probably be a SRFI of its own * linear algebra: wrapping blas and/or cuda, with NNs a trivial application * data frames: matrices with named columns, ideally using column-oriented storage classes Some minor comments on the document itself: In interval-cartesian-product, the definition refers to array-lower/upper-bounds->list, which should presumably be interval-lower/upper-bounds->list. What are the default values of the safe/mutable parameters? The name and description of array-elements-in-order? is misleading, suggesting it is the elements themselves which must be in order. Perhaps array-indices-in-order? or array-contiguous-and-in-order? would have been better. -- Alex