On Mon, Aug 11, 2008 at 1:30 AM, Burcin Erocal <burcin@erocal.org> wrote: <snip>
While GiNaC seems to be the best option for Sage, it has some problems (apart from the awkward capitalization of the name which is a pain to type).
- It takes ages to build The packages above took ~25 minutes to build on my desktop machine (15 for cln, 9 for ginac)
- cln seems to support on only gcc, which might be a problem for the windows port (which will be using ms compilers)
- cln duplicates functionality which is provided by different libraries already distributed with Sage (mpfr, mpir, flint) at a considerable speed penalty.
On Mon, 11 Aug 2008 11:39:42 +0200 Jens Vollinga <jensv@nikhef.nl> wrote:
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).
I also think that using other libraries instead of cln in the (subclasses of) numeric class is the way to go. With William's remarks below, this becomes essential for Sage. :) On Mon, 11 Aug 2008 02:37:40 -0700 "William Stein" <wstein@gmail.com> wrote:
The single big question that needs to be answered that you don't answer in your post is the following:
Is it likely in your opinion that with a month of hard work by you (say), would it be possible to create something based on Ginac that would actually satisfy the following:
1. Does not depend on cln. 2. Builds in less than 8 minutes.
I mean this as a 100% technical questions (not social, etc.). I just had a look at the source code directory for ginac, and it is about 20,000 lines of pretty well documented C++ code total. I have the strong impression that the use of cln is nearly completely encapsulated in the file numeric.cpp, which is about 2000 lines. I'm guessing a Sage version of Ginac could simply replace numeric.cpp by our own implementation.
Of course this is possible. I am willing to put in most of the work to make this happen. However, support from the GiNaC developers for such an effort is very important. They know their code base best, with their suggestions this could be accomplished much faster.
cln will not be included standard in Sage ever. I could definitely see a version of ginac that doesn't depend on cln as possible for Sage...
-- William>
Cheers, Burcin