Re: [eigen] Custom complex type

[ Thread Index | Date Index | More Archives ]

Hi Gael,

Thanks for answers everyone.

Gael, I'll try this way (custom mpcomplex + std comp. API) with hope that it will work with Eigen "in practice" too.

I'll let you know about the results.

On Wed, Jun 8, 2011 at 3:43 AM, Gael Guennebaud <gael.guennebaud@xxxxxxxxx> wrote:
Hi Pavel,

in theory you should be able to write your own mpcomplex class, and
define NumTraits<mpcomplex>::IsComplex to true as long as you
implement a STD compatible API.


On Tue, Jun 7, 2011 at 8:04 AM, Pavel Holoborodko <pavel@xxxxxxxxxxxxxxx> wrote:
> Hello,
> Eigen's magicians, please advise on how to implement custom complex type for
> smooth integration with Eigen.
> I plan to create multi-precision C++ complex scalar class based on
> MPC:
> MPC is cousin of MPFR from the same authors -
> There are two possible ways to proceed:
> (1).  Add template specialization for std::complex<mpfr::mpreal>.
> (2).  Create own scalar class something like mpcomplex based on low-level
> MPC.
> Second option seems attractive from optimization point of view - minimum
> overhead, no conversion mpreal <-> MPC low level stuff is required.
> There is only one problem - will it be possible to integrate such complex
> type with Eigen?
> Documentation on NumTraits says:
> "An enum value IsComplex. It is equal to 1 if T is a std::complex type, and
> to 0 otherwise."
> Does it mean that only std::complex<T> custom complex types are supported in
> Eigen?
> If yes, do I need to provide something besides
> NumTraits<std::complex<mpreal> > specialization?
> Thanks in advance,
> Pavel.

Mail converted by MHonArc 2.6.19+