Re: [ROOT] Complex Matrix, Complex Vector

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu May 17 2001 - 10:42:09 MEST


Hi Jacek,

Interesting experience with Blitz++ !

I would like to add a remark concerning interfaces with existing math libs.
 - I assume that any existing C/C++ math lib can be directly used
    from any ROOT compiled application.
 - It would be nice to have a CINT interface.
 - Most important, an I/O interface. There is no point in having a matrix
   class if you cannot do I/O. These mathematical objects can be embedded
   inside other objects that have to be persistent. It implies that one must
   be able to run rootcint on the header files.

Jacek, Are you volunteer to investigate possible candidates?
You did this preliminary work with Blitz++. Several people have expressed
interest in GSL. It would be nice if somebody could summarize the experience 
with the various libs around: portability, usage requirements, use of templates,
etc.

Rene Brun

Jacek M. Holeczek wrote:
> 
> Hi,
> > I encourage people to comment
> You asked for it.
> I took a look into gluing Blitz++ with root(cint).
> I think there may be a major problem here.
> As far as I understand, CINT requires that templates are instantiated.
> In Blitz++, however, "it is not possible to do explicit instantiation of
> Blitz++ arrays". "The reason is that explicit instantiation results in all
> members of a class template being instantiated. This is not the case for
> implicit instantiation, in which only required members are instantiated.
> The Array<T,N> class contains members which are not valid for all types
> T: for example, the binary AND operation &= is nonsensical if T=float.
> If you attempt to explicitly instantiate an array class, e.g.
>         template class Array<float,3>;
> then you will be rewarded with many compile errors, due to methods such as
> &= which are nonsensical for float."
> Seems that Blitz++ is lost for ROOT/CINT, right ?
> Best regards,
> Jacek.



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:45 MET