M. Paterno (FERMILAB)
As Fermilab's representatives to the C++ standardization effort, we have been promoting directions of special interest to the physics community. We here report on selected recent developments toward the next revision of the C++ Standard. Topics will include standardization of random number and special function libraries, as well as core language issues promoting improved run-time performance. The random number library provides an extensible framework for random number generators. It includes a handful of widely-used and high-quality random number engines, as well as some of the most widely-used random number distributions. The modular design makes it easy for users to add their own engines, and perhaps more importantly their own distributions, on an equal footing with those in the library. The special functions library contains many of the commonly-used functions of mathematical physics. These include a variety of cylindrical and spherical Bessel functions, Legendre and associated Legendre functions, hypergeometric and confluent hypergeometric functions, among others. We also report on an ongoing analysis, and proposal for core language additions, with the goal of improved run-time performance. Current compilers routinely perform inter-procedural flow analysis within a compilation unit. These additions would allow compilers to perform comparable analysis between compilation units, and to optimize code based on their findings.