**************************************************************************
Note:
   1) This unified version of CLHEP is the merger bewteen the "current"
      D0 version and the "current" CDF version as of 10-27-1997.

   2) The file structure for this CLHEP is based on the CDF version using
      the SOftRelTools...

   3) The individual files are  based on the D0 version which is much more
      closer to the most recent CERN version.

   Ming Gao,    10-29-1997
**************************************************************************





*************************************************
Add the following code to Alist/AListBase.cc 
---------

 //The following is a very ugly hack to convert a pointer to a C++ linkage
 //function to a C linkage one.  This introduces the global function
 //HepCLinkageCompFunc into the name space, and the function pointer
 //pHepCompFunc.  It isn't possible to  make an extern "C" function 
 //have file name scope.  Al Lee, Duke U/CDF

 int (*pHepCompFunc)(const void*, const void*);

 extern "C" int HepCLinkageCompFunc(const void* a, const void* b) { 
   return (*pHepCompFunc)(a,b);
 }
 
 void HepAListBase::sort(int (*compfunc)(const void*, const void*) ) {
 
   //Set the pointer to the C++ linkage function to the passed pointer.
   //Then pass a pointer to a C linkage function that will use that pointer.
   pHepCompFunc = compfunc;
   qsort( p, n, sizeof(void *), &HepCLinkageCompFunc );
 }
 
----------------------------------------------------




*************************************************
Add a new file to CLHEP, Alist/AList.cc 
It has the following code:
---------
 extern int (*pHepCompFunc)(const void*, const void*);

 //function is defined in AListBase.cc.
 extern "C" int HepCLinkageCompFunc(const void* a, const void* b);

 template <class T>
 void HepAList<T>::sort(int (*compfunc)(const T **, const T **) ) {

  //Set the pointer to the C++ linkage function to the passed pointer.
  //Then pass a pointer to a C linkage function that will use that pointer.
  //note cast of function pointer type.
  pHepCompFunc = (int (*)(const void*, const void*)) compfunc;
  qsort( p, n, sizeof(void *), &HepCLinkageCompFunc );
 } 

----------------------------------------------------




*************************************************
Replace cdf/Combination/HepBaseParticle.cc with
        d0/Combination/HepBaseParticle.cc 

The cdf/Alist/AListBase.cc is renamed as AListBase.cc0

result:
 bool -> HepBoolean  for many bool type (member) functions in 
 		     cdf/Combination/HepBaseParticle.cc
----------------------------------------------------




*************************************************
Replace cdf/Matrix/GenMatrix.cc with
        d0/Matrix/GenMatrix.cc 

The cdf/Matrix/GenMatrix.cc is renamed as GenMatrix.cc0

result:
 bool -> HepBoolean  for many bool type (member) functions in 
 		     cdf/Matrix/GenMatrix.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/ClassDescription.cc
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/DescriptionList.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/PIBinStream.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/PICharStream.cc 
----------------------------------------------------




*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/PIStream.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/PIXdrStream.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/POBinStream.cc
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/POCharStream.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/POStream.cc 
----------------------------------------------------



*************************************************
Add      
#ifndef HEP_NO_PERSISTENT_STREAMS
#endif
to eliminate all codes
( HEP_NO_PERSISTENT_STREAMS = 1 for both D0/CDF )
to
PersistentIO/POXdrStream.cc 
----------------------------------------------------


*************************************************
Random/DRand48Engine.cc

Add
----     
 #ifdef HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
   ifstream inFile("DRand48.conf", ios::in|ios::nocreate);
 #else
   ifstream inFile("DRand48.conf",ios::in);
 #endif //HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM

to replace
-----
   ifstream inFile("DRand48.conf", ios::in|ios::nocreate);

In the config/CLHEP.h
-----
  #ifndef __KCC
  #define HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
  #endif

also, the cdf/Random/DRand48Engine.cc is renamed as Random/DRand48Engine.cc0
----------------------------------------------------


*************************************************
Random/JamesRandom.cc

Add
----     
 #ifdef HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
   ifstream inFile("JamesRand.conf", ios::in|ios::nocreate);
 #else
   ifstream inFile("JamesRand.conf",ios::in);
 #endif //HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM

to replace
-----
   ifstream inFile("JamesRand.conf", ios::in|ios::nocreate);

In the config/CLHEP.h
-----
  #ifndef __KCC
  #define HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
  #endif

also, the cdf/Random/JamesRandom.cc is renamed as Random/JamesRandom.cc0
----------------------------------------------------




*************************************************
Random/RandEngine.cc

Remove (three places, line 35, 51, 103)
------
   HepDouble dummy;
   for (HepInt i=0; i<p.seq; ++i)      dummy = flat();
 due to Compiler WARNING:
 warning: variable "dummy" was set but never used

and add
------
   for (HepInt i=0; i<p.seq; ++i)      { flat(); }

Add
----     
 #ifdef HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
   ifstream inFile("Rand.conf", ios::in|ios::nocreate);
 #else
   ifstream inFile("Rand.conf",ios::in);
 #endif //HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM

to replace
-----
   ifstream inFile("Rand.conf", ios::in|ios::nocreate);

In the config/CLHEP.h
-----
  #ifndef __KCC
  #define HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
  #endif

also, the cdf/Random/RandEngine.cc is renamed as Random/RandEngine.cc0
----------------------------------------------------


*************************************************
Random/RanecuEngineom.cc

Change for CDF version:
------------------
 1) in all cases, maxseq(=215) is used instead of 215
 2) the following codes (what if pos > maxSeq)
    in void RanecuEngine::setSeeds(const long* seeds, HepInt pos)
  -------
	    const HepInt index = pos;
	    if ((index >= 0) && (index < maxSeq)) {
	      seq = index;
	      theSeed = index;
	    }
	    if ((seeds[0] > 0) && (seeds[1] > 0)) {
	      table[index][0] = seeds[0];
	      table[index][1] = seeds[1];
	    }
 	    theSeeds = &table[index][0];
  -------
   is changed to:
  -------
	  seq = (pos%maxSeq);
	  theSeed = seq;
	  if ((seeds[0] > 0) && (seeds[1] > 0)) {
	    table[seq][0] = seeds[0];
	    table[seq][1] = seeds[1];
	  }
	  theSeeds = &table[seq][0];
  -------

Add
----     
 #ifdef HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
   ifstream inFile("RanecuEngine.conf", ios::in|ios::nocreate);
 #else
   ifstream inFile("RanecuEngine.conf",ios::in);
 #endif //HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM

to replace
-----
   ifstream inFile("RanecuEngine.conf", ios::in|ios::nocreate);

In the config/CLHEP.h
-----
  #ifndef __KCC
  #define HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
  #endif

also, the cdf/Random/RanecuEngineom.cc is renamed as Random/RanecuEngineom.cc0
----------------------------------------------------



*************************************************
Random/RaluxEngineom.cc

Add
----     
 #ifdef HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
   ifstream inFile("RaluxEngine.conf", ios::in|ios::nocreate);
 #else
   ifstream inFile("RaluxEngine.conf",ios::in);
 #endif //HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM

to replace
-----
   ifstream inFile("RaluxEngine.conf", ios::in|ios::nocreate);

In the config/CLHEP.h
-----
  #ifndef __KCC
  #define HEP_IOS_NOCREATE_NEEDED_FOR_IFSTREAM
  #endif

also, the cdf/Random/RaluxEngineom.cc is renamed as Random/RaluxEngineom.cc0
----------------------------------------------------



*************************************************
Replace cdf/String/CmdArg.cc with d0/String/CmdArg.cc 

The cdf/String/CmdArg.cc is renamed as AListBase.cc0

result:
 bool -> HepBoolean  in all cases for cdf/Combination/HepBaseParticle.cc
----------------------------------------------------


*************************************************
Vector/Rotation.cc

Change the following codes 
-----
      HepDouble x = sqrt((rxx-cosa)/cosa1);
      HepDouble y = sqrt((ryy-cosa)/cosa1);
      HepDouble z = sqrt((rzz-cosa)/cosa1);
to
-----
      HepDouble x=0,y=0,z=0;
      if (rxx>cosa) x = sqrt((rxx-cosa)/cosa1);
      if (ryy>cosa) y = sqrt((ryy-cosa)/cosa1);
      if (rzz>cosa) z = sqrt((rzz-cosa)/cosa1);
-----

also, the d0/Vector/Rotation.cc is renamed as Vector/Rotation.cc0
----------------------------------------------------




*************************************************
Merge d0/Alist/AList.h and cdf/CLHEP/Alist/AList.h 

result:
 1)  bool -> HepBoolean  for many bool type (member) functions in AList.h 
 2)  inline void sort(int (*compfunc)(const T **, const T **) );
     become
     void sort(int (*compfunc)(const T **, const T **) );
     which is defined in AList.cc

----------------------------------------------------



*************************************************
Merge d0/Alist/AList.icc and cdf/CLHEP/Alist/AList.icc 

result:
 1)  bool -> HepBoolean  for many bool type (member) functions in AList.icc
 2)  remove the following code
--------
 template <class T>
 inline void HepAList<T>::sort(int (*compfunc)(const T **, const T **) ) {
    qsort( p, n, sizeof(void *), (int (*)(const void*, const void*))compfunc );
 }

----------------------------------------------------



*************************************************
Merge d0/Alist/AListBase.h and cdf/CLHEP/Alist/AListBase.h

result:
 1)  bool -> HepBoolean  for many bool type (member) functions in AListBase.h
 2)  inline void sort( int (*compfunc)(const void*, const void*) );
     become
     void sort( int (*compfunc)(const void*, const void*) );
     which is defined in AListBase.cc
 3)  add switch HEP_OLD_STYLE_HEADER_FILE_NAMES for <stdlib.h> or <cstdlib>

----------------------------------------------------



*************************************************
Merge d0/Alist/AListBase.icc and cdf/CLHEP/Alist/AListBase.icc

result:
 1)  bool -> HepBoolean  for many bool type (member) functions in AListBase.icc
 2)  remove the following code
--------
 inline void HepAListBase::sort( int (*compfunc)(const void*, const void*) ) {
   qsort( p, n, sizeof(void *), compfunc );
 }
----------------------------------------------------




*************************************************
Replace cdf/Alist/CList.h with d0/Alist/CList.h

result:
 bool -> HepBoolean  for many bool type (member) functions in 
 		     cdf/CLHEP/Alist/CList.h
----------------------------------------------------


*************************************************
Replace cdf/Alist/CList.icc with d0/Alist/CList.icc

result:
 bool -> HepBoolean  for many bool type (member) functions in 
 		     cdf/CLHEP/Alist/CList.icc
----------------------------------------------------


*************************************************
Replace cdf/Alist/ConstAList.h with d0/Alist/ConstAList.h

result:
 bool -> HepBoolean  for many bool type (member) functions in 
 		     cdf/CLHEP/Alist/ConstAList.h
----------------------------------------------------


*************************************************
Replace cdf/Alist/ConstAList.icc with d0/Alist/ConstAList.icc

result:
 bool -> HepBoolean  for many bool type (member) functions in 
 		     cdf/CLHEP/Alist/ConstAList.icc
----------------------------------------------------


*************************************************
Replace cdf/Combination/DecayChannel.h with d0/Combination/DecayChannel.h 

result:
 bool -> HepBoolean  for operator == in Combination/DecayChannel.h 
----------------------------------------------------


*************************************************
Replace cdf/Combination/FloatWithError.h with d0/Combination/FloatWithError.h  

result:
  inline bool measured() const;
    becomes
  inline HepBoolean measured() const;
----------------------------------------------------



*************************************************
Replace cdf/Combination/HepBaseParticle.h  with d0/Combination/HepBaseParticle.h

result:
 bool -> HepBoolean  for many const bool type info-functions in 
 	Combination/HepBaseParticle.h 	     
----------------------------------------------------


*************************************************
Replace cdf/Combination/InterfaceParticle.h  with d0/Combination/InterfaceParticle.h

result:
 bool -> HepBoolean  for many const bool type info-functions in 
 	Combination/InterfaceParticle.h 	     
----------------------------------------------------


*************************************************
Replace cdf/Combination/InterfaceParticle.icc  with d0/Combination/InterfaceParticle.icc

result:
 bool -> HepBoolean  in many cases for 
 	Combination/InterfaceParticle.icc 	     
----------------------------------------------------


*************************************************
Merge d0/Combination/Lock.h  and cdf/Combination/Lock.h 

result:
 1)  HepLockAddList(..)
   becomes
     void HepLockAddList(..) 
   due to COMPILER warning: omission of explicit type is nonstandard ("int" assumed)
and
 2)   HepLockRemoveList(..)
   becomes
      void HepLockRemoveList(..)
   due to COMPILER warning: omission of explicit type is nonstandard ("int" assumed)
----------------------------------------------------


*************************************************
Replace cdf/Combination/ParticleData.h with d0/Combination/ParticleData.h  

result:
 bool -> HepBoolean  for operator == in Combination/ParticleData.h  
----------------------------------------------------



*************************************************
Merge d0/Geometry/Plane3D.h   and cdf/Geometry/Plane3D.h  

Remove
------
   #ifndef __KCC
   class ostream;
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Merge d0/Matrix/DiagMatrix.h and cdf/Matrix/DiagMatrix.h

Remove
------
   #ifndef __KCC
   class ostream;
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Replace cdf/Matrix/GenMatrix.h with d0/Matrix/GenMatrix.h

result:
  static bool pile_init_flag;
    becomes
  static HepBoolean pile_init_flag;
----------------------------------------------------


*************************************************
Merge d0/Matrix/Matrix.h and cdf/Matrix/Matrix.h

Remove
------
   #ifndef __KCC
   class ostream;
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Replace cdf/Matrix/Pile.h with d0/Matrix/Pile.h

result:
---
  bool is_empty() const { return top == bottom ?true :false;}
    becomes
  HepBoolean is_empty() const { return top == bottom ?true :false;}
----------------------------------------------------


*************************************************
Merge d0/Matrix/SymMatrix.h   and cdf/Matrix/SymMatrix.h   

Remove
------
   #ifndef __KCC
   class ostream;
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Merge d0/Matrix/Vector.h and cdf/Matrix/Vector.h

Remove
------
   #ifndef __KCC
   class ostream;
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Merge d0/PersistentIO/PIStream.h  and cdf/PersistentIO/PIStream.h 

Remove
------
   #include <iostream.h>
   #include <stdiostream.h>
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   #include <iostream.h>
   //stdiostream.h is obsolete; code included in iostream.h; leave here any.
   #include <stdiostream.h>
   #else
   #include <iostream>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Merge d0/PersistentIO/POStream.h  and cdf/PersistentIO/POStream.h 

Remove
------
   #include <iostream.h>
   #include <stdiostream.h>
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   #include <iostream.h>
   //stdiostream.h is obsolete; code included in iostream.h; leave here any.
   #include <stdiostream.h>
   #else
   #include <iostream>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Replace cdf/Random/DRand48Engine.h  with d0/Random/DRand48Engine.h 

result:
---
  #ifdef WIN32
    .......
  #endif
----------------------------------------------------


*************************************************
Merge d0/Random/RandomEngine.h  and cdf/Random/RandomEngine.h 

Remove
------
   #include <iostream.h>
   #include <fstream.h>
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined! 
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   #include <iostream.h>
   #include <fstream.h>
   #else
   #include <iostream>
   #include <fstream>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Replace cdf/Random/RanecuEngine.h  with d0/Random/RanecuEngine.h

result:
---
    const HepDouble prec;
  becomes
    const HepFloat prec;
----------------------------------------------------


*************************************************
Replace cdf/String/CmdArg.h  with d0/String/CmdArg.h 

result:
---
 bool -> HepBoolean  in many cases!
----------------------------------------------------


*************************************************
Replace cdf/String/CmdArg.icc  with d0/String/CmdArg.icc 

result:
---
 bool -> HepBoolean  in many cases!
----------------------------------------------------


*************************************************
Merge d0/Matrix/Vector.h and cdf/Matrix/Vector.h

Remove
------
   #ifndef __KCC
   class ostream;
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Replace cdf/String/Strings.h  with d0/String/Strings.h 

result:
---
 bool -> HepBoolean  in many cases!
----------------------------------------------------


*************************************************
Replace cdf/String/Strings.icc  with d0/String/Strings.icc 

result:
---
 bool -> HepBoolean  in many cases!
----------------------------------------------------


*************************************************
Merge d0/Vector/ThreeVector.h and cdf/Vector/ThreeVector.h

Remove
------
   #ifndef __KCC
   class ostream;
   #else
   #include <iostream.h>
   #endif
Add
----
   //  #ifndef__KCC, HEP_OLD_STYLE_HEADER_FILE_NAMES is defined!
   #ifdef HEP_OLD_STYLE_HEADER_FILE_NAMES
   class ostream;
   #else
   #include <iosfwd>
   using namespace std;
   #endif //HEP_OLD_STYLE_HEADER_FILE_NAMES
----------------------------------------------------


*************************************************
Replace cdf/config/CLHEP.h with d0/config/CLHEP.h 

result:
------
Add
___
   #if defined(HEP_HAVE_STL)
   #include <algorithm>
   #ifdef __KCC
   using std::min;
   using std::max;
   #endif
   #endif
Replace
-------
   #if defined(HEP_HAVE_STL)
   #include <algorithm>
   #endif

Add
___
   #ifdef HEP_HAVE_BOOL
     typedef bool HepBoolean;
   #else
     typedef int HepBoolean;
     const HepBoolean hep_false = 0;
     #define false hep_false
     const HepBoolean hep_true  = 1;
     #define true hep_true
   #endif
   #ifdef HEP_SHORT_NAMES
   typedef HepBoolean Boolean;
   #endif
Replace
-------
   #if !defined(HEP_HAVE_BOOL)
   enum bool {false = 0, true = 1};
   #endif
   typedef bool HepBoolean;
   #ifdef HEP_SHORT_NAMES
   typedef bool Boolean;
   #endif

Add
___
   template <class T>
   inline const T& min( const T& a, const T& b ) {
     // Break this into two lines to avoid an incorrect warning with
     // Cfront-based compilers.
     const T& retval = b < a ? b : a;
     return retval;
   }

   template <class T>
   inline const T& max( const T& a, const T& b ) {
     // Break this into two lines to avoid an incorrect warning with
     // Cfront-based compilers.
     const T& retval = a < b ? b : a;
     return retval;
   }
Replace
-------
   template <class T>
   inline const T& min(const T& a, const T& b) {
       return b < a ? b : a;
   }

   template <class T>
   inline const T& max(const T& a, const T& b) {
       return  a < b ? b : a;
   }

----------------------------------------------------



*************************************************
Replace cdf/test/A.h  with d0/test/A.h

result:
------
 1)  path for many including file has changed!
  eg: "CLHEP/Strings.h" to "CLHEP/String/Strings.h" 
 2) float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/B.cc  with d0/test/B.cc

result:
------
 1)  path for many including file has changed!
  eg: "CLHEP/POStream.h" to "CLHEP/PersistentIO/POStream.h" 
 2) float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/B.h  with d0/test/B.h

result:
------
  float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/C.cc  with d0/test/C.cc

result:
------
 1)  path for many including file has changed!
  eg: "CLHEP/POStream.h" to "CLHEP/PersistentIO/POStream.h" 
 2) float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/C.h  with d0/test/C.h

result:
------
 1)  path for many including file has changed!
  eg: "CLHEP/Strings.h" to "CLHEP/String/Strings.h" 
 2) float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/D.cc  with d0/test/D.cc

result:
------
 1)  path for many including file has changed!
  eg: "CLHEP/POStream.h" to "CLHEP/PersistentIO/POStream.h" 
 2) float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/D.h  with d0/test/D.h

result:
------
  float -> double
----------------------------------------------------


*************************************************
Replace cdf/test/testAList.cc with d0/test/testAList.cc

result:
------
Add:
---
   AListSort(List);
   if ( AListPrint(List) != "19:s1s3S0S1S1S1S2S2S3S3S4S4S5S6S6S7S7S8S8" )
     exit(23);
 
   AListReverseSort(List);
   if ( AListPrint(List) != "19:S8S8S7S7S6S6S5S4S4S3S3S2S2S1S1S1S0s3s1" )
     exit(24);
----------------------------------------------------


*************************************************
Replace cdf/test/testCmd.cc  with d0/test/testCmd.cc 

result:
------
   cout << "The flag is now " << (HepBoolean)flag << '\n';
 become
   cout << "The flag is now " << (bool)flag << '\n';
----------------------------------------------------


*************************************************
Replace cdf/test/testComd.cc  with d0/test/testComd.cc 

result:
------
 path for many including file has changed!
  eg: "CLHEP/POStream.h" to "CLHEP/PersistentIO/POStream.h" 
----------------------------------------------------


*************************************************
Replace cdf/test/testLorentzVector.cc   with d0/test/testLorentzVector.cc 

result:
------
  many TYPES changed!
  eg: double to HepDouble
----------------------------------------------------


*************************************************
Replace cdf/test/testMatrix.cc    with d0/test/testMatrix.cc 

result:
------
  many TYPES changed!
  eg: float to HepDouble
----------------------------------------------------


*************************************************
Replace cdf/test/testPIBS.cc with d0/test/testPIBS.cc  

result:
------
  many TYPES changed!
  eg: float to double
----------------------------------------------------


*************************************************
Replace cdf/test/testPIBS.cc with d0/test/testPIBS.cc  
----------------------------------------------------

*************************************************
Replace cdf/test/testPIBSd.cc with d0/test/testPIBSd.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testPIBSdc.cc with d0/test/testPIBSdc.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testPIBSdcb.cc with d0/test/testPIBSdcb.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testPICS.cc with d0/test/testPICS.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testPIXS.cc with d0/test/testPIXS.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testPOS.cc with d0/test/testPOS.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testRTTI.cc with d0/test/testRTTI.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testRandom.cc with d0/test/testRandom.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testStrings.cc with d0/test/testStrings.cc 
----------------------------------------------------

*************************************************
Replace cdf/test/testThreeVector.cc with d0/test/testThreeVector.cc 
----------------------------------------------------