Low-Memory Algorithmic Adjoint Propagation