Re: complex problems

From: Rene Brun <brun_at_pcroot.cern.ch>
Date: Mon, 11 Apr 2005 23:31:41 +0200 (MEST)


Hi Jacek,

Masa is currently absent for a few days. He will answer your mail once he will be back.

Rene Brun

On Mon, 11 Apr 2005, Jacek
M.
Holeczek wrote:

> Hi,
> the ROOT is 4.03/04 5 April 2005 (CINT 5.15.169, Mar 14 2005) running on a
> SLC3/i386 machine.
>
> This newest ROOT has the complex.dll built in.
> It is not placed in the "usual" $ROOTSYS/cint/include subdirectory, but in
> the $ROOTSYS/cint/stl subdirectory.
>
> There are some problems, however ...
>
> ... when I do not load/include complex manually:
> --------------------------------------------------------------------------
> root [0] complex<double> x;
> Error: no such template complex<double> FILE:(tmpfile) LINE:1
> *** Interpreter error recovered ***
> --------------------------------------------------------------------------
>
> ... when I try to "load" the complex.dll library using "gSystem->Load()"
> (I guess that it does NOT recognize the ".dll" extension as a valid shared
> library extension, and more ... it does not see that the "full" paths to
> the library beginning with a "/" has been given and it tries to find the
> library anywhere in the $LD_LIBRARY_PATH.):
> --------------------------------------------------------------------------
> root [0] gSystem->Load("/.../cint/stl/complex.dll")
> Error in <TUnixSystem::DynamicPathName>: /.../cint/stl/complex.dll[.so | .sl | .dl | .a] does not exist in .:/.../lib::...:/usr/local/lib:
> (int)(-1)
> --------------------------------------------------------------------------
>
> ... when I try to "load" the complex.dll library using ".L" (no
> complex<float> in complex.dll, note also the output of "root [2] x"):
> --------------------------------------------------------------------------
> root [0] .L /.../cint/stl/complex.dll
> root [1] complex<double> x;
> root [2] x
> (class complex<double>)160952168
> root [3] cout << x << endl;
> Error: operator<< not defined for basic_ostream<char,char_traits<char> > FILE:(tmpfile) LINE:1
> *** Interpreter error recovered ***
> root [4] .class complex<double>
> // ... the output seems to be fine (points to complex.dll)
> root [5] .class complex<long double>
> // ... the output seems to be fine (points to complex.dll)
> root [6] .class complex<float>
> Limitation: Can't instantiate precompiled template complex<float> FILE: LINE:0
> *** Interpreter error recovered ***
> --------------------------------------------------------------------------
>
> ... when I try to "include" complex (note that complex<float> below comes
> from _complex.h instead of complex.dll, note also the output of "root
> [2] x" below and compare with the one above):
> --------------------------------------------------------------------------
> root [0] #include "complex"
> root [1] complex<double> x;
> root [2] x
> Error: operator<< not defined for basic_ostream<char,char_traits<char> > FILE:_complex LINE:17
> *** Interpreter error recovered ***
> root [3] cout << x << endl;
> Error: operator<< not defined for basic_ostream<char,char_traits<char> > FILE:(tmpfile) LINE:1
> *** Interpreter error recovered ***
> root [4] .class complex<double>
> // ... the output seems to be fine (points to complex.dll)
> root [5] .class complex<long double>
> // ... the output seems to be fine (points to complex.dll)
> root [6] .class complex<float>
> ===========================================================================
> class complex<float>
> size=0x8 FILE:_complex.h LINE:14
> (tagnum=1448,voffset=-1,isabstract=0,parent=-1,gcomp=0:0,d21=~cd=b)
> List of base class--------------------------------------------------------
> List of member variable---------------------------------------------------
> Defined in complex<float>
> _complex.h 26 0xffffffff protected: float re
> _complex.h 26 0x3 protected: float im
> List of member function---------------------------------------------------
> filename line:size busy function type and name (in complex<float>)
> _complex.h 16:1 0 public: complex<float> complex<float>(float
> a=0,float b=0);
> _complex.h 17:1 0 public: complex<float> complex<float>(const
> complex<float>& a);
> _complex.h 18:5 0 public: complex<float>& operator=(const
> complex<float>& a);
> _complex.h 23:1 0 public: float real(void);
> _complex.h 24:1 0 public: float imag(void);
> --------------------------------------------------------------------------
>
> Could you, please, fix these problems.
>
> Thanks in advance,
> Best regards,
> Jacek.
>
Received on Mon Apr 11 2005 - 23:31:50 MEST

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:06 MET