Re: [eigen] Custom complex type

[ Thread Index | Date Index | More Archives ]

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+