4 ms·
> 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
by FartyMcFarter 6mo 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.
- quuxplusone 6mo agoc is the constant 1. You don't need to store that. > Furthermore [this doesn't scale]. Precisely. https://en.wikipedia.org/wiki/Toffoli_gate https://en.wikipedia.org/wiki/Toffoli_gate has better details.
- FartyMcFarter 6mo agoc 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.
- StilesCrisis 6mo agoC is computable from (a, b) regardless.
- codethief 6mo agoOn 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.
- sergix 6mo agoAnother way to put it: each step in a reversible process must be a bijection, or "information-preserving". The naive way to do that is to return the entire input as part of the result, but that's missing the point.