arduino / ArduinoCore-API

Hardware independent layer of the Arduino cores defining the official API
https://www.arduino.cc/reference/en/
GNU Lesser General Public License v2.1
216 stars 120 forks source link

Update math macros to avoid computing callable arguments more than once #140

Open Keating950 opened 3 years ago

Keating950 commented 3 years ago

This PR updates various math macros to avoid computing callable arguments more than once using the same technique that the max macro currently does. It also replaces them with C++ template functions when __cplusplus is defined. I originally opened this as in the ArduinoCore-avr repo, but was directed here.

❯ ./test-ArduinoCore-API
===============================================================================
All tests passed (527 assertions in 226 test cases)
Keating950 commented 3 years ago

Minimized the diff (I believe) as requested.

codecov-io commented 3 years ago

Codecov Report

Merging #140 (585f67a) into master (2af4a9c) will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #140   +/-   ##
=======================================
  Coverage   96.06%   96.06%           
=======================================
  Files          14       14           
  Lines         839      839           
=======================================
  Hits          806      806           
  Misses         33       33           
Impacted Files Coverage Δ
api/Common.h 100.00% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 2af4a9c...585f67a. Read the comment docs.

matthijskooijman commented 3 years ago

Thanks! It's not exactly as I suggested yet, because:

Ideally, you'd also squash all your commits together into a single commit (except maybe for whitespace-only changes, those would better be in separate commits), not sure if you're familiar with merging commits / rewriting history in git?

CLAassistant commented 3 years ago

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.