Branch data Line data Source code
1 : : // ***************************************************************************** 2 : : /*! 3 : : \file src/Main/RNGPrint.hpp 4 : : \copyright 2012-2015 J. Bakosi, 5 : : 2016-2018 Los Alamos National Security, LLC., 6 : : 2019-2021 Triad National Security, LLC. 7 : : All rights reserved. See the LICENSE file for details. 8 : : \brief Pretty printer base for pretty printers supporting RNGs 9 : : \details Pretty printer base for pretty printers supporting RNGs. 10 : : */ 11 : : // ***************************************************************************** 12 : : #ifndef RNGPrint_h 13 : : #define RNGPrint_h 14 : : 15 : : #include <iostream> 16 : : #include <vector> 17 : : 18 : : #include "QuinoaConfig.hpp" 19 : : #include "Print.hpp" 20 : : #include "RNGParam.hpp" 21 : : #include "Options/RNG.hpp" 22 : : 23 : : namespace tk { 24 : : 25 : : //! RNGPrint : Print 26 : : class RNGPrint : public Print { 27 : : 28 : : public: 29 : : //! Constructor 30 : : //! \param[in] screen Screen output filename 31 : : //! \param[in,out] str Verbose stream 32 : : //! \param[in] mode Open mode for screen output file, see 33 : : //! http://en.cppreference.com/w/cpp/io/ios_base/openmode 34 : : //! \param[in,out] qstr Quiet stream 35 : : //! \see tk::Print::Print 36 : 2288 : explicit RNGPrint( const std::string& screen, 37 : : std::ostream& str = std::clog, 38 : : std::ios_base::openmode mode = std::ios_base::out, 39 : : std::ostream& qstr = std::cout ) 40 : 2288 : : Print( screen, str, mode, qstr ) {} 41 : : 42 : : #ifdef HAS_MKL 43 : : //! Print all fields of MKL RNG parameters 44 : : void MKLParams( const std::vector< ctr::RNGType >& vec, 45 : : const ctr::RNGMKLParameters& map ) const; 46 : : #endif 47 : : 48 : : //! Print all fields of RNGSSE parameters 49 : : void RNGSSEParams( const std::vector< ctr::RNGType >& vec, 50 : : const ctr::RNGSSEParameters& map ) const; 51 : : 52 : : //! Print all fields of Random123 parameters 53 : : void Random123Params( const std::vector< ctr::RNGType >& vec, 54 : : const ctr::RNGRandom123Parameters& map ) const; 55 : : 56 : : private: 57 : : #ifdef HAS_MKL 58 : : //! Echo information on MKL random number generator 59 : : void echoMKLParams( const ctr::RNGMKLParam& p ) const; 60 : : #endif 61 : : 62 : : //! Echo information on RNGSSE random number generator 63 : : void echoRNGSSEParams( const ctr::RNGSSEParam& p, 64 : : const ctr::RNG& rng, 65 : : const ctr::RNGType& r ) const; 66 : : 67 : : //! Echo information on Random123 random number generator 68 : : void echoRandom123Params( const ctr::RNGRandom123Param& p ) const; 69 : : }; 70 : : 71 : : } // tk:: 72 : : 73 : : #endif // RNGPrint_h