# Billiard-ball computing: reversible half-adder

August 2015

Reversible half-adder. Bottom input is a constant 1. Outputs
are, top to bottom, the carry
(*a* **xor** *b*), a copy
of *a*, the sum
(*a* **and** *b*), and
(**not** *a*) **or** *b*.

This circuit is three interactions (two forwards, one reverse). I
don't think there's any smaller circuit that can do
a reversible **xor**, even without the carry.

(I mean smaller in terms of interactionsâ€”it can be a little more compressed in space.)