class_docstr: !
  @brief The class represents clustering algorithm ROCK.
  
  Example:
  @code
      from pyclustering.cluster import cluster_visualizer
      from pyclustering.cluster.rock import rock
      from pyclustering.samples.definitions import FCPS_SAMPLES
      from pyclustering.utils import read_sample
  
      # Read sample for clustering from file.
      sample = read_sample(FCPS_SAMPLES.SAMPLE_HEPTA)
  
      # Create instance of ROCK algorithm for cluster analysis. Seven clusters should be allocated.
      rock_instance = rock(sample, 1.0, 7)
  
      # Run cluster analysis.
      rock_instance.process()
  
      # Obtain results of clustering.
      clusters = rock_instance.get_clusters()
  
      # Visualize clustering results.
      visualizer = cluster_visualizer()
      visualizer.append_clusters(clusters, sample)
      visualizer.show()
  @endcode
     
docstr: !
  @brief Constructor of clustering algorithm ROCK.
  
  @param[in] data (list): Input data - list of points where each point is represented by list of coordinates.
  @param[in] eps (double): Connectivity radius (similarity threshold), points are neighbors if distance between them is less than connectivity radius.
  @param[in] number_clusters (uint): Defines number of clusters that should be allocated from the input data set.
  @param[in] threshold (double): Value that defines degree of normalization that influences on choice of clusters for merging during processing.
  @param[in] ccore (bool): Defines should be CCORE (C++ pyclustering library) used instead of Python code or not.
docstr_tok: ["!","@","brief","Constructor","of","clustering","algorithm","ROCK",".","@","param","[","in","]","data","(","list",")",":","Input","data","-","list","of","points","where","each","point","is","represented","by","list","of","coordinates",".","@","param","[","in","]","eps","(","double",")",":","Connectivity","radius","(","similarity","threshold",")",",","points","are","neighbors","if","distance","between","them","is","less","than","connectivity","radius",".","@","param","[","in","]","number_clusters","(","uint",")",":","Defines","number","of","clusters","that","should","be","allocated","from","the","input","data","set",".","@","param","[","in","]","threshold","(","double",")",":","Value","that","defines","degree","of","normalization","that","influences","on","choice","of","clusters","for","merging","during","processing",".","@","param","[","in","]","ccore","(","bool",")",":","Defines","should","be","CCORE","(","C++","pyclustering","library",")","used","instead","of","Python","code","or","not","."]
code: def __init__(
      self, data, eps, number_clusters, threshold=0.5, ccore=True
  ):
      """!
      @brief Constructor of clustering algorithm ROCK.
  
      @param[in] data (list): Input data - list of points where each point is represented by list of coordinates.
      @param[in] eps (double): Connectivity radius (similarity threshold), points are neighbors if distance between them is less than connectivity radius.
      @param[in] number_clusters (uint): Defines number of clusters that should be allocated from the input data set.
      @param[in] threshold (double): Value that defines degree of normalization that influences on choice of clusters for merging during processing.
      @param[in] ccore (bool): Defines should be CCORE (C++ pyclustering library) used instead of Python code or not.
  
      """
  
      self.__pointer_data = data
      self.__eps = eps
      self.__number_clusters = number_clusters
      self.__threshold = threshold
  
      self.__clusters = None
  
      self.__ccore = ccore
      if self.__ccore:
          self.__ccore = ccore_library.workable()
  
      self.__verify_arguments()
  
      self.__degree_normalization = 1.0 + 2.0 * (
          (1.0 - threshold) / (1.0 + threshold)
      )
  
      self.__adjacency_matrix = None
      self.__create_adjacency_matrix()
  
file_path: pyclustering/pyclustering/cluster/rock.py
imports: from pyclustering.cluster.encoder import type_encoding
  from pyclustering.utils import euclidean_distance
  from pyclustering.core.wrapper import ccore_library
  import pyclustering.core.rock_wrapper
label_desc: Use image node_id 1 to create a new rock object  with example: obj = rock(data, eps, number_clusters, threshold, ccore)