Refer to Section 5.3.7 for detailed description about this function.