Commit Graph

223 Commits

Author SHA1 Message Date
Nikita Popov
20f2e5986e Fix ZTS build
This only makes it compile, it doesn't actually work, presumably
because interned strings are assumed in some places.
2014-04-09 23:41:16 +02:00
Xinchen Hui
a1052c51f8 Fixed wrong fix for tmpbuf 2014-03-06 19:22:59 +08:00
Xinchen Hui
be4878edd0 Use stack memory here to avoid mem leak 2014-03-03 16:39:29 +08:00
Dmitry Stogov
40e053e7f3 Use better data structures (incomplete) 2014-02-13 17:54:23 +04:00
datibbaw
aff56f3c45 add T_POW (**) operator
Fixed recognition of the operator

Added opcode, still doing multiply instead of pow()

opcode now always returns int(42)

The right answer, but always a float

Yanked code from pow() implementation.

Should not handle negative long as exponent ourselves

Added test cases from pow()

Moved precedence higher than '~'

Added GMP operator overloading

Added ZEND_ASSIGN_POW (**=) operator.

Added pow() as a language construct.

Adjusted test cases for changed precedence.

Reduced pow() to shell function around ZEND_API pow_function()

Reduced test case to only contain edge cases
Added overloading test case

Moved unary minus above T_POW

Revert "Added pow() as a language construct."

Bad bad bad idea.

This reverts commit f60b98cf7a8371233d800a6faa286ddba4432d02.

Reverted unary minus behaviour due to previous revert.
Convert arrays to int(0)
Exponent with array as a base becomes int(0)

Rebase against master

Fixed tokenizer test case
2014-02-06 14:41:21 +01:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Xinchen Hui
c0d060f5c0 Bump year 2014-01-03 11:04:26 +08:00
Veres Lajos
144eab0889 code related typo fixes 2013-08-18 13:46:32 -07:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Reeze Xia
b47d6b32ba Fix test fails: ext/standard/tests/general_functions/bug27678.phpt
After commit 3e62aae1, number_format() returns string with length,
but _php_math_number_format_ex_len() didn't set string length
on nan and inf. This cause segfault when destruct the return value.
2012-07-17 23:08:11 +02:00
Gustavo André dos Santos Lopes
3e62aae1b4 Fix bug #62112: number_format() is not binary safe
The bug report actually urges PHP 5.3's behavior to be
reinstated -- that is, make "\0", when used as a separator,
be the same as no separator at all. I believe that is not a
proper course of action and that "\0" being interpreted as
no seperator was a bug in PHP 5.3.

Using "" for no separator, in both 5.3 and 5.4, before and
after this change, causes no separator to be used, so
there is no functionality loss.
2012-05-23 11:37:27 +02:00
Nuno Lopes
8b4b70df56 fix stack overflow in php_intlog10abs()
bug uncovered by LLVM/clang's new -fbounds-checking switch
this patch fixes a crash in ext/standard/tests/math/round_large_exp.phpt
2012-05-11 13:07:21 -04:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Gustavo André dos Santos Lopes
8d52500d41 - Reverted r301991, which is a (partial) fix to bug #52550, addressing an
overflow in a signed subtraction. This fixes the overflow without
  changing the algorithm.
2011-06-12 00:56:18 +00:00
Stanislav Malyshev
c16bfe403f MFH: Fixed comilation on x86_64 2011-05-27 19:24:09 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Adam Harvey
d2263d482d Implement FR #53457 (number_format must support more than one character for
thousands separator).
2010-12-03 10:10:08 +00:00
Ilia Alshanetsky
d9af17b839 Additional fix for bug #52550 & fix test & warning from previous fixes 2010-08-08 15:45:02 +00:00
Felipe Pena
232ae3df01 - Fix build 2010-08-06 22:21:13 +00:00
Ilia Alshanetsky
a8ddaca0b0 WS 2010-08-06 20:16:11 +00:00
Ilia Alshanetsky
34e8b615ed Another fix for issue indentified in bug #52550 2010-08-06 20:04:29 +00:00
Sebastian Bergmann
9ba1e81665 sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php 2010-01-03 09:23:27 +00:00
Dmitry Stogov
31c0af245e Fixed floating point mathematic speed degradation (Christian) 2009-03-18 10:18:10 +00:00
Sebastian Bergmann
08659c2dcd MFH: Bump copyright year, 3 of 3. 2008-12-31 11:15:49 +00:00
Christian Seiler
2e32354456 - MFH: Implemented http://wiki.php.net/rfc/rounding 2008-12-02 16:27:15 +00:00
Ilia Alshanetsky
22f3c8b05b Fixed bug #42294 (Unified solution for round() based on C99 round)
[DOC] New implementation of round() to work-around inconsistencies for win32
and 64 bit platforms.

This solution is very roughly based on BSD's implmentation of round(), which
itself is an implementation of C99 standard. We take the absolute value of number
we want to round time the 10 to the power of the number of decimal spaces we are
rounding to. The resulting value is rounded up and the pre-rounded value is
subtracted from it. If the difference is greater then 0.5000000001 we round up,
otherwise we round down.
2008-10-29 20:03:34 +00:00
Arnaud Le Blanc
d69dfa4b9f MFH: initialize optional vars 2008-10-21 22:08:38 +00:00
Matt Wilmas
01afb02bad Fix build 2008-05-08 04:23:26 +00:00
Kalle Sommer Nielsen
ed7e0c0dff * Changed php_*h() to be static
* Changed NEWS entry to be say 'native' insted of 'Windows' (ref. *h())
2008-05-06 10:55:49 +00:00
Derick Rethans
af371c9f5e - Fixed build. 2008-05-05 10:09:54 +00:00
Kalle Sommer Nielsen
f61731874a Merge PHP_5_3 - Implemented Windows support for asinh(), acosh(), atanh(), log1p() and expm1()
[DOC] Merge_5_3
2008-05-05 07:29:41 +00:00
Felipe Pena
9139e74a60 New parameter parsing [DOC] 2008-02-21 17:50:03 +00:00
Antony Dovgal
fe4e73238a ws->tab fixes 2008-02-21 11:53:34 +00:00
Zoe Slattery
5932b49990 Fixing 44092 2008-02-12 07:15:40 +00:00
Sebastian Bergmann
d1dded8751 MFH: Bump copyright year, 2 of 2. 2007-12-31 07:17:19 +00:00
Ilia Alshanetsky
6f694fab9a Simplify code 2007-05-23 15:01:00 +00:00
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Ilia Alshanetsky
52d53543ac Allocation safety checks 2006-12-25 22:36:57 +00:00
Ilia Alshanetsky
fd8f758ecd Fixed bug #39873 (number_format() breaks with locale & decimal points). 2006-12-22 04:03:15 +00:00
Hannes Magnusson
2d3056e94f MFH:
- Fixed bug #33895 (missing math constants).
 - Remove M_PI from math.c (its defined in php_math.h)
2006-08-27 19:14:43 +00:00
Marcus Boerger
dc571fa9e2 - MFH Fixed Bug #29538 number_format and problem with 0 2006-07-16 10:50:58 +00:00
Antony Dovgal
bccf4bd9e7 MFH: initialize variables and reduce the number of warnings 2006-02-06 11:28:41 +00:00
foobar
5bd93221a8 bump year and license version 2006-01-01 12:51:34 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
foobar
a5c41b2c8e - Fixed bug #33917 (number_format() output with > 1 char separators) 2005-07-29 12:58:25 +00:00
Andrey Hristov
0e459321bf move math_standard_deviation and math_variance to the stats PECL extension 2005-05-13 10:11:19 +00:00
Andrey Hristov
f12b14078e rename math_std_dev to math_standard_deviation (the API wasn't published
yet)
2005-05-10 12:50:53 +00:00
foobar
b3f5a2dca4 ws + cs + proto fixes 2005-05-07 16:08:03 +00:00
Andrey Hristov
8cd3409b30 update protos 2005-05-07 12:41:56 +00:00
foobar
31a8c58911 fix proto 2005-05-05 23:42:03 +00:00
Andrey Hristov
7a0b3edbe0 fixed div by zero
#div by zero is bad...div by zero is bad...bad
2005-05-02 12:32:21 +00:00
Andrey Hristov
2c0959689b add possibility to calculate the standard deviation and the variance
on a sample - the formulae are slightly different.
2005-05-02 12:29:38 +00:00
Andrey Hristov
7a4eb25870 add also math_variance() which uses the same calculation as math_std_dev() 2005-05-02 12:12:04 +00:00
Andrey Hristov
6141c5690d fix division by zero. throw an warning if the array is empty. 2005-05-02 11:01:14 +00:00
Andrey Hristov
fb0c19da1c add math_std_dev() 2005-05-02 09:17:49 +00:00
Ilia Alshanetsky
6d7cac7731 Fixed bug #28228 (NULL decimal separator is not being handled correctly). 2004-12-14 00:37:19 +00:00
Wez Furlong
31a17d9044 Enable hypot for all 2004-09-20 22:08:06 +00:00
Andi Gutmans
56f8195fe5 - Nuke empty_string. It is a reminanent from the time where RETURN_FALSE()
used to return "" and not bool(false). It's not worth keeping it because
  STR_FREE() and zval_dtor() always have to check for it and it slows down
  the general case. In addition, it seems that empty_string has been abused
  quite a lot, and was used not only for setting zval's but generally in
  PHP code instead of "", which wasn't the intention. Last but not least,
  nuking empty_string should improve stability as I doubt every place
  correctly checked if they are not mistakenly erealloc()'ing it or
  calling efree() on it.
  NOTE: Some code is probably broken. Each extension maintainer should
  check and see that my changes are OK. Also, I haven't had time to touch
  PECL yet. Will try and do it tomorrow.
2004-07-19 07:19:50 +00:00
Ilia Alshanetsky
b9fc9a6ad1 hypot() is not experimental. 2004-06-10 19:38:24 +00:00
Ilia Alshanetsky
396bf39311 Fixed bug #28508 (Do not make hypot() available if not supported by libc). 2004-05-24 17:02:12 +00:00
Ilia Alshanetsky
91e9545f4f Fixed bug #28228 (number_format() does not allow empty decimal separator). 2004-04-30 13:26:01 +00:00
Ard Biesheuvel
cc924cad9d Nuke unused vars 2004-03-10 15:59:50 +00:00
Ard Biesheuvel
e6281ab38b Don't use fp arithmetic for int results
# FP arithmetic is not accurate enough on 64-bit archs
# This patch relies on ZEND_SIGNED_MULTIPLY_LONG(),
# so that should be fixed as well.
2004-03-10 15:57:49 +00:00
Andi Gutmans
dbeb4158d2 - A belated happy holidays and PHP 5 2004-01-08 08:18:22 +00:00
Ilia Alshanetsky
2a58fb80e7 Fixed Bug #25694 (round() and number_format() give inconsistent results). 2003-11-18 02:50:41 +00:00
Sascha Schumann
436a07176c fix format strings 2003-08-28 16:49:57 +00:00
Marcus Boerger
66b910e87c Bugfix #24142, part 2 2003-08-09 01:12:41 +00:00
Ilia Alshanetsky
370ea1c82f Avoid a round() bug that occurs due to over optimization of C code by gcc.
This bug was confirmed across multiple systems with gcc 2.95.3 & 3.X+
2003-08-08 23:40:44 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Stig Bakken
0e6fca4f22 * email address change 2003-03-18 12:06:09 +00:00
Edin Kadribasic
d4e143b8be Fixed bug #21648 2003-01-16 13:19:50 +00:00
Wez Furlong
cf9f784ecd Fix the number format fix when the number of decimal places is 0.
# Thanks to Edin for his telepathy!
2003-01-10 13:32:24 +00:00
Wez Furlong
d8fbd1acef Fix Bug #21523 - number_format could cause a memory allocation for a
negative memory size in situations where the sprintf implementation of the
host system generated less decimal places than were requested.

Resolved this issue by making number_format examine the string returned
by spprintf and have it pad to the correct number of decimal places.

Added a test-case based on the bug report; the length of decimal places
required to trigger this bug is sprintf implementation dependent; as the
implementation is now using spprintf (provided by PHP), that number is
78 digits (NDIG - 2).

# I played with the idea of enhancing sprintf to do the equivalent, but
# it was too much effort considering that the precision of floats/doubles
# is not good enough to warrant it.

# This fix could do with some QA from someone else to make sure there are
# no memory bounds problems and then MFH it to PHP_4_3
2003-01-09 15:44:49 +00:00
Sebastian Bergmann
b506f5c8f8 Bump year. 2002-12-31 16:08:15 +00:00
Marcus Boerger
49a99a98f4 -php_error -> php_error_docref
-removed some cases where emalloc result was tested
2002-12-05 20:59:49 +00:00
Marcus Boerger
3ba7df4c6a fix warnings
#highest bit cannot be set so this must work
2002-11-12 11:46:21 +00:00
Jason Greene
f8aae8702c Switch to using error_docref
# Satisfy all those named Mar[ck]us
2002-11-11 16:34:39 +00:00
Jason Greene
5e2c75c576 Report function name when log() triggers a base warning 2002-11-11 05:35:04 +00:00
Jason Greene
84bd2901c4 Add the ability to take the logarithm of any base by adding a base parameter
to log()
Added regression tests for the new form
2002-11-11 05:21:35 +00:00
Marcus Boerger
15b2e277a4 fix compiler warning 2002-10-24 19:15:40 +00:00
foobar
0bac55b4e7 - If functions are not available on OS, they're not available in PHP. 2002-10-24 18:31:11 +00:00
Sascha Schumann
6bf422d62e Make PHP compile out-of-the-box with uClibc 2002-10-24 12:21:07 +00:00
Sterling Hughes
57440cc984 hopefully silence compile warnings on Solaris related to HUGEVAL being
undefined.. HUGEVAL is defined (well the manual would indicate so) in
stdlib.h, not math.h.

Bug #: 19807
2002-10-15 14:51:01 +00:00
Sascha Schumann
df0ea33d2b peek at freebsd's libc and fix _php_math_basetozval
PR: #19733
2002-10-04 02:21:33 +00:00
Derick Rethans
828c2a9c46 - argh... this is getting annoying 2002-09-06 07:47:49 +00:00
Anantha Kesari H Y
338332c799 NetWare related changes/modifications 2002-09-06 07:44:30 +00:00
Marcus Boerger
149ad05b4f php_error_docref
#New conversion available at: http://docref.txt.marcus-boerger.de
2002-08-24 01:19:28 +00:00
Edin Kadribasic
67689bd557 ZTS fix. 2002-06-18 00:14:52 +00:00
Edin Kadribasic
fb6bcda13b Check for +/- infinity in base_convert (bug #14807). 2002-06-18 00:04:33 +00:00
Derick Rethans
f4447a9cc1 - Fix for bug #14966 2002-04-01 09:19:57 +00:00
Sebastian Bergmann
6729e0e9bf Fix thread-safe build. 2002-03-11 05:43:23 +00:00
jim winstead
8544cc1532 handle numeric strings. this means we're less picky about the argument
types, but the math functions aren't generally that picky.
2002-03-10 23:46:43 +00:00
Hartmut Holzgraefe
547b25fd13 php has no 'double', only 'float' 2002-03-02 17:08:09 +00:00
Sebastian Bergmann
90613d2282 Maintain headers. 2002-02-28 08:29:35 +00:00
Yasuo Ohgaki
15daf99288 Added fmod() function
# Is there any reason that math.c does not use errno?
2002-02-21 11:44:41 +00:00
Jon Parise
9aba9071b6 These are now defined in zend_config.w32.h. 2002-01-28 16:06:27 +00:00
Jon Parise
e40e7a669a zend_isinf() is already defined in Zend/zend_config.w32.h for Win32. 2002-01-27 18:19:18 +00:00
Jon Parise
f174bbc711 Use the zend_* versions of finite(), isinf(), and isnan(), as defined
in php_config.h.  Redefine the zend_* versions in the case of Win32.

This fixes the build on systems that don't provide a native version of,
say, isinf() (e.g. Solaris).
2002-01-27 07:41:20 +00:00
jim winstead
831473d76e Rename finite/isinf/isnan to more standard is_*() names. 2002-01-09 23:59:05 +00:00