TL;DR
Add more advanced functions to the arithmetic combinator, with other than two arguments.What?
Expand the functionality of the arithmetic combinator to have functions with one, two, or three arguments.- 1 argument
Common single argument functions include:- negation (-)
- bitwise not (~ or ¬ or NOT)
- integer square root
- integer logarithms (base 2 = highest bit set, base 10 = number of digits)
- bitwise population count (number of bits set)
- 2 arguments
Common two-argument functions include:- Our current set of arithmetic operators.
- Greatest common divisor (gcd) and least common multiple (lcm), (which can be efficiently implemented with the Euclidean algorithm internally in the game code.)
- Minimum and maximum functions (which cannot be adequately implemented with the decider combinator.)
- Quotient and modulo, as opposed to division and remainder.
The difference being that the modulo is never negative, and so negative divisors behave differently as seen in the way / and % work in C++ versus Python.
- 3 arguments
Common three argument functions include:- Clamping: constraining a middle value between two extremes (in the same vein of adding min/max as above.)
- Arithmetic expressions of three arguments (which could then include the whole list of 2-argument functions.)
- Modulo addition: again eliminating the need for an extra combinator.
Mockups:
Negation/bitwise not could be built directly into the fields themselves, a checkbox to negate/invert an input: Arguments could be set with a slider: Here the "nothing" operator is used just to get the negation of ATwo arguments would be as usual: (The "max" function is from the above mentioned proposal.)
Three arguments could also include a "nothing" operator that allows a small arithmetic expression: (Which would need to clarify that it disregards operator precendence.)

