[m-users.] array2d in column-major order

Fabrice Nicol fabrnicol at gmail.com
Tue Feb 8 17:52:58 AEDT 2022


As this did not seem to exist, I finally wrote the lib, called it 
array2d2 by analogy with array2d and uploaded to GitHub 
(fabnicol/Mercury-array2d2).

This is basically a fork of array2d, and acknowledged as such.

I tried to abide by copyright requirements, if anything went wrong 
there, I'll be grateful to the Mercury team for advice on how to put 
things straight.

In addition to array2d functions and predicates, I added a transpose 
utility, which I think was lacking in the original array2d library. This 
utility works for both array2d and array2d2 arrays.

I also added conversion functions (which transform array2d into array2d2 
and vice versa).

The rest is just a straightforward rewrite of array2d.

Fabrice


> Hi all,
>
> I was going to write a redesign of the array2d library module in 
> column-major order
>
> array2d is currently designed with data stored in row-major order, 
> this is not ideal for a fairly large class of applications (and beyond 
> a certain load, transposing becomes a performance issue).
>
> The coding is fairly straightforward as far as I can assess it 
> (overall, swap Column and Row variables in array2d code) but a bit 
> tedious.
>
> Would this happen to be openly available somewhere ready-made?
>
> Otherwise I'll proceed with the rewrite.
>
> Fabrice
>


More information about the users mailing list