summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS1
-rw-r--r--ext/standard/basic_functions.c4
-rw-r--r--ext/standard/math.c4
-rw-r--r--ext/standard/tests/math/constants.phpt46
4 files changed, 51 insertions, 4 deletions
diff --git a/NEWS b/NEWS
index 5a4fb6df23..89f467dbfa 100644
--- a/NEWS
+++ b/NEWS
@@ -19,6 +19,7 @@ PHP NEWS
- Fixed bug #38315 (Constructing in the destructor causes weird behaviour).
(Dmitry)
- Fixed bug #38265 (heap corruption). (Dmitry)
+- Fixed bug #33895 (Missing math constants). (Hannes)
- Fixed PECL bug #8112 (OCI8 persistent connections misbehave when Apache
process times out). (Tony)
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index ad13aba04c..81e464dc44 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -3974,9 +3974,13 @@ PHP_MINIT_FUNCTION(basic)
REGISTER_MATH_CONSTANT(M_PI_4);
REGISTER_MATH_CONSTANT(M_1_PI);
REGISTER_MATH_CONSTANT(M_2_PI);
+ REGISTER_MATH_CONSTANT(M_SQRTPI);
REGISTER_MATH_CONSTANT(M_2_SQRTPI);
+ REGISTER_MATH_CONSTANT(M_LNPI);
+ REGISTER_MATH_CONSTANT(M_EULER);
REGISTER_MATH_CONSTANT(M_SQRT2);
REGISTER_MATH_CONSTANT(M_SQRT1_2);
+ REGISTER_MATH_CONSTANT(M_SQRT3);
REGISTER_DOUBLE_CONSTANT("INF", php_get_inf(), CONST_CS | CONST_PERSISTENT);
REGISTER_DOUBLE_CONSTANT("NAN", php_get_nan(), CONST_CS | CONST_PERSISTENT);
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 0cea73ac79..c9fcee48fb 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -29,10 +29,6 @@
#include <float.h>
#include <stdlib.h>
-#ifndef M_PI
-#define M_PI 3.14159265358979323846
-#endif
-
#ifndef PHP_ROUND_FUZZ
# ifndef PHP_WIN32
# define PHP_ROUND_FUZZ 0.50000000001
diff --git a/ext/standard/tests/math/constants.phpt b/ext/standard/tests/math/constants.phpt
new file mode 100644
index 0000000000..94ba3fd7d3
--- /dev/null
+++ b/ext/standard/tests/math/constants.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Math constants
+--FILE--
+<?php
+$constants = array(
+ "M_E",
+ "M_LOG2E",
+ "M_LOG10E",
+ "M_LN2",
+ "M_LN10",
+ "M_PI",
+ "M_PI_2",
+ "M_PI_4",
+ "M_1_PI",
+ "M_2_PI",
+ "M_SQRTPI",
+ "M_2_SQRTPI",
+ "M_LNPI",
+ "M_EULER",
+ "M_SQRT2",
+ "M_SQRT1_2",
+ "M_SQRT3"
+);
+foreach($constants as $constant) {
+ printf("%-10s: %.14s\n", $constant, constant($constant));
+}
+?>
+--EXPECT--
+M_E : 2.718281828459
+M_LOG2E : 1.442695040889
+M_LOG10E : 0.434294481903
+M_LN2 : 0.693147180559
+M_LN10 : 2.302585092994
+M_PI : 3.141592653589
+M_PI_2 : 1.570796326794
+M_PI_4 : 0.785398163397
+M_1_PI : 0.318309886183
+M_2_PI : 0.636619772367
+M_SQRTPI : 1.772453850905
+M_2_SQRTPI: 1.128379167095
+M_LNPI : 1.144729885849
+M_EULER : 0.577215664901
+M_SQRT2 : 1.414213562373
+M_SQRT1_2 : 0.707106781186
+M_SQRT3 : 1.732050807568
+