CLHEP Random Package -- Feature Log

001:  RandEngine Meta				

Statement of suggested enhancement				1/26/04
----------------------------------

	version 1.9

Ater repairing the RandEngine bug 001, mf suggested that by using template
metaprogramming techniques, one coul d take advantage of whatever number of
bits is supplied by rand() (as indicated by RANDMAX).  For example, on Linux
one could do just one call to rand(); on IRIX 2 are needed.

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
	
Technical Information					
---------------------

Metaprogramming is needed only to avoid the overhead of a test on RANDMAX
for every call to RandEngine.  

Doing this for a completely arbitrary RANDMAX is possible, but the resulting
code seems too murky and might introduce maintenance headaches (the avoidance
of which is the very purpose of the enhancement).  Instead, two specializations
will be prepared (for 2**15-1 and 2**31-1) and other cases will be covered by
a general mechanism in which the algorithm is coded rather than meta-coded.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Decision
--------

This will be put into ZOOM CLHEP and CLHEP 1.9 but not 1.8.2.

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
	
Plans and Priority
------------------

Being implemented as of 3/22/04

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Status of implementation
-------------------------

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Enhancement Done						<date>
----------------
	version x.z

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Location of Documentation
-------------------------

==================================================================

Template for each suggested enhancement::

==================================================================

EnhancementNumber:  Enhancement Name				

Statement of suggested enhancement				<date>
----------------------------------
	version x.y
	*
	*
	*
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
	<if needed>
Technical Information					
---------------------
	circumstances
	rsik assessment
	*
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Decision
--------
	*
	* (or technical problems)
	*
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
	<if decision is to make the enhancement>
Plans and Priority
------------------
	*
	*
	*
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Status of implementation
-------------------------
	*
	* (in long-running problems might need more than one)
	*
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Enhancement Done						<date>
----------------
	version x.z

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Location of Documentation
-------------------------

==================================================================