ESP32 calculates floats faultily opp. to my M4 and my M3/Due

C++11 and C++14 also have std::abs just for ints and std::fabs and std::fabsf for floats !
Just C++17 has std::abs both for ints and fps...
but does Arduino actually use C++17 ...?

Yes, it's really confusing. I was also wondering why simply adding the "using std::abs;" line, allows the abs() function to work with floats, although the ESP32 is using C++11 (and not C++17).

After some investigation, I believe that the C++11's file which is included in "Arduino.h", undefines the "abs" macro and redefines it as an overloaded function "std::abs" for a number of data types including floats.

The "using std::abs;" line allows "abs" to be used in lieu of any predefined macros, so that it isn't necessary to call "std::abs" in your sketch, but simply use "abs" instead.