RE:[Fwd: [ROOT] complex number operations.]

From: Masaharu Goto (MXJ02154@nifty.ne.jp)
Date: Mon Jul 16 2001 - 15:39:29 MEST


Hello Fons and Christopher,

You need to load stdfunc.dll to avoid this problem.  stdfunc.dll
is created in lib/stdstrct directory.  Without this library ,
double exp(double) is out of function overloading matching. If
complex.h is loaded, complex exp(const complex&) is always used
and it causes infinite recursion.  Loading stdfunc.dll, 
double exp(double) is properly handled and you can avoid the
problem.

For making stdfunc.dll, there are 2 methods.

  1) Using pure cint package
    Download pure cint source package, install it using an
    appropriate platform dependency file. At the end all essential
    DLLs will be created. You will find $CINTSYSDIR/include/stdfunc.dll.
    Copy this file to $ROOTSYS/cint/include/stdfunc.dll.

  2) In root package, one of make option enebles you to build all
    essential DLLs. Please refer to ROOT documentation. 
    (There was a problem in this course, but it was fixed during the
     ROOT2001 workshop.)


Thank you
Masaharu Goto


>Date: Sat, 14 Jul 2001 16:48:41 +0000
>From: Fons Rademakers <Fons.Rademakers@cern.ch>
>To: Masaharu Goto <MXJ02154@niftyserve.or.jp>
>Cc: Rene@cern.ch
>Subject: [Fwd: [ROOT] complex number operations.]
>
>Hi Masa,
>
>  can you have a look at this.
>
>Cheers, Fons.
>
>
>-- 
>Org:    CERN, European Laboratory for Particle Physics.
>Mail:   1211 Geneve 23, Switzerland
>E-Mail: Fons.Rademakers@cern.ch              Phone: +41 22 7679248
>WWW:    http://root.cern.ch/~rdm/            Fax:   +41 22 7677910
>-----------------------------------------------------------------------------
-
--
>Date: Fri, 13 Jul 2001 10:39:28 -0400
>From: "Christopher B. Lirakis" <clirakis@bbn.com>
>To: roottalk@pcroot.cern.ch
>Subject: [ROOT] complex number operations. 
>
>
>hi Rooters,
>         I have noticed something strange when using the complex class. It 
>appears that you can't use complex numbers until you load the complex.h 
>header. Once this is done the function call to exp blows up.
>
>What I have is another header that defines some functions that I am using. 
>Within this header I have an include <complex.h>
>Once loaded, exp no longer works.
>
>exp(0.0) before loading gives 1.0
>exp(0.0) after loading gives an exception.
>
>I am running windows 2000, root 3.01/05.
>
>Also are there intentions to include more of the complex functionalitiy?
>
>Include file.
>#ifndef __TOOLS_h_
>#define __TOOLS_h_
>#include <math.h>
>#include <limits.h>
>#include <float.h>
>#include <complex.h>
>
>#endif
>
>
>
>
>-Christopher B. Lirakis, Phd
>-High Performance Computing
>-BBN Technologies
>-127 John Clarke Rd
>-Middletown, RI 02842
>-
>-(401) 849-2543 (voice) - Front Desk
>-(401) 848-3537 (voice) - Direct Line.
>-(401) 849-8611 (fax)
>-(401) 788-4607 (cell)
>-
>-http://www.gte.com/AboutGTE/gto/bbnt/
>



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