A little-known feature of C++ is that the cmath
library actually provides many mathematical constants that you can make use of in your quantitative finance programs.
To include the mathematical constants, you need to use a #define
macro called _USE_MATH_DEFINES
and add it before importing the cmath
library:
#define _USE_MATH_DEFINES
#include <cmath>
#include <iostream>
int main() {
std::cout << M_PI << " " << M_E << " " << M_SQRT2 << endl;
return 0;
}
There are quite a few constants on offer. See if you can spot the ones that will be useful in quantitative finance:
Mathematical Expression | C++ Symbol | Decimal Representation |
---|---|---|
pi | M_PI | 3.14159265358979323846 |
pi/2 | M_PI_2 | 1.57079632679489661923 |
pi/4 | M_PI_4 | 0.785398163397448309616 |
1/pi | M_1_PI | 0.318309886183790671538 |
2/pi | M_2_PI | 0.636619772367581343076 |
2/sqrt(pi) | M_2_SQRTPI | 1.12837916709551257390 |
sqrt(2) | M_SQRT2 | 1.41421356237309504880 |
1/sqrt(2) | M_SQRT1_2 | 0.707106781186547524401 |
e | M_E | 2.71828182845904523536 |
log_2(e) | M_LOG2E | 1.44269504088896340736 |
log_10(e) | M_LOG10E | 0.434294481903251827651 |
log_e(2) | M_LN2 | 0.693147180559945309417 |
log_e(10) | M_LN10 | 2.30258509299404568402 |
Note that it is not best practice within C++ to use #defines for mathematical constants! Instead, as an example, you should use const double pi = 3.14159265358979323846;
. The #defines are a legacy feature of C.