Click here to Skip to main content
15,897,891 members
Articles / Programming Languages / C++

A Normal / Exponential Random Generator and Histogram Class

Rate me:
Please Sign up or sign in to vote.
4.73/5 (11 votes)
2 Dec 20024 min read 276.9K   8.1K   55  
A fast random generator with normal or exponential distribution + a histogram class
In this article, you will find a fast generator for Random Variable, namely normal and exponential distributions. It is based on George Marsaglia's and Wai Wan Tsang's work.
// FileGfxInterface.h: interface for the CFileGfxInterface class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FILEGFXINTERFACE_H__1610038E_5F25_4B52_BD4E_6A7F372002B0__INCLUDED_)
#define AFX_FILEGFXINTERFACE_H__1610038E_5F25_4B52_BD4E_6A7F372002B0__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "GfxInterface.h"

namespace gfxinterface
{


/* \brief

  \ingroup IGfxGroup

  Intermidate class for Graphic format based on files (such as eps, or svg)
*/
class CFileGfxInterface : public CGfxInterface  
{
public:
	CFileGfxInterface(const char* sFileName = "untitled");
	virtual ~CFileGfxInterface();

	virtual bool Open(const char* filename = NULL);
	virtual void Close();

	//! Sets the creator name in file header
	void SetCreator(const char* str);
	//! Sets image title
	void SetTitle(const char* str);
	//! Sets creation date
	void SetCreationDate(const char* str);

protected:
	std::string m_sFileName;
	std::string m_sCreator;
	std::string m_sTitle;
	std::string m_sCreationDate;
	std::ofstream m_file;
};

}
#endif // !defined(AFX_FILEGFXINTERFACE_H__1610038E_5F25_4B52_BD4E_6A7F372002B0__INCLUDED_)

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.


Written By
Engineer
United States United States
Jonathan de Halleux is Civil Engineer in Applied Mathematics. He finished his PhD in 2004 in the rainy country of Belgium. After 2 years in the Common Language Runtime (i.e. .net), he is now working at Microsoft Research on Pex (http://research.microsoft.com/pex).

Comments and Discussions