Following up on SRFI 179 Bradley Lucier (22 Sep 2021 22:30 UTC)
Re: Following up on SRFI 179 John Cowan (24 Sep 2021 19:24 UTC)
Re: Following up on SRFI 179 Alex Shinn (25 Sep 2021 13:24 UTC)
Re: Following up on SRFI 179 Bradley Lucier (25 Sep 2021 16:43 UTC)
Re: Following up on SRFI 179 Alex Shinn (28 Sep 2021 07:36 UTC)
Re: Following up on SRFI 179 Bradley Lucier (28 Sep 2021 20:20 UTC)
Re: Following up on SRFI 179 Bradley Lucier (28 Sep 2021 20:30 UTC)
Re: Following up on SRFI 179 Bradley Lucier (01 Oct 2021 00:07 UTC)
Re: Following up on SRFI 179 Alex Shinn (01 Oct 2021 00:43 UTC)
Re: Following up on SRFI 179 Lucier, Bradley J (05 Oct 2021 01:04 UTC)
Re: Following up on SRFI 179 John Cowan (06 Oct 2021 01:26 UTC)
Re: Following up on SRFI 179 Lucier, Bradley J (06 Oct 2021 13:48 UTC)
Re: Following up on SRFI 179 Bradley Lucier (05 Oct 2021 19:54 UTC)
array-{append|stack|inner-product} Bradley Lucier (21 Oct 2021 15:52 UTC)

Re: Following up on SRFI 179 Bradley Lucier 01 Oct 2021 00:07 UTC

On 9/25/21 9:23 AM, Alex Shinn wrote:
> On Sat, Sep 25, 2021 at 4:25 AM John Cowan <xxxxxx@ccil.org> wrote:
>> 3) (array-append k a1 a2 ...)
>>
>> 4) (array-laminate k a1 a2 ...)
>
> Both of these are provided by (chibi math linalg):

Alex:

What do you expect array-append to do?  John's informal definition
(which I tend to agree with) says:

3) (array-append k a1 a2 ...) concatenates its array arguments along the
kth dimension.  The arrays must have the same number of dimensions and
all but the kth dimension must be equal.  The result has an interval
where each dimension except k is copied from the input arrays and the
kth dimension is the sum of the kth dimensions of the input arrays
adjusted to a lower bound of 0.  So given a 3 x 3 array and a 3 x 4
array, these can be concatenated along the column dimension giving a 3 x
7 array, but it is an error to concatenate them along the row dimension.

But in your test suite you have:

(myarray= (tensor '((4 7) (2 6) (1 0) (0 1)))
           (array-append 0
                         (list->array '(4 7 2 6)
                                      (make-interval '#(2 2) '#(4 4)))
                         (identity-array 2)))

and (identity-array 2) has domain (make-interval '#(2 2)), which differs
in dimension 1 from the domain of the other interval, which is
(make-interval '#(2 2) '#(4 4))

Brad