remove function recursive in the normal part of amd

use other to implements the recursive functions