On some (especially older) platforms (see the comments below) you might need to

#define _USE_MATH_DEFINES

and then include the necessary header file:

#include

and the value of pi can be accessed via:

M_PI

In my math.h (2014) it is defined as:

# define M_PI 3.14159265358979323846 /* pi */

but check your math.h for more. An extract from the “old” math.h (in 2009):

/* Define _USE_MATH_DEFINES before including math.h to expose these macro

* definitions for common math constants. These are placed under an #ifdef

* since these commonly-defined names are not part of the C/C++ standards.

*/

However:

on newer platforms (at least on my 64 bit Ubuntu 14.04) I do not need to define the _USE_MATH_DEFINES

On (recent) Linux platforms there are long double values too provided as a GNU Extension:

# define M_PIl 3.141592653589793238462643383279502884L /* pi */

Pi can be calculated as atan(1)*4. You could calculate the value this way and cache it.