たらい回さない関数

聞くところによりますと、たらい回し関数の正体は {\rm tarai}(x,y,z)=\left\{\array{y&x<=y\\z&y<=z\\x&{\rm others}}\right. だそうですが、竹内関数(という名前でいいのでしょうか? z を返すバージョンの関数)の正体は下の表でよろしいのでしょうか。

tak(x,y,z) 領域
z x<=y
y y<x, y-1<=z<=x
y-ceil(y-z)+1 z+1<y<x, ceil(x-y)mod 2=0
y z+1<y<x, ceil(x-y)mod 2=1
x x-1<=y<x<z
y y+1<x<z<=x+1
x y+1<x<z-1, ceil(z-x)mod 2=0
x-ceil(x-y)+1 y+1<x<z-1, ceil(z-x)mod 2=1

ceil は天井関数です。

追記: [cs/9301113] Textbook examples of recursion の 11 ページ目