module m_constants_math

use m_precision

implicit none

real (rp), parameter :: math_third = 0.333333333333333_rp

!>pi
real (rp), parameter :: math_pi = 3.1415926535897931_rp

!>pi divided by two
real (rp), parameter :: math_pi_2 = 1.5707963267948966_rp

!>pi divided by four
real (rp), parameter :: math_pi_4 = 0.78539816339744828_rp

!>reciprocal of pi
real (rp), parameter :: math_1_pi = 0.31830988618379069_rp

!>two times reciprocal of pi
real (rp), parameter :: math_2_pi = 0.63661977236758138_rp

!>two times the reciprocal of the square root of pi. 
real (rp), parameter :: math_2_sqrtpi = 1.1283791670955126_rp

!>square root of two
real (rp), parameter :: math_sqrt2 = 1.4142135623730951_rp

!>cube root of two
real (rp), parameter :: math_cbrt2 = 1.2599210498948732_rp

!>sixth root of two
real (rp), parameter :: math_sxrt2 = 1.122462048309373_rp

!>reciprocal of the square root of two
real (rp), parameter :: math_sqrt1_2 = 0.70710678118654746_rp

!>square root of three
real (rp), parameter :: math_sqrt3 = 1.7320508075688772_rp

!>square root of M_E
real (rp), parameter :: math_sqrt_e = 1.6487212707001282_rp

!>square root of pi
real (rp), parameter :: math_sqrt_pi = 1.7724538509055159_rp

!>The base of natural logarithms
real (rp), parameter :: math_e = 2.7182818284590451_rp

!>The logarithm of M_E to base two
real (rp), parameter :: math_log2e = 1.4426950408889634_rp

!>The logarithm of M_E to base 10
real (rp), parameter :: math_log10e = 0.43429448190325182_rp

!>The natural logarithm of two
real (rp), parameter :: math_ln2 = 0.69314718055994529_rp

!>The natural logarithm of 10
real (rp), parameter :: math_ln10 = 2.3025850929940459_rp

end module m_constants_math
