function analysis