Re: [ROOT] Why _must_ array size by Int_t/UInt_t - why?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Jun 27 2001 - 11:42:27 MEST


Hi Christian,

We know about that.
Currently, you must have an Int_t or UInt_t. Adding support for Short/UShort,
Char/UChar implies several changes in TStreamerInfo to correctly map the
addresses of the counter. We will introduce the logic in a future version.

Note that the gain in space (on file) is marginal unless you do not use
compression and you have many short length arrays.

Rene Brun

Christian Holm Christensen wrote:
> 
> Hi ROOT'ers,
> 
> It seems that ROOT's I/O insist on the array size of pointer data
> member to be an Int_t or UInt_t - why not a Short_t or UShor_t, or
> even Long_t or ULong_t?  For example
> 
>   class Foo : public TObject
>   {
>   private:
>     UShort_t  fN;     // Array size <= doesn't work - why?
>     // Short_t   fN;     // Array size <= doesn't work - why?
>     // Int_t     fN;     // ROOT's I/O insists on an 'interger' - why?
>     // UInt_t    fN;     // ROOT's I/O insists on an 'interger' - why?
>     Short_t*  fArray; //[fN] Data Array
>   public:
>     Foo() : fN(0) { fArray = 0; }
>     Foo(UShort_t n) : fN(n) {
>       fArray = new Short_t[fN];
>       for (UShort_t i = 0; i < n ; i++)
>         fArray[i] = i;
>     }
> 
>     void Print(Option_t* option="") const {
>       for (UShort_t i = 0; i < fN ; i++)
>         cout << " " << setw(3) << fArray[i] << flush;
>       cout << endl;
>     }
> 
>     ClassDef(Foo, 1) // A Foo class
>   };
> 
> It seems like a waste of 2 perfectly good bytes to insist on having a
> (4 byte) Int_t/UInt_t when most often a (2 byte) Short_t/UShort_t
> could do.
> 
> This ROOT using 3.01/05.
> 
> Yours,
> 
> Christian  -----------------------------------------------------------
> Holm Christensen                             Phone:  (+45) 35 35 96 91
>   Sankt Hansgade 23, 1. th.                  Office: (+45) 353  25 305
>   DK-2200 Copenhagen N                       Web:    www.nbi.dk/~cholm
>   Denmark                                    Email:       cholm@nbi.dk



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