[GiNaC-list] GiNaC as the symbolic manipulation engine in Sage

Burcin Erocal burcin at erocal.org
Mon Aug 11 12:45:36 CEST 2008


On Mon, 11 Aug 2008 11:39:42 +0200
Jens Vollinga <jensv at nikhef.nl> wrote:

> Hi from GiNaC side,
> 
> just some short comments:
> 
> Burcin Erocal schrieb:
> > - It takes ages to build
> > 	The packages above took ~25 minutes to build on my desktop
> > machine (15 for cln, 9 for ginac)
> 
> Did you configure with the --disable-static option? Otherwise your build 
> time is just twice the usual time (looks like it).

I didn't do anything to try to make these times better. I was more
concerned with benchmarking speed of basic manipulations, and thought
that these problems can be solved easily later.

Your suggestion reduces the compilation time of ginac to 5 minutes.
Looks like we're already below William's 8 minute limit. Now can we fix
the cln problem? :)


Thanks.

Burcin


> > - cln seems to support on only gcc, which might be a problem for the
> > windows port (which will be using ms compilers)
> 
> <blame others>
> That is a real problem, but it can only be solved by the cln people.
> </blame others>
> 
> > - cln duplicates functionality which is provided by different libraries
> > already distributed with Sage (mpfr, mpir, flint) at a considerable
> > speed penalty.
> 
> It would be quite useful for ginac if the numeric class that wraps the 
> cln library would allow for other libraries as well, even pure C double 
> precision ones. The problem in realizing this idea was always that other 
> libraries were missing certain features (some functions, modular 
> arithmetic,...) and to make up for these would incur a lot of extra 
> work. It didn't seem like it was worth the hassle (yet).
> 
> > - IIRC, GiNaC documentation suggests the printing order for the
> > variables is stable between different sessions, regardless of creation
> > order. However, running the doctests in the experimental wrapper
> > reveals different results. We may need to write a custom pretty printer.
> 
> True.
> 
> > - The gethash() function of GiNaC objects doesn't return stable
> > results, which is probably the cause of the problem above. We need a
> > stablehash() function.
> 
> Yes, the two points above are related and I am to a certain point 
> responsible for that mess. To explain: The original tinfo system in 
> ginac was changed a few years ago to avoid fixed magic numbers which are 
> a problem if you have a lot of user supplied ginac classes (made more 
> urgent by the plan to make functions into full ginac classes). The 
> current system assigns these dynamically during compilation. But it is 
> not done in a smart way, so the tinfo numbers usually differ between 
> different compilations. Now, these tinfo numbers also go into the hash 
> calculation and the term ordering ...
> 
> Personally, I would like to have this issue solved and have ginac to 
> produce a fixed term ordering (as long as the declaration order of the 
> symbols done by the user is the same). But at the moment I don't have 
> the time to do this. Any volunteers? :-)
> 
> Regards,
> Jens
> _______________________________________________
> GiNaC-list mailing list
> GiNaC-list at ginac.de
> https://www.cebix.net/mailman/listinfo/ginac-list
> 


More information about the GiNaC-list mailing list