Log is non-monotonic in PHP and Lua

ibobev 19 points 11 comments July 23, 2026
purplesyringa.moe · View on Hacker News

Discussion Highlights (4 comments)

dmitrygr

> you can compute any logarithm from two base-e ones. They need not be base e. Any base will do as long as it is the same for both the numerator and the denominator

lioeters

Recently I was reading an article on the EML operator (exp-min-log) that uses exponentiation and logarithm to build elementary math functions including arithmetic operations. There was a table of results from testing across languages. Language Result of 2 x 3 Error --- Node.js v25.3.0 6.000000000000000 0 Python 3.9.6 6.000000000000001 8.88e-16 PHP 8.5.1 6.000000000000001 8.88e-16 Go 1.26.2 6.000000000000000 0 Rust 6.000000000000001 8.88e-16 It was speculated that this miniscule margin of error, 1 ULP (unit in the last place), is likely due to the difference in how log() is implemented by the language. Supposedly Python, PHP, and Rust use LLVM's libm (C math library) but maybe Go and Node.js internally compile to CPU instructions directly? There was no evidence presented, so I was skeptical of this explanation.

cwt137

I find it interesting the blog author tied PHP and Lua together. PHP uses a JIT from Lua. Is this related to the log issue?

kristianp

Wouldn't a more applicable title be that the log base is non-monotonic?

Semantic search powered by Rivestack pgvector
14,736 stories · 137,719 chunks indexed