- Fixed bug #33895 (missing math constants).
- Remove M_PI from math.c (its defined in php_math.h)
- 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)
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);
#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
--- /dev/null
+--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
+