def __rebuild_tree(self, index_point):
rebuild_result = False;<EOL>increased_diameter = self.__tree.threshold * self.__diameter_multiplier;<EOL>tree = None;<EOL>while(rebuild_result is False):<EOL><INDENT>if (increased_diameter == <NUM_LIT:0.0>):<EOL><INDENT>increased_diameter = <NUM_LIT:1.0>;<EOL><DEDENT>tree = cftree(self.__tree.branch_factor, self.__tree.max_entries, increased_diameter, self.__tree.type_measurement);<EOL>for index_point in range(<NUM_LIT:0>, index_point + <NUM_LIT:1>):<EOL><INDENT>point = self.__pointer_data[index_point];<EOL>tree.insert_cluster([point]);<EOL>if (tree.amount_entries > self.__entry_size_limit):<EOL><INDENT>increased_diameter *= self.__diameter_multiplier;<EOL>continue;<EOL><DEDENT><DEDENT>rebuild_result = True;<EOL><DEDENT>return tree<EOL>
!
        @brief Rebuilt tree in case of maxumum number of entries is exceeded.

        @param[in] index_point (uint): Index of point that is used as end point of re-building.

        @return (cftree) Rebuilt tree with encoded points till specified point from input data space.