Re: [eigen] Arbitrary precision arithmetic support in Eigen

[ Thread Index | Date Index | More Archives ]

ok, I could not resit to adapt it for Eigen3. Actually this is very
useful to stress Eigen with scalar types having non trivial ctor/dtor
(i.e., allocating/freeing memory), and bingo (!) there was a bug in
ei_aligned_detete() for null pointers ;)


On Wed, Jul 14, 2010 at 4:06 PM, Gael Guennebaud
<gael.guennebaud@xxxxxxxxx> wrote:
> Hi Pavel,
> thank you for your email. This is excellent!
> Actually, the possibility to use arbitrary precision scalar types is
> one of the main argument I often use to sell Eigen. So having an
> officially supported module for your lib with extensive testing is
> something I wanted to do for a while, but you know there are always so
> many things to do.
> So I'm really glad to see you added support for Eigen ;) I will add a
> word on the website.
> What to do next?
> You said there is a lack of extensive testing. Since all our efforts
> are now focused on the next Eigen version, Eigen3 which should be
> release within a few months I'd rather spend time testing MPFR support
> on Eigen3 than Eigen2. However, the way to add support for custom
> scalar types slightly change. Fortunately, based on your current
> support header file this should not be difficult. I can have a look at
> it myself.
> One leading question is where to put such an header file? Within Eigen
> as a (MpfrSupport module) or as a standalone file as it is currently
> the case? The main advantage I see in having it in Eigen itself is
> that should simplify to had full and continuous testing What do you
> think?
> Finally, once MPFR C++ will use expression template, adding a good
> support for Eigen-MPFR C++ that leverages ET at both the matrix and
> scalar type level will be more tricky because Eigen will have to know
> about the returned expression types of the mpreal operations. We
> currently do not have an easy solution for that but this is something
> we have to workout anyway for many other use cases (e.g., to nest
> Eigen's Matrix/Array types, for automatic differentiation, etc.)
> cheers,
> gael
> On Wed, Jul 14, 2010 at 7:01 AM, Pavel Holoborodko
> <pavel@xxxxxxxxxxxxxxx> wrote:
>> Hello Everyone!
>> First of all I would like to thank all the developers for the this
>> beautifully designed and implemented library!
>> I've learned a lot looking over it.
>> I'm developer of C++ interface for the arbitrary precision floating point
>> arithmetic library MPFR:
>> During last year I've received couple of questions from the users on how to
>> use my wrapper together with Eigen. There was discussion in KDE forum on the
>> topic but it seems that not all problems were solved:
>> Recently the most complete (hopefully:)) bridge for embedding mpreal type
>> into Eigen was created.
>> Please check home page under "Software using MPFR C++" for header file
>> mpreal_eigen.h:
>> So, now user can equip Eigen with arbitrary precision arithmetic by:
>> 1. Installing  MPFR and GMP libraries.
>> 2. Using MPFR C++ interface (mpreal.h, mpreal.cpp) along with header file
>> mpreal_eigen.h
>> 3. Using mpreal type (provided by MPFR C++) instead of built-in type double
>> or float.
>> Precision (number of bits used for significant) can be setup globally by
>> mpreal::set_default_prec().
>> For instance double has only 53 bits precision with machine epsilon 1e-16
>> (maximum 16 correct digits).
>> Using mpreal user can do calculations with any precision, e.g. 1024 bits
>> with machine epsilon 1e-309 (309 correct digits).
>> I would appreciate if someone who intensively use/develop Eigen would test
>> how MPFR C++ works with Eigen.
>> Any suggestions for improvement, test reports, etc.  are very very welcome.
>> Also I would appreciate if Eigen webpage or documentation will reference
>> such possibility on using arbitrary precision arithmetic.
>> I think, this option could be very useful for the users.
>> Besides reference on my site would give me huge support and motivation for
>> further improvement.
>> All the best,
>> Pavel Holoborodko.
>> P.S.
>> I'm planning to release new version of MPFR C++ soon based on expression
>> templates inspired by Eigen.

Mail converted by MHonArc 2.6.19+