def process(self):
<EOL>if (self.__ccore is True):<EOL><INDENT>self.__clusters = wrapper.rock(self.__pointer_data, self.__eps, self.__number_clusters, self.__threshold);<EOL><DEDENT>else:  <EOL><INDENT>self.__clusters = [[index] for index in range(len(self.__pointer_data))];<EOL>while (len(self.__clusters) > self.__number_clusters):<EOL><INDENT>indexes = self.__find_pair_clusters(self.__clusters);<EOL>if (indexes != [-<NUM_LIT:1>, -<NUM_LIT:1>]):<EOL><INDENT>self.__clusters[indexes[<NUM_LIT:0>]] += self.__clusters[indexes[<NUM_LIT:1>]];<EOL>self.__clusters.pop(indexes[<NUM_LIT:1>]);   <EOL><DEDENT>else:<EOL><INDENT>break;<EOL><DEDENT><DEDENT><DEDENT>
!
        @brief Performs cluster analysis in line with rules of ROCK algorithm.

        @remark Results of clustering can be obtained using corresponding get methods.

        @see get_clusters()