An example of your 'trivial' case is converting u/@:|: on a table to
u/"1 . Yes, that would be possible.
Worthwhile? You'd need to demonstrate the demand.
Your Bezier example is apt. If you had the primitive you wanted, it
would have made it easy to write code that did more transposes than
necessary. Have we really done you a favor? Perhaps, but perhaps not
if the experience made you better at planning your axis order.
Explicit use of |: is always an option.
Henry Rich
On 1/25/2022 12:13 AM, Elijah Stone wrote:
On Mon, 24 Jan 2022, Henry Rich wrote:
Your expectation of easy extension is unfounded.
The trivial case is still trivial, though, no? For any application at
rank which is fast, and which has a direct expression as an
application under transpose, it should be trivial to divert the latter
to the codepath used by the former.
For anything which didn't have a fast expression in terms of rank,
there was no existing expectation that it will be fast. So you do not
_lose_ performance in any event.
(The difficulty of implementing and supporting virtual shapes pervasively
is acknowledged.)
If you want this function, I think you should write your own
conjunction for it and get some experience.
I will. But first, an argument I did not think of earlier:
In my code, I have sometimes needed to transpose before an operation
but very seldom have I needed to transpose before and then transpose
back.
I find it very plausible that, for a given problem, it is possible to
find a data representation that minimizes the need for transpositions.
However, easy access to transpose means that it is easier to develop
and iterate without worrying so much about the underlying representation.
Case in point: I made a quadratic bezier curve renderer recently,
representing the curve data using a three-dimensional array. So I had
to choose how to order the axes. I got it wrong the first time, and
had to restructure some code as a result. It might not have mattered
so much, had there been a primitive to put the axes directly in the
right order at the point where that was needed.
-E
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
--
This email has been checked for viruses by AVG.
https://www.avg.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm