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)

Re: belated feedback Bradley Lucier 30 Apr 2021 16:42 UTC

On 4/30/21 11:04 AM, John Cowan wrote:
> I don't understand your reasoning here.

Well, in three dimensions the general case is

               (lambda (i j k)
                 (+ base
                    (* increment-0 (- i low-0))
                    (* increment-1 (- j low-1))
                    (* increment-2 (- k low-2))))

I guess what I call increments other people might call strides.

It could happen that an index and the associated increment and lower
bound are all fixnums, but the product of the increment and the lower
bound is a bignum.  (It's not that hard on a 32-bit machine.)

The simplest case (base and all lower bounds are zero, the last
increment is 1) is simply

               (lambda (i j k)
                 (+ (* increment-0 i)
                    (* increment-1 j)
                    k))

So the closure has only two elements and the common case is fast.

Brad