Comment by FartyMcFarter
6 hours ago
> Reversing here just means yielding back the inputs.
Not quite I think - the example gate they give has (a,b,c) as input and it doesn't return c. So it's not yielding all the inputs back.
Furthermore: if you always returned all the inputs, and also computed other values, the outputs from the gates would be strictly increasing in size, so you wouldn't be able to use a finite set of gates to build a computer of arbitrary size.
c is the constant 1. You don't need to store that.
> Furthermore [this doesn't scale].
Precisely.
https://en.wikipedia.org/wiki/Toffoli_gate has better details.
On the topic of scaling, reversible computations are more energy efficient than non-reversible ones, see also the OP. Outputting the original inputs might seem silly and wasteful superficially but if you discarded them (as "heat"), you'd just be back to building a non-reversible, likely much less efficient gate.
c is an actual input variable, it's not a constant. You can set it to be the constant 1 which the article does in one of the examples, but this isn't mandatory.
C is computable from (a, b) regardless.