Re: different outputs in g++ and ROOT

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Nov 24 1999 - 09:10:55 MET


Hi Allister,
CINT does not accept calls to class member functions in initialisation
of const arrays.
You can change your initialisation to:
const Double_t sqrt3 = TMath::Sqrt(3.);
const Double_t phi[4] = {0., (1 + sqrt3)/2, (1 - sqrt3)/2, 0.};

const Double_t h[4] = {(1 + sqrt3)/4, (3 + sqrt3)/4, 
                     (3 - sqrt3)/4, (1 - sqrt3)/4};


Also note that you do not need to modify your original function 
replacing double by Double_t, sqrt(3) by TMath::Sqrt, etc.

Rene Brun


allister@malapacan.msuiit.edu.ph wrote:
> 
> Hi,
> 
> I wrote a macro both in g++ and ROOT (pls. see attached) to calculate a
> single value of a Daubechies building block/wavelet.  When I do it in g++,
> 
> $ g++ daubechies.C -o daub
> $ ./daub
> 
> then input r = 1.125 (actually works well for a certain set of inputs) the
> results are:
> 
>         Phi( 1.125 ) = 0.620513 .
>         Psi( 1.125 ) = -0.208133 .
> 
> However, in ROOT 2.22/10,
> 
> $ root daub_ROOT.C
> 
> then input 1.125
> 
>         Phi( 1.125 ) = -1.53122e+06 .
>         Psi( 1.125 ) = 2.28002e+06 .
> 
> (int)0
> root [1]
> 
> Could somebody tell me the reason for the difference?
> 
> Thanks,
> 
> ALLISTER LEVI C. SANCHEZ
> DEPARTMENT OF PHYSICS
> MSU - ILIGAN INSTITUTE OF TECHNOLOGY
> 9200 ILIGAN CITY
> PHILIPPINES
> 
> Today's Line: Forgiveness! Oh what a way to solve memory leaks!
> 
>   ------------------------------------------------------------------------
> 
>                          Name: daubechies.C
>    daubechies.C          Type: Plain Text (TEXT/PLAIN)
>                      Encoding: BASE64
>                   Description: macro in g++
> 
>                         Name: daub_ROOT.C
>    daub_ROOT.C          Type: Plain Text (TEXT/PLAIN)
>                     Encoding: BASE64
>                  Description: macro in ROOT



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:43 MET