[Hanrahan, graphics.stanford.edu/courses/ cs448b-04-winter/lectures/encoding/walk032.html] 23