Out of the official Arduino hardware cores, the exception to this is Arduino megaAVR Boards, which does not define its own abs(). Thus, currently the only official Arduino board for which abs() does not support float is the Arduino Uno WiFi Rev2. Arduino AVR Boards, Arduino SAMD Boards, Arduino SAM Boards, and Intel Curie Boards all do define their own abs() macros.
I also checked the most popular 3rd party hardware cores and found that Teensy’s abs() does support float, while the “ESP8266 core for Arduino” and “Arduino core for the ESP32” do not.
What do you mean by “do not support”? Compile error or undefined output?
I’ve been using the code you quoted on ESP32 for over a year without apparent problems.
I see. So, to be clear on your chip, the pattern looked broken as a result of abs truncating the floats it was working with, correct?
From what you said, it should be broken on ESP32, but I never noticed the breakage. I’d be interested to get thatt fixed if it actually changes the visible output.
(I’ll also accept a pull request from you )