Currently, I have a problem with the new definitions of TMath::Sort() which cause problems in CINT, see:
root.cern.ch/phpBB2/viewtopic.ph … 25ffbc8fe8
In this regard I realized that TMath has now severe inconsistencies:
Please compare TMath.h from root_v5.18/00 and root_v5.20/00.
As an example, TMath.h in root_v5.18/00 defines:
Long64_t LocMin(Long64_t n, const Short_t *a); Long64_t BinarySearch(Long64_t n, const Short_t *array, Short_t value); Short_t KOrdStat(Long64_t n, const Short_t *a, Long64_t k, Long64_t *work=0); void Sort(Int_t n, const Short_t *a, Int_t *index, Bool_t down=kTRUE); void Sort(Long64_t n, const Short_t *a, Long64_t *index, Bool_t down=kTRUE);
while in root_v5.20/00 it is defined as (according to: root.cern.ch/root/html520/TMath.html):
Long64_t LocMin(Long64_t n, const short* a) Long64_t BinarySearch(Long64_t n, const short* array, short value) short KOrdStat(long long n, const short* a, long long k, long long* work = 0) void Sort(Long64_t n, const short* a, long long* index, Bool_t down = kTRUE)
I cannot even find the files where the different functions are defined. They are surely not defined in
TMathBase.h, as “http://root.cern.ch/root/html520/TMath.html” suggests.
While until now ROOT has always defined e.g. Int_t, Double_t, etc internally, which (as far a I know)
is considered to be good programming practice, this seem no longer to be the case in root_v5.20/00,
at least for TMath.h
Is there a certain reason for this inconsistency?
(I would prefer if ROOT would continue to define the types consistently.)