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