[metapost] Re: all intersections between two paths
Hans Hagen
pragma at wxs.nl
Mon Jan 17 12:04:53 CET 2005
Laurence Finston wrote:
> I don't think there's anything _wrong_ with it. As I understand it,
> where tail recursion is possible, there is indeed no problem.
> Roughly speaking, and again as I understand it,
> in C and C++, the price of a function call
> is a stack frame, whereas the price of a loop is a handful of machine
> instructions.
most cpu's are optimized for that kind of stack handling, as are compilers,
> The price of an additional, recursive call to a function is another stack
> frame, whereas the price of an additional iteration is testing a
> conditional and a jump, i.e., negligible.
in this case, a few hundred stack frames are neglectable to what other threads
in your OS may be doing; there are also languages that are build around
recursion (functional languages and such)
> I don't know whether optimizing compilers (or perhaps the run-time system?)
> can recognize where tail recursion is possible and eliminate
> stack frame nesting; nor do I know how a programmer could tell the
> compiler to do this, where possible, nor whether it would be wise for a
> programmer to depend on this behavior. If you or anyone else knows
> about this subject, I'd be very interested in learning more.
in general, in languages like tex/mp, copying data structures take the most
time, so don't worry about speed-up here; (in tex for instance, fully
expandable, recursive macros are way faster than loops with counters)
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
| www.pragma-pod.nl
-----------------------------------------------------------------
More information about the metapost
mailing list