Le mer. 29 mai 2024 à 05:05, Waldek Hebisch <de...@fricas.org> a écrit :
>
> On Wed, May 29, 2024 at 02:00:29AM +0200, Grégory Vanuxem wrote:
> > Hello,
> >
> > Is there an already implemented way to count the number of Spad
> > function calls needed to compute a more general computation?
>
> No.

Ok,

> > I could
> > add a global counter to a routine/macro like spadcall or something
> > like that, but I am wondering if this was already done? I don't think
> > it is simple.
>
> Well, redefining SPADCALL to also increment a counter looks simple,
> but of limited use.  First, it is likely to measurably increase time
> taken by SPADCALL, so it is not good for normal use.

Of course, I would not use a hard-coded counter like that.

> > I have seen in the code some comments about this but I
> > do not know how to do it exactly. As an illustration, in the Complex(R
> > : CommutativeRing) domain there is this comment:
> >
> >        Ops ==>
> >            x + y == [x.real + y.real, x.imag + y.imag]
> >                            -- by re-defining this here, we save 5 fn calls
>
> The person who wrote it probably measured execution time and looked why
> it is slower than expected.  Looking at generated code one can easily
> see it operations are inline or done via SPADCALL.  If there are
> SPADCALL-s one may try to re-arrange code to elliminate them.
>
> And it is easy to see why this helps: generic code would have to
> use SPADCALL to acces 'real' and 'imag'.  In 'Complex' representation
> is visible so code can use access to record components which is
> done by inline code.

Ok, thanks for this information.

- Greg

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to fricas-devel+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/fricas-devel/CAHnU2daJb43QX%2B68uQyKko1qV2aOsPtnmHgH3DaMi3UBgo-BxA%40mail.gmail.com.

Reply via email to