TL;DR
Arithmetic/decider combinators with two inputs rather than one.What ?
Add versions of the arithmetic and decider combinators that accept two inputs; one on the left and one on the right. These represent the left and right inputs to the operand---the left box only selects signals from the left input, and likewise for the right box. EACH can be used for either box; for EACH in both boxes, the operation is done in parallel on each input signal. For instance, EACH * EACH with output EACH would take the left and right inputs on each channel (so, iron plates * iron plates, copper wire * copper wire, S * S, etc.) and output on that same channel. It does not multiply every input signal by every other input signal.I don't have semantics in mind for the other virtual signals currently, but I imagine some of them may work so I'll add them if I think of them.
Sorry for no image, I can't use an image editing program for crap.
Why ?
Primarily the objective here is to allow parallel operations on two different values, which currently cannot be easily done in general, though it can be often worked around. While many parallel operations are currently possible, they are often unintuitive, which makes the circuit network less accessible to new players andAs a simple example, you want to output 1 for all items which have more in one chest than another. Currently, what you do is create an arithmetic combinator that multiplies the value in one chest by -1, then connect it and the other chest to a decider combinator that compares EACH > 0, relying on the implicit addition of signals on the same network. This is not intuitive to new players. By contrast, with this feature, you could simply have a decider combinator comparing EACH > EACH connected to both chests.
For a more complicated example, suppose you wish to do item balancing dynamically, but not evenly. You could apply a scaling factor to the quantity of each item so that e.g. steel plates count for 2 each, and so your system considers things balanced when you only have half as many. You would like to make a constant combinator with the scaling factors and then an arithmetic combinator that multiplies EACH * EACH. However, instead of one, you have to use six and some nontrivial arithmetic. The situation is worse if you wish to divide rather than multiply, such as to count the number of stacks of items you have by dividing by the output of a stack size combinator.
There would also be some benefit in simplifying complex networks by allowing more rich inputs without workarounds, such as having to more carefully alternate wire colours or remap signals on the same channel to allow them to be referred to separately without implicitly adding them together at the input. I don't consider this to be the main feature, however.
