ROOTCINT and linear algebra classes

Pasha Murat (murat@cdfsga.fnal.gov)
Mon, 8 Sep 1997 21:15:21 GMT


I've been trying to figure out how to use linear algebra classes with ROOT.
There are 2 basically different types of linear algebra packages on the market:

- the ones using templated classes for vectors and matrices
- the ones not using templates

In one of the previous postings I asked about how to use templated classes
with 'rootcint'. - May be it is just not possible?

Using non-templated classes reveals other problems, an example is enclosed
below.

I'd appreciate any comments,
thanks, Pasha.

----------------------------------------------- test.hh
#include "root/Rtypes.h"
class VECTOR {
protected:
int Size;
double* V;
public:
VECTOR();
ClassDef(VECTOR,1)
};

#ifdef __CINT__
#pragma link off all globals;
#pragma link off all classes;
#pragma link off all functions;
#pragma link C++ class VECTOR;
#endif
------------------------------------------------
/cdf/upgrade/tracking/murat/g3/test/glob>rootcint -f test_cint.cc -c -I../include -I$ROOTSYS/include test.hh
Note: operator new() masked c
Warning: Link requested for undefined class test FILE: LINE:0
--------------------------------------------------------------------------------

It looks like the file name matters here (does it really ? ) - if
I rename test.hh into VECTOR.hh the diagnostics is quite different:

--------------------------------------------------------------------------------
/cdf/upgrade/tracking/murat/g3/test/glob>mv test.hh VECTOR.hh
/cdf/upgrade/tracking/murat/g3/test/glob>rootcint -f test_cint.cc -c -I../include -I$ROOTSYS/include VECTOR.hh
Note: operator new() masked c
class VECTOR in VECTOR.hh line 2 original base of virtual func
*** Datamember VECTOR::V: pointer to fundamental type (need manual intervention)

--------------------------------------------------------------------------------

- The 1st question here is what's wrong with having pointer to double ?
- It is also interesting to know what kind of "manual intervention"
user is supposed to provide