Re: #matr~ vs ##matr (and: arity, questenian and !!)
Loïc Grenié <[email protected]>
| Newsgroups | gmane.comp.mathematics.pari.devel |
|---|---|
| Message-ID | <CAMLkfFTKGbo8KFfyr8-G2fcdTUMR-_Ftg6Ky7KHcUaiJeUnKAA@mail.gmail.com> |
On Mon 27 Nov 2023 at 14:13, Bill said:
> On Sun, Nov 26, 2023 at 07:48:32PM -0800, Ilya Zakharevich wrote:
> > On Fri, Feb 05, 2021 at 05:54:48AM -0800, Ilya Zakharevich wrote:
> > > On Fri, Feb 05, 2021 at 05:46:43AM -0800, Ilya Zakharevich wrote:
> > > > Is not it desirable to implement ##matr as an (optimized) synonym
> for #matr~?
> > > >
> > > > If the answer to the second question is positive, then one can maybe
> > > > improve things by returning a special value (such as -1) for scalars…
> > >
> > > Well, to get things yet simpler, one can make ###x to return 0 for
> > > scalars, 1 for vectors/lists and 2 for matrices.
> >
> > Taking all these things together, I think that in the best of the
> > worlds one would have these:
> >
> > #mattr~ optimized in the compiler to (an equivalent to)
> (matsize(mattr))[1]
>
> This one will not break backward compatibility while being easy to do.
>
> See the new branch bill-translength.
>
> ? M=matrix(200,201,i,j,random(2^200));
> ? for(i=1,1000,#M~)
> *** last result computed in 0 ms.
> instead of
> *** last result: cpu time 485 ms, real time 486 ms.
>
This one is really useful! I've never thought to ask...
Thanks!
Loïc